Здавалка
Главная | Обратная связь

Протокол UDP и UDP дейтаграммы



При работе на хосте отправителя данные от приложения поступают к протоколу UDP через порт в виде сообщений, протокол UDP добавляет к каждому отдельному сообщению свой 8-и байтный заголовок, формируя из этих сообщений собственные протокольные единицы, называемые UDP дейтаграммами, и передаёт их нижележащему протоколу IP. В этом и заключаются его функции по мультиплексированию данных. Каждая дейтаграмма переносит отдельное пользовательское сообщение, сообщения могут иметь различную длину (не превышающую длину данных поля протокола IP, которое в свою очередь ограничено размером кадра технологии нижнего уровня, поэтому, если буфер уровня UDP переполняется, то сообщение приложения отбрасывается).

Заголовок UDP состоит из 4-х 2-х байтных полей:

1) номер UDP порта отправителя

2) номер UDP порта получателя

3) контрольная сумма

4) длина дейтаграммы

Функции протокола UDP сводятся к простой передаче данных между прикладным и сетевым уровнями, а также к контролю искажений в передаваемых данных.

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

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

Протокол UDP освобождает дейтаграммы от UDP заголовка, и полученное в результате сообщение передаётся приложением на соответствующий UDP сокет. Таким образом протокол UDP выполняет демультиплексирование на основе сокетов.

TCP и TCP сегменты

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

В отличие от протокола UDP, который создаёт свои дейтаграммы на основе логически обособленных единиц данных (сообщений, генерируемых приложениями), протокол TCP делит поток данных на сегменты без учёта их смысла или внутренней структуры.

Заголовок TCP сегмента содержит больше полей чем заголовок UDP, что отражает более развитые возможности.

Рис. Формат заголовка ТСР-сегмента

Поля TCP:

1) Порт источника

2) Порт приёмника

3) Последовательный номер

4) Подтверждённый номер

5) Длина заголовка

6) Резерв

7) Окно (количество байтов данных, ожидаемых отправителем данного сегмента начиная с байта, номер которого указан в поле подтверждённого номера)

8) Контрольная сумма

9) Указатель срочности (указывает на конец данных, которые необходимо срочно принять, не смотря на переполнение буфера)

10) Параметры

11) Заполнитель (используется для доведения размера заголовков до целого числа 32-х битовых слов).

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

Какие это биты:

1) URG (срочное сообщение)

2) ACK (квитанция на принятый сегмент)

3) PSH (запрос на отправку сообщений без ожидания заполнения буфера)

4) RST (запрос на восстановление соединения)

5) SYN (синхронизация счётчиков переданных данных при установлении соединения)

6) FIN (признак достижения передающей стороной последнего байта в потоке передаваемых данных).







©2015 arhivinfo.ru Все права принадлежат авторам размещенных материалов.