linux - 内核中 udp header 的 skb_push 在哪里?

标签 linux udp kernel

我找了一个下午的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/

相关文章:

opencl - 设置(标量)内核参数 OpenCL 后值错误

linux - telnet 端口转发是如何工作的?

linux - 文件的标准错误;但没有缓冲

c# - 关闭wire-shark后无法接收UDP包

c++ - 在 Windows 的 C++ 中使用 recvfrom() 时出现 WSAEFAULT 错误

linux - 用户模式和内核驱动程序通信

c - 如何编写rt-linux的内核模式?

linux - 提取新代码后创建本地目录以编辑代码

linux - 如何判断我的标准输入是来自管道输入进程的标准输出还是标准错误

java - Android 通过UDP套接字发送对象