以太网CSMA / CD到底是什么

CSMA / CD

带冲突检测的载波侦听多路访问(CSMA / CD),英文描述为Carrier Sense Multiple Access with Collision Detect (CSMA/CD)。

最初,以太网被设计为在共享介质上运行的协议,如图所示。

在这里插入图片描述

在这种拓扑中,总线上的每个节点(node)都可以平等地访问总线,但是一次只能传输一个节点,并且每个节点都传输半双工。

来自多个节点的同时传输将导致介质上的数据出现乱码,随后数据丢失。从这个简单的例子中,我们可以得出对网络协议的一些基本要求:

  • 多个节点必须能够在共享介质上进行传输(多重访问-Multiple Access)。
  • 每个节点必须能够检测到另一个节点何时进行传输(载波侦听-Carrier Sense)。
  • 如果多个节点将介质视为空闲并同时开始传输,则传输节点必须能够确定何时同时传输(冲突检测-Collision Detect)。
  • 当检测到冲突时,每个节点都必须具有一种确定何时重新传输的方法,而每个节点都不能连续尝试同时重新传输(退避-Backoff)。

在以太网中,使用称为带冲突检测的载波侦听多路访问(CSMA / CD)的方案可以满足这些要求。

载波侦听

在以太网节点可以开始传输之前,它必须首先确定介质是处于活动(active)状态还是空闲(idle)状态(载波侦听)。如果介质处于活动状态,则该节点必须等待,直到介质变为空闲,然后在此之后等待预定时间(predetermined amount of time),然后再开始传输。

此预定时间量称为数据包间间隙Inter-Packet Gap(IPG),也称为帧间间隙Inter-Frame Gap(IFG),并且取决于总线的速度,如表所示。

在这里插入图片描述
IPG用作帧之间的恢复时间,以使节点能够准备接收下一帧。

冲突检测

但是,如果多个节点正在等待媒体变为空闲状态,则一旦媒体变为空闲状态,它们几乎可以同时开始传输。因此,所有节点还必须具有检测这些冲突的能力(冲突检测)。

如果尝试在空闲介质上进行传输的节点位于介质的物理相对两端,并且一个节点在看到来自介质上另一节点的传输之前就开始进行传输,则发生最坏情况。

阻塞信号
Except:作为示例,让我们假设图中的节点1和节点4都想要发送。

节点1开始传输,但是数据需要花费一些时间才能通过介质传播到节点4。节点4在看到来自节点1的数据之前就开始传输。节点4几乎会立即检测到介质上的冲突,并将一种称为堵塞信号的特殊模式传输到介质上。

现在,该阻塞信号必须先返回到节点1才能检测到通过将其发送的数据与接收的数据进行比较,可以确定发生了冲突。

这适用于10Base2、10Base5和10Base-F节点,其中所有节点共享一个公共介质。

这意味着在确保介质上的所有节点都检测到网络之前,网络的信号传播时间大约是其两倍。该时间称为冲突窗口或时隙时间。 表显示了各种速度的时隙时间。

在这里插入图片描述

我们描述的情况称为“窗口内”冲突,因为该冲突是在时段内检测到的。
但是,如果网络的大小大于网络直径,则可能会发生“窗口外”或“后期”冲突。

较晚的碰撞不像窗口内碰撞那样被视为传输错误,但被视为网络拓扑本身存在问题。

与窗口内冲突不同,后期冲突不在以太网的物理/数据链路层处理,而是必须由应用程序软件检测和处理。

根据以上示例,应该可以明显看出碰撞窗口等于帧的最小大小。 但是,增加帧大小会增加从碰撞中恢复的影响。

为此,IEEE 802.3规范的原始作者通过针对10Base-T和100Base-T以太网提出“合理的”冲突窗口(表2中称为“网络直径”)而受到损害。

然后将最小框架尺寸设置为匹配所选网络直径。

自然而然,运行速度为1000 Mb / s的千兆以太网的网络直径将是100Base-T的1/10。 但是,这将导致约20m的实际无法使用的网络直径。
千兆以太网通过在帧末尾添加位(称为“载波扩展”)来扩展帧大小,以形成4096位的有效最小帧长度。

这导致网络直径与100Base-T大致相同。

由于100Base-T的传输速率是10Base-T的传输速率的10倍,因此传输帧所需的时间是时间的1/10。
反过来,这意味着时隙时间从10Base-T的大约50μs减少到100Base-T的大约5μs。
因此,网络直径从2500m缩小到约200m。

请注意,半双工可用于不使用共享总线拓扑的拓扑,例如点对点连接。

在这里插入图片描述

在这种情况下,一个节点的TX线连接到另一节点的RX线,反之亦然。因此,冲突很容易检测到,因为每个节点可以在传输时简单地在其RX端口上查找数据。
如果在传输期间接收到任何数据,则链接的节点也必须也在传输,并且发生了冲突。这适用于10Base-T以及所有100 Mb / s和千兆位以太网节点。

对我们的网络协议的最后要求是一种方法,每个节点都可以通过该方法确定何时重新传输。如果每个节点尝试同时重传,则冲突将无限期继续。

因此,以太网实现了所谓的二进制指数补偿算法,其工作原理如下:

1.每个节点在尝试其第一次重传之前选择一个随机延迟(范围从0到1)。

2.如果发生另一个冲突,则每个节点将随机延迟的范围加倍(现在从0到3),然后再次选择随机延迟。

3.重复此过程(范围为0到7、0到15等),直到没有碰撞发生或尝试10次为止。此时,每个节点的定义范围将是0到1023。以这种方式,每次尝试的退避时间范围都呈指数增长,并且碰撞的可能性迅速降低。

4.将进行六次尝试(总共16次尝试)以进行重发。如果某个节点仍无法成功进行重传,则会丢弃该帧,并报告过多的冲突错误。然后,应用程序软件必须检测到帧丢失,并根据需要尝试重新传输丢失的帧。

STREAM TIMING 时序选择

在我们了解IEEE 802.3帧的时序之前,我们必须了解时序背后的原因。也就是存在冲突以及如何去解决冲突,七种当然包含很多的算法等。

2020-3-30

  • 4
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
CSMA/CD协议是一种用来解决多个计算机在同一物理链路上竞争传输权利的协议。在这个协议中,每个计算机都可以在链路上传输数据。但是,如果多个计算机同时传输数据,就会造成冲突,导致数据的损坏。为了解决这个问题,以采用了CSMA/CD协议。 CSMA/CD协议的基本原理是:当一个计算机要传输数据时,它首先会监听链路,如果链路上没有其他计算机正在传输数据,那么这台计算机就可以开始传输数据。如果链路上有其他计算机正在传输数据,那么这台计算机就会等待一段随机的时间,然后再次监听链路。如果链路上仍然有其他计算机正在传输数据,那么这台计算机就会等待更长的时间,然后再次监听链路。如果链路上没有其他计算机正在传输数据,那么这台计算机就可以开始传输数据。 为了模拟CSMA/CD协议,在实验中我们可以使用两台计算机和一个交换机。首先,我们需要设置两台计算机的IP地址和子掩码。假设计算机A的IP地址是192.168.1.1,子掩码是255.255.255.0;计算机B的IP地址是192.168.1.2,子掩码是255.255.255.0。 接下来,我们需要在交换机上设置VLAN,将两台计算机连接到同一个VLAN上。在交换机上打开命令行界面,输入以下命令: ``` configure terminal vlan 10 name test exit interface fastethernet 0/1 switchport mode access switchport access vlan 10 exit interface fastethernet 0/2 switchport mode access switchport access vlan 10 exit ``` 上述命令将创建一个名为“test”的VLAN,并将交换机的1号口和2号口连接到这个VLAN上。 然后,在计算机A和计算机B上分别打开命令行界面,输入以下命令: ``` ping 192.168.1.2 ``` 上述命令将向另一台计算机发送一个ICMP回应请求,以测试两台计算机之间的络连接。 现在,我们可以模拟同时传输数据的情况,以测试CSMA/CD协议是否能够正常工作。在计算机A上打开一个命令行窗口,输入以下命令: ``` ping -t 192.168.1.2 ``` 上述命令将持续发送ICMP回应请求,直到手动停止或发生错误。在计算机B上也打开一个命令行窗口,输入以下命令: ``` ping -t 192.168.1.1 ``` 同样地,这个命令也将持续发送ICMP回应请求。现在,两台计算机都在同时传输数据,我们可以观察到CSMA/CD协议是如何工作的。 当两台计算机同时传输数据时,会发生冲突,导致数据的损坏。此时,CSMA/CD协议会让每台计算机停止传输数据,并等待一段随机的时间后再次尝试传输数据。在实验中,我们可以观察到命令行窗口中的响应时间会出现明显的波动,这是由于CSMA/CD协议的等待时间随机化导致的。 通过这个实验,我们可以更好地理解CSMA/CD协议的工作原理,以及如何在以中避免数据冲突和损坏。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值