所用的用户都可以随机发送信息, 发送信息时可以占用全部带宽(不协调)
ALOHA协议
纯ALOHA协议思想:
不监听信道, 不按时间槽发送, 随机重发 —>想发就发
冲突检测: 如果发生冲突, 接收方在就会检测出差错, 然后不予确认, 发送方在一定时间内收不到就判断发生冲突
解决: 超时后等一随机时间再重传
时隙 ALOHA协议
把时间分成若干个相同的时间片, 所有的用户在时间片开始时刻同步接入网络信道, 若发生冲突, 则必须等到下一个时间片开始时刻再发送
(控制想法就发的随意性)
纯ALOHA比时隙 ALOHA协议吞吐量更低, 效率更低
CSMA协议
载波监听多路访问协议
协议思想: 发送帧之前, 监听信道
1-坚持CSMA
对监听信道忙之后的坚持
坚持CSMA思想: 如果一个主机想要发送信息, 那么它先监听信道
空闲则直接传输, 不必等待, 忙则一直监听
优点: 避免媒体利用率的损失
缺点: 假如有两个或两个以上的站点数据要发送, 冲突不可避免
非坚持CSMA
对监听信道忙之后不继续监听
非坚持CSMA思想: 如果一个主机想要发送信息, 那么它先监听信道
空闲则直接传输, 不必等待
忙则等待一个随机的时间之后再进行监听
优点: 采用随机的重发延迟时间可以减少冲突发生的可能性
缺点: 可能存在大家都在延迟等待的过程中,使得媒体仍可能处于空闲状态, 媒体的使用率低
p-坚持CSMA
对监听信道空闲的处理
p-坚持CSMA思想:
如果一个主机想要发送信息, 那么它先监听信道
空闲则以p概率直接传输, 不必等待
概率1-p等待到下一个时间槽再传输
忙则等待一个随机的时间之后再进行监听
优点: 既能像非坚持算法那样减少冲突, 又能像1-坚持算法那样减少媒体空闲时间的这种方案
缺点: 发生冲突后还是要坚持把数据帧发送完, 造成浪费
CSMA/CD协议
载波监听多点接入/碰撞检测CSMA/CD
CS载波监听: 每一个站在发送数据之前以及发送数据时都要检测一下总线上是否有其他计算机在发送数据
MA: 多点接入, 表示许多计算机以多点接入的方式连接在一根总线上(总线型网络)
CD: 碰撞检测(冲突检测), “边发送边监听”, 适配器边发送数据边检测信道上信号电压的变化情况, 以便判断自在发送数据时其他站是否也在发送数据(半双工网络)
传播时延对载波监听的影响
如何确定碰撞后的重传时机
截断二进制指数规避算法
- 确定基本退避(推迟)时间为争用期2τ
- 定义一个参数了k , 它等于重传次数, 但不超过10
- 从离散的整数集合[0,1,2^k-1]随机抽取一个数r, 重传所需要退避的时间就是r倍的基本退避时间, 即2r τ
- 当重传达到16次仍不能成功时, 说明网络太拥挤, 认为此帧永远无法正确发出, 抛弃此帧并向高层报告出错
第一次重传, k=1,r从{0,1}选
重传推迟时间为0或2r τ, 在这两个时间中随机选一个;
若再次发生碰撞, 则重传第二次, k=2, r从{0,1,2,3}选
重传推迟时间为0或2τ或4τ或6τ, 在这四个时间中随机选一个
……
最小帧长问题
帧的传输时延至少要两倍于信号在总线中的传播时延
CSMA/CA协议
载波监听多点接入/碰撞避免
发送数据前, 先检测信道是否空闲
空闲则发出RTS ( request to send ), RTS包括发送端的地址, 接收端的地址, 下一个数据将持续发送的时间等信息; 信道忙等待
接收端收到RTS, 将响应CTS(clear to send)
发送端收到CTS后, 开始发送数据帧(同时预约信道: 发送方告知其他站点自己要传多久数据)
接收端收到数据帧cai后, 将用CRC来检验数据是否正确, 正确则响应ACK帧
发送方收到ACK后就可以进行下一个数据帧的发送, 若没有则一直重传至规定重传发次数为止(采用二进制指数退避算法来确定随机的推迟时间)