目录
一、IP编址
1、IP地址组成
2、IP地址表达
3、IP 地址分类
4、IP地址类型
5、IP网络通信
6、子网掩码
7、默认子网掩码
8、IP 地址规划
9、有类IP编制缺陷
10、VLSM
11、变长子网掩码案例
12、网关
13、无类域间路由
一、IP编址
网络层位于数据链路层与传输层之间。网络层中包含了许多协议,其中最为重要的协议就是IP 协议。网络层提供了IP 路由功能。理解IP 路由除了要熟悉IP 协议的工作机制之外,还必须理解IP 编址以及如何合理地使用IP 地址来设计网络。
1、IP地址组成
IP 地址分为网络部分和主机部分。
IP 地址由32 个二进制位组成,通常用点分十进制形式表示。
IPv4 地址为32 比特的二进制数,通常用点分十进制表示。IP 地址用来标识网络中的设备,具有IP 地址的设备可以在同一网段内或跨网段通信。IP 地址包括两部分,第一部分是网络号,表示IP 地址所属的网段,第二部分是主机号,用来唯一标识本网段上的某台网络设备。如下表所示(这只是一个例子):
网络位(号) | 主机位(号) |
192.168.1 | .1 |
11000000.10101000.00000001 | .00000001 |
每个网段上都有两个特殊地址不能分配给主机或网络设备。
第一个是该网段的 网络地址 ,该IP 地址的主机位为全0,表示一个网段。如下表所示
网络位(号) | 主机位(号) |
192.168.1 | .0 |
11000000.10101000.00000001 | .00000000 |
第二个地址是该网段中的 广播地址 ,目的地址为广播地址的报文会被该网段中的所有网络设备接收。广播地址的主机位为全1。
网络位(号) | 主机位(号) |
192.168.1 | .255 |
11000000.10101000.00000001 | .11111111 |
除网络地址和广播地址以外的其他IP 地址都可以作为网络设备的IP 地址。
2、IP地址表达
在IP 网络中,二进制和十六进制是常用的编码方式。
网络中的数据可以采用二进制、十进制或十六进制来表示。
进制 | 字符范围 | 基值 |
二进制(Binary) | 0 - 1 | 2 |
十进制(Decimal) | 0 - 9 | 10 |
十进制 (Hexadecimal) | 0 - 9,A - F | 16 |
每种进制使用不同的基值表示每一位的数值。二进制每一位只有0 和1 两个值,基值为2,二进制数的每一位都可以用2 的x 次幂来表示,x 表示二进制数的位数。十六进制的每一位可以有16 个数值,范围为0 - F,A 对应十进制的10,F 对应十进制的15(二进制的1111)。
32 个bit 位的IP 地址分为4 个字节,每个字节有256 个取值。因此,理论上IPv4 可以有4,294,967,296 个IP 地址,但实际上只有其中一部分地址可以分配给网络设备使用。
IP 地址的前三个字节表示网络号,最后一个字节表示该网络上网络设备可用的地址范围。
3、IP 地址分类
IPv4 地址被划分为A、B、C、D、E 五类,每类地址的网络号包含不同的字节数。
A 类,B 类和C 类地址为可分配IP 地址,每类地址支持的网络数和主机数不同。比如,A 类地址可支持126 个网络,每个网络支持2^24(16,777,216 ) 个主机地址,另外每个网段中的网络地址和广播地址不能分配给主机,可用IP 地址数量为2^24 - 2 个。 C 类地址支持200 多万个网络,每个网络支持256 个主机地址,其中254 个地址可以分配给主机使用。
D 类地址为组播地址。主机收到以D 类地址为目的地址的报文后,且该主机是该组播组成员,就会接收并处理该报文。各类IP 地址可以通过第一个字节中的比特位进行区分。如A 类地址第一字节的最高位固定为0,B 类地址第一字节的高两位固定为10,C 类地址第一字节的高三位固定为110,D类地址第一字节的高四位固定为1110,E类地址第一字节的高四位固定为1111。
A类地址的张红的网络地址是 10.0.0.0,广播地址是10.255.255.255。其他像 1.1.1.0
或 2.2.2.0
只是某个子网的网络地址示例。
这里开头中A类位0,B类为10,C类为110,D类为1110,E 类为1111指的是二进制
-
A 类地址:第一个字节的最高位固定为 0
。
- 这意味着第一个字节的范围是从
00000000
到 01111111
,即十进制的 0 到 127。 - 但是,0 和 127 有特殊用途,所以实际可用的网络号范围是从 1 到 126。
- A 类地址支持少量网络(每个网络支持大量的主机),例如
10.0.0.0/8
。
-
B 类地址:第一个字节的高两位固定为 10
。
- 这意味着第一个字节的范围是从
10000000
到 10111111
,即十进制的 128 到 191。 - B 类地址支持中等数量的网络(每个网络支持中等数量的主机),例如
172.16.0.0/16
。
-
C 类地址:第一个字节的高三位固定为 110
。
- 这意味着第一个字节的范围是从
11000000
到 11011111
,即十进制的 192 到 223。 - C 类地址支持大量网络(每个网络支持少量主机),例如
192.168.0.0/24
。
-
D 类地址:第一个字节的高四位固定为 1110
。
- 这意味着第一个字节的范围是从
11100000
到 11101111
,即十进制的 224 到 239。 - D 类地址用于多播(组播),例如
224.0.0.0
到 239.255.255.255
。
-
E 类地址:第一个字节的高四位固定为 1111
。
- 这意味着第一个字节的范围是从
11110000
到 11111111
,即十进制的 240 到 255。 - E 类地址被保留用于实验和研究,通常不分配给网络使用,例如
240.0.0.0
到 255.255.255.255
。
如下图所示:
4、IP地址类型
私有地址范围 | 特殊地址 |
10.0.0.0 ~ 10.255.255.255 | 127.0.0.0 ~ 127.255.255.255 |
172.16.0.0 ~ 172.31.255.255 | 0.0.0.0 |
192.168.0.0 ~ 192.168.255.255 | 255.255.255.255 |
IPv4 中的部分IP 地址被保留用作特殊用途。为节省IPv4 地址,A、B、C 类地址段中都预留了特定范围的地址作为私网地址。现在,世界上所有终端系统和网络设备需要的IP 地址总数已经超过了32 位IPv4 地址所能支持的最大地址数4,294,967,296。为主机分配私网地址节省了公网地址,可以用来缓解IP 地址短缺的问题。企业网络中普遍使用私网地址,不同企业网络中的私网地址可以重叠。默认情况下,网络中的主机无法使用私网地址与公网通信;当需要与公网通信时,私网地址必须转换成公网地址。
还有其他一些特殊IP 地址,如127.0.0.0 网段中的地址为环回地址,用于诊断网络是否正常。IPv4 中的第一个地址0.0.0.0 表示任何网络,这个地址的作用将在路由原理中详细介绍。IPv4 中的最后一个地址255.255.255.255 是0.0.0.0 网络中的广播地址。
5、IP网络通信
源主机必须要知道目的主机的IP 地址后才能将数据发送到目的地。源主机向其他目的主机发送报文之前,需要检查目的IP 地址和源IP 地址是否属于同一个网段。如果是,则报文将被下发到底层协议进行以太网封装处理。如果目的地址和源地址属于不同网段,则主机需要获取下一跳路由器的IP 地址,然后将报文下发到底层协议处理。如下图所示:
6、子网掩码
子网掩码用于区分网络部分和主机部分。子网掩码与IP 地址的表示方法相同。每个IP 地址和子网掩码一起可以用来唯一的标识一个网段中的某台网络设备。子网掩码中的1 表示网络位,0 表示主机位。
7、默认子网掩码
每类IP 地址有一个缺省(默认)子网掩码。
IP 类型 | 子网掩码 |
A 类 | 255.0.0.0 |
B 类 | 255.255.0.0 |
C 类 | 255.255.255.0 |
A 类地址的缺省子网掩码为8 位,即第一个字节表示网络位,其他三个字节表示主机位。B 类地址的缺省子网掩码为16 位,因此B 类地址支持更多的网络,但是主机数也相应减少。C 类地址的缺省子网掩码为24 位,支持的网络最多,同时也限制了单个网络中主机的数量。
8、IP 地址规划
通过子网掩码可以判断主机所属的网段、网段上的广播地址以及网段上支持的主机数。
下图中这个例子,主机地址为192.168.1.7,子网掩码为24 位(C 类IP 地址的缺省掩码),从中我们可以判断该主机位于 192.168.1.0/24 网段。将IP 地址中的主机位全部置为1,并转换为十进制数,即可得到该网段的广播地址192.168.1.255。网段中支持的主机数为2^n,n 为主机位的个数。
CIDR记法:192.168.1.0/24中的“/24”表示子网掩码长度为24位,这和默认的C类地址子网掩码相匹配。换句话说,“192.168.1.0/24”指定了一个网络,其网络部分是前三组数(192.168.1),而“.0”代表该网络的基地址,后面跟着的“/24”则表明了子网掩码的长度。
本例中n=8,2^8=256,减去本网段的网络地址和广播地址,可知该网段支持254 个有效主机地址。
9、有类IP编制缺陷
如果企业网络中希望通过规划多个网段来隔离物理网络上的主机,使用缺省子网掩码就会存在一定的局限性。网络中划分多个网段后,每个网段中的实际主机数量可能很有限,导致很多地址未被使用。如下图所示的场景下,如果使用缺省子网掩码的编址方案,则地址使用率很低。
上面的10个主机中,它有254台主机,才用了10个主机,才用了大约百分之四,也就是说利用率才为百分之四

10、VLSM
采用可变长子网掩码可解决上述问题。缺省子网掩码可以进一步划分,成为变长子网掩码(VLSM)。通过改变子网掩码,可以将网络划分为多个子网。
如下图案例中的地址为C 类地址,缺省子网掩码为24 位。现借用一个主机位作为网络位,借用的主机位变成子网位。一个子网位有两个取值0 和1,因此可划分两个子网。该比特位设置为0,则子网号为0,该比特位设置为1,则子网号为128。将剩余的主机位都设置为0,即可得到划分后的子网地址;将剩余的主机位都设置为1,即可得到子网的广播地址。每个子网中支持的主机数为2^7-2(减去子网地址和广播地址),即126 个主机地址。(即将最高位的主机位放到网络位中)
可以判断该主机位于192.168.1.0/25,所以范围为192.168.1.1~192.168.1.126(因为主机位最多为1111111,即2^7 = 127)。0是网段地址,127是广播地址。这个是最后一个主机为0,就是借到网络位的是0。如果最后一个主机为1(即10000000),则范围为192.168.1.128~192.168.1.255。
11、变长子网掩码案例
可变长子网掩码缓解了使用缺省(默认)子网掩码导致的地址浪费问题,同时也为企业网络提供了更为有效的编址方案。
下图案例中需要使用可变长子网掩码来划分多个子网,借用一定数量的主机位作为子网位的同时,剩余的主机位必须保证有足够的IP 地址供每个子网上的所有主机使用。
现有一个C 类网络地址段192.168.1.0/24,请使用变长子网掩码给三个子网分别分配IP 地址。
在上面的案例中,我们从左往右开始分配,第一个30个主机:需要一个能提供2^5=32个地址的子网,即子网掩码长度为27位(因为32-5=27),即 000 00000 ~ 000 11111,此时为192.168.1.0~192.168.1.31,可用网段为192.168.1.1~192.168.1.30,该主机位于192.168.1.0/27网段。
第二个20个主机中:子网需要支持20台主机,加上网络地址和广播地址,至少需要22个IP地址。因此,需要一个能提供2^5=32个地址的子网,但我们可以选择紧致的一个,即子网掩码长度为27位,以保持与第一个子网一致。即 001 00000 ~ 001 11111,此时为192.168.1.32~192.168.1.63,除去网段地址和广播地址,还剩下192.168.1.33~192.168.1.62,此时该主机位于192.168.1.32/27网段。
第三个10个主机中:
子网需要支持10台主机,加上网络地址和广播地址,至少需要12个IP地址。因此,需要一个能提供2^4=16个地址的子网,即子网掩码长度为28位。即 0100 0000 ~ 0100 1111 ,此时显示为 192.168.1.64 ~ 192.168.1.79,除去网段地址和广播地址,还剩下192.168.1.65 ~ 192.168.1.78,此时该主机位于192.168.1.64/28。 12、网关
报文转发过程中,首先需要确定转发路径以及通往目的网段的接口,然后将报文封装在以太帧中通过指定的物理接口转发出去。如果目的主机与源主机不在同一网段,报文需要先转发到网关,然后通过网关将报文转发到目的网段。
网关是指接收并处理本地网段主机发送的报文并转发到目的网段的设备。为实现此功能,网关必须知道目的网段的IP 地址。网关设备上连接本地网段的接口地址即为该网段的网关地址。

13、无类域间路由
无类域间路由CIDR(Classless Inter Domain Routing)由RFC1817 定义。CIDR 突破了传统IP 地址的分类边界,将路由表中的若干条路由汇聚为一条路由,减少了路由表的规模,提高了路由器的可扩展性。
如下图所示,一个企业分配到了一段A 类网络地址,10.24.0.0/22。该企业准备把这些A 类网络分配给各个用户群,目前已经分配了四个网段给用户。如果没有实施CIDR 技术,企业路由器的路由表中会有四条下连网段的路由条目,并且会把它通告给其他路由器。通过实施CIDR 技术,我们可以在企业的路由器上把这四条路由10.24.0.0/24,10.24.1.0/24,10.24.2.0/24,10.24.3.0/24 汇聚成一条路由10.24.0.0/22。这样,企业路由器只需通告10.24.0.0/22 这一条路由,大大减小了路由表的规模。