Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Analiz_trafika_M_-_Setey.doc
Скачиваний:
7
Добавлен:
01.07.2025
Размер:
18 Мб
Скачать
☆
      1. Поля udp дейтограммы

Поле Source port (Порт отправителя) указывает порт приложения, отправившего дейтограмму. Это поле необязательное, если оно используется, то содержит нуль.

Поле Destination port (Порт получателя) указывает порт приложении, которое должно обрабатывать эту дейтограмму у получателя;

Поле Length (Длина) определяет число октетов (байт) в UDP дейтограмме, включая заголовок;

Поле Checksum (Контрольная сумма) указывает контрольную сумму UDP дейтограммы. Поле необязательно содержит контрольную сумму. Для упрощения вычислений в поле Checksum записывается нуль, тогда получатель не проверяет контрольную сумму дейтограммы. Однако, это, может привести к неприятным последствиям, поскольку протокол IP не вычислят контрольную сумму переносимых им данных (в частности, UDP дейтограммы). Если расчетная контрольная сумма равна нулю, она передается как поле, целиком состоящее из единиц (эквивалент при дополнении до единицы). Передача поля, целиком состоящего из нулей, означает, что отправитель дейтограммы не вычислял контрольной суммы (при отладке, а также для тех протоколов, которые не требуют точности передачи).

Для расчета контрольной суммы UDP дейтограммы требуется дополнительная информация, не входящая в заголовок UDP пакета. Для вычисления контрольной суммы UDP добавляет псевдо заголовок (рис. 9.9) к дейтограмме, дополняет полученную дейтограмму нулевыми битами до величины кратной шестнадцати, и начисляет контрольную сумму.

Рис. 9.9 формат псевдо заголовка UDP

Сам по себе псевдо заголовок не передается, поэтому размер UDP дейтограммы не увеличивается. Для проверки дейтограммы на приемной стороне, псевдо заголовок генерируется протоколом UDP из соответствующих полей IP пакета. Идентичность контрольных сумм гарантирует доставку пакета по правильному (указанному в поле «Destination address») адресу и по указанному порту. В поле псевдо заголовка «Protocol» указывается код протокола UDP равный 17.

      1. Инкапсуляция udp

Инкапсуляция – это вложение протокола более высокого уровня в ноле данных протокола более низкого уровня.

Протокол UDP, согласно стеку протоколов TCP/IP, должен взаимодействовать с протоколами прикладного уровня и протоколами межсетевого уровня. Протоколы прикладного уровня передают битовый (байтовый) поток протоколу UDP. Этот поток протокол UDP фрагментирует и вставляет в область данных своих дейтаграмм. Далее протокол UDP вычисляет контрольную сумму, добавляет свой заголовок и передает свои дейтаграммы нижележащему протоколу межсетевого уровня – протоколу IP. Протокол IP вставляет в область своих данных UDP дейтограмму целиком, не изменяя, и добавляет свой IP заголовок, таким образом, получая целостный IP пакет. После чего, IP пакет передается протоколу нижележащего уровня сетевого интерфейса. В случае, использования на этом уровне протокола Ethernet, IP пакет вставляет в область данных Ethernet кадра, после чего протокол Ethernet вычисляет свой заголовок и окончание и дописывает их к области данных. В результате получается полный Ethernet кадр с вложенными IP пакетом и UDP дейтограммой, содержащий битовый поток от конкретного приложения. Процесс вложения называется инкапсуляцией пользовательских данных и показан на рис. 9.10.

Рис. 9.10 инкапсуляция UDP-дейтограмм

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

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]