任何人都可以澄清“为什么我们需要在 OSI 层的第 2 层和第 3 层中进行校验和”的问题,第 2 层会将 OSI 层的其余部分封装到一个单元中。
- 如果第 2 层有校验和,这个验证还不够吗?
- 为什么我们要在不同的 OSI 层进行校验和验证?
任何人都可以澄清“为什么我们需要在 OSI 层的第 2 层和第 3 层中进行校验和”的问题,第 2 层会将 OSI 层的其余部分封装到一个单元中。
- 如果第 2 层有校验和,这个验证还不够吗?
- 为什么我们在不同的 OSI 层中进行校验和验证?
简而言之,OSI 模型的不同层都有校验和,因此您可以适当地分配责任。
如果我们只依赖以太网(即 OSI 第 2 层)校验和,那么该错误将不会被注意到,直到出现崩溃或抛出错误,因为以太网 NIC 只会传输它从操作系统接收到的(已经损坏的)数据IP堆栈。为了论证起见,我们假设 TCP 有效载荷已损坏,但以太网校验和没问题。
当另一端的 IP 堆栈接收到以太网帧时,它会解压 IP 负载并将其传送到网络服务器。但是,此数据包中的 TCP 有效负载已损坏。当 Web 服务器因数据损坏而崩溃时,开发人员无法确定这是 IP 级故障还是 TCP 故障(或者可能是应用程序堆栈更远的其他故障)。
但是,如果 TCP、IP 和以太网都有校验和,我们可以隔离发生错误的层,并将错误通知相应的操作系统或应用程序组件。