Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛР2-AnalyzerTCP.doc
Скачиваний:
1
Добавлен:
25.11.2019
Размер:
2.83 Mб
Скачать

Приложение 2. Формат ip-заголовка

Ниже приведена полная схема полей заголовка Internet

Version

IHL

Type of Service

Total Length

Identification

Flags

Fragment Offset

Time to Live

Protocol

Source Address

Destination Address

Options

Padding

Каждая позиция соответствует одному биту.

Version (версия) 4 бита

Поле версии показывает формат заголовка Internet. Данный документ описывает версию 4.

IHL (длина Internet заголовка) 4 бита

Длина Internet заголовка измеряется в словах по 32 бита каждый и указывает на начало поля данных. Заметим, что корректный заголовок может иметь минимальный размер 5 слов.

Type of Service (тип сервиса) 8 бит

Тип сервиса определяет с помощью неких абстрактных параметров тип требуемого обслуживания. Эти параметры должны использоваться для управления выбором реальных рабочих характеристик при передаче датаграммы через конкретную сеть. Некоторые сети осуществляют обслуживание с приоритетом, которое неким образом дает преимущество для продвижения данной датаграммы по сравнению со всеми остальными.

Реально выбор осуществляется между тремя альтернативами: малой задержкой, высокой достоверностью и высокой пропускной способностью.

Общий вид поля «Тип сервиса»

биты 0-2

приоритет

бит 3

0 - нормальная задержка

1 - малая задержка

0 - нормальная пропускная способность

1 - высокая пропускная способность

бит 5

0 - обычная достоверность

1 - высокая достоверность

биты 6-7

зарезервированы

Приоритет

111

Управление сетью

110

Межсетевое управление

101

CRITIC/ECP

100

Более чем мгновенно

011

Мгновенно

010

Немедленно

001

Приоритетно

000

Обычный маршрут

Использование индикации задержки, пропускной способности и достоверности может, в некотором смысле, увеличить стоимость обслуживания. Во многих сетях улучшение одного из этих параметров связано с ухудшением другого. Исключения, когда имело бы смысл устанавливать два из этих трех параметров, очень редки.

Тип обслуживания используется для указания типа обработки датаграммы при ее прохождении через систему Internet. Примеры отображения типа обслуживания в протоколе Internet на реальные услуги, предоставляемые такими сетями, как AUTODIN II, ARPANET, SATNET и PRNET даны в документе "Service Mapping". Значение "управление сетью" следует присваивать приоритету только для использования внутри локальной сети. Управление и реальное использование этого аргумента должно находиться в согласии с каждой применяющей его сетью. Аргумент "межсетевое управление" предназначен только для использования шлюзами, берущими на себя управление. Если вышеописанные аргументы приоритета находят применение в какой-либо сети, то это означает, что данная сеть может управлять приемом и использованием этих аргументов.

Total Length (общая длина) 16 бит

Общая длина - это длина датаграммы, измеренная в октетах, включая Internet заголовок и поле данных. Это поле может задавать длину датаграммы вплоть до 65535 октетов. В большинстве хост-компьютеров и сетей столь большие датаграммы не используются. Все хосты должны быть готовы принимать датаграммы вплоть до 576 октетов длиной (приходят ли они целиком или по фрагментам). Хостам рекомендуется отправлять датаграммы размером более чем 576 октетов, только если они уверены, что принимающий хост готов обслуживать датаграммы повышенного размера.

Значение 576 выбрано с тем, чтобы соответствующим образом ограниченный блок данных передавался вместе с требуемой информацией в заголовке. Например, этот размер позволяет заполнять датаграмму полем данных размером в 512 октетов и заголовком в 64 октета. Наибольший Internet заголовок занимает 60 октетов, а его типичный размер составляет всего 20 октетов, что оставляет место под заголовки протоколов более высокого уровня.

Identification (идентификатор) 16 бит

Идентификатор устанавливается отправителем для сборки фрагментов какой-либо датаграммы.

Flags (различные управляющие флаги) 3 бита

бит 0

зарезервирован, должен быть нуль

бит 1 (DF)

0 - возможно фрагментирование 1- запрет фрагментации

бит 2 (MF)

0 – последний фрагмент 1- будут еще фрагменты

Fragment Offset (смещение фрагмента) 13 бит

Это поле показывает, где в датаграмме находится этот фрагмент. Смещение фрагмента изменяется порциями по 8 октет (64 бита).

Первый фрагмент имеет смещение нуль.

Time to Live (Время жизни) 8 бит

Это поле показывает максимальное время, в течение которого датаграмме позволено находиться в системе Internet. Если это поле имеет значение нуль, то датаграмма должна быть разрушена. Значение этого поля изменяется при обработке заголовка Internet. Время измеряется в секундах. Однако, поскольку каждый модуль, обрабатывающий датаграмму, должен уменьшать значение поля TTL по крайней мере на единицу, даже если он обрабатывает эту датаграмму менее чем за секунду, то поле TTL следует понимать как максимальный интервал времени, в течение которого датаграмма может существовать. Внимание следует обратить на разрушение датаграмм, не могущих достигнуть получателя, а также на ограничение времени жизни датаграммы.

Protocol (Протокол) 8 бит

Это поле показывает, какой протокол следующего уровня использует данные из Internet датаграммы. Значения для различных протоколов приводятся в документе "Assigned Numbers".

Header Checksum (Контрольная сумма заголовка) 16 бит

Поскольку некоторые поля заголовка меняют свое значение (например, время жизни), это значение проверяется и повторно рассчитывается при каждой обработке Internet заголовка.

Алгоритм контрольной суммы следующий: Поле контрольной суммы - это 16 бит, дополняющие биты в сумме всех 16 битовых слов заголовка. Для вычисления контрольной суммы значение этого поля устанавливается в нуль.

Контрольную сумму легко рассчитать и опытным путем доказать ее адекватность, однако это временная мера и должна быть заменена CRC процедурой в зависимости от дальнейшего опыта.

Source Address (адрес отправителя) 32 бита.

Destination Address (адрес получателя) 32 бита.

Options (опции) поле переменной длины

Опции могут появиться в датаграммах, а могут и не появляться. Они должны поддерживаться всеми Internet модулями (хостами и шлюзами). Не обязательно каждая конкретная датаграмма несет опции, но нести их все же может. В некоторых приложениях опция секретности должна присутствовать во всех датаграммах.

Поле опций не имеет постоянной длины. Опций может не быть, а может быть несколько. Существуют два формата опции:

  • единичный октет с указанием типа опции

  • единичный октет с указанием типа опции, октет для указания длины опции, и, наконец, октеты собственно данных.

Октет длины поля учитывает октет типа опции, сам себя и октеты с данными для опции.

Считается, что октет типа опции состоит из трех полей:

1

бит

флаг копирования

2

бита

класс опции

5

бит

номер опции

Флаг копирования показывает, что эта опция копируется во все фрагменты при фрагментации.

0

не копируется

1

копируется

Классы опции

0

управление

1

резервировано

2

отладка и измерения

3

резервировано

Определены следующие опции Internet

класс

номер

длина

описание

0

0

-

Конец списка опций. Эта опция занимает лишь один октет, октет длины отсутствует.

0

1

-

Нет операции. Эта опция занимает лишь один октет. Не имеет октета длины.

0

2

11

Безопасность. Используется для поддержания безопасности, изоляции, разделения на группы пользователей (TCC), обработки кодов ограничения, соответствующих DOD требованиям.

0

3

перем

Потеря маршрута отправителя. Используется для передачи Internet датаграммы, основанной на имеющейся у отправителя информации

0

9

перем

Определение маршрута отправителя. Используется для передачи Internet датаграммы, основанной на имеющейся у отправителя информации

0

7

перем

Запись маршрута. Используется для отслеживания проходимого Internet датаграммой маршрута.

0

8

4

Идентификатор маршрута. Используется для поддержки идентификации потока.

2

4

перем

Временной штамп Internet.

Отдельные описания опций

Тип 0

00000000

End of Option List (конец списка опций)

Эта опция обозначает конец списка опций. Он может не совпадать с окончанием Internet заголовка, обозначаемым полем Internet header length. Эта опция используется после всех опций, но не после каждой. Она необходима только в том случае, если конец списка опций не совпал с окончанием Internet заголовка.

Может быть скопирован, внесен или удален при фрагментации, или по какой-либо другой причине.

Тип 1

00000001

No operation (нет действий)

Эта опция может быть использована между другими опциями. Ее целью может служить, к примеру, выравнивание очередной опции по 32- битной границе. Может быть скопирована, внесена или удалена при фрагментации и по любой другой причине.

Тип 130

Security (безопасность)

Эта опция дает способ хост-компьютерам отправлять параметры, связанные с безопасностью, закрытостью, введением ограничений и параметрами TCC (закрытой группой пользователей). Формат этой опции следующий: (длина 11 октетов)

10000010

00001011

SSS...SSS

CCC...CCC

HHH...HHH

TCC

Поле S (security) 16 бит

Указывает один из 16 уровней безопасности (восемь из которых зарезервировано).

00000000

00000000

- не классифицировано

11110001

00110101

- конфиденциальный

01111000

10011010

- EFTO

10111100

01001101

- MMMM

01011110

00100110

- PROG

10101111

00010011

- ограниченный

11010111

10001000

- секретный

01101011

11000101

- особо секретный

00110101

11100010

- резервировано

10011010

11110001

- резервировано

01001101

01111000

- резервировано

00100100

10111101

- резервировано

00010011

01011110

- резервировано

10001001

10101111

- резервировано

11000100

11010110

- резервировано

11100010

01101011

- резервировано

Поле C (compartments) 16 бит

Нулевое значение во всех позициях используется когда передача информации не ограничена. Остальные значения для этого поля можно получить от Секретного Оборонного Агентства.

Поле H (введение ограничений) 16 бит

Значения для управления и внесения меток являются буквенно- цифровыми диаграммами и определены в документе DIAM 65-19 "Standard Security Markings".

Поле TCC (поле управления переносом) 24 бита

Дает средства для отслеживания процесса отделения, его значения контролируются группами заинтересованных подписчиков. Значения TCC имеют три поля для записей и могут быть получены из документа HQ DCA Code 530.

Рассматриваемый тип должен копироваться при фрагментации. Эта опция появляется в датаграмме не более одного раза.

Тип 131

Loose Source and Record Route

(Потеря отправителя и запись маршрута)

10000011

длина

указатель

данные о маршруте

Опция потери отправителя и записи маршрута (LSRR) обеспечивает средства, позволяющие отправителю Internet датаграммы передавать информацию, используемую шлюзами при передаче датаграмм по назначению, а также записывать информацию о маршруте.

Опция начинается с кода типа. Второй октет - октет длины, которая учитывает код типа опции и сам себя, а также октет указателя.

Третий октет является указателем на данные о маршруте, он определяет октет, с которого начинается следующий адрес отправителя, подлежащий обработке. Указатель отсчитывается от начала рассматриваемой опции, а его наименьшее допустимое значение - 4.

Данные о маршруте состоят из ряда Internet адресов. Каждый Internet адрес - это 32 бита или 4 октета. Если указатель превышает длину, то маршрут отправителя пуст (поле с записями маршрута заполнено), а маршрутизация должна основываться на значениях поля с адресом получателя.

Если адрес, записанный в поле адреса получателя, был достигнут, а указатель не превысил длину, то следующий адрес в маршруте отправителя замещает адрес в поле с адресом получателя. Записанный адрес маршрута заменяет только что использованный адрес отправителя, а указатель увеличивается на 4.

Записанный адрес маршрута является собственным Internet адресом Internet модуля, известным во внешнем окружении, куда эта датаграмма направляется. Эта процедура замещения исходного маршрута записанным маршрутом (хотя при обратном порядке он должен использоваться как маршрут отправителя) означает, что данная опция (а также и весь IP заголовок) сохраняет постоянный размер при прохождении датаграммы по Internet системе.

Эта опция называется потерей маршрута отправителя (loose source route), поскольку шлюз или IP хост могут использовать любые маршруты через любое количество других промежуточных шлюзов для достижения следующего адреса в рассматриваемом маршруте. При фрагментации опция должна копироваться. В датаграмме она должна появляться не более одного раза.

Тип 137

Strict Source and Record Route

(Уточнить отправитель и записать маршрут)

10001001

длина

указатель

данные о маршруте

Опция "уточнить отправитель и записать маршрут" (SSRR) дает средства отправителю Internet датаграммы для поддержания информации о маршрутизации, которая должна использоваться шлюзами при передаче датаграммы по назначению, а также для записи этой информации.

Опция начинается с кода типа. Второй октет - длина опции, которая учитывает код типа опции и октет длины, октет указателя (3 октета с данными о маршруте). Третий октет является указателем на данные маршрута, определяющим октет, с которого начинается следующий адрес отправителя, подлежащий обработке. Указатель отсчитывается с начала этой опции, а наименьшее допустимое значение указателя - 4.

Данные о маршруте состоят из серии Internet адресов. Каждый Internet адрес - это 32 бита или 4 октета. Если указатель превышает длину, то маршрут отправителя пуст (записываемый маршрут полон), а маршрутизация основывается на значении поля с адресом получателя.

Если адрес в поле адреса получателя был достигнут, а указатель не превышает длины, то следующий адрес в маршруте отправителя замещает адрес в поле с адресом получателя, а записанный адрес маршрута замещает только что использованный адрес отправителя, указатель увеличивается на 4.

Записанный адрес маршрута - это собственный Internet - адрес Internet - модуля, как он был бы распознан во внешней среде, куда эта датаграмма направляется. Эта процедура замещения маршрута отправителя записанным маршрутом (хотя в обратном порядке он должен использоваться как маршрут отправителя) означает, что опция (и весь IP заголовок) сохраняет постоянный размер при прохождении датаграммы через Internet систему.

Эта опция является точным маршрутом отправителя, поскольку шлюз или IP хост должен посылать данную датаграмму непосредственно на следующий адрес в маршруте отправителя через напрямую соединенную сеть, на адрес, показывающий следующий шлюз или хост, указанный в маршруте.

Опция должна копироваться при фрагментации. Появляется не более одного раза в датаграмме.

Тип 7

Record Route

(Записать маршрут)

00000111

длина

указатель

данные о маршруте

Опция записи маршрута дает средства для записи маршрута Internet датаграммы.

Опция начинается с кода типа. Второй октет определяет длину опции, которая учитывает код типа опции, сам себя, октет указателя и длину трех октетов с данными о маршруте. Третий октет является указателем на данные маршрута. Указатель определяет октет, с которого начинается следующее поле для размещения адреса маршрута.

Указатель отсчитывается от начала рассматриваемой опции, а его наименьшее допустимое значение - 4.

Записываемый маршрут состоит из серии Internet адресов. Каждый Internet адрес - это 32 бита или 4 октета. Если указатель больше, чем длина опции, то поле с записываемым маршрутом заполнено. Хост - компьютер, создающий эту опцию, должен зарезервировать поле с данными о маршруте и достаточным размером, с тем, чтобы оно вместило все ожидаемые адреса. Размер этой опции не изменяется при добавлении адресов. Первоначальное содержимое поля под данные о маршруте должно быть нулевым.

Когда Internet модуль направляет датаграмму, он проверяет ее на присутствие рассматриваемой опции с записываемым маршрутом. Если она присутствует, то он вставляет свой собственный Internet адрес в качестве распознанного во внешней среде, куда эта датаграмма направлена. Вставка осуществляется в опцию записи маршрута, в то место, на которое указывает октет указателя. Указатель затем увеличивается на 4.

Если поле с данными о маршруте уже заполнено (указатель превышает длину), то датаграмма направляется без вставки адреса в опцию заполняемого маршрута. Если имеется некоторое пространство, но недостаточное для вставки полного адреса, то исходная датаграмма считается ошибочной и разрушается. И в том, и в другом случае на хост-отправитель направляется сообщение о проблеме с ICMP параметром.

При фрагментации не копируется, присутствует лишь в первом фрагменте. В датаграмме присутствует не более одного раза.

Тип 136

(длина 4)

Stream Identifier

(Идентификатор потока)

10001000

00000010

идентификатор потока

Эта опция дает средства для поддержания 16-битовой SATNET идентификации потока в сетях, которые первоначально не поддерживали потоковую концепцию. Опция должна копироваться при фрагментации. В датаграмме появляется не более одного раза.

Тип 68

Internet timestamp

(Временной штамп Internet)

01000100

длина

указатель

oflw

flg

Internet адрес

Timestamp

Длина - это количество октетов в опции, которое учитывает октеты типа, длины, указателя и overflow/flag (максимальная длина 40 октетов).

Указатель - это количество октетов от начала этой опции до конца временных штампов, плюс единица (т.е. он указывает на октет, с которого начинается свободное место для следующего временного штампа). Наименьшее допустимое значение - 5. Поле временного штампа считается заполненным, когда указатель превышает длину опции.

Overflow (oflw, переполнение 4 бита) - это количество IP модулей, которые не могут произвести регистрацию временных штампов по причине отсутствия свободного места.

Flag (flg, флаги 4 бита) – это

0

Оставлять лишь временные штампы, размещенные в следующих друг за другом 32-битных словах

1

Каждому временному штампу предшествует Internet адрес регистрируемого объекта

3

Поля Internet адресов определены заранее. IP модуль лишь регистрирует свой временной штамп, если его собственный адрес совпадает со следующим указанным Internet адресом.

Timestamp - это выровненный по правой границе 32-битный временной штамп в миллисекундах (относительно полуночи по Единому Времени).

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

Хост-отправитель должен создавать эту опцию так, чтобы поля для временных штампов были достаточны для размещения всей ожидаемой информации. Размер опции не изменяется при добавлении временных штампов. Первоначально содержимое поля под временные штампы должно быть заполнено нулями, либо Internet адреса должны чередоваться с нулями.

Если поле с временными штампами уже заполнено (указатель превышает длину опции), то датаграмма передается без вставки временного штампа, а счетчик переполнения увеличивается на единицу.

Если имеется место, но оно недостаточно для вставки полного временного штампа, или же счетчик переполнения сам переполнен, то исходная датаграмма рассматривается как ошибочная и уничтожается. И в том, и в другом случае на хост-отправитель должно посылаться сообщение о проблеме с ICMP параметром.

Опция временного штампа не копируется при фрагментации, а сохраняется в первом фрагменте. В датаграмме появляется не более одного раза.

Padding (Выравнивание)

Выравнивание Internet заголовка используется для того, чтобы убедиться в том, Internet заголовок заканчивается на 32-битной границе. Выравнивание осуществляется нулями.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]