为什么如果我通过 Wi-Fi 连接并向同一 Wi-Fi 中的另一台设备发送数据包,链路层中的目标 MAC 地址不是 AP 的?

All*_*exj 8 networking wireless-networking ethernet wireless-access-point wireshark

IEEE 802.11协议中,链路帧中,第二个地址是发送方MAC地址,第一个地址是接收方MAC地址,如果发送方是站点,则为AP地址;如果发送方是站点,则为目的站点美联社。

因此,就我而言,由于我从我的角度使用Wireshark嗅探数据包,因此如果我发送ICMP,我应该将我的 MAC 地址视为第二个地址,将 AP MAC 地址视为第一个地址。

但:

在此输入图像描述

源地址是我的机器。目标地址是我的手机,这是我向其发送 ICMP 数据包的设备。响应数据包中的情况相反。

另外,链路层显示为“以太网”,但我是通过 Wi-Fi 连接的,所以它应该显示 IEEE 802.11,但我在这里看到Wi-Fi 接口通常将自己呈现为以太网接口,因此它们呈现以太网转换的数据包,使操作系统可以轻松管理它们,或者类似的事情......

use*_*686 19

您会看到操作系统(或 Wi-Fi 适配器的固件;我不太确定是哪一个)提供的模拟以太网标头

\n

真正的 802.11 标头故意对您隐藏,并且链接类型始终显示“以太网”\xe2\x80\x93,这不是操作系统试图使管理更简单;这是因为规范是这么说的。根据 802.11 规范,Wi-Fi 接口应该向上层提供一个兼容 802.3 的链路层,以允许其直接桥接到实际的以太网,即使它们在底层使用了更复杂的东西。(我认为这与使用其他“XYZ 以太网”技术(例如 HomePlug 或 ADSL)的“媒体转换器”没有太大区别。)

\n

要查看正在发送/接收的真实 802.11 标头,您必须为 Wireshark 启用“监视模式”。其中包含三个MAC 地址 \xe2\x80\x93 发送方、接收方和 AP。

\n

(假设该站是发送方或接收方。但是,无线桥接存在一种“4 地址”模式,即WDS,其中源、目标、AP站 MAC 地址都在同一帧中。 )

\n
\n

在IEEE 802.11协议中,链路帧中,第二个地址是发送方MAC地址,第一个地址是接收方MAC地址,如果发送方是站点,则为AP地址;如果发送方是站点,则为目的站点美联社。

\n
\n

不,不完全是这样。

\n

Wi-Fi 接入点是桥梁,与有线交换机一样,它们在链路层是不可见的。如果发送者是一个站,则目的地不是AP \xe2\x80\x93,而是实际的目的地主机的 MAC 地址,因为否则网桥如何知道将数据包传递到哪里?它不查看 IP 标头;而是查看 IP 标头。这就是路由器的作用。

\n

(当然,除非目标是与 AP 相同的设备的路由器,在这种情况下,目标 MAC 地址通常与 AP 的BSSID非常相似,有时甚至相同或仅不同在一位中。这可能是通过家庭网关 \xe2\x80\x93 访问互联网时的常见情况,但不要从中得出假设。)

\n

真正的 802.11 标头确实也携带 AP 的 MAC 地址,但位于与原始发送者和接收者分开的第三个字段中。如果启用“监视模式”来捕获 802.11 帧,您将看到来自站点的帧有两个目标 MAC 地址。

\n

(不过不要被 Wireshark 的解析器混淆,它在两个不同的名称 \xe2\x80\x93 下两次显示相同的字段,其中一些实际上对应于相同的字节。)

\n

  • *就上层而言,它们仍然是不可见的,因为“更高”层(例如 IP)不会专门将帧寻址到 AP(记住,它们甚至看不到第三个字段,也看不到其余的字段)。 802.11 标头 – 它们只处理模拟的以太网链路),第三个地址仍然限制在链路层的下半部分,它不会显示在邻居表中,它不会显示在 ARP 响应中,您的 TCP/IP 堆栈只需将目标主机指定为“目标 MAC”。 (2认同)
  • 当然可以,但这根本不是重点。一般来说,它是否对机器可见并不重要。我想说的是,它在它提供的链路层上是不可见的;*只要它实现了这一点,那么底层是如何完成的并不重要。 (我认为图表通常将其显示为两半,“上层 L2”是模拟以太网,“下层 L2”是原始 802.11 链路。) (2认同)