首页 > 代码库 > ▶链路层第三弹◀ 两种信道下的数据链路层【下】广播通信CSMA/CD
▶链路层第三弹◀ 两种信道下的数据链路层【下】广播通信CSMA/CD
两种信道情况下的数据链路层 之
广播信道的数据链路层---CSMA/CD(载波监听多路访问/冲突检测)
l 局域网概念
在局域网中用到的就是广播通信,所以以局域网的通信来讲解广播信道的数据链路层特点。在学习广播通信
特点之前,先来了解一下局域网。
n 局域网的分类
所有的PC机接到中间设备核心上。但是如果核心设备一点坏掉了,则所有PC机都将受到影响。虽然核心坏掉会出现问题,但是一般核 心不会坏,坏的一般是线路,星形网中线路的毁坏并不会影响其他PC的工作,所以星形网在局域网中用的比较多。并且成为了局域网中主流的结构。
|
最早出现的,多台计算机连接到一根总线上,在总线的两端有电阻用来吸收信号或者能量。如果主机A发送信号,到达总线两端后,信后会被电阻吸收,避免这个信号被反弹回来造成干扰。 当总线网中的线路毁坏时,形成断路,而且没有电阻。会使得所有PC机都无法工作。 |
环形网,也叫令牌环网。在干路上用,不过现在用的也不是很多了。 很多环形网早已经退出市场 在环形网中会有一个令牌环,谁拿到谁就可以发送数据。 |
总线网的一种变形。 |
n 局域网的特点
局域网最主要的特点: 网络为一个单位所有,且地理范围和站点数目均有限。(不过现在说网络为一个单位所拥有是不合适的,现在的局域网已经发展的很大了,有时候可能覆盖范围还要大很多)
局域网具有如下的主要优点:
具有广播功能,从一个站点可很方便地访问全网。局域网上的主机可共享连接在局域网上的各种硬件和软件资源。
n 局域网中的冲突域与广播域
B向D发送数据,连接在总线上的所有计算机都能收到数据,查看数据的地址,一看不是给自己的则丢弃。
只有D一看地址是给我的,就接受。这样可以在广播通信中是是实现点对点的通信。
ü 广播域: 一台计算机发送数据,连接在总线上的所有计算机都能收到数据,所有的计算机在同一个广播
域中。
ü 冲突域: 当一台计算机发送数据时,总线被占用,此时所有连接在总线上的其他计算机都不能再发送数
据了。
所有的计算机又处于同一个冲突域中。
n 局域网各终端共享通信媒体(线路介质)
局域网中的终端是共享同一传输介质的,线路只能供一个用户独占使用。如何让众多用户能合理共
享通信媒体,做到互不冲突。
静态划分信道: 采用频分复用、时分复用、波分复用、码分复用技术,比如采用频分复用,可以将信道
划分成几个不同频率的信道,主机之间的通信通过各自的频率通道进行,互不干扰。但
是两个用户就一个频率信道,如果用户很多的话,就要划分很多信道,而且频率信道的
划分需要在两端进行,我们普通用户根本不懂,连上线就要上网,根本不会管信道是如
何分的 ,所以采用静态划分信道的方式很不适合。
动态媒体接入控制(多点接入)
随机接入:用户想什么时候在线路上发送数据就什么时候发,什么都不用管。如果恰好有多个用户
同时刻发送,则在线路上发生碰撞,需要CSMA/CD 协议协调(主要被以太网采用!)这是以太网最需要解决
的问题。
受控接入 :如多点线路探询(polling),或轮询。(目前已不被采用)
l 解决数据在广播信道总线上发生碰撞的协议-----CSMA/CD(载波监听多点接入/冲突检测)
n CSMA/CD 基本概念
CSMA/CD 表示 Carrier Sense Multiple Access with Collision Detection。
工作在半双工状态下
“多点接入”表示许多计算机以多点接入的方式连接在一根总线上。
“载波监听”是指每一个站在发送数据之前先要检测一下总线上是否有其他计算机在发送数据,如果有,则
暂时不要发送数据,以免发生碰撞。
“载波监听”就是用用户利用电子技术检测总线上有没有其他计算机发送的数据信号。
“碰撞检测”就是计算机边发送数据边检测信道上的信号电压大小。
当几个站同时在总线上发送数据时,总线上的信号电压摆动值将会增大(互相叠加)。
当一个站检测到的信号电压摆动值超过一定的门限值时,就认为总线上至少有两个站同时在
发送数据,表明产生了碰撞。
所谓“碰撞”就是发生了冲突。因此“碰撞检测”也称为“冲突检测”。
检测到碰撞后
在发生碰撞时,总线上传输的信号产生了严重的失真,无法从中恢复出有用的信息来。
每一个正在发送数据的站,一旦发现总线上出现了碰撞,就要立即停止发送,免得继续浪费网络
资源,然后等待一段随机时间后再次发送。
n 载波监听后仍然出现碰撞的可能
电磁波在总线上的有限传播速率的影响
当某个站监听到总线是空闲时,也可能总线并非真正是空闲的。
A 向 B 发出的信息,要经过一定的时间后才能传送到 B。
B 若在 A 发送的信息到达 B 之前发送自己的帧(因为这时 B 的载波监听检测不到 A 所发送的信息),
则必然要在某个时间和 A 发送的帧发生碰撞。
碰撞的结果是两个帧都变得无用。
ü A监听到信道是空闲的,在t=0时刻,向B发送数据。
ü 当数据发送到C点时,B监听到信道也是空闲的,所以B在t1时刻向A发送数据
ü 两个数据在O点发生碰撞,碰撞发生时间是t2。OC和OB所用的时间和走的路程是一样的。
ü 当发生碰撞后,从O点开始向主机A和主机B发送电压信号变化以告诉A和B发生碰撞了
ü 信号从O点出发到达H点,主机B在t3时刻收到了电压信号变化,所以主机B将不再发送数据
ü 信号从O点出发到达D点,主机A在t4时刻受到了电压信号变化,所以主机A将不再发送数据
需要注意的是: 电压信号和数据传输信号在线路上的速率是一样的。
n CSMA/CD协议的重要特性
使用 CSMA/CD 协议的以太网不能进行全双工通信而只能进行双向交替通信(半双工通信)。
每个站在发送数据之后的一小段时间内,存在着遭遇碰撞的可能性。 所以不能保证在一定时间内一定能把
数据发送出去。
这种发送的不确定性使整个以太网的平均通信量远小于以太网的最高数据率。
可以看出,如果A到B之间的线路越长,那么接受到碰撞信息的时间也会越长,所以CSMA/CD协议适合
用在线路较短的局域网和以太网中。这也是局域网范围受限的原因之一。
n 争用期
A能收到碰撞的最长时间为,也就是当数据到达B后,B刚好发送数据,在主机B上发生了碰撞。
最先发送数据帧的站,在发送数据帧后至多经过时间 2τ就可知道发送的数据帧是否遭受了碰撞。如果这段时间还没有检测到碰撞,才能肯定这次发送不会发生碰撞。
ü 以太网的争用期:
以太网的端到端往返时延2τ称为争用期,或碰撞窗口。通常,取 51.2 ms 为争用期的长度。
对于 10 Mb/s 以太网,在争用期内可发送512 bit,即 64 字节。
以太网在发送数据时,若前 64 字节未发生冲突,则后续的数据就不会发生冲突。
ü 最短有效帧长
如果发生冲突,就一定是在发送的前 64 字节之内。
由于一检测到冲突就立即中止发送,这时已经发送出去的数据一定小于 64 字节。
以太网规定了最短有效帧长为 64 字节,凡长度小于 64 字节的帧都是由于冲突而异常中止的无效帧。
n 算法---二进制指数类型退避
发生碰撞的站在停止发送数据后,要推迟(退避)一个随机时间才能再发送数据。
确定基本退避时间,一般是取为争用期 2t。
定义参数 k ,
k = Min[重传次数n, 10]
从整数集合[0,1,…, (2的K次方-1)]中随机地取出一个数,记为 r。
重传所需的时延就是 r 倍的基本退避时间。
当重传达 16 次仍不能成功时即丢弃该帧,并向高层报告。
【解疑答惑心得】
【心得一】在“载波监听后仍然出现碰撞的可能”中在t1时刻,明明线路上数据在传输,为何主机B监听到
的线路却是信道空闲。
答: 需要注意的是:在官方教材中主机监听信道是否为空闲的依据是主机是否收到信道产生的过高电压信号。电
压信号的产生是由于信道上两方或者多方数据发生了碰撞引起的。如果信道上只有一个数据在传输,则不会引
起电压的过高变化,也就不会形成电压信号,主机也就收不到信道繁忙的信息,所以此时的主机认为信道是空闲的,当发生碰撞后,电压信号叠加增高,这个信号会传到两方的主机上,告知主机发送的数据有冲突。这就是主
机收到了碰撞后的信息。
本文出自 “赵玉强的博客” 博客,请务必保留此出处http://zhaoyuqiang.blog.51cto.com/6328846/1570775
▶链路层第三弹◀ 两种信道下的数据链路层【下】广播通信CSMA/CD