|
|
Спецификация протокола IP
Межсетевые дейтаграммы (МД) содержат полные адреса и могут передаваться независимо друг от друга, в том числе по различным маршрутам. Межсетевая маршрутизация МД осуществляется в шлюзах (маршрутизаторах). Данные, поступившие для передачи, могут разбиваться на сегменты и передаваться в виде нескольких самостоятельных МД. Длина МД определяется характеристиками шлюзов, подключенных к сети. Рекомендуемые размеры МД - не более 576 байт, но возможна передача дейтаграмм длиной до 2048 байт (в последней спецификации Unix допускаются дейтаграммы до 64 кбайт). Структура протокольного блока
Version (версия) 4 битаПоле версии показывает формат заголовка Internet. Данный документ описывает версию 4. IHL (длина Internet заголовка) 4 бита Длина Internet заголовка измеряется в словах по 32 бита каждый и указывает на начало поля данных. Заметим, что корректный заголовок может иметь минимальный размер 5 слов. Type of Service (тип сервиса) 8 битТип сервиса определяет с помощью неких абстрактных параметров тип требуемого обслуживания. Эти параметры должны использоваться для управления выбором реальных рабочих характеристик при передаче датаграммы через конкретную сеть. Некоторые сети осуществляют обслуживание с приоритетом, которое неким образом дает преимущество для продвижения данной датаграммы по сравнению со всеми остальными. Реально выбор осуществляется между тремя альтернативами: малой задержкой, высокой достоверностью и высокой пропускной способностью.
Приоритет
| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 111 | - управление сетью |
| 110 | - межсетевое управление |
| 101 | - CRITIC/ECP |
| 100 | - более, чем мгновенно |
| 011 | - мгновенно |
| 010 | - немедленно |
| 001 | - приоритетно |
| 000 | - обычный маршрут |
Использование индикации задержки, пропускной способности и достоверности может, в некотором смысле, увеличить стоимость обслуживания. Во многих сетях улучшение одного из этих параметров связано с ухудшением другого. Исключения, когда имело бы смысл устанавливать два из этих трех параметров, очень редки.
Тип обслуживания используется для указания типа обработки датаграммы при ее прохождении через систему Internet. Примеры отображения типа обслуживания в протоколе Internet на реальные услуги, предоставляемые такими сетями, как AUTODIN II, ARPANET, SATNET и PRNET даны в документе "Service Mapping" [8]. Значение "управление сетью" следует присваивать приоритету только для использования внутри локальной сети. Управление и реальное использование этого аргумента должно находиться в согласии с каждой применяющей его сетью. Аргумент "межсетевое управление" предназначен только для использования шлюзами, берущими на себя управление. Если вышеописанные аргументы приоритета находят применение в какой-либо сети, то это означает, что данная сеть может управлять приемом и использованием этих аргументов.
Общая длина - это длина датаграммы, измеренная в октетах, включая Internet заголовок и поле данных. Это поле может задавать длину датаграммы вплоть до 65535 октетов. В большинстве хост-компьютеров и сетей столь большие датаграммы не используются. Все хосты должны быть готовы принимать датаграммы вплоть до 576 октетов длиной (приходят ли они целиком или по фрагментам). Хостам рекомендуется отправлять датаграммы размером более чем 576 октетов, только если они уверены, что принимающий хост готов обслуживать датаграммы повышенного размера.
Значение 576 выбрано с тем, чтобы соответствующим образом ограниченный блок данных передавался вместе с требуемой информацией в заголовке. Например, этот размер позволяет заполнять датаграмму полем данных размером в 512 октетов и заголовком в 64 октета. Наибольший Internet заголовок занимает 60 октетов, а его типичный размер составляет всего 20 октетов, что оставляет место под заголовки протоколов более высокого уровня.
Identification (идентификатор) 16 бит
Идентификатор устанавливается отправителем для сборки фрагментов какой-либо датаграммы. Первоначальное значение устанавливается случайным образом, а затем последуется увеличивается на единицу в каждой последующей дейтаграмме.
| бит 0 | зарезервирован, должен быть нуль |
| бит 1 (DF) | 0 - возможно фрагментирование, 1 - запрет фрагментации |
| бит 2 (MF) | 0 - последний фрагмент, 1 - будут еще фрагменты |
| 0 | 1 | 2 |
| 0 | DF | MF |
Это поле показывает, где в датаграмме находится этот фрагмент. Смещение фрагмента изменяется порциями по 8 октет (64 бита).
Первый фрагмент имеет смещение нуль.
Это поле показывает максимальное время, в течении которого датаграмме позволено находиться в системе Internet. Если это поле имеет значение нуль, то датаграмма должна быть разрушена. Значение этого поля изменяется при обработке заголовка Internet. Время измеряется в секундах. Однако, поскольку каждый модуль, обрабатывающий датаграмму, должен уменьшать значение поля TTL по крайней мере на единицу, даже если он обрабатывает эту датаграмму менее, чем за секунду, то поле TTL следует понимать как максимальный интервал времени, в течении которого датаграмма может существовать. Внимание следует обратить на разрушение датаграмм, не могущих достигнуть получателя, а также на ограничение времени жизни датаграммы.
Это поле показывает, какой протокол следующего уровня использует данные из Internet датаграммы. Значение поля определяется рекомендациями RFC (RFC1700). Неполный список основных типов протоколов приведен здесь.
Поскольку некоторые поля заголовка меняют свое значение (например, время жизни), это значение проверяется и повторно рассчитывается при каждой обработке Internet заголовка.
Алгоритм контрольной суммы следующий:
Поле контрольной суммы - это 16 бит, дополняющие
биты в сумме всех 16 битовых слов заголовка. Для
вычисления контрольной суммы значение этого
поля устанавливается в нуль.
Контрольную сумму легко рассчитать и опытным путем доказать ее адекватность, однако это временная мера и должна быть заменена CRC процедурой в зависимости от дальнейшего опыта.
Source Address (адрес отправителя) 32 бита
Destination Address (адрес получателя) 32 бита
Options (опции) поле переменной длины. Опции могут
появиться в датаграммах, а могут и не появляться.
Признаком наличия опций является превышение
указанной в первом байте длины заголовка
значения длины фиксированной части заголовка
(=20).
Длина поля опций Lopc определяется по следующей
формуле:
Lopc=4*Lzag - 20;
где Lzag - значение поля длина заголовка в первом
байте,
20 - длина фиксированной части заголовка.
Опции должны поддерживаться всеми Internet
модулями (хостами и шлюзами). Не обязательно
каждая конкретная датаграмма несет опции, но
нести их все же может. В некоторых приложениях
опция секретности должна присутствовать во всех
датаграммах. Поле опций не имеет постоянной
длины. Опций может не быть, а может быть
несколько.
Типы и форматы полей опций можно найти здесь.
Выравнивание Internet заголовка используется для того, чтобы убедиться в том, Internet заголовок заканчивается на 32-битной границе. Выравнивание осуществляется нулями.
|
|