数据包从应用程序到达->...网络->(根据 IP 配置在此处添加 IP 封装)-> 进入数据链路层此处完成帧并为 LAN 交换添加 SourceMac 和 Dest Mac。是否每次将SourceMac从HostNIC中提取并封装到数据包中,然后再发送接口?或者它读取了一些配置文件?
我假设 /etc/network/interfaces 文件为空并且没有任何 hw-addr 地址来更改 MAC [ifconfig eth0 hw ether (Macwe want to change AA:BB:CC....) 命令]。它在哪里获得自己的 MAC?
它是否每次都说“ifconfig eth0 |grep HWaddr”并通过系统调用获取自己的 MAC 或类似内容时进行查找?因为这将增加每次查询 NIC 芯片组的巨大开销。还是它维护一个从中读取的文件并简单地封装来自上层的数据包并从线路发送出去?