如果交换机上没有 CSMA/CD,他们使用的是什么

网络工程 转变 以太网 半双工 全双工
2021-07-21 22:35:48

据我了解,CSMA/CD 是一种在计算机网络的电线上放置以太网帧的访问方法。

我到处都读到交换机没有使用这种访​​问方法,因为它们是全双工的(但如果设备是半双工的,它们可以使用 CSMA/CD)。我明白这一点,碰撞是不可能的,所以不需要 CD,也不需要进行载波检测,因为只有一个设备在同一条线上发送,......

但是,如果以太网交换机在全双工段上不使用 CSMA/CD,那么访问方法是什么?他们只是把框架放在电缆上?

是否有任何 RFC 描述了这一点?

谢谢你的帮助。

3个回答

据我了解,CSMA/CD 是一种在计算机网络的电线上放置以太网帧的访问方法。

不完全的。CSMA/CD 是一种用于在多路访问环境中访问媒体的方法(算法)最初的以太网是半双工的,这意味着所有站点都使用相同的通道(电路)进行发送和接收。CSMA/CD 用于防止两个站点在一个公共信道上同时发送(冲突)。

对于全双工交换,一个网段上实际上只有两个站——主机和交换机——并且每个站都有一个单独的发送和接收通道,因此不会发生冲突。

但是,如果以太网交换机在全双工段上不使用 CSMA/CD,那么访问方法是什么?他们只是把框架放在电缆上?

是的,不需要检测载波,因为电路上只有一个发送器

是否有任何 RFC 描述了这一点?

以太网在 IEEE 标准 802.3 中定义

您似乎对 CSMA/CD 相当了解——但在描述切换环境​​中的工作原理之前,我想为其他可能不知道的读者分解一下。

CSMA/CD 代表

  1. 载波侦听
  2. 多路访问
  3. 带碰撞检测

当多台设备共用一根网线时,通常一次只能传输一台。这曾经在以太网网络中非常普遍,其中网络电缆沿着建筑物的每一侧运行,许多工作站接入它。这是该术语的“多路访问”部分。

想想一群人参加会议,或一群朋友参加聚会。一次一个人说话,而其他人都在听。我们(作为人)如何做到这一点?你听一听,以确保没有其他人在说话。如果房间很安静,你就开始说话。听别人说话是“载波感应”

有时,其他人(也确认房间很安静)与您同时开始说话。这就是“碰撞”。因为您在说话时仍在聆听,所以您意识到正在发生的事情(您检测到碰撞)。有时,一旦一个人先于另一个人意识到,他们就会停止说话,而另一个人继续。有时两个人都检测到碰撞,他们都停止说话。

网络接口也是如此。当他们想要传输时,他们首先通过尝试感知其他设备的载波信号来检查线路是否安静。如果线路安静,他们就开始传输——同时仍然监视线路以确保他们“听到”他们“说”的内容。如果它们检测到碰撞,它们会停下来,稍等片刻,然后再次开始聆听一段安静的时间。为了减少一次又一次发生冲突的机会,每个设备都会等待(“后退”)随机的时间。

集线器

集线器允许您将多条网络电缆连接在一起。有时这是为了延长电缆的可用长度,有时是为了使布线更容易,有时是其他原因。有时连接到集线器的每条电缆上都有多个设备,有时每个设备都有自己的专用电缆连接到集线器。

但是,无论如何,任何电缆上存在的信号都会立即被所有其他电缆上的集线器重复。所以我们还有一个情况,整个网络一次只有一个设备可以通话。我们说即使有集线器,我们仍然只有一个“冲突域” ——我们仍然需要 CSMA/CD。

开关

当使用交换机时(就像在大多数现代以太网中一样),有一些不同的地方:

  1. 连接到交换机的每条电缆都没有直接连接到所有其他电缆这意味着在一根电缆上通话的设备不会干扰在另一根电缆上通话的设备。每条电缆都有自己的冲突域。

  2. 很多时候,连接到交换机的每根电缆都只连接到另一个设备。每个设备在交换机上都有自己的专用电缆和自己的端口。这在使用“UTP”布线的网络(当今大多数以太网网络)中尤其如此。您只能将两台设备连接到 UTP 电缆上,而交换机是一台。

  3. 同样经常,所涉及的电缆实际上由两个“通道”组成。在“现代”UTP(与我们几十年前使用的旧同轴电缆相反)中,有一组电线供开关传输,另一组单独的电线供其他设备传输。所以即使是交换机和终端也不能相互碰撞。这称为“全双工”。

  4. 交换机具有内存 (RAM)。当您传输一个帧时,它可以存储在内存中,直到交换机的软件准备好将它转发到另一条或多条电缆。因此,不同电缆上的两个设备可以同时传输,并且交换机将缓冲每次传输,直到可以继续发送。 (顺便说一句,交换机在开始转发之前不必等到它收到您的整个帧。)

  5. 可能是交换机最大的优势:他们知道哪些设备在哪些电缆上。(他们动态和自动地解决这个问题 - 您不必配置此信息。)。因此,如果设备 A(在电缆 1 上)正在向设备 B(在电缆 2 上)传输帧,交换机只会将该帧转发到电缆 2。其他电缆都不会受到影响。这意味着电缆 3 上的设备可以同时传输到电缆 4的设备并且电缆 5 上的设备可以与前两者同时传输到电缆 5 上的另一个设备,而根本不会影响网络上的任何其他电缆。

最后——答案

所有这一切的结果是,如果您的设备是连接到交换机的全双工电缆上的唯一设备 - 它可以随时传输。它可以独占使用一对电线进行传输,并且它独自生活在一个私人冲突域中。正如您所说,“它只是将框架放在电缆上。”

由交换机决定将帧转发到哪条电缆(或电缆),并为每条目标电缆缓冲帧,直到该电缆准备就绪。发生类似冲突的事件的唯一时间是当交换机已经将其他一些帧转发到该电缆时,并且您的帧必须在交换机的缓冲区中停留更长时间。

为了能够读取目标 MAC 地址,然后决定需要将数据包发送到哪个端口,交换机需要能够缓冲传入的数据包。

当然,有很多巧妙的方法可以最大限度地减少这种缓冲,从而最大限度地提高交换机端口的吞吐量。但是这些方式都是交换机内部的,所以每个制造商都可以做他们认为最好的事情,只要交换机外部的行为保持在规范范围内。

所以基本上,当全双工交换机收到一个需要从端口 A 到端口 B 的数据包,但端口 B 很忙时,交换机可以将数据包附加到端口 B 的输出数据包队列的末尾缓冲区是否有足够的可用空间。如果缓冲区中没有足够的空间,它将不得不丢弃数据包。

这是所有第 2 层及以下的内容,因此对此的规范权威不是 RFC,而是有关以太网和相关技术的各种 IEEE 802.* 规范。

IEEE 802.3x 标准规定了一个以太网暂停帧,它可以由全双工网络节点(例如交换机端口)发送,以告诉特定链路的另一端它需要暂停其输出一段时间。但这是一个不推荐使用的功能,通常应该避免并且永远不要依赖。