如果两个设备同时发射相同频率的wifi信号并同时到达天线,那么数据如何不重叠?


15

我的意思是,我知道每个数据包都发送了一个MAC地址,但是流传输呢?

如果当路由器正在接收一个数据包,而另一设备的数据包到达时会发生什么呢?

路由器如何知道与天线碰撞的光子是第一包还是第二包的一部分?

还是光速如此之快,以至于几乎永远不会发生这种情况,而只是将这些数据包报告为已损坏并再次发送?


4
那就是所谓的碰撞。两个数据包都丢失。
vonbrand

Answers:


20

在无线网络中,实际上只有一个设备同时在“讲话”。对方设备会监听并等待该通道上的广播安静后再讲话。这种技术称为具有冲突避免功能的载波侦听多路访问(CSMA / CA)

RTS / CTS交换通过提供一种方式让一个节点向其他节点说“嘿,我要聊这么久,等那么久”,从而帮助所有节点有效地保持同步。

@Petr Abdulin是正确的,但我认为所有Wifi网络都使用CSMA / CA。旧的10BaseT非交换有线网络依赖于带有冲突检测(CSMA / CD)的载波侦听多路访问。所有节点都连接到交换机的网络上不会发生冲突。


4
大部分是正确的,除了冲突可能与CSMA / CA发生。考虑三个设备A,B和C,其中A和C彼此相距太远,无法接收彼此的数据,但是B在它们之间并且可以从任何一个接收。A和C无法检测到冲突(就它们而言,没有冲突),但是B不能从其中任何一个接收数据,除非碰巧是无声的。
2013年

@GeorgeSkoptsov-当然,仍然有可能发生冲突,如果不可能发生冲突,则一切都将是无线的,因为不会丢失任何数据包。
Ramhound13年

5
@Ramhound-冲突不是造成数据包丢失的主要原因,而数据包丢失也不是并非所有内容都是无线的主要原因。
George Skoptsov

8

如果发生两个传输相互干扰(冲突)的情况,则这两个传输都将被破坏,并且在随机延迟后将重新传输它们,从而降低了重复发生冲突的风险。


1

如果当路由器正在接收一个数据包,而另一设备的数据包到达时会发生什么呢?

直接后果是某些重叠位被破坏。通常,太多的比特被破坏,以致接收方发现帧校验序列不匹配,接收方只是将不良数据丢弃,否则就好像没有听到任何一个数据包一样。

后来,更高级别的协议最终会注意到尚未确认(确认)数据包,然后重新发送该数据包。

但是,WiFi标准包括许多防止此类冲突的方法,包括:

  • 大多数版本的WiFi使用COFDM或扩频+额外的纠错位的其他组合。如果幸运的话,只有很少的几位被翻转了,那么所有这些位都可以在接收器处进行校正,并且其中一个数据包可以毫无错误地通过。

  • 正如LawrenceC已经指出的那样,大多数版本的WiFi使用运营商感知的多路访问避免冲突(CSMA / CA):无线接入点协调与之通信的所有便携式计算机,因此(通常)一次仅一个设备在传输,因此(通常)没有碰撞。(有时,您仍然会与其他笔记本电脑尝试与其他无线接入点进行通信的数据包发生冲突,或者受到其他各种设备的干扰)。

流媒体呢?

那呢

当笔记本电脑正在播放流音频(或流视频;对于1080p视频流,大约为5 Mbit / s)时,发送方将其作为一系列小数据包发送。现代通信硬件速度很快(802.11a的传输速度超过20 Mbit / s,而最新的Wi-Fi标准甚至更快),因此,一个笔记本电脑的数据包与下一个笔记本电脑的数据包之间存在(相对)较长的间隔笔记本电脑。

在每个数据包之间,无线接入点有足够的时间将数据包发送到其他几台笔记本电脑,侦听那些确认前一次传输并请求下一个数据流的笔记本电脑中的偶然数据包,甚至偶尔重新发送数据包。当有碰撞或其他错误时。

如果所有这些便携式计算机都在同一个接入点进行通话,则该接入点会协调传输,因此一次仅传输一个设备。

如果其中一些便携式计算机正在与一个接入点进行通信,而其他便携式计算机正在与其他(不协调的)接入点进行通信,并且所有这些设备都位于足够近的位置以至于它们可以很容易地相互窃听,那么就会发生频繁的冲突。

发生冲突的所有数据包都将重新发送。通常,重新传输的数据包最终会在很长时间之前就通过,因此甚至没有人注意到这是一个问题。因此,(通常)每个人都会得到自己“连续”专用流的错觉。


提醒我不要写无线路由器固件,这听起来非常痛苦。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.