解析 ip addr 的输出的内容含义

2024-01-30 15:50
文章标签 输出 ip 内容 解析 含义 addr

本文主要是介绍解析 ip addr 的输出的内容含义,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

解读 ip addr 的输出的网络连接信息含义

一、ifconfig 与 ip addr

用过Linux的读者都知道,在Linux查看ip可以使用ifconfig,当然这个ifconfig属于net-tools 工具集,其来源于BSD,Linux从2001年就不对其进行维护了。那我们应该用什么呢?还有iproute2 工具集,其功能更强大,我们今天就来讲讲该工具集的 ip addr命令。

而运行ip addr命令,会出现类似下面的的内容:

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN qlen 1link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00inet 127.0.0.1/8 scope host lovalid_lft forever preferred_lft foreverinet6 ::1/128 scope hostvalid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000link/ether 00:0c:62:3c:62:a1 brd ff:ff:ff:ff:ff:ffinet 192.168.108.19/24 brd 192.168.108.255 scope global ens33valid_lft forever preferred_lft foreverinet6 fe80::5df:3b5f:e5fe:ddc2/64 scope linkvalid_lft forever preferred_lft forever
二、IP

该命令会显示机器上的所有网卡,其中的192.168.108.19/24便是IPv4的地址,这个地址由4个部分组成,每个部分8个bit,因此整个地址空间有 4 294 967 296(232232)个地址,也就是近43亿个地址。地球上的人口都比这个多,何况我们很多人都不止使用一个IP地址吧?何况还有一些地址是作为特殊用途而保留的,如局域网专用地址(约1800万个地址)和组播地址(约2700万个地址)。这样IPv4能够使用的地址就更少了,所有我们有了IPv6,IPv6有128位,其地址空间有340282366920938463463374607431768211456个地址,我觉得暂时是够了。128位有点长,于是采用16进制来描述IPv6地址,所有看起来IPv6的地址只有32位。

在这里插入图片描述

如上图,IPv4地址被分为5类,前面的1或0是固定位数,Network是网络号,后面的Host是主机号,就和我们假如是三年二班李子明,三年二班就是网络号,李子明就是主机号,别的班也有可能叫李子明的。

再来看看划分的这几类网络,C类网络只能容纳254台主机,很多情况下都不够,而选择B类又太多了,很多情况下都多很多,那怎么办呢?

于是产生了CIDR,Classless Inter-Domain Routing,无类域间路由选择

二、CIDR

那么IPv4后面斜杠/以及后面的数字代表什么意思呢?这就和CIDR又关系了,192.168.108.19/24说明前24位是网络号,后8位是主机号。通过这种方式,它根据用户的要求根据某些规则动态分配IP地址。

还有一种叫做子网掩码的东西,将子网掩码与IP地址做与运算,就能得到网络号。

CIDR使IP地址从三级编址(使用子网掩码),又回到了两级编址,但这已是无分类的两级编址。

三、MAC地址

在命令输出结果中link/ether 00:0c:62:3c:62:a1 brd ff:ff:ff:ff:ff:ff代表MAC地址,是网卡的物理地址,这个MAC地址是网卡出厂就确定了的,具有唯一性。

但是具有唯一性,不代表我们就干脆用它来进行通信,可以这样类比:MAC地址是我们的身份证号,而IP地址是我们身份证上的地址。

你要找一个远方的朋友进行联系,你用这个身份证号去问别人,是不是没人知道,而用家庭地址一步一步去找,是不是肯定能找到。

那么MAC地址是不是就没用了呢,不是!其具有通信作用,你想想,你去问朋友的家人,这个身份证号是谁,他是不是能够知道。MAC地址的通信范围只能在一个子网中,只要跨子网,MAC地址就没有作用了。

四、其他
4.1 scope

inet 192.168.108.19/24 brd 192.168.108.255 scope global ens33这里面scope代表作用范围,ens33这张网卡这里查询是global,说明可以接受全局的包,哪里的包都接受。而lo网卡查询的scope是host,说明该网卡只能在本机通信。

4.2 lo

lo代表loopback,是虚拟接口,是一种纯软件性质的虚拟接口。任何送到该接口的网络数据报文都会被认为是送往设备自身的。

4.3 <BROADCAST,MULTICAST,UP,LOWER_UP>
<BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000

<BROADCAST,MULTICAST,UP,LOWER_UP> 这个东西是net_device flags网络设备的状态标识

BROADCAST   该接口支持广播
MULTICAST   该接口支持多播
UP          网络接口已启用
LOWER_UP    网络电缆已插入,设备已连接至网络
4.4 MTU

至于mtu 1500是指最大传输单元MTU(Maximum Transmission Unit,MTU),表示网络可以传输的最大数据包大小,以字节为单位。

MTU的大小决定了发送端一次能够发送报文的最大字节数。如果MTU超过了接收端所能够承受的最大值,或者是超过了发送路径上途经的某台设备所能够承受的最大值,就会造成报文分片甚至丢弃,加重网络传输的负担。如果太小,那实际传送的数据量就会过小,影响传输效率。

4.5 QDisk

qdisc pfifo_fast中,QDisk是queueing discipline的简写,即排队规则。

这篇文章对排队规则介绍得非常好:[译] 《Linux 高级路由与流量控制手册(2012)》第九章:用 tc qdisc 管理 Linux 网络带宽 (arthurchiao.art)

4.6 statu

state UP 表示网络接口已启用。

4.7 Qlen

qlen 1000,Qlen代表传输队列长度,此处为1000。

4.8 valid_lft & preferred_lft

valid_lft forever IPv4/IPv6 地址的有效使用期限

Qlen代表传输队列长度,此处为1000。

4.8 valid_lft & preferred_lft

valid_lft forever IPv4/IPv6 地址的有效使用期限

preferred_lft forever IPv4/IPv6 地址的首选生存期

这篇关于解析 ip addr 的输出的内容含义的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/660742

相关文章

使用Python实现IP地址和端口状态检测与监控

《使用Python实现IP地址和端口状态检测与监控》在网络运维和服务器管理中,IP地址和端口的可用性监控是保障业务连续性的基础需求,本文将带你用Python从零打造一个高可用IP监控系统,感兴趣的小伙... 目录概述:为什么需要IP监控系统使用步骤说明1. 环境准备2. 系统部署3. 核心功能配置系统效果展

Qt实现网络数据解析的方法总结

《Qt实现网络数据解析的方法总结》在Qt中解析网络数据通常涉及接收原始字节流,并将其转换为有意义的应用层数据,这篇文章为大家介绍了详细步骤和示例,感兴趣的小伙伴可以了解下... 目录1. 网络数据接收2. 缓冲区管理(处理粘包/拆包)3. 常见数据格式解析3.1 jsON解析3.2 XML解析3.3 自定义

Golang HashMap实现原理解析

《GolangHashMap实现原理解析》HashMap是一种基于哈希表实现的键值对存储结构,它通过哈希函数将键映射到数组的索引位置,支持高效的插入、查找和删除操作,:本文主要介绍GolangH... 目录HashMap是一种基于哈希表实现的键值对存储结构,它通过哈希函数将键映射到数组的索引位置,支持

Go语言开发实现查询IP信息的MCP服务器

《Go语言开发实现查询IP信息的MCP服务器》随着MCP的快速普及和广泛应用,MCP服务器也层出不穷,本文将详细介绍如何在Go语言中使用go-mcp库来开发一个查询IP信息的MCP... 目录前言mcp-ip-geo 服务器目录结构说明查询 IP 信息功能实现工具实现工具管理查询单个 IP 信息工具的实现服

Python使用getopt处理命令行参数示例解析(最佳实践)

《Python使用getopt处理命令行参数示例解析(最佳实践)》getopt模块是Python标准库中一个简单但强大的命令行参数处理工具,它特别适合那些需要快速实现基本命令行参数解析的场景,或者需要... 目录为什么需要处理命令行参数?getopt模块基础实际应用示例与其他参数处理方式的比较常见问http

Python利用ElementTree实现快速解析XML文件

《Python利用ElementTree实现快速解析XML文件》ElementTree是Python标准库的一部分,而且是Python标准库中用于解析和操作XML数据的模块,下面小编就来和大家详细讲讲... 目录一、XML文件解析到底有多重要二、ElementTree快速入门1. 加载XML的两种方式2.

Java的栈与队列实现代码解析

《Java的栈与队列实现代码解析》栈是常见的线性数据结构,栈的特点是以先进后出的形式,后进先出,先进后出,分为栈底和栈顶,栈应用于内存的分配,表达式求值,存储临时的数据和方法的调用等,本文给大家介绍J... 目录栈的概念(Stack)栈的实现代码队列(Queue)模拟实现队列(双链表实现)循环队列(循环数组

java解析jwt中的payload的用法

《java解析jwt中的payload的用法》:本文主要介绍java解析jwt中的payload的用法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Java解析jwt中的payload1. 使用 jjwt 库步骤 1:添加依赖步骤 2:解析 JWT2. 使用 N

Python中__init__方法使用的深度解析

《Python中__init__方法使用的深度解析》在Python的面向对象编程(OOP)体系中,__init__方法如同建造房屋时的奠基仪式——它定义了对象诞生时的初始状态,下面我们就来深入了解下_... 目录一、__init__的基因图谱二、初始化过程的魔法时刻继承链中的初始化顺序self参数的奥秘默认

Python实现word文档内容智能提取以及合成

《Python实现word文档内容智能提取以及合成》这篇文章主要为大家详细介绍了如何使用Python实现从10个左右的docx文档中抽取内容,再调整语言风格后生成新的文档,感兴趣的小伙伴可以了解一下... 目录核心思路技术路径实现步骤阶段一:准备工作阶段二:内容提取 (python 脚本)阶段三:语言风格调