关于校验和(UDP,TCP,IP)

关于校验,感觉大家和我一样一直对这个概念很模糊,对一些细节还不是很了解!所以就写了一篇博客,总结一下校验和的知识,也加深一下印象!

首先TCP,UDP,IP三个协议中校验和都占16位,也就是两个字节。

UDP的校验和结算相对简单。首先UDP报文长度不是确定的,所以计算校验和前要先将报文的末尾用‘0’补齐。使报文为偶数个字节。

发送端计算校验和:

计算UDP的校验和方法是计算16位的二进制和包括UDP首部数据,将校验和字段(16位)置0,将每个16位的按位相加,第17、18位出现进位的话,将结果值重新与结果的第1,2位相加,再将所得的结果取反码,最后得到的结果即为UDP校验和,存在校验和字段中。

PS:求校验和的方法写的有点笼统,详细算法自行google二进制反码求和!

接收端验证校验和:

若传输中没有任何差错,包含之前的校验和对报文进行二进制反码求和,接收端计算的结果为全1,即报文正确,否则有错。

在这额外多说一句,一旦验证UDP报文出错时,报文在分组转发时,正常发送转发,不会被丢弃。他被丢弃的地方发生在应用层向上转发的时候。一般路由器等三层设备,不会验证其校验和!但是UDP的校验是可选的!也就是可以选择接收端是否对其进行校验!

TCP的校验和算法和UDP的基本相同!不够偶数个字节同样需要‘0’填充。求法也是将每个16位进行二进制反码求和。但是不同的地方,TCP必须进行校验,而且他有自己的一些重传机制,来确保可靠传输。

最后再说IP的校验和,检验和的算法几个协议都是相同的。唯一不同就是IP协议只验证头部。求校验和时,他并不包括数据部分!


IPTCPUDP校验和计算工具是计算机网络中用于检测数据传输错误的工具。 IP校验和是在IP协议中使用的一种检验机制,用于检测IP数据报在传输过程中是否发生错误。计算IP校验和的方法是将IP数据报中的每个16位字(包括头部和数据部分)相加,然后将结果取反。接收端在接收到IP数据报后也会计算校验和,若计算结果不一致,则说明数据传输中发生了错误。 TCP校验和是在TCP协议中使用的一种检验机制,用于检测TCP报文在传输过程中是否发生错误。计算TCP校验和的方法是将TCP报文中的每个16位字(包括头部和数据部分)相加,然后将结果取反。接收端在接收到TCP报文后也会计算校验和,若计算结果不一致,则说明数据传输中发生了错误。 UDP校验和是在UDP协议中使用的一种检验机制,用于检测UDP数据包在传输过程中是否发生错误。计算UDP校验和的方法是将UDP数据包中的每个16位字(包括头部和数据部分)相加,然后将结果取反。接收端在接收到UDP数据包后也会计算校验和,若计算结果不一致,则说明数据传输中发生了错误。 这些校验和计算工具的作用是保障数据在传输过程中的完整性,一旦检测到错误,就可以及时发现并进行错误处理,提高数据传输的可靠性和正确性。这在计算机网络中非常重要,尤其在数据的传输过程中经常存在着可能导致数据错误的噪声和干扰。通过使用IPTCPUDP校验和计算工具,可以有效降低数据传输错误带来的影响,保障数据的安全和可靠性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值