Лаб5 (1088281)
Текст из файла
Лабораторная работа № 5
Формирование IP-пакета
Цель работы:
Изучение правил построения IP-пакетов для передачи информации в рамках IP-протокола и фрагментирования IP-дейтаграмм.
Теоретические сведения
Протокол межсетевого взаимодействия IP (Internet Protocol) обеспечивает дейтаграммную передачу от отправителя к получателю через объединенную среду локальных сетей, в общем случае, с различными принципами построения и организации. В каждой очередной сети по пути движения пакета протокол IP вызывает средства транспортировки, принятые в данной сети, и с их помощью направляет пакет следующему маршрутизатору или непосредственно хосту-получателю. IP при этом непосредственно взаимодействует с протоколами канального уровня, которые в соответствии со своей спецификацией обеспечивают доступ данным к конкретному физическому носителю данной сети.
Протокол IP относится к протоколам без установки соединения. При передаче информации он не использует логических соединений, ни каких-либо виртуальных каналов связи. Поэтому каждый пакет обрабатывается как самостоятельная единица данных, не связанная с другими пакетами.
Протокол IP не обеспечивает гарантированную доставку дейтаграмм. Он не имеет механизмов для проверки целостности, формирования и передачи квитанций (запросов) о результатах приема пакетов на очередном маршрутизаторе (оконечном хосте), не поддерживает процедуру повторной передачи пакета по истечении тайм-аута, более того – вообще не сохраняет у себя копии пакетов после их передачи. Вместе с тем дейтаграмма может быть либо потеряна в промежуточной сети, либо уничтожена в маршрутизаторе по причине наличия ошибки в заголовке пакета, истечении “времени жизни” пакета, несоответствия версии протокола, указанной в заголовке пакета, текущей версии маршрутизатора, некорректной длине заголовка и другим причинам. Отправитель пакета об этих ситуациях не уведомляется.
Протокол IP не имеет механизмов управления потоком, поэтому при передаче возможно нарушение порядка следования пакетов, “закольцовка” маршрута движения, превышение допустимого времени доставки пакета.
Протокол IP обеспечивает выполнение следующих функций:
-
дейтаграммную доставку пакетов;
-
маршрутизацию пакетов в межсетевых шлюзах;
-
обеспечение требуемого качества обслуживания пакетов в маршрутизаторах;
-
уничтожение пакетов, превысивших допустимое время доставки;
-
динамическую фрагментацию пакетов при передаче их между сетями и сборку исходной дейтаграммы.
Функционирование механизмов протокола происходит следующим образом. В начальный момент передачи протокол транспортного уровня выдает IP-модулю свой блок данных и необходимые параметры для передачи. IP-сервис строит заголовок дейтаграммы, присоединяет к нему полученные данные, определяет следующий шлюз по маршруту движения пакета или оконечный хост и передает пакет в интерфейс “своей” локальной сети (LNI). Здесь пакет инкапсулируется в соответствующий локальный “конверт”. На промежуточном маршрутизаторе пакет “разворачивается”, обрабатывается его заголовок, определяется маршрут его дальнейшего движения, а затем осуществляется передача пакета в интерфейс следующей локальной сети. Аналогичные процедуры происходят на всех маршрутизаторах до достижения пакетом пункта назначения, на котором “развернутый” пакет передается транспортному модулю. Схема движения IP-дейтаграммы показана на рис.1.
Рис.1.
При передаче пакета от одного IP-модуля к другому может случиться, что дейтаграммы будут передаваться по сети, для которой допустимый размер канального блока меньше размера дейтаграммы. Следует отметить, что в локальных сетях, в частности в Ehternet, IP-пакет инкапсулируется в кадр целиком без разбиения на более мелкие блоки на канальном уровне. Поэтому IP-протокол должен адаптировать размер своих пакетов для каждой следующей сети. С этой целью и производится динамическая фрагментация исходного пакета. Эта процедура никак не отражается на IP-структуре пакета и называется “внутренней” – intranet-фрагментацией. Она может разбить дейтаграмму на пакеты произвольной длины и затем восстановить ее в первоначальном виде, но только на конечном узле.
IP-модуль, работающий в шлюзе, создает в общем случае несколько новых дейтаграмм, в каждую из которых копирует заголовок исходной дейтаграммы. Поле данных этой дейтаграммы делится на порции по 64-битной границе (последняя из них может быть и не выровнена). При этом суммарная длина коротких дейтаграмм (порции данных и заголовка) не должна превышать максимально допустимого значения поля данных кадра. Связь образованного семейства коротких дейтаграмм осуществляется следующим образом. Каждая исходная дейтаграмма имеет свой уникальный номер, который формируется транспортным протоколом и заносится в поле Identification исходной дейтаграммы. Этот номер, присутствующий и в каждой короткой дейтаграмме (ведь заголовок копировался), служит признаком-идентификатором для восстановления исходного текста. Последовательность коротких дейтаграмм задается значением поля смещения фрагмента (Fragment Offset) в заголовке. В частном случае (при первом делении) в поле смещения первого короткого пакета будет 0, во втором пакете – количество 64-битных блоков первой порции, в третьем – сумма блоков первой и второй порций и т.д. В общем случае длинная дейтаграмма сама по себе может являться частью еще более длинной, и в ней уже может быть какое-то значение поля Fragment Offset, отличное от нуля. В этом случае, это значение будет помещаться в заголовок первого короткого пакета (ведь он копируется), но будет суммироваться со смещениями в последующих пакетах. Заметим, что не каждая дейтаграмма может быть фрагментирована. На эту возможность указывает флаг DF. Если пакет не может быть фрагментирован, а максимально допустимый размер канального протокола меньше, чем реальная длина этого пакета, то он просто уничтожается. На то, какое место занимает фрагментированный блок в цепочке, указывает флаг MF. Если он равен нулю, то данный пакет является либо единственным (на это укажет нулевое значение поля Fragment Offset), либо последним в цепочке (при ненулевом значении поля Fragment Offset), что является сигналом к сборке исходного пакета.
Заголовок IP-пакета представлен на рис. 2.
ЗАГОЛОВОК IP-ДЕЙТАГРАММЫ
0 | 4 | 8 | 16 | 20 | 31 |
Version Поле версии | IHL Длина заголовка | Type of Service Условия обслуживания | Total Length Общая длина пакета | ||
Identification Поле идентификатора дейтаграммы | Flags Поле управля-ющих флагов | Fragment Offset Поле смещения фрагмента | |||
Time to live Поле “времени жизни” пакета | Protocol тип транспортного протокола | Header Checksum Поле контрольной суммы заголовка | |||
Source Address Адрес отправителя | |||||
Destination Address Адрес получателя | |||||
Options Поле дополнительных параметров | Padding Поле выравнивания |
Рис. 2
Назначение полей заголовка.
Version (4 бита). Поле версии. Устанавливает формат заголовка Internet-пакета в зависимости от применяемой версии протокола (IPv4 или IPv6).
IHL (Internet Header Length) (4 бита). Поле длины заголовка IP-пакета в 32-битных словах. Значение не может быть меньше 5 (пять 32-х битных слова в заголовке являются обязательными).
Type of Service (8 бит). Поле условий обслуживания. Определяет вид обработки пакета.
0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
Приоритет | D | T | R | Резерв |
Приоритет обеспечивает очередность обработки пакета на роутерах. При этом 7-ой, высший, приоритет предоставлен сетевым службам, 0-ой – всем пользователям по умолчанию, а промежуточные – специально администрируются.
Поля D,T,R определяют тип транспортировки или класс сервиса.
Поле D – требует обеспечения низкой задержки при передаче по маршруту.
Поле T – требует высокой пропускной способности тракта, по которому производится передача.
Поле R - требует высокой надежности элементов тракта, по которому производится передача.
Фактически, класс сервиса определяет, по какому критерию следует проводить маршрутизацию. Если поля D,T и R имеют нулевые значения, то критерием является минимальное число переприемов (хопов).
Для каждого класса сервиса должна быть своя таблица маршрутов.
Total Length (16 бит). Поле общей суммарной длины пакета (в октетах) целиком, считая длину заголовка и длину поля данных.
Identification (16 бит). Поле идентификатора дейтаграммы. Устанавливается отправителем и представляет собой уникальный номер, служащий для сборки дейтаграммы у получателя, если она была разбита на более мелкие пакеты в процессе передачи.
Flags (3 бита). Поле управляющих флагов.
0 | 1 | 2 |
Резерв | DF | MF |
Флаг DF – определяет возможность фрагментирования пакета.
DF=0 – пакет можно фрагментировать;
DF=1 – пакет нельзя фрагментировать.
Флаг MF – определяет положение фрагмента в последовательности.
MF=0 – фрагмент является последним;
MF=1 – за данным фрагментом следуют еще фрагменты, входящие в серию.
Fragment Offset (8 бит). Поле смещения фрагмента в 64-разрядных блоках. Указывает, где произошло разбиение исходной дейтаграммы, т.е. положение данного фрагмента в серии.
Time to live (8 бит). Поле “времени жизни” пакета. Определяет верхнее значение периода времени (в сек.), в течение которого данная дейтаграмма может находиться в сети. Каждый узел вычитает из этой величины затраченное им время на обработку пакета и нахождение его в очередях на узле, но не менее 1 сек.
Protocol (8 бит). Поле типа протокола. Определяет используемый тип транспортного протокола (TCP, UDP). Нужна для демультиплексирования потока на IP-модуле получателя при передаче данных определенному транспортному протоколу.
Header Checksum (16 бит). Поле контрольной суммы заголовка. Сумма на четность всех 16-разрядных слов заголовка, исключая само это поле.
Source Address и Destination Address (по 32 бита). IP-адреса отправителя и получателя соответственно.
Options (n бит). Поле дополнительных параметров переменной длины.
Padding (m бит). Поле выравнивания. Дополняет поле дополнительных параметров до 32-битной границы (m<32).
Порядок выполнения работы
-
Получить у преподавателя вариант задания, содержащего исходные данные для формирования заголовка IP-пакета и проведения фрагментирования.
-
Изучить теоретические сведения о свойствах протокола IP и работе его механизмов.
-
Заполнить поля заголовка IP-пакета в соответствии с данными варианта. При этом считать, что все поле дополнительных параметров (Options) указанной длины заполнено единицами, коды транспортных протоколов в поле Protocol равны соответственно 410 и 1710 для TCP и UDP.
-
Получить значение контрольной суммы IP-пакета и записать его в соответствующее поле.
-
Провести фрагментацию длинной дейтаграммы в зависимости от максимально допустимого значения поля данных канального блока.
Содержание отчета
-
Ответы на контрольные вопросы в произвольной форме.
-
Заполненный заголовок исходного пакета в десятичной форме.
-
Значение поля контрольной суммы в двоичной форме.
-
Количество коротких пакетов и значения полей заголовков, отличающихся от полей исходного заголовка для каждого короткого пакета.
Контрольные вопросы
-
Каковы особенности протокола IP, отличающие его от протокола Х.25?
-
Чем отличается транспортная среда при взаимодействии соседних узлов коммутации, применяющих протокол Х.25 от аналогичного взаимодействия маршрутизаторов, работающих в среде протокола IP?
-
Каковы принципы фрагментации при передаче IP-пакета на канальный уровень и чем они отличаются от принципов передачи в системе X.25-HDLC?
Характеристики
Тип файла документ
Документы такого типа открываются такими программами, как Microsoft Office Word на компьютерах Windows, Apple Pages на компьютерах Mac, Open Office - бесплатная альтернатива на различных платформах, в том числе Linux. Наиболее простым и современным решением будут Google документы, так как открываются онлайн без скачивания прямо в браузере на любой платформе. Существуют российские качественные аналоги, например от Яндекса.
Будьте внимательны на мобильных устройствах, так как там используются упрощённый функционал даже в официальном приложении от Microsoft, поэтому для просмотра скачивайте PDF-версию. А если нужно редактировать файл, то используйте оригинальный файл.
Файлы такого типа обычно разбиты на страницы, а текст может быть форматированным (жирный, курсив, выбор шрифта, таблицы и т.п.), а также в него можно добавлять изображения. Формат идеально подходит для рефератов, докладов и РПЗ курсовых проектов, которые необходимо распечатать. Кстати перед печатью также сохраняйте файл в PDF, так как принтер может начудить со шрифтами.