网络协议底层原理(二):Mac地址、IP地址、子网掩码、网段、子网划分

一、Mac地址
    1. 每一个网卡都会有一个6字节Mac地址(Media Access Control Address),每一个Mac地址都是全球唯一的,固化在了网卡的ROM中,遵守IEEE802标准
    1. Mac地址前三个字节是组织唯一标识符,是IEEE管理机构分配给厂商的;后三个字节是网络接口标识符,是厂商自行分配的,如下所示


      Mac地址的组成.png
    1. Mac地址在不同操作系统下的,格式不同,如下所示,当6个字节48位全是1时,代表广播地址,即FF-FF-FF-FF-FF-FF
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
    1. 查询本机Mac地址的方法,如下所示:
Windows下输入命令:ipconfig -all
Mac下输入命令:ifconfig
    1. 我们知道计算机想要通讯,不但要知道对方的IP地址,还要知道对方的Mac地址,IP地址一般对方会提供,Mac地址一般是通过发送ARP广播来获取的,ARP广播获取成功后会缓存IP地址、Mac地址的映射信息,俗称ARP缓存,通过ARP广播获取的Mac地址,属于动态缓存,相关命令如下所示,(ARP是地址解析协议,可以通过IP获取Mac地址
arp -a [主机地址]  : 查询ARP缓存
arp -d [主机地址]  : 删除ARP缓存
arp -s [主机地址] [Mac地址]  : 增加一条静态缓存,这是静态缓存,存储时间比较久
二、IP地址
    1. IP地址全称是Internet Protocol Address,互联网上每一个主机都有一个IP地址,最初是IPv4,占用4个字节,32位,已于2019年用完,后来发展为IPv6,占用16个字节,我们先研究IPv4,其组成如下所示:
      IPv4的4个字节32位.png
    1. IP地址由两部分组成:网络ID + 主机ID,我们可以通过子网掩码得知一个IP地址的网络ID和主机ID是什么,子网掩码其实就是说明IP地址中的哪部分是网络ID,哪部分是主机ID的,例如:IP地址是192.168.10.12/24,后面的/24就是子网掩码,说明IP地址的前24位是网络ID,剩下的就是主机ID,如下所示:
IP地址是:192.168.10.12/24
子网掩码是:/24
网络ID是前24位,也就是:192.168.10.0 (后面位数全部用0补齐)
主机ID是最后8位,也就是12,最后8位代表了一个范围:0~255,也就是说这个网段中,最多可以共存254个IP地址,也就是最多共存255个主机
    1. 我们常说的网段,其实就是某一段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地址的分类
    1. IP地址按照网络ID和主机ID所占的位数不同进行分类,一般可分为:A类、B类、C类、D类、E类,其中D类以1110开头,为多播地址;E类1111开头,保留为今后使用;只有A、B、C类地址才能分配给主机,如下所示:
A类、B类、C类IP地址.png
    1. 主机ID全是0,代表主机所在的网段;主机ID全是1,代表主机所在网段的全部主机,也就会广播
    1. 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类地址.png
    1. B类地址前16位网络ID后16位主机ID,如下图所示,网络ID中,第1部分取值范围是128 ~ 191,第2部分取值范围是0 ~ 255;主机ID中,第3、第4部分取值范围都是是0 ~ 255,也就是说每个B类网络最多能容纳的主机数是256 * 256 - 2 = 65534
B类地址
    1. C类地址前24位网络ID后8位主机ID,如下图所示,网络ID中,第1部分取值范围是192 ~ 223,第2、第3部分取值范围是0 ~ 255;主机ID中,第4部分取值范围都是是0 ~ 255,也就是说每个C类网络最多能容纳的主机数是256 - 2 = 254
C类地址.png
    1. D类地址,以1110开头,没有子网掩码,用于多播地址,如下图所示,第1部分取值范围是224 ~ 239
D类地址
    1. E类地址,以1111开头,没有子网掩码,保留为今后使用,如下图所示,第1部分取值范围是240 ~ 255
E类地址
四、子网划分
    1. 子网掩码我们经常用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
    1. 为什么要进行子网划分?当我们需要让500台主机在同一个网段内时,因为C类网段最多有254个主机数,不够用,所以就需要分配一个B类网段,而B类网段的主机数是65534个,远远超过了500个,多了65034个空闲的IP地址,极大的浪费了资源,所以这个时候,我们就需要进行合理的子网划分
    1. 子网划分就是:借用主机位作为子网位,划分出多个子网,还是上面这个例子,我们继续用B类地址,但是让前31位作为网络ID后9位作为主机ID,这样主机数就剩下510个了,刚好满足我们的需求,也不会浪费IP地址了
    1. 其实子网就是把子网掩码往右移动,使主机ID的一部分变成了网络ID,每往右挪动一位,就会使主机ID的数量缩小二分之一
    • 与此对应的还有超网,超网就是把主机ID的位数往左移动,使网络ID的一部分变成了主机ID,每往左挪动一位,就会使主机ID的数量变大2倍
    1. 如何判断一个网段是子网还是超网?
    • (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类网段的超网

你可能感兴趣的:(网络协议底层原理(二):Mac地址、IP地址、子网掩码、网段、子网划分)