Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПАЗИ часть 1 версия 2012.doc
Скачиваний:
71
Добавлен:
12.11.2019
Размер:
5 Мб
Скачать
☆

4.2.1 Протокольный стек tcp/ip

Комплект протоколов TCP/IP (Transmission Control Protocol/Internet Protocol) разрабатывался для сети Интернет (Internet Protocol Suite), в настоящее время он широко распространен как в локальных, так и в глобальных сетях [1–3], [24–26]. Комплект протоколов Интернета состоит из набора общедоступных (по сети) документов RFC (Request For Comments – предложения к обсуждению), созданных коллективными усилиями мирового сетевого сообщества.

Передача данных в Интернете основана на принципе коммутации пакетов, в соответствии с которым поток данных, передаваемых от одного узла к другому, разбивается на пакеты, передающиеся в общем случае через систему коммуникаций и маршрутизаторов независимо друг от друга и вновь собирающиеся на приемной стороне. Весь комплект базируется на IP-протоколе негарантированной доставки пакетов (дейтаграмм) без установления соединения (unreliable connectionless packet delivery). Информация в ТСР/IP передается пакетами со стандартизованной структурой, называемыми IP-дейтаграммами (IP Datagram), имеющими поле заголовка (IP Datagram Header) и поле данных (IP Datagram Data). Формат заголовка приведен в таблице 4.1, где он показан в виде 32-битных слов. Конечные узлы – отправители и получатели информации, называются хостами (host), промежуточные устройства, оперирующие IP-пакетами (анализирующие и модифицирующие информацию IP-заголовков), называют шлюзами (gateway).

Таблица 4.1 - Формат заголовка IP-дейтаграммы

Слово/ Бит

0. . .3

4. . .7

8. . .15

16. . .18

19. . .31

1

Version

IHL

Type of Service

Total Length

2

Identification

Flags

Fragment Offset

3

Time тo Live

Protocol

Header Checksum

4

Source IP Address

5

Destination IP Address

6

Option

Поля заголовков имеют следующие назначения.

Version, 4 бита – номер версии протокола, определяющий формат заголовка. В настоящее время широко используется версия 4, и дальнейшее описание относится к ней.

IHL (Internet Header Length), 4 бита – длина заголовка в 32-битных словах (не менее 5).

Type of Service, 8 бит – абстрактное описание качества сервиса:

  • биты 0-2 – Precedence (старшинство, преимущество) – параметр, определяющий приоритет трафика (большему значению соответствует больший приоритет);

  • бит 3 – Delay (задержка): 0 – нормальная, 1 – малая;

  • бит 4 – Throughput (пропускная способность): 0 – нормальная, 1 – высокая;

  • бит 5 – Reliability (надежность): 0 – нормальная, 1 – высокая;

  • биты 6-7 – резерв.

Total Length, 16 бит – общая длина дейтаграммы (заголовок и данные) в октетах (байтах). Допускается длина до 65 535 байт, но все хосты, безусловно, допускают прием пакетов длиной только до 576 байт. Пакеты большей длины рекомендуется посылать только по предварительной договоренности с принимающим хостом.

Identification, 16 бит – идентификатор, назначаемый посылающим узлом для сборки фрагментов дейтаграмм.

Flags, 3 бита – управляющие флаги:

  • бит 0 – резерв, должен быть нулевым;

  • бит 1 – DF (Don't Fragment – запрет фрагментирования):0 – дейтаграмму можно фрагментировать, 1 – нельзя;

  • бит 2 – MF (More Fragments – будут еще фрагменты): 0 – последний фрагмент, 1 – не последний.

Fragment Offset, 13 бит – местоположение фрагмента в дейтаграмме (смещение в 8-байтных блоках). Первый фрагмент имеет нулевое смещение.

Time to Live (TTL), 8 бит – время жизни пакета в сети, формально – в секундах. Нулевое значение вызывает необходимость удаления дейтаграммы. Начальное значение задается отправителем, шлюзы декрементируют поле по получении пакета и каждую секунду пребывания пакета в очереди на обработку (пересылку). Поскольку современное оборудование редко задерживает пакет более чем на секунду, это поле может использоваться для подсчета промежуточных узлов (hop count). Заданием TTL можно управ­лять дальностью распространения пакетов: при TTL=1 пакет не может выйти за пределы подсети отправителя.

Protocol, 8 бит – идентификатор протокола более высокого уровня, использующего поле данных пакета.

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

Source Address, 32 бита – IP-адрес отправителя.

Destination Address, 32 бита – IP-адрес получателя.

Options – опции пакета, длина произвольна (опции могут и отсутствовать).

В дейтаграмму длиной 576 байт умещается 512-байтный блок данных и 64-байтный заголовок (размер заголовка может составлять 20–60 байт). Длина дейтаграммы определяется сетевым ПО так, чтобы она умещалась в поле данных сете­вого кадра, осуществляющего транспортировку. Поскольку по пути следования к адресату могут встречаться сети с меньшим размером поля данных кадра, IP специфицирует единый для всех маршрутизаторов метод сегментации – разбивки дейтаграммы на фрагменты (тоже IP-дейтаграммы) и реассемблирования – обратной ее сборки приемником. Фрагментированная дейтаграмма собирается только ее окончательным приемником, поскольку отдельные фрагменты могут добираться до него различными путями. Порядок сборки определяется смещением фрагмента, перекрытие фрагментов и даже выход фрагмента за заявленный размер собираемого пакета, как правило, не контролируются. На основе этих свойств алгоритма сборки «умельцы» осуществляют взлом сетевых ОС. Возможна также конкатенация – соединение нескольких дейтаграмм в одну и сепарация – действие, обратное конкатенации.

Казавшийся вполне достаточным во времена разработки формат заголовка пакета стал уже тесным. В настоящее время готовится переход на протокол IP v.6, который имеет следующие основные отличия:

  • расширение поля адреса с 32 до 128 бит;

  • обеспечение возможности автоконфигурирования узлов;

  • выравнивание полей заголовка с целью ускорения обработки пакетов;

  • обеспечение возможностей для большей расширяемости протокола.

Дальнейшее изложение относится к существующей 32-битной адресации IP v.4.