UDP协议详解
目录
前言:
UDP功能
UDP的特点
UDP首部格式
计算检验和
计算检验和例子
共勉
前言:
本文详细的介绍了UDP的功能、特性和格式。希望能给你带来帮助(RFC 768)。
UDP功能
UDP协议是一个面向数据报的传输层协议,位于OSI七层模型的第四层、TCP/IP五层模型的第二层,为用户提供无连接、不可靠的数据传输服务。
UDP的特点
- 无连接:UDP是无连接的,即发送数据之前不需要建立连接(不需要建立连接,再发送数据结束时也不需要释放连接),因此可以减少资源消耗和时延。
- 不可靠:这里的不可靠不是贬义词,只是UDP的一种特性。UDP不保证数据报能够按顺序到达,也不保证数据报的完整性和准确性。在传输过程中,如果发生数据丢失、乱序或损坏,UDP不会进行重传或纠正,而是将这些错误留给应用层处理。这种特性使得UDP的传输效率较高,但可靠性较低。
- 支持 一对一 、一对多、 多对一、多对多的交互通信:UDP支持多种通信模式,包括单播(一对一)、广播(一对多)、多播(多对多)等。这使得UDP在需要向多个目标发送相同数据或需要接收来自多个源的数据时具有很高的灵活性。
- 面向报文:发送方的UDP对上层交下来的报文,在添加首部后就向下交付了。接收方的UDP,收到下层交上来的UDP报文,在去除首部后就原封不动的交付给上层。
- 拥塞控制:UDP没有拥塞控制,因此网络出现拥塞不会使源主机的发送速率降低。
- UDP首部开销小:只有8个字节。
UDP首部格式
2字节 | 2字节 | 2字节 | 2字节 |
源端口 | 目的端口 | 长度 | 检验和 |
- 源端口:在需要对方回信时可以填写指定端口,用于对方发送时的目的端口。不需要回信时,也可以填写为0。
- 目的端口:终点交付报文时使用的端口号。
- 长度:UDP用户数据报的长度,最小是8(仅首部),理论最长为2^16 - 1即65535字节,其中包含UDP报头(8字节)和UDP数据。
- 检验和:检测UDP用户数据报在传输中是否有错。有错直接丢弃。
计算检验和
1.伪首部准备:UDP的检验和计算不仅涉及UDP头部和数据部分,还需要加上一个伪头部。
UDP伪首部:这个伪头部不向下传送,也不向上提交,只是在计算检验和时使用。伪头部总共12字节伪首部格式↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
源IP(4字节) | |||
目的IP(4字节) | |||
全0(1字节) | 协议码17(1字节) | UDP报文长度(2字节) |
2.初始化检验和:在计算开始前将UDP首部中的检验和设置为0,以便在累加过程不包括该字段的初始值
3.累加求和:
从伪头部的第一个16进制数开始,与下一个16进制数相加,得到一个32位的数。
如果这个32位数的高16位不为0,则将高16位与低16位相加,再次得到一个32位的数。
4.取反得到校验和。
计算检验和例子
《计算机网络》第8版 P218
共勉
以上就是我对UDP协议的全部认识,如果有什么问题或者疑问欢迎您在评论区提出,或者私信我。欢迎点赞、评论、收藏。
感谢阅读