UDP
UDP (User Datagram Protocol) — весьма популярный интернет-протокол, входящий в состав TCP/IP.
Описание[править]
Это как бы такой ишак, который вроде и готовится переть, но вовсе ничего не гарантирует. И может по пути свалиться в пропасть и ты об этом ничего не узнаешь, даже о факте того, что ишак отправился в путь. UDP обеспечивает передачу данных без установления соединения, без гарантии доставки, без контроля порядка пакетов и без механизмов управления потоком. Он был разработан для приложений, где важнее скорость передачи, чем надёжность, и где потеря отдельных пакетов допустима или может быть компенсирована на более высоких уровнях.
Он появился как более простая альтернатива TCP, который разрабатывался параллельно и обеспечивал надёжную передачу с установлением соединения. Понятно, что на большинстве сайтов в итоге стали использовать только TCP, так как отправка информации без гарантии её получения даже выглядит смешно.
Как он работает? Так, нах: с помощью 16-битных номеров портов позволяет множеству приложений на одном хосте одновременно отправлять и получать данные. Некоторая проверка целостности возможна только через контрольную сумму, покрывающую заголовок UDP, псевдозаголовок IP и полезную нагрузку. Пакеты могут быть потеряны, дублированы, прийти в неправильном порядке или с ошибками.
UDP-датаграмма имеет простой заголовок длиной ровно 8 байт, за которым сразу следует полезная нагрузка.
Контрольная сумма UDP вычисляется с учётом псевдозаголовка, который включает поля из IP-заголовка, чтобы защитить от ошибок маршрутизации. Алгоритм чек-суммы стандартный, дополнение до единицы суммы 16-битных слов. Если контрольная сумма равна 0, это означает, что проверка целостности отключена, что допустимо, но не рекомендуется в IPv4, в то время как в IPv6 чек-сумма обязательна. В итоге жужжит протокол как этакая маленькая пчела — слышно не всегда.