记录一下linux数据包从网卡进入协议栈的过程,不涉及驱动,不涉及其他层的协议处理. 内核是如何知道网卡收到数据的,这就涉及到网卡和内核的交互方式: 轮询(poll):内核周期性的检查网卡,查看是否收到数据.优点:数据包非常多的时候,这种处理方法会非常快速有效.缺点:数据包少的时候会CPU总是轮询却没有收到数据包,造成CPU资源的浪费.这种方法很少使用. 中断(interrupt):网卡收到数据就给内核发送硬件中断打断内核的正常运行,让内核来处理数据包.优点:在数据包少的时候CPU能及时中断其他…