由于节点对Tx和Rx使用不同的电路,因此以太网冲突在电缆中到底发生了什么?


13

我试图了解以太网中如何发生冲突,尤其是当存在双工不匹配或在旧式以太网中两个节点同时传输时。

每个人都在较高的层次上解释冲突(当发送一个帧而接收另一个帧时,两个帧发生冲突)。但是,下图显示Rx和Tx有不同的电路。由于存在用于发送和接收帧的专用电路,如何发生冲突?

传输和接收使用不同的电路

编辑:也许标签“ Hub MDI-X”引起了我的疑问。我不是在问集线器的功能如何引起碰撞。我的重点是使用MDI或MDI-X接口(集线器和交换机具有MDI-X接口)的两个节点之间的通信。在这两种情况中的任何一种情况下,当两个节点具有双工不匹配时,两个节点之间如何发生冲突,而在双工不匹配中,Rx和Tx仍然具有专用电路?


请注意,10Base2或10Base5共享相同的介质,例如相同的电缆。
Patrick Terlisten

如果我们有双工不匹配并且nodeA是半双工而nodeB是全双工,那么对于100base-tx,我仍然有相同的问题。假设节点A有一个MDI接口,节点B有一个MDI-X接口。NodeB从引脚3和4进行发送,而NodeB仅从引脚3和4进行接收。由于NodeA仅从这些引脚接收,因此如何在nodeA中发生冲突?
Christos Dalamagkas,

6
冲突发生在L1中,而不是L2中-碰撞的是位/载波。当两个发送者试图同时发送(靠近)时,它们会发生冲突。
Zac67

Answers:


11

要了解这一点,您需要了解历史背景。

最初,以太网使用共享同轴电缆。一次只有一个设备可以成功传输。如果两个设备同时发送,则视为冲突。

然后中继器出现,以延长距离并增加节点数。中继器将检测到哪个端口正在发送,然后将信号转发到其他端口。为了保持冲突检测,转发器必须具有某些功能,以确保所有节点都检测到冲突。第一个中继器只有两个端口,但是后来的中继器可以有多个端口,这些被称为集线器,特别是与双绞线一起使用时。中继器是相当愚蠢的设备,它们可以再生电信号,但仅此而已。

然后,您注意到了10BASE-T,它具有用于每个方向的专用数据通道。尽管如此,它仍然需要适合现有模型,因此默认情况下,它以“半双工”模式运行,在该模式下它模拟了同轴电缆。信号实际上并没有在电线上发生冲突,但收发器的行为与否相同,中继器将采取与以前相同的步骤以确保在网络上都能看到。

双绞线以太网也可以支持“全双工”模式。在这种模式下,所有与冲突相关的硬件都被禁用,并且两端都可以随时进行传输。然而,这种模式带来了两个主要缺点。

  • 它与转发器集线器不兼容。没有冲突检测机制,集线器将无法处理两个同时发送的设备。
  • 链路的两端都应设置为相同的双工模式,否则,将发生不良情况。

这些问题意味着实际上10BASE-T系统几乎总是以半双工模式运行。

对于100BASE-TX,情况大为改善。以太网交换机(技术上快速的多端口网桥)的价格下降到了可以消除哑中继器集线器的地步。自动协商允许网卡建立全双工连接,而无需进行容易出错的手动配置。如果您使用交叉电缆将两个100BASE-TX NIC连接在一起或将100BASE-TX NIC连接到交换机,并且不采取任何手动操作,则几乎可以肯定它们会协商全双工模式。

理论上,1000BASE-T具有半双工模式,某些NIC声称支持这种模式,并且有千兆位多端口转发器的规范,但我从未见过任何证据表明有人出售过这种产品。实际上,千兆链路几乎肯定会以全双工模式运行。

更快的速度完全放弃了半双工模式。


然后,无线以太网到来了,媒体冲突再次成为现实。
OrangeDog

@OrangeDog,如果您表示的是Wi-Fi(IEEE 802.11),则不是无线以太网(IEEE 802.3)。它是完全不同的协议,具有不同的帧,并使用CSMA / CA代替CSMA / CD。这两个协议有很大的不同,而它所支持的各种媒体上的以太网基本上都是相同的。
罗恩·莫平

14

集线器实际上只是一根电源电缆,它会将在一个接口上接收到的所有信号转发到所有其他接口。如果两个设备同时发送到集线器接口的接收,则集线器会同时重复两个信号以发送所有其他集线器接口,并且接收到的两个信号将在其他接口的发送时发生冲突,因此您会遇到一个冲突,其中所有其他接口都具有垃圾信号,因为它同时是两个信号。同时发送并听到另一信号的主机将意识到一次发送的主机超过一个,并且它们将确定存在冲突。

这样想,每个集线器接口的接收都连接到每个其他接口的发送。在集线器内部,发送和接收是连接的,即使它们在接口处是分开的。

与交换机相反,交换机的每个链路都在交换机接口处终止,而交换机没有将接口连接在一起。相反,交换机具有逻辑(通常嵌入在硬件中)来确定将其在一个接口上接收的帧发送到何处,并防止交换机内部发生冲突。

交换机是高密度桥。原始的网桥就像具有多个接口的PC。如果具有多个接口的PC在多个接口上同时接收到帧,则不会发生冲突。


编辑:

您的评论使我相信您仍然不理解我上面关于集线器的内容。

使用UTP和集线器时检测冲突的方式是通过发送设备在发送时听到另一个信号。如果将使用UTP的设备配置为半双工,则在发送过程中听到信号时,它将认为存在冲突。

当双工不匹配时,配置为全双工的设备将从配置为半双工的设备接收时很高兴发送。另一方面,配置为半双工的设备在发送时会认为存在冲突,并且从配置为全双工的设备听到该信号。这将引起所有类型的问题,因为配置为半双工的设备将停止发送帧(导致欠幅),并且将发送配置为全双工的设备不期望的干扰信号。配置为全双工的设备将停止发送其帧。


3
这是真正的答案。除了两个端点之间使用交叉电缆(或在现代环境下,任何电缆)之外,OP都忽略了所有情况。
R .. GitHub停止帮助ICE,

@R ..,问题中的图形显示了集线器,因此我回答了集线器连接问题。
罗恩·莫平

该答案说明了在拓扑中具有集线器时冲突是如何发生的。尽管当有两个节点(例如,一个交换机和一台PC)时可能会发生延迟冲突,但是一个节点是半双工的,另一个是全双工的。如我的问题图表所示,即使在Tx和Rx有单独的电路的情况下,为什么在这种情况下也会发生冲突?
Christos Dalamagkas,

关于我的问题,标签“ Hub MDI-X”似乎引起了一些混乱。我做了相应的编辑。
Christos Dalamagkas,

3
因为半双工的那个在发送时听到一些东西时声明冲突。请参阅上面的答案。如果配置为半双工的设备在发送时听到另一个信号,则必须假定存在冲突,因为它认为该设备是半双工并且一次只能发送一个设备。
罗恩·莫潘

8

好问题。

在全双工中,有一个专用的通道用于从“左到右”的流量和一个专用的通道,从“右到左”的流量:

专用频道

因此,在全双工中,冲突是不可能的 -即使两个NIC同时发送也是如此。

半双工,然而,在任一方向的流量是指只使用线,在一次一个的方向。因此,尽管物理上仍然存在专用通道,但从逻辑上讲,如果一个NIC在传输时收到了某些内容,则会将其记录为冲突。这些位/信号实际上并没有“碰撞”到线路上 -当NIC同时接收和发送时,冲突计数器只是简单地增加。


4
即使双绞线,信号也会在电线上发生碰撞。对于三个端节点,两个同时的信号将在第三个节点上发生冲突。
Zac67 '19

4
比特/信号实际上并没有“碰撞”到电线上 ”在集线器中,如问题图中所示,这些比特实际上确实在电线上碰撞并产生了垃圾信号。同时发送并听到另一个信号的主机将向集线器上的所有其他接口发送一个干扰信号。
罗恩·莫平

@RonMaupin当然,您是对的-我指的是当中继器无法检测到碰撞或对碰撞做出反应时会发生什么。
Zac67 '19

1
@ Zac67,我没有为您发表评论,您和我基本上在同一时间说了同样的话。
罗恩·莫平

@ Zac67 / RonMaupin OP编辑了一个问题,确认他们没有询问轮毂的情况。
艾迪(Eddie)

6

具有双绞线和中继器集线器,该集线器只不过是数字放大器。为此,它从一个端口上的输入信号中感测到载波,然后将所有其他端口切换到输出模式。在此输出模式下,任何其他传入载波都是冲突。这将触发阻塞信号以传播冲突并使发送方停止发送。

这种转发方法模仿了以前的共享媒体以太网变体(10BASE5&10BASE2)的行为,其中转发器仅用作物理网段接头或线路扩展器。当然,您是对的:双绞线是电线级别的全双工介质,其中冲突仅发生在上层物理层,而不发生在电线本身上。

中继器不能同时允许多个发件人。多个同时进行的传输会在输出端口上混合并产生难以理解的噪声。同样,任何处于半双工模式的节点都采用共享介质,无法进行全双工传输。传输时检测到的任何载波都是冲突,导致发送方退避。介质是否具有全双工功能(光纤,双绞线)与否(同轴电缆)无关紧要。

在双工不匹配的情况下,一个链路端处于半双工模式,而另一端处于全双工模式。现在,当半双工(HDX)端正在发送时,其接收器上的任何载波都会导致检测到冲突。但是,全双工(FDX)端在从HDX端接收时可能会愉快地发送出去,并且完全忽略了它在远端产生的冲突。HDX端需要中止传输并发送阻塞信号。由于FDX侧无法检测到所谓的碰撞,因此它会检测到部分损坏的框架。

低频小帧具有通过这种双工不匹配的合理机会,因此a ping实际上可以工作。但是,一旦尝试进行任何严重的传输,较高的帧频率和较大的大小将使传输非常可靠地失败。

使用非托管交换机,很难检测到双工不匹配,尤其是当主机NIC甚至无法正确报告其双工模式时。

对于管理型交换机,通常会具有端口错误计数器。一侧上越来越多的碰撞(HDX)以及另一侧上越来越多的矮度和FCS错误(FDX)是双工不匹配的强烈迹象。

基本上,依靠自动协商是避免双工不匹配的一种很好的做法。手动配置速度和双工模式通常容易造成不匹配,尤其是几年后更换设备时。幸运的是,整个半双工方案不再使用千兆以太网,而且速度更快。


3

假设机器A开始向机器B发送数据。当开始发送数据包时,机器C开始向机器B发送不同的数据。只有一条信号路径到达机器B,因此来自A和C的传输冲突,而B无法接收他们两个。

从机器B到机器A到机器C的传输使用不同的电路这一事实无济于事。发生的所有事情是,A和C试图同时传输到机器B,并且只有一条信号路径到达机器B。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.