IP地址的编址方法 下载本文

IP地址的编址方法

IP地址的编址方法共经过了三个历史阶段。这三个阶段是:(1)分类的IP的地址(2)子网的划分(3)构成超网。

分类的IP地址

所谓的“分类的IP地址”就是将IP地址划分为若干个固定类,每一类地址都由两个甫定长度的字段组成,其中第一个字段是网络好,它标志主机(或路由器)所连接到的网络。一个网络号在整个因特网范围内必须是唯一的。第二个字段是主机号,它标志该主机(或路由器)。一个主机号在它前面的网络号所指明的网络范围内必须是唯一的。由此可见,一个IP地址在整个因特网范围内是唯一的。

分为A类、B类、C类、D类、E类。

A类、B类、C类地址都是单传播地址,它们的网络号字段分别是1,2,和3字节长,而在网络号字段的最前面有1~3位的类别位,其数值分为规定为0,10,110。它们的地址的主机号分为3个、2个和1个字节长。

D类地址(前4位是1110)用于多播。而E类地址(前4位为1111)保留为以后用。 常用的三类类别的IP地址

A类地址的网络号字段占一个字节,只有7位可供使用,但可指派的网络号是126个(即2的7次方-2)。减2的原因是:第一,IP地址中的全0是个保留地址,意思是“本网络”。第二,网络号为127(即01111111)保留作为本地软件环回测试本主机的进程之间的通信之用。A类地址的主机号占3个字节,因此每一个A类网络中的最大主机数是2的24次方-2。减2的原因是:全0的主机号字段表示该IP地址是“本主机”所连接到的单个网络地址,而全1表示“所有的”,因此全1的主机号字段表示该网络上的所有主机。(主机号:全0代表网络地址,全1代表广播地址)。

B类地址的网络号字段有2个字节,当前面两位(10)已经固定了,只剩下14位可以进行分配。因为网络号字段后卖弄的14位无论怎么取值也不可能出现使整个2字节的网络号字段成为全0或全1,因此这里不存在网络总数减2的问题。但实际上B类网络地址128.0.0.0是不指派的,而可以指派的B类最小网络地址是128.1.0.0。因此B类地址可指派的网络数为2的14次方-1。B类地址的每一个网络上的最大主机数是2的16次方-2(减去全0和全1的主机号)。

C类地址有3个字节的网络号字段,最全前面的3位是(110),还有21为可以进行分配。C类网络地址的192.0.0.0也是不指派的,可以指派的C类最小网络地址是192.0.1.0.因此,C类地址可指派的网络总数是2的21次方-1。每一个C类地址的最大主机数是2的8次方-2。 总结:

所有类型的主机号都是-2。网络号,只有A类是-2,其余的都是-1。

子网的划分:

分类IP地址是两级IP地址,而子网的划分则构成了三级IP地址。

从两级IP地址到三级的IP地址的理由有:第一个,IP地址空间的利用率有时很低。第二,给每一个物理网络分配一个网络号会使路由表变得太大以因而使网络性能变坏。第三,两级IP地址不够灵活。

1 / 3

划分子网的基本思想:

(1)一个拥有许多物理网络的单位,可将所属的物理网络划分为若干个子网。划分子网纯属于一个单位内部的事情。本单位以外的网络看不见这个网络是由多少个子网组成,因为这个单位对外仍然表现为一个网络。

(2)划分子网的方法是从网络的主机号借用若干个作为子网号,当然主机号也就相应减少了同样的位数。于是两级IP地址在本单位内部就变成了三级IP地址:网络号、子网号和主机号。

(3)凡是从其他网络发送给本单位某个主机的IP数据报,仍然是根据IP数据报的目的网络号找到连接在本单位网络上的路由器。但此路由器在收到IP数据报后,再按母的网络号和子网号找到目的子网,把IP数据报交付给目的主机。

划分子网只是把IP地址的主机号host-id这部分进行再划分,而不改变IP地址原来的网络号net-id.

子网掩码出现的原因:

现在剩下的问题就是:假定有一个数据报(其目的地址是145.13.3.10)已经到达了路由器R1,那么这个路由器如何把它转发到子网145.13.3.0呢?

我们知道,从IP数据报的首部并不知道源主机或母的主机所连接的网络是否进行了子网的划分。这是应为32位的IP地址本身以及数据报的首部都没有包含任何有关子网划分的信息。因此必须另外想办法,这就是使用子网掩码。

用一主机的三级IP地址的结构,也就是说,现在从原来16位的主机号中拿出8位作为子网络号subnet-id,而主机号减少到8位。请注意,现在子网号为3的网络的网络地址是145.13.3.0。为了使路由器R1能够很方便地从数据报中的目的IP地址中提取出所要找的子网的网络地址,路由器R1就要使用子网掩码。子网掩码中的1对应于IP地址中原来的net-id 加上subnet-id,而子网掩码中的0对应于现在的host-id.

R1把子网掩码和收到的数据报的目的IP地址145.13.3.10逐位相“与”,得出了所要找的子网的网络地址145.13.3.0。

使用子网掩码的好处就是:不管网络有没有划分子网,只要把子网掩码和IP地址进行逐位的“与”运算,就立即得出网络地址来。这样在路由器处理到来的分组时就可采用同样的算法。

有人或许会问,在不划分子网时,既然没有子网,为什么还要使用子网掩码呢?其实,这就是为了更便于查找路由表。现在因特网的标准规定,所有的网络都必须使用子网掩码,同时在路由器的路由表中也必须有子网掩码这一栏。如果一个网络不划分子网,那么该网络的子网掩码就使用默认子网掩码。默认子网掩码中1的位置和IP地址中网络字段net-id正好相对应。

A类地址的默认子网掩码是255.0.0.0 B类地址的默认子网掩码是255.255.0.0 C类地址的默认子网掩码是255.255.255.0

请读者注意,虽然根据已成为因特网标准协议的RFC950文档,子网号不能为全1或全0,但随着无分类域间路由选择CIDR的广泛使用,现在全1和全0大的子网号也可以使用了,但一定要谨慎使用,要弄清你的路由器所用的路由选择软件是否支持全0和全1的子网号这种较新的用法。

2 / 3

讨论完了子网掩码,现在来讨论讨论使用了子网掩码后应怎样查找路由表。

使用了子网划分后,路由表必须包含一下三项内容:母的网络地址、子网掩码和下一跳地址。

无分类编址CIDR(构造超网):

划分子网虽然在一定程度上减缓了因特网在发展中遇到的问题。但是仍然存在问题: (1)B类地址在1992年已分配了近一半,眼看很快就将全部分配完毕 (2)因特网主干网上的路由表中项目数急剧增长。 (3)整个IPv4的地址空间最终将全部耗尽。 CIDR最主要的特点有两个:

(1)CIDR消除了传统的A类、B类和C类地址以及划分子网的概念,因而可以更加有效地分配IPv4的地址空间,并且可以在新的IPv6使用之前容许因特网的规模继续增长。CIDR把32位的IP地址划分为两个部分。前面的部分是“网络前缀”,用来指明网络,后面的部分则用来指明主机。因此CIDR使IP地址从三级编址又回到了两级编址,但这已是无分类的两级编址。

CIRDR还使用“斜线记法”或称为CIDR记法,即在IP地址后面加上斜线“/”,然后协商网络前缀所占的位数。

(2)CIDR把网络前缀都相同的连续的IP地址组成一个“CIDR地址块”。我们只要知道CIDR地址块中任何一个地址,就可以知道这个地址块的起始地址(最小地址)和最大地址,以及地址块中的地址数。例如,IP地址:128.14.35.7/20.代表其中的前20位是网络前缀,而前缀后面的12位是主机号。

为了更方便地进行路由选择,CIDR使用32位的地址掩码。地址掩码是一串1和一串0组成,而1的个数就是网络前缀的长度。虽然CIDR不使用子网了,但由于目前仍有一些网络还使用子网划分和子网掩码,因此CIDR使用的地址掩码也可以继续称为子网掩码。斜线记法中,斜线后面的数字就是地址掩码中1的个数。

由于一个CIDR地址块中有很多地址,所以在路由表中就利用CIDR地址块来查找目的网络。这种地址的聚合常称为路由聚合,它是的路由表中的一个项目可以表示原来传统分类地址的很多个理由。路由聚合也称为构成超网。路由聚合有利于减少路由器之间的路由选择信息的交换,从而提高了整个因特网的性能。

使用CIDR的一个好处就是可以更加有效地分配IPv4的地址空间,可根据客户的需要分配是的那个大小额CIDR地址块。

在使用使,由于采用了网络前缀这种记法,IP地址由网络前缀和主机号这两个部分组成,因此在路由表中的项目也要有相应的改变。这时,没个项目由“网络前缀”和“下一跳地址”组成。但是在查找路由表时可能会得到不止一个匹配结果。这样就带来一个问题:我们应当从这些匹配结果中选择哪一条路由呢?

正确答案是:应当从匹配结果中选择具有最长网络前缀的路由。这叫作最长前缀匹配,这是因为网络前缀越长,其地址块就越小,因而路由就越具体。

3 / 3