Формат заголовка IP–дейтаграммы 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Формат заголовка IP–дейтаграммы



IP–дейтаграмма состоит из заголовка и данных. Заголовок дейтаграммы состоит из 32–разрядных слов и имеет переменную длину, зависящую от размера поля «Options», но всегда кратную 32 битам. За заголовком непосредственно следуют данные, передаваемые в дейтаграмме (рисунок 19.2).

Рисунок 19.2 – Формат заголовка IP–дейтаграммы

Значения полей заголовка следующие.

Ver (4 бита) – версия протокола IP, в настоящий момент используется версия 4, новые разработки имеют номера версий 6–8.

IHL (Internet Header Length) (4 бита) – длина заголовка в 32–битных словах; диапазон допустимых значений от 5 (минимальная длина заголовка, поле «Options» отсутствует) до 15 (т.е. может быть максимум 40 байт опций).

TOS (Type Of Service) (8 бит) – значение поля определяет приоритет дейтаграммы и желаемый тип маршрутизации. Структура байта TOS представлена на рисунке 19.3.

Рисунок 19.3 – Структура байта TOS

Три младших бита («Precedence») определяют приоритет дейтаграммы: 111 – управление сетью, ПО – межсетевое управление, 101 – CRITIC–ECP, 100 –более чем мгновенно, 011 – мгновенно, 010 – немедленно, 001 – срочно, 000 –обычно.

Биты D, T, R, C определяют желаемый тип маршрутизации:

· D (Delay) – выбор маршрута с минимальной задержкой,

· T (Throughput) – выбор маршрута с максимальной пропускной способностью,

· R (Reliability) – выбор маршрута с максимальной надежностью,

· C (Cost) – выбор маршрута с минимальной стоимостью.

В дейтаграмме может быть установлен только один из битов D, T, R, C. Старший бит байта не используется. Реальный учет приоритетов и выбора маршрута в соответствии со значением байта TOS зависит от маршрутизатора, его программного обеспечения и настроек. Маршрутизатор может поддерживать расчет маршрутов для всех типов TOS, для части или игнорировать TOS вообще. Маршрутизатор может учитывать значение приоритета при обработке всех дейтаграмм или при обработке дейтаграмм, исходящих только из некоторого ограниченного множества узлов сети, или вовсе игнорировать приоритет.

Total Length (16 бит) – длина всей дейтаграммы в октетах, включая заголовок и данные, максимальное значение 65535, минимальное – 21 (заголовок без опций и один октет в поле данных).

ID (Identification) (16 бит), Flags (3 бита), Fragment Offset (13 бит) используются для фрагментации и сборки дейтаграмм.

TTL (Time To Live) (8 бит) – «время жизни» дейтаграммы. Устанавливается отправителем, измеряется в секундах. Каждый маршрутизатор, через который проходит дейтаграмма, переписывает значение TTL, предварительно вычтя из него время, потраченное на обработку дейтаграммы. Так как в настоящее время скорость обработки данных на маршрутизаторах велика, на одну дейтаграмму тратится обычно меньше секунды, поэтому фактически каждый маршрутизатор вычитает из TTL единицу. При достижении значения TTL=0 дейтаграмма уничтожается, при этом отправителю может быть послано соответствующее ICMP–сообщение. Контроль TTL предотвращает зацикливание дейтаграммы в сети.

Protocol (8 бит) – определяет программу (вышестоящий протокол стека), которой должны быть переданы данные дейтаграммы для дальнейшей обработки.

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

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

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

Options – опции, поле переменной длины. Опций может быть одна, несколько или ни одной. Опции определяют дополнительные услуги модуля IP по обработке дейтаграммы, в заголовок которой они включены.

Padding – выравнивание заголовка по границе 32–битного слова, если список опций занимает нецелое число 32–битных слов. Поле «Padding» заполняется нулями.

IP–адресация

Компьютер в сети может иметь адреса трех уровней: физический (MAC–адрес), сетевой (IP–адрес) и доменный адрес (DNS–имя). Локальный адрес узла, определяемый технологией, с помощью которой построена отдельная сеть, в которую входит данный узел. Для узлов, входящих в локальные сети – это МАС–адрес сетевого адаптера или порта маршрутизатора, например, 11–А0–17–3D–BC–01. Эти адреса назначаются производителями оборудования и являются уникальными адресами, так как управляются централизовано. Для всех существующих технологий локальных сетей МАС–адрес имеет формат 6 байтов: старшие 3 байта – идентификатор фирмы производителя, а младшие 3 байта назначаются уникальным образом самим производителем. Для узлов, входящих в глобальные сети, такие как Х.25 или frame relay, локальный адрес назначается администратором глобальной сети.

IP–адрес, используется на сетевом уровне. Он назначается администратором во время конфигурирования компьютеров и маршрутизаторов. IP–адрес состоит из двух частей: номера сети и номера узла, например, 109.26.17.100. Номер сети может быть выбран администратором произвольно, либо назначен по рекомендации специального подразделения Internet (Network Information Center, NIC), если сеть должна работать как составная часть Internet. Обычно провайдеры услуг Internet получают диапазоны адресов у подразделений NIC, а затем распределяют их между своими абонентами.

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

Символьный идентификатор – имя, например, SERV1.IBM.COM. Этот адрес назначается администратором и состоит из нескольких частей, например, имени машины, имени организации, имени домена. Такой адрес, называемый также DNS–именем, используется на прикладном уровне, например, в протоколах FTP или telnet.

Все компьютеры объединены в локальную сеть, и имеют локальную IP–адресацию. Пакеты с такой адресацией «путешествовать» в глобальной сети не смогут, т.к. маршрутизаторы их не пропустят. Поэтому существует шлюз, который преобразовывает пакеты с локальными IP–адресами, давая им свой внешний адрес. И дальше ваши пакеты путешествуют с адресом шлюза (рисунок 19.4). Таким образом, очень важно остановится на изучении IP–адреса. IP–адрес является уникальным 32–битным идентификатором IP–интерфейса в Интернет.

IP–адреса принято записывать разбивкой всего адреса по октетам, каждый октет записывается в виде десятичного числа, числа разделяются точками. Например, адрес 101000000101000100000110000011 записывается как 10100000.01010001.00000101.10000011=160.81.5.131.

Рисунок 19.4 – Схема прохождения пакетов из локальной сети к серверу

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

Классовая модель

IP–адреса разделяются на 5 классов, отличающихся количеством бит в цифровом адресе сети и цифровом адресе узла (таблица 19.1).

Таблица 19.1 – Структура IP–адреса

Класс А   номер сети номер узла
Класс В   номер сети номер узла
Класс С   номер сети номер узла
Класс D   групповой адрес
Класс Е   групповой адрес

Адреса класса A предназначены для использования в больших сетях общего пользования. Адреса класса B предназначены для использования в сетях среднего размера (сети больших компаний, научно–исследовательских институтов, университетов). Адреса класса C предназначены для использования в сетях с небольшим числом компьютеров (сети небольших компаний и фирм). Адреса класса D используют для обращения к группам компьютеров, а адреса класса E – зарезервированы.

· Если адрес начинается с 0, то сеть относят к классу А, и номер сети занимает один байт, остальные 3 байта интерпретируются как номер узла в сети. Сети класса А имеют номера в диапазоне от 1 до 126. (Номер 0 не используется, а номер 127 зарезервирован для специальных целей, о чем будет сказано ниже.) В сетях класса А количество узлов должно быть больше 216, но не превышать 224.

· Если первые два бита адреса равны 10, то сеть относится к классу В и является сетью средних размеров с числом узлов 28 – 216. В сетях класса В под адрес сети и под адрес узла отводится по 16 битов, то есть по 2 байта.

· Если адрес начинается с последовательности 110, то это сеть класса С с числом узлов не больше 28. Под адрес сети отводится 24 бита, а под адрес узла – 8 битов.

· Если адрес начинается с последовательности 1110, то он является адресом класса D и обозначает особый, групповой адрес – multicast. Если в пакете в качестве адреса назначения указан адрес класса D, то такой пакет должны получить все узлы, которым присвоен данный адрес.

· Если адрес начинается с последовательности 11110, то это адрес класса Е.

В таблице 19.2 приведены диапазоны номеров сетей, соответствующих каждому классу сетей.

Таблица 19.2 – Характеристики классов адресов

Класс Наименьший адрес Наибольший адрес
А 0.1.0.0 126.0.0.0
В 128.0.0.0 191.255.0.0
С 192.0.1.0 223.255.255.0
D 224.0.0.0 239.255.255.255
Е 240.0.0.0 247.255.255.255

Среди всех IP–адресов имеется несколько зарезервированных под специальные нужды. Ниже приведена таблица зарезервированных адресов. Особое внимание в таблице уделяется последней строке. Адрес 127.0.0.1 предназначен для тестирования программ и взаимодействия процессов в рамках одного компьютера. В большинстве случаев в файлах настройки этот адрес обязательно должен быть указан, иначе система при запуске может зависнуть. Наличие «петли» чрезвычайно удобно с точки зрения использования сетевых приложений в локальном режиме для их тестирования и при разработке интегрированных систем. Вообще, зарезервирована вся сеть 127.0.0.0. Эта сеть класса A реально не описывает ни одной настоящей сети.

Некоторые зарезервированные адреса используются для широковещательных сообщений. Например, номер сети (строка 2) используется для посылки сообщений этой сети (т.е. сообщений всем компьютерам этой сети). Адреса, содержащие все единицы, используются для широковещательных посылок (для запроса адресов, например таблица 19.3).

Таблица 19.3 – Выделенные IP–адреса

IP–адрес Значение
все нули данный узел сети
номер сети все нули данная IP–сеть
все нули номер узла узел в данной (локальной) сети
все единицы все узлы в данной локальной IP–сети
номер сети все единицы все узлы указанной IP–сети
127.0.0.1 «петля»

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

Маска – это число, двоичная запись которого содержит единицы в тех разрядах, которые должны интерпретироваться как номер сети. Например, для стандартных классов сетей маски имеют следующие значения:

· 255.0.0.0 – маска для сети класса А,

· 255.255.0.0 – маска для сети класса В,

· 255.255.255.0 – маска для сети класса С.

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

Пусть, например, маска имеет значение 255.255.192.0 (11111111 11111111 11000000 00000000). И пусть сеть имеет номер 129.44.0.0 (10000001 00101100 00000000 00000000), из которого видно, что она относится к классу В. После наложения маски на этот адрес число разрядов, интерпретируемых как номер сети, увеличилось с 16 до 18, то есть администратор получил возможность использовать вместо одного, централизованно заданного ему номера сети, четыре:

· 129.44.0.0 (10000001 00101100 00000000 00000000)

· 129.44.64.0 (10000001 00101100 01000000 00000000)

· 129.44.128.0 (10000001 00101100 10000000 00000000)

· 129.44.192.0 (10000001 00101100 11000000 00000000)

Например, IP–адрес 129.44.141.15 (10000001 00101100 10001101 00001111), который по стандартам IP задает номер сети 129.44.0.0 и номер узла 0.0.141.15, теперь, при использовании маски, будет интерпретироваться как пара: 129.44.128.0 – номер сети, 0.0. 13.15 – номер узла.

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

Пример. Пусть некоторая сеть относится к классу В и имеет адрес 128.10.0.0. Этот адрес используется маршрутизатором, соединяющим сеть с остальной частью интерсети. И пусть среди всех станций сети есть станции, слабо взаимодействующие между собой. Их желательно было бы изолировать в разных сетях. Для этого сеть можно разделить на две сети, подключив их к соответствующим портам маршрутизатора, и задать для этих портов в качестве маски, например, число 255.255.255.0, то есть организовать внутри исходной сети с централизовано заданным номером две подсети класса C (можно было бы выбрать и другой размер для поля адреса подсети). Извне сеть по–прежнему будет выглядеть, как единая сеть класса В, а на местном уровне это будут две отдельные сети класса С. Приходящий общий трафик будет разделяться местным маршрутизатором между подсетями.

Бесклассовая модель (CIDR)

Предположим, в локальной сети, подключаемой к Интернет, находится 2000 компьютеров. Каждому из них требуется выдать IP–адрес. Для получения необходимого адресного пространства нужны либо 8 сетей класса C, либо одна сеть класса В. Сеть класса В вмещает 65534 адреса, что много больше требуемого количества. При общем дефиците IP–адресов такое использование сетей класса В расточительно. Однако если мы будем использовать 8 сетей класса С, возникнет следующая проблема: каждая такая IP–сеть должна быть представлена отдельной строкой в таблицах маршрутов на маршрутизаторах, потому что с точки зрения маршрутизаторов — это 8 абсолютно никак не связанных между собой сетей, маршрутизация дейтаграмм в которые осуществляется независимо, хотя фактически эти IP–сети и расположены в одной физической локальной сети и маршруты к ним идентичны. Таким образом, экономя адресное пространство, мы многократно увеличиваем служебный трафик в сети и затраты по поддержанию и обработке маршрутных таблиц.

С другой стороны, нет никаких формальных причин проводить границу сеть–хост в IP–адресе именно по границе октета. Это было сделано исключительно для удобства представления IP–адресов и разбиения их на классы. Если выбрать длину сетевой части в 21 бит, а на номер хоста отвести, соответственно, 11 бит, мы получим сеть, адресное пространство которой содержит 2046 IP–адресов, что максимально точно соответствует поставленному требованию. Это будет одна сеть, определяемая своим уникальным 21–битным номером, следовательно, для ее обслуживания потребуется только одна запись в таблице маршрутов.

Единственная проблема, которую осталось решить: как определить, что на сетевую часть отведен 21 бит? В случае классовой модели старшие биты IP–адреса определяли принадлежность этого адреса к тому или иному классу и, следовательно, количество бит, отведенных на номер сети. В случае адресации вне классов, с произвольным положением границы сеть–хост внутри IP–адреса, к IP–адресу прилагается 32–битовая маска, которую называют маской сети (netmask) или маской подсети (subnet mask). Сетевая маска конструируется по следующему правилу:

· на позициях, соответствующих номеру сети, биты установлены;

· на позициях, соответствующих номеру хоста, биты сброшены.

Описанная выше модель адресации называется бесклассовой (CIDR) – Classless Internet Direct Routing, прямая бесклассовая маршрутизация в Интернет). В настоящее время классовая модель считается устаревшей и маршрутизация и (большей частью) выдача блоков IP–адресов осуществляются по модели CIDR, хотя классы сетей еще прочно удерживаются в терминологии.



Поделиться:


Последнее изменение этой страницы: 2016-08-01; просмотров: 1331; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.137.157.45 (0.022 с.)