考研级《计算机网络》知识梳理——第十一期
信道划分介质访问控制
1、传输数据使用的两种链路
点对点链路
概念:两个相邻节点通过一个链路相连,没有第三者。
应用:PPP协议(Point to Point Protocol),常用于广域网(范围大)。
广播式链路
概念:所有主机共享通信介质。
应用:早期的总线以太网、无线局域网,常用于局域网(范围小)。
典型拓扑结构:总线型、星型(逻辑总线型)(两对结点间通信会互相干扰,因此引出介质访问控制的内容)
2、介质访问控制
介质访问控制的内容就是,采取一定的措施,使得两对结点之间的通信不会发生互相干扰的情况。
3、信道划分介质访问控制(涉及到“划分”就能猜到是一种提前规划好的方法,归类为静态方法)
概念:将使用介质的每个设备与来自同一信道上的其他设备的通信隔离开,把时域和频域资源合理地分配给网络上的设备。
多路复用技术:把多个信号组合在一条物理信道上进行传输,使得多个计算机或终端设备共享信道资源,提高信道利用率。
把一条广播信道,逻辑上分成几条用于两个节点之间通信的互不干扰的子信道,实际就是把广播信道转变为点对点信道。
4、频分多路复用FDM(Frequency-division multiplexing)
设置几组的不同频段,分给不同用户,用户在分配到一定的频带后,在通信过程中自始至终都占用这个频带。频分复用的所有用户在同样的时间占用不同的带宽(频率带宽,Hz单位的那个带宽)资源。
特点点:充分利用传输介质带宽,系统效率较高;由于技术比较成熟,实现也比较容易。(盲猜缺点是用户间的速度不一致,且低频段的用户受噪声等传输条件的影响较大)
5、时分多路复用TDM(Time-Division Multiplexing)
将时间划分为一段段等长的时分复用帧(TDM帧)。每一个时分复用的用户在每一个TDM帧中占用固定序号的时隙,所有用户轮流占用信道。
TDM帧是在物理层所传送的比特流所划分的帧,标志一个周期。
类比于操作系统,频分复用——“并行”,时分复用——“并发”
缺点就在于是为每个用户提供等额时间的服务,但是这些用户的数据量需求,速度需求都不一样,因此会造成带宽浪费。
5.5、改进的时分复用——统计时分复用STDM(Statistical Time Division Multiplexing)
每一个STDM帧中的时隙数小于连接在集中器上的用户数。各用户有了数据就随时发往集中器的输入缓存,然后集中器按顺序依次扫描输入缓存,把缓存中的输入数据放入STDM帧中,一个STDM帧满了就发出。(依旧是设置容器/缓存,缓存优化yyds!!)STDM帧不是固定分配时隙,而是按需动态分配时隙。
6、波分多路复用WDM(Wavelength Division Multiplexing)(怎么说呢,我觉得链路层跟物理层不能分家,好多协议技术是强耦合的,怪不得四层协议更通用)
概念:就是光的频分多路复用,在一根光纤中传输多种不同波长(频率)的光信号,由于波长(频率)不同,所以各路信号互不干扰,最后再用波长分解复用器将各路波长分解出来。(从这个协议中可以看出,数据链路层与物理层不能分家)
7、码分多路复用CDM(code division multiplexing)
码分多址CDMA(Code Division Multiple Access)是码分复用的一种方式。(对基础信号扩频处理后进行发送)
1个比特分为多个码片/芯片(chip),每一个站点(设备/用户/节点)被指定一个唯一的m位的芯片序列。发送1时站点发送芯片序列,发送0时发送芯片序列反码-1(例如如果在A站点中比特位“1“用”+1-1-1+1+1+1+1-1“表示,那么比特位”0“就用反码也就是”-1+1+1-1-1-1-1+1“表示;站点B中比特位”1“用”-1+1-1+1-1+1+1+1“表示,那么比特位”0“就用反码也就是”+1-1+1-1+1-1-1-1“表示)
如何理解码片:一个数据信号(如逻辑1或0)通常要用多个编码信号来进行编码,那么其中的一个编码信号就称为一个码片。如果每个数据信号用10个码片传输,则码片速率是数据速率的10倍,处理增益等于10。 码片相当于模拟调制中的载波作用,是数字信号的载体。(详见关键词“扩频”)
所以使用码片的意义是什么:保证信号间两两互不干扰,多个站点同时发送数据的时候,要求各个站点芯片序列相互正交(规格内积化等于0(1\0比特位都行))。(例如在刚在的A、B两站点中的例子,都对比特位“1”进行计算,做规格内积化那就是((+1*-1)+(-1*+1)+(-1*-1)+(+1*+1)+(+1*-1)+(+1*+1)+(+1*+1)+(-1*+1))/8=0)
在保证各站点的序列互相正交的情况下,对这些序列进行合并,合并方法是线性相加(在前面A、B站点的例子中,A站点的“0”和B站点的“1”合并就是“-2,+2,0,0,-2,0,0,+2”);在接收端进行分离的时候与源站规格化内积(与各站点的“1”比特位做内积,例如合并结果与A站点的做内积,那就是(+1-1-1+1+1+1-1)·(-2+2+0+0-2+0+0+2)也就是(-2-2+0+0-2+0+0-2)/8=-1,因此A站点在这个序列中传输的是“-1”也就是“0”比特位)
ALOHA协议(来源于夏威夷群岛的打招呼啊语言“ALOHA”)
这种随机访问中的随机性就会导致不协调,因此各个协议就是为了解决因为不协调导致的冲突问题
1、(纯)ALOHA协议
基本思想:纯ALOHA协议不监听信道,不按时间槽发送,随机重发。(想发就发)如果发生冲突,接收方就会检测出差错,然后不予确认,发送方在一定时间内收不到ACK就认为发生冲突。时钟超时后等一随机时间再重传。
2、时隙ALOHA协议
基本思想:把时间分成若干个相同的时间片,所有用户在时间片开始时刻同步接入网络信道,若发生冲突,则必须等到下一个时间片开始时刻再发送。(控制想发就发的随意性)
3、关于ALOHA协议要知道的事
1、纯ALOHA比时隙ALOHA吞吐量更低,效率更低。
2、纯ALOHA想发就发,时隙ALOHA只有在时间片段开始时才能发。
CSMA协议(载波监听多路访问Carrier Sense Multiple Access)
CS:carrier sense载波监听/侦听,每一个站点在发送数据前要检测一下总线上是否有其他计算机在发送数据。具体方法就是当几个站在总线上发送数据时,总线上的信号电压摆动值将会增加(互相叠加)。当一个站检测到的信号电压摆动值超过一定门限值时,就认为总线上至少有两个站同时在发送数据,表明产生了碰撞,即发生了冲突。(总线型网络)
MA:multiple access多点接入,表示许多计算机以多点接入的方式连接在一根总线上。
基本思想:发送帧之前,监听信道。
1、1-坚持CSMA
坚持指的是对于监听信道忙之后的坚持。
具体思路:如果一个主机要发送消息,那么它先监听信道。如果空闲则直接传输,不必等待。如果忙则一直监听,直到空闲马上传输。如果有冲突(一段时间内未收到确认帧,也就是说明实际工程中会有各种影响因素,监听并不一定很准,所以需要制定当前这几种方法),则等待一个随机长的时间再监听(类似于ALOHA协议,但是ALOHA是等一段时间直接发,1-坚持CSMA是等一段时间先监听再发),重复上述过程。
优点:只要媒体空闲,站点就马上发送,避免了媒体利用率的损失。
缺点:如果有两个或两个以上的站点有数据要发送,冲突就不可避免。(一旦发现信道空闲,所有在监听的站点都同时开始发送,有点吓人)
2、非坚持CSMA
非坚持指的是对监听信道忙之后就不继续监听。
具体思路:如果一个主机要发送消息,那么它先监听信道。如果空闲则直接传输,不必等待。如果忙则等待一个随机的时间之后再进行监听。
优点:采用随机的重发延迟时间可以减少冲突发生的可能性。
缺点:可能存在大家都在延迟等待过程中,使得媒体仍可能处于空闲状态,媒体利用率降低。
3、p-坚持CSMA
p-坚持指的是对于监听信道空闲的处理。
具体思路:如果一个主机要发送消息,那么它先监听信道。如果空闲则直接传输,不必等待;概率1-p等待到下一个时间槽再传输(时间槽概念同时隙ALOHA协议,跟时间整点的概念差不多)。如果忙则等待一个随机的时间之后再进行监听。
优点:既能像非坚持算法那样减少冲突,又能像1-坚持算法那样减少媒体空闲时间的这种方案。
所有CSMA的缺点:发生冲突后还是要坚持把数据帧发送完,造成了浪费。如果能及时发现信道冲突及时叫停就能规避这种问题,优化的方式见CSMA-CD。
CSMA-CD协议
CSMA-CD协议(载波监听多点接入/碰撞检测carrier sense multiple access with collision detection)
CD:碰撞检测(冲突检测),”边发送边监听“,适配器边发送数据边检测信道上信号电压的变化情况(半双工网络),以便判断自己在发送数据时其他站是否也在发送数据。
1、传播时延对载波监听的影响
信号传播也是需要时间的,如果B站点监听的时候其实A已经发送出去了但还没传到,B就认为信号是空闲的,马上发送数据,造成信号冲突。
2、如何确定碰撞后的重传时机
截断二进制指数规避算法
1、确定基本退避(推迟)时间为争用期2τ
2、定义参数k,它等于重传次数,但k不超过10,即k=min(重传次数,10)。当重传次数不超过10时,k等于重传次数;当重传次数大于10时,k就不再增大而一直等于10.(参数的人为设置,不谈)
3、从离散的整数集合[0,1,......,2k-1]中随机取出一个数r,重传所需要退避的时间就是r倍的基本退避时间,即2rτ。
4、当重传达16次仍不能成功时,说明网络太拥挤,认为此帧永远无法正确发出,抛弃此帧并向高层报告出错。
习题:
3、最小帧长问题
问题场景:A站发了一个很短的帧但发生了碰撞,不过帧在发送完毕后才检测到发生碰撞,没法停止发送。。
因此需要定义一个最小帧长。
以太网规定最短帧长为64Byte(512bit),凡是长度小于64Byte的都是由于冲突而异常终止的无效帧。
CSMA-CA协议(载波监听多点接入/碰撞避免carrier sense multiple access with collision avoidance)
CD只能检测不能避免,CA只能避免不能检测。应用场景不一样,CD常用于总线式以太网,CA常用于无线局域网(信号难以做到全面的检测)。
1、CSMA-CA协议工作原理
发送数据之前,先检测信道是否空闲(CSMA的优良传统)。如果空闲则发出RTS(request to send),RTS包括发射端的地址、接收端的地址、下一份数据将持续发送的时间等信息;信道忙则等待。
接收端收到RTS后,将响应CTS(clear to send)。
发送端收到CTS后,开始发送数据帧(同时预约信道:发送方告知其他站点自己要传多久数据(CA的精髓所在,太有礼貌了,但是增加控制成本的话,网络性能就会下降,工程问题中万年不变的规律))。
接收端收到数据帧后,将用CRC来检验数据是否正确(差错控制的内容),正确则响应ACK帧(流量控制的内容)。
发送方收到ACK就可以进行下一个数据帧的发送,若没有则一直重传至规定重发次数为止(采用二进制指数退避算法来确定随机的推迟时间)。
2、CSMA-CD与CSMA-CA
相同点:
CSMA-CD与CSMA-CA机制都从属于CSMA的思路,其核心是先监听再发送。
不同点:
1、传输介质不同:CSMA-CD用于总线式以太网【有线】,而CSMA-CA用于无线局域网【无线】。
2、载波检测方式不同:因传输介质不同,CD与CA的检测方式也不同(信号的传输介质、检测方式、受干扰难易程度决定了有线网性能必然是强于无线网的,除非将来找到一种更好的无线传输介质)。CSMA-CD通过电缆中电压的变化来检测,当数据发生碰撞时,电缆中的电压就会随着变化;而CSMA-CA采用能量检测(ED)、载波检测(CS)和能量载波混合检测三种检测信道空闲的方式。
3、CSMA-CD检测冲突,CSMA-CA避免冲突,二者冲突后都会进行有上限的重传。
轮询访问介质访问控制
1、轮询协议
基本思路:在网络中设置主结点轮流”邀请“从属结点发送数据(”邀请函“以小型数据帧的形式传递)
产生的问题:
1、轮训开销(询问每一个站点时都会产生数据帧,占用一定的信道资源,从属节点过多时开销就大了)
2、等待延迟(对与位置靠后的站点需要等待较长的时间)
3、单点故障(主节点主机故障宕机,体系无法运作,解决方法是设置备用主节点)
2、令牌传递协议
应用于令牌环网,物理层面上其实是星型网络,抽象为环形网络。(物理星型拓扑,逻辑环形拓扑)
采用令牌传送方式的网络常用于负载较重、通信量较大的网络中。
令牌:一个特殊格式的MAC控制帧,不含任何信息。控制信道的使用,确保同一时刻只有一个节点独占信道(令牌环网无碰撞)
每个节点都可以在一定时间内(令牌持有时间)获得发送数据的权利,并不是无限制地持有令牌。
基本思路:
产生的问题:
1、令牌开销(令牌也是一种小型数据帧,会占用一定的带宽)
2、等待延迟(同轮询协议)
3、单点故障(令牌环中某一主机宕机会导致令牌环瘫痪,解决办法是设置替代设备)