---
description: User Datagram Protocol
---

# UDP

除了多路复用和轻型的差错检测，几乎没有对IP层增加别的东西。UDP 从应用得到数据，附加上多路复用和多路分解所需的源端口号和目标端口号（以及其他小字段），直接发送给网络层。收到报文段后，UDP 通过目的端口号将报文段数据交付给应用程序。

使用UDP时，双方没有握手过程，不用维护连接状态，因此UDP被称为无连接的。

## 为什么选择UDP？

* 应用层能更好地控制要发送的数据和发送时间：TCP 为了保证数据不丢失，在网络链路变得拥塞时，会减慢发送速度或者重试直到接收方确认，这会拖慢传输速度。而一些实时的应用要求最快的发送速率，且能容忍数据丢失。
* 无需连接建立，也就没有连接建立时延
* 无需维护连接状态
* 分组首部开销小

流式媒体可以运行在UDP和TCP上。

运行在UDP上可能面临 UDP 流量被阻止、链路中分组过多导致拥堵丢包率高甚至拖垮TCP会话。

可以在应用层实现可靠传输（使用TCP机制）&#x20;

## UDP 报文段结构
