Протокол UDP является одним из важнейших протоколов связи в компьютерных сетях. В этой статье познакомимся с ним поближе.
Что такое транспортные протоколы
Транспортные протоколы (TCP и UDP) используются для передачи информации. Информация передаётся маленькими частями — сетевыми пакетами. То есть поток информации разбивается на много маленьких пакетов.
Каждый пакет состоит из заголовка и самих данных. Заголовок содержит служебную информацию, например порт источника и назначения.
Особенности UDP
Протокол UDP находится на 4 уровне модели OSI. В отличии от TCP этот протокол не обнаруживает ошибки передачи пакетов, что уменьшает служебную информацию и облегчает передачу данных.
Также в этом протоколе не устанавливается сеанс связи и нет трёхкратного рукопожатия для создании сеанса и четырёхкратного для его завершения.
Эти две особенности делают этот протокол очень быстрым и лёгким. Что позволяет его использовать, когда скорость важнее качества. Например dns сервер обрабатывает много запросов и не должен на каждый запрос создавать сеанс связи. Ещё один пример это sip, при передачи голоса по сети важно его быстро передавать и не нагружать сеть служебной информацией. А если потеряются несколько пакетов, звук немного исказится, но это не критично.
Поверх протокола UDP работают:
- сервер доменных имен (dns);
- потоковое мультимедиа и телефония (iptv, voip);
- vpn туннели (l2tp, openvpn).
Так же как и в tcp, здесь для подключения нужен открытый сокет прослушивающий какой-либо порт, к которому будет выполняться подключение.
Для передачи запроса и получения ответа по сети хватит всего двух пакетов, один для запроса, второй для ответа.
Ещё одной особенностью является поддержка Broadcasts и Multicast. Это возможно, так как udp не нужен сеанс связи и пакеты могут быть отправлены сразу на несколько хостов.
Заголовок UDP пакета
Заголовок UDP пакета очень мал и состоит из следующих полей:
- Порт отправителя.
- Порт получателя.
- Длина. Суммарная длина пакета в байтах. Минимальная длина равна длине заголовка — 8 байт. Теоретически максимальная длина — 65535 байт. Фактический предел при использовании IPv4 — 65515 байт (20 ушло на заголовок IP).
- Контрольная сумма. Используется для проверки заголовка и данных на ошибки. Поле не является обязательным для IPv4.
Итог
Вот мы и познакомились с протоколом UDP. У него облегчённый заголовок, нет флагов, нет сеансов. Зато он очень быстрый!