
Лекция 3 СТРУКТУРА IP-ПАКЕТА
Пакет Ethernet. Протоколы ARP и RARP. Работа ARP протокола. Формат ARP-пакета. Работа IP-протокола с локальными сетями Token Ring и FDDI. Сети FDDI. Протокол SLIP. Протокол PPP.
Структура полей заголовка пакета:
0 4 8 16 31
-
Версия
длина заголовка
тип сервиса
длина дейтаграммы
идентификатор
Флаги
фрагментация
время жизни
протокол
Контрольная сумма заголовка
адрес отправителя
адрес получателя
Опции
поле выравнивания
данные 24
Поле версия может содержать 4 или 6 (мы рассматриваем 4 версию); оно определяет структуру заголовка.
Поле длина указывает на длину заголовка 32-битных словах.
Тип сервиса определяет принадлежность к одному из разновидностей IP-дейтограмм. Сервис определяет вид обработки дейтаграмм. Например, в некоторых сетях предусматривается приоритетное обслуживание дейтограмм. При этом пакетам различной важности присваивается различный код приоритета. При наличии такого кода сначала обрабатываются более приоритетные пакеты. Для указания сервиса, оценивающего приоритетность, используется это поле.
Поле общая длина отражает длину всей дейтограммы, считая заголовок, отсюда следует, что максимальная длина дейтаграммы может быть 216-1 байт. Однако, как правило, с такими длинами дейтаграмма IP- протокола не работает и, обычно рекомендуется, чтобы эта длина была до 576 байт. 576 выбрано из соображений, чтобы блок данных содержал 512 байт, а заголовок - 64 байта.
Поле идентификации (16 бит) устанавливается отправителем и служит идентификатором дейтаграммы. Наличие идентификатора (имени) облегчает фрагментацию. Очевидно, что каждая дейтограмма должна иметь уникальный идентификатор. Каждый фрагмент тоже имеет свой уникальный идентификатор. При обслуживании процедур фрагментации модули протокола группируют фрагменты по совпадению адреса отправителя, получателя и идентификаторов. Выбор уникальности идентификатора может также осуществляться на уровне ТСР- протокола.
Флаги (3 бита + 1 бит- резерв)- нулевой бит должен быть равен 0; первый бит - признак фрагментации DF:
если DF=0 - фрагментация разрешена
если DF=1 - фрагментация запрещена
второй бит - MF- флаг последнего фрагмента:
если MF=0 - последний фрагмент
если MF=1 - есть еще фрагмент
Смещение фрагмента - этот кадр указывает на сколько надо сдвинуться относительно начала длины, чтобы разместить данный фрагмент. Если код С - указывает на сколько 64-битных слов надо сдвинуться, чтобы попасть на данный фрагмент (С*64)
Время жизни (8 бит) - указывается верхнее значение периода жизни, в течении которого данная дейтограмма может находиться в сети. Этот параметр устанавливается отправителем дейтаграммы и уменьшается в каждой точке маршрутизации или в каждой точке, где дейтаграмма обрабатывается. Если в этом поле оказывается “0” до того, как дейтаграмма достигла адресата, то она уничтожается. Это же поле может быть использовано для уничтожения дейтаграмм по времени, и тогда указывается это время в секундах. При прохождении через каждый шлюз величина этого поля должна уменьшаться хотя бы на единицу. Хотя обработка может занимать меньше 1 секунды, это ограничение принято для того, чтобы уничтожать дейтаграммы, не доставленные в точку назначения по каким-либо причинам за 255 секунд.
Протокол - здесь указывается тип протокола, от которого может быть получена данная дейтаграмма.
Контрольная сумма заголовка служит для проверки правильности информации в заголовке дейтаграммы. Если на приемной стороне контрольная сумма не совпадает с кодом, указанным в этом поле, то дейтаграмма уничтожается. В поле данных могут быть ошибки, которые не проверяются данным кодом контрольной суммы.
Опции применяются для того, чтобы указать ряд контрольных функций, которые могут быть приемлемы. В частности, может быть указана необходимость использования ключей секретности или нестандартной маршрутизации. Подробно назначение опций рассматривается в специальной документации.
3.1 Пакет ethernet
Сетевой уровень IP связывается с канальным уровнем, который обеспечивает транзит данных через физический канал. Выполняя задачу канального уровня, решает задачу физической адресации. При этом происходит преобразование логического адреса, учитывающего топологию сети, логическую структуру, в физический адрес. Адреса канального уровня называют физическими адресами, машинными. Эти адреса являются уникальными для каждого соединения. У большинства локальных сетей адреса размещены в схеме сетевого адаптера. Они присваиваются фирмой- производителем этого адаптера. Для фирмы выделяется некоторое пространство адресов в соответствии с определенным протоколом. Каждому сетевому адаптеру присваивается уникальный адрес и “записывается” в сетевом адаптере. В системах ETHERNET, как распространенных, эти адреса “зашиты” в железо. Они представляют собой плоские адреса. Большинство компьютерных систем имеет одно сетевое соединение и имеет один физический адрес канального уровня. В отличие от них маршрутизаторы могут иметь несколько.
А1, А2, А3- адрес
Каждый ETHERNET- адаптер реализует метод доступа с преодолением столкновений. Сетевой адаптер имеет свой собственный адрес и он уникальный для всех сетевых адаптеров. Этот адрес присваивается адаптеру на заводе-изготовителе и имеет длину 48 бит, то есть он кодируется 6 байтами.
TP 32 mac
F
F
F
F F F F F F F F F
логический физический
Физический адрес больше логического адреса в 216 раз. Каждый пакет, перемещающийся по ETHERNET- сети, имеет 14 байтный заголовок, в котором указывается ETHERNET- адрес отправителя и получателя.
Структура заголовка ETHERNET- пакета следующая:
0 16 31
-
адрес получателя
адрес
отправителя
тип кода
IP-заголовок
ТСР- заголовок
данные
контрольная сумма
Тип кода - это поле, в котором определяется тип сети или тип протокола, с которым ETHERNET связан. Например, если будет
08 00, то это значит, что существует IP- заголовок. Если от другого протокола, то будет другой код.
Контрольная сумма - сумма, которая формируется для пакета, является контрольной суммой всего пакета. Если полученная на приемной стороне сумма не совпадает с записанной контрольной суммой, то пакет уничтожается. Предельная величина пакета 1500 байт. Есть особый физический адрес (все F, то есть 1)- он называется широковещательным. Если он находится в адресе получателя, значит, что он для всех.
3.2 Протоколы arp и rarp
При
каждой посылке IP- пакета возникает
проблема преобразования IP- адреса в
ETHERNET- адрес. Для отображения IP-адресов
используется протоколARP-
протокол
разрешения адресов. Для отображения
mac- адреса в IP-адрес используется RARP.
Таким образом, при передаче через ARP
позволяет получить mac- адрес. При приеме
mac-адрес позволяет получить IP- адрес.
Основным
инструментом протокола ARP является
таблица разрешения адресов. Она имеет
структуру:
чтобы осуществить преобразование, достаточно выделить необходимую строку, определяемую адресом IP. Необходимость табличного преобразования объясняется тем, что эти адреса выбираются независимо друг от друга. IP-адрес выбирает менеджер сети с учетом положения машины в сети, если ЭВМ перемещают в другую сеть, то ее IP- адрес должен быть изменен. ETHERNET-адрес изменяется, если изменен сетевой адаптер. Чтобы заполнять таблицу в программном обеспечении сетевой коммуникации, используется ARM- модуль. Если с помощью ARP- таблицы не удается преобразовать IP-адрес в mac-адрес, то происходит следующее:
по сети передается широковещательный ARP-запрос
IP-пакет ставится в очередь. Каждый адаптер принимает широковещательную передачу и ETHERNET- драйверы проверяют поле типа в принятом ETHERNET-кадре и передают ARP-пакеты модулю ARP. Такой ARP-запрос интерпретируется следующим образом: если ваш IP-адрес совпадает с указанным, то сообщите ваш ETHERNET-адрес. Пакет ARP- запрос содержит ETHERNET и IP-адреса отправителя, IP-адрес получателя...... Каждый модуль ARP проверяет поле искомого IP-адреса в полученном ARP-пакете. Если адрес совпадает с его собственным, то посылается ответ по ETHERNET-адресу. Этот ответ можно интерпретировать. Это мой IP-адрес, ему соответствует мой ETHERNET-адрес. Полученная информация достраивается в таблицу.