计算机网络-第三章-数据链路层(中)
计算机网络第三章数据链路层的ALOHA 协议、CSMA协议、CSMACD 协议和 CSMACA 协议,令牌传递协议
一.随机访问介质访问控制
在随机访问协议中,不采用集中控制方式解决发送信息的次序问题,所有用户能根据自己的意愿随机地发送信息,占用信道全部速率。
在总线形网络中,当有两个或多个用户同时发送信息时,就会产生帧的冲突(碰撞,即前面所说的相互干扰),导致所有冲突用户的发送均以失败告终。为了解决随机接入发生的碰撞,每个用户需要按照一定的规则反复地重传它的帧,直到该帧无碰撞地通过。这些规则就是随机访问介质访问控制协议,常用的协议有 ALOHA 协议、CSMA协议、CSMACD 协议和 CSMACA 协议等,它们的核心思想都是:胜利者通过争用获得信道,从而获得信息的发送权。因此,随机访问介质访问控制协议又称争用型协议。
如果介质访问控制采用信道划分机制,那么结点之间的通信要么共享空间,要么共享时间,要么两者都共享:而如果采用随机访问控制机制,那么各结点之间的通信就可既不共亨时间,也不共享空间。所以随机介质访问控制实质上是一种将广播信道转化为点到点信道的行为。
1.ALOHA协议
ALOHA 协议是由美国夏威夷大学开发的一种网络协议。处于 OSI 模型中的数据链路层。
它属于随机存取协议中的一种。它分为纯 ALOHA 协议和时隙 ALOHA 协议。
①纯 ALOHA
纯 ALOHA 协议思想: 不监听信道,不按时间槽发送,随机重发,想发就发
冲突如何检测?
如果发生冲突,接收方就会检测出差错,然后不予确认,发送方在一定时间内收不到(ACK)就判断发生冲突。冲突如何解决?
超时后等一随机时间再重传。
有很多个站点,站点把数据准备好了,就可以立马把数据发送到对应的信道上,
这个时候如果整个信道上其他站点没有数据发送,只有这个站点发送数据,
那么这个数据就不会发生冲突,可以成功发送出去。(站1)
如果,一个站点把数据成功发送到信道上,另一个站点也把数据发送到了信道上,在这一段时间内,这两个数据存在冲突,就会相互影响,谁也发不成功,就要针对冲突的数据找一个随机时间之后重新进行发送,不是固定时间。(站2、站N-1)
对应站点,准备好数据,立刻发送数据到对应信道上,如果数据存在冲突,对应冲突的数据就会随即等待一段时间,再进行重新的发送,直至发送成功。
②时隙ALOHA
时隙 ALOHA 协议的思想: 把时间分成若干个相同的时间片,所有用户在时间片开始时刻 同步接入网络信道,
若发生冲突,则必须等到下一个时间片开始时刻再发送。
控制想发就发的随意性
帧到达时不是时间片开始时刻,不能发送,必须要等到整时刻才能发送。
站1将数据接入信道中时,站2帧到达没有在时间片开始时刻,不能接入,避免了冲突
但是,当数据同步接入信道时,存在冲突,就要随即等待一个时间(也是整时刻)然后重新发送数据。
对比纯 ALOHA 和时隙 ALOHA:
1.纯 ALOHA 比时隙 ALOHA 吞吐量更低,效率更低2.纯 ALOHA 想发就发,时隙 ALOHA 只有在时间片段开始时才能发。
2.CSMA协议
CSMA 协议:是一种允许多个设备在同一信道发送信号的协议,
其中的设备监听其它设备是否忙碌,只有在线路空闲时才发送。
CS:载波侦听/监听,每一个站在发送数据之前要检测一下总线上是否有其他计算机在发送数据。
(了解:当几个站同时在总线上发送数据时,总线上的信号电压摆动值将会增大(互相叠加)。当一个站检测到的信号电压摆动值超过一定门限值时,就认为总线上至少有两个站同时在发送教据表明产生了碰撞,即发生了冲突。)
MA:多点接入,表示许多计算机以多点接入的方式连接在一根总线上,
协议思想: 发送帧之前,监听信道
①1-坚持 CSMA
坚持:指的是对于监听信道忙 之后 的坚持。
1-坚持 CSMA 思想:
如果一个主机要发送消息,那么它先监听信道。空闲则直接传输,不必等待。忙则一直监听,直到空闲马上传输。
如果有冲突(一段时间内未收到肯定回复),则等待个随机长的时间 再进行监听,重复上述过程。
优点:只要媒体空闲,站点就马上发送,避免了媒体利用率的损失,缺点:假如有两个或两个以上的站点有数据要发送,冲突就不可避免。
②非坚持CSMA
非坚持: 指的是对于监听信道忙 之后 就 不继续监听。
非坚持 CSMA 思想:如果一个主机要发送消息,那么它先监听信道。空闲则直接传输,不必等待。忙则等待一个随机的时间之后再进行监听。
优点:采用随机的重发延迟时间可以减少冲突发生的可能性。
缺点:可能存在大家都在延迟等待过程中,使得媒体仍可能处于空闲状态,媒体使用率降低非坚持 CSMA 协议在侦听到信道忙后就放弃侦听,因此降低了多个结点等待信道空闲后同时发送数据导致冲突的概率,但也会增加 数据在网络中的 平均延迟。
可见,信道利用率的提高是以增加数据在网络中的延迟时间为代价的。
③p-坚持CSMA
p-坚持:指的是对于监听信道空闲的处理。
p-坚持 CSMA 思想:
如果一个主机要发送消息,那么它先监听信道,空闲则以p概率直接传输,不必等待;概率1-p等待到下一个时间槽再传输。如果信道忙,则 持续监听直到信道空闲再以p概率发送。
优点:既能像非坚持算法那样减少冲突,又能像1-坚持算法那样减少媒体空闲时间的这种方案。
缺点:发生冲突后还是要坚持把数据帧发送完,造成了浪费。
对比:
CSMA协议 1-坚持 CSMA 非坚持CSMA p-坚持CSMA 信道空闲 马上发 马上发 p 概率马上发
1-p 概率推迟到下一个时隙再发发送
信道忙 继续坚持监听 放弃监听,等一个随机时间再监听 继续坚持监听,直到信道空闲再以 P 概率发送
3.⭐CSMA/CD协议
协议要点:
先听后发,边听边发,冲突停发,随机重发
有冲突的话可以“停发”
截断二进制指数规避算法:
确定碰撞(冲突)后的重传时机
随机等待一段时间 = r 倍 争用期,其中 r 是随机数
争用期 = 2 x 最远单向传播时延(考虑距离最远的两个节点)
k:指的是 冲突次数
①如果 k≤10,在[0,2^k-1]区间随机取一个整数r②如果 k>10,在[0,2^10-1]区间随机取一个整数r
③k到达16,信道特别忙碌,就不再发送数据(传帧)了,向上层(网络层)反应
k越大,冲突越多,说明信道越忙碌,就让等待时间长一点
注:
如果争用期内没检测到冲突,本次帧发送就不再可能发生冲突CSMA/CD 没有 ACK 机制,若发送过程中未检测到冲突,就认为帧发送成功
假设:A、C、D、B 依次相距 2000m,即 A、B 两个节点相距最远 6000m,信号的传播速度=2x108m/s,即 200m/us,最大单向传播时延=30us,信道带宽=10Mbps,即10b/us。
问题 1:若 A 节点往信道上发送数据,最多需要多久可以被其他所有节点“监听”到信号?
答:“所有节点”,那就看A节点发送数据后B节点多久可以接收到信号——>最大单项传播时延
——>30us
问题 2:显然,A节点往信道上发送的数据可能与其他节点发生“冲突”。那么在最极限的情况下,从 A节点发出数据开始,最多需要多久,A节点一定可以检测到冲突?
答:“最多需要多久”,看最远的节点A到节点B即可
从A节点向B节点发送数据,一个最大单向传播时延30us 后数据才可以到达节点B,B才可以监听到信号,
那么,第29us,B还不能监听到节点A的信号,认为此时信道是空闲的,那么B就可以往信道中发送数据,A节点想要接收到B节点发出的数据也需要 一个最大单向传播时延30us,
对应两个最大单向传播时延 节点A才能监听到信号——>2 * 30us = 60us
这里假设τ为单程传播时延
这个例图可以这么来理解:
(1)在t=0时刻,站点A开始发送数据,在t=τ-δ时刻,由于此时的时间t<τ,所以A发送的数据并未到达站点B,因此站点B检测到信道空闲并开始发送数据。
(2)由于信道中信息传播的速度一致,因此A的数据和B的数据在τ-δ时刻之后,各跑了单程传播时延剩下的δ时间的一半,也就是各自传送了δ/2的时间之后,二者信息发送碰撞,也就是t=τ-δ/2时刻。(此时A和B都还未知发生了碰撞)
(3)在t=τ时刻,A发送的信息到达B,B检测到该信息有差错,因此知道所收到的信息在传输过程中发生了碰撞,丢弃该信息,并停止发送信息。
(4)虽然B停止了发送,但已经有一部分信息在信道中传输了,发生碰撞的时间在t=τ-δ/2,因此这部分的信息在t=2τ-δ时刻传送到站点A,A检测到信息不完整,因此检测到发送了碰撞。
最短帧长:
最短帧长=2 x 最大单向传播时延 x 信道带宽
若收到的帧小于最短帧长,视为“无效帧”在上述假设中:
最短帧长=2x30usx10Mbps=60usx10Mbps=600bit
CSMA/CD 协议的“冲突停发”规则会导致小于最短帧长的“非法帧”如果 A 节点发送的数据帧长度小于 600bit,可能会导致 A 节点“误以为”发送过程中没有发生冲突,但实际上已经发生了冲突。
数据帧长度小于600 bit 时,节点A发送时延<60us,当节点A发送完数据帧后,B节点的信号才到达被A监听到,A就认为没有冲突,实则在第29us 节点B发送数据的时候就产生了冲突。
从上面可以知道站点A从t=2τ-δ时刻才能检测到碰撞,考虑一种极限状态,当δ趋于0时,也就是A发送的信息几乎差一点点(可忽略的距离)就发送到B了,此时B才发出信息,这样一来,站点A是不是最多经过2τ(争用期)的时间才检测到发生碰撞,大于2τ之后就认为没有发生碰撞了。
如果实际要发送的数据很少,可“填充”至合法长度后再发送。当接收方从信道收到一个帧会做哪些判断?
①判断是否小于“最短帧长”,‘是’,则丢弃帧
②判断是不是发给自己的帧,相当于判定目的地址,‘否’,则丢弃帧③使用 CRC 校验,判定帧是否存在差错,‘是’,则丢弃帧
以上均无问题,则接收帧,并将数据部分(在数据链路层)交给上一层网络层
最长帧长:规定最长帧长可 防止某些节点一直占用信道
4.CSMA/CA协议
协议要点:
若信道空闲,间隔 DIFS 后,再发送帧(一口气发完,发送过程中不用检测冲突)若信道不空闲,则进行"随机退避"
DIFS:
随机退避原理:
①用 二进制指数退避算法 确定一段 随机退避时间(倒计时)
②)发送方会保持监听信道,只有信道空闲时才"扣除倒计时",倒计时结束后立即发送帧(此时信道"听起来"一定空闲)接收方:(采用停止等待协议S-W)
每收到一个正确数据帧都返回 ACK;
若发送方超时未收到 ACK,则进行"随机退避”(有不了解的没关系,继续往后看)
对比:
CSMA CSMA/CD CSMA/CA 原理 先监听,若信道
空闲,再发送
边发送边监听,
检测到冲突立即停发
发送过程中不用检测冲突,发送前想办法尽量
避免冲突(但无法完全避免)
适用于 有线网络
(如:以太网技术)
无线网络
(如:IEEE 802.11,标准的无线局域网技术WiFi)
5.无线局域网(WIFI)
AP(Access Point):接入点,也就是你平时连接的无线WiFi热点
无线网络都是“广播式”网络
为什么不采用 CSMA/CD 协议?
①硬件上很难实现“边听边发,冲突检测”;因为接收信号的强度往往远小于发送信号的强度,且在无线介质上信号强度的动态变化范围很大。
②存在“隐蔽站”问题;在无线通信中,并非所有站点都能够听见对方,就有可能监听不到冲突。发送结点处没有冲突并不意味着在接收结点处就没有冲突。
A监听不到B,C的信号,B和C对于A而言就是隐蔽站。
帧间间隔((InterFrame Gap):
①DIFS(分布式协调IFS):最长的帧间间隔②SIFS(短 IFS):最短的帧间间隔。预留 SIFS 用于处理收到的帧(如完成差错控制等)
③PIFS(中等长度的IFS),不考察了解即可
时间长度:DIFS > PIFS > SIFS
信道空闲:
手机A准备好数据帧后,信道空闲,需要等待 DIFS(最长帧间间隔) = 4ms间隔后再对数据进行发送
传播时延 = 2ms
发送时延 = 7ms
接收方采用停止等待协议,接收到一个数据帧,就要执行差错控制,SIFS(最短帧间间隔) = 1ms
返回一个确认帧ACK
传播时延 = 2ms
发送时延 = 1ms
信道忙碌:
手机A准备好数据帧后,信道忙,“随机退避”,这里退避5ms
当信道空闲时,扣除“倒计时”;信道忙,停止扣除;信道空闲,继续扣除,
当退避时间为0时,开始往信道上发送数据。
解决隐蔽站问题
信道预约机制(可选功能):
① 发送方广播 RTS 控制帧(先听后发,忙则退避)
② AP 广播 CTS 控制帧
③ 其他无关节点收到 CTS 后自觉"禁言"一段时间(即:虚拟载波监听机制);发送方收到 CTS 后,就可以发送数据帧
④ AP 收到数据帧后,进行 CRC 校验,若无差错就返回 ACK 帧
RTS 控制帧(Request Tosend,请求发送):
它包括源地址、目的地址和这次通信所需的持续时间。CTS 控制帧(Clear To send,允许发送):
它也包括源地址、目的地址和这次通信所需的持续时间。
注 1:如果超时未收到 CTS,说明预约失败,则“随机退避”后再次 RTS 预约注 2:“先预约,再发送”这种模式可以启用、也可以不启用。
6.令牌传递协议(轮询访问)
令牌环网技术:IBM 公司于1984开发的一种局域网技术
核心特点:
环形拓扑结构,各节点“轮询访问”信道,不会发生信道冲突如何实现“介质访问控制”:
令牌传递协议
①令牌传递又称“标记传送”,局部网数据送取的一种控制方法,多用于环形网。
②令牌由专用的信息块组成,典型的令牌由连续的8位“1”组成。当网络所有节点都空闲时,令牌就从一个节点传送到下一个节点。
当某一节点要求发送信息时,它必须获得令牌并在发送之前把它从网络上取走。
一旦传送完数据,就把令牌转送给下一个节点,每个节点都具备有发送/接收令牌的装置。
使用这种传送方法决不会发生碰撞,这是因为在某一瞬间只有一个节点有可能传送数据。
最大的问题是令牌在传送过程中丢失或受到破坏,从而使节点找不到令牌从而无法传送信息。
③TCU:环接口干线耦合器。它的主要作用是传递经过的所有帧,为接入站发送和接收数据提供接口。它的状态有两种:收听状态和发送状态。
④没有人使用令牌时,令牌则在环路中循环。
令牌:一个特殊格式的 MAC 控制帧,不含任何信息,
控制信道的使用,确保同一时刻只有一个结点独占信道。
令牌环网无碰撞(无冲突):
每个结点都可以在一定的时间内(令牌持有时间)获得发送数据的权利,并不是无限制地持有令牌。问题:
1.令牌开销 2.等待延迟 3.单点故障应用于令牌环网(物理星型拓扑,逻辑环形拓扑)。
采用令牌传送方式的网络常用于负载较重、通信量较大的网络中。
令牌环网中令牌和数据的传递过程如下:
①网络空闲时,环路中只有令牌帧在循环传递,
②令牌传递到有数据要发送的站点处时,该站点就修改令牌中的一个标志位,并在令牌中附加自己需要传输的数据,将令牌变成一个数据帧,然后将这个数据帧发送出去。③数据帧沿着环路传输,接收到的站点一边转发数据,一边查看帧的目的地址。如果目的地址和自己的地址相同,那么接收站就复制(存储的过程)该数据帧以便进一步处理。
④数据帧沿着环路传输,直到到达该帧的源站点,源站点接收到自己发出去的数据帧后便不再进行转发。同时,发送方可以通过检验返回的数据帧来查看数据传输过程中是否有错,若有错则重传该帧。
⑤源站点传送完数据后,重新产生一个令牌,并将令牌传递给下一个站点,以交出对媒体的访问权限。
——你的三连是对萌新的最大支持,谢谢o(* ̄▽ ̄*)ブ!
更多推荐









所有评论(0)