Поле общей длины занимает 2 байта и характеризует общую длину пакета с учетом заголовка и поля данных
Идентификатор пакета занимает 2 байта и используется для распознавания пакетов, образовавшихся путем деления на части (фрагментации) исходного пакета
Флаги занимают 3 бита и содержат признаки, связанные с фрагментацией
Поле смещения фрагмента занимает 13 бит и задает смещение в байтах поля данных этого фрагмента относительно начала поля данных исходного (нефрагментированного) пакета
Поле времени жизни (Time То Live, TTL) занимает один байт и используется для задания предельного срока, в течение которого пакет может перемещаться по сети
Поле протокола верхнего уровня занимает 1 байт и содержит идентификатор, указывающий, какому протоколу верхнего уровня принадлежит информация, размещенная в поле данных пакета
Контрольная сумма заголовка занимает 2 байта (16 бит) и рассчитывается только по заголовку
Поля IP-адресов источника и приемника имеют одинаковую длину — 32 бита.
IP: Version = 4 (0x4)
IP: Header Length = 20 (0x14)
IP: Service Type = 0 (0x0)
IP: Precedence = Routine
IP: ...0.... = Normal Delay
IP: ....0... = Normal Throughput
IP: ....0.. = Normal Reliability
IP: Total Length = 54 (0x36)
IP: Identification = 31746 (0x7C02)
IP: Flags Summary = 2 (0x2)
IP: ...... 0 = Last fragment in datagram
IP: ..... 1. = Cannot fragment datagram
IP: Fragment Offset = 0 (0x0) bytes
IP: Time to Live = 128 (0x80)
IP: Protocol = TCP - Transmission Control
IP: Checksum = 0xEB86
IP: Source Address = 194.85.135.75
IP: Destination Address = 194.85.135.66
IP: Data: Number of data bytes remaining = 34 (0x0022)
Следует отметить
При наличии у маршрутизатора блока управления (например, по протоколу SNMP) этот блок имеет собственные локальный и сетевой адреса, по которым к нему обращается центральная станция управления. Эти адреса выбираются из того же пула, что и адреса физических интерфейсов маршрутизатора. В технической документации такого рода адреса называются адресами обратной петли (looopback address) или адресами виртуальных интерфейсов (virtual interface address). В отличие от адресов 127.х.х.х, зарезервированных для передачи данных между программными компонентами, находящимися в пределах одного компьютера, адреса виртуальных интерфейсов предполагают обращение к ним извне.
Однако в некоторых случаях возникает необходимость для одного из узлов сети определить специфический маршрут, отличающийся от маршрута, заданного для всех остальных узлов сети. Для этого в таблицу маршрутизации помещают для данного узла отдельную строку, содержащую его полный IP-адрес и соответствующую маршрутную информацию
Внимание!
Последовательность фаз в данном алгоритме строго определена, в то время как последовательность просмотра или, что одно и то же, порядок расположения строк в таблице, включая запись о маршруте по умолчанию, никак не сказывается на результате
Следует отметить
Поскольку между структурой сети и таблицей маршрутизации нет однозначного соответствия, для каждого из приведенных вариантов таблицы можно предложить свои «подварианты», отличающиеся выбранным маршрутом к той или иной сети. В данном случае внимание концентрируется на существенных различиях в форме представления маршрутной информации разными реализациями маршрутизаторов
Признак непосредственно подключенной сети говорит маршрутизатору, что пакет уже достиг своей сети, поэтому протокол IP активизирует ARP-запрос относительно IP-адреса узла назначения, а не следующего маршрутизатора
Флаги записей присутствуют только в таблице маршрутизатора ОС Unix.
U — маршрут активен и работоспособен. Аналогичный смысл имеет поле статуса в аппаратном маршрутизаторе.
Н — признак специфического маршрута к определенному хосту.
G — маршрут пакета проходит через промежуточный маршрутизатор (шлюз). Отсутствие этого флага отмечает непосредственно подключенную сеть.
D — маршрут получен из перенаправленного сообщения протокола ICMP. Этот признак может присутствовать только в таблице маршрутизации конечного узла
ftp unix.mgu.com
Выполнение этой команды инициирует три последовательные операции:
1. DNS-клиент (работающий на компьютере cit.mgu.com) передает DNS-серверу сообщение, в котором содержится запрос об IP-адресе сервера unix.mgu.com, с которым он хочет связаться по протоколу FTP.
2. DNS-сервер, выполнив поиск, передает ответ DNS-клиенту о найденном IP-адресе сервера unix.mgu.com.
3. FTP-клиент (работающий на том же компьютере cit.mgu.com), используя найденный IP-адрес сервера unix.mgu.com, передает ему сообщение.
Маршрутизация с использованием масок
Алгоритм маршрутизации усложняется, когда в систему адресации узлов вносятся дополнительные элементы — маски. Часто администраторы сетей испытывают неудобства, поскольку количества централизованно выделенных им номеров сетей недостаточно для того, чтобы структурировать сеть надлежащим образом, например, развести все слабо взаимодействующие компьютеры по разным сетям. В такой ситуации возможны два пути. Первый — получение от какого-либо центрального органа дополнительных номеров сетей. Второй, более распространенный, — использование технологии масок, позволяющей разделить одну имеющуюся сеть на несколько.
Следует отметить
Некоторые программные и аппаратные маршрутизаторы, следуя устаревшим рекомендациям RFC 950, не поддерживают номера подсетей, которые состоят либо только из одних нулей, либо только из одних единиц. Например, для такого типа оборудования номер сети 129.44.0.0 с маской 255.255.192.0, использованной в нашем примере, окажется недопустимым, поскольку в этом случае разряды в поле номера подсети имеют значение 00. По аналогичным соображениям недопустимым может оказаться номер сети 129.44.192.0 с тем же значением маски. Здесь номер подсети состоит только из единиц. Однако современные маршрутизаторы, поддерживающие рекомендации RFC 1878, свободны от этих ограничений
Следует отметить
В одной из этих сетей (129.44.192.0/18), выделенной для организации соединения между внешним и внутренним маршрутизаторами, для адресации узлов задействованы всего два адреса — 129.44.192.1 (порт маршрутизатора R2) и 129.44.192.2 (порт маршрутизатора R1). Огромное число узлов в этой подсети не используется. Такой пример выбран исключительно в учебных целях, чтобы показать неэффективность сетей равного размера
Алгоритм просмотра таблиц маршрутизации с учетом масок
1. Первая фаза состоит в поиске специфического маршрута для адреса IPd- С этой целью из каждой записи таблицы, в которой маска имеет значение 255.255.255.255, извлекается адрес назначения и сравнивается с адресом из пакета IP/?. Если в какой-либо строке совпадение произошло, то адрес следующего маршрутизатора для данного пакета берется из данной строки.
2. Вторая фаза выполняется только в том случае, если во время первой фазы не произошло совпадения адресов. Она состоит в поиске неспецифического маршрута, общего для группы узлов, к которой относится и пакет с адресом IP/?. Для этого средствами IP заново просматривается таблица маршрутизации, причем с каждой записью производятся следующие действия:
маска (обозначим ее М), содержащаяся в данной записи, «накладывается» на IP-адрес узла назначения IPD, извлеченный из пакета: IPD AND М;
полученное в результате число сравнивается со значением, которое помещено в поле адреса назначения той же записи таблицы маршрутизации;
если происходит совпадение, то протокол IP соответствующим образом отмечает эту строку;
если просмотрены не все строки, то протокол IP аналогичным образом просматривает следующую строку, если все (включая строку о маршруте по умолчанию), то просмотр записей заканчивается и происходит переход к следующему шагу.
3. После просмотра всей таблицы маршрутизатор выполняет одно их трех действий:
если не произошло ни одного совпадения и маршрут по умолчанию отсутствует, то пакет отбрасывается;
если произошло одно совпадение, то пакет отправляется по маршруту, указанному в строке с совпавшим адресом;
если произошло несколько совпадений, то все помеченные строки сравниваются и выбирается маршрут из той строки, в которой количество совпавших двоичных разрядов наибольшее (другими словами, в ситуации, когда адрес назначения пакета принадлежит сразу нескольким подсетям, маршрутизатор использует наиболее специфический маршрут).
Пусть поступивший на R2 пакет имеет адрес назначения 129.44.240.3. Поскольку специфические маршруты в таблице отсутствуют, маршрутизатор переходит ко второй фазе: для каждой строки таблицы маска накладывается на адрес пакета, а затем результат сравнивается с адресом назначения из таблицы маршрутизации:
(129.44.240.3) AND (255.255.128.0) = 129.44.128.0 - не совпадает с 129.44.0.0;
(129.44.240.3) AND (255.255.192.0) = 129.44.192.0 - не совпадает с 129.44.128.0;
(129.44.240.3) AND (255.255.255.248) = 129.44.240.0 - не совпадает с 129.44.192.0;
(129.44.240.3) AND (255.255.224.0) = 129.44.224.0 - совпадает
Суть заключается в следующем. Каждому поставщику услуг Интернета назначается непрерывный диапазон IP-адресов. При таком подходе все адреса каждого поставщика услуг имеют общую старшую часть — префикс, поэтому маршрутизация на магистралях Интернета может осуществляться на основе префиксов, а не полных адресов сетей. А это значит, что вместо множества записей по числу сетей в таблицу маршрутизации достаточно поместить одну запись сразу для всех сетей, имеющих общий префикс. Такое агрегирование адресов позволит уменьшить объем таблиц в маршрутизаторах всех уровней и, следовательно, ускорить работу маршрутизаторов и повысить пропускную способность Интернета.
Необходимым условием эффективного использования технологии CIDR является локализация адресов, то есть назначение адресов, имеющих совпадающие префиксы, сетям, располагающимся территориально по соседству. Только в таком случае трафик может быть агрегирован.
Фрагментация IP-пакетов
Каждый из фрагментов снабжается полноценным заголовком IP. Для последующей сборки фрагментов в исходное сообщение используются следующие поля заголовка:
Идентификатор пакета используется для распознавания пакетов, образовавшихся путем деления на части (фрагментации) исходного пакета.
Поле времени жизни (Time То Live, TTL) занимает один байт и определяет предельный срок, в течение которого пакет может перемещаться по сети.
Поле смещения фрагмента содержит информацию о положении фрагмента относительно начала поля данных исходного нефрагментированного пакета.
Установленный в единицу однобитный флаг MF (More Fragments — больше фрагментов) говорит о том, что данный пакет является промежуточным (не последним) фрагментом. Модуль IP, отправляющий нефрагментированный пакет, устанавливает бит MF в нуль.
Флаг DF (Do not Fragment — не фрагментировать), установленный в единицу, запрещает маршрутизатору фрагментировать данный пакет; если помеченный таким образом пакет не может достичь получателя без фрагментации, то модуль IP его уничтожает, а узлу-отправителю посылается диагностическое сообщение..
Обратим особое внимание на заполнение полей заголовка, прямо связанных с фрагментацией:
пакету присваивается уникальный идентификатор, например 12456;
поскольку пакет еще не фрагментирован, в поле смещения помещается значение 0;
признак MF также обнуляется, это показывает, что пакет одновременно является и своим последним фрагментом;
признак DF устанавливается в 1, это означает, что данный пакет можно фрагментировать
Заголовок ICMP-сообщения состоит из 8 байт:
тип (1 байт) — числовой идентификатор типа сообщения;
код (1 байт) — числовой идентификатор, более тонко дифференцирующий тип ошибки;
контрольная сумма (2 байта) — подсчитывается для всего ICMP-сообщения
Содержимое оставшихся 4 байт в заголовке и поле данных зависит от значений полей типа и кода.
1 311 ms 290 ms 261 ms 144.206.192.100
2 281 ms 300 ms 271 ms 194.85.73.5
3 2023 ms 290 ms 311 ms moscow-m9-2-S5.relcom.eu.net [193.124.254.37]
4 290 ms 261 ms 280 ms MSK-M9-13.Relcom.EU.net [193.125.15.13]
5 270 ms 281 ms 290 ms MSK.RAIL-l-ATM0-155Mb.Relcom.EU.net [193.124.254.82]
6 300 ms 311 ms 290 ms SPB-RASC0M-l-E3-l-34Mb.Relcom.EU.net [193.124.254.78]
7 311 ms 300 ms 300 ms Hssill-0.GW1.STK2.ALTER.NET [146.188.33.125]
8 311 ms 330 ms 291 ms 421.ATM6-0-0.CR2.STK2.Alter.Net [146.188.5.73]
9 360 ms 331 ms 330 ms 219.Hssi4-0.CR2.LND1.Alter.Net [146.188.2.213]
10 351 ms 330 ms 331 ms 412.Atm5-0.BRl.LNDl.Alter.net [146.188.3.205]
11 420 ms 461 ms 420 ms 167.ATM8-0-0.CR1.ATL1.Alter.Net [137.39.69.182]12 461 ms 441
ms 440 ms 311.ATM12-0-0.BRI.ATL1.Alter.Net [137.39.21.73]13 451 ms 410 ms 431 ms
atlantal-brl.bbnplanet.net [4.0.2.141]14 420 ms 411 ms 410 ms viennal-br2.bbnplanet.
net [4.0.3.154]15 411 ms 430 ms 2514 ms viennal-nbr3.bbnplanet.net [4.0.3.150]16
430 ms 421 ms 441 ms viennal-nbr2.bbnplanet.net [4.0.5.45]17 431 ms 451 ms 420
ms cambridgel-brl.bbnplanet.net [4.0.5.42]18 450 ms 461 ms 441 мс cambridgelcrl4.
bbnplanet.net [4.0.3.94]19 451 мс 461 мс 460 мс attbcstoll.bbnplanet.net
[206.34.99.38]20 501 мс 460 мс 481 мс shutdown.ds.internic.net [198.49.45.29]
# ping serverl.citmgu.ru
Pinging serverl.citmgu.ru [193.107.2.200] with 64 bytes of data:
Reply from 193.107.2.200: bytes=64 time=256ms TTL= 123
Reply from 193.107.2.200: bytes=64 time=310ms TTL= 123
Reply from 193.107.2.200: bytes=64 time=260ms TTL= 123
Reply from 193.107.2.200: bytes=64 time=146ms TTL= 123
© ООО «Знанио»
С вами с 2009 года.