内核学习笔记-网络篇

本文详细探讨了Linux内核中的网络处理机制,包括NAPI如何在数据量大小之间平衡中断和轮询,IRQ(Interrupt ReQuest)的中断请求功能,以及TSO和GRO如何减少CPU负担。此外,还解析了tcp收包过程和用户recvfrom阻塞过程中涉及的进程上下文切换开销。通过对网络包处理CPU开销的汇总分析,展示了内核在网络IO密集型应用中的性能影响。
摘要由CSDN通过智能技术生成

NAPI机制

NAPI(NewAPI)是一种新的linux网卡数据处理API,综合了中断+轮询

  • 中断

    • 好处:响应及时

    • 坏处:数据量大时,中断次数过多,占用CPU时间

  • 轮训

    • 好处:因为是定时轮训,所以处理大数据量时,也只会占用固定次数的CPU时间

    • 坏处:数据量小时,也会占用CPU时间

NAPI是二者的结合,数据量低时使用中断,数据量高时使用轮训。

平常使用中断,如果有数据到达,则中断函数会关闭中断状态,开始轮询处理数据,直到没有新数据到达才会打开中断状态

参考文章:

IRQ

Interrupt ReQuest——请求中断

TSO

TCP Segmentation Offload,在发送包时,利用网卡对TCP数据报进行分片,减轻CPU压力

GRO

Generic receive offload,是一种网卡特性,在接收包时,可以

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值