Совокупность протоколов Internet
Совокупность протоколов Internet {стек, или семейство протоколов TCP/IP) отличается от ранее рассмотренной модели OSI и обычно редуцируется до схемы, представленной на рис. 5.6. Обе архитектуры включают похожие уровни, в TCP/IP несколько слоев OSl-модели объединены в один.
Модель OSI
Прикладной Представительный Сеансовый Транспортный
Сетевой
Передача данных Физический
Рис. 5.7.
TCP/IP (Internet)
j Уровень приложений (прикладные i программы конечных пользователей)
Транспортный уровень (связь между программами в сети)
Сетевой уровень (базовые коммуникации, адресация и маршрутизация) j
j Канальный уровень (сетевые аппаратные j средства и драйверы устройств) j
L ___ . __________ . __________ ______ J
Структура стека протоколов TCP/IP
В Unix-системах список поддерживаемых протоколов содержится в файле /etc/protocols (табл. 5.5). В первой колонке здесь указаны названия программных модулей, поддерживающих протокол (взаимодействующих с драйвером, с сетевыми прикладными программами или с другими модулями), и, как видно из содержания колонки 2, всем основным протоколам присвоены уникальные номера.
Таблица 5.5. Фрагменты содержания файла /etc/protocols
|
Взаимодействие на уровне прикладных протоколов осуществляется путем обмена командами установления/прекращения соединений (типа open/close), приема/передачи (send/receive) и собственно данными. Прикладные протоколы (Telnet, электронная почта, Gopher, FTP, HTTP, WAIS) будут рассмотрены далее, совместно с информационными сервисами доступа к информационным ресурсам, здесь же мы ограничимся рассмотрением собственно протоколов TCP/IP — канального, сетевого, транспортного уровней. Вот эти протоколы:
• TCP — Transmission Control Protocol — базовый транспортный протокол, давший название всему семейству протоколов TCP/IP;
• UDP — User Datagram Protocol — второй по распространенности транспортный протокол семейства TCP/IP;
• IP — Internet Protocol — межсетевой протокол;
• ARP — Address Resolution Protocol — используется для определения соответствия IP-адресов и Ethernet-адресов;
• SLIP — Serial Line Internet Protocol — протокол передачи данных по телефонным линиям;
• РРР — Point to Point Protocol (протокол обмена данными «точка — точка»);
• RPC — Remote Process Control (протокол управления удаленными процессами);
• TFTP — Trivial File Transfer Protocol (тривиальный протокол передачи файлов);
• DNS — Domain Name System (система доменных имен);
• RIP — Routing Information Protocol (протокол маршрутизации).
Некоторые предварительные замечания. На каждом из уровней схемы рис. 5.7 физически коммуникация осуществляется блоками (пакетами), и при переходе с уровня на уровень реализуются следующие преобразования форматов: инкапсуляция/экс- капсуляция', фрагментация/дефрагментация.
Инкапсуляция
Инкапсуляция — способ упаковки данных в формате вышестоящего протокола в формат нижестоящего протокола. При этом один или несколько первичных пакетов преобразуются в один вторичный пакет и снабжаются управляющей информаци-
Уровень приложений (HTTP, FTP и т. п.)
|
Рис. 5.8. Инкапсуляция протоколов берхнего уровня в протоколы TCP/IP |
ей, характерной для принимающего уровня. Например, помещение пакета IP в качестве данных Ethernet-кадра, помещение TCP-сегмента в качестве данных в IP-пакет (рис. 5.8). При возврате на верхний уровень исходный формат восстанавливается в соответствии с обратной процедурой — экскапсуляцией.
Фрагментация
Фрагментация реализуется, если разрешенная длина пакета нижнего уровня недостаточна для размещения первичного пакета, при этом осуществляется «нарезка» пакетов (например, на пакеты SLIP или фреймы РРР); аналогично при возврате на первичный уровень пакет должен быть дефрагментирован.
При описании основных протоколов стека TCP/IP будем следовать модели, представленной на рис. 5.7. Первыми будут рассмотрены протоколы канального ровня SLIP и РРР. Это единственные протоколы, которые были разработаны в рамках Internet и для Internet. Другие протоколы, например NDIS или ODI, мы рассматривать не будем, поскольку они создавались в других сетях, хотя и могут использоваться также в сетях TCP/IP.