网络协议底层原理(二):Mac地址、IP地址、子网掩码、网段、子
2022-01-03 本文已影响0人
冰风v落叶
一、Mac地址
- 每一个网卡都会有一个
6字节的Mac地址(Media Access Control Address),每一个Mac地址都是全球唯一的,固化在了网卡的ROM中,遵守IEEE802标准
- 每一个网卡都会有一个
-
Mac地址前三个字节是组织唯一标识符,是IEEE管理机构分配给厂商的;后三个字节是网络接口标识符,是厂商自行分配的,如下所示
Mac地址的组成.png
-
- Mac地址在不同操作系统下的,格式不同,如下所示,当6个字节48位全是1时,代表
广播地址,即FF-FF-FF-FF-FF-FF
- Mac地址在不同操作系统下的,格式不同,如下所示,当6个字节48位全是1时,代表
Windows : 40-55-82-0A-8C-6D
Linux、Android、Mac、iOS: 40:55:82:0A:8C:6D
Packet Tracer: 4055.820A.8C6D
广播地址:FF-FF-FF-FF-FF-FF
- 查询本机Mac地址的方法,如下所示:
Windows下输入命令:ipconfig -all
Mac下输入命令:ifconfig
- 我们知道计算机想要通讯,不但要知道对方的
IP地址,还要知道对方的Mac地址,IP地址一般对方会提供,Mac地址一般是通过发送ARP广播来获取的,ARP广播获取成功后会缓存IP地址、Mac地址的映射信息,俗称ARP缓存,通过ARP广播获取的Mac地址,属于动态缓存,相关命令如下所示,(ARP是地址解析协议,可以通过IP获取Mac地址)
- 我们知道计算机想要通讯,不但要知道对方的
arp -a [主机地址] : 查询ARP缓存
arp -d [主机地址] : 删除ARP缓存
arp -s [主机地址] [Mac地址] : 增加一条静态缓存,这是静态缓存,存储时间比较久
二、IP地址
- IP地址全称是
Internet Protocol Address,互联网上每一个主机都有一个IP地址,最初是IPv4,占用4个字节,32位,已于2019年用完,后来发展为IPv6,占用16个字节,我们先研究IPv4,其组成如下所示:
IPv4的4个字节32位.png
- IP地址全称是
- IP地址由两部分组成:
网络ID + 主机ID,我们可以通过子网掩码得知一个IP地址的网络ID和主机ID是什么,子网掩码其实就是说明IP地址中的哪部分是网络ID,哪部分是主机ID的,例如:IP地址是192.168.10.12/24,后面的/24就是子网掩码,说明IP地址的前24位是网络ID,剩下的就是主机ID,如下所示:
- IP地址由两部分组成:
IP地址是:192.168.10.12/24
子网掩码是:/24
网络ID是前24位,也就是:192.168.10.0 (后面位数全部用0补齐)
主机ID是最后8位,也就是12,最后8位代表了一个范围:0~255,也就是说这个网段中,最多可以共存254个IP地址,也就是最多共存255个主机
- 我们常说的
网段,其实就是某一段IP地址的范围,所谓的同一个网段,就是用IP地址与子网掩码做了一个按位与&运算后得出一个值,两个IP地址的的得出来的值相同,就认为这两个IP地址是在同一个网段里;这里计算有个小技巧:任何值与 1按位与就是这个值本身,任何值与 0按位与都是0,如下所示:
- 我们常说的
IP地址是:192.168.10.12/24
网段就是:192.168.10.12 & 255.255.255.0 = 192.168.10.0
计算过程如下,任何值与1`按位与`就是这个值本身,任何值与0`按位与`都是0
1100 0000 1010 1000 0000 1010 0000 1100
& 1111 1111 1111 1111 1111 1111 0000 0000
= 1100 0000 1010 1000 0000 1010 0000 0000
转成十进制就是:192.168.10.0
- 4.计算机和其他设备通讯前,会先判断目标主机和自己
是否在同一个网段中:- 如果在同一个网段中,则不需要路由器转发
- 如果不是同一个网段,就需要路由器进行转发
三、IP地址的分类
- IP地址按照
网络ID和主机ID所占的位数不同进行分类,一般可分为:A类、B类、C类、D类、E类,其中D类以1110开头,为多播地址;E类1111开头,保留为今后使用;只有A、B、C类地址才能分配给主机,如下所示:
- IP地址按照
A类、B类、C类IP地址.png
- 主机ID
全是0,代表主机所在的网段;主机ID全是1,代表主机所在网段的全部主机,也就会广播
- 主机ID
-
-
A类地址,
前8位为网络ID,后24位为主机ID,如下图所示,但是由于D类和E类所占的保留位不能用,所以A类地址的网络ID的第一位必须为0,而且127是保留字段也不能用,所以A类地址的网络ID的取值范围是1 ~ 126;
- A类地址的
主机ID的取值范围都是0 ~ 255,所以A类IP地址的最大主机是:256 * 256 * 256 - 2 = 16777214,也就是每个A类网络最多可以容纳16777214个IP
-
A类地址,
A类地址.png
-
B类地址,
前16位为网络ID,后16位为主机ID,如下图所示,网络ID中,第1部分取值范围是128 ~ 191,第2部分取值范围是0 ~ 255;主机ID中,第3、第4部分取值范围都是是0 ~ 255,也就是说每个B类网络最多能容纳的主机数是256 * 256 - 2 = 65534
-
B类地址,
B类地址
-
C类地址,
前24位为网络ID,后8位为主机ID,如下图所示,网络ID中,第1部分取值范围是192 ~ 223,第2、第3部分取值范围是0 ~ 255;主机ID中,第4部分取值范围都是是0 ~ 255,也就是说每个C类网络最多能容纳的主机数是256 - 2 = 254
-
C类地址,
C类地址.png
-
D类地址,以
1110开头,没有子网掩码,用于多播地址,如下图所示,第1部分取值范围是224 ~ 239
-
D类地址,以
D类地址
-
E类地址,以
1111开头,没有子网掩码,保留为今后使用,如下图所示,第1部分取值范围是240 ~ 255
-
E类地址,以
E类地址
四、子网划分
- 子网掩码我们经常用
CIDR来表示,CIDR全称是无类别域间路由,其实很简单,就是IP地址后面跟/数字,如下所示,/后面的数字代表子网掩码的位数,也就是网络ID所占的位数,例如:/24就代表IP地址的前24位是网络ID,因为IP地址一共32位,所以后面8位就是网络ID
- 子网掩码我们经常用
192.168.1.100/24,代表子网掩码有24个1,也就是255.255.255.0
192.168.1.100/16,代表子网掩码有16个1,也就是255.255.0.0
192.168.1.100/8, 代表子网掩码有8个1, 也就是255.0.0.0
- 为什么要进行子网划分?当我们需要让
500台主机在同一个网段内时,因为C类网段最多有254个主机数,不够用,所以就需要分配一个B类网段,而B类网段的主机数是65534个,远远超过了500个,多了65034个空闲的IP地址,极大的浪费了资源,所以这个时候,我们就需要进行合理的子网划分
- 为什么要进行子网划分?当我们需要让
- 子网划分就是:借用
主机位作为子网位,划分出多个子网,还是上面这个例子,我们继续用B类地址,但是让前31位作为网络ID,后9位作为主机ID,这样主机数就剩下510个了,刚好满足我们的需求,也不会浪费IP地址了
- 子网划分就是:借用
-
- 其实子网就是把子网掩码
往右移动,使主机ID的一部分变成了网络ID,每往右挪动一位,就会使主机ID的数量缩小二分之一;
- 与此对应的还有
超网,超网就是把主机ID的位数往左移动,使网络ID的一部分变成了主机ID,每往左挪动一位,就会使主机ID的数量变大2倍;
- 其实子网就是把子网掩码
-
- 如何判断一个网段是子网还是超网?
-
(1). 首先看网段类型是A类、B类还是C类,主要通过
IP取值范围来区分,默认情况下,A类的子网掩码是8位,B类是16位,C类是24位; -
(2). 然后如果该网段的子网掩码比默认子网掩码多,就是子网;如果比默认子网掩码少,就是超网;
-
(3). 比如:
25.100.0.0/16是一个A类网段的子网;200.100.0.0/16就是C类网段的超网