1.UDP概述
- UDP是一种无连接的, 即发送数据前不需要建立连接,因此减小的开销和发送数据的延迟。
- UDP使用尽最大努力交付,即不保证可靠交付,因此主机不需要维持复杂的连接状态表。
- UDP是面向报文的,
- UDP没有拥塞控制,因此网络出现的拥塞不会使主机的发送率降低。
- UDP支持一对一,一对多,多对一和多对多的交互通信。
- UDP首部开销小,只有8字节,比TCP的20个字节的首部要短。
- UDP的封装如下所示:
2.UDP的首部格式
- 源端口号:该项是任选项,默认值是0,可以被指定。
- 目的端口号:该项必须指定,因为这个作为接收主机内特定应用进程相关联的地址。
- UDP长度:该字段表示数据报文的长度(包含首部和数据部分),最小8个字节。
- 检验和:该字段用于防止UDP用户数据报在传输中出错。当进行检验和计算时,要在UDP数据报之前增加临时的12个字节伪首部。如上图所示。
物理网络层一般要限制每次发送的数据帧的最大长度。所以,IP层接收到一份要发送的IP数据报时,它要判断向本地哪个接口发送数据(选路),并查询该接口在原始发送端主机上,也可以发送在中间路由器上。
对于每一份IP数据报来说,其标识字段都包含一个唯一值。该值在数据报分片时候被复制到每个片中。当数据报分片之后,每个片的总长度要改为该片的长度。(任何运输层首部只出现在第一片数据报中)
4.ICMP不可达差错(需要分片)
当路由器收到一份需要分片的数据报,而在IP首部又设置了不分片(DF)的标志比特。,就会长生ICMP不可达差错报文,如图所示。
5.ICMP源站抑制差错
当一个系统(路由器或者主机)接收数据报的速度比其处理速度快时,可能产生这个差错。报文格式如下: