嘘~ 正在从服务器偷取页面 . . .

Internet Protocol version 4(IPv4)网际协议版本4


什么是IPv4

IPv4,全称Internet Protocol version 4,即网际协议版本4,也叫互联网通信协议第四版。IPv4在IE
TF于1981年9月发布的RFC 791中被描述,此RFC替换了于1980年1月发布的RFC 760,也是此协议第一个被
广泛部署的版本。IPv4是互联网的核心,也是使用最广泛的网际协议版本。IPv4是一种无连接的协议,操作
在使用分组交换的链路层(如以太网)上。此协议会尽最大努力交付数据包,意即它不保证任何数据包均能
送达目的地,也不保证所有数据包均按照正确的顺序无重复地到达。这些方面是由上层的传输协议(如传输
控制协议)处理的。

如下图所示,相信无论对网络是否熟悉都知道下图就是我们在电脑中配置的IP地址,这个地址就是IPv4版本
的地址。通过这个地址我们才能进行上网等操作。从下图中可以看到除了IP地址,还有子网掩码。本篇我们
就来介绍一下关于IPv4地址的相关基础知识。

IPv4地址介绍

IPv4使用32位2进制位的地址,即32个0和1组成,例如:11000000101010000001111100000100,很显然
这个地址格式并不适合人们使用,所以通过将32位2进制的地址分成4组,然后把每一组都转换成十进制,就
变成了我们现在所熟悉的IP地址了。比如上面的11000000.10101000.00011111.00000100转换成十进制就
变成了192.168.31.4。理论上每一个接入到网络的设备,比如手机,电脑,网络摄像头等设备都会获得一个
独一无二的IP地址。但是,IPv4的地址数量是有限的,32位二进制地址大约只有43亿个地址,2011年在最后
5个地址块被分配给5个区域互联网注册管理机构之后,IANA的主要地址池已经用尽。目前全世界可以接入网
络的设备远远大于43亿,所以,每个设备都获得一个独一无二的IPv4 IP地址是不可能的。

IPv4地址分类
IPv4地址按照网络ID(Network ID)长度分成三个不同的类别,分别是Class A、Class B、Class C。
● Class A
Network ID的首位为0的话,就拿首8位做Network ID,每个Class A拥有2的24次方个地址,也就是
16777216个IP地址。

● Class B
Network ID的首两位为10的话,就拿首16位做Network ID,每个Class B拥有2的16次方个地址,也就
是65536个IP地址。

● Class C
Network ID的首三位为110的话,就拿首24位做Network ID,每个Class C拥有2的8次方个地址,也就
是256个IP地址。

子网掩码Subnet Mask

子网掩码(subnet mask)又叫网络掩码、地址掩码、子网络遮罩,它是一种用来指明一个IP地址的哪些位
标识的是主机所在的子网,以及哪些位标识的是主机的位掩码。子网掩码不能单独存在,它必须结合IP地
址一起使用。子网掩码只有一个作用,就是将某个IP地址划分成网络地址和主机地址两部分。为什么需要
子网掩码呢?因为如果只按前面所介绍的三类地址提供IP地址,你会发现这些地址很快就会被用光了,Net
work ID根本就不够用。于是乎,子网掩码就出现了,使用子网掩码将Class A/B/C的Network进行更精细
的切割,通过调整Network ID的长度来进一步提供更多的IP地址。

我们以192.168.31.0(11000000.10101000.00011111.00000000)为例,这是一个Class C地址,Netw
ork ID为24位,可容纳256个IP地址。假设有两个网络,每个网络只需要100个IP地址,如果使用两个这样
的C类地址,很明显造成了IP地址的浪费,这时就可以通过子网掩码将这个C类地址分割成两个独立的地址
段。把Network ID由24调整为25,这个网络即可被分成两个可容纳128个IP地址的网络。从而高效的利用了
IP地址资源。调整完毕以后,两个子网如下:

● 子网A
IP地址=11000000.10101000.00011111.0XXXXXXX=192.168.31.0192.168.31.127
● 子网B
IP地址=11000000.10101000.00011111.1XXXXXXX=192.168.31.128
192.168.31.255

通过以上规划,已经将一个网段分成了两个子网段,那么现在两个子网段的子网掩码应该是多少呢?每个子
网的Network ID长度为25,按32位表示就是25个1=11111111.11111111.11111111.10000000,转换成十
进制子网掩码就是255.255.255.128。所以要表示子网A中的一个IP地址举个例子就是:
192.168.31.88/255.255.255.128,也可以写成192.168.31.88/25。

前面我们讲的是为了避免IP资源浪费,从而把一个地址精细的网段切割成几个小网段。那么如果一个网段现
在需要的IP地址超出了现有网段的IP地址容量应该怎么办?同样的,我们也可以将几个相邻的网段通过子网
掩码组合成一个大网段。比如现在有4个相邻的网段如下:
● 192.168.81.0/24
● 192.168.82.0/24
● 192.168.83.0/24
● 192.168.84.0/24
将其转换为二进制来进行一下比较:
● 11000000.10101000.01010001.00000000
● 11000000.10101000.01010010.00000000
● 11000000.10101000.01010011.00000000
● 11000000.10101000.01010100.00000000
首先看Network ID部份(前24位),其中前21位都是相同的。也就是说,如果把Network ID调整为21位,
就可以包括这四个独立的网段,所以我们把这这4个网段的Network ID合并起来,就得到下面的网络地址:
11000000.10101000.01010000.00000000,21位地址转换成十进制后子网掩码就是:
192.168.80.0 / 255.255.248.0。

VLSM可变长子网掩码

前面我们所介绍的可以加减子网掩码长度的方式就叫作VLSM(Variable Length Subnet Masking)可变长
子网掩码。采用了这种掩码的网络就叫作Classless Network,无类别网络。使用VLSM的好处就是节约IP
地址的空间;减少路由表大小。使用VLSM时,所采用的路由协议必须能够支持它,这些路由协议叫作无类别
域间路由,包括RIPv2、OSPF、EIGRP和BGP。需要注意的是,每一个网络中的第一个IP地址为Network ID,
所以不可以使用,最后一个IP地址为广播地址,也不可以使用。采用VLSM时要注意网段的IP地址要多于两个
IP地址才有用,所以最小的网络掩码/30、/31、/32是没有意义的。

特殊IP地址

IPv4地址中有一些地址段有特殊用途,这些地址段及用途如下图:


文章作者: kclouder
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 kclouder !
  目录