我尝试构建一个只有三个端口的网络分路器:两个通信方和一个分路器端。我知道这会迫使通信双方最多使用 100mbps 的半双工,但检测不是问题(我正在利用我自己的硬件来更好地了解它是如何工作的)。我以前做过 4 端口抽头,但一次仍然只能抽头一侧,因为我的笔记本电脑只有一个网络端口,而且我没有 USB NIC。
问题是我在 3 端口分接头上的尝试不起作用。
我使用一根普通的 cat5e 电缆连接两个通信方和半根电缆(只有一个 RJ45 连接器)作为分接头。我将 TX+ 和 TX-(针脚 3 和 6)从主电缆连接到抽头电缆上的 RX+ 和 RX-(针脚 1 和 2),就像使用普通的 4 端口抽头一样。这奏效了。(除了我不知道我正在窃听哪一侧的流量,因为自动 MDIX 会自动选择哪一侧使用引脚 1 和 2 进行传输,哪一侧使用引脚 3 和 6(除非连接到交换机),但这是意料之中的。)
然后我将主电缆的针脚 1 和 2 也连接到分接头电缆上的针脚 1 和 2。这会导致引脚 1 & 3 和 2 & 6 突然处于同一冲突域中,因此当一方开始发送时,另一方将在接收和发送引脚上接收它,并且在那段时间内将无法发送(或如果不小心,CSMA/CD 就会启动)。
至少这是理论。自动协商应检测共享冲突域并将双方切换到 100mbps 半双工以太网。除非这从未奏效……双方只是变得无法传输任何数据。
为什么是这样?我构建像这样的网络分路器的逻辑可能在某处有问题,但我真的不知道为什么。如果这不起作用,为什么还存在“半双工以太网”一词?有半双工以太网连接时,您还能遇到什么其他情况?
或者,有什么方法可以告诉我的 NIC 它应该将引脚 1&2 和 3&6 都视为接收?我正在使用 Linux,但恐怕我必须超越工具并修改驱动程序,对吗?
如果我在构建中犯了一些愚蠢而明显的错误,我很抱歉,但我真的想不出一种方法来完成这项工作。我也看过一个类似的问题,关于为什么网络分接头有 4 个端口,但答案是分接头侧需要 200mbps 才能同时接收两端(这不是标准,因此需要 1gbps,因此需要两个以上的接收引脚)。但是在半双工的情况下,只有一侧可以同时发送,所以比特率仍然是 100mbps,速度不是问题。