一、为什么要使用IP地址?

  一个IP地址是用来标识网络中的一个通信实体,比如一台主机,或者是路由器的某一个端口。而在基于IP协议网络中传输的数据包,也都必须使用IP地址来进行标识,如同我们写一封信,要标明收信人的通信地址和发信人的地址,而邮政工作人员则通过该地址来决定邮件的去向。

  同样的过程也发生在计算机网络里,每个被传输的数据包也要包括的一个源IP地址和一个目的IP地址,当该数据包在网络中进行传输时,这两个地址要保持不变,以确保网络设备总是能根据确定的IP地址,将数据包从源通信实体送往指定的目的通信实体。

  目前,IP地址使用32位二进制地址格式,为方便记忆,通常使用以点号划分的十进制来表示,如: 202.112.14.1.

  一个IP地址主要由两部分组成:一部分是用于标识该地址所从属的网络号;另一部分用于指明该网络上某个特定主机的主机号。

  为了给不同规模的网络提供必要的灵活性,IP地址的设计者将IP地址空间划分为五个不同的地址类别,如下表所示,其中ABC三类最为常用:

  A 0127 0 8 24

  B 128191 10 16 16

  C 192223 110 24 8

  D 224239 1110 组播地址

  E 240255 1111 保留试验使用

  网络号由因特网权力机构分配,目的是为了保证网络地址的全球唯一性。主机地址由各个网络的管理员统一分配。因此,网络地址的唯一性与网络内主机地址的唯一性确保了IP地址的全球唯一性。

  二、划分子网

  为了提高IP地址的使用效率,可将一个网络划分为子网:采用借位的方式,从主机位最高位开始借位变为新的子网位,所剩余的部分则仍为主机位。这使得IP地址的结构分为三部分:网络位、子网位和主机位。

  引入子网概念后,网络位加上子网位才能全局唯一地标识一个网络。把所有的网络位用1来标识,主机位用0来标识,就得到了子网掩码。如下图所示的子网掩码转换为十进制之后为: 255.255.255.224

  子网编址使得IP地址具有一定的内部层次结构,这种层次结构便于IP地址分配和管理。

  它的使用关键在于选择合适的层次结构——如何既能适应各种现实的物理网络规模,又能充分地利用IP地址空间(即:从何处分隔子网号和主机号)。

  小窍门——子网的计算

  在思科网络技术学院CCNA教学和考试当中,不少同学在进行IP地址规划时总是很头疼子网和掩码的计算。现在给大家一个小窍门,可以顺利的解决这个问题。

  首先,我们看一个CCNA考试中常见的题型:一个主机的IP地址是202.112.14.137,掩码是255.255.255.224,要求计算这个主机所在网络的网络地址和广播地址。

  常规办法是把这个主机地址和子网掩码都换算成二进制数,两者进行逻辑与运算后即可得到网络地址。其实大家只要仔细想想,可以得到另一个方法: 255.255.255.224的掩码所容纳的IP地址有25622432个(包括网络地址和广播地址),那么具有这种掩码的网络地址一定是32的倍数。而网络地址是子网IP地址的开始,广播地址是结束,可使用的主机地址在这个范围内,因此略小于137而又是32的倍数的只有128,所以得出网络地址是202.112.14.128.而广播地址就是下一个网络的网络地址减1.而下一个32的倍数是160,因此可以得到广播地址为 202.112.14.159.可参照下图来理解本例:

  CCNA考试中,还有一种题型,要你根据每个网络的主机数量进行子网地址的规划和计算子网掩码。这也可按上述原则进行计算。比如一个子网有10台主机,那么对于这个子网就需要1011113IP地址。(注意加的第一个1是指这个网络连接时所需的网关地址,接着的两个1分别是指网络地址和广播地址。)13小于1616等于24次方),所以主机位为4位。而25616240,所以该子网掩码为 255.255.255.240.

  如果一个子网有14台主机,不少同学常犯的错误是:依然分配具有16个地址空间的子网,而忘记了给网关分配地址。这样就错误了,因为14111 17 ,大于16,所以我们只能分配具有32个地址(32等于25次方)空间的子网。这时子网掩码为: 255.255.255.224.

  三、 IP 地址的局限性

  最初的因特网设计者没有预想到网络会有如此快速地发展,因此现在网络面临的问题都可以追溯到因特网发展的早期决策上,IP地址的分配更能体现这点。

  目前使用的IPv4地址使用32位的地址,即在IPv4的地址空间中有2324294967296,约为43亿)个地址可用。这样的地址空间在因特网早期看来几乎是无限的,于是便将IP地址根据申请而按类别分配给某个组织或公司,而很少考虑是否真的需要这么多个地址空间,没有考虑到IPv4地址空间最终会被用尽。

  因此,IPv4地址是按照网络的大小(所使用的IP地址数)来分类的,它的编址方案使用""的概念。ABC三类IP地址的定义很容易理解,也很容易划分,但是在实际网络规划中,它们并不利于有效地分配有限的地址空间。对于AB类地址,很少有这么大规模的公司能够使用,而C类地址所容纳的主机数又相对太少。所以有类别的IP地址并不利于有效地分配有限的地址空间,不适用于网络规划。

  在这种情况下,人们开始致力于下一代因特网协议——IPv6的研究。由于现在IPv6的协议并不完善和成熟,需要长期的试验验证,因此,IPv4 IPv6的完全过渡将是一个比较长的过程,在过渡期间我们仍然需要在IPv4上实现网络间的互连。而在90年代初期引入了变长子网掩码(VLSM)和无类域间路由(CIDR)等机制,作为目前过渡时期提高IPv4地址空间使用效率的短期解决方案起到了很大的作用。

  小窍门——子网的计算

  在思科网络技术学院CCNA教学和考试当中,不少同学在进行IP地址规划时总是很头疼子网和掩码的计算。现在给大家一个小窍门,可以顺利的解决这个问题。<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

快速计算子网掩码和主机块

  一、明确概念

  在介绍十进制算法前我们先要明确一些概念。

  类范围:IP地址常采用点分十进制表示方法X.Y.Y.Y,在这里,X1126范围内称为A类地址;X128191范围内称为B类地址;X 192223范围内称为C类地址。比如10.202.52.130,因为X10,在1126范围内,所以称为A类地址。

  类默认子网掩码:A类为 255.0.0.0 B类为 255.255.0.0 C类为 255.255.255.0.当我们要划分子网用到子网掩码M时,类子网掩码的格式如下:A类为 255.M.0.0B类为 255.255.M.0C类为 255.255.255.M.M是相应的子网掩码,比如 255.255.255.240.

  十进制计算基数是256(下面,我们所有的十进制计算都要用256来进行)。

  二、变量说明

  1.Subnet_block指可分配子网块大小,表示在某一子网掩码下子网的块数。

  2.Subnet_num是可分配子网数,指可分配子网块中要剔除首、尾两块,是某一子网掩码下可分配的实际子网数量。Subnet_num =Subnet_block 2.

  3.IP_block指每个子网可分配的IP地址块大小。

  4.IP_num指每个子网实际可分配的IP地址数。因为每个子网的首、尾IP地址必须保留(一个为网络地址,一个为广播地址),所以它等于IP_block2IP_num也用于计算主机块。

  5.M指子网掩码。

  表示上述变量关系的公式如下:

  M=256IP_block IP_block=256/Subnet_blockSubnet_block=256/IP_block IP_num=IP_block2 Subnet_num=Subnet_block 2.

  6.2的幂数。大家要熟练掌握28256)以内的2的幂代表的十进制数(如128=2764=26等),这样可以使我们立即推算出Subnet_blockIP_block的数目。

  三、举例说明

  现在,通过举一些实际例子,大家可以对子网掩码和主机块的十进制算法有深刻的了解。

  1.已知所需子网数12,求实际子网数。

  这里实际子网数指Subnet_num,由于12最接近2的幂为1624),即Subnet_block=16,那么Subnet_num=162=14,故实际子网数为 14.

  2.已知一个B类子网的每个子网主机数要达到60×255个(约相当于X.Y.0.1X.Y.59.254的数量),求子网掩码。

  首先,60接近2的幂为6426),即IP_block=64 其次,子网掩码M=256IP_block=25664=192,最后由子网掩码格式B类是255.255.M.0得出子网掩码为255.255.192.0.