1.协议来源
如图星形网,中间的集线器做转发,如果 1给2发送数据的同时,3也在给4发送数据,那么就会存在信号混合在一起的问题,
所以就需要发送数据之前,检查一下是否正在有设备发送数据
2.协议层次:数据链路层
协议位置:适配器
3.协议要点
1)多点载入:许多计算机以多点接入的方式
2)载波监听:适配器检测有没有其他计算机也在发送
3)碰撞检测:适配器边发送边监听,当检测到信号电压变化幅度超过一定门限值时,认为至少有两个站在发送数据,表名发生碰撞,对应适配器就要立即停止发送
用图表示具体的过程:谢希仁-P87页
S1:t = 0时,A发送数据,B检测到信道为空闲
S2:t = τ - σ,A发送的数据还没有到达B,由于B检测到信道是空闲的,因此B发送数据
S3:t = τ - σ/2,A发送的数据和B发送的数据发生了碰撞,这时A和B都不知道发送了碰撞
S4:t = τ时,B检测到发生了碰撞,于是停止发送数据,发送冲突信号给A
S5:t = 2τ - σ,A也检测到发生了碰撞,因而也停止发送数据
t = 2τ - σ是因为B先检测到碰撞,发送冲突信号给A,在τ-σ发现碰撞,然后A经过τ时间接受到冲突信号,所以是2τ - σ
4.碰撞重传
1)争用期:2τ,因为发送方经过至多时间2τ就可以知道数据是否遭受了碰撞,其中σ->0
经过争用期这块时间还没有检测到碰撞,才能肯定这次发送不会发生碰撞
2)以太网使用 截断二进制指数退避 算法来确定碰撞后重传的时机
S1: 争用期2τ,具体的争用期时间是51.2μs,对于10Mbit/s以太网,争用期可发送512bit.
S2: k = Min[重传次数,10],r从 [0,1,...,(2的k次方-1)]中随机取出一个数,重传应推后的时间就是r倍的争用期
S3:当重传达16次扔不能成功,则丢弃该帧,并向高层报告
5.以太网帧的最小长度=64字节,why?
要保证以太网的重传,必须保证A收到碰撞信号的时候,数据包没有传完
因为争用期是512bit时间,对应就是64字节,当帧的长度小于64字节时,争用期还没有结束,帧就已经发送完毕,
即使检测到碰撞也不能中止帧的发送。
所以以太网规定了最短帧长64字节,如果要发送的数据非常少,那么必须加入一些填充字节
6.碰撞强化
一旦发生了碰撞,除了立即停止发送数据外,还要继续发送32bit或48bit的人为干扰信号,以便让所有用户知道现在已经发生了碰撞
7.总结
需要注意的点:
1)比特时间的概念
2)最小帧长度
3)随机时间重传
4)检测到碰撞发送人为干扰