天津做网站哪家比较好,百度怎么推广自己的视频,企业营销网站开发建设专家,建设网站需要做哪些工作内容网络协议 UDP协议
在之前的文章中有对UDP协议套接字的使用进行讲解#xff0c;本文主要对UDP协议进行一些理论补充。 文章目录 网络协议 UDP协议1. 概念2. UDP协议格式2.1 数据报长度2.2 校验和/检验和2.2.1 CRC校验2.2.2 MD5算法 1. 概念 UDP#xff0c;即User Datagram P…网络协议 UDP协议
在之前的文章中有对UDP协议套接字的使用进行讲解本文主要对UDP协议进行一些理论补充。 文章目录 网络协议 UDP协议1. 概念2. UDP协议格式2.1 数据报长度2.2 校验和/检验和2.2.1 CRC校验2.2.2 MD5算法 1. 概念 UDP即User Datagram Protocol(用户数据报协议)为传输层协议 特点:
无连接知道对端的IP和端口号就直接进行传输不需要建立连接不可靠传输没有确认机制没有重传机制如果因为网络故障该段无法发送给对方UDP协议层也不会给应用层返回任何错误信息面向数据报不能够灵活的控制读写数据的次数和数量
2. UDP协议格式 对于UDP数据报来说遵循 UDP数据报 报头 载荷(应用层数据包) 2.1 数据报长度
由上述两图可以看出UDP报头中一共有4个字段每个字段2个字节(16个bit位)一共8个字节。
其中UDP协议首部中有一个16位的最大长度也就是说UDP数据报最大长度是64KB(包含UDP首部)
2.2 校验和/检验和 在网络传输的过程中数据可能会收到外界环境的干扰(如光信号/电信号)而出现问题常见的有比特翻转 网络中的校验和并非是简单的按照长度/数量作为校验的标准一定要让数据的内容能够参与进去对此在UDP中校验和一般是使用以下两种方式
2.2.1 CRC校验
循环冗余校验(Cyclic Redundancy Check, 简称CRC)。
它的操作概述如下 UDP数据报发送方在发送之前先计算一遍CRC把算好的CRC值放到UDP数据报中(设这个CRC值为value1)。接下来这个数据报通过网络传输到达接收端接收端收到这个数据之后也会按照同样的算法再算一遍CRC的值得到的结果是value2比较自己算的value2和收到的value1是否一致如果一致就说明数据是正确的如果不一致则传输过程中发生了比特翻转. 上述CRC算法中如果只有一个bit位发生翻转此时100%能够发现问题但如果有两个/多个bit位发送翻转有可能恰好校验和与之前一样这样的情况概率比较低可以忽略不计
2.2.2 MD5算法
MD5算法一般用于确保信息传输完整一致它有以下特点
定长任意长度的数据算出的MD5值长度都是固定的分散计算md5过程中原始数据只要变化一点点算出来的md5值就会有很大差异不可逆提供一个源字符串计算md5值过程非常简单但提供一个算好的md5值将它还原回原始的字符串理论上是无法完成的
在进行校验和的适合可以使用MD5算法这种高精度的校验和算法