我最近开始学习OSI模型,网络和东西。
因为我喜欢在C中编码,所以我想发送自己的以太网帧。
我现在开始工作了;但是,我仍然不确定一件事:
从机器发送以太网帧时 一个 加工 乙 (假设两台机器在同一网络中),我必须指定哪个MAC地址 目的地 帧的MAC地址?
我尝试了路由器的MAC地址和机器的MAC地址 乙 ,两种方式都有效。获取机器的MAC地址 乙 ,我只是提出了一个ARP请求。
但是,正确的方法是什么?
我在机器上用Wireshark监控流量 一个 与 tcpdump的 在机器上 乙 。这是机器上的输出 乙 ( e0:d5:5e:c6:52:9a
是机器的MAC地址 乙 ):
指定机器时 乙 的MAC地址作为目的地址( a0:ce:c8:10:75:8c
是机器的NIC MAC 一个 ):
18:42:46.152800 a0:ce:c8:10:75:8c > e0:d5:5e:c6:52:9a, ethertype IPv4 (0x0800), length 64: 192.168.178.21.23455 > 192.168.178.27.23456: UDP, length 5
将路由器的MAC地址指定为目标地址时( c8:0e:14:fd:f3:23
是路由器的NIC MAC):
18:45:04.735375 c8:0e:14:fd:f3:23 > e0:d5:5e:c6:52:9a, ethertype IPv4 (0x0800), length 60: 192.168.178.21.23455 > 192.168.178.27.23456: UDP, length 5
这个结果表明路由器重写了 资源 MAC地址并可能使用其缓存来确定目标IP的正确目标MAC地址。
路由器如何处理机器MAC地址的帧 乙 指定?
两种方式之间有区别吗?
有一种首选/正确的方法吗?