在任何一个广播网络中,关键的问题是多方竞争信道的使用权的时候如何确定谁可以使用过
广播信道也就是多路访问信道
用来确定多路访问信道下一个使用者地协议属于数据链路层的一个子层,被称为介质访问控制,在无线局域网中很重要,无线本质上就是无线的,注意一下这个也就是曾经做过的mac层的内容,
信道可以是一个地理区域中的无线频谱,也可以是电缆和光纤,将用户跟其他用户连接在一起。
会相互干扰
第一个是静态分配,当然不是怎么好,比如曾经学习过的多路复用技术,每个用户都会获得,不会发生干扰,并且拥有稳定的流量,简单有效,fm其实也是无线信道的多路复用,每个电台都获得对应的fm波段的一部分的使用权,大部分时间都用来广播自己的信号
但是,数量多而且不断变化的时候或者流量呈现突发的特征,就会被浪费,也会因为超过了多少而被拒绝,而在计算机之中,实际上数据的流量是极端突发性的,
那么显然我们应该用动态分配
有这么几个具体的要求:流量独立,单信道,(所有的信道都用这一个通道),可以接受也可以传输,所有站的能力都相同,冲突可观察(如果同时传输,就是冲突),冲突的必须在其后再次发送,
时间连续或者分槽,任何时间都可以传输或者是离散的,
载波侦听或者不听,在试图使用之前就会知道是否能使用,如果没有侦听,就不会有这个功能,只能盲目传输,然后判断是否成功
有线网络通常是具有侦听功能的,无线却不能有效使用其,并不是每个站都在其他的广播范围内,也就是侦听需求直接通信的可行,
然而我们目前解决的并不是可靠性(关乎其他来保证数据)
多路访问协议
Aloha中,所有的用户终端共享一个上行频率给中央计算机发送帧
aloha有纯的和分槽的,区别在于连续或者是时间离散的
有数据需要的时候就传输,可能会发生冲突,冲突的帧会被破坏,需要发送之后侦听对应的广播来判断是否成功,也可以同时
如果损坏了,就等待一段随机时间,再次发送,等待时间必须是随机的,如果多个用户共享同一个信道的方法将会导致冲突,称为竞争
只要时间有重叠就会发生竞争,并且都会被破坏
并不好,所以出现了分槽aloha
能够将系统容量增加一倍,将时间分成离散的间隔,称为时间槽,每个时间槽对应于一帧,要求遵守统一的时间槽边界,取得同步时间的一种办法是由一个特殊的站在每个间隔起始时发出一个脉冲信号
载波侦听多路访问协议
首先就算是所谓的分槽aloha,其中数据的发送也是随意的,难免发生冲突,然而在局域网中一个独立的站是完全可以检测到其他站正在做什么的,不利用起来多少有点儿说不过去,这就是侦听
是否坚持的csma
所谓的csma,也即是carrier sense multiple access,是最简单的csma方案,有一个数据将要发送的时候,首先确定其他的情况,如果空闲就发送,否则就等待,然后发送,如果冲突就等待随即的时间,之所以是1-坚持,就是因为空闲的时候其发送数据的概率是1
还不够好,但是也已经比aloha好得多了,但是可以改进
非坚持的csma要理智得多,不像之前那个一样那么贪婪,先要侦听,如果没有其他站在发送数据就自己发送,如果正在使用,不持续监听,等待一段随机时间,
带冲突检测的csma,
前两者其实都保证了在信道忙碌的时候能够不传送数据,但是如果同时检测空同时发送仍然发生问题,所以,还有一个改进是每个站快速检测之后立即停止,因为这些已经无可挽回地成为了乱码,这种策略可以节省时间和带宽
换句话说,不仅对是否可以发送进行检测,并且对发送这个瞬间能否进行传送(是否会出现冲突)来进行检测,能够立即中止自己的传送,等待一段随机时间再进行重复,也就是由传输期和竞争期以及空闲期来组成
总之要注意好所谓冲突和竞争的区别
无冲突协议
一旦站已经确定无疑地抓住了信道,冲突就不会再发生,但是在竞争期中冲突却是可能发生的,比如延迟
其中一种方法就是位图协议
每一个站都知道下一个是谁传输,最后一个完成后也很容易检测,开始又新一个n竞争期,
还有一个是令牌传递
运用网络汇总的拓扑结构,单环结构,从一个到下一个,依旧是需要等待n个,