Основные протоколы IP-сетей

Основные протоколы, используемые в сети Интернет, разрабатывались для работы па опре­деленном уровне модели OSI. Список протоколов очень большой, т.к. разрабатывались они агентствами (DARPA), организациями по стандартизации (IEEE, ISO, ITU-T), компаниями (Apple, Banyan, Cisco, DEC, IBM, Novell, SUN), форумами (AF, FRF) и группами (IETF, RFC). Наиболее крупный вклад внесли: DARPA (TCP/IP), Apple (AppleTalk), Novell (стек Novell).

Обзор основных протоколов

Ниже названы только протоколы стека TCP/IP, имеющие непосредственное отношение к нашей теме. Принадлежность к определенному уровню модели OSI в ряде случаев условна. Мы будем придерживаться позиций, изложенных в руководстве по ЛС (Dalacom Networking. -Ericsson Radio System AB, 2001 [1]) и справочнике (A world of protocols. Millennium Edition. - RADCOM Academy, 1999 [2]), учитывая логику и степень представленной аргументации. В руководстве [1] неко­торые протоколы, принадлежность которых к определенному уровню OSI фантомна, назва­ны аномальными. Так, протоколы BGP и RIP (по логике функций, которые они осуществля­ют) приписаны к верхним уровням, а протоколы EGP, ICMP, IGMP, OSPF - к уровню 4, а в [2] они отнесены к уровню 3. Протоколы ARP и RARP в [1] приписаны к уровню 3, а в [2] - к уровню 2.

Принадлежность протокола определенному уровню легко прослеживается, если пред­ставить протоколы в виде иерархической схемы (па базе схема OSI): верхние уровни (уровни 5-7), транспортный уровень (4), сетевой уровень (3) и уровень звена данных (2), рис. 12-1. Здесь уровни взаимодействуют через точки входа с верхнего па нижний уровень и описаны как:

· номер порта - точка входа на уровень 4 - поле "номер порта назначения" протоколов уровня 4: TCP и UDP;

· номер протокопа - точка входа на уровень 3 - поле "номер протокола" протокола IP; эти номера уникальны в рамках Интернета и опубпикованы в RFC 1700;

· код типа - точка входа на уровень 2 - поле "код типа"протокола уровня звена данных Ethernet.

 

 

 

Рис.12-1. Иерархическая четырехуровневая схема взаимодействия протоколов

Так, протоколы RIP и OSPF выполняют функции динамической маршрутизации, но используют разные алгоритмы. Протоколу RIP присвоен номер порта назначения (520 для UDP), используемый как его ID при инкапсуляции на уровне 4, то он, согласно [1], должен относиться к уровню 5. Протокол OSPF не имеет номера порта, а имеет номер протокола (9), используемый как его ID при инкапсуляции на уровне 3, поэтому он должен принадлежать к уровню 4, а не к уровню 3, как указано в [2]. Итак, принимая гипотезу условности и аномальности, имеем для стека TCP/IP следующее распределение протоколов по уровням [1]:

- верхние уровни - основными протоколами являются (в скобках номера портов): BGP(179), ВООТР, FTP(20,21), НТТР(80), RIP(39), SMTP(25), Telnet(23), TFTP(69), другими протоколами м.б.: DHCP, DNS(53), IMAP2(143), NTP(123), РОРЗ(ПО), RADIUS, SNMP(161);

- транспортный уровень - основными протоколами являются: TCP и UDP, другими протоколами м.б.: EGP, EIGRP, ICMP, IGMP, IGP, IGRP, OSPF, RSVP, ХТР;

- сетевой (Интернет) уровень - основные протоколы: IP, ARP, RARP, другими протоколами м.б.: IARP, Р1М и пр.;

- уровень звена данных - д.б. представлен протоколами, характеризующими основные технологии ПС: IEEE 802.2 (LLC), 802.3 (Ethernet), 802.5 (TR), 802.6 (FDDI), PPP, LAPB, LAPD, LABF, LABM и др. (не относятся к стеку TCP/IP); протоколы: CSLIP, RSRB, SLIP и др. (относятся к стеку TCP/IP) [2].

Известно, что существуют сотни Интернет-протоколов, работающих на различных уров­нях модели OSI. Ниже приведен ряд широко используемых протоколов стека TCP/IP (расшиф­ровку сокращений и краткие сведения о них можно найти в [1,2]), а также в словаре: Слепов Н.Н. Англо-русский толковый словарь сокращений в области связи. 3-е изд. - М.: Радио и связь, 2005 [3]).

Протоколы верхних уровней можно разбить на две группы: тс, что служат непосредственно конечным пользователям (1), и тс, которые обеспечивают служебные функции (2). К первой группе относят: ВОР, ВООТР, FTP, HTTP, RIP, SMTP, Telnet, TFIT.

Ко второй группе относят: DHCP, DNS, 1МЛР, NTP, POP3, RADIUS, SNMP.

Протоколы транспортного уровня. К ним относятся: TCP и UDP (подробно описаны ниже). К группе протоколов уровня 4 относятся также: EGP, EIGRP, IGP, IGRP, OSPF, RSRV, ХТР.

Протоколы сетевого уровня. К ним относятся (за исключением IP, описанного ниже): ARP, IARP, ICMP, IGMP, PIM, RARP.

Протоколы уровня звена данных. К ним относятся, напр.: CSLIP, RSRB, SLIP.

Протокол IP

IP-протокол - протокол дейтаграммного пита, работающий в JIC па уровне 3 и не требую­щий предварительного установления соединения. Он не контролирует факт прибытия дейта­граммы и качество се доставки. Поэтому считается ненадежным, не позволяющим использо­вать классы QoS, по он используется для передачи любого трафика по сети Интернет.

IP может (например, при наличии ошибок) сбросить дейтаграмму (DG) в корзину, не уве­домляя об этом источника, или фрагментировать ее. Но он может приложить все усилия (best efforts - 0-й уровень QoS) для се восстановления, облегчая се прохождение но сети.

IP описан в документе RFC 791 и фигурирует как стандарт IETF STD 0005. На практике он существует в двух модификациях IPv4 и IPv6, которые кратко описаны ниже.

Протокол IPv4

Формат заголовка протокола IP, поля опций и данных приведены на рис.12-2. Его заголовок - 20 байт (первые 5 строк по 4 байта). Он состоит из полей (биты нумеруются справа налево):

- Ver - Version - номер версии (4 бита: байт 0, биты 4-7): 0100 - версия IPv4,0101 - Stream Datagram Mode, 0110 - версия IPv6; связь между абонентами гарантируется, если они работают с одной версией IP; пакеты другой версии сбрасываются;

- IHL - Internet Header length - длина Интернет-заголовка (4 бита: байт 0, биты 0-3), 0101 - 20 байт; вообще же величина от 5 до 15 (умноженная на 4 она дает длину заголовка и служит указателем начала поля данных);

- Total length - общая длина DG (байты 2,3), м.б. до 216-1 (т.е. до 65535 байт), минимальная длина - 576 байт;

- ToS - Type of Service - тип сервиса (байт 1, биты 0-7), используется только для опции Diflserv (IETF); биты 0-2 указывают на тип DG: 000 - обычная, 111 - управляющая; другие биты используют протоколы: OSPF, BGP;

- Identification- ID-номер (байты 4,5), используется для идентификации фрагментов DG при сборке;

- Flags - поле флагов (байт 6, биты 5-7), 0 в бите 5 означает последний фрагмент DG, бит 6 не используется, 1 в бите 7 означает, что фрагментация невозможна, и, если промежуточная сеть не может передать DG такой длины, то она сбрасывает DG в корзину, а протокол ICMP сообщает об этом хосту, создавшему DG;

- Fragment Offset - поле смещения (13 бит в байтах 6, 7); если DG велика для промежуточной сети, она разби вается на фрагменты, их размеры д.б. в пределах 0-65535 (216-1);

- Time To Live (TTL, байт 8) - максимальное время жизни DG в секундах (1-255) до момента сброса (по умолча нию TTL=64);

- Protocol - тип протокола (байт 9), используемого с IP: 1 (ICMP), 2 (IGMP), 4 (IP), 6 (TCP), 17 (UDP), 88 (IGRP) 9,89 (OSPF), см. RFC 1700;

- Header Checksum - контрольная сумма заголовка (байты 10,11), пересчитывается, если заголовок меняется;

- Source IP Address - IP-адрес источника/отправителя (4 байта: 12-15), м.б. класса А, В, С (см. ниже);

- Destination IP Address - IP-адрес назначения/получателя (4 байта: 16-19), м.б. А, В, С, D (см. ниже);

- Options - опции (если есть, то они занимают поле длиной до 3 байт);

- Padding - дополнение к заголовку (1-3 байта), выравнивает общую длину до величины, кратной 4 байтам; IP Data - IP-данные (длина данных д.б. такова, чтобы общая длина IP-пакета не превышала 65535 байтов).

байт 0 6айт1 байты 2-3
7-6-5-4 13-2-1-0 7-0 7-0 7-0
Ver IHL ToS Total length
Identification Flaqs Fragment offset
TTL Protocol Header checksum
Адрес источника (SA)
Адрес назначения (DA)
Options + Padding
IP Data
           

 

Рис.12-2. Заголовок протокола IPv4

При передаче DG по ЛС или ГлС она инкапсулируется в ноле PL (поле данных) кадров Ethernet, TR, FDDI, X.25 (IPoX.25), FR (IPoFR), ATM (IPoATM) на уровне звена данных. Если DG велика и не м.б. инкапсулирована в кадр, она разбивается маршрутизатором на фрагменты. Их длина зависит от размера максимального передаваемого блока (MTU), определяемого ЛС или ГлС. Так, для Ethernet MTU=1500 байт, а для FDDI=4096 байт. Полученные фрагменты идентифицируются в поле Fragment offset (смещение) относительно начала DG. Получить смещение в байтах можно, умножив значение этого поля на 8 (1-й фрагмент имеет нулевое смещение). Смещение учитывается при сборке фрагментов DG в узле назначения.

Протокол IPv6

IPv6 - новая версия протокола IP (RFC 1883), принята IETF в 1996г. и обновлена в 1998г. (RFC 2460). В Интернет поддерживаются обе версии IP (v4 и v6), причем передача IPv6 по сегменту, поддерживающему только IPv4, происходит по методу туннельной проводки (RFC 1933), а стек протоколов TCP/IP на уровне 3 становится двойным. Узлы сети, поддерживающие обе версии IP, называются IРv6/IРv4-узлами. Протокол IPv6 имеет следующие особенности:

· поддерживается схема адресации на основе протокола CIDR:

- CIDR (Classless Inter-Domain Routing) - маршрутизация между доменами сети без использования адресных классов - техника группирования маршрутов, уменьшающая объем передаваемых данных (RFC 1517-1519);

· введено использование физического адреса устройства (МАС-адреса) в качестве номера узла (т.е. нет необхо­димости использовать протокол конвертации адреса ARP);

· уменьшен заголовок IР-дейтаграмм;

 

· фрагментация DG осуществляется на конечных узлах (нужный размер MTU определяется автоматически).

Адресация IPv6 существенно отличается от адресации IPv4. Адреса источни­ка/отправителя и назначения/получателя имеют длину 16 байт (или 128 бит), т.е. нет проблемы дефицита адресов в сети: адресное пространство – 2128 , или 3,4 • 1038 (разница с IPv4 - 29 по­рядков!). Вместо двух уровней иерархии адресов: адрес сети и адрес устройства (как это было в IPv4), используется пять уровней иерархии адресов:

 

Префикс ID провайдера ID абонента ID подсети ID узла/ПК/хоста

 

Префикс (заменяющий Класс сети) определяет тип используемого адреса. Их много (по­рядка 20), они отличаются назначением и долей используемого адресного пространства. Ниже показан формат адреса с префиксом 010 для Адресов идентификации провайдера с макси­мальной долей адресного пространства 1/8.

 

Префикс ID организации ID провайдера Резерв ID абонента Резерв Адрес сети и устройства
5 бит 16 бит 8 бит 24 бита 8 бит 64 бита

 

Поле "ID-организации" определяет организацию, ответственную за выделение адресов провайдерам: InterNIC (Америка), RIPE (Европа), APNIC (Азия). Резервные поля оставлены для будущего расширения, 64 бита оставлено под поле "Адрес сети и устройства". Поле за­полняется по тем же правилам, что и для протокола IPv4 с классами А, В и С. Абонентом здесь м.б. любая другая организация, которая (в свою очередь) может организовать несколько уров­ней иерархии в своей сети. IPv6 еще вводит адреса типа:

· unicast- единственный адрес, или адрес уникастинга, который м.б. глобальным (global) - основной тип адре­са в Интернет, или локальным, который делится на локальное звено (link-local} и локальный узел (site-local) -тип адреса в сетях, не связанных с Интернет (ATM, FR, Ethernet, TR, FDDI); позволяет подключать ЛС без ре­конфигурации сетевых адресов (имеет 118 бит для адресного поля и 10 бит для префикса);

· multicast - групповой адрес, или адрес мультикастинга, поддерживает групповую передачу данных;

· anycast- адрес любого в группе, или эфес эникастинга - групповой адрес для прохождения группового тра­фика через маршрутизаторы некоторых провайдеров так, чтобы DG м.б. доставлена любому члену группы, IPv6 использует "маршрутизацию от источника" (source routing), которая освобождает маршрутизаторы от ана­лиза таблиц маршрутизации, уменьшая время обработки DQ; адрес эникастинга присваивается портам мар­шрутизатора как второй адрес, общий для всех маршрутизаторов в сети данного провайдера.

Протокол IPv6 не имеет широковещательного адреса, или бродкастинга (broadcasting), который заменен мулыпикастиигом и эникастингом для повышения гибкости, эффективности и большей управляемости сети, а также для исключения флудиига (flooding) - "наводнения" в сети, вызванного массовой рассылкой пакетов при бродкастипге.

Для совместимости с IPv6 используется адрес IPv4-compatible, который занимает 32 младших бита в 128-битном поле адреса IPv6. Заголовок DG при этом бывает двух типов: ос­новной и дополнительный.

Основной заголовок имеет длину 40 байт и присутствует всегда, его формат см. ниже.

 

Version (Номер перси») (4 бита) Priority (Приоритет) (4 бита) Protocol label (Метка протокола) (24 бита)
Длина поля полезной нагрузки (16 бит) Следующий заголовок (8 бит) Предельное число переходов (8 бит)
Адрес источника/отправителя (128 бит)
Адрес назначения/получателя (128 бит)
IP-данные (Поле данных)

 

Рис.12-3. Заголовок протокола Ipv6

Здесь представлены следующие обозначения:

- Первое поле аналогично полю Version в заголовке IPv4;

- Поле "Приоритет" устанавливает приоритет DG (0-7 - низкоприоритетный, 8-15 - приоритетный трафик);

- Поле "Метка протокола" содержит подполе "Метка потока" (Flow label) для идентификации DG, требующее от маршрутизаторов особого обслуживания, за которое отвечает протокол резервирования ресурсов RSVP;

- Поле "Следующий заголовок" определяет тип заголовка, следующего за "Полем данных"; если заголовка нет, то поле соответствует полю Protocol в заголовке IPv4, определяющему протокол, работающий с IP.

Дополнительный заголовок определяет некоторые параметры. Заголовки в IPv6:

Routing- заголовок, определяющий полный маршрут (список IP-адресов) - используется маршрутизация от источника;

Fragmentation- заголовок, содержит сведения о фрагментации на конечных узлах сети (размер MTU опреде­ляет отправитель, он может корректироваться при прохождении по сети с помощью сообщений ICMP);

Authentication- заголовок, идентифицирует конечные узлы и обеспечивает целостность DG;

Encryption - заголовок, используемый для шифрования и дешифровки передаваемых данных;

Hop-by-Hop Option - заголовок, содержит параметры, проверяемые узлами на маршруте (отладка маршрута);

Destination Option - заголовок, содержит дополнительную информация для узла назначения/получателя. Дополнительный заголовок содержит тип следующего заголовка, формируя цепочку заголовков.