面试真题

操作系统 · 中等 · 腾讯

Linux系统是如何收发网络数据包的?

中等 操作系统 🎤 腾讯
参考答案
结论:Linux收发网络包依赖内核协议栈,通过网卡驱动、中断、软中断及socket队列实现。收包:网卡DMA写帧到内存ring buffer,硬中断通知CPU,软中断逐层解析(链路层->IP->传输层)存入socket队列,用户态recv读取;发包:用户态send经协议栈封装入网卡队列,DMA发出。核心含DMA、sk_buff、中断与软中断切换,优化有NAPI、零拷贝。
题目整理自公开面经,答案由校招宝自研生成,仅供参考