UDP仅仅为IP做了封装,也就是提供了多路复用与解复用的服务。
无连接传输层协议:UDP
- 多路复用解复用
- UDP报文格式
- 检错机制:校验和
UDP报文段的结构
check sum的计算—-溢出回滚
Q&A
适合使用UDP的服务?
- 采用UDP时,只要应用进程将数据传递给UDP,UDP就会将此数据打包进UDP报文段并立即将其传递给网络层。同时,TCP的实际发送速率是
min{流量控制,拥塞控制}
,我们发送的数据无法保证实时性。如果对发送的实时性有要求,且可以容忍一定程度的数据丢失,则可以采用UDP。 无须连接建立。TCP在开始数据传输之前要经过三次握手。UDP却不需要任何准备即可进行数据传输。因此UDP不会引入建立连接的时延。
这可能是DNS运行在UDP之上而不是运行在TCP之上的主要原因(如果运行在TCP上,则DNS会慢得多)。
无连接状态。TCP需要在端系统中维护连接状态。此连接状态包括接收和发送缓存、拥塞控制参数以及序号与确认号的参数。另一方面,UDP不维护连接状态,也不跟踪这些参数,运行在UDP之上而不是运行在TCP上时,一般都能支持更多的活跃客户。
- 分组首部开销小。每个TCP报文段都有20字节的首部开销,而UDP仅有8字节的开销。
为什么要保留UDP?
UDP 提供了简装房(即最基本的服务)。相比精装房,你可以实现更多的个性化(在应用层)。