我试图了解网络堆栈 (TCP/IP) 如何处理发送到本地主机的 UDP 消息。我假设它沿着堆栈向下到达 IP 层,如果它看到 localhost,那么它会将其发送回堆栈?
我还想了解网络堆栈(TCP/IP)如何处理发往您自己的 NIC 的 UDP 消息?如果我的网卡分配为 192.168.0.1 并且源地址和目标地址相同,会发生什么情况?它是否离开了硬件,它到底在堆栈中走多远?
任何发生这些事情的 Linux 源代码都将受到极大的赞赏!
答案1
它没有到达硬件。在前一种情况下,它在环回接口 linux/drivers/net/loopback.c 中处理。在后一种情况下,它会在支持您的 NIC 的任何驱动程序中进行处理。您可以使用“netstat -i”查看与每个接口相关的统计信息以及 netcat 等内容以生成往返于这些接口的流量。