tanenbaum_seti_all.pages (525408), страница 133
Текст из файла (страница 133)
Поле ргесеаепсе указывало приоритет, от 0 (нормальный) до 7 (управляюший сетевой пакет). Три флаговых бита позволяли хосту указать, что беспокоит его сильнее всего, выбрав из набора (Ре!ау, ТЬгопй!грац Ке!1аЫ!!гу) (Задержка, Пропускная способность, Надежность). Теоретически, этн поля позволяют маршрутизаторам выбрать, например, между спутниковой линией с высокой пропускной способностью и большой задержкой и выделенной линией с низкой пропускной способностью и небольшой задержкой. На практике сегодняшние маршрутизаторы часто вообще игнорируют поле Тип службы.
Поле Полная длина содержит длину всей дейтаграммы, включая как заголовок, так и данные. Максимальная длина дейтаграммы 65 535 байт. В настоящий момент этот верхний предел достаточен, однако с появлением гигабитных сетей могут понадобиться дейтаграммы большего размера. Поле Идентификатор позволяет хосту-получателю определить, какой дейтаграмме принадлежат полученные им фрагменты.
Все фрагменты одной дейтаграммы содержат одно и то же значение идентификатора. Следом идет один неиспользуемый бит и два однобитных поля. Бит РР означает Роп'г Егайшепг (Не фрагментировать). Это команда маршрутизатору, запрешаюшая ему фрагментировать дейтаграмму, так как получатель не сможет восстановить ее из фрагментов.
Например, при загрузке компьютера его ПЗУ может запросить образ памяти в виде единой дейтаграммы. Помстив дейтаграмму битом РК отправитель гарантирует, что дейтаграмма дойдет единым блоком, даже если для ее доставки придется избегать сетей с маленьким размером пакетов. От всех машин требуется способность принимать фрагменты размером 576 байт и менее. Бит МГ означает Моге ггайшепгз (Продолжение следует). Он устанавливается во всех фрагментах, кроме последнего. По этому биту получатель узнает о прибытии последнего фрагмента дейтаграммы. Поле Смещение фрагмента указывает положение фрагмента в исходной дейтаграмме. Длина всех фрагментов в байтах, кроме длины последнего фрагмента, должна быть кратна 8. Так как на это поле выделено 13 бнт, максимальное количество фрагментов в дейтаграмме равно 8192, что даст максимальную длину дейтаграммы 65 536 байт, на 1 байт больше, чем может содержаться в поле Полная длина.
Поле Время жизни представляет собой счетчик, ограничиваюший время жизни пакета, Предполагалось, что он будет отсчитывать время в секундах, таким образом, допуская максимальное время жизни пакета в 255 с. На каждом маршрутизаторе это значение должно было уменьшаться как минимум на единицу плюс время стояния в очереди. Однако на практике этот счетчик просто считает 500 Глава б.
Сетевой уровень Таблица 5.6. Некоторые типы необязательного поля! Р-дейтаграммы тип Описание Безопасность Указывает уровень секретности дейтаграммы Засеет список маршрутизаторов, которые нельзямкяовзть Задает полный путь следования дейтаграммы Свободная маршрутизация от источника Строгая маршрутизация от источника количество переходов через маршрутизаторы. Когда значение этого поля становится равным нулю, пакет отвергается, а отправителю отсылается пакет с предупреждением. Таким образом удается избежать вечного странствования пакетов, что может произойти, если таблицы маршрутизаторов по какой-либо причине испортятся.
Собрав дейтаграмму из фрагментов, сетевой уровень должен решить, что с ней делать. Поле Протокол сообшит ему, какому процессу транспортного уровня ее передать. Это может быть ТСР, 01)Р или что-нибудь еше. Нумерация процессов глобально стандартизнрована по всему Интернету. Номера протоколов вместе с некоторыми другими были сведены в ВЕС 1700, однако теперь доступна интернет-версия в виде базы данных, расположенной по адресу тиладапа.огд.
Поле Контрольная сулла заголовка зашишает от ошибок только заголовок. Подобная контрольная сумма полезна для обнаружения ошибок, вызванных неисправными микросхемами памяти маршрутизаторов. Алгоритм вычисления суммы просто складывает все 16-разрядные полуслова в дополнительном коде, преобразуя результат также в дополнительный код.
Таким образом, проверяемая получателем контрольная сумма заголовка (вместе с этим полем) должна быть равна нулю. Этот алгоритм надежнее, чем обычное суммирование. Обратите внимание на то, что значение Контрольной суммьс заголовка должно подсчитываться заново на каждом транзитном участке, так как по крайней мере одно поле постоянно меняется (поле Время жизни). Для ускорения расчетов применяются некоторые хитрости. Поля Адрес отправителя и Адрес получателя указывают номер сети и номер хоста. Интернет-адреса будут обсуждаться в следуюшем разделе.
Поле Необязательная часть было создано для того, чтобы с появлением новых вариантов протокола не пришлось вносить в заголовок поля, отсутствующие в нынешнем формате. Оно же может служить пространством для различного рода экспериментов, испытания новых идей. Кроме того, опо позволяет не включать в стандартный заголовок редко используемую информацию. Размер поля Необязательная чапае может варьироваться. В начале поля всегда располагается однобайтиый идентификатор. Иногда за ним может располагаться также одпобайтное поле длины, а затем один или несколько информационных байтов. В любом случае, размер поля Необязательная часть должен быть кратен 4 байтам.
Изначально было определено пять разновидностей этого поля, перечисленных в табл. 5,6, однако с тех пор появилось несколько новых. Текуший полный список имеется в Интернете, его можно найти по адресу вюлодапа.огй/азийптепгь/~р-рагатегегз, Сетевой уровень в Интернете 601 Описание Тип Требует от всех маршрутизаторов добавлять свой !Р-адрес Требует от всех маршрутизаторов добавлять свой! Р-адрес и текущее время Запомнить маршрут Временной штамп 1Р-адреса зг каждого хоста и маршрутизатора в Интернете есть 1Р-адрес, состоящий из номера сети и номера хоста.
Эта комбинация уникальна: нет двух машин с одинаковыми! Р-адресами. Все 1Р-адреса имеют длину 32 бита и используются в полях Параметр Безопасность указывает уровень секретности дейтаграммы. Теоретически, военный маршрутизатор может использовать это поле, чтобы запретить маршрутизацию дейтаграммы через территорию определенных государств. На практике все маршрутизаторы игнорируют этот параметр, так что его единственное практическое применение состоит в помощи шпионам в поиске ценной информации.
Параметр Строгая маршрутизация от источттика задаст полный путь следования дейтаграммы от отправителя до получателя а виде последовательности 1Р-адресов. Дейтаграмма обязана следовать именно по этому маршруту. Наибольшая польза этого параметра заключается в том, что с его помощью системный менеджер может послать экстренные пакеты, когда таблицы маршрутизатора повреждены, или замерить временные параметры сети. Параметр Свободная маршрутизация от источника требует, чтобы пакет прошел через указанный список маршрутизаторов в указанном порядке, но при этом по пути он может проходить через лтобые другие маршрутизаторы.
Обычно этот параметр указывает лишь небольшое количество маршрутизаторов. Например, чтобы заставить пакет, посылаемый из Лондона в Сидней, двигаться не на восток, а на запад, можно указать в этом параметре 1Р-адреса маршрутизаторов в Нью-йорке, Лос-Анджелесе и Гонолулу. Этот параметр наиболее полезен, когда по политическим или экономическим соображениям следует избегать прохождения пакетов через определенные государства. Параметр Запомтгипть маршрут требует от всех маршрутизаторов, встречающихся по пути следования пакета, добавлять свой 1Р-адрес к полю Необязаптельяая часть. Этот параметр позволяет системным администраторам вылавливать ошибки в алгоритмах маршрутизации (еНу почему все пакеты, посылаемые из Хьюстона в Даллас, сначала попадают в Токиоуь). Когда была создана сеть А1кРАХЕТ, ни один пакет пе проходил больше чем через девять маршрутизатоРов, поэтому 40 байт для этого параметра было как раз достаточно.
Как уже говоРилось, сегодня размер поля Необязательная часть оказывается слишком мал. Наконец, параметр Врементюй штамп действует полностью аналогично параметру Запомнить маршрут, но кроме 32-разрядного 1Р-адреса, каждый маршрутизатор записывает также 32-разрядную запись о текущем времени. Этот пара- метР также применяется в основном для отладки алгоритмов маршрутизации.
502 Глава 6. Сетевой уровень 32 бита диапазон адресов хоста Класс От 1.0.0.0 до А 0 Сеть Хост 127.265.265.266 От 129.0.0.0 до 191.265.255.266 От 192.0.0.0 до 223.255.265,255 От 224.0.0.0 до 239.255.255. 265 Сеть В 10 Сеть С 110 Адрес группы широковещания О 1110 Е 11110 Зарезервировано для будущего использования Рио. 5.48.
Форматы!Р-адресе Форматы классов А, В, С и 1) позволяют задавать адреса до 128 сетей с 16 млн хостов в каждой, 16 384 сетей с 64 тысячами хостов или 2 миллионов сетей (иапример, ЛВС) с 256 хостами (хотя некоторые из них могут быть специализированными). Предусмотрен класс для многоалресной рассылки, при которой дейтаграммы рассылаются одновременно иа несколько хостов.