ALOHA协议
时隙ALOHA协议
CSMA:(载波 侦听多路访问协议)
1-检查CSMA
非坚持CSMA
p-坚持CSMA
比较
倌道状态 | 1-坚持 | 非坚持 | p-坚持 |
---|---|---|---|
空闲 | 立即发送数据 | 立即发送数据 | 以概半p发送数据,以概率1-p推迟到下一个时隙 |
忙 | 继续坚持侦听 | 暂时性放弃帧听(不是完全放弃),还在等待一个随机的时间后再侦听 | 持续侦听,直至信道空闲 (适用于TDM信道,持续指的是下一次时隙继续侦测) |
为了描述方便,通信系统中的两个站A,B,C,D相互都有可能发送数据
总线(或者说信道)上,有A,B,C,D三个占,AB距离AB,BC,CD相距100km
某个时刻 0 0 0,A成功抢占总线,发送数据给C(假设到达需要 τ \tau τ的时间)
空闲
,由于数据才刚刚到达B位置,C检测不到A要发来的数据帧就是发生了冲突;因此“碰撞检测”也称为“冲突检测”。
每一个正在发送数据的站,一旦发现总线上出现了碰撞,就要立即停止发送,
根据上面的分析,结点A发送信息经过 t = 2 τ − δ t=2\tau-\delta t=2τ−δ的时间就可以发现碰撞.
因此以太网将端到端往返时间 T = 2 τ \Tau=2\tau T=2τ称为争用期(contention period)
现在,我们考虑发送端发送的数据的帧长问题:
为了确保发送站在发送数据的同时能检测到可能存在的碰撞
为了避免发生这种情况,以太网规定了一个最短帧长 64 字节,即 512 bit。
对于 10 Mbit/s 以太网,发送 512 bit 的时间需要 51.2 µs,也就是上面提到的争用期。
以太网在发送数据时,如果在争用期(共发送了 64 字节)没有发生碰撞,那么后续发送的数据就一定不会发生冲突。
换句话说,如果发生碰撞,就一定是在发送的前64 字节之内。
由于一检测到冲突就立即中止发送,这时已经发送出去的数据一定小于 64 字节,因此凡长度小于 64 字节的帧都是由于冲突而异常中止的无效帧。只要收到了这种无效帧,就应当立即将其丢弃。
在Hub再生比特流的过程中会产生1.535μs延时(Switch 和Hub均为100Base-T设备),
信号传播速率为200m/s,不考虑以太网帧的前导码,
则H3和H4之间理论上可以相距的最远距离是(205m)。
因为要解决“理论上可以相距的最远距离”,所以最远肯定要保证能检测到碰撞
T s > R T T = 2 τ T_s>RTT=2\tau Ts>RTT=2τ
T s = F m i n / C T_s=F_{min}/C Ts=Fmin/C
F m i n C > R T T = 2 τ = 2 L v \frac{F_{min}}{C}>{RTT}=2\tau=2\frac{L}{v} CFmin>RTT=2τ=2vL
传输速率不变的情况下,需要增大 F m i n F_{min} Fmin的情况:
可减小 F m i n F_{min} Fmin的情况
一个采用CSMA/CD协议的网络中,传输介质是一根完整电缆
分析
若最短帧长减少,而数据传输速率不变,则需要使冲突域的最大距离变短来实现碰撞窗口的少。
设信道长度原来为L(m);
原最短帧长为 F m i n F_{min} Fmin(bit)
F m i n ↓ > 2 L ↓ v C F_{min}\downarrow>2\frac{L\downarrow}{v}C Fmin↓>2vL↓C
k = C v = 1 0 9 b / s 2 × 1 0 8 m / s = 5 b / m k=\frac{C}{v}=\frac{10^9b/s}{2\times{10^8m/s}}=5b/m k=vC=2×108m/s109b/s=5b/m
思路1:
碰撞窗口是指网络中收发结点间的往返时延,因此假设需要减少的最小距离为x,则可得到如下公式(注意单位的转换):
减少的往返时延大等于减少的发送时延
F m i n − 800 > 2 L − x v C ; ( x > 0 ) x > L − 1 10 ( F m i n − 800 ) = L − 1 10 F m i n + 80 F_{min}-800 >2\frac{L-x}{v}C;(x>0) \\ x>L-\frac{1}{10}(F_{min}-800)=L-\frac{1}{10}F_{min}+80 Fmin−800>2vL−xC;(x>0)x>L−101(Fmin−800)=L−101Fmin+80
思路2:不知道为什么结果是这种形式,有空在看(TODO)
截断二进制指数退避(truncated binary exponential backoff),简称,二进制指数退避算法
除检测冲突外,CSMA/CD还能从冲突中恢复。
一旦发生了冲突,参与冲突的两个站点紧接着再次发送是没有意义的,如果它们这样做,那么将会导致无休止的冲突。
二进制指数退避算法考虑了网络负载,把后退延时的平均值和负载大小联系起来
CSMA/CD采用二进制指数退避算法来解决碰撞问题
步骤
CSMA/CD可以检测冲突,但无法避免:
CSMA/CA发送数据的同时不能检测信道上有无冲突,本结点处没有冲突并不意味着在接收结点处就没有冲突,只能尽量避免。
传输介质不同。CSMA/CD用于总线形以太网,CSMA/CA用于无线局域网802.IIa/b/gh等。
检测方式不同。CSMA/CD通过电缆中的电压变化来检测:而CSMA/CA采用能量检测、载波检测和能量载波混合检测三种检测信道空闲的方式。
总结: