当前位置: 首页 > article >正文

linux内核系列---网络

分层网络

OSI七层模型和TCP/IP五层模型

在这里插入图片描述

这是理论上的,后续内容我们使用TCP/IP五层模型进行说明。

linux网络子系统

再理论联系下实际,说明linux实现的网络子系统的分层。

在这里插入图片描述

解释下从linux网络子系统简化到TCP/IP五层模型中去掉的两个内容。

邻居子系统:主要是为了将上层协议(如IP)转成链路层识别的MAC。过程中可能会发起ARP请求,但需要区分ARP协议和ARP请求不是一个概念。

网络设备子系统:为下层不同的驱动程序提供统一的虚拟层,提供上层调用。

这两部分属于理论转实现时的过渡缓冲,不在今天主要的知识点范围,因此先简化去掉。

讲五层模型过于抽象,因此具象化一点,后文直接以IP协议为基础,对linux下的网络子系统进行说明。

网卡对数据包的处理

因为接收数据和发送数据的关键知识点不同,下面分别讲。

网络收包过程

在这里插入图片描述

先说下NPAI的概念

参考:https://www.bytezonex.com/archives/5wIYFYBB.html

在 Linux 内核中,处理网络数据包主要有两种方式:轮询和中断。

轮询: 内核持续检查网络设备是否有数据包到达,缺点是会浪费大量系统资源,尤其是当网络流量低时。

中断: 当网络设备收到数据包时,向内核发送一个中断信号,内核接收到中断后会处理数据包,这种方式会占用较少系统资源,但对于网络流量高时,持续造成硬中断和上下文切换,极端情况下甚至造成cpu一直忙于处理网络数据。

为了解决轮询和中断的不足,Linux 内核引入了 NAPI 机制。NAPI将中断拆分成两部分,上半部分的硬中断和下半部分的软中断。硬中断短而快,只在软中断列表做下登记(数据到了),就释放cpu。具体数据的处理部分(耗时任务)则放到软中断中异步处理,这样


http://www.kler.cn/a/457116.html

相关文章:

  • 大数据技术(六)—— Hbase集群安装
  • 【笔记】增值税计算笔记
  • SQL如何添加数据?|SQL添加数据示例
  • 【MySQL】踩坑笔记——保存带有换行符等特殊字符的数据,需要进行转义保存
  • Linux硬盘分区 --- fdisk命令MBR分区、添加硬盘、lsblk命令
  • 2025常见的软件测试面试题
  • Java圣诞树
  • 数据结构:二叉树部分接口(链式)
  • 力扣算法--求两数之和等于目标数
  • MySQL的TIMESTAMP类型字段非空和默认值属性的影响
  • 用科技的方法能否实现真正的智能
  • DAY3 QT简易登陆界面优化
  • blender中合并的模型,在threejs中显示多个mesh;blender多材质烘培成一个材质
  • Debian 12 安装配置 fail2ban 保护 SSH 访问
  • 数据安全中间件的好处
  • OpenCV-Python实战(6)——图相运算
  • adb无线连接手机后scrcpy连接报错ERROR: Could not find any ADB device
  • Debian-linux运维-docker安装和配置
  • HarmonyOS NEXT 实战之元服务:静态案例效果---我的订阅每日咨询
  • 打造智能化恶意软件检测桌面系统:从数据分析到一键报告生成
  • 外网访问 Docker 容器的可视化管理工具 DockerUI
  • 郴州年夜饭大数据分析:Python爬虫的美味之旅
  • 大模型的实践应用33-关于大模型中的Qwen2与Llama3具体架构的差异全解析
  • 基于 Ragflow 搭建知识库-初步实践
  • 贪心算法解决单调递增数字问题
  • Vivado常用IP例化1