UDP协议

一.UDP协议格式

1.如果所示:

二.分析数据格式

1.用2个字节表示端口号,那么当大小超出2个字节的端口时,就会在系统底层被截断。

2. UDP的报头是固定8个字节的长度,报头中的四个字段没有指定的分隔符,而是通过固定长度进行区分的。

3.UDP的报文长度:报头长度+载荷长度。报文长度的单位字节。  假设,报文的长度是1024,那么整个UDP数据报的长度就是1024,由于是使用2个字节表示该长度大小,那么最大值为65535,约等于64KB。(UDP是无法扩容的,因为这是协议规定好的,即使服务器扩容了,但是无法使客户端进行扩容,即使客户端都对这个服务器扩容了的,那么客户端使用其他的服务器就无法使用了,因为其他服务器都是未扩容的。)

3.网络传输中容易出现数据错误,是因为其中电信号/光信号/电磁波会受到外界环境的影响,导致信号发生改变,也就导致了比特翻转。所以会使用校验和/检验和。

校验和:能够发现或者纠正数据传输中出现的错误。这样的话就可以给传输的数据中,引入额外信息(checkSum),用来发现/纠正传输数据的错误。

4.校验和具体的工作:UDP中使用2个字节作为校验和,其中使用简单有效的方法是CRC校验和(循环冗余校验),其方法为把UDP数据报整个数据都进行遍历,分别取出每个字节,往一个两个字节的变量上进行叠加,整个数据可能比较多,会导致结果溢出,但也无关紧要,只需要关心校验和在传输过程中是否改变即可。

例如:当发送方传输一个UDP数据报给接收方时,整个UDP数据报基于这些数据,计算出一个校验和checkSum1,通过网络通信发送给接收方,接收方收到的数据中包括数据本身和checkSum1,接收方收到数据后,也会进行同样的方式进行数据的计算,算出校验和checkSum2。若网络通信没有发生任何改变,则两个校验和的值相等,如果发生问题,则不相等。(在计算不同数据的校验和的时候,有很小的概率会出现两个数据的校验和相等。)

检验和也有其他的算法来进行实现,例如MD5和SHA1。

5.MD5算法的特点:

(i)定长:无论输入的字符串的长度为多少,算出来的MD5值都是固定的。(适合校验和算法)

(ii)分散:输入的内容,哪怕只差了一点点,MD5值都会相差很大。(适合Hash算法)

(iii)不可逆:根据输入的内容,可以计算出MD5值,理论上是没办法通过MD5值还原出原来的内容的。(适合做加密算法)

(SHA1和MD5类似,也是以上三个特点。)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值