计算机网络——数据链路层(CSMA/CD协议)
Posted 江州益彤
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了计算机网络——数据链路层(CSMA/CD协议)相关的知识,希望对你有一定的参考价值。
一、早期以太网
目前LAN广泛使用的以太网技术,早期是将许多计算机连接到一根总线
上,并采用广播方式
发送 。
1.1、以太网采用广播方式
发送 :
总线上的每一个工作的计算机都能检测到 B 发送的数据信号。
由于只有计算机 D 的地址与数据帧首部写入的地址一致,因此只有 D 才接收这个数据帧。
其他所有的计算机(A, C 和 E)都检测到不是发送给它们的数据帧,因此就丢弃这个数据帧而不能够收下来。
在具有广播特性的总线上实现了一对一
的通信。
1.2、以太网采取了两种重要的措施
为了通信的简便,以太网采取了两种重要的措施:
(1)采用较为灵活的无连接的工作方式
1、不必先建立连接就可以直接发送数据。
2、对发送的数据帧不进行编号,也不要求对方发回确认。
3、以太网提供的服务是不可靠的交付,即尽最大努力的交付。
4、当目的站收到有差错的数据帧时就丢弃此帧,其他什么也不做。差错的纠正由高层来决定。
(2)以太网发送的数据都使用曼彻斯特 (Mancℎester) 编码
二、𝑪𝑺𝑴𝑨/𝑪𝑫协议
以太网使用这种一对多
的广播通信
方式,信道上连接的主机很多,因此必须使用专用的共享信道协议来协调这些主机的数据发送。
CSMA/CD含义:载波监听多点接入 / 碰撞检测
2.1、特点一:“多点接入”
表示许多计算机以多点接入的方式连接在一根总线上。
2.2、特点二:“载波监听”
“载波”是指承载数据信号的电磁波。
“监听”是每一个站在发送数据之前先要检测一下总线上是否有其他计算机在发送数据,如果有,则暂时不要发送数据,以免发生碰撞。
因此,“载波监听”就是用电子技术检测总线上有没有其他计算机发送的数据信号。
2.3、特点三:“碰撞检测”,即,边发送边监听
就是计算机边发送数据边检测信道上的信号电压大小。当几个站同时在总线上发送数据时,总线上的信号电压摆动值将会增大(互相叠加)。当一个站检测到的信号电压摆动值超过一定的门限值时,就认为总线上至少有两个站同时在发送数据,表明产生了碰撞。
所谓“碰撞”就是发生了冲突
。因此“碰撞检测”也称为“冲突检测”。
2.4、检测到碰撞后
在发生碰撞时,总线上传输的信号产生了严重的失真,无法从中恢复出有用的信息来。
每一个正在发送数据的站,一旦发现总线上出现了碰撞,就要立即停止发送,免得继续浪费网络资源,然后等待一段随机时间后再次发送。
2.5、为什么要进行碰撞检测?
由于电磁波在总线上的传播速率是有限的,当某个站监听到总线是空闲时,也可能总线并非真正是空闲的。
A向B发出的信息,要经过一定的时间后才能传送到B。
B若在A发送的信息到达B之前发送自己的帧 (因为这时B的载波监听检测不到A所发送的信息),则必然要在某个时间和A发送的帧发生碰撞。
碰撞的结果是两个帧都变得无用。
所以需要在发送期间进行碰撞检测,以检测冲突。
2.6、信号传播时延对载波监听的影响
三、𝑪𝑺𝑴𝑨/𝑪𝑫协议的重要特性
使用 CSMA/CD 协议的以太网不能进行全双工通信而只能进行双向交替通信(半双工通信
)。
每个站在发送数据之后的一小段时间内,存在着遭遇碰撞的可能性。
这种发送的不确定性
使整个以太网的平均通信量远小于以太网的最高数据率。
3.1、争用期
最先发送数据帧的站,在发送数据帧后至多经过时间 2τ
(两倍的端到端往返时延)就可知道发送的数据帧是否遭受了碰撞。
以太网的端到端往返时延2τ称为争用期
,或碰撞窗口
。
经过争用期这段时间还没有检测到碰撞,才能肯定这次发送不会发生碰撞。
3.2、二进制指数类型退避算法 (truncated binary exponential type)
发生碰撞的站在停止发送数据后,要推迟(退避)一个随机时间才能再发送数据。
从整数集合[0,1,…, (2^k−1)]中随机地取出一个数,记为 r。重传所需的时延就是 r 倍的基本退避时间。
参数 k 按下面的公式计算:
k = Min[重传次数, 10]
当k≤10时,参数 k 等于重传次数。
当重传达 16 次仍不能成功时即丢弃该帧,并向高层报告。
3.3、争用期的长度
10 Mbit/s 以太网取51.2μs为争用期的长度。
对于10 Mbit/s以太网,在争用期内可发送512 bit,即 64 字节。
这意味着: 以太网在发送数据时,若前 64 字节没有发生冲突,则后续的数据就不会发生冲突。
3.4、最短有效帧长
如果发生冲突,就一定是在发送的前 64 字节之内。
由于一检测到冲突就立即中止发送,这时已经发送出去的数据一定小于 64 字节。
以太网规定了最短有效帧长为 64 字节
,凡长度小于 64 字节的帧都是由于冲突而异常中止的无效帧。
3.5、强化碰撞
当发送数据的站一旦发现发生了碰撞时:
(1)立即停止发送数据;
(2)再继续发送若干比特的人为干扰信号(jamming signal),以便让所有用户都知道现在已经发生了碰撞。
3.6、人为干扰信号
3.7、CSMA/CD协议的要点
(1)准备发送。但在发送之前,必须先检测信道。
(2)检测信道。若检测到信道忙,则应不停地检测,一直等待信道转为空闲。若检测到信道空闲,并在 96 比特时间内信道保持空闲(保证了帧间最小间隔),就发送这个帧。
(3)检查碰撞。在发送过程中仍不停地检测信道,即网络适配器要边发送边监听。这里只有两种可能性
:
①发送成功
:在争用期内一直未检测到碰撞。这个帧肯定能够发送成功。发送完毕后,其他什么也不做。然后回到(1)。
②发送失败
:在争用期内检测到碰撞。这时立即停止发送数据,并按规定发送人为干扰信号。适配器接着就执行指数退避算法,等待 r 倍 512 比特时间后,返回到步骤 (2),继续检测信道。但若重传达 16 次仍不能成功,则停止重传而向上报错。
3.8、帧间最小间隔
帧间最小间隔为9.6μs
,相当于 96 bit 的发送时间。
一个站在检测到总线开始空闲后,还要等待9.6μs才能再次发送数据。
这样做是为了使刚刚收到数据帧的站的接收缓存来得及清理,做好接收下一帧的准备。
四、高速以太网
以太网的技术发展得很快,从10GE到40GE/100GE(即40吉比特以太网和100吉比特以太网),甚至更高速率的以太网都已出现。
速率达到或超过100 Mbit/s的以太网称为高速以太网
。
高速以太网依然采用802.3标准规定的MAC帧格式。
最短帧长不变。
高速以太网可在全双工方式下工作而无冲突发生。在全双工方式下工作时,不使用CSMA/CD协议。
以上是关于计算机网络——数据链路层(CSMA/CD协议)的主要内容,如果未能解决你的问题,请参考以下文章