发布网友 发布时间:2022-10-12 12:04
共2个回答
热心网友 时间:2023-10-21 21:54
这种协议实际上就是在发送数据帧之前先对信道进行预约。
CSMA/CA协议中的RTS和CTS帧
① 在图中,
● 站B、站C、站E在站A 的无线信号覆盖的范围内。而站D不在其内。
● 站A、站E、站D在站B 的无线信号覆盖的范围内,但站C不在其内。
② 如果站A要向站B发送数据,那么,站A在发送数据帧之前,要先向站B发送一个请求发送帧RTS(Request To Send)。在RTS帧中已说明将要发送的数据帧的长度。站B收到RTS帧后就向站A回应一个允许发送帧CTS(Clear To Send)。在CTS帧中也附上A欲发送的数据帧的长度(从RTS帧中将此数据复制到CTS帧中)。站A收到CTS帧后就可发送其数据帧了。现在讨论在A和B两个站附近的一些站将做出什么反应。
● 对于站C,站C处于站A的无线传输范围内,但不在站B的无线传输范围内。因此站C能够收听到站A发送的RTS帧,但经过一小段时间后,站C收听不到站B发送的CTS帧。这样,在站A向站B发送数据的同时,站C也可以发送自己的数据而不会干扰站B接收数据(注意:站C收听不到站B的信号表明,站B也收听不到站C的信号)。
● 对于站D,站D收听不到站A发送的RTS帧,但能收听到站B发送的CTS帧。因此,站D在收到站B发送的CTS帧后,应在站B随后接收数据帧的时间内关闭数据发送操作,以避免干扰站B接收自A站发来的数据。
● 对于站E,它能收到RTS帧和CTS帧,因此,站E在站A发送数据帧的整个过程中不能发送数据。
③ 虽然使用RTS和CTS帧会使整个网络的效率有所下降。但这两种控制帧都很短,它们的长度分别为20和14字节。而数据帧则最长可达2346字节,相比之下的开销并不算大。相反,若不使用这种控制帧,则一旦发生冲突而导致数据帧重发,则浪费的时间就更大。虽然如此,但协议还是设有三种情况供用户选择:
● 使用RTS和CTS帧;
● 当数据帧的长度超过某一数值时才使用RTS和CTS帧;
● 不使用RTS和CTS帧。
④ 尽管协议经过了精心设计,但冲突仍然会发生。
例如:站B和站C同时向站A发送RTS帧。这两个RTS帧发生冲突后,使得站A收不到正确的RTS帧因而站A就不会发送后续的CTS帧。这时,站B和站C像以太网发生冲突那样,各自随机地推迟一段时间后重新发送其RTS帧。推迟时间的算法也是使用二进制指数退避。
⑤ 为了尽量减少冲突,802.11标准设计了独特的MAC子层。
热心网友 时间:2023-10-21 21:55
冲突避免的载波侦听多路访问,发送包的同时不能检测到信道上有无冲突,只能尽量‘避免’;