我找了一个下午的udp发包问题。据说sendmsg系统调用首先会到达inet_sendmsg,然后是udp_sendmsg,然后是udp_push_pending_frames,在这个函数中,UDP头是在ip_push_pending_frames之前填充的。然而,根据http://vger.kernel.org/~davem/skb_data.html ,UDP层应该有一个纯粹的用户数据作为skb中的数据,并且它skb_push为UDP头腾出空间。我只是找不到它。
有人可以提供一些线索吗?
谢谢!
最佳答案
您会在内核源代码的 include/linux/skbuff.h
中找到 skb_push
- 它是一个内联函数,因此它位于头文件中而不是普通的源文件中。
关于linux - 内核中 udp header 的 skb_push 在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13687507/