Linux 网络调优之重新认识 Linux 本机网络
写在前面
- 博文涉及跨主机网络IO认知以及本机网络IO分析
- 没有调优相关的Demo
- 理解不足小伙伴帮忙指正 😃,生活加油
每个人都想成为生活中的重要的人物。事实是,不论他们多么重要,总会出现更重要的人,人们很计较这件事。他们没有意识到,别人是否看重你,根本不重要。重要的是自信,一旦有了自信,人就会赢得一切。—塞缪尔·克罗瑟斯
一、跨主机网络IO认知
在传统的跨主机网络IO中,本机发包和收包的流程是这样的:
发包流程
发包
:
- 用户态应用程序(用户态程序发生数据,触发send 系统调用)
- 内核态网络协议栈(拷贝数据到内核态,经过TCP/IP 协议栈处理,TCP封包,IP路由选择获取吓一跳地址,邻居子系统ARP获取MAC地址,网络设备子系统调用网卡驱动进⼊RingBuffer)
- 内核态网络设备驱动(内核态调用驱动对应的函数发送数据包,CPU时间片内没有发送完触发软中断)
- 网卡(数据发送完触发硬中断,清空RingBuffer缓冲区)
1. 用户态应用程序├─ 核心操作:调用