2011-01-29 43 views

回答

0

可能是因为它们覆盖了不同的数据,不是吗?

15

需要所有这三个层,出于多种原因:

  • IP并不总是运行在以太网上(想象IP通过RS-232串口,这是每一个思科和Unix机器可以做)

  • IP不校验数据

  • TCP数据包可以从错误的IP数据包和片段各有重新组合完美校验

  • 即使正确地重新装配,软件或其他错误,可以在IP和TCP之间的层引入

  • 即使所有软件功能正常,和TCP/IP是在以太网上,校验的有限尺寸可以是意外地纠正(并且在某些点,给予足够的数据包)面对持久性错误,所以有多个校验和是有帮助的。

  • 每次引入新的头文件时,都会有更多的校验和,而新层无法看到下面图层的头文件位。

+0

感谢您的意见。 – sasian

+3

RFC表示,TCP校验和覆盖整个网段,而IP校验和仅覆盖来自错误的IP头。 – sasian

+0

+1非常丰富,我认为最后的原因是最有说服力的。 –

6

以太网校验和是跳跃校验和 - 意味着每当以太网报头字段更改时重新计算。 TCP/UDP校验和是端到端的校验和,意味着它由发送方计算并由接收方验证。 TCP/UDP校验和覆盖整个网段。 IP校验和只包含头文件。以太网CRC覆盖整个框架。

0

IPv6的设计者决定在所有这些层中都不需要它,并将其移除以支持其他层(例如您提到的那些层)的校验和。