Рассмотрим прохождения блоков данных через стек протоколов, изображенный на
рис. 6.12. Если используется протокол TCP, данные передаются между уровнем
прикладных услуг и модулем TCP. Если на уровне прикладных услуг используется
протокол передачи FTP, стек протоколов будет иметь вид FTP/TCP/IP/ENET. При
использовании протокола UDP данные передаются между уровнем прикладных услуг и
модулем UDP. Если транспортными услугами UDP пользуется, например, "
простой
протокол управления сетью" SNMP (Simple Network Management Protocol), стек
протоколов имеет вид
SNMP/ UDP/ IP/ ENET.
Модули протоколов TCP, UDP и драйвер Ethernet работают как мультиплексоры
при продвижении блоков данных от нескольких протоколов верхнего уровня на один
выход. При обработке поступающих блоков данных каждый такой модуль работает как
демультиплексор: он направляет поток данных с одного входа на один из своих
выходов
в соответствии с полем типа в заголовке блока данных:
• данные Ethernet-кадра, поступившего на вход драйвера сетевого интерфейса
Ethernet, могут быть направлены либо в модуль ARP , либо в модуль IP в соответствии с
полем типа в заголовке Ethernet-кадра;
• данные IP-пакета, принятого модулем IP, могут быть переданы либо модулю TCP,
либо UDP, что определяется полем "
протокол" в заголовке IP-пакета;
• данные UDP-дейтаграммы, попавшей в модуль UDP, на основании значения поля
"порт" в заголовке дейтаграммы передаются прикладной программе;
• TCP-сообщение, попавшее в модуль TCP, на основании значения поля "порт" в
заголовке TCP-сообщения передается соответствующей прикладной программе.
Продвижение данных от верхних уровней к нижним уровням модели OSI
осуществляется просто,
так как из каждого модуля существует только один путь вниз:
данные от прикладного процесса проходят через модули TCP или UDP, после чего
попадают в модуль IP и оттуда – на уровень сетевого интерфейса, причем каждый
протокольный модуль добавляет к пакету свой заголовок, на основании которого
машина, принявшая пакет, выполняет демультиплексирование.
Обратимся к примеру на
рис. 6.12. Каждая машина имеет уникальный в пределах
всей сети Internet четырехбайтный IP-адрес, обозначающий точку доступа к сети на
интерфейсе модуля IP с драйвером. Каждая машина имеет также одну точку
подключения к Ethernet: уникальный шестибайтный Ethernet-адрес каждого сетевого
адаптера распознается драйвером, причем работающая машина всегда знает свой IP-
адрес и Ethernet-адрес.
Работа с несколькими сетевыми
интерфейсами