Linux内核网络

文章目录

  • 前言
  • 网络协议栈
        • 图解
        • 功能
  • 发送Linux内核网络数据包
        • 图解
        • 流程
  • 接收Linux内核网络数据包
        • 图解
        • 流程
  • 最后

前言

你好,我是醉墨居士,因为Linux内核涉及的内容极多,我们初学者如果一上来就开始深挖细节,很有可能会在Linux内核代码的茫茫大海之中迷失自我。本篇博客希望可以帮助大家先有个全局的视野,剩余的细节内容,根据沿着全局的脉络去学习,可能会有意想不到的效果🫠

网络协议栈

图解

![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/00c1ab74129f491bb39a893c339fe2fc.png

功能

应用层负责为上层应用程序提供用户接口
传输层负责端到端通信,数据的分割与重组,多路复用与解复用
网络层负责路由选择,数据的分组与重组,转发分组报文
链路层负责错误检测与纠正,帧同步,处理物理地址
物理层负责在网络中传输原始的比特流

发送Linux内核网络数据包

图解

在这里插入图片描述

流程

1.应用协议栈处理:对用户数据进行封装成应用数据
2.CPU Copy:CPU参与将用户空间的数据拷贝到内核的套接字缓冲区中
3.协议栈处理:将套接字缓冲区中的应用数据送给Linux内核网络协议栈进行封包后放入sk_buff
4.建立DMA映射:表示sk_buff中的数据已经装载完毕,设置sk_buff的地址和长度等
5.DMA Copy:通过DMA方式将sk_buff中的数据通过Rx Ring buffer拷贝到网卡的Rx FIFO
6.发送数据:通过有线或者无线的方式将数据发送到网络中

接收Linux内核网络数据包

图解

在这里插入图片描述

流程

1.接收数据:通过有线或者无线的方式接收网络中的数据
2.DMA Copy:通过DMA方式将网卡的Tx FIFO中的数据通过Tx Ring Buffer拷贝到sk_buff
3.硬件中断IRQ:跳转到对应IRQ的中断服务例程(ISR)来处理该事件
4.软中断:驱动程序通过软中断执行对应的软中断处理程序
5.协议栈处理:将sk_buff中的数据通过Linux内核网络协议栈进行拆包放入套接字缓冲区
6.CPU Copy:CPU参与将内核的套接字缓冲区拷贝到用户空间
7.应用协议栈处理:对应用数据解封装成用户数据

最后

我是醉墨居士,这篇博客我们大概梳理了一下Linux网络传输的总体流程😎
如果有问题可以及时通知我,私聊,评论都行哈🤗

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/410450.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

MySQL - 事务日志

目录 1. redo日志 1.1 为什么需要REDO日志 1.2 REDO日志的好处、特点 1. 好处 2. 特点 1.3 redo的组成 1.4 redo的整体流程 1.5 redo log的刷盘策略 1.6 不同刷盘策略演示 1. 流程图 ​编辑2. 举例 1.7 写入redo log buffer 过程 1.8 redo log file 1. 相关参数…

[云原生] 二进制安装K8S(中)部署网络插件和DNS

书接上文,我们继续部署剩余的插件 一、K8s的CNI网络插件模式 2.1 k8s的三种网络模式 K8S 中 Pod 网络通信: (1)Pod 内容器与容器之间的通信 在同一个 Pod 内的容器(Pod 内的容器是不会跨宿主机的)共享…

批量解决opencv cv2.imread读取32位抠图png图像后,出现隐藏背景无法去除的问题

一、问题展示 1.原始png含蒙版抠图信息:位深度为32位,4通道图像信息,含蒙版背景信息 2.使用opencv读取保存后图像信息:位深度为24位,3通道图像信息,显示了扣除的背景 二、问题分析 1.用cv模块无法识别深度…

Stable Diffusion 绘画入门教程(webui)-ControlNet(线稿约束)

上篇文章介绍了openpose,本篇文章介绍下线稿约束,关于线稿约束有好几个处理器都属于此类型,但是有一些区别。 包含: 1、Canny(硬边缘):识别线条比较多比较细,一般用于更大程度得还原照片 2、ML…

C++ : string类

目录 介绍: string类的七种构造函数: string类的第三个构造函数 string类的第四个构造函数 string类的第五个构造函数 string类的第六个构造函数 string类常用的构造 string类对象的访问遍历操作 第一种遍历方式: 第二种遍历方…

使用Node.js开发RESTful API

在当今信息时代,不管是企业级应用还是个人项目,都离不开RESTful API的使用。RESTful API 是现代 web 应用的基石,通过它,我们可以实现前后端的高效沟通和数据传输。而在开发 RESTful API 的过程中,Node.js 的强大功能和…

AR应用的开发流程

增强现实(Augmented Reality,AR)是一种技术,它将虚拟信息叠加在真实世界中,通过计算机生成的视觉、听觉、触觉等感官反馈,将虚拟元素与现实世界进行交互。这种技术使得用户可以与现实世界中的虚拟对象进行互…

vue插件——vue-print-nb 实现打印功能

之前写过好多关于打印的功能,通过windowprint组合键来实现打印。 今天遇到一个需求,就是使用vue插件来实现打印功能。 最终效果图如下: 下面介绍解决步骤: 解决步骤1:安装vue-print-nb插件——npm install vue-p…

flutter开发实战-手势Gesture与ListView滚动竞技场的可滑动关闭组件

flutter开发实战-手势Gesture与ListView滚动竞技场的可滑动关闭组件 最近看到了一个插件,实现一个可滑动关闭组件。滑动关闭组件即手指向下滑动,组件随手指移动,当移动一定位置时候,手指抬起后组件滑出屏幕。 一、GestureDetect…

配置多个后端 API 代理

在开发 React 应用时,通常会涉及到与后端 API 的交互。而在开发过程中,我们经常需要在开发环境中使用代理来解决跨域请求的问题。Create React App 提供了一种简单的方式来配置代理,即通过创建一个名为 setupProxy.js 的文件来配置代理规则。…

力扣链表篇

以下刷题思路来自代码随想录以及官方题解 文章目录 203.移除链表元素707.设计链表206.反转链表24.两两交换链表中的节点19.删除链表的倒数第N个节点面试题 02.07. 链表相交142.环形链表II 203.移除链表元素 给你一个链表的头节点 head 和一个整数 val ,请你删除链…

一个具有强大PDF处理能力的.Net开源项目

PDF具有跨平台、可读性强、不可修改性、无需特定阅读软件、内容安全等好处,在工作中经常都会用到。 所以,我们在项目开发中,经常需要生成PDF的文件,或者把Html、Xml等文件转化为PDF格式。 今天给大家推荐一个具有PDF处理能力的.…

计算机设计大赛 深度学习大数据物流平台 python

文章目录 0 前言1 课题背景2 物流大数据平台的架构与设计3 智能车货匹配推荐算法的实现**1\. 问题陈述****2\. 算法模型**3\. 模型构建总览 **4 司机标签体系的搭建及算法****1\. 冷启动**2\. LSTM多标签模型算法 5 货运价格预测6 总结7 部分核心代码8 最后 0 前言 &#x1f5…

vue - - - - Vue3+i18n多语言动态国际化设置

Vue3i18n多语言动态国际化设置 前言一、 i18n 介绍二、插件安装三、i18n配置3.1 创建i18n对应文件夹/文件3.2 en-US.js3.3 zh-CN.js3.4 index.js 四、 mian.js 引入 i18n配置文件五、 组件内使用六、使用效果 前言 继续【如何给自己的网站添加中英文切换】一文之后&#xff0c…

Folx Pro Mac中文p破解版如何使用?为您带来Folx Pro 详细使用教程!

​ Folx pro 5 中文版是mac上一款功能强大的老牌加速下载软件,新版本的Folx pro整体界面非常的简洁和漂亮,具有非常好用的分类管理功能,支持高速下载、定时下载、速度控制、iTunes集成等功能。Folx pro兼容主流的浏览器,不但可以下…

AI对话系统app开源

支持对接gpt,阿里云,腾讯云 具体看截图 后端环境:PHP7.4MySQL5.6 软件:uniapp 废话不多说直接上抗揍云链接: https://mny.lanzout.com/iKFRY1o1zusf 部署教程请看源码内的【使用教程】文档 欢迎各位转载该帖/源码

【postgresql】数据表id自增与python sqlachemy结合实例

需求: postgresql实现一个建表语句,表名:student,字段id,name,age, 要求:每次添加一个数据id会自动增加1 在PostgreSQL中,您可以使用SERIAL或BIGSERIAL数据类型来自动生成主键ID。以下是一个创建名为stude…

Jmeter系列(1)Mac下载安装启动

目录 Jmeter下载安装启动下载启动 Jmeter下载安装启动 注意⚠️:使用jmeter需要有java环境 下载 官网下载地址:https://jmeter.apache.org/ 会看到这里有两个版本,那么有什么区别么? Binaries是可执行版,直接下载解…

韩国量子之梦:将量子计算纳入新增长 4.0战略

内容来源:量子前哨(ID:Qforepost) 编辑丨王珩 编译/排版丨沛贤 深度好文:1500字丨9分钟阅读 据《朝鲜邮报》报道,韩国将推出由量子计算加速的云服务,并在首尔地区启动城市空中交通的试飞&…

企业过二级等保采购哪家堡垒机好?

企业常见过等保,一般是指等保二级或者三级。这不2024开年,不少企业在问,过二级等保采购哪家堡垒机好?电话多少?这里我们小编就给大家毛遂自荐一下吧! 企业过二级等保采购哪家堡垒机好? 【回答】…