了解数据链路层的基本概念和功能的基础上,重点掌握滑动窗口机制、三种可靠传输协议、各种MAC协议、HDLC协议和PPP协议,特别是CSMA/CD协议和以太网帧格式,以及局域网的争用期和最小帧长的概念、二进制指数退避算法。中继器、网卡、集线器、网桥和局域网交换机的原理及区别要重点掌握。
介质访问控制要完成的主要任务是,为使用介质的每个结点隔离来自同一信道上其他结点所传送的信号,以协调活动结点的传输。介质访问控制(Medium Acess Control,MAC)子层,是用来决定广播信道中信道分配的协议属于数据链路层的一个子层。
广播信道的通信方式,结点A、B、C、D共享广播信道,如果不加控制,结点通信时可能会因为相互干扰而失败。介质访问控制,是采取一定的措施,使得两对结点之间的通信不会发生互相干扰的情况。
常见的介质访问控制方法有信道划分介质访问控制、随机访问介质访问控制和轮询访问介质访问控制。前者是静态划分信道的方法,后两者是动态分配信道的方法。
基本原理是将使用介质的每个设备与来自同一通信信道上的其他设备的通信隔离开来,把时域和频域资源合理地分配给网络上的设备。
多路复用技术是,当传输介质的带宽超过传输单个信号所需的带宽时,就通过在一条介质上同时携带多个传输信号的方法来提高传输系统的利用率。该技术是实现信道划分介质访问控制的途径。多路复用技术把多个信号组合在一条物理信道上进行传输,使多个计算机或终端设备共享信道资源,提高了信道的利用率。
采用多路复用技术可把多个输入通道的信息整合到一个复用通道中,在接收端把收到的信息分离出来并传送到对应的输出通道。
信道划分的实质就是通过分时、分频、分码等方法把原来的一条广播信道,逻辑上分为几条用于两个结点之间通信的互不干扰的子信道,实际上就是把广播信道转变为点对点信道。
信道划分介质访问控制分为以下4种
将多路基带信号调制到不同频率载波上,再叠加形成一个复合信号的多路复用技术。在物理信道的可用带宽超过单个原始信号所需带宽的情况下,可将该物理信道的总带宽分割成若干与传输单个信号带宽相同(或略宽)的子信道,每个信道传输一种信号。
每个子信道分配的带宽可不相同,但它们的总和必须不超过信道的总带宽。在实际应用中,为了防止子信道之间的干扰,相邻信道之间需要加入“保护频带”。
频分多路复用的优点在于充分利用了传输介质的带宽,系统效率较高;由于技术比较成熟,实现也较容易。
将一条物理信道按时间分成若干时间片,轮流地分配给多个信号使用。每个时间片由复用的一个信号占用,而不像FDM那样,同一时间同时发送多路信号。利用每个信号在时间上的交叉,就可以在一条物理信道上传输多个信号。
就某个时刻来看,时分多路复用信道上传送的仅是某一对设备之间的信号;就某段时间而言,传送的是按时间分割的多路复用信号。但由于计算机数据的突发性,一个用户对已经分配到的子信道的利用率一般不高。统计时分多路复用(STDM,又称异步时分多路复用)是TDM的一种改进,它采用STDM帧,不固定分配时隙,按需动态地分配时隙,当终端有数据要传送时,才会分配到时间片,因此可以提高线路的利用率。例如,线路传输速率为8000b/s,4个用户的平均速率都为2000b/s。当采用TDM方式时,每个用户的最高速率为2000b/s,而STDM中为8000b/s。
即光的频分多路复用,它在一根光纤中传输多种不同波长(频率)的光信号,由于波长(频率)不同,各路光信号互不干扰,最后再用波长分解复用器将各路波长分解出来。由于光波处于频谱的高频段,有很高的带宽,因而可以实现多路的波分复用。
采用不同的编码来区分各路原始信号的一种复用方式。与FDM和TDM不同,既共享信道的频率,又共享时间。
更常用的名词是码分多址(Code Division Multiple Acess,CDMA),其原理是每个比特时间再划分成m个短的时间槽,称为码片(chip),通常m的值是64或128。下例中为简单起见,设m为8。每个站点被指派一个唯一的m位码片序列。发送1时,站点发送它的码片序列;发送0时,站点发送该码片序列的反码。当两个或多个站点同时发送时,各路数据在信道中线性相加。为从信道中分离出各路信号,要求各个站点的码片序列相互正交。例如A站向C站发出的信号用一个向量表示,B站向C站发出的信号用另一个向量表示,两个向量要求相互正交。向量中的分量,就是所谓的码片。
任何一个码片向量和该码片向量自身的规格化内积都是1,任何一个码片向量和该码片反码的向量的规格化内积是-1。向量到了公共信道上就进行叠加(线性相加),到达站点后,进行数据分离,要得到来自A站点的数据,就要直到A站的码片序列,与公共向量进行规格化内积,其他站点的信号都在内积的结果中被过滤了。规格化内积是在得到两个向量的内积后再除以向量的分量的个数。
码分多路复用技术具有频谱利用率高、抗干扰能力强、保密性强、语音质量好等优点,还可以减少投资和降低运行成本,主要用于无线通信系统,特别是移动通信系统。
在随机访问协议中,不采用集中控制方式解决发送信息的次序问题,所有用户能根据自己的意愿随机地发送信息,占用信道的全部速率。在总线型网络中,当有两个或多个用户同时发送信息时。就会产生帧的冲突,导致所有冲突用户的发送均以失败告终。为了解决随机接入发生的碰撞,每个用户需要按照一定的规则反复地重传它的帧,直到该帧无碰撞的通过。这些规则就是随机访问介质访问控制协议,常用的协议有ALOHA协议、CSMA协议、CSMA/CD协议和CSMA/CA协议等,它们的核心思想都是:胜利者通过争用获得信道,从而获得信息的发送权。因此,随机访问介质访问控制协议又称争用型协议。该协议是将广播信道转化为点到点信道的行为。
随机接入系统ALOHA
(1)纯ALOHA协议
基本思想是,当网络中的任何一个站点需要发送数据时,可以不进行任何检测就发送数据。如果在一段时间内未收到确认,那么该站点就认为传输过程中发生了冲突。发送站点需要等待一段时间后再发送数据,直至发送成功。
数据在信道上发生碰撞后,数据会出现差错,需要进行重传。纯ALOHA系统采用的重传策略是让各站等待一段随机的时间,然后再进行重传。若再次发生碰撞,则需要再等待一段随机时间,直到重传成功为止。网络负载是T0时间内所有站点发送成功和未成功而重传的帧数。网络的吞吐量是T0时间内成功发送的平均帧数。纯ALOHA网络的吞吐量很低,因而改进产生了时隙ALOHA协议。
(2)时隙ALOHA协议
该协议把所有各站在时间上同步起来,并将时间划分为一段段等长的时隙(Slot),规定只能在每个时隙开始时才能发送一个帧。从而降低了用户发送数据的随意性,减少了数据产生冲突的可能性,提高了信道的利用率。时隙的长度T0使得每个帧正好在一个时隙内发送完毕。每个帧到达后,一般都要在缓存中等待一段小于T0的时间,然后才能发送出去。在一个时隙内有两个或两个以上的帧到达时,在下一个时隙将产生碰撞。碰撞后重传策略与纯ALOHA的情况类似。
每个站点都随意的发送数据,即使其他站点正在发送也照发不误,因此发生碰撞的概率依然很大。若每个站点在发送前都先侦听一下共用信道,发现信道空闲后再发送,则会大大降低冲突的可能,从而提高信道的利用率,载波侦听多路访问(Carrier Sense Multiple Acess,CSMA)协议依据的正是这一思想。CSMA协议是在ALOHA协议基础上提出的一种改进协议,主要是多了一个载波侦听装置。
根据侦听方式和侦听到信道忙后的处理方式,CSMA协议分为三种
(1)1-坚持CSMA(1-persistent CSMA)
基本思想是:一个结点要发送数据时,首先侦听信道,信道空闲,则立即发送数据,否则等待,同时继续坚持侦听直至空闲。若发生冲突,随机等待一段时间,再重新开始侦听信道。
传播延迟对该协议的性能影响较大。因为在A结点的数据的信号尚未到达时,B结点侦听信道的结果是空闲,它立即发送数据会导致冲突。不同结点检测到信道空闲后,立即发送数据,也会导致冲突。
(2)非坚持CSMA(Non-persistent CSMA)
基本思想是:一个结点要发送数据时,首先侦听信道,信道空闲,就立即发送数据,忙就放弃侦听,等待一个随机时间后再重复上述过程。
侦听到信道忙后就放弃侦听,因此降低了多个结点等待信道空闲后同时发送数据导致冲突的概率,但也会增加数据在网络中的平均延迟。信道利用率的提高是以增加数据在网络中的延迟时间为代价的。
(3)p-坚持CSMA(P-persistent CSMA)
用于时分信道,基本思想是:一个结点要发送数据时,首先侦听信道,若信道忙,就推迟到下一个时隙再侦听,直至信道空闲。若信道空闲,那么以概率p发送数据,以概率1-p推迟到下一个时隙,这个过程一直持续到数据发送成功或检测到信道忙。
以概率p发送数据可以降低多个结点检测到信道空闲后同时发送数据的冲突概率。坚持侦听是试图克服由于随机等待而造成的延迟时间较长的缺点。
载波侦听多路访问/碰撞检测(Carrier Sense Multiple Access with Collision Detection,CSMA/CD)协议是CSMA协议的改进方案,适用于总线形网络或半双工网络环境。“载波侦听”是站点发送前先侦听总线上是否有其他站点正在发送数据。“碰撞检测”是边发送边侦听,即适配器边发送数据边检测信道上信号电压的变化情况,以便判断自己在发送数据时其他站点是否也在发送数据。
CSMA/CD的工作流程可简单概括为“先听后发,边听边发,冲突停发,随机重发”。
电磁波在总线上的传播速度总是有限的,因此当某个时刻发送站检测到信道空闲时,此时信道并不一定是空闲。显然,CSMA/CD中的站不可能同时进行发送和接收,因此采用CSMA/CD协议的以太网只能进行半双工通信。
站A在发送帧后至多经过时间2t(端到端传播时延的2倍)就能知道所发送的帧有没有发生碰撞。因此把以太网端到端往返时间2t称为争用期(又称冲突窗口或碰撞窗口)。每个站在自己发送数据之后的一小段时间内,存在发生碰撞的可能性,只有经过争用期这段时间还未检测到碰撞时,才能确定这次发送不会发生碰撞。
为确保发送站在发送数据的同时能检测到可能存在的碰撞,需要在发送完帧之前就能收到自己发送出去的数据,即帧的传输时延至少要两倍于信号在总线中的传播时延,所以CSMA/CD总线网中的所有数据帧都必须要大于一个最小帧长。任何站点收到帧长小于最小帧长的帧时,就把它当作无效帧立即丢弃。最下帧长的计算公式为:
最小帧长 = 总线传播时延 x 数据传输速率 x 2
例如,以太网规定取51.2μs为争用期的长度。对于10Mb/s的以太网,在争用期内可发送512bit,即64B。在以太网发送数据时,如果前64B未发生冲突,那表示已经成功抢占信道,即冲突会发生在前64B,检测到数据就立即停止发送。因此,以太网规定最短帧长为64B,凡长度小于64B的帧都是无效帧,应立即丢弃。如果只发送小于64B的帧,就需要在MAC子层中于数据段的后面加入一个整数字节的填充字段,以保证以太网的MAC帧的长度不小于64B。
除检测冲突外,CSMA/CD还能从冲突中恢复。一旦发生了冲突,将采用二进制指数退避算法来解决碰撞问题。算法精髓如下:
使用二进制指数退避算法可使重传需要推迟的平均时间随重传次数的增大而增大,因而能降低发生碰撞的概率,有利于整个系统的稳定。
CSMA/CD协议已成功应用于使用有线连接的局域网,但在无线局域网环境下,却不能简单地搬用CSMA/CD协议,特别是碰撞检测部分。主要有两个原因:
802.11标准定义了广泛应用于无线局域网的CSMA/CA协议,通过对CSMA/CD协议进行修改,把碰撞检测改为碰撞避免(Collision Avoidance,CA),协议设计中尽量降低发生碰撞的概率。由于802.11无线局域网不使用碰撞检测,一旦站点开始发送一个帧,就会完全地发送该帧,但碰撞存在时仍然发送整个数据帧会严重影响网络的效率,因此要采用碰撞避免技术降低碰撞的可能性。
由于无线信道的通信质量远不如有线信道,802.11使用链路层确认/重传(ARQ)方案,即站点每通过无线局域网发送完一帧,就要在收到对方的确认帧后才能继续发送下一帧。
为了尽量避免碰撞,802.11规定,所有的站完成发送后必须等待一段很短的时间(继续监听)才能发送下一帧,称为帧间间隔(InterFrame Space,IFS)。帧间间隔的长短取决于该站要发送的帧的类型。802.11使用了3种IFS:
CSMA/CA的退避算法和CSMA/CD的稍有不同。信道从忙态变为空闲态时,任何一个站要发送数据帧,不仅都要等待一个时间间隔,而且要进入争用窗口,计算随机退避时间 以便再次试图接入信道,因此降低了碰撞发生的概率。当且仅当检测到信道空闲且这个数据帧是要发送的第一个数据帧时,才不使用退避算法。其他所有情况都必须使用退避算法,具体为:在发送第一个数据帧前检测到信道忙;每次重传;每次成功发送后要发送下一帧。
CSMA/CA算法归纳如下:
1)若站点最初有数据要发送,且检测到信道空闲,在等待时间DIFS后,就发送整个数据帧。
2)否则,站点执行CSMA/CA退避算法,选取一个随机回退值。一旦检测到信道忙,退避计时器就保持不变。只要信道空闲,退避计时器就进行倒计时。
3)当退避计时器减到0时(信道只可能是空闲的),站点就发送整个帧并等待确认。
4)发送站若收到确认,就知道已发送的的帧被目的站正确接收。这时如果要发送第二帧,就要从步骤2)开始。
若发送站在规定时间内没有收到确认帧ACK(由重传计时器控制),就必须重传该帧,再次使用CSMA/CA协议争用该信道,直到收到确认,或经过若干次重传失败后放弃发送。
处理隐蔽站问题:RTS和CTS
站A和B都在AP的覆盖范围内,但A和B相距较远,彼此都听不见对方。当A和B检测到信道空闲时,都向AP发送数据,导致碰撞的发生,这就是隐蔽站问题。
为了避免该问题,802.11允许发送站对信道进行预约,源站要发送数据帧之前先广播一个短请求发送RTS控制帧,它包括源地址、目的地址和这次通信(含相应的确认帧)所持续的时间,该帧能被其范围内包括AP在内的所有站点听到。若信道空闲,则AP广播一个允许发送CTS控制帧,它包括这次通信所需的持续时间(从RTS帧复制),该帧也能被其范围内包括A和B在内的所有站点听到。B站和其他站听到CTS后,在CTS帧中指明的时间内将抑制发送。CTS帧有两个目的:给源站明确的发送许可;指示其他站点在预约期内不要发送。
这种机制实质上是在发送数据帧之前先对信道进行预约。使用RTS和CTS帧会使网络网络效率有所下降,但这两种帧都很短,与数据帧相比开销不算大。若不是用这种控制帧,一旦发生碰撞而导致数据帧重发,则浪费的时间更多。因此,协议设有三种情况供用户选择:第一种是使用RTS和CTS帧;第二种是只有当数据帧的长度超过某一阈值时才使用RTS和CTS帧;第三种是不使用RTS和CTS帧。
CSMA/CD与CSMA/CA主要有如下区别:
1)CSMA/CD可以检测冲突,但无法避免;CSMA/CA发送数据的同时不能检测信道上有无冲突,本结点处没有冲突并不意味着在接收结点处就没有冲突,只能尽量避免。
2)传输介质不同。CSMA/CD用于总线形以太网,CSMA/CA用于无线局域网802.11a/b/g/n等。
3)检测方式不同。CSMA/CD通过电缆中的电压变化来检测;而CSMA/CA采用能量检测、载波检测和能量载波混合检测三种检测信道空闲的方式。
CSMA/CA协议的基本思想是在发送数据时先广播告知其他结点,让其他结点在某段时间内不要发送数据,以免出现碰撞。CSMA/CD协议是发送前侦听,边发送边侦听,一旦出现碰撞马上停止发送。
在轮询访问中,用户不能随机地发送信息,而要通过一个集中控制的监控站,以循环方式轮询每个结点,再决定信道的分配。当某结点使用信道时,其他结点都不能使用信道。典型的轮流访问介质访问控制协议是令牌传递协议,主要用在令牌环局域网中。
在令牌传递协议中,一个令牌在各结点间以某个固定次序交换。令牌是由一组特殊的比特组合而成的帧当环上的一个站希望传送帧时,必须等待令牌。一旦收到令牌,站点便可启动发送帧。帧中包括目的站的地址,以标识哪个站应该接收此帧。帧在环上传送时,不管该帧是否是发给本站点的,所有站点都进行转发,直到该帧回到它的始发站,并由该始发站撤销该帧。帧的目的站除转发帧外,应针对该帧维持一个副本,并通过在帧的尾部设置“响应比特”来指示已收到此副本。站点在发送完一帧后,应释放令牌,以便让其他站使用。
当计算机都不需要发送数据时,令牌就在环形网上游荡,而需要发送数据的计算机只有在拿到该令牌后才能发送数据帧,而且令牌只有一个,因此不会发生冲突。
在令牌传递网络中,传输介质的物理拓扑不必是一个环,但为把对介质访问的许可从一个设备传递到另一个设备,令牌在设备间的传递通路逻辑上必须是一个环。
轮询介质访问控制非常适合负载很高的广播信道,是指多个结点在同一时刻发送数据概率很大的信道。轮询介质访问控制既不共享时间,也不共享空间,限定了有权利发送数据的结点只能有一个。即使是广播信道也可通过介质访问控制机制使广播信道逻辑上变为点对点的信道,所以说数据链路层研究的是“点到点”之间的通信。