Как работает Интернет (на начало урока 2)
Регистрационная метка
Выходим в Интернет (на оглавление книги)
На начало урока 2

На этой странице:

Приводится подробная информация о форматах IP-пакета и IP-адреса согласно документу RFC 791. RFC — это Request For Comments, запрос комментариев. Так по традиции называют все стандарты Интернета.

Формат IP-пакета

IP-пакет кроме данных, передаваемых по сети, содержит управляющую информацию (заголовок). Структура IP-пакета показана на рисунке.

Ниже приводится описание отдельных полей IP-заголовка.

Версия

Это поле определяет текущую версию протокола IP, по которому работает передающая станция. В настоящее время используется версия 4 и идёт работа над версией 6, в которой IP-адрес будет иметь длину не 32 бита, как в версии 4, а 128 бит, что позволит существенно расширить количество компьютеров, подключённых к Интернету.

Длина заголовка

Длину IP-заголовка необходимо указывать, так как она может быть разной в зависимости от длины поля Параметры IP. Длина заголовка задаётся количеством 32-битных блоков (слов).

Тип службы

Содержит указание на тип маршрута для данного пакета.

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

Поле Тип службы состоит из следующих частей:

  • приоритет,
  • задержка,
  • пропускная способность,
  • надёжность.

Длина данных

Длина данных (длина пакета без заголовка). Под это поле отведено 16 бит, значит, данные в пакете могут иметь длину до 65 535 байт.

Идентификация

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

Флаги

Содержит специальную пометку для последнего пакета исходного сообщения.

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

Смещение пакета

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

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

Пусть исходное сообщение, длиной в 3000 байт разбито на 3 пакета по 1000 байт в каждом. Тогда смещением первого пакета будет число 0, второго — 1001, третьего — 2001:

В двоичном виде эти смещения будут записаны так:

Номер пакета Смещение
1 0000000000000
2 0001111101001
3 0011111010001

Время жизни

Определяет интервал времени, в течение которого пакету позволено находится в сети.

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

Протокол

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

Контрольная сумма

Служит для определения пакетов, повреждённых при передаче. Пакет повреждён, если заново вычисленная контрольная сумма не совпадает со значением, записанным в этом поле. Повреждённые пакеты отбрасываются, а отправителю высылается соответствующее уведомление.

На каждой промежуточной станции меняется значение поля Время жизни и, возможно, поля Параметры IP, поэтому значение поля Контрольная сумма каждая станция для неповреждённых пакетов вычисляет заново.

IP-адрес отправителя

В этом поле записывается 32-битный IP-адрес отправителя сообщения. Адрес используется для посылки уведомлений в стартовый пункт посылки сообщения.

IP-адрес получателя

В этом поле записывается 32-битный IP-адрес получателя сообщения. Определяет станцию назначения пакета.

Параметры IP

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

Заполнение

Поле не содержит никакой полезной информации. Оно вводится для выравнивания заголовка пакета на 32-битную границу (по соглашению длина заголовка пакета должна быть кратна 32 битам).

Формат IP-адреса

В 4 версии протокола IP под адрес сетевого узла отводится 32 бита. Формат этого адреса можно представить в виде:

Между этими тремя полями нет фиксированной границы. Для точного определения узла всегда используется полный адрес. Принятая запись адреса в виде четырёх десятичных чисел w.x.y.z тем более не отражает представленное на рисунке деление адреса.

IP-адреса делятся на 5 классов: A, B, C, D и E. Классы позволяют организовать различное количество сетей и узлов в них.

Классы A, B и C используются для представления адресов сетей и узлов в них.

Класс D — это специальный тип адреса, используемый для групповой рассылки.

Класс E зарезервирован для экспериментальных целей.

На рисунке показаны двоичные форматы адресов для каждого класса.

Класс A определяется по первому биту адреса: если этот бит равен 0, то это адрес класса A.

Класс A определяет 50% доступного адресного пространства. В самом деле, под код класса отводится один бит, а так как бит может принимать два значения, то без него адресов будет в два раза меньше.

Класс адреса B определяется по первым двум битам: их значения должны быть 1 и 0.

В силу того, что из собственно адресации выпадают первые два бита, класс B определяет 25% доступного адресного пространства (число адресов без 2 битов уменьшается в 4 раза).

Класс B — самый популярный класс адресов, и в настоящее время адреса этого класса практически исчерпаны.

Класс C определяется по первым трём битам адреса: 110. Он определяет 12.5% всех адресов в сети (число адресов без 3 битов уменьшается в 8 раз).

Класс A даёт много узлов, но мало сетей. Класс С даёт много сетей, но мало узлов. Сбалансированный вариант предоставляет класс B, но его ресурсы на сегодняшний день практически исчерпаны.

Среди всех IP-адресов имеются несколько зарезервированных под специальные нужды:

IP-адрес Значение
все нули данный узел сети
номер сети | все нули данная сеть
все нули | номер узла узел в данной сети
все единицы все узлы данной сети
номер сети | все единицы все узлы указанной сети
127.0.0.1 “петля”

Адрес 127.0.0.1 предназначен для тестирования сетевого программного обеспечения в рамках одного компьютера.

Таблицы маршрутизации

Первый протокол, по которому работали сети — протокол UUCP (Unix to Unix Copy Protocol — протокол копирования файлов от компьютера с операционной системой Unix на аналогичный компьютер).

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

Для уменьшения числа строк таблицы и ускорения поиска в ней в столбец “Адрес получателя” записывались не сами адреса, а шаблоны:

Адрес получателя сообщения Адрес соседнего узла, в который нужно передать сообщение
... ...
*.su relcom.su
... ...

Строка *.su  relcom.su программирует передачу всех сообщения, у которых адрес получателя имеет суффикс (окончание) “.su” (домен Советского Союза), в узел relcom.su (провайдер первой отечественной сети Релком на базе Курчатовского института).

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

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

Пусть N — число строк в таблице, тогда среднее число просмотров определяется, как N/2 (500 для нашего случая).

Для быстрого поиска в упорядоченном массиве существует метод деления пополам (дихотомия).

Суть метода: сравниваем объект поиска x со средним элементом t упорядоченного набора данных. Если x = t, поиск закончен. Если x меньше t, продолжаем поиск в первой половине набора, если больше — во второй.

Пусть, например, требуется найти число x = 15 в упорядоченном наборе (1, 5, 7, 15, 25, 40, 50, 65, 70).

Шаг 1. Средний элемент набора t = 25. Так как x < t, продолжаем поиск в первой половине набора (1, 5, 7, 15)

Шаг 2. “Средний” элемент в этом наборе t = 7. Так как x > t, продолжаем поиск во второй половине набора, который состоит теперь только их одного числа: (15).

Шаг 3. На этом шаге поиск завершается.

Известно, что среднее число просмотров при дихотомии оценивается сверху числом log2N (логарифм по основанию 2 от числа элементов в массиве поиска). Если таблица маршрутизации имеет 1000 строк, то по методу деления пополам придётся выполнить не более 10 просмотров (log21000 равен примерно 10). Получаем ускорение по сравнению с методом последовательного (линейного) поиска в 50 раз (на таблице из 1000 строк).

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

В протоколе TCP/IP в качестве сетевых адресов используются числа фиксированной длины (32 двоичных разряда) — IP-адреса.

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

Но шаблоны в доменных таблицах маршрутизации UUCP существенно сокращали количество строк. Неужели в числовых таблицах TCP/IP пришлось отказаться от задания в одной строке семейства адресов?

Конечно, нет. В TCP/IP аналогом доменного принципа адресации является принцип разделения адресов по подсетям (смотрите материал предыдущего раздела “Формат IP-адреса”).

IP-подсеть — несколько подряд идущих IP-адресов, двоичная запись которых имеет одинаковый префикс (номер сети) и различные суффиксы (номера узлов в этой подсети).

Таблица маршрутизации TCP/IP выглядит следующим образом:

Адрес получателя пакета Адрес соседнего узла, в который нужно передать пакет
... ...
Адрес подсети IP-адрес
... ...

На начало урока 2

Азы информатики RU 2000/2006 © А.А.Дуванов

Вверх Оглавление книги Урок 2. Как работает Интернет Письмо автору Об авторах