查看ip地址:
在 Windows 上是 ipconfig,在 Linux 上是 ifconfig 或者ip addr。
登录进入一个被裁剪过的非常小的 Linux 系统中,发现既没有 ifconfig 命令,也没有 ip addr 命令,你是不是感觉这个系统压根儿没法用?这个时候,你可以自行安装 net-tools 和 iproute2 这两个工具。当然,大多数时候这两个命令是系统自带的。
IP 地址被点分隔为四个部分,每个部分 8 个 bit,所以 IP 地址总共是 32 位。因为不够用,于是就有了 IPv6,这个有 128 位。
本来 32 位的 IP 地址就不够,还被分成了 5 类:
这里面有个尴尬的事情,就是 C 类地址能包含的最大主机数量实在太少了,只有 254 个。当时设计的时候恐怕没想到,现在估计一个网吧都不够用吧。而 B 类地址能包含的最大主机数量又太多了。6 万多台机器放在一个网络下面,一般的企业基本达不到这个规模,闲着的地址就是浪费。
于是有了一个折中的方式叫作
无类型域间选路
,简称
CIDR
。这种方式打破了原来设计的几类地址的做法,将 32 位的 IP 地址一分为二,前面是
网络号
,后面是
主机号
。从哪里分呢?你如果注意观察的话可以看到,10.100.122.2/24,这个 IP 地址中有一个斜杠,斜杠后面有个数字24。这种地址表示形式,就是CIDR。后面 24 的意思是,32 位中,前 24 位是网络号,后 8 位是主机号。
伴随着 CIDR 存在的,一个是
广播地址
,10.100.122.255。如果发送这个地址,所有10.100.122 网络里面的机器都可以收到。另一个是
子网掩码,
255.255.255.0。
将子网掩码和 IP 地址进行 AND 计算。前面三个 255,转成二进制都是 1。1 和任何数值取AND,都是原来数值,因而前三个数不变,为 10.100.122。后面一个 0,转换成二进制是 0,0 和任何数值取 AND,都是 0,因而最后一个数变为 0,合起来就是 10.100.122.0。这就是
网络号
。
将子网掩码和 IP 地址按位计算 AND,就可得到网络号。
公有 IP 地址有个组织统一分配,你需要去买。如果你搭建一个网站,给你学校的人使用,让你们学校的 IT 人员给你一个 IP 地址就行。但是假如你要做一个类似网易 163 这样的网站,就需要有公有 IP 地址,这样全世界的人才能访问。
表格中的 192.168.0.x 是最常用的私有 IP 地址。你家里有 Wi-Fi,对应就会有一个 IP 地址。一般你家里地上网设备不会超过 256 个,所以 /24 基本就够了。有时候我们也能见到 /16 的CIDR,这两种是最常见的,也是最容易理解的。
16.158.165.91/22 这个 CIDR:
/22 不是 8 的整数倍,不好办,只能先变成二进制来看。16.158 的部分不会动,它占了前 16位。中间的 165,变为二进制为10100101。除了前面的 16 位,还剩 6 位。所以,这 8 位中前6 位是网络号,16.158.<101001>,而<01>.91 是机器号。第一个地址是 16.158.<101001><00>.1,即 16.158.164.1。子网掩码是 255.255.<111111><00>.0,即 255.255.252.0。广播地址为 16.158.<101001><11>.255,即16.158.167.255。
这五类地址中,还有一类 D 类是
组播地址。
使用这一类地址,属于某个组的机器都能收到。
在 IP 地址的后面有个 scope,对于 eth0 这张网卡来讲,是 global,说明这张网卡是可以对外的,可以接收来自各个地方的包。对于 lo 来讲,是 host,说明这张网卡仅仅可以供本机相互通信。lo 全称是
loopback
,又称
环回接口
,往往会被分配到 127.0.0.1 这个地址。这个地址用于本机通信,经过内核处理后直接返回,不会在任何网络中出现。
MAC
地址
在 IP 地址的上一行是 link/ether fa:16:3e:c7:79:75 brd ff:ff:ff:ff:ff:ff,这个被称为
MAC 地址,
是一个网卡的物理地址,用十六进制,6 个 byte 表示。
MAC 地址号称全局唯一,为什么网络通讯不直接用MAC地址?
因为一个网络包要从一个地方传到另一个地方,除了要有确定的地址,还需要有定位功能。
而有门牌号码属性的 IP 地址,才是有远程定位功能的。
MAC 地址更像是身份证,是一个唯一的标识。
它的唯一性设计是为了组网的时候,不同的网卡放在一个网络里面的时候,可以不用担心冲突。从硬件角度,保证不同的网卡有不同的标识。
MAC 地址是有一定定位功能的,只不过范围非常有限,局限在一个子网里面。
例如,从 192.168.0.2/24 访问
192.168.0.3/24 是可以用 MAC 地址的。一旦跨子网,即从 192.168.0.2/24 到
192.168.1.2/24,MAC 地址就不行了,需要 IP 地址起作用了。
网络设备的状态标识
解析完了 MAC 地址,我们再来看 < BROADCAST,MULTICAST,UP,LOWER_UP > 是干什么 的?这个叫作
net_device flags
,
网络设备的状态标识
。
UP 表示网卡处于启动的状态;
BROADCAST 表示这个网卡有广播地址,可以发送广播包;
MULTICAST 表示网卡可以发送多播包;
LOWER_UP 表示 L1 是启动的,也即网线插着呢。
MTU1500 是指什么意思呢?是哪一层的概念呢?最大传输单元 MTU 为 1500,这是以太网的默认值。
网络包是层层封装的。MTU 是二层 MAC 层的概念。MAC 层有 MAC 的头,以太网规定连 MAC 头带正文合起来,不允许超过 1500 个字节。正文里面有 IP 的头、TCP 的头、HTTP 的头。如果放不下,就需要分片来传输。
qdisc pfifo_fast 是什么意思呢?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 头里面的一个字段,代表了当前的包是高优先级的,还是低优先级的。
总结:
IP 是地址,有定位功能;MAC 是身份证,无定位功能;
CIDR 可以用来判断是不是本地人;
IP 分公有的 IP 和私有的 IP。
来源:oschina
链接:https://my.oschina.net/u/3944601/blog/3061754