Транспортный протокол UDP

Протокол UDP является одним из важнейших протоколов связи в компьютерных сетях. В этой статье познакомимся с ним поближе.















Что такое транспортные протоколы




Транспортные протоколы (TCP и UDP) используются для передачи информации. Информация передаётся маленькими частями — сетевыми пакетами. То есть поток информации разбивается на много маленьких пакетов.




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




Особенности UDP




Протокол UDP находится на 4 уровне модели OSI. В отличии от TCP этот протокол не обнаруживает ошибки передачи пакетов, что уменьшает служебную информацию и облегчает передачу данных.




Также в этом протоколе не устанавливается сеанс связи и нет трёхкратного рукопожатия для создании сеанса и четырёхкратного для его завершения.




Эти две особенности делают этот протокол очень быстрым и лёгким. Что позволяет его использовать, когда скорость важнее качества. Например dns сервер обрабатывает много запросов и не должен на каждый запрос создавать сеанс связи. Ещё один пример это sip, при передачи голоса по сети важно его быстро передавать и не нагружать сеть служебной информацией. А если потеряются несколько пакетов, звук немного исказится, но это не критично.




Поверх протокола UDP работают:




  • сервер доменных имен (dns);



  • потоковое мультимедиа и телефония (iptv, voip);



  • vpn туннели (l2tp, openvpn).




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




Для передачи запроса и получения ответа по сети хватит всего двух пакетов, один для запроса, второй для ответа.




Обмен данными UDP




Ещё одной особенностью является поддержка Broadcasts и Multicast. Это возможно, так как udp не нужен сеанс связи и пакеты могут быть отправлены сразу на несколько хостов.




Multicast UDP




 Заголовок UDP пакета




Заголовок UDP пакета очень мал и состоит из следующих полей:







  • Порт отправителя.



  • Порт получателя.



  • Длина. Суммарная длина пакета в байтах. Минимальная длина равна длине заголовка — 8 байт. Теоретически максимальная длина — 65535 байт. Фактический предел при использовании IPv4 — 65515 байт (20 ушло на заголовок IP).



  • Контрольная сумма. Используется для проверки заголовка и данных на ошибки. Поле не является обязательным для IPv4.









Итог




Вот мы и познакомились с протоколом UDP. У него облегчённый заголовок, нет флагов, нет сеансов. Зато он очень быстрый!



2021-03-10T09:50:02
Теория