目录
1. UDP的特点
UDP协议在 设计上追求 高效性,主要具备以下 特点:
(1)无连接性
UDP 在发送数据之前不需要优先 建立连接,因此省去了建立和断开连接的部分开销。
(2) 面向数据报
UDP 将应用程序 传给它的数据 视为一系列数据报,每个数据报都是进行独立处理的
(3)不可靠性
UDP 并不能保证 数据的可靠传输,它并没有设置 数据丢失后的补救措施,而是,数据发送出去之后,就与 UDP 不相干了。
(4)全双工
允许数据在两个方向上同时传输。
2. UDP 的报文格式
(上图取自 计算机网络的教材)
按照我们自己的理解如下图:
(1)源端口号: 发送方的端口号
(2)目的端口号: 接收方的端口号
(3)报文长度: UDP 载荷 数据报的长度
(4)校验和: 用于差错检测
(5)数据 : 应用程序传下来的数据
3 校验和(重点)
前提:在网络传输中,由于一些外部的干扰,可能就让我们的 光/电信号 出现传输出错的情况
因此,我们就需要有办法,识别出 出错的数据。
校验和:本质上也是一个字符串,体积比原始数据更小。
如何基于校验和来完成数据校验:
如何计算校验和:
(1)CRC 算法(循环冗余算法)
将当前要计算校验和的数据,每个字节进行累加,再将结果保存到这两个字节的变量中,累加过程中溢出也不要紧。
如果中间的某个数据出现传输错误,第二次计算的校验和就会和第一次不同。
CRC 这个算法不是特别靠谱,它有可能导致不同的数据,得到的 crc 校验码 相同
(2)md5 算法(介绍)
md5 算法特点:
1. 定长: 无论你的原始数据有多长,计算得到的 md5 ,都是一个固定的长度
2. 分散:当两个原始数据绝大部分都相同,只有一个字节不同,得到的 md5 都是差异特别大的。
3. 不可逆:一个原始数据计算出 md5 ,非常容易;但是,如果你想通过 md5 还原出原始数据,这是不太可行的,因为计算量过于庞大。
4. 基于 UDP 的应用层协议
(1)NFS:网络文件系统
(2)TFTP:简单文件传输协议
(3)DHCP:动态主机配置协议
(4)BOOTP:启动协议(用于无盘设备启动)
(5)DNS: 域名解析协议
5. UDP的使用场景
UDP适用于实时音视频通信、在线游戏、实时市场数据传输等场景。
UDP协议适用于对效率要求高,而对准确性要求相对较低的场景。这是因为UDP提供了快速的数据传输能力,但并不保证数据包的可靠到达。
(1)实时音视频通信
由于UDP具有低延迟的特性,它能够提供更快速的数据传输速度,这对于实时性要求高的音视频通信至关重要。
(2)在线游戏
在线游戏中玩家的操作和状态信息需要及时传输以维持游戏的流畅性,UDP能够满足这种实时性需求。
(3)实时市场数据传输
在金融行业中,实时市场数据的快速更新对于交易决策非常重要,因此UDP在这一领域也得到了应用。