一 UDP概述:
(一)UDP特点:
1*UDP是无连接的。减少了开销和发送数据的延迟。
2*UDP使用尽最大努力交付,即不保证可靠交付。
3*UDP没有拥塞控制:因此网络出现拥塞不会使源主机的发送速率降低。这对某些实时应用很重要。很多实时应用(如IP电话、实时视频会议等)要求源主机以恒定的速率发送数据,并且允许在网络阻塞的情况下丢失一些数据,但是不允许数据有太大的时延。UDP正好适合这种情况。
4*UDP支持一对一、一对对、多对一和多对多的交互通信。
5*UDP的首部开销小,只有8个字节,比TCP的固定20个字节要短。
6*UDP是面向报文的:
*发送方的UDP对应用程序交下来你的报文,在添加首部后就向下交付给IP层。UDP对应用层交下来的报文,既不合并也不拆分,而是保留这些报文的边界。
*接收方的UDP,对IP层交上来的UDP用户数据报,在去除首部后就原封不动的交付给上传的应用进程。
*即UDP一次交付一个完整的报文。因此,应用程序必须选择合适大小的报文。若报文太长,UDP把它交给IP层后,IP层在传送时可能要进行分片,这会降低IP层的效率;若报文太短,UDP把它交给IP层时,会使IP层的首部的相对长度太大,这也降低了IP层的效率。
如下图:
(二)UDP用户数据报格式:
用户数据报UDP有两个字段:数据字段和首部字段(8个字节)。
(1)首部格式:由四个字段组成,共8个字节,每个字段的长度都是两个字节。
各字段意义如下:
*源端口:源端口号。在需要对方回信时选用,不需要时可用全0。
*目的端口:目的端口号。这在终端交付数据报时必须使用到。
*长度:UDP用户数据报的长度,其最小值为8(仅有首部)。
*检验和:检测UDP用户数据报在传输中是否有错。有错就丢弃。UDP的检验和把首部和数据部分一起检验(TCP的检验和也一样)。IP数据报的检验和只检验IP数据报的首部。UDP计算校验和时,要在UDP用户数据报之前添加之前增加12字节的伪首部。伪首部既不向下传送也不向上递交,而仅仅是为了计算校验和。
如下图:
二