Реализация межсетевого взаимодействия средствами tcp/ip

В настоящее время стек TCP/IP является самым популярным средством" организа­ции составных сетей. На рис. 5.4 показана доля, которую составляет тот или иной стек протоколов в общемировой инсталляционной сетевой базе. До 1996 года бес­спорным лидером был стек IPX/SPX компании Novell, но затем картина резко изменилась — стек TCP/IP по темпам роста числа установок намного стал опере­жать другие стеки, а с 1998 года вышел в лидеры и в абсолютном выражении. Именно поэтому дальнейшее изучение функций сетевого уровня будет проводить­ся на примере стека TCP/IP.

Многоуровневая структура стека TCP/IP

В стеке TCP/IP определены 4 уровня (рис. 5.5). Каждый из этих уровней несет на себе некоторую нагрузку по решению основной задачи — организации надежной и производительной работы составной сети, части которой построены на основе раз­ных сетевых технологий.

Уровень межсетевого взаимодействия

Стержнем всей архитектуры является уровень межсетевого взаимодействия, который реализует концепцию передачи пакетов в режиме без установления соединений, то есть дейтаграммным способом. Именно этот уровень обеспечивает возможность пере­мещения пакетов по сети, используя тот маршрут, который в данный момент являет­ся наиболее рациональным. Этот уровень также называют уровнем internet, указывая тем самым на основную его функцию — передачу данных через составную сеть.

Основным протоколом сетевого уровня (в терминах модели OSI) в стеке является протокол IP (Internet Protocol). Этот протокол изначально проектировался как про­токол передачи пакетов в составных сетях, состоящих из большого количества ло­кальных сетей, объединенных как локальными, так и глобальными связями. Поэтому протокол IP хорошо работает в сетях со сложной топологией, рационально исполь­зуя наличие в них подсистем и экономно расходуя пропускную способность низко­скоростных линий связи. Так как протокол IP является дейтаграммньм протоколом, он не гарантирует доставку пакетов до узла назначения, но старается это сделать.

К уровню межсетевого взаимодействия относятся и все протоколы, связанные с составлением и модификацией таблиц маршрутизации, такие как протоколы сбора маршрутной информации RIP (Routing Internet Protocol) и OSPF (Open Shortest Path First), а также протокол межсетевых управляющих сообщений ICMP (Internet Control Message Protocol). Последний протокол предназначен для обмена инфор­мацией об ошибках между маршрутизаторами сети и узлом-источником пакета. С помощью специальных пакетов ICMP сообщает о невозможности доставки па­кета, о превышении времени жизни или продолжительности сборки пакета из фраг­ментов, об аномальных величинах параметров, об изменении маршрута пересылки и типа обслуживания, о состоянии системы и т. п.

Основной уровень

Поскольку на сетевом уровне не устанавливаются соединения, то нет никаких га­рантий, что все пакеты будут доставлены в место назначения целыми и невреди­мыми или придут в том же порядке, в котором они были отправлены. Эту задачу — обеспечение надежной информационной связи между двумя конечными узлами — решает основной уровень стека TCP/IP, называемый также транспортным.

На этом уровне функционируют протокол управления передачей TCP (Trans­mission Control Protocol) и протокол дейтаграмм пользователя UDP (User Datagram Protocol). Протокол TCP обеспечивает надежную передачу сообщений между уда­ленными прикладными процессами за счет образования логических соединений. Этот протокол позволяет равноранговым объектам на компьютере-отправителе и компьютере-получателе поддерживать обмен данными в дуплексном режиме. TCP позволяет без ошибок доставить сформированный на одном из компьютеров поток байт в любой другой компьютер, входящий в составную сеть. TCP делит поток байт на части — сегменты и передает их ниже лежащему уровню межсетевого вза­имодействия. После того как эти сегменты будут доставлены средствами уровня межсетевого взаимодействия в пункт назначения, протокол TCP снова соберет их в непрерывный поток байт.

Протокол UDP обеспечивает передачу прикладных пакетов дейтаграммным способом, как и главный протокол уровня межсетевого взаимодействия IP, и вы­полняет только функции связующего звена (мультиплексора) между сетевым про­токолом и многочисленными службами прикладного уровня или пользовательскими процессами.

Прикладной уровень

Прикладной уровень объединяет все службы, предоставляемые системой пользова­тельским приложениям. За долгие годы использования в сетях различных стран и организаций стек TCP/IP накопил, большое количество протоколов и служб при-

кладного уровня. Прикладной уровень реализуется программными системами, построенными в архитектуре клиент-сервер, базирующимися на протоколах нижних уровней. В отличие от протоколов остальных трех уровней, протоколы прикладно­го уровня занимаются деталями конкретного приложения и «не интересуются» способами передачи данных по сети. Этот уровень постоянно расширяется за счет присоединения к старым, прошедшим многолетнюю эксплуатацию сетевым служ­бам типа Telnet, FTP, TFTP, DNS, SNMP сравнительно новых служб таких, напри­мер, как протокол передачи гипертекстовой информации HTTP.

Уровень сетевых интерфейсов

Идеологическим отличием архитектуры стека TCP/IP от многоуровневой органи­зации других стеков является интерпретация функций самого нижнего уровня — уровня сетевых интерфейсов. Протоколы этого уровня должны обеспечивать ин­теграцию в составную сеть других сетей, причем задача ставится так: сеть TCP/IP должна иметь средства включения в себя любой другой сети, какую бы внутрен­нюю технологию передачи данных эта сеть не использовала. Отсюда следует, что этот уровень нельзя определить раз и навсегда. Для каждой технологии, включае­мой в составную сеть подсети, должны быть разработаны собственные интерфейс­ные средства. К таким интерфейсным средствам относятся протоколы инкапсуляции IP-пакетов уровня межсетевого взаимодействия в кадры локальных технологий. Например, документ RFC 1042 определяет способы инкапсуляции IP-пакетов в кадры технологий IEEE 802. Для этих целей должен использоваться заголовок LLC/ SNAP, причем в поле Туре заголовка SNAP должен быть указан код 0х0800. Только для протокола Ethernet в RFC 1042 сделано исключение — помимо заголовка LLC/ SNAP разрешается использовать кадр Ethernet DIX, не имеющий заголовка LLC, зато имеющий поле Туре. В сетях Ethernet предпочтительным является инкапсу­ляция IP-пакета в кадр Ethernet DIX.

Уровень сетевых интерфейсов в протоколах TCP/IP не регламентируется, но он поддерживает все популярные стандарты физического и канального уровней:

для локальных сетей это Ethernet, Token Ring, FDDI, Fast Ethernet, Gigabit Ethernet, lOOVG-AnyLAN, для глобальных сетей — протоколы соединений «точка-точка» SLIP и РРР, протоколы территориальных сетей с коммутацией пакетов Х.25, frame relay. Разработана также специальная спецификация, определяющая использование тех­нологии АТМ в качестве транспорта канального уровня. Обычно при появлении новой технологии локальных или глобальных сетей она быстро включается в стек TCP/IP за счет разработки соответствующего RFC, определяющего метод инкап­суляции IP-пакетов в ее кадры (спецификация RFC 1577, определяющая работу IP через сети АТМ, появилась в 1994 году вскоре после принятия основных стан­дартов этой технологии).

Соответствие уровней стека TCP/IP семиуровневой модели ISO/OSI)

Так как стек TCP/IP был разработан до появления модели взаимодействия откры­тых систем ISO/OSI, то, хотя он также имеет многоуровневую структуру, соответ­ствие уровней стека TCP/IP уровням модели OSI достаточно условно (рис. 5.6). Рассматривая многоуровневую архитектуру TCP/IP, можно выделить в ней, подобно архитектуре OSI, уровни, функции которых зависят от конкретной технической реализации сети, и уровни, функции которых ориентированны на работу с приложениями (рис. 5.7).


Протоколы прикладного уровня стека TCP/IP работают на компьютерах, вы­полняющих приложения пользователей. Даже полная смена сетевого оборудова­ния в общем случае не должна влиять на работу приложений, если они получают доступ к сетевым возможностям через протоколы прикладного уровня.

Протоколы транспортного уровня уже более зависят от сети, так как они реализу­ют интерфейс к уровням, непосредственно организующим передачу данных по сети. Однако, подобно протоколам прикладного уровня, программные модули, реализу­ющие протоколы транспортного уровня, устанавливаются только на конечных уз­лах. Протоколы двух нижних уровней являются сетезависимыми, а следовательно, программные модули протоколов межсетевого уровня и уровня сетевых интерфей­сов устанавливаются как на конечных узлах составной сети, так и на маршрути­заторах.

Каждый коммуникационный протокол оперирует с некоторой единицей пере­даваемых данных. Названия этих единиц иногда закрепляются стандартом, а чаще просто определяются традицией. В стеке TCP/IP за многие годы его существова­ния образовалась устоявшаяся терминология в этой области (рис. 5.8).

Потоком называют данные, поступающие от приложений на вход протоколов транспортного уровня TCP и UDP.

Протокол TCP нарезает из потока данных сегменты.

Единицу данных протокола UDP часто называют дейтаграммой (или датаграм-мой). Дейтаграмма — это общее название для единиц данных, которыми оперируют протоколы без установления соединений. К таким протоколам относится и прото­кол межсетевого взаимодействия IP.

Дейтаграмму протокола IP называют также пакетом.

В стеке TCP/IP принято называть кадрами (фреймами) единицы данных про­токолов, на основе которых IP-пакеты переносятся через подсети составной сети. При этом не имеет значения, какое название используется для этой единицы дан­ных в локальной технологии.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: