【发布时间】:2015-02-03 10:28:51
【问题描述】:
如果两个设备A和B通过接入点C连接到同一个wifi,并且如果A ping B,这些数据包是直接被B拾取还是被C捕获然后重新传输以便B可以捕获它们?
使用wireshark抓包显示ping包中的mac地址是A和B的[不确定C是否应该有一个],因此如果数据包通过C,那么C类似于集线器.
非常感谢您提供涵盖此方面的 802.11[?] 入门指南的链接。
【问题讨论】:
如果两个设备A和B通过接入点C连接到同一个wifi,并且如果A ping B,这些数据包是直接被B拾取还是被C捕获然后重新传输以便B可以捕获它们?
使用wireshark抓包显示ping包中的mac地址是A和B的[不确定C是否应该有一个],因此如果数据包通过C,那么C类似于集线器.
非常感谢您提供涵盖此方面的 802.11[?] 入门指南的链接。
【问题讨论】:
在标准(即非 AdHoc)WiFi 网络中,答案是肯定的,WiFi 站之间发送的数据包将通过接入点。正如 allen-smithee 所提到的,如果您将 AP 视为一个交换机,并且每个站点之间的“关联”是一根电缆,那么这个类比可能更有意义。
测试这一点的一个好方法是查看两个客户端 A 和 B,它们连接到接入点 C,但相距很远,因此彼此听不到,是否可以相互发送数据包。
注意:如果客户端 A 和 B 靠得足够近,可以听到对方的声音,他们就可以直接通信,但实现这样的通信会带来很多复杂性。
Matthew Gast 的书802.11 Wireless Networks: The Definitive Guide 是一本很棒的 WiFi 入门书(请参阅“副本”链接)。特别是第 4 章。此外,表 4-2 总结了 4 个地址字段,以及 WiFi 中不同功能的“地址”。
【讨论】:
一个 802.11 帧最多可以有 4 个 MAC 地址 - 发送方、目标以及发送和接收无线电点(AP)的 MAC。如果您只看到发件人和目的地,那么您可能看到的是'fake Ethernet capture'。
“Hub”可能不再是描述 AP 的正确术语。无线网络基本上是一种单一媒介,如集线器网络,在客户端之间共享带宽。但是MIMO 通过有效地分层更多的媒体来增加带宽。交换式以太网实际上只是每个客户端的一个媒介(从交换机到每个客户端的一条线),因此如果 MIMO 无线网络有足够的层并且 AP 的带宽比任何一个客户端都多,那么它在某些方面类似于交换网络。
有关 802.11 和帧的一般描述,请参阅this link。 有关 802.11 中 MAC 地址使用情况的有趣信息,请参阅this link。
AP 为将数据包从 A 重传到 B 所做的工作量是一个有趣的问题。我相信大多数 AP 会在数据层检查数据包,然后构造一个新数据包以传输到其他客户端。最重要的原因是提供某种程度的客户端间保护。另一件需要考虑的事情是,如果 AP 具有 WPA/WPA2 Enterprise 安全性,其中使用了每个客户端的加密,那么 AP 必须解密并重新加密数据包。
【讨论】:
简短的回答是是。在您的场景(非 AdHOC 连接)中,两个设备都必须通过接入点连接。 WiFi 是将数据(0 和 1)转换为无线电信号的物理层。所以物理上数据包必须通过接入点否则无法与任何其他设备通信。
我认为您在 Wireshark 上看不到任何信息的原因是因为您正在查看不会更改的 第 3 层(IP 地址) .如果您仔细查看 第 2 层(链接层),它每跳都发生变化,您会发现最后一跳的 MAC address ,在这种情况下是您的路由器。
注意:每个带有路由器的网络通常都会发生这种情况。有一种称为透明路由的技术可以隐藏主机的存在,通常是出于安全原因(例如,防火墙通常执行透明路由)。
这里有一些进一步的阅读:
【讨论】: