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协议只验证头部。求校验和时,他并不包括数据部分!
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值