为什么有不同 OSI 层的校验和?

网络工程 协议理论 层2 第3层 奥西 校验和
2021-07-16 20:44:11

任何人都可以澄清“为什么我们需要在 OSI 层的第 2 层和第 3 层中进行校验和”的问题,第 2 层会将 OSI 层的其余部分封装到一个单元中。

  • 如果第 2 层有校验和,这个验证还不够吗?
  • 为什么我们要在不同的 OSI 层进行校验和验证?
1个回答
  • 如果第 2 层有校验和,这个验证还不够吗?
  • 为什么我们在不同的 OSI 层中进行校验和验证?

简而言之,OSI 模型的不同层都有校验和,因此您可以适当地分配责任。

  • 假设某个系统上运行着一个网络服务器(假设 TCP 端口为 80,即 OSI 第 4 层)
  • 假设该网络服务器的操作系统中存在一个软件错误,该错误会破坏某些 IP 有效负载。(IPv4 OSI 第 3 层)

情况 1:仅使用以太网校验和

如果我们只依赖以太网(即 OSI 第 2 层)校验和,那么该错误将不会被注意到,直到出现崩溃或抛出错误,因为以太网 NIC 只会传输它从操作系统接收到的(已经损坏的)数据IP堆栈。为了论证起见,我们假设 TCP 有效载荷已损坏,但以太网校验和没问题。

当另一端的 IP 堆栈接收到以太网帧时,它会解压 IP 负载并将其传送到网络服务器。但是,此数据包中的 TCP 有效负载已损坏。当 Web 服务器因数据损坏而崩溃时,开发人员无法确定这是 IP 级故障还是 TCP 故障(或者可能是应用程序堆栈更远的其他故障)。

案例 2:分层校验和

但是,如果 TCP、IP 和以太网都有校验和,我们可以隔离发生错误的层,并将错误通知相应的操作系统或应用程序组件。