来自“写入”的tcp数据的数据路径(行进)系统调用深入到 I/O 寄存器编程
Linux 中的 tcp 数据路径是否有一个很好的概述(2.6,如果路径实际上不同,则不是 2.4)? tcp/ip 堆栈处理的不同阶段的数据包位于何处?
数据包如何打包到tcp段,然后是ip数据包。它是如何传输到网卡的? (具有一系列 I/O 寄存器 write 和 DMA?)它是在“write”系统调用处理程序(具有一些深层调用堆栈)中传输到网卡还是在其他时刻传输?
Is there a good overview of tcp data path in Linux (2.6, not 2.4 if the path actually differ)? Where is a packet on different stages of tcp/ip stack handling?
How packet is packed to tcp segment, then ip packet. How it is transmitted to network card? (with series of I/O regs write and DMA?) Is it transmitted to network card in the "write" syscall handler (with some deep callstack) or is it transmitted at some other moment?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
http://www.linuxfoundation.org/collaborate/workgroups/networking/kernel_flow
我想这就是你想要的。它显示了从 sendmsg() 到 dev_hard_start_xmit() 的整个过程,这是网络堆栈将数据包传递到 NIC 驱动程序的地方。
http://www.linuxfoundation.org/collaborate/workgroups/networking/kernel_flow
I think this is what you want. It shows the process all the way from sendmsg() to dev_hard_start_xmit(), which is where the net stack passes the packet off to the NIC driver.
试试这个: Linux TCP /IP 堆栈:嵌入式系统网络
Try this: The Linux TCP/IP Stack: Networking for Embedded Systems