Полезная информация

*

Internetworking Technology Overview.

ГЛАВА 18. Протоколы Internet.



Библиографическая справка


В середине 1970 гг. Агентство по Внедрению Научно-исследовательских Проектов Передовой технологии при Министерстве обороны (DARPA) заинтересовалось организацией сети с коммутацией пакетов для обеспечения связи между научно-исследовательскими институтами в США. DARPA и другие правительственные организации понимали, какие потенциальные возможности скрыты в технологии сети с коммутацией пакетов; они только что начали сталкиваться с проблемой, с которой сейчас приходится иметь дело практически всем компаниям, а именно с проблемой связи между различными компьютерными системами.

Поставив задачу добиться связности гетерогенных систем, DARPA финансировала исследования, проводимые Стэнфордским университетом и компаниями Bolt, Beranek и Newman (BBN) с целью создания ряда протоколов связи. Результатом этих работ по разработке, завершенных в конце 1970 гг., был комплект протоколов Internet, из которых наиболее известными являются Transmission Control Protocol (TCP) и Internet Protocol (IP).

Протоколы Internet можно использовать для передачи сообщений через любой набор об'единенных между собой сетей. Они в равной мере пригодны для связи как в локальных, так и в глобальных сетях. Комплект протоколов Internet включает в себя не только спецификации низших уровней (такие, как ТСР и IP), но также спецификации для таких общих применений, как почта, эмуляция терминалов и передача файлов. На Рис. 18-1 представлены некоторые из наиболее важных протоколов Internet и их связь с эталонной моделью OSI.



Процесс разработки и выдачи документации протоколов Internet скорее напоминает академический исследовательский проект, чем что-либо другое. Протоколы определяются в документах, называемых Requests for Comments (RFC) (Запросы для Комментария). RFC публикуются, а затем рецензируются и анализируются специалистами по Internet. Уточнения к протоколам публикуются в новых RFC. Взятые вместе, RFC обеспечивают красочную историю людей, компаний и направлений, которые формировали разработку компекта протоколов для открытой системы, который сегодня является самым популярным в мире.


Сетевой уровень


IP является основным протоколом Уровня 3 в комплекте протоколов Internet. В дополнение к маршрутизации в об'единенных сетях, IР обеспечивает фрагментацию и повторную сборку дейтаграмм, а также сообщения об ощибках. Наряду с ТСР, IP представляет основу комплекта протоколов Internet. Формат пакета IP представлен на Рис. 18-2.



Заголовок IР начинается с номера версии (version number), который указывает номер используемой версии IP.

Поле длины заголовка (IHL) обозначает длину заголовка дейтаграммы в 32-битовых словах.

Поле типа услуги (type-of-service) указывает, каким образом должна быть обработана текущая дейтаграмма в соответствии с указаниями конкретного протокола высшего уровня. С помощью этого поля дейтаграммам могут быть назначены различные уровни значимости.

Поле общая длина (total length) определяет длину всего пакета IP в байтах, включая данные и заголовок.

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

Поле флагов (flags) (содержащее бит DF, бит MF и сдвиг фрагмента) определяет, может ли быть фрагментирована данная дейтаграмма и является ли текущий фрагмент последним.

Поле срок жизни (time-to-live) поддерживает счетчик, значение которого постепенно уменьшается до нуля; в этот момент дейтаграмма отвергается. Это препятствует зацикливанию пакетов.

Поле протокола (protocol) указывает, какой протокол высшего уровня примет входящие пакеты после завершения обработки IP.

Поле контрольной суммы заголовка (header checksum) помогает обеспечивать целостность заголовка ID.

Поля адресов источника и пункта назначения (source and destination address) oбoзначают отправляющий и принимающий узлы.

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

Поле данных (data) содержит информацию высших уровней.


Адресация

Как и у других протоколов сетевого уровня, схема адресации IP является интегральной по отношению к процессу маршрутизации дейтаграмм IP через об'единенную сеть. Длина адреса IP составляет 32 бита, разделенных на две или три части. Первая часть обозначает адрес сети, вторая (если она имеется) - адрес подсети, и третья - адрес главной вычислительной машины. Адреса подсети присутствуют только в том случае, если администратор сети принял решение о разделении сети на подсети. Длина полей адреса сети, подсети и главной вычислительной машины являются переменными величинами.

Адресация IP обеспечивает пять различных классов сети. Самые крайние левые биты обозначают класс сети.

Class A
Сети класса А предназначены главным образом для использования с несколькими очень крупными сетями, т.к. они обеспечивают всего 7 битов для поля адреса сети.
Class B
Сети класса В выделяют 14 битов для поля адреса сети и 16 битов для поля адреса главной вычислительной машины. Этот класс адреса обеспечивает хороший компромисс между адресным пространством сети и главной вычислительной машины.
Class C
Сети класса С выделяют 22 бита для поля адреса сети. Однако сети класса С обеспечивают только 8 битов для поля адреса главной вычислительной машины, поэтому число главных вычислительных машин, приходящихся на сеть, может стать ограничивающим фактором.
Class D
Адреса класса D резервируются для групп с многопунктовой адресацией (в соответствии с официальным документом RFC 1112). В адресах класса D четыре бита наивысшего порядка устанавливаются на значения 1,1,1 и 0.
Class E
Адреса класса Е также определены IP, но зарезервированы для использования в будущем. В адресах класса Е все четыре бита наивысшего порядка устанавливаются на 1.

Адреса IP записываются в формате десятичного числа с проставленными точками, например, 34.0.0.1. На рис. 18-3 представлены форматы адресов для сетей IP классов А, В и С.



Сети IP могут также быть разделены на более мелкие единицы, называемые подсетями (subnets). Подсети обеспечивают дополнительную гибкость для администратора сети. Например, предположим, что какой-то сети назначен адрес класса В , и что все узлы в сети в данный момент соответствуют формату адреса класса В. Далее предположим, что представлением адреса этой сети в виде десятичного числа с точками является 128.10.0.0. (наличие одних нулей в поле адреса главной вычислительной машины обозначает всю сеть). Вместо того, чтобы изменять все адреса на какой-то другой базовый сетевой номер, администратор может подразделить сеть, воспользовавшись организацией подсетей. Это выполняется путем заимствования битов из части адреса, принадлежащей главной вычислительной машине, и их использования в качестве поля адреса подсети, как показано на Рис. 18-4.



Если администратор сети решил использовать восемь битов для организации подсети, то третья восьмерка адреса IP класса В обеспечивает номер этой подсети. В нашем примере адрес 128.10.0. относится к сети 128.10, подсети 1; адрес 128.10.2.0. относится к сети 128.10, подсети 2, и т.д.

Число битов, занимаемых для адреса подсети, является переменной величиной. Для задания числа используемых битов IP обеспечивает маску подсети. Маски подсети используют тот же формат и технику представления адреса, что и адреса IP. Маски подсети содержат единицы во всех битах, кроме тех, которые определяют поле главной вычислительной машины. Например, маска подсети, которая назначает 8 битов организации подсети для адреса 34.0.0.0. класса А, представляет собой выражение 255.255.0.0. Маска подсети, которая определяет 16 битов организации подсети для адреса 34.0.0.0. класса А, представляется выражением 255.255.255.0. Обе эти маски изображены на Рис. 18-5.



Для некоторых носителей (таких как локальные сети IEEE 802), адреса носителя и адреса IP определяются динамически путем использования двух других составляющих комплекта протоколов Internet: Address Resolution Protocol (ARP) (Протокол разрешения адреса) и Reverse Address Resolution Protocol (RARP) (Протокол разрешения обратного адреса). ARP использует широковещательные сообщения для определения аппаратного адреса (уровень МАС), соответствующего конкретному межсетевому адресу. ARP обладает достаточной степенью универсальности, чтобы позволить использование IP с практически любым типом механизма, лежащего в основе доступа к носителю. RARP использует широковещательные сообщения для определения адреса об'единенной сети, связанного с конкретным аппаратным адресом. RARP особенно важен для узлов, не имеющих диска, которые могут не знать своего межсетевого адреса, когда они выполняют начальную загрузку.


Маршрутизация Internet

Устройства маршрутизации в сети Internet традиционно называются шлюзами (gateway), что является очень неудачнным термином, т.к. повсеместно в индустрии сетей этот термин применяют для обозначения устройства с несколько иными функциональными возможностями. Шлюзы (которые мы с этого момента будем называть роутерами) в сети Internet организованы в соответствии с иерархическим принципом. Некоторые роутеры исползуются для перемещения информации через одну конкретную группу сетей, находящихся под одним и тем же административным началом и управлением (такой об'ект называется автономной системой - autonomous system). Роутеры, используемые для обмена информацией в пределах автономных систем, называются внутренними роутерами (interior routers); они используют различные протоколы для внутренних роутеров (interior gateway protocol - IGP) для выполнения этой задачи. Роутеры, которые перемещают информацию между автономными системами, называются внешними роутерами (exterior routers); для этого они используют протоколы для внешних роутеров. Архитектура Internet представлена на Рис. 18-6.



Протоколы маршрутизации IP-это динамичные протоколы. При динамичной маршрутизации (dynamic routing) запросы о маршрутах должны рассчитываться программным обеспечением устройств маршрутизации через определенные интервалы времени. Этот процесс противоположен статической маршрутизации (static routing), при которой маршруты устанавливаются администратором сети и не меняются до тех пор, пока администратор сети не поменяет их. Таблица маршрутизации IP состоит из пар "адрес назначения/следующая пересылка". Образец записи данных, показанный на Рис. 18-7, интерпретируется как имеющий значение "добраться до сети 34.1.0.0. (подсеть 1 сети 34), следующей остановкой является узел с адресом 54.34.23.12."



Маршрутизация IP определяет характер перемещения дейтаграмм IP через об'единенные сети (по одной пересылке за раз). В начале путешествия весь маршрут не известен. Вместо этого на каждой остановке вычисляется следующий пункт назначения путем сопоставления адреса пункта назначения, содержащегося в дейтаграмме, с записью данных в маршрутной таблице текущего узла. Участие каждого узла в процессе маршрутизации состоит только из продвижения пакетов, базируясь только на внутренней информации, вне зависимости от того, насколько успешным будет процесс и достигнет или нет пакет конечного пункта назначения. Другими словами, IP не обеспечивает отправку в источник сообщений о неисправностях, когда имеют место аномалии маршрутизации. Выполнение этой задачи предоставлено другому протоколу Internet, а именно Протоколу управляющих сообщений Internet (Internet Control Message Protocol - ICMP).


ICMP

ICMP выполняет ряд задач в пределах об'единенной сети IP. В дополнение к основной задаче, для выполнения которой он был создан (сообщение источнику об отказах маршрутизации), ICMP обеспечивает также метод проверки способности узлов образовывать повторное эхо в об'единенной сети (сообщения Echo и Reply ICMP), метод стимулирования более эффективной маршрутизации (сообщение Redirect ICMP - переадресация ICMP), метод информирования источника о том, что какая-то дейтаграмма превысила назначенное ей время существования в пределах данной об'единенной сети (сообщение Time Exceeded ICMP - "время превыщено") и другие полезные сообщения. Сделанное недавно дополнение к IСМР обеспечивает для новых узлов возможность нахождения маски подсети, используемой в межсети в данный момент. В целом, ICMP является интегральной частью любых реализаций IP, особенно таких, которые используются в роутерах.

Конкретные протоколы маршрутизации IP рассматриваются в других главах данной книги. Например, RIP рассматривается в Главе 23 "RIP", IGRP - в Главе 24 "IGRP", OSPF - в Главе 25 "OSPF", EGP - в главе 26 "EGP" и BGP - в Главе 27 "BGP". IS-IS также является официальным протоколом маршрутизации IP; он рассматривается в Главе 28 "OSI Routing".


Транспортный уровень


Транспортный уровень Internet реализуется ТСР и Протоколом Дейтаграмм Пользователя (User Datagram Protocol - UDP). ТСР обеспечивает транспортировку данных с установлением соединения, в то время как UDP работает без установления соединения.


Протокол управления передачей (TCP)

Transmission Control Protocol (TCP) обеспечивает полностью дублированные, с подтверждением и управлением потоком данных, услуги для протоколов высших уровней. Он перемещает данные в непрерывном неструктурированном потоке, в котором байты идентифицируются по номерам последовательностей. ТСР может также поддерживать многочисленные одновременные диалоги высших уровней. Формат пакета ТСР представлен на Рис. 18-8.



Поле "порт источника" (source port) обозначает точку, в которой конкретный процесс высшего уровня источника принимает услуги ТСР; поле "порт пункта назначения" (destination port) обозначает порт процесса высшего уровня пункта назначения для услуг ТСР.

Поле "номер последовательности" (sequence number) обычно обозначает номер, присвоенный первому байту данных в текущем сообщении. В некоторых случаях оно может также использоваться для обозначения номера исходной последовательности, который должен использоваться в предстоящей передаче.

Поле "номер подтверждения" (acknowledgement number) содержит номер последовательности следующего байта данных, которую отправитель пакета ожидает для приема.

Поле "сдвиг данных" (data offset) обозначает число 32-битовых слов в заголовке ТСР.

Поле "резерв" (reserved) зарезервировано для использования разработчиками протокола в будущем.

Поле "флаги" (flags) содержит различную управляющую информацию.

Поле "окно" (window) обозначает размер окна приема отправителя (буферный об'ем, доступный для поступающих данных).

Поле "контрольная сумма" (checksum) указывает, был ли заголовок поврежден при транзите.

Поле "указатель срочности" (urgent pointer) указывает на первый байт срочных данных в пакете.

Поле "опции" (options) обозначает различные факультативные возможности ТСР.


Протокол дейтаграмм пользователя (UDP)

Протокол UDP намного проще, чем ТСР; он полезен в ситуациях, когда мощные механизмы обеспечения надежности протокола ТСР не обязательны. Заголовок UDP имеет всего четыре поля: поле порта источника (source port), поле порта пункта назначения (destination port), поле длины (length) и поле контрольной суммы UDP (checksum UDP). Поля порта источника и порта назначения выполняют те же функции, что и в заголовке ТСР. Поле длины обозначает длину заголовка UDP и данных; поле контрольной суммы обеспечивает проверку целостности пакета. Контрольная сумма UDP является факультативной возможностью.


Протоколы высших уровней


Комплект протоколов Internet включает в себя большое число протоколов высших уровней, представляющих самые разнообразные применения, в том числе управление сети, передача файлов, распределенные услуги пользования файлами, эмуляция терминалов и электронная почта. На Рис. 18-9 показана связь между наиболее известными протоколами высших уровней Internet и применениями, которые они поддерживают.



Протокол передачи файлов (File Transfer Protocol - FTP) обеспечивает способ перемещения файлов между компьютерными системами. Telnet обеспечивает виртуальную терминальную эмуляцию. Протокол управления простой сетью (Simle network management protocol - SNMP) является протоколом управления сетью, используемым для сообщения об аномальных условиях в сети и установления значений допустимых порогов в сети. X Windows является популярным протоколом, который позволяет терминалу с интеллектом связываться с отдаленными компьютерами таким образом, как если бы они были непосредственно подключенными мониторами. Комбинация протоколов Network File System (NFS) (Система сетевых файлов), External Data Representation (XDP) (Представление внешней информации) и Remote Procedure Call (RPC) (Вызов процедуры обращений к отдаленной сети) обеспечивает прозрачный доступ к ресурсам отдаленной сети. Простой протокол передачи почты (Simple Mail Transfer Protocol - SMTP) обеспечивает механизм передачи электронной почты. Эти и другие применения используют услуги ТСР/IP и других протоколов Internet низших уровней, чтобы обеспечить пользователей базовыми сетевыми услугами.


Данный документ подготовлен для HTML версии Владимиром Плешаковым.
Версия: 0.1

Vladimir V. Pleshakov , pvv@quorus.ru.