网际协议IP简述

最近花了些时间重新回顾了谢希仁教授主编的《计算机网络》关于网络层的章节,这是一本高校教材,里面关于计算机网络的内容比较基础,并且讲的很细致,笔者针对网际协议IP地址部分觉得有必要进行阅读后的一次梳理和提炼,这部分毕竟是TCP/IP体系中有关IP部分最基本的几个概念。
因为工作中处理大部分业务依旧使用IPv4地址,所以下面就围绕IPv4展开叙述:

0.什么是IP地址

整个互联网就是一个单一的、抽象的网络。IP地址就是给互联网上的每一台主机(或路由器)的每一个接口分配一个在全世界范围内是唯一的32位的标识符。IP地址的结构使我们可以在互联网上很方便的进行寻址。IP地址现在由互联网名字和数字分配机构ICANN进行分配。IP地址的发展历程可以分为如下三个阶段(因为本文重点在IPv4,故此处略去了IPv6阶段),下面我们的讲解也从这三个部分展开。
 
(1)分类的IP地址
(2)划分子网
(3)无分类编址CIDR

1.分类的IP地址

所谓分类的IP地址就是将IP地址划分为若干个固定类,每一类地址都由两个固定长度的字段组成,其中第一个字段是网络号,它标志主机(或路由器)所连接到的网络。一个网络号在整个互联网范围内必须是唯一的。第二个字段是主机号,它标志该主机(或路由器)。一台主机号在它前面的网络号所指明的网络范围内必须是唯一的。由此可见,一个IP地址在整个互联网范围内是唯一的。
这种两级的IP地址可记为:IP地址::={<网络号>,<主机号>}
说完了IP地址的定义,下图,就是IP地址的分类。
如上图所示:
 
    A类地址有1个字节长的网络号3个字节长的主机号,且在网络号字段最前面有1位类别位,规定为0
 
    B类地址有2个字节长的网络号2个字节长的主机号,且在网络号字段最前面有2位类别位,规定为10
 
    C类地址有3个字节长的网络号1个字节长的主机号,且在网络号字段最前面有3位类别位,规定为110
 
    D类地址用于多播,前四位规定为1110
 
    E类地址保留为以后使用,前四位规定为1111
 
从以上IP地址的组成来看,IP地址不仅仅代表了每一台主机,而且指明了主机所连接到的网络,当初选择将IP地址划分A,B,C三类是考虑到各种网络差异很大,有的网络拥有很多主机,有的网络上主机很少,划分类别后合理地分配IP。当某个单位申请到一个IP地址时,实际上是获得了具有同样网络号的一大块地址,其中每个具体的地址由该单位自行分配,只要做到在该单位管辖的范围内无重复的主机号即可。下图是每一类IP地址可指派的范围和最大网络数及每个网络中的最大主机数
 
 
接下来我们介绍IP地址的书写方法,对于主机和路由器来说IP地址都是32位的二进制代码。为了提高可读性,我们常常把32位的IP地址用其等效的十进制数字表示,首先将IP地址每8位分成一组,共四组,并且在这四组之间加上一个点,就组成了一种叫做点分十进制记法的IP地址。下图是更直观的表示
 
 
A、B、C三类地址是我们常见的IP地址段,但是在RFC 1918中预留了3个IP地址块,作为专用地址,供组织机构内部通信,不与互联网上的主机通信,在互联网中的所有路由器,对目的地址是专用地址的数据报,一律不进行转发,三类专用地址块是
   
    A类地址:10.0.0.0-10.255.255.255(或记为10.0.0.0/8,又称24位块)
    
    B类地址:172.16.0.0-172.31.255.255(或记为172.16.0.0/12,又称20位块)
 
    C类地址:192.168.0.0-192.168.255.255(或记为192.168.0.0/16,又称16位块)

2.划分子网

在早期,IP地址的设计的确有它的不足之处,首先,IP地址的空间利用率有时很低,一个B类的地址网络可以连接超过6万台的主机,但有的单位虽然用不了如此多的主机,但是它考虑到未来的扩张,申请了B类地址而目前实际主机数并不多。这就形成了IP地址的资源浪费。另外,两级的IP地址不够灵活,一个单位需要在新的地点马上开通一个新的网络,在没有申请到新的网络时,新增加的网络是无法连接到互联网上工作的。我们需要一种方法,这种方法可以是我们灵活地增加本单位的网络。正是为了解决上述问题,在1985年,IP地址中又增加了一个“子网号字段”,使两级IP变为三级IP,这样使用起来将更加灵活。这种做法叫做划分子网。下面我们详细介绍划分子网是如何实现的。
(1)一个单位可以将所属的物理网络划分为若干个子网,划分子网纯属一个单位内部的事情,本单位以外的网络看不见这个网络是由多少个子网组成,因为这个单位对外仍然表现为一个网络。
(2)划分子网的方法就是从网络的主机号借用若干位作为子网号,当然主机号也就相应减少了同样的位数。于是两级地址在本单位内部就变成了三级IP地址,网络号、子网号、主机号。
同样这种三级的IP地址可记为:IP地址::={<网络号>,<子网号>,<主机号>}
当划分子网后,就不得不谈到子网掩码这个概念,我们设想,假定有一个数据报,我们从中无法看出源主机或目的主机所连接的网络是否进行了子网的划分。因此我们必须设立一种机制,使得IP数据报到达目的主机网络路由器时,路由器可以准确地将他转发到相应的子网,这种机制就是子网掩码。看下图:
 
 
从上图我们可以直观的看出,使用了子网掩码,不论网络有没有划分子网,只要把子网掩码和IP地址逐位进行逻辑“与”运算,就立即得出网络地址。
根据互联网标准规定:所有的网络必须使用子网掩码,同时在路由器的路由表中也必须有子网掩码这一栏,如果一个网络不划分子网,那么该网络的子网掩码就使用默认子网掩码。显然根据不同IP地址不同的网络号长度,其默认子网掩码也不同,如下图:
 

3.无分类编址CIDR

1992年,随着B类地址已分配了近一半,眼看将要分配完毕,所以IETF(国际互联网工程任务组)很快研究出了采用无分类编址的方法解决遇到的问题。不过这仍旧是一个长远的问题,所以IETF专门成立了IPv6工作组负责研究新版本IP协议的问题,IPv6协议不是本文重点,所以不做过多赘述,在2011年2月3日IPv4正式被宣布耗尽。
下面我们详细叙述无分类编址,CIDR消除了传统的A类,B类,C类地址以及划分子网的概念,因而能更有效地分配IPv4的地址空间,并且,在新的IPv6使用之前容许互联网的规模继续增长。CIDR把32位的IP地址划分为前后两个部分。前面是网络前缀,用来指明网络,后面是主机号,用来指明主机。所以,无分类编址使IP地址从三级编址又回到了二级编址。不过两者之间还是有很大的不同。其记法为:
IP地址::={<网络前缀>,<主机号>}
CIDR使用斜线记法,在IP地址后面加上斜线“/”然后写上网络前缀所占的位数。举例说明:
 
 
我们把网络前缀都相同的连续的IP地址称作一个CIDR地址块,我们只要知道CIDR地址块中的任何一个地址,就可以知道这个地址块的起始地址和最大地址,以及地址块中的地址数量。仍旧取上图举例,如果已知128.14.35.7/20是某地址块中的一个地址,现在把它写成二进制表示,其中的前20位是网络前缀而前缀后面的12位是主机号,那么我们就可以方便得出这个地址块中的最小地址和最大地址以及地址数量,见下图
 
 
地址数量为2的12次方个,不过主机号是全0和全1为特殊地址,一般不使用。
从以上可以看出,使用CIDR的一个好处就是可以更加有效的分配IPv4的空间,可根据单位的需求去分配合适大小的CIDR地址块。下图是一所高校的CIDR分配的例子:
 
 
以上,就是本次学习中从书中提炼出的内容,阅读完本篇文章可以对IP地址的由来、概念以及发展历程有个大致了解,整个网络层的内容涉及很多更细节知识,笔者也是通过学习后提炼了一个知识点进行叙述,更多细节本文无法一一细述,如果想了解更多细节内容,推荐读者阅读谢希仁教授主编的《计算机网络》这本书。
最后,欢迎与各位读者互相学习交流,笔者学疏才浅,如有纰漏,欢迎各位读者批评指正。
 
 
leo zhai
Nov,29.2018
 
参考书籍:
[1]谢希仁,《计算机网络》[M],北京:电子工业出版社,2017:113-195.

猜你喜欢

转载自www.cnblogs.com/leonardozhai/p/ip-address.html