南宁有做网站的公司吗/百度的网页地址
目录
ifconfig
Ifconfig输出各字段简述
txqueuelen
RX和TX的errors指哪些错误
dropped与overruns的区别
常用ifconfig配置命令
显示网卡信息
启动关闭指定网卡
配置和删除ip地址
修改MAC地址
启用和关闭ARP协议
设置最大传输单元
设置网卡的promiscuous模式
设置网卡的多播模式
配置和删除IPv6地址
配置txqqueuelen
ethtool
netstat
ifconfig
关于此工具找到一篇雄文:note/ifconfig.md at master · vikyd/note · GitHub
Ifconfig输出各字段简述
以下图的Ubuntu系统为例:
字段:eth0
含义:网卡名,网卡驱动里定义的名称,这个没什么好说的。
字段:flags
示例:flags=4163<UP,BROADCAST,RUNNING,MULTICAST>
含义:表示当前网卡的状态(此列表并非可操作的命令)
详细:
UP:表示网卡已启动(interface is up),无 UP 则表示网卡未启动(ifconfig -a 显示未启动网卡)
BROADCAST:网卡的广播地址有效(broadcast address valid. Volatile)
RUNNING:网卡已连接到路由器等设备(interface RFC2863 OPER_UP. Volatile)
与UP的区别:UP 表示网卡本身启动了,RUNNING 表示是否连接到了路由器等设备。
MULTICAST:可以发送组播包(或说多播)(Supports multicast)
关于4613的这个数字怎么来的,请查看雄文原文,这里不多提了。
字段:mtu
示例:mtu 1500
全称:Linux 文档中称为:Maximum Transfer Unit维基百科中称为:Maximum Transmission Unit
含义:最大传输单元;指链路层(第 2 层)的 frame 的 payload(负载)的最大大小;Linux 中 MTU 对发送和接收都起作用。
单位:Byte
详细:为什么mtu通常是1500?请查看原文。
字段:inet
示例:inet 10.10.10.11 netmask 255.255.240.0 broadcast 10.10.10.255 中的 10.10.10.11
全称:Internet
含义:TCP/IP 的 IPv4 地址(IPv6 的字段为inet6)
理解:互联网基于TCP/IP 协议族(protocol family),所以通常inet指IP地址
类型:除了inet,还可能会有:inet6、ax25、ddp、ipx、netrom 等类型
字段:netmask
示例:netmask 255.255.240.0
全称:IP network mask
中文:子网掩码
字段:broadcast
示例:broadcast 10.10.10.255
全称:IP broadcast address
中文:广播地址
字段:inet6
示例:inet6 fe80::215:5dff:fef6:a8e7
全称:类似前面 inet
含义:TCP/IP 的 IPv6 地址
字段:prefixlen
示例:prefixlen 64
全称:prefix length
含义:表示此地址的前64位是网络前缀,作用类似于IPv4的子网掩码
字段:scopeid
示例:scopeid 0x20<link>
全称:scope id
含义:0x20<link> 表示 IPv6 的 Link-Local类型地址
字段:ether
示例:ether 42:01:0a:aa:00:03
全称:Ethernet
中文:以太网
含义:表示网卡的 MAC 地址
理解:对应第 2 层链路层的Ethernet协议
字段:txqueuelen
示例:txqueuelen 1000
全称:transmit queue length
理解:发送数据时qdisc(Queuing Disciplines)队列的大小
单位:sk_buff(socket buffer)
详细:txqueuelen 是一个比较长的话题,见后面txqueuelen小节
字段:RX 与 TX
示例:
RX packets 69426519 bytes 20960261647 (19.5 GiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 73886979 bytes 15013465511 (13.9 GiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
这两个大字段数据主要 来源于 /proc/net/dev(查看:cat /proc/net/dev)
参考:Linux输出 /proc/net/dev的源码
字段:RX
示例:
RX packets 69426519 bytes 20960261647 (19.5 GiB)
RX errors 0 dropped 0 overruns 0 frame 0
全称:Received
含义:网卡接收数据的统计
字段:
packets 69426519:成功接收到的数据包数量
单位:sk_buff(与第 2 层链路层的frame的数量相等)
注意:这不是第3层网络层的单位packet
bytes 20960261647 (19.5 GiB):数据 + 各层header的字节数量
换算:CentOS 貌似常按 1024 换算成 GiB,Ubuntu 貌似常按 1000 换算成 GB,参考 man 7 units
errors:出错的包数量
单位:sk_buff
注意:此数值不等于后面 dropped、overruns、frame字段的总和,原因见后面 RX的errors指哪些错误小节
dropped:Linux 内核对应的sk_buff满了导致的丢包
单位:sk_buff
可能原因之一:Linux系统内存不足,导致从网卡拷贝数据到系统内存时丢包
overruns:Linux 内核对应的Ring Buffer满了导致的丢包
单位:sk_buff
可能原因之一:CPU 很忙无法及时处理网卡申请的中断
对应 Linux Kernel 的 rx_fifo_errors
注意:详细见后面dropped与overruns的区别小节
frame:指第2层链路层的frame的bit数不能被8整除,不符合帧的定义的错误
单位:sk_buff
可能原因之一:网卡、交换机等硬件故障导致
详细:见后面RX和TX小节
字段:TX
示例:
TX packets 73886979 bytes 15013465511 (13.9 GiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
全称:Transmitted
含义:网卡发送数据的统计
字段:
与 RX 同名的字段:略过
errors:与前面 RX 的 errors 包含的错误类型有些不一样
carrier:硬件调制信号(modulation of signal)导致的出错包数量
collisions:冲突的包数量
txqueuelen
txqueuelen
是发送数据时qdisc的允许队列大小,txqueuelen 的单位是 sk_buff(socket buffer),发送数据时,应用层的数据经过内核协议栈的层层封装后,先到达qdisc,之后才到达Ring Buffer(就是下图中的Driver queue),Ring Buffer是一个简单的FIFO(先进先出)队列,但太简单,所以出现了qdisc 提供灵活的流量控制功能。
RX和TX的errors指哪些错误
RX错误类型包括:
rx_frame_errors(对应ifconfig 的frame,表示非对齐的帧,这种错误一般出现在物理层)
rx_crc_errors(不对应ifconfig 的任何字段,表示帧校验错误,这种错误一般出现在物理层)
rx_length_errors(不对应ifconfig的任何字段)
rx_fifo_errors(对应ifconfig的overruns)
这些错误类型可能因不同网卡而不同
错误类型 不一定 包括:
rx_dropped(对应ifconfig的dropped)
TX错误类型包括:
tx_window_errors(不对应 ifconfig 的任何字段)
tx_aborted_errors(不对应 ifconfig 的任何字段)
tx_carrier_errors(对应 ifconfig 的 carrier)
tx_fifo_errors(对应 ifconfig 的 overruns)
这些错误类型可能因不同网卡而不同
错误类型不包括:
tx_dropped(对应 ifconfig 的 dropped)
dropped与overruns的区别
dropped与overruns是指两种不同的丢包情况。
要了解两者的区别,需首先了解Linux内核中的 网络数据流转机制。
以接收数据为例:
1)网卡驱动在内存中分配一片缓冲区用来接收数据包,叫做sk_buff
2)将上述缓冲区的地址和大小(即接收描述符),加入到rx ring buffer。描述符中的缓冲区地址是 DMA 使用的物理地址
3)驱动通知网卡有一个新的描述符
4)网卡从rx ring buffer中取出描述符,从而获知缓冲区的地址和大小
5)网卡收到新的数据包;
6)网卡将新数据包通过 DMA 直接写到sk_buff中
注意,上述流程有几个可能容易模糊的概念:
网卡驱动:这是跑在 Linux 中的程序,而非跑在网卡硬件中
sk_buff:存在于 Linux 内存中,可以在不同的网络协议层之间传递(在 Linux 源码中的定义见 skbuff.h),sk_buff 是真正存放网络数据的位置。
rx ring buffer:是一个 FIFO(先进先出)队列,队列的内容并不是真正的网络数据,而是一些指向 sk_buff 的描述符。
再次看下这个图可能会更清晰:
了解上述流程后,可以开始说两者的区别了:
dropped:sk_buff 满了,新的数据写不进 sk_buff 导致的丢包
可能原因之一:Linux系统分配的内存不足,导致从网卡拷贝数据到系统内存时丢包。
overruns:ring buffer 队列满了,队列暂无可用的描述符,导致的丢包。在 ifconfig 源码实际就是 rx_fifo_errors(recv'r fifo overrun)
可能原因之一:CPU 很忙无法及时处理网卡申请的中断
总之,大概可理解为,一个是指针满了(overruns),一个是内存满了(dropped)
ring buffer满了不代表buffer满了,可能是因为每个指针指向的buffer数据都很小,当有一段相对小帧数据过来,需要的消耗的指针数量大于ring buffer的当前容量;sk_buff 满了也不代表 ring buffer满了,可能是因为每个指针指向的buffer数据较大,大到当前的socket buffer装不下此数据。
常用ifconfig配置命令
显示网卡信息
(1) 显示激活的网卡信息
ifconfig
(2) 显示所有的网卡信息
ifconfig -a
(3) 显示简要的网卡信息
ifconfig -s
启动关闭指定网卡
(1) 关闭网卡
ifconfig eth0 down
(2) 启动网卡
ifconfig eth0 up
配置和删除ip地址
(1) 配置ip
// 配置ip地址
ifconfig eth0 192.168.1.100
// 配置ip地址和子网掩码
ifconfig eth0 192.168.1.100 netmask 255.255.255.0
// 配置ip地址、子网掩码和广播地址
ifconfig eth0 192.168.1.100 netmask 255.255.255.0 broadcast 192.168.1.255
(2) 单网卡添加多个IP地址
ifconfig eth0:0 192.168.1.100 netmask 255.255.255.0 up
ifconfig eth0:1 192.168.2.100 netmask 255.255.255.0 up
(3) 删除IP地址
ifconfig eth0 del 192.168.1.100
修改MAC地址
ifconfig eth0 hw ether 00:AA:BB:CC:DD:EE
启用和关闭ARP协议
(1) 启用arp
ifconfig eth0 arp
(2) 禁用arp
ifconfig eth0 -arp
设置最大传输单元
ifconfig eth0 mtu 1500
设置网卡的promiscuous模式
(1) 启用
ifconfig eth0 promisc ,指网卡能够接收所有经过它的数据流,而不论其目的地址是否是它。
(2) 禁用
ifconfig eth0 -promisc
设置网卡的多播模式
(1) 启用
ifconfig eth0 allmulti
(2) 禁用
ifconfig eth0 -allmulti
配置和删除IPv6地址
(1) 添加
ifconfig eth0 add 3ffe:3240:800:1005::2/64
(2) 删除
ifconfig eth0 del 3ffe:3240:800:1005::2/64
配置txqqueuelen
ifconfig eth0 txqqueuelen 1500
ethtool
ethtool查询或控制网络驱动程序和硬件设置。利用ethtool可以根据需要更改以太网卡的参数,包括自动协商、速度、双工和局域网唤醒等参数。
命令格式:ethtool [<options>] [<devname>]
Option说明:
-a, --show-pause
查看网卡中接收模块RX、发送模块TX 和 Autonegotiate模块的pause帧流控状态:启动on或停用off。
-A, --pause <devname> [autoneg on|off] [rx on|off] [tx on|off]
修改网卡中接收模块RX、发送模块TX和Autonegotiate 模块的pause帧流控状态:启动on或停用off。
-c, --show-coalesce
查询指定网络设备的合并信息。
-C, --coalesce
更改指定网络设备的合并设置。
-g, --show-ring
显示指定以太网卡的rx/tx环参数信息。就是上篇文章提到的ring buffer。
-G, --set-ring
更改指定以太网卡的rx/tx环设置。
-i, --driver
显示网卡驱动的信息,如驱动的名称、版本等。
-d, --register-dump <devname> [raw on|off] [hex on|off] [file name]
显示register dump信息,部分网卡驱动不支持该选项。
-e, --eeprom-dump <devname> [raw on|off] [offset N] [length N]
显示EEPROM dump信息,部分网卡驱动不支持该选项。
-E, --change-eeprom
修改网卡 EEPROM byte。
-k, --show-features, --show-offload <devname>
显示网卡 Offload 参数的状态:on或off,包括 rx-checksumming、tx-checksumming等。就是网卡来做一些事情,给CPU减负。
-K, --features, --offload <devname> <feature> on|off ...
修改网卡 Offload 参数的状态。
-p, --identify <devname> [N]
用于区别不同 ethX 对应网卡的物理位置,常用的方法是使网卡 port 上的 led 不断的闪;N 指示了网卡闪的持续时间,以秒为单位。
-P, --show-permaddr
向指定的网络设备查询永久硬件地址。
-r, --negotiate <devname>
如果auto-negotiation 模块状态为on,则restarts auto-negotiation。
-S, --statistics
显示 NIC- and driver-specific 的统计参数,如网卡接收/发送的字节数、接收/发送的广播包个数等。
-t, --test
让网卡执行自我检测,有两种模式:offline or online。
-s, --change
修改网卡的部分配置,包括网卡速度、单工/全双工模式、MAC地址等。
-h, --help
显示帮助信息。
--version
显示版本信息。
参考文章:(24条消息) Linux 命令(194)—— ethtool 命令_ethtool命令详解_恋喵大鲤鱼的博客-CSDN博客
netstat
该命令经常用于查看网络连接状态
下面是它的一些参数:
-a:显示所有选项
-t:仅显示tcp相关选项
-u:仅显示udp相关选项
-n:不显示别名
-l:仅列出处于监听状态下的服务
-p:显示建立相关链接的程序名
-r:显示路由信息、路由表
-e:显示扩展信息,如uid
-s:按各个协议进行统计
-c:每隔一段事件执行netstat
相关文章:

【Linux内核二】常用的网络丢包错包debug工具介绍
目录 ifconfig Ifconfig输出各字段简述 txqueuelen RX和TX的errors指哪些错误 dropped与overruns的区别 常用ifconfig配置命令 显示网卡信息 启动关闭指定网卡 配置和删除ip地址 修改MAC地址 启用和关闭ARP协议 设置最大传输单元 设置网卡的promiscuous模式 设置…...

qt控件增加渐变色效果
ui->returnBtn->setStyleSheet("color: rgb(0, 0, 0);""background:qlineargradient(spread:pad, x1:0, y1:1, x2:0, y2:0, ""stop:0 #5f5f5f, stop:0.5 #ffffff, stop:0.98 #5f5f5f);""border:none;");效果如下图: …...

【node : 无法将“node”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。 最全面有效的解决方案】
执行nodejs文件错误: 这个错误提示通常是由于你的系统无法识别 "node" 命令,可能是由于你没有正确地安装或配置 Node.js 环境变量。 问题描述 原因分析: 可能原因包括: 1.Node.js未正确安…...

打怪升级之字符串的分界符与字符串替换
流的字符串分界符 在C的iostream中,有流的字符串分界符: " “和”"都代表简单的分隔。 因此,使用流来做字符串分隔的话,有一个比较简单的方案就是将原定义的分隔符通过替换的方式变成流的分隔符。然后再录入流中就能…...

载荷台子使用方式
载荷自动测量台子使用方法 电源开关旋转到1,开启电源开启台子微机开关,开启电脑(winxp)开启台子载荷开关,启动载荷台子点击电脑动标图标,开启软件放入载荷,弹性体向上,载荷台子压头压…...

1005 继续(3n + 1)猜想
卡拉兹(Callatz)猜想已经在1001中给出了描述。在这个题目里,情况稍微有些复杂。 当我们验证卡拉兹猜想的时候,为了避免重复计算,可以记录下递推过程中遇到的每一个数。例如对 n3 进行验证的时候,我们需要计算 3、5、8、4、2、1&a…...

VMware15配置NAT模式联通网络
最近为了测试C# 开发的桌面应用程序悬浮球的兼容性,在虚拟机上安装了win7系统和xp系统,之前也安装过黑苹果系统,但是win系统倒是第一次安装,在win7系统联网的时候,踩了一些坑,整理纪录一下。 设置主物理机配…...

doPost的实际使用
目录 前言 一、doPost是什么? 二、使用步骤 1.doPost的请求方法 2.需要引入依赖 总结 前言 本章主要记录一下doPost的请求公用方法的使用。 一、doPost是什么? 它其实就是一个http的post请求方式。 二、使用步骤 1.doPost的请求方法 当我们系…...

2017年MathorCup数学建模A题流程工业的智能制造解题全过程文档及程序
2017年第七届MathorCup高校数学建模挑战赛 A题 流程工业的智能制造 原题再现: “中国制造 2025”是我国制造业升级的国家大战略。其技术核心是智能制造,智能化程度相当于“德国工业 4.0”水平。“中国制造 2025”的重点领域既包含重大装备的制造业&…...

HNU-电子测试平台与工具2-数模转换
数模转换实验 计科XXXX wolf 工程文件我也一并上传了 D级任务 一.实验任务 对74194进行仿真验证,掌握Quartus仿真的基本原则和常规步骤,记录移位寄存器的数据读写,并描述仿真波形,分析结果。 二.实验过程 1.电路连接 2.功能…...

CentOS7安装Telnet客户端和服务端和使用方式
在执行telnet时会提示命令不存在。Telnet服务的配置步骤如下:一、检测是否安装telnet软件包(通常要两个)1、telnet-client (或 telnet),这个软件包提供的是 telnet 客户端程序;2、telnet-server 软件包,这个才是真正的…...

脂肪毒性的新兴调节剂——肠道微生物组
谷禾健康 肠道微生物组与脂质代谢:超越关联 脂质在细胞信号转导中起着至关重要的作用,有助于细胞膜的结构完整性,并调节能量代谢。 肠道微生物组通过从头生物合成和对宿主和膳食底物的修饰产生了大量的小分子。 最近的研究表明,由…...

【JavaSE系列】 第九节 —— 多态那些事儿
文章目录 前言 一、多态的概念 二、向上转型和向下转型 2.1 向上转型 2.2 什么是向上转型 2.3 三种常见的向上转型 2.3.1 直接赋值 2.3.2 作为方法的参数 2.3.3 作为方法的返回值 2.4 向下转型(这个了解即可) 三、方法重写 3.1 方法重写的…...

ego微商小程序项目-测试步骤
文章目录 1. 需求分析和评审2. 编写测试计划和测试方案2.1 ego小程序测试计划2.1.1 项目简介2.1.2 项目任务2.1.3 项目风险2.1.4 测试方案2.1.5 测试实施2.1.6 测试管理2.1.7 附录资料3. 编写测试用例和评审3.1 功能测试用例设计3.1.1 总-整体把控3.1.2 分- 拆分细化3.2 测试用…...

华为OD机试用Python实现 -【报数游戏】2023Q1 A卷
华为OD机试题 本篇题目:报数游戏题目输入输出示例 1输入输出示例 2输入输出Code代码编写思路最近更新的博客 华为od 2023 | 什么是华为od,od 薪资待遇,od机试题清单华为OD机试真题大全,用 Python 解华为机试题 | 机试宝典【华为OD机试】全流程解...

Plsql使用
登录登录system用户,初始有两个用户sys和system,密码是自己安装oracle数据库时写的,数据库选择orcl创建用户点击user,右键新增填写权限关于3个基本去权限介绍: connect : 基本操作表的权限,比如增删改查、视图创建等 r…...

小丑改造计划之四线程控制
1.线程有哪些优点,缺点? 1.优点: 创建线程的代价比较小 线程切换比进程的切换,操作系统要做的事少 线程比进程占用的资源要少 缺点: 子线程可能会影响主线程,健壮性不如进程 编写多线程比单线程难ÿ…...

Spring注册Bean的几种方式
通过XML配置注册Bean spring-config.xml <!--方式一:声明自定义的bean,没有设置id,id默认为全类型#编号--><bean id"cat" class"com.rzg.entity.Cat"/><bean class"com.rzg.entity.Cat"/>public class SpringApp…...

Egg:使用joi进行参数校验以及注册接口小demo
目录 前言: 准备工作: 前端代码: 后端目录截图: 1.获取参数 2.校验参数 3.查询数据库中是否已经存在该用户 4.用户入库 5.测试一哈 添加用户成功 同样的用户名再注册一遍 编辑总结: 前言: 在阅…...

天梯赛训练L1-016(查验身份证)
目录 1、L1-016 查验身份证 2、如果帮助到大家了,希望大家一键三连!!! 1、L1-016 查验身份证 分数 15 题目通道 一个合法的身份证号码由17位地区、日期编号和顺序编号加1位校验码组成。校验码的计算规则如下: 首…...

技术方案评审
目录 参考一、流程&规范二、评审维度组件选型性能可伸缩性灵活性可扩展性可靠性安全性兼容性弹性处理事务性可测试性可运维性监控三、方案模板背景目标整体架构业务流程接口定义数据库表功能实现测试计划人力排期Check List整体评估<...

Python机器学习库scikit-learn在Anaconda中的配置
本文介绍在Anaconda环境中,安装Python语言scikit-learn模块的方法。 scikit-learn库(简称sklearn)是一个基于Python语言的机器学习库,提供了各种机器学习算法和相关工具,包括分类、回归、聚类、降维、模型选择和预处理…...

yarn init 没有 ts 类型声明
yarn 版本为 3. 的初始化项目里,我们下载的包会发现没有 ts 类型提示。那么跟着我做这几个命令,就可以轻松搞定,具体原因我就不贴了,如果有兴趣可以评论问这里只写 vscode 没有提示的修复方式yarn add typescript -Dyarn dlx yarn…...

孩子喜欢打人父母要怎么引导?听听专家的小建议
随着人们生活水平的提高。有些孩子被父母宠坏了,不仅脾气暴躁,还喜欢打人。面对这种情况,许多家长会选择暴制暴,导致孩子更崇尚暴力。被打后,孩子不仅没有悔改,而且变得更糟。即使孩子被说服了,…...

Hive中order by,sort by,distribute by,Cluster by
order by 对数据进行全局排序, 只有一个reducer Task, 效率低 mysql中strict模式下, order by必须要有limit, 不然会拒绝执行. 对于分区表, 必须显示指定分区字段查询。 sort by 可以有多个reduce Task(以distribute by后的字段个数为准) 每个reduce Task内部数据有序, 但…...

PyTorch的自动微分(autograd)
PyTorch的自动微分(autograd) 计算图 计算图是用来描述运算的有向无环图 计算图有两个主要元素:结点(Node)和边(Edge) 结点表示数据,如向量、矩阵、张量 边表示运算,如加减乘除卷积等 用计算…...

sum-check protocol
sumcheck是一个交互式证明协议,给定域F上的多元多项式g(x1,...,xv)g(x_1,...,x_v)g(x1,...,xv),证明者Prover可以向验证者Verifier证明该多项式ggg的遍历求和值等于公开值HHH,即 H∑b1,b2,...,bv∈{0,1}vg(b1,b2,...,bv)H \sum_{b_1,b_2,…...

数据结构刷题(二十一):131分割回文串、78子集
1.分割回文串题目链接思路:回溯算法的组合方法(分割问题类似组合问题)。流程图:红色竖杠就是startIndex。 for循环是横向走,递归是纵向走。回溯三部曲:递归函数参数:字符串s和startIndex&#…...

Spring Aop 详解
主要内容: 了解Spring AOP的概念及其术语熟悉Spring AOP的JDK动态代理熟悉Spring AOP的CGLib动态代理掌握基于XML的AOP实现掌握基于注解的AOP实现AOP用官方话来说: AOP即面向切面编程。和OOP(面向对象编程)不同,AOP主…...

【数据库死锁】线上问题之数据库死锁
原本平静的一天,惊现生产项目瘫痪问题,马上打开日志,发现后台日志提示了多个“com.mysql.cj.jdbc.exceptions.MySQLTransactionRollbackException: Lock wait timeout exceeded; try restarting transaction” 大概去了解一下这个异常&#x…...