以太网驱动程序如何知道电缆是否已插入?

网络工程 以太网 linux 10gbase
2022-02-05 23:14:40

/sys/class/net/ethx/carrier 字段是如何设置的?

我试图理解这个字段,因为它确定是否插入了网络电缆,但我很好奇它是如何知道的。这特别针对 10Gbase-KR 和 1Gbase-KX。

我对 CMSA/CD 有一点了解,但这仅适用于半双工和 NPL - 脉冲用于自动协商。

当没有流量发送时,是否有东西通过介质?

我相信这可能与 IDLE 符号有关,但我并不完全理解它们。

3个回答

链路检测特定于物理层。

  • 最初的同轴电缆以太网并没有真正的链路状态检测(一些 PHY 具有在传输过程中检测终止的机制,但它仅在设备实际尝试传输某些内容时才起作用)
  • 10BASE-T 使用线路空闲时发送的“链路状态脉冲”来监控链路状态。
  • 双绞线自动协商使用“快速链路脉冲突发”来确定链路状态并交换自动协商信息。一旦协商了链接类型,就使用链接类型特定的机制来监视链接状态。
  • 更快的以太网标准通常连续传输空闲代码。

如果您想详细了解特定物理层发送的内容,最好查看实际的 802.3 标准。

基本上,自动协商告诉端口选择哪个 PHY。PHY 启动,然后其 PCS 将接收载波(或多通道的载波),具体取决于 PHY 类型。

可以通过 LEDS 信号灯来判断。如果笔记本电脑显示 UNPLUGGED,那么您没有连接,这也可以通过 RJ45 的小 LED 来验证。好吧,有些笔记本电脑可能没有 LED,但交换机端口的 RJ45 肯定有 LED?

当然,您可以尝试另一种设备。电视?带网络的 DVD 播放器?某物。RJ45 至 RJ45,LED 应亮起。

希望这会有所帮助!