计算机网络(IPv4部分)
IPv4
IPv4是目前使用最广泛的IP协议,它的地址长度为32位,通常用点分十进制表示。
1 | # 32位二进制 |
如何将32位二进制转换为点分十进制呢?将32位二进制分成4组,每组8位,然后将每组转换为十进制,就得到了点分十进制。
如何计算二进制的十进制呢?将二进制的每一位乘以2的n次方,n从0开始,从右往左递增,然后将每一位的结果相加,就得到了十进制。
1 | # 11000000.10101000.00000001.00000001 |
技巧:一般IPv4地址32位分成4组,每组8位,每组的最大值为255,所以第8位为1的二进制的十进制最大值为255,第8位为0的二进制的十进制最大值为127。
那么,十进制怎么转化成二进制呢?将十进制除以2,得到的余数就是二进制的每一位,然后将商再除以2,得到的余数就是二进制的每一位,以此类推,直到商为0为止,然后将余数从下往上排列,就得到了二进制。
1 | # 192 |
分类编址IPv4地址
IP地址是指互联网上的每一台主机的地址,它由网络号和主机号组成,网络号用来标识主机所在的网络,主机号用来标识主机。
1 | IP地址 = 网络号 + 主机号 |
A类IP地址一个A类IP地址由1字节的网络地址和3字节主机地址组成,即8位网络地址和24位主机地址,它主要为大型网络而设计的,网络地址的最高位必须是“0”, 地址范围从1.0.0.0 到127.0.0.0)。可用的A类网络有127个,每个网络能容纳16777214个主机。其中127.0.0.1是一个特殊的IP地址,表示主机本身,用于本地机器的测试。
2^7 = 128,减去两个保留地址,126个网络。每个网络可容纳2^24 - 2 = 16777214个主机。
注:
A:0-127,其中0代表任何地址,127为回环测试地址,因此,A类ip地址的实际范围是1-126.
默认子网掩码为255.0.0.0
B类IP地址一个B类IP地址由2个字节的网络地址和2个字节的主机地址组成,即16位网络地址和16位主机地址,它主要为中型网络而设计的,网络地址的最高位必须是“10”,地址范围从128.0.0.0到191.255.255.255。可用的B类网络有16382个,每个网络能容纳6万多个主机 。
2^14 = 16384,减去两个保留地址,16382个网络。每个网络可容纳2^16 - 2 = 65534个主机。
注:
B:128-191,其中128.0.0.0和191.255.0.0为保留ip,实际范围是128.1.0.0–191.254.0.0。
C类IP地址一个C类IP地址由3字节的网络地址和1字节的主机地址组成,即24位网络地址和8位主机地址,它主要为小型网络而设计的,网络地址的最高位必须是“110”。范围从192.0.0.0到223.255.255.255。C类网络可达209万余个,每个网络能容纳254个主机。
2^21 = 2097152,减去两个保留地址,2097150个网络。每个网络可容纳2^8 - 2 = 254个主机。
注:
C:192-223,其中192.0.0.0和223.255.255.0为保留ip,实际范围是192.0.1.0–223.255.254.0
D类地址用于多点广播(Multicast)。 D类IP地址第一个字节以“lll0”开始,它是一个专门保留的地址。它并不指向特定的网络,目前这一类地址被用在多点广播(Multicast)中。多点广播地址用来一次寻址一组计算机,它标识共享同一协议的一组计算机。224.0.0.0到239.255.255.255用于多点广播 。
E类IP地址以“llll0”开始,为将来使用保留。240.0.0.0到255.255.255.254,255.255.255.255用于广播地址。
全零(“0.0.0.0”)地址对应于当前主机。全“1”的IP地址(“255.255.255.255”)是当前子网的广播地址。
在IP地址3种主要类型里,各保留了3个区域作为私有地址,其地址范围如下:
A类地址:10.0.0.0~10.255.255.255
B类地址:172.16.0.0~172.31.255.255
C类地址:192.168.0.0~192.168.255.255
eg.
1 | 0.0.0.0 是一个特殊的IP地址,表示主机本身,用于本地机器的测试。 |
| 类别 | 可用网络数 | 每个网络可容纳的主机数 |
|---|---|---|
| A | 126 | 16777214 |
| B | 16382 | 65534 |
| C | 2097150 | 254 |
划分子网的IPv4地址
子网掩码是用来划分网络地址和主机地址的,它是一个32位的二进制数,其中网络地址部分全为“1”,主机地址部分全为“0”。子网掩码的作用是将IP地址划分为网络地址和主机地址两部分。
1 | IP地址 = 网络号 + 主机号 |
目的:将一个网络划分为多个子网,以满足不同的网络需求。
32位的子网掩码,从左到右,连续的1表示网络号,连续的0表示主机号。将划分的子网的IPv4地址和子网掩码进行逻辑与运算,得到的结果就是子网的网络号。
eg1.


eg2.

来自 Bilibili 计算机网络微课堂
默认子网掩码
默认子网掩码是指在没有划分子网的情况下,根据IP地址的类别,自动分配的子网掩码。
| IP地址类别 | 默认子网掩码 | 子网掩码的二进制表示 | 构成 |
|---|---|---|---|
| A | 255.0.0.0 | 11111111.00000000.00000000.00000000 | 8位网络号 + 24位主机号 |
| B | 255.255.0.0 | 11111111.11111111.00000000.00000000 | 16位网络号 + 16位主机号 |
| C | 255.255.255.0 | 11111111.11111111.11111111.00000000 | 24位网络号 + 8位主机号 |
无分类编址CIDR
CIDR(Classless Inter-Domain Routing,无分类域间路由选择),是为了解决IP地址的耗尽问题而提出的。CIDR采用了一种新的IP地址分配方法,它不再将IP地址看成是A、B、C类地址,而是将一个IP地址写成:IP地址/子网掩码的形式,其中“/”后面的数值表示子网掩码中连续的“1”的个数。
优点:CIDR可以将一个网络划分为多个子网,也可以将多个网络合并为一个网络,从而更加灵活地分配IP地址。
CIDR使用"斜线记法"来表示IP地址和子网掩码的组合,如:
eg.1
128.14.35.7/20
CIDR实际上是将网络前缀都相同的连续的IP地址块组成一个CIDR块,这样就可以用一个较短的前缀来表示一组IP地址块。
只要知道了CIDR地址块中任何一个IP地址,就可以知道CIDR地址块的全部细节
- 地址块中最小的IP地址
- 地址块中最大的IP地址
- 地址块中的IP地址总数
- 地址块聚合某类网络数量
- 地址掩码
eg.
来自 Bilibili 计算机网络微课堂
路由聚合(构造超网)
路由聚合是指将多个路由聚合成一个路由,从而减少路由表的规模,提高路由查找的效率。
路由聚合的基本思想是:将多个具有相同前缀的路由聚合成一个路由,这样就可以用一个较短的前缀来表示一组路由。
eg.
IPv4地址应用规划
为了更好地利用IPv4地址,需要对IPv4地址进行合理的规划,以便于管理和使用。
定长子网掩码(Fixed-Length Subnet Mask)
FLSM:指在一个网络中,所有子网的子网掩码都相同。
使用同一个子网掩码的子网,其主机数相同,这样就方便了管理。
每一个子网分配的主机数都是固定的,这样就不利于灵活地分配IP地址。
eg.


只能划分出2^n 个子网,每个子网的主机数都是2^m-2个,其中n+m=32。造成了大量的IP地址浪费,原因是:每个子网的主机数都是固定的,而实际使用的主机数往往比较少,这样就造成了IP地址的浪费。
可变长子网掩码(Variable-Length Subnet Mask)
VLSM:指在一个网络中,不同子网的子网掩码可以不同。
使用不同子网掩码的子网,其主机数可以不同,这样就方便了管理。
每一个子网分配的主机数都是可变的,这样就利于灵活地分配IP地址。
eg.

总结
