IP地址就是给互联网上的每一台主机(或路由器)的每一个接口分配一个在全世界范围内是唯一的32位的标识符。
IP地址的编址方法共经历了三个历史阶段:分类的IP地址、子网的划分、超网的构成
一、分类的IP地址
所谓“分类的IP地址”就是将IP地址划分为若干个固定类,每一类地址都由两个固定长度的字段组成,其中第一个字段是网络号,它标志主机(或路由器)所连接到的网络。一个网络号在整个互联网范围内必须是唯一的。第二个字段是主机号,它标志该主机(或路由器),一台主机号在它前面的网络号所指明的网络范围内必须是唯一的。
这种两级IP可以表示为:
IP地址 ::= {<网络号>,<主机号>}
- A类、B类和C类地址的网络号字段分别为1个、2个和3个字节长,而在网络号字段的最前面有1~3位的类别位,其数值分别规定为0,10和110。
- A类、B类和C类地址的主机号字段分别为3个、2个和1个字节长。
- D类地址(前4位是1110)用于多播(一对多通信)。
- E类地址(前4位是1111)保留为以后用。
把IP地址划分为A类、B类、C类三个类别,当初是这样考虑的。各种网络的差异很大,有的网络拥有很多主机,而有的网络上的主机则很少。把IP地址划分为A类、B类和C类是为了更好地满足不同用户的要求。
常用的三种类型的IP地址:
A类地址的网络号字段占1个字节,只有7位可供使用,但可指派的网络号是126个(即)。减2的原因是:
第一,IP地址中网络号字段为全0的IP地址是个保留地址,意思是“本网络”;
第二,网络号为127(即01111111)保留作为本地软件环回测试本主机的进程之间的通信之用。
若主机发送一个目的地址为环回地址(例如127.0.0.1)的IP数据报,则本主机中的协议软件就处理数据报中的数据,而不会把数据报发送到任何网络。
A类地址的主机号占3个字节,因此每一个A类网络中的最大主机数是,即16777214。这里减2的原因是:
第一,全0的主机号字段表示该IP地址是“本主机”所连接到的单个网络地址
第二,而全1表示“所有的(all)”,因此全1的主机号字段表示该网络上的所有主机
B类地址的网络号字段有2个字节,但实际上B类网络地址128.0.0.0是不指派的,而可以指派的B类最小网络地址是128.1.0.0。因此B类地址可指派的网络数为,即16383。B类地址的每一个网络上的最大主机数是,即65534。这里需要减2是因为要扣除全0和全1的主机号。
C类地址有3个字节的网络号字段,还有21位可以进行分配。C类网络地址192.0.0.0也是不指派的,可以指派的C类最小网络地址是192.0.1.0,因此C类地址可指派的网络总数是,即2097151。每一个C类地址的最大主机数是,即254。
二、子网的划分
两级IP地址的缺点:
第一,IP地址空间的利用率有时很低。
第二,给每一个物理网络分配一个网络号会使路由表变得太大因而使网络性能变坏。
第三,两级IP地址不够灵活
为解决这些问题,从1985年起在IP地址中又增加了一个“子网号字段”,使两级IP地址变成为三级IP地址,它能够较好地解决上述问题,并且使用起来也很灵活。这种做法叫做划分子网。
划分子网的思路如下:
(1)一个拥有许多物理网络的单位,可将所属的物理网络划分为若干个子网。划分子网纯属一个单位内部的事情。本单位以外的网络看不见这个网络是由多少个子网组成,因为这个单位对外仍然表现为一个网络。
(2)划分子网的方法是从网络的主机号借用若干位作为子网号,当然主机号也就相应减少了同样的位数。于是两级IP地址在本单位内部就变为三级IP地址:网络号、子网号和主机号。也可以用以下记法来表示:
IP地址 ::= {<网络号>,<子网号>,<主机号>}
(3)凡是从其他网络发送给本单位某台主机的IP数据报,仍然是根据IP数据报的目的网络号找到连接在本单位网络上的路由器。但此路由器在收到IP数据报后,再按目的网络号和子网号找到目的子网,把IP数据报交付目的主机。
子网掩码
假定有一个数据报(其目的地址是145.13.3.10)已经到达了路由器。那么这个路由器如何把它转发到子网145.13.3.0呢?
我们知道,从IP数据报的首部无法看出源主机或目的主机所连接的网络是否进行了子网的划分。这是因为32位的IP地址本身以及数据报的首部都没有包含任何有关子网划分的信息。因此必须另外想办法,这就是使用子网掩码。
为了使路由器,能够很方便地从数据报中的目的IP地址中提取出所要找的子网的网络地址,路由器就要使用三级IP地址的子网掩码,路由器把三级IP地址的子网掩码和收到的数据报的目的IP地址145.13.3.10逐位相“与”(AND),得出了所要找的子网的网络地址145.13.3.0
三、超网的构成
无分类编址CIDR:
划分子网在一定程度上缓解了互联网在发展中遇到的困难。然而在1992年互联网仍然面临三个必须尽早解决的问题
(1)B类地址在1992年已分配了近一半,眼看很快就将全部分配完毕!
(2)互联网主干网上的路由表中的项目数急剧增长(从几千个增长到几万个)。
(3)整个IPv4的地址空间最终将全部耗尽。
在一个划分子网的网络中可同时使用几个不同的子网掩码。使用变长子网掩码VLSM可进一步提高IP地址资源的利用率。在VLSM的基础上又进一步研究出无分类编址方法,它的正式名字是无分类域间路由选择 CIDR。
CIDR最主要的特点有两个:
(1)CIDR 消除了传统的A类、B类和C类地址以及划分子网的概念,因而能更加有效地分配IPv4的地址空间,CIDR把32位的IP地址划分为前后两个部分。前面部分是“网络前缀”(或简称为“前缀”),用来指明网络,后面部分则用来指明主机。因此CIDR使IP地址从三级编址(使用子网掩码)又回到了两级编址,但这已是无分类的两级编址。其记法是:
IP地址 ::= {<网络前缀>,<主机号>}
CIDR还使用“斜线记法”,或称为CIDR记法,即在IP地址后面加上斜线“/”,然后写上网络前缀所占的位数。
(2)CIDR把网络前缀都相同的连续的IP地址组成一个“CIDR地址块”。我们只要知道CIDR地址块中的任何一个地址,就可以知道这个地址块的起始地址(即最小地址)和最大地址,以及地址块中的地址数。
例如,已知IP地址128.14.35.7/20是某CIDR地址块中的一个地址,现在把它写成二进制表示,其中的前20位是网络前缀(用粗体和下划线表示出),而前缀后面的12位是主机号:
128.14.35.7/20 = 10000000 00001110 00100011 00000111
这个地址所在的地址块中的最小地址和最大地址可以很方便地得出:
当然,以上这两个特殊地址的主机号是全0和全1的地址。一般并不使用。通常只使用在这两个特殊地址之间的地址。
为了更方便地进行路由选择,CIDR使用32位的地址掩码。地址掩码也可继续称为子网掩码。例如,/20地址块的地址掩码是:11111111 11111111 11110000 00000000(20个连续的1)。斜线记法中,斜线后面的数字就是地址掩码中1的个数。
由于一个CIDR地址块中有很多地址,所以在路由表中就利用CIDR地址块来查找目的网络。这种地址的聚合常称为路由聚合,它使得路由表中的一个项目可以表示原来传统分类地址的很多个(例如上千个)路由。路由聚合也称为构成超网。
最长前缀匹配:
在使用CIDR 时,由于采用了网络前缀这种记法,IP地址由网络前缀和主机号这两个部分组成,因此在路由表中的项目也要有相应的改变。这时,每个项目由“网络前缀”和“下一跳地址”组成。但是在查找路由表时可能会得到不止一个匹配结果。这样就带来一个问题:我们应当从这些匹配结果中选择哪一条路由呢?
正确的答案是:应当从匹配结果中选择具有最长网络前缀的路由。这叫做最长前缀匹配,这是因为网络前缀越长,其地址块就越小,因而路由就越具体。 文章来源:https://www.toymoban.com/news/detail-470806.html
声明:该博文所总结的知识和图片来自于谢希仁老师的《计算机网络》第七版 文章来源地址https://www.toymoban.com/news/detail-470806.html
到了这里,关于计算机网络—IP地址及其表示方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!