在当初设计Internet时,设计者并没有预料到网络的发展如此之快,应用范围如此之广。当时个人计算机与局域网尚未出现。所以,研究者在设计Internet编 址方案时,主要是针对大型互联网络机构。IP地址由网络号和主机号组成。IP地址设计的最初目的是希望每个IP地址都能唯一地、准确地识别每一台主机。但是,在今天看来,IP地址的设计确实存在着一些问题,例如:
(1)IP地址使用率偏低
每一个A类地址网络可连接的主机数超过1000万,而每一个B类地址网络可连接的主机数也超过6万。然而有些网络对连接在网络上的计算机数目有限制,根本达不到这样大的数值。例如,10BASE-T以太网规定其最大结点数为1024个。这样的网络若使用一个B类地址就浪费6万多个IP地址,地址空间的利用率不到2%,而其他单位的主机也无法使用这些浪费掉的地址。
(2)路由器工作效率不高
每一个路由器都应当能够从路由表中查出应怎样到达其他网络的下一个路由器。因此,互联网中网络数越多,路由器的路由转发表就会越大,路由器查询所花的时间就越多,并且路由器之间交换的路由信息量也随之剧增,从而导致路由器的工作效率降低。
为了解决这些问题,科学家提出了子网(Subnet)的 概念。构成子网就是将一个大的网络划分成几个较小的网络,而每一个网络都有自己的子网地址。
子网掩码
划分子网的引入改变了两极IP地址的结构,使其呈现3级层次。
IP地址::={<网络号(Net ID),子网号(Subnet ID),主机号(Host ID)>}第一级网络ID定义了网络的位置;第二级子网号定义了物理子网;第三级主机号定义了主机和路由器。在3级层次的IP地址系统中,一个IP分组的路由选择的过程就会变成3步:第一步交付给网络;第二步交付给物理子网;第三步交付给主机。
总之,没有划分子网时,IP地址是两极结构,地址的网络号字段也就是IP地址的“因特网部分”,而主机号字段是IP地址的“本地部分”。划分子网后IP地址就变成了3级结构。请注意:划分子网只是将IP地址的本地部分进行再划分,并不改变IP地址的Internet部分。
现在的问题是假设有一个数据报(其目的地址是145.13.3.10)已到达路由器R1。那么R1如何把它转发到子网145.13.3.10呢,如图4-5所示。(https://www.xing528.com)
IP数据报自身并不知道源主机或目的主机所连接的网络是否进行了子网的划分,这是因为32位的IP地址本身以及数据报的首部都没有包含任何有关子网划分的信息。因此,必须另外想办法,这就是子网掩码(Subnet Mask)。
图4-6a是IP地址为145.13.3.10的主机本来的两级IP地址结构。图4-6b是同一主机的三级IP地址的结构。观察可知,现在从原来16位的主机号中拿出8位作为子网号Subnet-Id,而主机号减少到8位。请注意,现在子网号为3的网络的网络地址是145.13.3.0(既不是原来的网络地址145.13.0.0,也不是子网号3)。为了使路由器R1能够很方便地从数据报中的目的IP地址中提取出所要找的子网的网络地址,路由器R1就要使用子网掩码。图4-6c是子网掩码,它也是32位,由一串1和跟随的一串0组成。子网掩码中的1对应于IP地址中原来的Net-Id加上Subnet-Id,而子网掩码中的0对应于现在的Host-Id。虽然RFC文档中没有规定子网掩码中的一串1必须是连续的,但却极力推荐在子网掩码中选用连续的1,以免出现可能发生的差错。图4-6d表示R1把子网掩码和收到的数据报的目的IP地址145.13.3.10逐位相“与”(AND),得出所要找的子网的网络地址145.13.3.0。

图4-5 把一个网络划分为3个子网,但对外仍是一个网络

图4-6 IP地址的各字段和子网掩码(以145.13.3.10为例)
使用子网掩码的好处就是:不管网络有没有划分子网,只要把子网掩码和IP地址进行逐位的“与”运算(AND),就立即得出网络地址来。这样在路由器处理到来的分组时就可采用同样的算法。
子网掩码是一个网络或一个子网的重要属性。路由器在和相邻路由器交换路由信息时,必须把自己所在网络(或子网)的子网掩码告诉相邻路由器。路由器的路由表中的每一个项目,除了要给出目的网络地址外,还必须同时给出该网络的子网掩码。若一个路由器连接在两个子网上就拥有两个网络地址和两个子网掩码。A类、B类和C类默认子网掩码,如图4-7所示。

图4-7 默认子网掩码
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。
