网络入门之IPv4地址基础知识(一)
1、IPv4地址简介
IPv4使用32位(4字节)地址,因此整个地址空间中有4 294 967 296(232)个地址,也就是近43亿个地址。
不过,其中一些地址是为特殊用途保留的,如局域网专用地址(约1800万个地址)和组播地址(约2700万个地址),这样一来可直接在广域网上使用的、路由的公网IP地址数量就更加少了。
公网IP地址是指可以在广域网上直接使用,直接被路由(也就是可以被指路径查找到),并需向IP地址管理机构申请、注册、购买,且全球唯一(不存在多个用户拥有、使用相同的公网IP地址的情况)的IPv4地址。
公网IP地址直接分配给互联网上的主机、服务器或其他设备,可以通过它在全球范围内找到对应的主机、服务器和设备。如各大企业网站通常都是直接使用公网IP地址的。
与公网IP地址相对应的自然是私网IP地址了,又称专用网络IP地址或者局域网IP地址。
私网IP地址是指仅可以在各用户自己的局域网内部使用,且不同用户可以重复使用,无须向IP地址管理机构申请、注册,也无须购买的IPv4地址。
随着公网IP地址不断被分配给最终用户,IPv4地址枯竭问题也在随之产生。虽然基于可变长子网掩码(VLSM)、无类别域间路由(CIDR)和网络地址转换(NAT)的地址结构重构显著地减少了地址枯竭的速度,但在2011年2月3日,在最后5个地址块被分配给5个区域互联网注册管理机构之后,IANA的主要地址池空了,所以现在正在积极推行IPv6,具体将在本章后面介绍。
2、IPv4地址基本格式
IPv4地址在计算机内部是以二进制形式表示的,每个地址都有32位,由数字0和1构成。在这32位的二进制数中,其实每个8位之间并没有我们所看到的那个用来分隔各段的一个小圆点,只是为了方便我们自己阅读,在每个字节间用一个小圆点分隔。
因为整个IP地址有32位,无论是书写还是记忆都不方便,于是我们在日常的IP地址管理中把这个32位长的二进制IP地址分段转换成对应的十进制,在每个字节间用小圆点分隔。
引用某个IPv4地址时,可使用W.X.Y.Z的点分十进制表示形式,如192.168.1.10等。
图8-1 点分十进制表示形式的IPv4地址
图8-1所示为IPv4地址的基本结构,图中的W、X、Y、Z每个都代表一个8位二进制组。
由前面介绍的数制转换内容可以知道,每个8位二进制所能表示的最大数就是28-1=256-1=255(最小数是0),所以IPv4地址转换成十进制数后,每段8位二进制组的取值范围就是0~255。因为IP地址在计算机中是以二进制表示的,32位就相当于4字节,所以在IPv4协议数据报格式中,无论是源IP地址字段,还是目的IP地址字段都占4字节的。
当然,IPv4地址还可表示成八进制、十六进制,只是我们平时不用而已。
3、IPv4地址子网掩码
我们在为设备配置IP地址时,通常是不能仅配置IPv4地址,而必须同时配置所谓的子网掩码,如图8-2所示。那么子网掩码是什么?它又有什么作用?
图8-2 IPv4地址和子网掩码
要想理解什么是子网掩码,就不能不先了解IPv4地址的构成。互联网是由许多小型网络构成的,每个网络上都有许多主机,这样便构成了一个有层次的结构。
IPv4地址在设计时就考虑到地址分配的层次特点,将每个IP地址都分割成网络ID和主机ID两部分,以便于IPv4地址的寻址操作。
那么IPv4地址的网络ID和主机ID各是多少位呢?如果不指定,在寻址时就不知道对应IPv4地址中哪些位代表网络ID、哪些代表主机ID,这就需要通过这里所说的子网掩码来实现了。
与二进制IPv4地址相同,子网掩码也由1和0组成,且长度也是32位,我们也可以把它分成网络ID和主机ID两部分,且各自的长度与IPv4地址的网络ID和主机ID部分对应相等。
但子网掩码中的网络ID部分全是1,1的数目等于网络ID的长度;主机ID部分全是0表示,0的数目等于主机ID的长度。
图8-3 子网掩码示例
如图8-3所示的是一个网络ID长度为16的子网掩码示例。这样做的目的是为了在寻址过程中使子网掩码与对应的IPv4地址做逻辑与运算时用0遮住IPv4地址中原主机ID部分(因为0与任何数相与结果都是0),而不改变原网络ID部分(因为1与任何数相与的结果都不改变原来的值),这样就一来就可以很容易确定对应目的IPv4地址所在的网络了,确定了网络,也就确定了主机,因为在IPv4地址中除了网络ID部分就是主机ID部分。
子网掩码不是一个地址,但是可以确定一个IPv4地址中的哪一部分是网络ID,哪一部分是主机ID,连续1的部分就代表网络ID,连续0的部分代表主机ID。
子网掩码的作用就是获取主机IPv4地址中的网络地址信息,用于区别主机通信不同情况,选择不同路由。
子网掩码一旦设置,对应IPv4地址中的网络ID和主机ID部分就固定了。
与IPv4地址一样,子网掩码也可以转换成点分十进制形式。
根据子网掩码格式可以发现,子网掩码有0.0.0.0;255.0.0.0;255.255.0.0;255.255.255.0;255.255.255.255五种。
其中0.0.0.0掩码代表任意网络的掩码,如我们在设置默认路由时,不仅IP地址为0.0.0.0,子网掩码也为0.0.0.0;A类地址的默认子网掩码为255.0.0.0;B类地址的默认子网掩码为255.255.0.0;C类地址的默认子网掩码为255.255.255.0;而255.255.255.255可以看作是单一主机网络,代表这个网络就这一个IPv4地址,在配置ACL(访问控制列表)时,如果控制的是一台主机,则对应的子网掩码也为255.255.255.255。
4、IPv4地址的基本分类
IPv4地址共有232个,最初把一个IPv4地址分成两部分:“网络识别码”在地址的最高一个字节中,“主机识别码”在剩下的部分中。这样划分的话,就使得最多只能分配给256个网络,显然这样是远远不够的。
为了克服这个限制,在随后出现的分类网络中,地址的高位字节被重定义为网络的类别(即网络ID),共五个:A、B、C、D和E。
A、B和C类用于单播通信中设备IP地址分配;D类属于组播地址,用于组播通信;E类是保留地址。它们均有不同的网络类别(也就是网络ID)长度,剩余部分用来识别网络内的主机(称为主机ID)。
网络ID用来确定每类网络中有的网络数,而主机ID用来确定每个网络中的IP地址数。下面分别介绍这五类地址的结构。
4.1、A类IPv4地址
A类IPv4地址结构如图8-4所示,其中网络ID占用最高一个字节,也就是第一个二进制8位组,而主机ID则占用剩余三个字节,也就是后面的三个二进制8位组。
图8-4 A类地址的结构
在分类中规定,A类IPv4地址中网络ID的最高位固定为0,后面的7位可变。这样一来,A类网络的总数从256(28)个减少到128(27)个。
但实际上可用的只有126个,即整个IPv4地址中可构建126个A类网络,因为网络ID为0和127的A类网络不可用的。
网络ID全为0的地址为保留地址,不能被分配;而网络ID为01111111(相当于十进制的127)的地址专用本地环路测试(也就是通常所说的环路地址),也是不能分配的。
也就是凡是以0或者127开头的地址是不能分配给节点使用的。
又因为A类IPv4地址中主机ID有24位,所以可用的主机ID数,也就是可以每个A类网络中拥有的IPv4地址数为166 777 216(2^24)。
但主机ID全为0的地址为网络地址,而主机ID全为1的地址为广播地址,不能分配给主机使用,所以实际上可用的地址数为166 777 214(166 777 216-2)。
A类网络中可以构建的网络数最少,但每个网络中拥有的地址数是最多的,也就是可以构建的网络规模最大,适用于大型企业和运营商。
A类IPv4地址的子网掩码为固定的255.0.0.0,因为子网掩码就是网络ID部分全为1,主机ID部分全为0,而A类地址中网络ID部分就是最高的那个字节。
4.2、B类IPv4地址
图8-5 B类地址的结构
B类IPv4地址结构如图8-5所示,其网络ID占用最高的前两个字节,也就是第一个和第二个二进制8位组,而主机ID则占用剩余的两字节,也就是后面两个二进制8位组。
B类IPv4地址的网络ID的最高两位固定分别为1、0,后面的14位可变。由此可知B类网络的总数从65 536(2^16,也可写成256×256)减少到16 384(64×256)个;B类IPv4地址中主机ID为16位,所以可用的主机ID数,也就是每个B类网络拥有的IPv4地址数为65 536(2^16)个。
同样因为主机ID全为0的地址为网络地址,而主机ID全为1的地址为广播地址,不能分配给主机使用,所以实际上可用的地址数为65 534(65 536-2)。
B类IPv4地址的子网掩码为固定的255.255.0.0,因为B类地址中网络ID部分是最高的两个字节,每个字节均为8个连续的1,转换成十进制后每个字节就是255了。
4.3、C类IPv4地址
图8-6 C类地址的结构
C类IPv4地址结构如图8-6所示,其网络ID占用最高的前三个字节,也就是第一个、第二个和第三个二进制8位组,而主机ID只占用了最后的一个字节,也就是只有最后一个二进制8位组。
C类IPv4地址的网络ID的最高两位固定分别为1、1、0,后面的21位可变。由此得知C类网络总数从166 777 216(2^24,也可写成256×256×256)个减少到2 097 152(32×256×256)个。
C类IPv4地址中主机ID仅为8位,所以可用的主机ID数,也就是每个C类网络拥有的IPv4地址数为256(2^8)个。
同样因为主机ID全为0的地址为网络地址,而主机ID全为1的地址为广播地址,不能分配给主机使用,所以实际上可用的地址数为254(256-2)。
C类单播地址的子网掩码为固定的255.255.255.0,因为C类地址中网络ID部分是最高的前三个字节,每个字节均为8个连续的1,转换成十进制后每个字节就是255了。
表8-1总结了A、B和C三类IPv4地址的主要特征(如图8-1所示)。
4.4、D类IPv4地址
D类IPv4地址是组播地址,用于IPv4组播通信中。
通过组播IPv4地址,组播时源主机(组播源)只需发送一份数据,就可以使对应组播组(组播组使用D类IPv4地址标识)中的一个或多个主机收到这份数据的副本的通信方式,但只有组播组内的主机可以接收该数据。
IP组播技术有效地解决了单点发送多点接收的问题,实现了IP网络中点到多点的高效数据传送,能够大量节约网络带宽、降低网络负载。
还可以利用网络的组播特性方便地提供一些新的增值业务,包括在线直播、网络电视、远程教育、远程医疗、网络电台、实时视频会议等互联网的信息服务领域。
图8-7 D类IPv4地址结构
D类IPv4的地址结构如图8-7所示,规定在最高字节中前4位分别固定为1、1、1、0,整个组播地址范围为224.0.0.0~239.255.255.255。
整个组播IPv4地址根据不同的应用环境和用途又可划分为预留组播地址、公用组播地址、临时组播地址、本地管理组播地址四大类。
(1)预留组播地址
预留组播地址(又称永久组播地址)就是由IANA保留不分配给特定用户使用,仅为公用的组播路由协议分配使用的组播地址,地址范围为224.0.0.0~224.0.0.255。
使用这些预留组播地址的组播协议包括IGMP(Internet组管理协议)、CGMP(Cisco组管理协议)、IGMP Snooping(IGMP侦听)和PIM(协议无关组播)等。
使用这段组播地址的IP包不被路由器转发。
在这个地址组段中,224.0.0.0不分配;224.0.0.1分配给本地组播网络所有支持组播的主机;224.0.0.2分配给本地组播网络中的所有组播路由器;224.0.0.4分配给本地组播网络中的所有DVMRP路由器;224.0.0.5分配给本地组播网络中的所有OSPF路由器;224.0.0.6分配给本地组播网络中的所有OSPF指定路由器(DR);224.0.0.9分配给本地组播网络中的所有RIPv2路由器;224.0.0.10分配给本地组播网络中的所有IGRP路由器;224.0.0.13分配给本地组播网络中的所有PIMv2路由器;224.0.0.22分配给本地组播网络中的所有IGMPv3路由器。
(2)公用组播地址
公用组播地址就是在全球范围内可以直接在互联网上使用的组播地址,就像前面介绍的公网单播IPv4地址一样。
公用组播地址范围为224.0.1.0~224.0.1.255,也是由IANA为提出申请并付费的用户分配的。
(3)临时组播地址
临时组播地址就是由企业用户在本企业局域网内部使用的组播地址,地址范围为224.0.2.0~238.255.255.255,仅在本地局域网内有限,就像前面介绍的局域网IPv4地址一样。
(4)本地管理组播地址
本地管理组播地址也是保留使用的,专用于局域网内部组播测试,地址范围为239.0.0.0~239.255.255.255,仅在特定的本地网络范围内有效。
发表评论