ip addr详解
Windows上查看IP地址是ipconfig, Linux上是ifconfig,但是Linux上还有一个命令叫ip addr可以查看IP地址。
ip addr
: lo: <LOOPBACK,UP,LOWER_UP> mtu qdisc noqueue state UNKNOWN qlen
link/loopback ::::: brd :::::
inet 127.0.0.1/ scope host lo
valid_lft forever preferred_lft forever
inet6 ::/ scope host
valid_lft forever preferred_lft forever
: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu qdisc pfifo_fast state UP qlen
link/ether :0c::1c:: brd ff:ff:ff:ff:ff:ff
inet 192.168.164.13/ brd 192.168.164.255 scope global ens33
valid_lft forever preferred_lft forever
inet6 fe80::5df:3b5f:e5fe:ddc2/ scope link
valid_lft forever preferred_lft forever
如上图所示命令显示了机器上的所有网卡,大部分网卡都有一个IP地址,也存在特殊情况没有IP地址。这里IP地址是192.168.164.13/24。
IP地址
IP地址是网卡的在网络世界的通讯地址,相当于门牌号,如果相同则会冲突。一开始将IP地址分成5类,前一部分是网络号,后一部分是主机号,如下图。

但是实际上IP地址是不够用的,现在也有了IPv6,但是按照上图的分配方式 C类地址只有254个主机太少,网吧都不够用,A类又太多。

于是便有了无类型区域间选路(CIDR),他将32位的IP一分为二,前面是网络号,后面是主机号,比如192.168.164.13/24,这个 IP 地址中有一个斜杠,斜杠后面是24,表示24位网络号,8位主机号。广播地址192.168.164.255,如果发送这个地址,所有192.168.164网段的都可以收到,另一个是子网掩码,255.255.255.0。子网掩码与IP进行与运算得到192.168.164.0就是网络号。这就是我们日常生活中所使用的IP,是为私有IP地址,私有IP地址由网络管理人员或直接进行分配。比如我们在不同的学校,使用不同的局域网,我们的IP可以一样。
而公有IP是有组织统一分配的,需要个人购买。像百度,他得有公有IP,这样全世界的人才能访问。比如我们在不同的学校,宿舍地址都是A栋302,这是私有IP,出了学校,我们先说是不同的大学的,这是公有IP。
对于IP地址后面的scope说明这张网卡是对外的,可以接收各个地方的包。而对于第一条 lo来讲,她是host,只可以本机互相通信,lo是loopback的简称,又称环回接口,地址基本读书127.0.0.1,她用于本地通信,内核处理后又返回,不会出现在网络中。
MAC地址
IP地址上一行的link/ether 70:1c:e7:30:5d:fe brd ff:ff:ff:ff:ff:ff 表示MAC地址,是网卡的物理地址,用十六进制表示,6个byte。MAC号称全网唯一,相当于一个人的身份证,在通信的时候,虽然有了这个唯一标志,但是也需要其他的网络层,这是因为你去找人的时候,光喊
身份证是没有用的,你需要先去相应的地址,比如某个宿舍,然后再喊身份证号码,这样才能定位。MAC的定位作用范围有限,需要借助其他的网络层。
网络设备状态标识
再上面一行,<BROADCAST,,MULTICAST,UP,LOWER_UP>这个叫作net_device flags,网络设备状态标识。
UP 表示网卡处于启动的状态;
BROADCAST 表示这个网可以发送广播包;MULTICAST 表示网卡可以发送多播;
LOWER_UP表示网线插着;
MTU1500是指最大传输单元 MTU 为 1500,这是以太网的默认值。MTU 是二层 MAC 层的概念。MAC 层有 MAC 的头,以太网规定连 MAC 头带正文合起来,不允许超过 1500 个字节。正文里面有 IP 的头、TCP、HTTP的头。如果放不下,就需要分片来传输。
qdisc 全称是queueing discipline,中文叫排队规则。内核如果需要通过某个网络接口发送数据包,它都需要按照为这个接口配置的 qdisc ( 排队规则 ) 把数据包加入 队列。 最简单的 qdisc 是 pfifo,它不对进入的数据包做任何的处理,数据包采用先入先出的方式通过队列。pfifo_fast 稍微复杂一些,它的队列包括三个波段 ( band ) 。在每个波段里面,使用先进先出 规则。 三个波段 ( band ) 的优先级也不相同。band 0 的优先级最高,band 2 的最低。如果 band 0 里面 有数据包,系统就不会处理 band 1 里面的数据包,band 1 和 band 2之间也是一样。 数据包是按照服务类型 ( Type of Service,TOS ) 被分配多三个波段 ( band ) 里面的。TOS 是 IP 头 里面的一个字段,代表了当前的包是高优先级的,还是低优先级的。 然而这里是mq,还木有搞懂是什么样的队列处理方式。 lo中的fq_codel是多队列处理,每一个数据流都有一个队列处理。
ip addr详解的更多相关文章
- Linux命令ip addr详解
熟悉Linux操作系统的同学对于ip addr命令应该不陌生,知道它是用来查看本地IP地址的,除了IP地址,其它额外的信息有必要了解一下. root@test:~# ip addr1: lo: < ...
- 【转载】TCP /IP协议详解
首先,TCP/IP不是一个协议,而是一个协议族的统称. 里面包括了IP协议,IMCP协议,TCP协议,以及http.ftp.pop3协议等等. TCP/IP协议分层 提到协议分层,我们很容易联想到IS ...
- TCP /IP协议详解【转】
转自:https://www.jianshu.com/p/0cf648510bce?utm_campaign=maleskine&utm_content=note&utm_medium ...
- TCP/IP协议详解概述
TCP/IP协议详解卷1--第一章概述--读书笔记 作者:vpoet 日期:2015/06/25 注:本系列的文章只是作者对TCP/IP协议的理解,难免会出现纰漏或者不完整,当然也有可能很肤浅,希望大 ...
- IP协议详解(转)
本文转载自博文协议森林05 我尽力 (IP协议详解).这篇博文写的很有趣味,特转载! IPv4与IPv6头部的对比 我们已经在IP接力中介绍过,一个IP包分为头部(header)和数据(payload ...
- IP地址和子网划分学习笔记之《IP地址详解》
2018-05-03 18:47:37 在学习IP地址和子网划分前,必须对进制计数有一定了解,尤其是二进制和十进制之间的相互转换,对于我们掌握IP地址和子网的划分非常有帮助,可参看如下目录详文. ...
- TCP/IP协议详解---概述
工作之后,才发现以前在学校里学的东西忘得太快太干净了,现在需要一点点地捡起来了,要不然写几行程序会闹很多笑话会出现很多bug的.从今天开始,翻一翻<TCP/IP协议详解 卷1>这本 ...
- 第二章 IP协议详解
第二章 IP协议详解 2.1 IP服务的特点 它为上层协议提供了无状态,无连接,不可靠的服务 名称 简介 优点 缺点 对付缺点的方法 无状态 IP通信双方不同步传输数据的状态信息 无须为保持通信的状态 ...
- linux高性能服务器编程 (二) --IP协议详解
第二章 IP协议详解 什么是IP协议:IP 协议是TCP/IP协议族的动力,它为上层提供了无状态.无连接.不可靠的服务. IP 头部信息:头部信息会出现在每一个IP数据报上,便于记录IP通信的源端IP ...
随机推荐
- java:Maven(Maven_ssm)
1.maven_ssm: DOS命令向maven仓库导入jar包: mvn install:install-file -Dfile=F:\jars\json-lib-2.4-jdk15.jar -Dg ...
- Day01:API文档 / 字符串基本操作
JDK API 什么是JDK API? JDK中包含大量的API类库,所谓AP就是一些写好的,可提供直接调用的功能(在Java语言中,这些功能以类的形式封装). JDK API包含的类库功能强大,经常 ...
- How do I add a Foreign Key Field to a ModelForm in Django?
What I would like to do is to display a single form that lets the user: Enter a document title (from ...
- cocos2dx[3.2](5) 屏幕适配
1.两个分辨率 1.1.窗口分辨率 在AppDelegate.cpp中有个设置窗口分辨率的函数.该函数是设置了我们预想设备的屏幕大小,也就是应用程序窗口的大小. // glView->setFr ...
- 灰度图像的自动阈值分割(Otsu 法)
关于otsu分割方法,这个文章讲的是最好的,清晰易懂,一看就是作者认真思考过的. 因为在看这个算法的时候我就想,如果一个很大的图像上,大部分像素值都在0 - 50范围内,但是有很小一块像素值在240的 ...
- Brew 替换为国内源Mac
# 替换brew.git cd "$(brew --repo)" git remote set-url origin https://mirrors.aliyun.com/home ...
- poj3761(反序表)
题目链接:https://vjudge.net/problem/POJ-3761 题意:给出n和k,求通过k趟冒泡排序得到长为n的有序排列(元素为n个不同的数)的原排列有多少个. 思路: 先给出反序表 ...
- [Python3] 025 包
目录 1. 模块 1.1 模块是什么? 1.2 为什么用模块? 1.3 如何定义模块? 1.4 如何使用模块? 1.4.1 例子1 1.4.2 例子2 1.4.3 例子3 1.4.4 例子4 1.4. ...
- OpenTSDB查询和写入毫秒级数据
由于OpenTSDB没有支持Java的SDK进行调用,所以基于Java开发OpenTSDB的调用将要依靠HTTP请求的方式进行. 1.毫秒级数据写入 /api/put:通过POST方式插入JSON格式 ...
- 文件的三种打开方式及with管理文件上下文
文件的三种打开方式及with管理文件上下文 一.文件的三种打开方式 1.1 只读 f = open(r'D:\pycharm\yjy\上海python学习\456.txt','r',encoding= ...