- 数据帧到达 NIC。
- NIC Controller 中的 DMA Controller 模块,主动将数据帧写入 RAM。
- NIC 给 CPU 的相关引脚上触发一个电压变化,以此触发 CPU 的硬中断,通知 CPU 执行硬中断处理程序。
- CPU 的硬中断处理函数的作用就是调用 NIC Controller Registered 的中断处理函数,该函数的作用就是发出软中断请求,然后释放 CPU。
- ksoftirqd 内核线程在监测到 NIC 的软中断请求后,会通过调用 poll() I/O 函数,开始轮询收包。poll() I/O 函数是多路复用 I/O 函数,所以收包期间不需要 CPU 的参与。
- 数据 Ready 之后,数据帧会被保存为 SKB 实例,然后交由各级协议栈处理。例如:对于 UDP 报文段而言,就会被放到用户 Socket 的接收
Linux Kernel TCP/IP Stack — L1 Layer — NIC Controller — 收包处理流程
原创云物互联 ©著作权
文章标签 SDN/NFV 网络技术专栏 Linux 文章分类 Linux 系统/运维
Linux Kernel TCP/IP Stack — L1 Layer — NIC Controller — 收包处理流程
https://blog.51cto.com/u_15301988/3075738
举报文章
请选择举报类型
补充说明
0/200
上传截图
格式支持JPEG/PNG/JPG,图片不超过1.9M

相关文章
-
TCP和UDP的区别
TCP与UDP基本区别 1.基于连接与无连接 2.TCP要求系统资源较多,UDP较少;3.UDP程序结构
计算机网络 数据 ip地址 无连接 -
什么是领域驱动
领域模型是通过识别领域对象与行为来连接现实主体与操作之间的映射关系。
业务逻辑 持久化 数据 -
Java常用问题排查工具
Java 常用问题排查工具
java 系统启动 远程调试 -
服务器并发
1.单线程/进程在 TCP 通信过程中,服务器端启动之后可以同时和多个客户端建立连接,并进行网络通ude<string.h>#include<arp
udp tcp/ip 客户端 子进程 父进程 -
瞧瞧人家用SpringBoot写的后端API接口,那叫一个优雅
日常工作中,我们开发接口时,一般都会涉及到参数校验、异常处理、封装结果返回等处理。如果每个后端开发在参数校验、异常处理等都是各写各的
spring boot java postman 异常处理 用户信息