Сообщение, передаваемое ненадежным протоколом, может случайно исчезнуть. Ненадежный протокол не только не гарантирует доставку, но также и не уведомляет о потере данных. Однако так же, как содержимое письма защищено конвертом, сетевое сообщение, если уж оно дошло, может защищаться ненадежным протоколом при помощи одной или нескольких контрольных сумм.
Протокол Интернет (IP) всегда использует контрольные суммы, а протокол доставки пользовательских датаграмм (UDP) может применять, а может и не применять контрольные суммы. Оба этих протокола ненадежны. Вы можете спросить: «Почему же кто-то пользуется ненадежными протоколами?» Все дело в цене, которую мы платим за надежность. Ненадежный протокол гораздо проще в реализации и применении. Его стоимость в терминах сложности использования и пропускной способности сети оказывается значительно ниже стоимости надежных протоколов.
Несмотря на название, ненадежный протокол все равно можно заставить работать надежно. Просто функции, гарантирующие доставку данных, нужно встроить в прикладную программу, а в остальном положиться на ненадежный протокол. Немного позже вы узнаете, что надежный сетевой протокол TCP пользуется услугами ненадежного протокола Интернет (IP) для передачи всех своих данных. Тем не менее этот альянс вполне надежен, так как функции обеспечения гарантированной доставки встроены в TCP.
1.2.4 Инкапсуляция
Когда прикладная программа отсылает данные при помощи протокола TCP, то они проходят через все уровни вниз по протокольному стеку, прежде чем превратятся в поток битов, передаваемых в линию. Каждый слой добавляет к спущенной ему порции данных собственную информацию в виде своего заголовка, а иногда еще и концевика. Порцию данных, которую TCP отдает IP-модулю, называют TCP-сегментом. Порция данных, которую IP отдает драйверу интерфейса, называется IP дейтаграммой. Пачка битов, передаваемых но кабелю Ethernet, образует кадр.
|
Инкапсуляция (encapsulation) или туннелирование (tunneling) - это метод согласования сетей, который применим только для согласования транспортных протоколов.
Инкапсуляция может быть использована, когда две сети с одной транспортной технологией необходимо соединить через сеть, использующую другую технологию.
Метод инкапсуляции заключается в том, что пограничные маршрутизаторы, которые подключают объединяемые сети к транзитной, упаковывают пакеты транспортного протокола объединяемых сетей в пакеты транспортного протокола транзитной сети. Второй пограничный маршрутизатор выполняет обратную операцию.
Обычно инкапсуляция приводит к более простым и быстрым решениям по сравнению с трансляцией, так как решает более частную задачу, не обеспечивая взаимодействия с узлами транзитной сети.
Можно насчитать пять шагов, связанных с процессом инкапсуляции данных, когда они готовятся транспортным уровнем для отправки в кабель. Они перечислены ниже:
1. С верхних уровней получена информация от пользователя, например запрос регистрации на сервере, задание печати или поиск в Web. Информация преобразуется в данные, чтобы ее можно было транспортировать к месту назначения.
2. Данные подготовлены для транспортировки на целевой компьютер. В случае TCP к данным добавляется заголовок TCP, содержащий информацию об упорядочивании, помогающую сохранить все в порядке при преобразовании в сегменты.
|
3. На третьем уровне модели OSI находится протокол IP. Здесь будет добавлен заголовок IP, так как сегмент TCP преобразуется в пакет IP. Заголовок IP включает IP-адреса источника и места назначения, что поможет при маршрутизации (выполняемой на этом уровне модели OSI) пакета в соответствующее место назначения.
4. На уровне канала данных в нашем примере пакеты IP преобразуются в кадры Ethernet. Чтобы сетевое устройство могло общаться через локальный интерфейс с другим интерфейсом в сети, оно должно поместить пакет в кадр. Тип кадра должен совпадать, иначе устройства не смогут общаться. В примерах трассировок мы увидим, что кадры Ethernet создаются вокруг пакетов IP.
5. Теперь кадр Ethernet превращается в единицы и нули. Как говорилось ранее, эти биты перемещаются по сети особым образом, определенным методами доступа, пока не достигнут своего места назначения.
Вспомним, что IP-модуль воспринимает данные от разных протоколов: TCP, UDP, ICMP и IGMP. Следовательно, IP-модуль должен включить в создаваемый им заголовок некий идентификатор происхождения данных. Протокол IP выполняет это, фиксируя соответствующий код (8 бит) в поле протокол (protocol) своего заголовка. Для ICMP это значение равно 1, для IGMP — 2, для TCP-6, а для UDP- 17.
Аналогично, несколько разных приложений могут одновременно использовать протокол TCP (или UDP). Соответственно, протоколы транспортного уровня записывают в заголовки, создаваемые этими протоколами, условный код, позволяющий им опознавать каждое приложение. Как TCP, так и UDP используют для такой идентификации специальные 16-разрядные номера портов (port numbers). Номера порта источника и порта назначения записываются в соответствующих полях TCP- и UDP-заголовков.
|
Наконец, драйвер интерфейса передает и принимает кадры, содержащие данные протоколов IP, ARP или RARP. В заголовке кадра Ethernet также должна быть предусмотрена некая форма идентификации, позволяющая определить сетевой протокол, породивший содержимое кадра. Для этого существует 16-разрядное поле тип (type) в заголовке кадра Ethernet.
1.2.5 Протокол IP и его основные функции
Основу транспортных средств стека протоколов TCP/IP составляет протокол межсетевого взаимодействия (Internet Protocol, IP). Он обеспечивает передачу дейтаграмм от отправителя к получателям через объединенную систему компьютерных сетей.
Название данного протокола - Intrenet Protocol - отражает его суть: он должен передавать пакеты между сетями. В каждой очередной сети, лежащей на пути перемещения пакета, протокол IP вызывает средства транспортировки, принятые в этой сети, чтобы с их помощью передать этот пакет на маршрутизатор, ведущий к следующей сети, или непосредственно на узел-получатель.
Протокол IP относится к протоколам без установления соединений. Перед IP не ставится задача надежной доставки сообщений от отправителя к получателю. Протокол IP обрабатывает каждый IP-пакет как независимую единицу, не имеющую связи ни с какими другими IP-пакетами. В протоколе IP нет механизмов, обычно применяемых для увеличения достоверности конечных данных: отсутствует квитирование - обмен подтверждениями между отправителем и получателем, нет процедуры упорядочивания, повторных передач или других подобных функций. Если во время продвижения пакета произошла какая-либо ошибка, то протокол IP по своей инициативе ничего не предпринимает для исправления этой ошибки. Например, если на промежуточном маршрутизаторе пакет был отброшен по причине истечения времени жизни или из-за ошибки в контрольной сумме, то модуль IP не пытается заново послать испорченный или потерянный пакет. Все вопросы обеспечения надежности доставки данных по составной сети в стеке TCP/IP решает протокол TCP, работающий непосредственно над протоколом IP. Именно TCP организует повторную передачу пакетов.
Важной особенностью протокола IP, отличающей его от других сетевых протоколов, является его способность выполнять динамическую фрагментацию пакетов при передаче их между сетями с различными, максимально допустимыми значениями поля данных кадров MTU. Свойство фрагментации во многом способствовало тому, что протокол IP смог занять доминирующие позиции в сложных составных сетях.
Имеется прямая связь между функциональной сложностью протокола и сложностью заголовка пакетов, которые этот протокол использует. Основные служебные данные, на основании которых протокол выполняет то или иное действие, переносятся между двумя модулями, реализующими этот протокол на разных машинах, именно в полях заголовков пакетов. Поэтому очень полезно изучить назначение каждого поля заголовка IP-пакета, и это изучение дает не только формальные знания о структуре пакета, но и объясняет все основные режимы работы протокола по обработке и передаче IP-дейтаграмм.
1.2.6 Фрагментация
Протокол IP позволяет выполнять фрагментацию пакетов, поступающих на входные порты маршрутизаторов.
Следует различать фрагментацию сообщений в узле-отправителе и динамическую фрагментацию сообщений в транзитных узлах сети - маршрутизаторах. Во всех стеках протоколов есть протоколы, которые отвечают за фрагментацию сообщений прикладного уровня на такие части, которые укладываются в кадры канального уровня. В стеке TCP/IP эту задачу решает протокол TCP, который разбивает поток байтов, передаваемый ему с прикладного уровня на сообщения нужного размера. Поэтому протокол IP в узле-отправителе не использует свои возможности по фрагментации пакетов.
А вот при необходимости передать пакет в следующую сеть, для которой размер пакета является большим, IP-фрагментация становится необходимой. В функции уровня IP входит разбиение длинного для конкретного типа составляющей сети сообщения на короткие пакеты с созданием служебных полей, нужных для последующей сборки фрагментов в исходное сообщение.
В большинстве типов локальных и глобальных сетей значения MTU, то есть максимальный размер поля данных, в которое должен инкапсулировать свой пакет протокол IP, значительно отличается. Сети Ethernet имеют значение MTU = 1500б, сети FDDI - 4096б, а сети Х.25 работают с MTU в 128б.
Процедуры фрагментации и сборки протокола IP рассчитаны на то, чтобы пакет мог быть разбит на любое количество частей, впоследствии вновь собирающихся. Получатель фрагмента использует поле идентификации для того, чтобы не перепутать фрагменты различных пакетов. Модуль IP, отправляющий пакет, устанавливает в поле идентификации значение, уникальное для данной пары отправитель - получатель, а также время, в течение которого пакет может быть активным в сети.
Поле смещения фрагмента сообщает получателю положение фрагмента в исходном пакете. Смещение фрагмента и длина определяют часть исходного пакета, принесенную этим фрагментом. Флаг «more fragments» показывает появление последнего фрагмента. Модуль протокола IP, отправляющий неразбитый пакет, устанавливает в 0 флаг и смещение во фрагменте.
Чтобы разделить на фрагменты большой пакет, модуль протокола IP, установленный на маршрутизаторе, создает несколько новых пакетов и копирует содержимое полей IP-заголовка из большого пакета в IP-заголовки всех новых пакетов. Данные из старого пакета делятся на соответствующее число частей, размер каждой из которых обязательно должен быть кратным 8 байт. Размер последней части данных равен полученному остатку.
Каждая часть данных помещается в новый пакет. При фрагментации некоторые параметры IP-заголовка копируются в заголовки всех фрагментов, другие остаются в заголовке первого фрагмента. Процесс фрагментации может изменить значения данных, расположенных в поле параметров, и значение контрольной суммы заголовка, изменить значение флага и смещение фрагмента, изменить длину IP-заголовка и общую длину пакета. В заголовок каждого пакета заносятся значения в поле смещения «fragment offset», а в поле общей длины пакета помещается длина каждого пакета. Первый фрагмент будет иметь в поле «fragment offset» значение 0. Во всех пакетах флаг «more fragments» = 1, а в последнем фрагменте = 0.
Чтобы собрать фрагменты пакета, модуль протокола IP объединяет IP-пакеты, имеющие одинаковые значения в полях идентификатора, отправителя, получателя и протокола. Таким образом, отправитель должен выбрать идентификатор таким образом, чтобы он был уникален для данной пары отправитель-получатель, для данного протокола и в течение того времени, пока данный пакет может существовать в составной IP-сети.
Модуль протокола IP имеет таблицу идентификаторов, где каждая запись соотносится с каждым отдельным получателем, с которым осуществлялась связь, и указывает последнее значение максимального времени жизни пакета в IP-сети. Однако некоторые хосты могут использовать просто уникальные идентификаторы, не зависящие от адреса получателя.
В некоторых случаях целесообразно, чтобы идентификаторы IP-пакетов выбирались протоколами более высокого, чем IP, уровня. Например, в протоколе TCP предусмотрена повторная передача ТСР - сегментов, по каким-либо причинам не дошедшим до адресата. Вероятность правильного приема увеличивалась бы, если бы при повторной передаче идентификатор для IP-пакета был бы тем же, что и в исходном IP-пакете, поскольку его фрагменты могли бы использоваться для сборки правильного ТСР - сегмента.
Каждый модуль IP должен быть способен передать пакет из 68 байт без дальнейшей фрагментации. Это связано с тем, что IP-заголовок может включать до 60 байт, а минимальный фрагмент данных - 8 байт. Каждый получатель должен быть в состоянии принять пакет из 576 байт в качестве единого куска либо в виде фрагментов, подлежащих сборке.
Если бит флага запрета фрагментации установлен, то фрагментация данного пакета запрещена, даже если в этом случае он будет потерян. Данное средство используется для предотвращения фрагментации в случаях, когда хост - получатель не имеет достаточных ресурсов для сборки фрагментов.
Рис.2.2. Фрагментация IP-пакетов при передаче между сетями с разным максимальным размером пакетов: К1 и 01 - канальный и физический уровень сети 1; К2 и Ф2 - канальный и физический уровень сети 2.
Пусть компьютер 1 связан с сетью, имеющей значение MTU в 4096 байт, например с сетью FDDI. При поступлении на IP-уровень компьютера 1 сообщения от транспортного уровня размером в 5600 байт протокол IP делит его на два IP-пакета, устанавливая в первом пакете признак фрагментации и присваивая пакету уникальный идентификатор, например 486, В первом пакете величина поля смещения равна 0, а во втором - 2800. Признак фрагментации во втором пакете равен 0 (это последний фрагмент пакета). Общая величина IP-пакета составляет 2800 + 20 (IP-заголовок), т. е. 2820
б, что умещается в поле данных кадра FDDI. Модуль IP компьютера 1 передает эти пакеты своему сетевому интерфейсу (образуемому протоколами канального уровня К 1 и физического уровня Ф1), Сетевой интерфейс отправляет кадры следующему маршрутизатору.
После того, как кадры пройдут уровень сетевого интерфейса маршрутизатора (К1 и Ф1) и освободятся от заголовков FDDI, модуль IP по сетевому адресу определяет, что прибывшие два пакета нужно передать в сеть 2, которая является сетью Ethernet и имеет значение MTU=1500. Т. е. прибывшие IP-пакеты необходимо фрагментировать. Маршрутизатор извлекает поле данных из каждого пакета и делит его еще пополам, чтобы каждая часть уместилась в поле данных кадра Ethernet. Затем он формирует новые IP-пакеты, каждый из которых имеет длину 1400 + 20 - 1420 б, что меньше 1500 байт, поэтому они нормально помещаются в поле данных кадров Ethernet.
В результате в компьютер 2 по сети Ethernet приходят 4 IP-пакета с общим идентификатором 486, что позволяет протоколу IP в компьютере 2 правильно собрать исходное сообщение. Если пакеты пришли не в том порядке, то смещение укажет правильный порядок их объединения.
IP-маршрутизаторы не собирают фрагменты пакетов в более крупные пакеты, даже если на пути встречается сеть, допускающая такое укрупнение. Это связано с тем, что отдельные фрагменты сообщения могут перемещаться по интерсети по различным маршрутам, т. е. нет гарантии, что все фрагменты проходят через какой-либо промежуточный маршрутизатор на их пути.
При приходе первого фрагмента пакета узел назначения запускает таймер, определяющий максимально допустимое время ожидания прихода остальных фрагментов этого пакета. Таймер устанавливается на максимальное из двух значений: первоначальное установочное время ожидания и время жизни, указанное в принятом фрагменте. Таким образом, первоначальная установка таймера является нижней границей для времени ожидания при c6oе. Если таймер истекает раньше прибытия последнего фрагмента, то все ресурсы сборки, связанные с данным пакетом, освобождаются, все полученные к этому моменту фрагменты пакета отбрасываются, а в узел, пославший исходный пакет, направляется сообщение об ошибке с помощью протокола ICMP.
1.2.7 Формат заголовка пакета Ipv4
Протокол IP является самым главным во всей иерархии протоколов семейства TCP/IP. Он используется для управления рассылкой TCP/IP пакетов по сети Internet.
Выделяют следующие функции:
а) определение пакета (датаграммы), который является базовым понятием и единицей передачи данных в сети Internet;
б) определение адресной схемы, которая используется в сети Internet;
в) передача данных между канальным уровнем и транспортным уровнем (мультиплексирование датаграмм во фреймы канального уровня);
г) маршрутизация пакетов по сети, т.е. передача пакетов от одного шлюза к другому с целью передачи пакета машине-получателю;
д) "нарезка" и сборка из фрагментов пакетов транспортного уровня.
Главными особенностями протокола IP является отсутствие ориентации на физическое или виртуальное соединение. Кроме этого, IP не заботится о проверке целостности информации в поле данных пакета, что заставляет отнести его к протоколам ненадежной доставки. Целостность данных проверяется протоколом TCP.
Т.о. информация о пути, по которому должен пройти пакет берется из самой сети в момент прохождения пакета. Эта процедура - маршрутизация. Принцип маршрутизации – один из тех факторов, обеспечивающих гибкость сети Internet и ее победу в соревновании с другими сетевыми технологиями.
Маршрутизация является довольно ресурсоемкой процедурой, т.к требует анализа каждого пакета, который проходит через шлюз или маршрутизатор. Но эта слабость IP одновременно является и его силой. При неустойчивой работе сети пакеты могут пересылаться по различным маршрутам и затем собираться в единое сообщение. При коммутации путь придется каждый раз вычислять заново для каждого пакета, т.е. коммутация потребует больше накладных затрат. Формат пакета протокола представлен на рисунке 2.3.
Рис. 2.3. Формат пакета Ipv4.
Фактически, в этом заголовке определены все основные данные, необходимые для перечисленных выше функций протокола IP: адрес отправителя (4-ое слово заголовка), адрес получателя (5-ое слово заголовка), общая длина пакета (поле Total Lenght) и тип пересылаемой датаграммы (поле Protocol). Используя данные заголовка, машина может определить на какой сетевой интерфейс отправлять пакет. Если IP-адрес получателя принадлежит одной из ее сетей, то на интерфейс этой сети пакет и будет отправлен, в противном случае пакет отправят на другой шлюз.
Если пакет слишком долго "бродит" по сети, то очередной шлюз может отправить ICMP-пакет на машину-отправитель чтобы уведомить о том, что надо использовать другой шлюз. Сам IP-пакет будет уничтожен. На этом принципе работает программа ping, использующаяся для деления маршрутов прохождения пакетов по сети. Зная протокол транспортного уровня, IP-модуль производит раскапсулирование информации из своего пакета и ее направление на модуль обслуживания соответствующего транспорта.
При обсуждении формата заголовка пакета IP вернемся еще раз к инкапсулированию. Как уже отмечалось, при обычной процедуре инкапсулирования пакет помещается в поле данных фрейма, а в случае, когда это не может быть осуществлено, то разбивается на более мелкие фрагменты. Для того, чтобы потом восстановить пакет IP должен держать информацию о своем разбиении. Для этой цели используется поля "flags" и "fragmentation offset". В этих полях определяется, какая часть пакета получена в данном фрейме, если этот пакет был фрагментирован на более мелкие части.
1.2.8 Протокол IPv6
Все большее беспокойство вызывает уменьшение количества свободных адресов. И поставщики услуг, и транснациональные корпорации испытывают трудности в получении нужных блоков адресов и вынуждены использовать трансляцию сетевых адресов NAT. Протокол IPv6 поддерживает существенно большее адресное пространство за счет увеличения длины адреса с 32 до 128 бит, что дает 3,4 x 1038 возможных адресов.
Отличительные особенности протокола IPv6:
• Поддержка большего числа уровней адресной иерархии и за счет этого большего числа адресуемых узлов.
• Упрощение управления IP адресами за счет поддержки автоконфигурации в режиме stateless. Хосты и маршрутизаторы динамически получают адресную информацию IP.
• Ограничение количества магистральных адресов маршрутизации за счет агрегации маршрутов. Это упрощает иерархию маршрутизации и улучшает объединение маршрутов.
• Увеличение гибкости для обеспечения новых IP приложений, таких как услуги мобильного Интернета, предложены расширения для поддержки более специализированных IP услуг.
• Улучшение безопасности за счет поддержки расширений идентификации, проверки целостности данных и обеспечения конфиденциальности данных.
Рис. 2.4. Формат заголовка пакета IPv6.
Версия: 4-битный код номера версии Интернет протокола IPv6= 6.
Приор: 4-битный код приоритета
Метка потока: 24-битный код метки потока (для мультимедиа)
Размер поля данных: 16-битовое число без знака. Несет в себе код длины поля данных, которое следует после заголовка пакета. Если код = 0, длина поля данных записана в поле данных jumbo, которое хранится в зоне опций.
Следующий заголовок: 8-битовый разделитель. Идентифицирует тип заголовка, который следует непосредственно за IPv6 заголовком. Использует те же значения, что и протокол IPv4.
Предельное число шагов: 8-битовое целое число без знака. Уменьшается на 1 в каждом узле, через который проходит пакет. При предельном числе шагов, равном нулю, пакет удаляется.
Адрес отправителя: 128-битовый адрес отправителя пакета.
Адрес получателя: 128-битовый адрес получателя пакета.
В IPv6, опционная информация уровня Интернет записывается в отдельных заголовках, которые могут быть помещены между IPv6 заголовком и заголовком верхнего (следующий заголовок), определены заголовки: маршрутизации, фрагментации, аутентификации, инкапсуляции, опций hop-by-hop, места назначения и отсутствия следующего заголовка. IPv6 пакет может нести нуль, один, или более заголовков расширения, каждый задается предыдущим полем следующий заголовок.
Рис. 2.5. Структура вложения пакетов для IPv6.
IPv6 включает в себя следующие заголовки расширения:
• Опции hop-by-hop. Используется для опционной информации, которая просматривается каждым узлом по пути доставки. Заголовок опций hop-by-hop идентифицируется кодом поля следующий заголовок 0 в IPv6 заголовке и имеет формат.
• Маршрутизация (routing; тип 0). Используется отправителем, чтобы заставить пакет посетить промежуточные узлы на пути к месту назначения. Эта функция схожа с опцией принудительной маршрутизации в протоколе IPv4. Заголовок маршрутизации идентифицируется кодом 43 поля следующий заголовок предыдущего заголовка.
• Фрагмент. Используется отправителем IPv6 для посылки пакетов длиннее, чем MTU пути до места назначения. (в отличие от IPv4, фрагментация в IPv6 выполняется только узлами-отправителями, а не маршрутизаторами вдоль пути доставки). Заголовок фрагментации идентифицируется кодом поля следующий заголовок, равным 44.
• Опции места назначения. Используется для передачи опционной информации, которая должна анализироваться только узлом (узлами) назначения. Заголовок опции места назначения идентифицируется кодом поля следующий заголовок равным 60 предшествующего заголовка.
• Проверка прав доступа (authentication).
• Поле безопасных вложений (encapsulating security payload).
1.2.9 Протокол ICMP
Протокол Internet (IP) используется для обработки датаграммы, передаваемой между хост-компьютерами в системе объединенных сетей, называемой Catenet. Устройства, осуществляющие соединение различных сетей, называются шлюзами. Для обеспечения управления шлюзы общаются друг с другом посредством протокола Gateway to Gateway Protocol (GGP). Порой шлюз или хост-компьютер, получающий данные, обменивается информацией с хост-компьютером, отправляющим эти данные. Именно для таких целей используется данный протокол - протокол контрольных сообщений Internet (ICMP). ICMP использует основные свойства протокола Internet (IP), как если бы ICMP являлся протоколом более высокого уровня. Однако фактически ICMP является составной частью протокола Internet и должен являться составной частью каждого модуля IP.
Сообщения ICMP должны отправляться в некоторых затруднительных ситуациях. Например, когда датаграмма не может достичь своего адресата, когда шлюз не имеет достаточно места в своем буфере для передачи какой-либо датаграммы, или когда шлюз приказывает хост-компьютеру отправлять информацию по более короткому маршруту.
Протокол Internet не создан для того, чтобы обеспечивать абсолютную надежность передачи информации. Целью же данных контрольных сообщений является обеспечение обратной связи, оповещение отправителя данных о проблемах, возникающих в коммуникационном оборудовании. Их целью не является придание надежности протоколу IP. Протокол не дает гарантий, что датаграмма достигает своего адресата или что контрольное сообщение будет возвращено компьютеру, отправившему данные. Некоторые из датаграмм могут исчезнуть в сети, не вызвав при этом ни каких оповещений. Протоколы более высокого уровня, использующие протокол IP, должны применять свои собственные процедуры для обеспечения надежности передачи данных.
Сообщения ICMP протокола оповещают об ошибках, возникающих при обработке датаграмм. Чтобы проблемы с передачей сообщений не вызывали появление новых сообщений, циркулирующих в сети, констатируется, что нельзя посылать сообщения о сообщениях. Также констатируется, что ICMP сообщения можно посылать только о проблемах, возникающих при обработке нулевого фрагмента в сегментированной датаграмме.
Форматы сообщений
ICMP сообщения посылаются с помощью стандартного IP заголовка. Первый октет в поле данных датаграммы - это поле типа ICMP сообщения. Значение этого поля определяет формат всех остальных данных в датаграмме. Любое поле, которое помечено "unused", зарегистрировано для последующих разработок и должно при отправлении содержать нули. Однако получатель не должен использовать значения этих полей (за исключением процедуры вычисления контрольной суммы). Если обратное особо не оговорено при описании отдельных фрагментов, Internet заголовок должен иметь в своих полях следующие значения:
Версия: 4
IHL
Длина Internet заголовка; единица измерения - 32-битное слово.
Тип сервиса: 0
Общая длина
Длина Internet заголовка и поля данных в октетах.
Идентификация, флаги, смещение фрагмента: спользуются в случае фрагментации.
Время жизни: время жизни в секундах. Поскольку значение этого поля уменьшается на 1 в каждой машине, на которой обрабатывается данная датаграмма, то значение этого поля должно, по крайней мере, превышать количество шлюзов, через которые будет проходить данная датаграмма.
Протокол: ICMP=1
Контрольная сумма заголовка: 16-битное дополнение до единицы суммы дополнений до единицы всех 16-битных слов в заголовке. При вычислении данной суммы следует первоначально устанавливать значение этого поля в 0.
В дальнейшем этот алгоритм вычисления контрольной суммы должен быть изменен.
Адрес отправления: адрес шлюза или хост-компьютера, который составил данное ICMP сообщение. Если не оговорено обратное, в этом поле может находиться любой из адресов шлюза.
Адрес получателя: адрес шлюза или хост-компьютера, которому следует послать данное сообщение.
1.2.10. Протокол UDP
Протокол UDP является одним из двух основных протоколов транспортного уровня, расположенных непосредственно над IP. Он предоставляет прикладным процессам транспортные услуги, которые не многим отличаются от услуг, предоставляемых протоколом IP. Протокол UDP обеспечивает ненадежную доставку датаграмм и не поддерживает соединений из конца в конец. Другими словами, его пакеты могут быть потеряны, продублированы или прийти не в том порядке, в котором они были отправлены. К заголовку IP-пакета он добавляет два поля, одно из которых, поле "порт", обеспечивает мультиплексирование информации между разными прикладными процессами, а другое поле - "контрольная сумма" - позволяет поддерживать целостность данных. Примерами сетевых приложений, использующих UDP, являются NFS и SNMP.