UDP协议
UDP概述
UDP仅在IP的数据报服务之上增加了两个最基本的服务:复用分用以及差错检测
UDP协议的特点
- 无连接:发送方和接收方之间无“握手过程”。减少开销和发送数据之前的时延
- 不保证可靠交付(若网络层和传输层都不保证可靠交付,则由应用层来保证)
① 不对发送方数据帧编号
②接收方不向发送方进行确认
③差错帧直接丢弃,差错纠正由高层负责 - 面向报文:保证应用层传递下来的报文的完整性,不修改这部分报文,报文是UDP数据报处理的最小单位。若报文太长,UDP把它交给IP层之后,可能会导致分片;若报文太短,交给IP后会使IP数据报的首部的相对长度太大,两者都会降低IP层的效率。适合一次性传输少量数据的应用
- 无拥塞控制:适合很多实时应用。网络中的拥塞不会影响主机的发送效率。某些实时应用要求以稳定的速度发送,能容忍一些数据的丢失,但不允许有较大的时延。
- 首部开销小:TCP有20B的首部开销,而UDP仅有8B的开销
UDP的首部格式
UDP首部有8B,由4个字段组成,每个字段的长度都是2B。
-
源端口:可有可无,在需要对方回信时选用。不需要时可用全0。
-
目的端口:必须使用到。
-
长度:UDP数据报的长度(包括首部和数据),其最小值为8(仅有首部)。
-
校验和:可有可无,检测UDP数据报在传输中是否有错。***有错就丢弃。***当源主机不想计算校验和时可全0。
UDP校验
在计算校验和时,要在UDP数据报之前增加12B的伪首部,伪首部并不是UDP的真正首部。只是在计算校验和时,临时添加在UDP数据报的前面。校验和就是按照这个临时的UDP数据报来计算的。
伪首部既不向下传送也不向上递交,而只是为了计算校验和。