IP协议头校验和

在IPv4协议中,首部检验和占16位。这个字段只检验数据报的首部,但不包括数据部分。这是因为数据报每经过一个路由器,路由器都要重新计算一下首部检验和(一些字段,如生存 时间、标志、片偏移等都可能发生变化)。不检验数据部分可减少计算的工作量。

IP首部的检验和采用下面的简单计算方法:在发送方,先把IP数据报首部划分为许多16位字的序列,并把检验和字段置 零。用反码算术运算把所有16位字相加后,将得到的和的反码写入检验和字段。接收方收到数据报后,将首部的所有16位字再使用反码算术运算相加一次。将得到的和取反码, 即得出接收方检验和的计算结果。若首部未发生任何变化,则此结果必为0,于是就保留这个数据报。否则即认为出差错,并将此数据报丢弃。具体计算步骤如下:

 

如下几个问题

1、校验和能够省略吗?
   事实上在网络传输的过程中,IP首部校验和是绝对不可省略的。而在驱动层、在应用层,是可以不用管,直接交给网卡去实现校验的。
2、校验和能保证首部不出问题吗?
 当然不能,只能保证绝大多数情况不出故障,毕竟这个校验方式是不严谨的。

 

引用文章

IP协议头详解