首页 > 解决方案 > 当一个数据包在linux网络堆栈中携带时,使用谁的时间片?

问题描述

从手册页来看,当调用 sendto() 以阻塞模式发送数据包时,sendto() 将在数据包从用户空间复制到内核空间(套接字的发送缓冲区)后返回。然后用户空间应用程序继续运行。每个线程都有自己的时间片,如果用户空间应用程序继续运行,必须有另一个内核线程帮助将数据包从套接字的发送缓冲区传送到网络适配器,对吧?但是如果有很多用户app发送数据包,用多少个kthread来承载pkt?用kthread来承载pkt看起来不合理,但是sendto()返回后的故事,如果不是这样,我就看不懂了。

标签: linuxsystem-calls

解决方案


推荐阅读