IP

Протокол сетевого уровня   IP (Internet Protocol – протокол сети Интернет). В отличие от большинства ран­них протоколов сетевого уровня, IP с самого начала разрабатывался как прото­кол межсетевого обмена. Вот как можно описать данный протокол сетевого уров­ня: его работа заключается в приложении максимума усилий (тем не менее, без всяких гарантий) по транспортировке дейтаграмм от отправителя к получателю независимо от того, находятся эти машины в одной и той же сети или нет.

Начнем изучение сетевого уровня Интернета с формата IР-дейтаграмм. IP-дейта­грамма состоит из заголовка и текстовой части. Заголовок содержит обязатель­ную 20-байтную часть, а также необязательную часть переменной длины. Формат заголовка показан на рис. Он передается слева направо, то есть старший бит поля Версия передается первым. (В процессоре SPARC байты располагаются сле­ва направо, в процессоре Pentium – наоборот, справа налево.) На машинах, у ко­торых старший байт располагается после младшего, как, например, у семейства процессоров корпорации Intel, требуется программное преобразование как при передаче, так и при приеме.

IP

Поле Версия содержит версию протокола, к которому принадлежит дейта­грамма. Включение версии в каждую дейтаграмму позволяет использовать раз­ные версии протокола на разных машинах. Дело в том, что с годами протокол из­менялся, и на одних машинах сейчас работают новые версии, тогда как на других продолжают использоваться старые. Сейчас происходит переход от версии IPv4 к версии IPv6. Он длится уже много лет, и не похоже, что скоро завершится . Что касается нумерации, то ничего странного в ней нет, просто в свое время существовал мало кому извест­ный экспериментальный протокол реального масштаба времени IPv5.

Длина заголовка является переменной величиной, для хранения которой вы­делено поле IHL (информация в нем представлена в виде 32-разрядных слов). Минимальное значение длины (при отсутствии необязательного поля) равно 5. Максимальное значение этого 4-битового поля равно 15, что соответствует заго­ловку длиной 60 байт; таким образом, максимальный размер необязательного поля равен 40 байтам. Для некоторых приложений, например, для записи мар­шрута, по которому должен быть переслан пакет, 40 байт слишком мало. В дан­ном случае дополнительное поле оказывается бесполезным.

Поле Тип службыединственное поле, смысл которого с годами несколько изменился. Оно было (впрочем, и до сих пор) предназначено для различения классов обслуживания. Возможны разные комбинации надежности и скорости. Для оцифрованного голоса скорость доставки важнее точности. При передаче файла, наоборот, передача без ошибок важнее быстрой доставки.

Изначально 6-разрядное поле Тип службы состояло из трехразрядного поля Precedence и трех флагов – D, Т и R. Поле Precedence указывало приоритет, от 0 (нормальный) до 7 (управляющий сетевой пакет). Три флаговых бита позволяли хосту указать, что беспокоит его сильнее всего, выбрав из набора {Delay, Throughput, Reliability} (Задержка, Пропускная способность, Надежность). Тео­ретически, эти поля позволяют маршрутизаторам выбрать, например, между спутниковой линией с высокой пропускной способностью и большой задержкой и выделенной линией с низкой пропускной способностью и небольшой задерж­кой. На практике сегодняшние маршрутизаторы часто вообще игнорируют поле Тип службы.

Поле Полная длина содержит длину всей дейтаграммы, включая как заголо­вок, так и данные. Максимальная длина дейтаграммы 65 535 байт. В настоящий момент этот верхний предел достаточен, однако с появлением гигабитных сетей могут понадобиться дейтаграммы большего размера.

Поле Идентификатор позволяет хосту-получателю определить, какой дейта­грамме принадлежат полученные им фрагменты. Все фрагменты одной дейтаграм­мы содержат одно и то же значение идентификатора.

Следом идет один неиспользуемый бит и два однобитных поля. Бит DF озна­чает Don’t Fragment (He фрагментировать). Это команда маршрутизатору, за­прещающая ему фрагментировать дейтаграмму, так как получатель не сможет восстановить ее из фрагментов. Например, при загрузке компьютера его ПЗУ может запросить образ памяти в виде единой дейтаграммы. Пометив дейтаграмму битом DF, отправитель гарантирует, что дейтаграмма дойдет единым блоком, да­же если для ее доставки придется избегать сетей с маленьким размером пакетов. От всех машин требуется способность принимать фрагменты размером 576 байт и менее.

Бит MF означает More Fragments (Продолжение следует). Он устанавливает­ся во всех фрагментах, кроме последнего. По этому биту получатель узнает о прибытии последнего фрагмента дейтаграммы.

Поле Смещение фрагмента указывает положение фрагмента в исходной дей­таграмме. Длина всех фрагментов в байтах, кроме длины последнего фрагмента, должна быть кратна 8. Так как на это поле выделено 13 бит, максимальное коли­чество фрагментов в дейтаграмме равно 8192, что дает максимальную длину дей­таграммы 65 536 байт, на 1 байт больше, чем может содержаться в поле Полная длина.

Поле Время жизни представляет собой счетчик, ограничивающий время жиз­ни пакета. Предполагалось, что он будет отсчитывать время в секундах, таким образом, допуская максимальное время жизни пакета в 255 с. На каждом мар­шрутизаторе это значение должно было уменьшаться как минимум на единицу плюс время стояния в очереди. Однако на практике этот счетчик просто считает количество переходов через маршрутизаторы. Когда значение этого поля стано­вится равным нулю, пакет отвергается, а отправителю отсылается пакет с преду­преждением. Таким образом удается избежать вечного странствования пакетов, что может произойти, если таблицы маршрутизаторов по какой-либо причине испортятся.

Собрав дейтаграмму из фрагментов, сетевой уровень должен решить, что с ней делать. Поле Протокол сообщит ему, какому процессу транспортного уровня ее передать. Это может быть TCP, UDP или что-нибудь еще. Нумерация процессов глобально стандартизирована по всему Интернету. Номера протоколов вместе с некоторыми другими были сведены в RFC 1700.

Поле Контрольная сумма заголовка защищает от ошибок только заголовок. Подобная контрольная сумма полезна для обнаружения ошибок, вызванных не­исправными микросхемами памяти маршрутизаторов. Алгоритм вычисления суммы просто складывает все 16-разрядные полуслова в дополнительном коде, преобразуя результат также в дополнительный код. Таким образом, проверяемая получателем контрольная сумма заголовка (вместе с этим полем) должна быть равна нулю. Этот алгоритм надежнее, чем обычное суммирование. Обратите внимание на то, что значение Контрольной суммы заголовка должно подсчиты­ваться заново на каждом транзитном участке, так как по крайней мере одно поле постоянно меняется (поле Время жизни). Для ускорения расчетов применяются некоторые хитрости.

Поля Адрес отправителя и Адрес получателя указывают номер сети и номер хоста. Интернет-адреса будут обсуждаться в следующем разделе. Поле Необяза­тельная часть было создано для того, чтобы с появлением новых вариантов прото­кола не пришлось вносить в заголовок поля, отсутствующие в нынешнем форма­те. Оно же может служить пространством для различного рода экспериментов, испытания новых идей. Кроме того, оно позволяет не включать в стандартный заголовок редко используемую информацию. Размер поля Необязательная часть может варьироваться. В начале поля всегда располагается однобайтный идентификатор. Иногда за ним может располагаться также однобайтное поле дли­ны, а затем один или несколько информационных байтов. В любом случае, раз­мер поля Необязательная часть должен быть кратен 4 байтам. Изначально было определено пять разновидностей этого поля:

  1. Безопасность(указывает уровень секретности дейтаграммы)
  2. Свободная маршрутизация от источника(задает список маршрутизаторов , которые нельзя миновать)
  3. Строгая маршрутизация от источника(задает полный путь следования дейтаграммы)
  4. Запомнить маршрут(требует от всех маршрутизаторов добавлять свой IP адрес)
  5. Временной штамп (требует от всех маршрутизаторов добавлять свой IP адрес и текущее время)

Параметр Безопасность указывает уровень секретности дейтаграммы. Теоре­тически, военный маршрутизатор может использовать это поле, чтобы запретить маршрутизацию дейтаграммы через территорию определенных государств. На практике все маршрутизаторы игнорируют этот параметр, так что его единствен­ное практическое применение состоит в помощи шпионам в поиске ценной ин­формации.

Параметр Строгая маршрутизация от источника задает полный путь следо­вания дейтаграммы от отправителя до получателя в виде последовательности IP-адресов. Дейтаграмма обязана следовать именно по этому маршруту. Наи­большая польза этого параметра заключается в том, что с его помощью систем­ный менеджер может послать экстренные пакеты, когда таблицы маршрутизато­ра повреждены, или замерить временные параметры сети.

Параметр Свободная маршрутизация от источника требует, чтобы пакет про­шел через указанный список маршрутизаторов в указанном порядке, но при этом по пути он может проходить через любые другие маршрутизаторы. Обычно этот параметр указывает лишь небольшое количество маршрутизаторов. Например, чтобы заставить пакет, посылаемый из Лондона в Сидней, двигаться не на вос­ток, а на запад, можно указать в этом параметре IP-адреса маршрутизаторов в Нью-Йорке, Лос-Анджелесе и Гонолулу. Этот параметр наиболее полезен, когда по политическим или экономическим соображениям следует избегать прохожде­ния пакетов через определенные государства.

Параметр Запомнить маршрут требует от всех маршрутизаторов, встречаю­щихся по пути следования пакета, добавлять свой IP-адрес к полю Необязатель­ная часть. Этот параметр позволяет системным администраторам вылавливать ошибки в алгоритмах маршрутизации («Ну почему все пакеты, посылаемые из Хьюстона в Даллас, сначала попадают в Токио?»). Когда была создана сеть ARPANET, ни один пакет не проходил больше чем через девять маршрутизато­ров, поэтому 40 байт для этого параметра было как раз достаточно. Как уже гово­рилось, сегодня размер поля Необязательная часть оказывается слишком мал. Наконец, параметр Временной штамп действует полностью аналогично пара­метру Запомнить маршрут, но кроме 32-разрядного IP-адреса, каждый маршру­тизатор записывает также 32-разрядную запись о текущем времени. Этот пара­метр также применяется в основном для отладки алгоритмов маршрутизации.

Понравилось ? Поделись с другом:
  • IP
  • IP
  • IP
  • IP
  • IP
  • IP
  • IP
  • IP
  • IP
  • IP
  • IP
  • IP
  • IP
  • IP
  • IP
  • IP

IP

Добавить в:
Bookmark and Share
Читать в Яндекс.Ленте
Если Вам понравилась статья, то Вы можете получать новые материалы по RSS (как читать RSS) или на e-mail:

Получать обновления:

Похожие материалы:

Оставить комментарий

:wink: :-| :-x :twisted: :) 8-O :( :roll: :-P :oops: :-o :mrgreen: :lol: :idea: :-D :evil: :cry: 8) :arrow: :-? :?: :!:

Я не робот!
RSS Подписка:  →

Метки по темам


службы мониторинга серверов