路由器怎么做。交换机、网桥和集线器处理损坏的数据?

网络工程 转变 路由器 以太网
2022-02-16 05:05:46

数据损坏是指帧/数据包损坏,为了简单起见,我们可以坚持由于碰撞而导致的损坏。

我知道如果交换机没有设置为直通转发,它们可以检测到帧损坏。但他们总是这样做吗?交换机如何检测损坏?我假设它是通过检查 CRC 来完成的,但我们将不胜感激。

我读过类似的机制(直通存储转发)可以在路由器中找到。那么路由器是否以与交换机相同的方式检测数据包损坏?在第 3 层工作对这个过程有什么影响吗?

最后集线器。他们能否检测到任何数据损坏,或者他们是否总是在没有任何检查的情况下转发数据?

Wiki 说 [1]存储和转发方法通常用于网桥,并指出帧完整性已经过验证,因此我认为这是理所当然的。

[1] https://en.wikipedia.org/wiki/Bridging_%28networking%29#Simple_bridging

2个回答

主机、交换机、路由器等上的以太网接口将检测到损坏的帧并丢弃它们。

路由器还将查看 IPv4 标头校验和(IPv6 没有此)以查看数据包标头是否损坏,如果是,则丢弃该数据包。

主机将查看传输协议以查看那些具有校验和的传输协议是否已损坏,并且它们将丢弃那些损坏的数据报。

另一方面,集线器只是将任何接收到的信号重复到其他接口,因此不会检测到损坏。将集线器视为供电电缆。

路由器怎么做。交换机、网桥和集线器处理损坏的数据?

未通过完整性测试(通过 FCS 或标头校验和)的帧和数据包将被丢弃。

数据损坏是指帧/数据包损坏,为了简单起见,我们可以坚持由于碰撞而导致的损坏。

碰撞片段不被认为是损坏的帧,它总是被丢弃。由于 FCS 位于帧的末尾,因此尚未在冲突帧上传输它。(假设网络正常工作且没有后期冲突。)

在物理层检测到冲突并立即安排重传。一个帧只有在整个传输完毕后才会从发送方的缓冲区中删除。

当然,中继器、半双工传输和 CSMA/CD 在今天都已过时。

我知道如果交换机没有设置为直通转发,它们可以检测到帧损坏。

直通交换机也会检测到 FCS 故障,但在检测到 FCS 故障时已经完成转发。大多数情况下,高于某个级别的 FCS 故障率会将转发切换为存储转发,以避免转发损坏的帧。

但他们总是这样做吗?交换机如何检测损坏?

他们总是通过重新计算 FCS 并将其与框架的比较来做到这一点。

我读过类似的机制(直通和存储转发)可以在路由器中找到。

大多数路由器使用存储转发,但这并不重要。

那么路由器是否以与交换机相同的方式检测数据包损坏?

对于 IPv4,路由器检查标头校验和(并在转发时重新计算)。IPv6 标头不携带校验和,因此无法检查 v6 数据包。两者都不检查用户数据的完整性 (L4+)。

当然,路由器也会检查 FCS 是否接收到帧或任何其他由正在使用的链路层提供的校验和 - 确实存在以太网以外的其他协议。

最后集线器。他们能否检测到任何数据损坏,或者他们是否总是在没有任何检查的情况下转发数据?

集线器除了通道位或符号之外没有任何概念。他们无法检查腐败,也不需要检查。由于转发是立即逐位完成的,因此接收节点将检查帧的完整性。