在ip层中只对数据报头而不对数据计算校验和的好处是什么?缺点是什么?

因为网络层是“尽最大努力完整的传输数据包”,差错检测已由数据链路层实现,IP层没必要再进行一次校验。

优点就是:因为不负责差错检测和纠错,所以可获得较高的传输性能。

缺点就是:因为IP层不负责差错检测,那么错误检测只能在传输层或应用层被发现,使纠正错误的时间增加了。

试想一下,如果两台PC跨INTERNET通信,之间隔了很多台路由器,PC1给PC2发了个数据包,到达第一台路由器后,因为原来二层协议为ETHERNET帧,广域网要使用HDLC或者PPP协议,如果在这转发的过程中,数据包发生了错误:

1-因为IP层不做差错校验,所以第2台路由器通过广域网协议(HDLC、PPP等)收到数据后,只要数据链路层正常,它就无法得知收到的IP包是否正确,错误就会这么一直传递下去,至到PC2才被发现,然后再重传。
这过程浪费了网络带宽和中间若干路由器的资源。

2-如果IP可以实现差错校验的功能,那么到了第2台路由器时,路由器2就不会再继续发错误包了,错误就会终止。

不过现在网络传输的误码率都极低,所以IP层没必要再做一次校验!

你可能感兴趣的:(在ip层中只对数据报头而不对数据计算校验和的好处是什么?缺点是什么?)