问答题
假定站点A和B在同一个10Mbit/s以太网的网段上,这两个站点之间的传播时延为225比特时间。现假定A开始发送一帧,并且在A发送结束之前B也发送一帧。如果A发送的是以太网所允许的最短的帧,试问:
问答题
A在检测到和B发生碰撞之前能否把自己的数据发送完毕?如果A在发送完毕之前并没有检测到碰撞,那么能否肯定A所发送的帧不会和B发送的帧发生碰撞?(提示:在计算时应当考虑到每一个以太网帧在发送到信道上时,在MAC帧前面还要增加7个字节的前同步码和1个字节的帧定界符)
【正确答案】设在t=0时,A开始发送数据,那么在t=(64+8)×8=576比特时间的时候,A应当发送完毕。另外,由题意可知,B在t=225比特时间,就能检测出A的信号。既然题意说了在A发送结束之前B也发送一帧,就足以说明B发送数据的时间肯定是在t<225比特时间的时候,不然B不可能会发送数据(因为t>225比特时间时,B已收到了A发来的数据)。
不妨设B是在第N比特时间发的数据,那么N+225必定小于576,所以在A发送完数据之前就已经检测到了碰撞,即A在检测到和B发生碰撞之前不能把自己的数据发送完毕。如果A在发送完毕之前并没有检测到碰撞,那么就能够肯定A所发送的帧不会和B发送的帧发生碰撞。
【答案解析】
问答题
中的站点A和B在t=0时同时发送了数据帧。当t=225比特时间,A和B同时检测到发生了碰撞,并且在t=225+48=273比特时间完成了干扰信号的发送。A和B在CSMA/CD算法中选择不同的r值退避。假定A和B选择的随机数分别是0和1。试问:A和B各在什么时间开始重传其数据帧?A重传的数据帧在什么时间到达B?A重传的数据会不会和B重传的数据再次发送碰撞?B会不会在预定的重传时间停止发送数据?
【正确答案】t=0时,A和B开始发送数据。
t=225比特时间,A和B都检测到碰撞。
t=273比特时间,A和B结束干扰信号的发送。
信道空闲时刻为273+225(干扰信号的传播),由于是10Mbit/s以太网,所以争用期为512比特时间,即A等待0×512比特时间后还要等待96比特时间(最小帧间间隔),因此t=594比特时间,A开始发送。
t=785比特时间,B在273比特时间开始等待,1×512比特时间后再次检测信道。如果空闲,则B在785+96=88l比特时间发送数据,否则再退避。
A重传的数据在819比特时间到达B,B先检测到信道忙,因此B在预定的881比特时间将会停止发送数据,如下表所示。
{{B}}站点A和B的实际过程{{/B}}
|
| t |
A |
B |
| 0 |
发送 |
发送 |
| 225 |
监测到碰撞,发送干扰 |
监测到碰撞,发送干扰 |
| 273 |
干扰传送完毕 |
干扰传送完毕 |
| 498 |
接收完干扰,信道空闲 |
|
| 594 |
A发送 |
|
| 785 |
|
检测信道,信道空闲,等待发送 |
| 819 |
|
A发送的信号到达B |
| 881 |
|
B准备发送,检测信道,信道忙,停止发送 |
综上分析:
A和B分别在t=594比特时间与t=881比特时间开始重传其数据帧。A重传的数据帧在t=819比特时间到达B。A重传的数据不会和B重传的数据再次发送碰撞,因为B在发送数据时,检测到了信道忙,立即停止发送了。B会在预定的重传时间停止发送数据,因为B在t=881比特时间准备发送数据时检测到信道忙。
【答案解析】[解析] 在停止数据发送的时候(刚开始发送干扰信号)适配器就执行指数退避算法。并不是说需要等到传播完干扰信号才开始指数退避算法。因为A的随机数为0,所以A在发送完干扰信号之后,信道仍有干扰信号在传播,所以将会不断地监听,直到(225+273)的时候监听到信道为空(干扰信号传播完毕),再加上96比特的时间,就可以发送数据了。
而B是不一样的,因为B本来就要等512比特,那个时候(273+512)信道已经是空闲的了(因为此时A的数据还没有到达B,所以空闲)。