欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

IP地址与子网掩码

程序员文章站 2022-10-29 12:19:39
IP地址与子网掩码...

一、ip地址与网络分类 

(1)ip地址  

我们知道,不同的物理网络技术有不同的编址方式;不同物理网络中的主机,有不同的物理网络地址。网间网技术是将不同物理网络技术统一起来的高层软件技术。网间网技术采用一种全局通用的地址格式,为全网的每一网络和每一主机都分配一个网间网地址,以此屏蔽物理网络地址的差异。 

ip协议提供一种全网间网通用的地址格式,并在统一管理下进行地址分配,保证一个地址对应一台网间网主机(包括网关),这样物理地址的差异被ip层所屏蔽。ip层所用到的地址叫做网间网地址,又叫ip地址。它由网络号和主机号两部分组成,统一网络内的所有主机使用相同的网络号,主机号是唯一的。 

ip地址是一个32为的二进制数,分成4个字段,每个字段8位。 

(2)三类主要的网络地址 

我们知道,从lan到wan,不同种类网络规模相差很大,必须区别对待。因此按网络规模大小,将网络地址分为主要的三类,如下: 

a类:  

0 1 2 3 8 16 24  

3 1 0网络号主机号  

b类:  

1 0网络号主机号  

c类:  

1 1 0网络号主机号 

a类地址用于少量的(最多27个)主机数大于216的大型网,每个a类网络可容纳最多224台主机;b类地址用于主机数介于28~216之间数量不多不少的中型网,b类网络最多214个;c类地址用于每个网络只能容纳28台主机的大量小型网,c类网络最多221个。 

除了以上a、b、c三个主类地址外,还有另外两类地址,如下:  

d类:  

1 1 1 0多目地址 

 e类:  

1 1 1 1 0留待后用  

其中多目地址(multicast address)是比广播地址稍弱的多点传送地址,用于支持多目传输技术。e类地址用于将来的扩展之用。 

(3)tcp/ip规定网络地址 

除了一般地标识一台主机外,还有几种具有特殊意义的特殊形式。 

*广播地址 

tcp/ip规定,主机号全为“1”的网络地址用于广播之用,叫做广播地址。所谓广播,指同时向网上所有主机发送报文。 

*有限广播 

前面提到的广播地址包含一个有效的网络号和主机号,技术上称为直接广播(directed boradcasting)地址。在网间网上的任何一点均可向其他任何网络进行直接广播,但直接广播有一个缺点,就是要知道信宿网络的网络号。 

有时需要在本网络内部广播,但又不知道本网络网络号。tcp/ip规定,32比特全为“1”的网间网地址用于本网广播,该地址叫做有限广播地址(limited broadcast address)。 

*“0”地址 

tcp/ip协议规定,各位全为“0”的网络号被解释成“本”网络。 

*回送地址 

a类网络地址127是一个保留地址,用于网络软件测试以及本地机进程间通信,叫做回送地址(loopback address)。无论什么程序,一旦使用回送地址发送数据,协议软件立即返回之,不进行任何网络 

传输。 

tcp/ip协议规定,一、含网络号127的分组不能出现在任何网络上;二、主机和网关不能为该地址广播任何寻径信息。由以上规定可以看出,主机号全“0”全“1”的地址在tcp/ip协议中有特殊含义,不能用作一台主机的有效地址。  

二、子网掩码 

(1)子网tcp/ip网间网技术产生于大型主流机环境中,它能发展到今天的规模是当初的设计者们始料未及的。网间网规模的迅速扩展对ip地址模式的威胁并不是它不能保证主机地址的唯一性,而是会带来两方面的负担:第一,巨大的网络地址管理开销;第二,网关寻径急剧膨胀。其中第二点尤为突出,寻径表的膨胀不仅会降低网关寻径效率(甚至可能使寻径表溢出,从而造成寻径故障),更重要的是将增加内外部路径刷新时的开销,从而加重网络负担。 

因此,迫切需要寻求新的技术,以应付网间网规模增长带来的问题。仔细分析发现,网间网规模的增长在内部主要表现为网络地址的增减,因此解决问题的思路集中在:如何减少网络地址。于是ip网络 

地址的多重复用技术应运而生。通过复用技术,使若干物理网络共享同一ip网络地址,无疑将减 

少网络地址数。 

子网编址(subnet addressing)技术,又叫子网寻径(subnet routing),英文简称subnetting,是最广泛使用的ip网络地址复用方式,目前已经标准化,并成为ip地址模式的一部分。 

一般的,32位的ip地址分为两部分,即网络号和主机号,我们分别把他们叫做ip地址的“网间网部分”和“本地部分”。子网编址技术将本地部分进一步划分为“物理网络”部分和“主机”部分,如图: 

网间网部分物理网络主机 

|←网间网部分→|←────本地部分─────→|  

其中“物理网络”用于标识同一ip网络地址下的不同物理网络,既是“子网”。 

(2)子网掩码ip协议标准规定:每一个使用子网的网点都选择一个32位的位模式,若位模式中的某位置1,则对应ip地址中的某位为网络地址(包括网间网部分和物理网络号)中的一位;若位模式中的 

某位置0,则对应ip地址中的某位为主机地址中的一位。例如位模式: 

11111111 11111111 11111111 00000000中,前三个字节全1,代表对应ip地址中最高的三个字节为网络地址;后一个字节全0,代表对应ip地址中最后的一个字节为主机地址。这种位模式叫做子网模(subnet mask)或“子网掩码”。 

为了使用的方便,常常使用“点分整数表示法”来表示一个ip地址和子网掩码,例如b类地址子网掩码(11111111 11111111 1111111100000000)为: 

255.255.25.0 ip协议关于子网掩码的定义提供一种有趣的灵活性,允许子网掩码中的“0”和“1”位不连续。但是,这样的子网掩码给分配主机地址和理解寻径表都带来一定困难,并且,极少的路由器支持在子网中使用低序或无序的位,因此在实际应用中通常各网点采用连续方式的子网掩码。像255.255.255.64和255.255.255.160等一类的子网掩码不推荐使用。 

(3)子网掩码与ip地址 子网掩码与ip地址结合使用,可以区分出一个网络地址的网络号和主机号。 

例如:有一个c类地址为: 

192.9.200.13其缺省的子网掩码为: 

255.255.255.0则它的网络号和主机号可按如下方法得到: 

①将ip地址192.9.200.13转换为二进制11000000 00001001 11001000 00001101 

②将子网掩码255.255.255.0转换为二进制11111111 11111111 11111111 00000000 

③将两个二进制数逻辑与(and)运算后得出的结果即为网络部分 

11000000 00001001 11001000 00001101 and 11111111 11111111 11111111 00000000 

 11000000 00001001 11001000 00000000结果为192.9.200.0,即网络号为192.9.200.0。 

④将子网掩码取反再与ip地址逻辑与(and)后得到的结果即为主机部分 

11000000 00001001 11001000 00001101 and 00000000 00000000 00000000 11111111= 

 00000000 00000000 00000000 00001101结果为0.0.0.13,即主机号为13。 

(4)子网掩码与ip地址子网掩码与ip地址结合使用,可以区分出一个网络地址的网络号和主机号。 

例如:有一个c类地址为: 

192.9.200.13 其缺省的子网掩码为: 

255.255.255.0 则它的网络号和主机号可按如下方法得到: 

①将ip地址192.9.200.13转换为二进制11000000 00001001 11001000 00001101  

②将子网掩码255.255.255.0转换为二进制11111111 11111111 11111111 00000000 

③将两个二进制数逻辑与(and)运算后得出的结果即为网络部分 

11000000 00001001 11001000 00001101 and 11111111 11111111 11111111  

00000000 11000000 00001001 11001000 00000000结果为192.9.200.0,即网络号为192.9.200.0。 

④将子网掩码取反再与ip地址逻辑与(and)后得到的结果即为主机部分 

11000000 00001001 11001000 00001101 and 00000000 00000000 00000000  

11111111 00000000 00000000 00000000 00001101 结果为0.0.0.13,即主机号为13。 

三、子网划分与实例根据以上分析,建议按以下步骤和实例定义子网掩码。 

1、将要划分的子网数目转换为2的m次方。如要分8个子网,8=23。 

2、取上述要划分子网数的2的m次方的幂。如23,即m=3。 

3、将上一步确定的幂m按高序占用主机地址m位后转换为十进制。如m为3 则是11100000,转换为十进制为224,即为最终确定的子网掩码。如果是c类网,则子网掩码为255.255.255.224;如果是b类网,则子网掩码为255.255.224.0;如果是c类网,则子网掩码为255.224.0.0。 

在这里,子网个数与占用主机地址位数有如下等式成立:2m=n。其中,m表示占用主机地址的位数;n表示划分的子网个数。根据这些原则,将一个c类网络分成4个子网。若我们用的网络号为192.9.200,则该c类网内的主机ip地址就是192.9.200.1~192.9.200.254(因为全“0”和全“1”的主机地址有特殊含义,不作为有效的ip地址),现将网络划分为4个部分,按照以上步骤: 

4=22,取22的幂,即2,则二进制为11,占用主机地址的高序位即为11000000,转换为十进制为192。这样就可确定该子网掩码为:192.9.200.192,4个子网的ip地址范围分别为: 

二进制十进制  

① 11000000 00001001 11001000 00000001  

11000000 00001001 11001000 00111110  

192.9.200.1  

192.9.200.62  

② 11000000 00001001 11001000 01000001  

11000000 00001001 11001000 01111110  

192.9.200.65  

192.9.200.126  

③ 11000000 00001001 11001000 10000001  

11000000 00001001 11001000 10111110  

192.9.200.129  

192.9.200.190  

④ 11000000 00001001 11001000 11000001  

11000000 00001001 11001000 11111110  

192.9.200.193  

192.9.200.254  

在此列出a、b、c三类网络子网数目与子网掩码的转换表,以供参考。 

a类:  

子网数目 
 占用位数 
 子网掩码 
 子网中主机数 
  

 1 
 255.128.0.0 
 8,388,606 
  

 2 
 255.192.0.0 
 4,194,302 
  

 3 
 255.224.0.0 
 2,097,150 
  
16 
 4 
 255.240.0.0 
 1,048,574 
  
32 
 5 
 255.248.0.0 
 524,286 
  
64 
 6 
 255.252.0.0 
 262,142 
  
128 
 7 
 255.254.0.0 
 131,070 
  
128 
 8 
 255.255.0.0 
 65,534 
  

b类:  

子网数目 
 占用位数 
 子网掩码 
 子网中主机数  
  

 1 
 255.255.128.0 
 32766 
  

 2 
 255.255.192.0 
 16382 
  

 3 
 255.255.224.0 
 8190 
  
16 
 4 
 255.255.240.0 
 4094 
  
32 
 5 
 255.255.248.0 
 2046 
  
64 
 6 
 255.255.252.0 
 1022 
  
128 
 7 
 255.255.254.0 
 510 
  
256 
 8 
 255.255.255.0 
 254 
  

c类:  

子网数目 
 占用位数 
 子网掩码 
 子网中主机数 
  

 1 
 255.255.255.128 
 126 
  

 2 
 255.255.255.192 
 62 
  

 3 
 255.255.255.224 
 30 
  
16 
 4 
 255.255.255.240 
 14 
  
32 
 5 
 255.255.255.248 
 6 
  
64 
 6 
 255.255.255.252 
 2