我制作了一个被动网络分接头,使用 wireshark 捕获以太网数据包,并按照此说明进行操作文章
首先,这个被动网络分路器工作正常。这个分路器有四个端口,第一个端口连接到主机 A(称为主机A端口),第二个端口连接到HostB(称为HostB端口);另外两个端口(称为网卡端口A和NIC 端口B) 连接到我的有两个网卡的笔记本电脑,所有设备连接后,我可以捕获 HostA 和 HostB 之间的数据包,并且不会影响 HostA 和 HostB 之间的通信。
但有一种不正常的情况:
步骤1HostA 和 HostB 通过网络分接头连接,它们之间的以太网通信良好(继续 ping -t)
步骤2.1然后我将一根 50 厘米 RJ45 电缆插入网络分接头的 NIC 端口 A,只需一根电缆,另一根电缆头就拔掉了。奇怪的事情发生了,HostA与HostB之间通信失败(ping不通)。
步骤2.2然后我将这根 50 厘米 RJ45 电缆的另一端插入我的笔记本电脑,HostA 和 HostB 之间的通信恢复了,我可以捕获单向数据包
步骤2.2或者,我不使用这根 50 厘米 RJ45 电缆,而是将一根较短的 RJ45 电缆(例如 10 厘米)插入网络分接头的 NIC 端口 A(拔掉另一头),HostA 和 HostB 之间的通信就不会失败。
检查了 RJ45 电缆和网络分接头,没有问题。我不认为无线电波会导致这种情况,我认为这是一种阻抗匹配问题。那么为什么会发生这种情况?我应该考虑物理层的 NIC 通信吗?
我知道@David Schwartz 谈论的是传输线理论,当信号的波长接近或短于线路长度时,就会发生这种情况。确实,**“以开路或短路结尾的线路会将大部分信号反射回源”**,但现在的情况是“对于 HostB,末端是与 HostA 的 NIC 并联的开路(50 厘米 RJ45 电缆);反之亦然”。所以这不是理想情况,根据传输线理论,可以计算反射系数。但首先我应该知道双绞线的特性阻抗、信号频率以及 NIC 在此频率下的阻抗,但我不确定如何测量或估计这些参数。
答案1
这并不奇怪。
步骤1 HostA 和 HostB 通过网络分接头连接,它们之间的以太网通信良好(继续 ping -t)
这很有道理。当然,你有一些多余的短线,但它们没有任何显著的效果。
步骤2.1 然后我将一根50厘米的RJ45电缆插入网络分接头的NIC端口A,只有一根电缆,另一根电缆头被拔掉。奇怪的事情发生了,HostA和HostB之间的通信失败(ping失败)。
这并不奇怪。信号沿着长线传输,从末端反弹回来。当它们回来时,网络正试图发送下一个比特,并受到反射信号的干扰。
步骤2.2 然后我把这根50cm RJ45电缆的另一端插入我的笔记本电脑,HostA和HostB之间的通信恢复了,我可以捕获单向数据包
这并不奇怪。正确端接的电缆吸收了信号,而不是反射信号,因此不会产生干扰。
步骤2.2 或者,不使用这根 50 厘米 RJ45 电缆,我将一根较短的 RJ45 电缆(如 10 厘米)插入网络分接头的 NIC 端口 A(拔掉另一头),HostA 和 HostB 之间的通信就不会失败。
这也不足为奇。由于电缆较短,反射信号可以更快地被接收,同时仍发送相同的比特。因此不会对下一个比特造成干扰。
正确端接的高速通信线路会吸收传输信号的能量,以最大程度地减少可能造成干扰的反射。以开路或短路结尾的线路会将大部分信号反射回源头,由于信号传输的长度而造成延迟。
这正是我所期望的。
答案2
分路器的目的是能够将任意一台 PC 的传输物理连接到另一个 NIC,因此从物理上讲,您必须同时将该物理线路连接到两个 NIC。但是,您不想发送任何内容,因为这样不仅可能被检测到,而且如果从同一线路上的两个 NIC 返回流量,您可能会弄乱信号。(只有一个 NIC 发送而另一个 NIC 不会尝试通过同一对发送任何内容是有原因的。)
因此,您实际上是在读取单向流量并将每个流量发送到笔记本电脑中的不同 NIC,而不是将任何笔记本电脑发送线路连接到两个 NIC 之间的连接。
- 您将仅从 A 发送到 B 的电线连接到笔记本电脑中其中一个 NIC 上的读取线。
- 接下来,将从 B 到 A 的线路连接到笔记本电脑中其他 NIC 上的读取线。
我已经看到了几个可能导致问题的问题,其中一个您已经偶然看到了。当您拿起任何电线并将其连接到某个源而不是另一个源时,根据定义,您已经创建了一个天线。我不会深入讨论天线的所有科学知识,但它们确实很奇怪,很难预测它会对您连接的位置产生什么影响,因为涉及大量因素。当然,一个特点是它会收集任何和所有的射频并将其传送回您的两台电脑。因此,使用长线,您可能会收集更适合该长度电线的频率射频,并将其发送回 NIC,这会让线对上的听众感到困惑。
规则一:不要让电线连接到任何交流线路,并期望您不会收集杂散信号并将谁知道的东西引入电子设备。当然,您同样会将所有网络流量传输到空中,任何想要监听的人都可以捕获这些流量。
规则二——不要只将一根电线或一对电线连接到另一个未接地到同一位置的设备。我曾见过同一栋建筑的接地之间有多达 12 伏的电压差,这很难发现。那里有三根电线是有原因的。大电线应该与所有其他电线连接到同一个接地。三根电线中第二大的是“常规接地”,它应该与另一个接地相同,但由于各种原因可能并不相同。更糟糕的是,一旦它们离开进入您建筑物的箱子,第二层接地实际上是两个独立接地之一。也就是说,当您将电机连接到 220 的那一侧时,每个独立接地都不会完全接地。(仅使用 3 条 220v 进线中的 2 条即可获得 110v)。 结论: 当两个设备无法按预期工作时,尤其是当它们从两个不同的房间连接时,请找一个知道如何排除故障并寻找电力线差异的人。
规则三——除非你正在设计,否则你可能不必担心这些:
-- 通常,您必须“终止”任何通信电路中的线路。在 SCSI 世界中,我们在任何长线路(超过一英尺左右)上施加一个小电压和一个电阻。如果我们不这样做,那个“天线因素”就会发挥作用,并且发送的信号在到达线路的另一端时会收集垃圾。提到的方法在大多数情况下会抑制这种情况并使一切正常工作。
-- 如果可能的话,为了防止出现问题,请使用额外的接地线(如果有)。我最近没有看过有线以太网规格,但我很惊讶他们没有将接地线连接到每个笔记本电脑网卡。检查一下,如果可能的话,添加它。
-- 确保您连接的电路能够处理您拥有的两个以上的设备。您刚刚添加了第三个设备。想一想...如果您在耳机上安装一个分离器,收听一组,然后连接第二组,会发生什么?正确 - 音量会减小。连接一堆,您会短路,可能会损坏电路 - 但这样做时您肯定听不到任何声音。例如,如果您的分接头连接到 800 英尺外的 PC,而该电路仅设计为在没有其他放大器或中继器的情况下将信号传输 1,000 英尺,则可能会发生相同的问题。
请注意,您的分路器可能会给您的网络带来问题。如果没有隔离电路,它肯定是可以检测到的。为了防止出现问题,切勿在笔记本电脑之前将电线插入分路器。如您所见,您至少会断开它们的连接。由于我在这里可能犯了一些错误,因此对于你们这些 IEEE 人,请随时编辑并更正它。请给我添加一条评论,以便我可以从您的更改中学习。