一、信道划分(静态分配信道)
频分复用
把一个信道分成不同的频段。类似操作系统的并行
时分复用
将信道按照时间分成若干时间片。类似CPU并发
上面两种方式对信道的利用率还是比较低
码分复用
基本思想是:给A、B两个不同的站点分配不一样的码片序列,要求这两个码片序列必须正交(向量内积为0);然后规定,一个站如果要发送比特1,那么则实际发送它的码片序列;如果一个站要发送比特0,那么则实际发送它码片序列的二进制反码。通过这种操作,多个站点可以同时像目的站发送数据,目的站会存有各个站点的码片序列,可以分辨出谁发的1谁发的0。
那么目的站点是如何分辨的呢?
可以看到,如果此时A和B一起发送数据,且A发送1,B发送0,那么D站收到的就应该是A + !B组合序列。接下来,D站将自己收到的组合序列和A 、B、C三者的码片序列做一个正交运算。
我们会惊奇地发现:如果正交结果为0,则代表该站点没有发送数据;如果正交结果为1,则代表该站点发送的是比特1,如果正交结果为-1,则代表站点发送的是比特0 。
数学推导见上面的图片,其实就是捣鼓内积运算
不得不感慨真的是相当奇妙啊。
我们直接来看两道例题:
上题收到的码片序列是(-1+1-3+1-1-3+1+1),直接按照前面的方法,将收到的码片序列和各站点的码片序列做内积运算即可。
结果:
再来看一道题目:
【解析】:
只需要注意一个点。因为本题码片序列都是4位的,而接收端收到了12位的码片序列。因此我们可以判断,这是经过了三个单位时间之后,得到的码片序列。因此我们的思路就是,先把收到的码片序列分成三份,一份一份的研究,最后求出发出的三个二进制数
答案选B
二、随机访问介质(动态分配信道)
因为是动态分配信道的,所以必然会面临冲突问题。因此,接下来的这些协议要解决的一个核心问题就是:如何解决发送过程中的冲突。
纯ALOHA协议
非常随性,想发就发,不监听信道。如果发生了冲突,就再重发呗。
同样有超时计时器,超时重发
时隙ALOHA
对纯ALOHA进行改进。
将时间分成若干个时间片,必须等到每一个周期的开始阶段才能发送。
打个比方:一个人有强迫症,每次出门必须要整点出门。如果现在是10:55,那么他宁可再等待5分钟,一定要凑到11:00再出门。
两个ALOHA协议的对比:
1-坚持CSMA协议
前面我们学习的ALOHA协议都是不具备监听信道功能的,就好比,平时小组讨论,ALOHA就是那种不听别人说什么,自己想说什么就说什么的人,那就非常容易和别人造成冲突。因此ALOHA协议效率是很低的。
而这里的CSMA协议就具备监听信道的功能了,在说话之前会先听听别人有没有话要说,如果没有,那么自己再说。
如何监听信道的,我们不需要研究。我们只需要知道主机能用某种手段实现监听信道的功能即可。
1坚持就是,如果信道忙,那么它就一直等着,即一直坚持着,直到信道空闲再发送。
非坚持CSMA
如果信道忙,不会一直坚持,会等一段时间再来
p-坚持CSMA
随性。即使信道空闲,也只会以概率p直接传输。
CSMACD协议,最重要的一个协议
应用于半双工网络。
它解决了前面CSMA协议中的问题,可以随时叫停发送。
前面CSMA协议中,只能等待数据帧到了之后校验才能知道出现了冲突。但这里可以边发数据边检测信道,可以随时叫停。
发生碰撞的过程如下图,我们可以看到,最迟检测到自己发生碰撞的时间再(0, 2t)区间内
那么如何确定碰撞后的重传时机呢?我们选择截断二进制指数规避算法:
举个例子:
在这种情况下,重传推迟时间为:0或2t或4t…2046t
如果k超过了16,那么就永远不发此帧,现在网络太拥挤了,该帧生不逢时,并向上级报告错误。
最小帧长问题
就是说:如果一个帧特别特别短,发送过程中发生了碰撞,那么还没等你CSMACD协议发挥作用干预,它就已经到了对面,对面接受到这碰撞之后的错误帧,然后进行差错检测。这样倒不会引起什么大的错误,但CSMACD协议的存在就没有意义了。
所以为了使CSMACD协议100%发挥作用,我们提出最小帧长问题。即:任何发送的数据帧长度不可小于这个最小帧长。
只要帧的传输时延大于两倍的总线中信号传播时延,那么我们就完全来得及
CSMACA协议
CD是对碰撞的检测,CA是对碰撞的避免。
无线网是不能用CSMACD的。无线网很难检测碰撞。
英文Carrier Sense Multiple Access with Collision Avoidance,意思是载波侦听多路访问/冲突避免。
采用该协议要求设备要主动避免冲突而非被动侦测的方式来解决冲突问题。避免冲突的方法主要有两个:
一是监听到信道空闲时,并不是立即发送,而是等待一段时间再发送数据。
二是先发送一个很小的信道侦测帧RTS,如果发送方收到最近的接入点返回的CTS,就认为信道是空闲的,然后再发送数据帧。(RTS与CTS主要是让某两个站点建立起连接,不让其他站点干扰)
协议的主要流程如下:
1 首先检测信道是否有使用,如果检测出信道空闲,则等待一段随机时间后,才送出数据。(同时进行预约信道,发送方告诉其他站点自己要传多久数据)
2 接收端如果正确收到此帧,则经过一段时间间隔后,向发送端发送确认帧ACK。(只有返回了一个ACK帧,发送方才能发下一个数据帧)
3 发送端收到ACK帧,确定数据正确传输,在经历一段时间间隔后,再发送数据。
如果不能返回ACK那就得一直重发。
三、轮询介质访问
轮询协议:
老大挨个去问其他的主机要不要发送数据,询问的过程就是发送一个询问数据帧,这样是不会发送冲突的,而且也可以独占带宽。缺点:有帧的开销和等待延迟,单点故障。如果老大die了,那么就没了
令牌传递协议:在令牌环网中使用的控制信道方式。
令牌会在令牌环网上面进行循环走动,如果当前主机需要发送数据,那么就把令牌标志位置1,代表将令牌置为使用状态。然后在令牌后面把数据补上。每个主机是不能长时间持有令牌发送的。
完