网络协议系列文章
网络协议(一):基本概念、计算机之间的连接方式
网络协议(二):MAC地址、IP地址、子网掩码、子网和超网
目录
- 一、MAC地址
- 二、IP地址
- 1、IP地址的组成
- 2、IP地址的分类
- 三、子网划分
- 1、等长子网划分
- 2、变长子网划分
- 四、超网
- 五、判断一个网段是子网还是超网
一、MAC地址
- 每个网卡都有一个6字节(48bit)的MAC地址 (Media Access Control Address)
- MAC地址全球唯一,固化在网卡的ROM中,由 IEEE802 标准规定
- 前3字节:OUI (Organizationally Unique Identifier),组织唯一标识符由 IEEE 的注册管理机构分配给厂商
- 后3字节:网络接口标识符由厂商自行分配
- OUI 查询:可以根据OUI查询出对应的厂商
- http://standards-oui.ieee.org/oui.txt
- https://mac.bmcx.com
不同系统MAC地址格式
- Windows:40-55-82-0A-8C-6D
- Linux、Android、Mac、iOS:40:55:82:0A:8C:6D
- Packet Tracer:4055.820A.8C6D
注意: 当48位全为1时,代表广播地址:FF-FF-FF-FF-FF-FF
获取MAC地址
- Windows:ipconfig /all
- Mac:ifconfig
- ARP广播获取(所有系统通用)
- 当不知道对方主机的MAC地址时,可以通过发送ARP广播获取对方的MAC地址
- 获取成功后,会缓存IP地址、MAC地址的映射信息,俗称:ARP缓存
- 通过ARP广播获取的MAC地址,属于动态(dynamic)缓存存储时间比较短(默认是2分钟),过期就自动删除
- arp -a [主机地址]:查看ARP缓存
- arp -d [主机地址]:删除ARP缓存
- arp -s 主机地址 MAC地址:增加一条缓存信息(这是静态缓存,存储时间较久,不同系统的存储时间不同)
二、IP地址
- IP地址 (Internet Protocol Address):互联网上的每一个主机都有一个IP地址
- 最初是IPv4 版本,32bit(4字节),2019年11月25日,全球的IP地址已经用完
- 后面推出了IPv6 版本,128bit(16字节)
- 我们在学习中讨论的都是 IPV4
1、IP地址的组成
- IP地址由2部分组成:网络标识(网络ID)、主机标识(主机ID)
- 通过子网掩码(subnet mask)可以得知 网络ID 、主机ID
- 主机所在的网段 = 子网掩码 & IP地址
IP地址:192.168.1.10
子网掩码:255.255.255.01100 0000 . 1010 1000 . 0000 0001 . 0000 1010
& 1111 1111 . 1111 1111 . 1111 1111 . 0000 0000
----------------------------------------------------1100 0000 . 1010 1000 . 0000 0001 . 0000 0000网段:192.168.1.0
- 网段是由子网掩码计算得出,只有IP地址无法得知网段
IP地址:130.168.1.10
子网掩码:255.255.0.0
网段:130.168.0.0该网段最多有 256*256-2 个IP地址
-2是因为: 全0代表网段,全1代表广播
网段和广播无法分配IP地址.
2、IP地址的分类
- 判断IP地址的类别只要看第一部分即可
- 只有 A\B\C 类地址才能分配给主机
- 主机ID为 全0,表示主机所在的网段,如 192.168.1.0
- 主机ID为 全1,表示主机所在网段的全部主机(广播),如 192.168.1.255
A类地址
- 默认子网掩码是 255.0.0.0
网络ID
- 0 不能用,127 作为保留网段
- 其中127.0.0.1是本地环回地址(Loopback),代表本机地址
- 可以分配给主机的第1部分的取值范围是:1~126
主机ID
- 第2、3、4部分的取值范围是:0~255
- 每个A类网络能容纳的最大主机数是:256256256–2 = 2^24–2 = 16777214(1600多万)
B类地址
- 默认子网掩码是 255.255.0.0
网络ID
- 第1部分的取值范围是:128~191
- 第2部分的取值范围是:0~255
主机ID
- 第3、4部分的取值范围是:0~255
- 每个B类网络能容纳的最大主机数是:256*256-2 = 2^16-2 = 65534(6万多)
C类地址
- 默认子网掩码是 255.255.255.0
网络ID
- 第1部分的取值范围是:192~223
- 第2、3部分的取值范围是:0~255
主机ID
- 第4部分的取值范围是:0~255
- 每个C类网络能容纳的最大主机数是:256-2 = 254
D类地址
- 没有子网掩码,用于多播(组播)地址
- 第一部分取值是:224~239
E类地址
- 保留为今后使用
- 第一部分取值是:240~255
子网掩码的CIDR表示方法
- CIDR (Classless Inter-Domain Routing),无类别域间路由
- 192.168.1.100/24,代表子网掩码有24个1,也就是 255.255.255.0
- 123.210.100.200/16,代表子网掩码有16个1,也就是 255.255.0.0
计算工具:https://www.sojson.com/convert/subnetmask.html
三、子网划分
子网划分:借用主机位作子网位,划分出多个子网
为什么要进行子网划分?
如果需要让 200 台主机在同一个网段内,可以分配一个 C类网段,比如192.168.1.0/24
- 共 254 个可用IP地址:192.168.1.1 ~ 192.168.1.254
- 多出 54 个空闲的IP地址,这种情况并不算浪费资源
如果需要让 500 台主机在同一个网段内,那就分配一个 B类网段,比如191.100.0.0/16
- 共 65534 个可用IP地址:191.100.0.1 ~ 191.100.255.254
- 多出 65034 个空闲的IP地址,这种情况属于极大的浪费资源
如何尽量避免浪费IP地址资源?
- 合理进行子网划分
子网划分类别
- 等长子网划分:将一个网段等分成多个子网,每个子网的可用IP地址数量一样
- 变长子网划分:每个子网的可用IP地址数量可以是不一样的
子网划分器:http://www.ab126.com/web/3552.html
1、等长子网划分
C类子网划分:192.168.0.0/24
等分成 2 个子网:
- 主机部分右移一位,分成2个子网,主机部分由8位表示改为7为表示(但是ip地址第四部分还是后八位表示)
- 每个子网可分配ip个数:2^7 = 128 - 2 = 126
- 以前255.255.255.0是二进制24个1,现在是25个1,所以子网掩码:255.255.255.128或25
- A子网网段:主机部分2~8位都是0,第1位是0,192.168.0.0
- A子网广播ip:主键部分2~8位都是1,第一位是0,192.168.0.127
- B子网网段:主机部分2~8位都是0,第1位是1,192.168.0.128
- B子网广播地址:主键部分2~8位都是1,第一位是1,192.168.0.255
等分成 4 个子网:
- 主机部分右移二位,分成4个子网,主机部分由8位表示改为6位表示
- 每个子网可分配ip个数:2^6 = 64 - 2 = 62
- 以前255.255.255.0是二进制24个1,现在是26个1,所以子网掩码:255.255.255.192或26
- 等分成 4 个子网的广播地址:192.168.0.63、192.168.0.127、192.168.0.191、192.168.0.255
等分成 8 个子网:
- 主机部分右移三位,分成8个子网,主机部分由8位表示改为5位表示
- 每个子网可分配ip个数:2^5 = 32 - 2 = 30
- 以前255.255.255.0是二进制24个1,现在是27个1,所以子网掩码:255.255.255.224或27
A、B类子网划分
B类子网划分:
A类子网划分:
子网划分实践
例1:他们还是属于同一个网段,可以直接 ping 通
例2:它们分别属于 192.168.0.0 和 192.168.0.128 网段,需要用路由器并设置网关才可以 ping 通
2、变长子网划分
- 不等长的子网,它们的子网掩码也不同
- 假设上图是对192.168.0.0/24进行变长子网划分
- C网段:子网掩码是255.255.255.128/25 | 主机可用ip:192.168.0.1~192.168.0.126 | ip个数:126个
- B网段:子网掩码是255.255.255.192/26 | 主机可用ip:192.168.0.129~192.168.0.190 | ip个数:62个
- A网段:子网掩码是255.255.255.224/27 | 主机可用ip:192.168.0.193~192.168.0.222 | ip个数:30个
- D网段:子网掩码是255.255.255.252/30 | 主机可用ip:192.168.0.253~249.168.0.250 | ip个数:2个
- E网段:子网掩码是255.255.255.252/30 | 主机可用ip:192.168.0.253~192.168.0.254 | ip个数:2个
下列两台计算机可以正常通信吗?
- 答案:不可以
- 计算机0 想要发送数据包,先判断计算机1是否和自己处于同一个网段,计算网段的方法是:IP地址 & 子网掩码
- 计算机0判断计算机1的网段为 192.168.10.10 & 255.255.255.0 = 192.168.10.0(对方ip & 自己子网掩码)
- 而计算机0判断自身所处网段为 192.168.0.10 & 255.255.255.0 = 192.168.0.0
- 双方不处于同一网段,所以计算机0无法将数据包发给计算机1(不同网段的数据通信需要路由器)
四、超网
- 超网:跟子网反过来,它是将多个连续的网段合并成一个更大的网段
为什么需要超网?
- 原本有200台计算机使用192.168.0.0/24网段,现在希望增加200台设备到同一个网段
- 200台在192.168.0.0/24网段,200台在192.168.1.0/24网段
- 合并192.168.0.0/24、192.168.1.0/24为一个网段:192.168.0.0/23(子网掩码往左移动1位)
- 主机部分左移一位,两个网段合并成一个,主机部分由8位表示改为9位表示(但是ip地址第三、四部分还是以前的八位表示)
- 可分配ip个数:2^9 = 512 - 2 = 510
- 网段:192.168.0.0 广播IP:192.168.1.255
- 可用IP地址:192.168.0.1~192.168.1.254
- 以前255.255.255.0是二进制24个1,现在是27个1,所以子网掩码:255.255.255.224或27
合并4个网段
- 子网掩码向左移动 2 位,可以合并 4 个网段
- 将 192.168.0.0/24、192.168.1.0/24、192.168.2.0/24、192.168.3.0/24 合并为192.168.0.0/22 网段
子网合并的规律
- 第一个网段的网络号以二进制 0 结尾,那么由它开始连续的2 个网段,能通过左移1位子网掩码进行合并
- 第一个网段的网络号以二进制 00 结尾,那么由它开始连续的4 个网段,能通过左移2位子网掩码进行合并
- 第一个网段的网络号以二进制 000 结尾,那么由它开始连续的8 个网段,能通过左移3位子网掩码进行合并
五、判断一个网段是子网还是超网
- 首先看该网段的类型,是A类网络、B类网络、C类网络
- A类子网掩码的位数是8(255.0.0.0)
- B类子网掩码的位数是16(255.255.0.0)
- C类子网掩码的位数是24(255.255.255.0)
- 如果该网段的子网掩码位数比默认子网掩码多,就是子网
- 如果该网段的子网掩码位数比默认子网掩码少,则是超网
例如:
判断 25.100.0.0/16 是子网还是超网:
根据 25 判断出这是个 A 类网络,默认子网掩码 8 位
由于该网段子网掩码 16 位,比默认多,所以是子网
判断 200.100.0.0/16 是子网还是超网:
根据 200 判断出这是个 C 类网络,默认子网掩码 24 位
由于该网段子网掩码 16 位,比默认少,所以是超网