我正在尝试研究和理解Linux tcp / ip堆栈的操作,特别是'ping'如何发送数据包并接收它们。 Ping在AF_INET系列中创建原始套接字,因此我将printk放在net / ipv4 / af_inet.c的inet_sendmsg()中以打印套接字协议名称(RAW,UDP等)以及协议特定的sendmsg函数的地址,该函数正确显示为来自net / ipv4 / raw.c的raw_sendmsg()
现在,我正在发送一个数据包并观察我正在两次获得printk格式的inet_sendmsg()。这让我很困惑 - 它是正常的(与中断等有什么关系?)或者有什么东西坏了内核?
平台 - ARM5te,内核2.6.31.8
期待您的回音!
标记