首页 > 其他 > 详细

硬件校验和

时间:2015-10-09 22:37:12      阅读:287      评论:0      收藏:0      [点我收藏+]

有些硬件可以计算校验和,硬件计算校验和可以计算L4层的头和数据,常见的是TCP和UDP,为什么计算L4校验和不计算L3校验和呢?因为IP层只校验IP的头部,数据量最多只有四十个字节,不需要为这点工作量专门在硬件中做文章,L4就不一样了,L4中的数据量较大,用硬件计算校验和可以提高速度。

 

硬件计算校验和的时候在L2层,此时如果发现数据帧已经损坏,此时,设备驱动程序是可以直接丢弃该数据帧的,但是有些设备会把dev->ip_summed 设置成CHECKSUM_NONE(表示dev->csum 中的校验和无效),然后继续向上层传输,当上层接收到该数据包,经过计算校验和发现该包已经损坏,则丢弃数据包。为什么不直接在L2层就把数据包丢弃呢?其实这么做是可以的,只不过有些遇阻代庖的味道在里面,本来不是L2层能看的东西(L4层的数据),不仅看了,而且看了之后还要扔了,这就有些不太好了。所以有些实现就让L4层来丢弃这种损坏的数据包。

硬件校验和

原文:http://www.cnblogs.com/cdwodm/p/4865250.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!