一、UDP协议格式
二、UDP特点
1.无连接 知道对端的IP和端口号就开始传输,不需要建立链接 2.不可靠 没有任何安全机制。发送端发送数据报之后,如果因为网络故障该段无法发送过去,UDP协议层也不会给应用层任何反馈信息。 3.面向数据报 应用层给UDP多长的报文,UDP原样发送,既不会拆分,也不会合并 4.缓冲区 UDP只有接受缓冲区没有发送缓冲区 UDP没有真正意义上的发送缓冲区,发送的数据直接交给内核,由内核将数据传给网络层协议 UDP具有接收缓冲区,但是这个接收缓冲区不能保证收到的UDP报的顺序和发送UDP报的顺序一致,如果缓冲区满了后面的数据会被抛弃。 5.大小有限 UDP协议首部定义了他的大小最大是16位,也就是64k
三、UDP校验和
为什么要校验和? 网络上的数据本质都是一些0,1的比特流,这些比特流是由光电信号来表示的,如果在传输过程中出现地球磁场或者太阳风暴等干扰,可能会出现 “比特翻转” 现象,所以我们就要进行校验和来验证数据是否收到干扰。
1.crc循环冗余校验
以字节为单位,取出数据进行累加,如果结果溢出则后面的就不要了,传输数据的时候把crc也一起传过去。 接收方也同样拥有这样的算法,接收到数据之后再次进行计算crc和传过来的crc做对比。 注意: 两次的crc一样并不能保证两次的数据相同,但是两次的crc不一样数据一定不同
2.MD5校验
本质上是针对数据进行一系列的数学变化它是一种非对称加密 特点
- 定长:无论输入的字符串多长,得到的结果都是一个固定长度
- 分散:输入的字符串哪怕差一点点,他的结果会差的特别多(作为哈希算法的核心)
- 不可逆:根据目前计算机的算力MD5是不可逆的,等到量子计算机出来就不一定了。
|