Skip to the content.

Kernel_network_stack

21 Apr 2025 - joy717

什么是内核网络栈

即常见的OSI的7层网络栈.

网络包(packet)经过这些网络栈,进入/离开 linux.

有一堆的协议实现程序,放在内核里面。比如TCP、UDP等协议。

当一个程序发起一个tcp包,会通过socket API与内核里面的TCP栈交互,内核里的TCP栈就会将传递过来的数据,封装成TCP包,增加tcp的header,分包等动作,之后转交给其他的网络层,比如进一步处理成底层的包.

同时实现了TCP协议里面的“可靠性”相关的功能,比如按顺序传包(收包),

参考

网络包(packet)在linux内核网络栈中的工作流

https://www.net.in.tum.de/fileadmin/TUM/NET/NET-2024-04-1/NET-2024-04-1_16.pdf