我一直在使用 C 语言中的 Raw Berkeley Sockets,它允许程序员访问 Internet 协议套件的第 2 层(IP 标头)。我想知道原始套接字如何处理第 1 层(链路层)上的传输,特别是关于无线局域网。
例如,套接字如何知道将数据包发送到哪个网络接口(eth0 或 wlan0)?
如果我在无线路由器后面,是否仍应使用我的 LAN 地址 (192.168.1.1) 或路由器的 Internet 地址 (74.125.226.68) 填写我的 IP 标头的 IP 源地址?
如果我确实用我的 LAN 地址 (192.168.1.1) 填充 IP 源地址,IP 标头在通过路由器时是否会更改,还是保持不变,以便数据包的接收端尝试发送响应其网络上的本地主机?
我将不胜感激这方面的任何见解。