*

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 destinationaddress) 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: AddressResolution Protocol (ARP) (Протокол разрешения адреса) и ReverseAddress Resolution Protocol (RARP) (Протокол разрешения обратногоадреса). ARP использует широковещательные сообщения для определенияаппаратного адреса (уровень МАС), соответствующего конкретномумежсетевому адресу. ARP обладает достаточной степенью универсальности,чтобы позволить использование IP с практически любым типом механизма,лежащего в основе доступа к носителю. RARP использует широковещательные сообщения для определения адреса об'единенной сети,связанного с конкретным аппаратным адресом. RARP особенно важен дляузлов, не имеющих диска, которые могут не знать своего межсетевогоадреса, когда они выполняют начальную загрузку.


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

Устройства маршрутизации в сети Internet традиционно называются шлюзами (gateway), что является очень неудачннымтермином, т.к. повсеместно в индустрии сетей этот термин применяютдля обозначения устройства с несколько иными функциональными возможностями. Шлюзы (которые мы с этого моментабудем называть роутерами) в сети Internet организованы всоответствии с иерархическим принципом. Некоторые роутерыисползуются для перемещения информации через одну конкретную группусетей, находящихся под одним и тем же административным началом иуправлением (такой об'ект называется автономной системой -autonomous system).Роутеры, используемые для обмена информацией в пределахавтономных систем, называются внутренними роутерами (interiorrouters); они используют различные протоколы для внутреннихроутеров (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 (InternetControl 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".


IRDP

The ICMP Router Discovery Protocol (IRDP) uses router advertisement and router solicitation messages to discover addresses of routers on directly attached subnets.

The way IRDP works is that each router periodically multicasts router advertisement messages from each of its interfaces. Hosts discover the addresses of routers on the directly attached subnet by listening for these messages. Hosts can use router solicitation messages to request immediate advertisements, rather than waiting for unsolicited messages.

IRDP offers several advantages over other methods of discovering addresses of neighboring routers. Primarily, it does not require hosts to recognize routing protocols, nor does not it require manual configuration by an administrator.

Router advertisement messages allow hosts to discover the existence of neighboring routers, but not which router is best to reach a particular destination. If a host uses a poor first-hop router to reach a particular destination, it receives a redirect message identifying a better choice.


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


Транспортный уровень 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-tab1 показана связь между наиболее известными протоколамивысших уровней 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 низших уровней, чтобы обеспечить пользователей базовыми сетевыми услугами.


IP Multicast

The Internet Protocol suite was designed for communications between two computers using unicast addresses (that is, an address specifying a single network device). To send a message to all devices connected to the network, a single network device uses a broadcast address. These two forms of addressing have been sufficient for transferring traditional data (such as files and virtual terminal connections).

Now that application developers are trying to deliver the same data (such as the audio and video required for conferencing) to some, but not all, devices connected to the network, another form of addressing is required. The new form of addressing is called multicast addresses, and it involves the transmission of a single IP datagram to multiple hosts. This section describes the following techniques for supporting IP multicast addresses:

Because IP networks tend to have complex topologies with alternate paths built in for redundancy, each technique is evaluated for its ability to deliver data without burdening the network with duplicate packets.


UDP Flooding

UDP flooding depends on the spanning tree algorithm to place interfaces in the forwarding and blocking states. By placing certain interfaces in the blocking state, the spanning tree algorithm prevents the propagation of duplicate packets. The router sends specific packets (typically UDP packets) out the interfaces that are in the forwarding state. This technique saves bandwidth by controlling packet flow in topologies that feature redundant routers and alternate paths to the same destination. Figure 18-9 illustrates packet flow.

Figure 18-9 : UDP Flooding

s3142.gif

For more information about how the spanning tree algorithm works, see Chapter 29, "Transparent Bridging."


Subnet Broadcast

Subnet broadcast (defined in RFC 922) supports broadcasting to all the subnets of a particular network number. Packet duplication occurs when there are alternative paths in a network. In Figure 18-10, when Workstation A uses subnet broadcasting to send a packet to each workstation on Subnetwork 2, a duplicate packet also arrives.

Figure 18-10 : Subnet Broadcast

s3143.gif

Whenever there is a duplicate path in the network, a duplicate packet is delivered. Because many multicast applications are data intense, packet duplication is a significant disadvantage of subnet broadcast.


Internet Group Membership Protocol

Internet Group Membership Protocol (IGMP), defined in RFC 1112, relies Class D IP addresses for the creation of multicast groups. By using a specific Class D address, an individual host dynamically registers itself in a multicast group. Hosts identify their group memberships by sending IGMP messages. Traffic is then sent to all members of that multicast group.

Routers listen to IGMP messages and periodically send out queries to discover which groups are active on which LANs. To build multicast routes for each group, routers communicate with each other using one or more of the following routing protocols:

These routing protocols are discussed in the following sections.


Distance Vector Multicast Routing Protocol

Distance Vector Multicast Routing Protocol (DVMRP), defined in RFC 1075, uses a technique called reverse path flooding. With reverse path flooding, on receipt of a packet, the router floods the packet out all paths except the path that leads back to the source of the packet, which insures that a data stream reaches all LANs. If the router is attached to a LAN that does not want to receive a particular multicast group, the router sends a "prune" message back to the source to stop the data stream. When running DVMRP, routers periodically reflood the network to reach new hosts, using an algorithm that takes into account the frequency of flooding and the time required for a new multicast group member to receive the data stream.

To determine which interface leads back to the source of a data stream, DVMRP implements its own unicast routing protocol. The DVMRP unicast routing protocol is similar to RIP and is based on hop counts only. The path that multicast traffic follows may not be the same as the path that unicast traffic follows.

The need to reflood prevents DVMRP (especially early versions that do not implement pruning) from scaling well. In spite of its limitations, DVMRP is widely deployed in the IP research community. It has been used to build the multicast backbone (MBONE) across the Internet.

The MBONE is used to transmit conference proceedings and deliver desktop video conferencing. Networks that wish to participate in the MBONE dedicate special hosts to the MBONE. The hosts establish tunnels to each other over the IP Internet and run DVMRP over the tunnels. The MBONE is a very high consumer of bandwidth both because of the nature of the traffic (audio and video) and because it is implemented with host-based tunnels. Host-based tunnels tend to result in packet duplication, which the backbone networks transmit unnecessarily.

In addition, the MBONE relies on extremely knowledgeable administrators for support. In spite of their efforts, the MBONE has caused significant disruption to the Internet when popular events or multiple events are active.


Multicast Open Shortest Path First

Multicast Open Shortest Path First (MOSPF) is an extension to OSPF. OSPF is a unicast routing protocol that requires each router in a network to be aware of all available links in the network. Each OSPF router calculates routes from itself to all possible destinations. MOSPF works by including multicast information in OSPF link states. MOSPF calculates the routes for each source/multicast group pair when the router receives traffic for that pair. These routes are cached until a topology change occurs, which requires MOSPF to recalculate the topology.

MOSPF works only in internetworks that are using OSPF and is best suited for environments in which relatively few source/group pairs are active at any one time. MOSPF performance degrades in environments that have many active source/group pairs and in environments in which links are unstable.


Protocol Independent Multicast

Multicast traffic tends to fall into one of two categories: traffic that is intended for almost all LANs (known as dense) and traffic that is intended for relatively few LANs (known as sparse). Protocol Independent Multicast (PIM) is an Internet draft (under discussion by the IETF Multicast Routing Working Group) that has two modes of behavior for the two traffic types: dense mode and sparse mode. A router that is running PIM can use dense mode from some multicast groups and sparse mode for other multicast groups.


Dense Mode

In dense mode, PIM uses reverse path flooding and is similar to DVMRP. One significant difference between PIM and DVMRP is that PIM does not require a particular unicast protocol to determine which interface leads back to the source of a data stream. Instead, PIM uses whatever unicast protocol the internetwork is using.


Sparse Mode

In sparse mode, PIM is optimized for environments in which there are many data streams but each data stream goes to a relatively small number of the LANs in the internetwork. For this type of traffic, reverse path flooding wastes bandwidth.

PIM-SM works by defining a rendezvous point. When a sender wants to send data, it first sends to the rendezvous point. When a host wants to receive data, it registers with the rendezvous point. Once the data stream begins to flow from the sender, to the rendezvous point, and to the receiver, the routers in the path optimize the path automatically to remove any unnecessary hops, including the rendezvous point.


Comparison of Multicast Routing Protocols

Table 18-2 compares the characteristics of each routing protocol when handling multicast traffic.

Table 18-2 : Comparison of Multicast Routing Protocols


Protocol
Unicast Protocol Requirements
Flooding Algorithm

Environment
DVMRPRIPReverse path floodingSmall
MOSPFOSPFSPFFew senders, stable links
PIM-dense modeAnyRPFDense distribution pattern
PIM-sparse modeAnyNoneSparse distribution pattern





(back)



Главная страница