- •Адресация
- •Повторители, мосты, коммутаторы и маршрутизаторы.
- •Эталонная сетевая модель osi. Межуровневые взаимодействия.
- •Физический уровень osi
- •Канальный уровень osi.
- •Сетевой уровень osi
- •Транспортный уровень osi.
- •Сеансовый уровень osi.
- •Представительский уровень osi.
- •Прикладной уровень osi.
- •Ethernet
- •TokenRing
- •FrameRelay
- •Адресация tcp/ip
- •Протокол arp
- •Протокол ip
- •Протокол icmp
- •Протокол udp
- •Протокол tcp
- •Протокол spx
- •NetWareCoreProtocol (ncp)
- •Протокол NetWare Core Packet Burst (ncpb)
- •Протокол sap
- •NetBeui
- •NetBios
- •Протокол smb
- •Основные определения winsock.
- •Сетевые протоколы, поддерживаемые Win32
- •Сокеты Windows
- •Winsock и модель osi
- •Создание сокета для tcp/ip
- •Создание сокетов и адресации для NetBios
- •Серверные api-функции
- •Api-функции клиента
- •Передача данных
- •Завершение сеанса
- •Передатчик для протоколов, не требующих соединения
- •Комплексный ввод-вывод
- •Режимы сокетов
- •Модель Select (Выбор)
- •WsaaSyncSelect
- •WsaEventSelect
- •Модель перекрытого ввода-вывода
- •Модель портов завершения
Сетевые протоколы, поддерживаемые Win32
Весьма важным и полезным является то, что Win32 поддерживает разнообразные протоколы, при этом каждый протокол работает в нескольких режимах. В табл. 2 представлены основные доступные протоколы и некоторые поддерживаемые ими режимы работы.
Таблица 2
Сетевые протоколы, поддерживаемые Win32
|
Протокол |
Имя |
Тип сообщений |
Установление соединения |
Надежность |
Порядок пакетов |
Корректное завершение сеанса |
Поддержка широковещания |
Поддержка многоадресности |
QoS |
Max размер сообщений в байтах |
|
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
|
IP |
MSAFD TCP |
Поток |
да |
да |
да |
да |
нет |
нет |
нет |
без огр. |
|
MSAFD UDP |
Сооб-щения |
нет |
нет |
нет |
нет |
да |
да |
нет |
65467 | |
|
RSVP TCP |
Поток |
да |
да |
да |
да |
нет |
нет |
да |
без огр. | |
|
RSVP UDP |
Сооб-щения |
нет |
нет |
нет |
нет |
да |
да |
да |
65467 | |
|
Продолжение табл. 2 | ||||||||||
|
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
|
IPX / SPX |
MSAFD nwln kipx [IPX] |
Сооб-щения |
нет |
нет |
нет |
нет |
да |
да |
нет |
576 |
|
MSAFD nwin kspx [SPX] |
Сооб-щения |
да |
да |
да |
нет |
нет |
нет |
нет |
без огр. | |
|
MSAFD nwin kspx [SPX] псевдо поток |
Сооб-щения |
да |
да |
да |
нет |
нет |
нет |
нет |
без огр. | |
|
MSAFD nwin kspx [SPXII] |
Сооб-щения |
да |
да |
да |
да |
нет |
нет |
нет |
без огр. | |
|
MSAFD nwin kspx [SPXII] псевдо поток |
Сооб-щения |
да |
да |
да |
да |
нет |
нет |
нет |
без огр. | |
|
NetBIOS |
Sequential Packets Последо-ватель-ность пакетов |
Сооб-щения |
да |
да |
да |
нет |
нет |
нет |
нет |
65535 |
|
Datagrams дейта-граммы |
Сооб-щения |
нет |
нет |
нет |
нет |
да* |
нет |
нет |
65535 | |
|
ATM |
MSAFD ATM AAL5 |
Поток |
да |
нет |
да |
нет |
нет |
да |
да |
без огр. |
|
NATIVE ATM AAL5 |
Сооб-щения |
да |
нет |
да |
нет |
нет |
да |
да |
без огр. | |
|
Infrared Sockets |
MSAFD IrDA |
Поток |
да |
да |
да |
да |
нет |
нет |
нет |
без огр. |
* - поддерживает отправку дейтаграмм как уникальным, так и групповым клиентам, общее широковещание не поддерживается.
Сокеты Windows
Winsock API разрабатывался как расширение Berkley Sockets API для среды Windows и поэтому поддерживается всеми системами Windows. К преимуществам Winsock можно отнести следующее:
• Перенос уже имеющегося кода, написанного для Berkeley Sockets API, осуществляется непосредственно.
• Системы Windows легко встраиваются в сети, использующие как версию IPv4 протокола TCP/IP, так и постепенно распространяющуюся версию IPv6. Помимо всего остального, версия IPv6 допускает использование более длинных IP-адресов, преодолевая существующий 4-байтовый адресный барьер версии IPv4.
• Сокеты могут использоваться совместно с перекрывающимся вводом/выводом Windows (глава 14), что, помимо всего прочего, обеспечивает возможность масштабирования серверов при увеличении количества активных клиентов.
• Сокеты можно рассматривать как дескрипторы (типа HANDLE) файлов при использовании функций ReadFile и WriteFile и, с некоторыми ограничениями, при использовании других функций, точно так же, как в качестве дескрипторов файлов сокеты применяются в UNIX. Эта возможность оказывается удобной в тех случаях, когда требуется использование асинхронного ввода/вывода и портов завершения ввода/вывода.
• Существуют также дополнительные, непереносимые расширения.
WinSock – это сетевой интерфейс прикладного программирования, реализованный на всех платформах Win32, основной интерфейс доступа к разным базовым сетевым протоколам. Интерфейс унаследовал многое от реализации Berkeley (BSD) Sockets на платформах UNIX. В средах Win32 он стал абсолютно независимым от протокола, особенно с выпуском WinSock 2.
Термин сокеты (sockets) используется для обозначения описателей поставщиков транспорта. В Win32 сокет отличается от описателя файла, а потому представлен отдельным типом — SOCKET. С позиций эталонной модели OSI интерфейс Winsock расположен м/у сеансовым и транспортным уровнями. Под управлением Windows прикладной, представительский и сеансовый уровни, в основном относятся к вашему приложению. Cуществуют значительные отличия реализаций сокетов в UNIX и в Windows, что создает очевидные проблемы. Библиотека WinSock поддерживает два вида сокетов — синхронные (блокируемые) и асинхронные (неблокируемые). Синхронные сокеты задерживают управление на время выполнения операции, а асинхронные возвращают его немедленно, продолжая выполнение в фоновом режиме, и, закончив работу, уведомляют об этом вызывающий код.
Устаревшие ОС Windows 3.x поддерживали только асинхронные сокеты, поскольку в среде с корпоративной многозадачностью захват управления одной задачей «подвешивает» все остальные, включая и саму систему. ОС Windows 9x и NT/2000/XP поддерживают оба вида сокетов, однако в силу того, что синхронные сокеты программируются более просто, чем асинхронные, последние не получили большого распространения. Сокеты семейства протоколов TCP/IP используются для обмена данными между узлами сети Интернет.
Сокеты делятся на два типа — потоковые и дейтаграммные. Потоковые сокеты работают с установлением соединения, обеспечивая надежную идентификацию обоих сторон и гарантируя целостность и успешность доставки данных. Дейтаграмные сокеты работают без установления соединения и не обеспечивают ни идентификации отправителя, ни контроля успешности доставки данных, зато они заметно быстрее потоковых. Выбор того или иного типа сокетов определяется транспортным протоколом, на котором работает сервер, клиент не может по своему желанию установить с дейтаграммным сервером потоковое соединение.
