12. РЕАЛИЗАЦИЯ МЕЖСЕТЕВОГО
ВЗАИМОДЕЙСТВИЯ СРЕДСТВАМИ TCP/IP
12.1. Структура стека протоколов TCP/IP
В стеке TCP/IP определены 4
уровня (рис. 43). Каждый из этих уровней несет на себе некоторую нагрузку по
решению основной задачи — организации надежной и производительной работы
составной сети, части которой построены на основе разных сетевых технологий.
Уровень I |
Прикладной уровень |
Уровень II |
Основной (транспортный) уровень |
Уровень III |
Уровень межсетевого взаимодействия |
Уровень IV |
Уровень сетевых интерфейсов |
Рис. 43. Многоуровневая архитектура стека TCP/IP
Стержнем всей архитектуры является уровень межсетевого взаимодействия,
который реализует концепцию передачи пакетов в режиме без установления соединений,
дейтаграммным способом. Именно этот уровень
обеспечивает возможность перемещения пакетов по сети, используя тот маршрут,
который в данный момент является наиболее рациональным. Этот уровень также
называют уровнем internet, указывая тем самым на
основную его функцию — передачу данных через составную сеть.
Основным протоколом сетевого уровня (в терминах модели
OSI) в стеке является протокол IP (Internet Protocol). Этот протокол изначально проектировался как
протокол передачи пакетов в составных сетях, объединенных как локальными, так и
глобальными связями. Так как протокол IP является дейтаграммным
протоколом, он не гарантирует доставку пакетов до узла назначения.
К уровню межсетевого взаимодействия относятся и все
протоколы, связанные с составлением и модификацией таблиц маршрутизации, такие
как протоколы сбора маршрутной информации RIP (Routing
Internet Protocol) и OSPF (Open Shortest Path
First), а также протокол межсетевых управляющих сообщений
ICMP (Internet Control Message Protocol). Последний
протокол предназначен для обмена информацией об ошибках между маршрутизаторами сети и узлом-источником пакета. С помощью
специальных пакетов ICMP сообщает о невозможности доставки пакета, о превышении
времени жизни или продолжительности сборки пакета из фрагментов, о состоянии
системы и т. п.
Поскольку на сетевом уровне не устанавливаются
соединения, то нет никаких гарантий, что все пакеты будут доставлены целыми и
невредимыми или придут в том же порядке, в котором они были отправлены. Эту
задачу решает основной уровень стека
TCP/IP, называемый также транспортным.
На этом уровне функционируют протокол управления
передачей TCP (Transmission Control
Protocol) и протокол дейтаграмм пользователя UDP (User Datagram Protocol).
Протокол TCP обеспечивает надежную передачу сообщений за счет образования
логических соединений. Этот протокол позволяет равноранговым объектам
поддерживать обмен данными в дуплексном режиме. Он позволяет без ошибок
доставить сформированный поток байт в любой другой компьютер, входящий в
составную сеть. TCP делит поток байт на части — сегменты и передает их ниже лежащему уровню межсетевого
взаимодействия. После того как эти сегменты прибудут в пункт назначения,
протокол TCP снова соберет их в непрерывный поток байт.
Протокол UDP обеспечивает передачу прикладных пакетов дейтаграммным способом, как и протокол IP, и выполняет
только функции связующего звена (мультиплексора) между сетевым протоколом и
многочисленными службами прикладного уровня или пользовательскими процессами.
Прикладной
уровень объединяет все службы,
предоставляемые системой пользовательским приложениям. Прикладной уровень
реализуется программными системами, построенными в архитектуре клиент-сервер. В
отличие от протоколов остальных трех уровней, протоколы прикладного уровня
занимаются деталями конкретного приложения и «не интересуются» способами передачи
данных по сети. Этот уровень постоянно расширяется за счет присоединения к
старым, прошедшим многолетнюю эксплуатацию сетевым службам типа Telnet, FTP, TFTP, DNS, SNMP сравнительно новых служб
таких, например, как протокол передачи гипертекстовой информации HTTP.
Уровень
сетевых интерфейсов. Протоколы этого
уровня должны обеспечивать интеграцию в составную сеть других сетей, причем
сеть TCP/IP должна иметь средства включения в себя любой другой сети, какую бы
внутреннюю технологию эта сеть не использовала. Отсюда следует, что этот
уровень нельзя определить раз и навсегда.
Уровень сетевых интерфейсов в протоколах TCP/IP не
регламентируется, но он поддерживает все популярные стандарты физического и
канального уровней (локальные сети Ethernet, Token Ring, FDDI, Fast Ethernet, Gigabit Ethernet, 100VG-AnyLAN,
глобальные сети — протоколы соединений «точка-точка» SLIP и РРР, протоколы
территориальных сетей с коммутацией пакетов Х.25, frame
relay). Разработана также специальная спецификация,
определяющая использование технологии ATM в качестве транспорта канального
уровня.
Так как стек TCP/IP был разработан до появления модели
взаимодействия открытых систем ISO/OSI, то, хотя он также имеет многоуровневую
структуру, соответствие уровней стека TCP/IP уровням модели OSI достаточно
условно (рис. 44 и 45), но в тоже время не противоречит им.
Уровни модели OSI |
|
Уровни стека TCP/IP |
|||||||||
7 |
WWW, Gopher, WAIS |
SNMP |
FTP |
telnet |
SMTP |
TFTP |
I |
||||
6 |
|||||||||||
5 |
TCP |
UDP |
II |
||||||||
4 |
|||||||||||
3 |
IP |
ICMP |
RIP |
OSPF |
ARP |
III |
|||||
2 |
Не регламентируется Ethernet, Token Ring, FDDI, X.25, SLIP, PPP |
IV |
|||||||||
1 |
|||||||||||
Рис. 44. Соответствие уровней стека TCP/IP
семиуровневой модели OSI
Рис. 45. Сетезависимые и сетенезависимые уровни стека TCP/IP
Каждый коммуникационный протокол оперирует с некоторой
единицей передаваемых данных. Названия этих единиц иногда закрепляются
стандартом, а чаще просто определяются традицией. В стеке TCP/IP за многие годы
его существования образовалась устоявшаяся терминология в этой области (рис. 46).
Рис. 46. Название единиц данных, используемые
в TCP/IP
Потоком называют данные, поступающие от приложений на вход
протоколов транспортного уровня TCP и UDP.
Протокол TCP нарезает из потока данных сегменты.
Единицу данных протокола UDP часто называют дейтаграммой (или датаграммой).
Дейтаграмма — это общее название для единиц данных, которыми оперируют
протоколы без установления соединений. К таким протоколам относится и протокол
межсетевого взаимодействия IP.
Дейтаграмму протокола IP называют также пакетом.
В стеке TCP/IP принято называть кадрами (фреймами) единицы данных протоколов, на основе которых
IP-пакеты переносятся через подсети составной сети. При этом не имеет значения,
какое название используется для этой единицы данных в локальной технологии.