路由器怎么做。交换机、网桥和集线器处理损坏的数据?
未通过完整性测试(通过 FCS 或标头校验和)的帧和数据包将被丢弃。
数据损坏是指帧/数据包损坏,为了简单起见,我们可以坚持由于碰撞而导致的损坏。
碰撞片段不被认为是损坏的帧,它总是被丢弃。由于 FCS 位于帧的末尾,因此尚未在冲突帧上传输它。(假设网络正常工作且没有后期冲突。)
在物理层检测到冲突并立即安排重传。一个帧只有在整个传输完毕后才会从发送方的缓冲区中删除。
当然,中继器、半双工传输和 CSMA/CD 在今天都已过时。
我知道如果交换机没有设置为直通转发,它们可以检测到帧损坏。
直通交换机也会检测到 FCS 故障,但在检测到 FCS 故障时已经完成转发。大多数情况下,高于某个级别的 FCS 故障率会将转发切换为存储转发,以避免转发损坏的帧。
但他们总是这样做吗?交换机如何检测损坏?
他们总是通过重新计算 FCS 并将其与框架的比较来做到这一点。
我读过类似的机制(直通和存储转发)可以在路由器中找到。
大多数路由器使用存储转发,但这并不重要。
那么路由器是否以与交换机相同的方式检测数据包损坏?
对于 IPv4,路由器检查标头校验和(并在转发时重新计算)。IPv6 标头不携带校验和,因此无法检查 v6 数据包。两者都不检查用户数据的完整性 (L4+)。
当然,路由器也会检查 FCS 是否接收到帧或任何其他由正在使用的链路层提供的校验和 - 确实存在以太网以外的其他协议。
最后集线器。他们能否检测到任何数据损坏,或者他们是否总是在没有任何检查的情况下转发数据?
集线器除了通道位或符号之外没有任何概念。他们无法检查腐败,也不需要检查。由于转发是立即逐位完成的,因此接收节点将检查帧的完整性。