UDP仅仅为IP做了封装,也就是提供了多路复用与解复用的服务。
无连接传输层协议:UDP

  1. 多路复用解复用
  2. UDP报文格式
  3. 检错机制:校验和

UDP报文段的结构

image.png

check sum的计算—-溢出回滚

image.png

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 提供了简装房(即最基本的服务)。相比精装房,你可以实现更多的个性化(在应用层)。

image.png