【Linux网络】Linux网络协议栈问题汇集

news/2024/9/20 17:50:51/文章来源:https://www.cnblogs.com/Wangzx000/p/18277870

Linux本机与本机socket通信会走网卡吗?

1.127.0.0.1本机网络IO需要经过网卡吗?

不需要经过网卡,即使把网卡拔了本机网络还是可以正常使用的。

本机网络IO的内核执行流程:

img

跨机网络IO的流程:

img

2.数据包在内核中是什么走向,和外网发送相比流程上有什么区别?

本机网络 IO 和跨机 IO 比较起来,确实是节约了驱动上的一些开销。发送数据不需要进 RingBuffer 的驱动队列,直接把 skb 传给接收协议栈(经过软中断)。但是在内核其它组件上,可是一点都没少,系统调用、协议栈(传输层、网络层等)、设备子系统整个走了一个遍。连“驱动”程序都走了(虽然对于回环设备来说只是一个纯软件的虚拟出来的东东)。

3.用本机ip(例如192.168.x.x)和用127.0.0.1性能上有差别吗?

正确结论是和 127.0.0.1 没有差别,都是走虚拟的环回设备 lo。
这是因为内核在设置 ip 的时候,把所有的本机 ip 都初始化 local 路由表里了,而且类型写死 RTN_LOCAL。在后面的路由项选择的时候发现类型是 RTN_LOCAL 就会选择 lo 了。

具体分析请参考原文:https://www.zhihu.com/question/43590414/answer/1928842338

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

laravel11: 给接口增加签名验证

一,添加controller/中间件/路由 1,添加中间件 liuhongdi@lhdpc:/data/site/gsapi$ php artisan make:middleware ApiSignINFO Middleware [app/Http/Middleware/ApiSign.php] created successfully. 2,添加路由: 在routes/api.php文件中 Route::controller(VirtualControlle…

Slimes

这个看官方题解就好了,解释一下官方题解 首先一个很大的前提(也比较显然),就是为了达到最优的情况,我们只会让一个史莱姆一直吃,而不会让两个史莱姆都吃,最后再让其中一个史莱姆将另一个史莱姆吃掉这一个区间指的是,只有这个区间的史莱姆进行互相吃,相当于忽略了区间外…

大屏可视化看板变形问题和分辨率问题的解决办法

关于大屏可视化,好看的画面总是千篇一律,但是遇到的问题,可谓是五花八门,就比如画面变形问题,模糊问题。做一个可视化画面,电脑上显示好好的↓ 实际投出来↓ 画面拉长了压扁了扭曲变形…… 回到电脑上一顿调,没啥用,还是变形…… 那种无力感,经历过画面工程师懂的都…

cerebro 报错: Oops, cannot start the server. com.google.common.util.concurrent.UncheckedExecutionExcep

@目录前言环境异常修改方案第二次报错修改方式成功 前言 使用 elasticsearch + springboot 实现新闻搜索功能: https://javapub.net.cn/star/project/news-search-es/ 遇到的错误记录。 环境cerebro 下载地址: https://github.com/lmenezes/cerebro使用了最新的版本: cerebr…

manim边学边做--Matrix

在代数问题中,矩阵是必不可少的工具,manim中提供了一套展示矩阵(Matrix)的模块,专门用于在动画中显示矩阵格式的数据。关于矩阵的类主要有4个:Matrix:通用的矩阵 IntegerMatrix:元素是整数的矩阵 DecimalMatrix:元素包含小数的矩阵 MobjectMatrix:元素可以是图形的矩…

开源大数据平台的部署(来自工作日志)

开源大数据平台部署 主要步骤 易错点这篇博客内容是我在安装开源hadoop 数据平台时候的工作日志,里面记录了部署平台的主要过程以及容易出错的步骤。一,主要组件包括:二,部署环境规划:3台机器系统:Centos 7.9java: 1.8.220 三,部署顺序: 离线处理组件(主线组件):…

Qt - QtWebEngineWidgets模块

1、QtWebEngineWidgets模块 #include <QtWebEngineWidgets>QT += webenginewidgets1.1 QWebEnginePage 示例代码: #include <QtWebEngineWidgets> #include <QWebEnginePage>//1、创建一个新的 QWebEnginePage 实例:page = new QWebEnginePage(this);//2、…

开源大数据平台的部署

开源大数据平台部署 主要步骤 易错点这篇博客内容是我在安装开源hadoop 数据平台时候的工作日志,里面记录了部署平台的主要过程以及容易出错的步骤。一,主要组件包括:二,部署环境规划:3台机器系统:Centos 7.9java: 1.8.220 三,部署顺序: 离线处理组件(主线组件):…

利用bwa将自己的数据与参考基因组比对与sam格式转换

1.bwa的下载与安装 https://www.jianshu.com/p/19f58a07e6f4 主要参考这篇帖子,如果之前的步骤都走通了的话,依赖什么的不用特别安装,报错了再补也可以安好了之后,进到他的路径,输./bwa,就可以确认bwa有没有安装好了,环境设置好以后可以在其他地方输入bwa,也可以叫他出来…

机器学习 - Machine Learning (III)

1 对抗学习 对抗学习的目的是增加鲁棒性。 对抗生成网络(GAN)包括生成器(Generator)和判别器(Discriminator)。如果目标是创建能够生成新内容的系统,那么生成器是希望得到并优化的模型,这是一个零和问题。1.1 GenB GenB是对抗网络用于VQA的产物,如图添加了偏置模型和目…