IP地址与子网掩码(扫盲版)

IP地址与子网掩码的基本原理

一. 什么是IP地址
         计算机网络中的地址有:使用地址、物理地址、IP地址。使用地址是为了便于记忆的地址,例如有域名地址、电子邮件地址。物理地址为网络适配器地址,也称为网卡地址。IP地址为逻辑地址,用于网络中计算机的互联。
        网络上的每一台设备为了与其他设备相区别,就应该有自己的唯一标志。对于一台使用TCP/IP协议连接到网络的主机来说,IP地址就是这个唯一标志,IP地址被网络上任一设备用来区别于其他设备。计算机只“认识”二进制语言,只能辨识用0和1这两个数字组合成的数字序列,在计算机网络中的IP地址就是由一串二进制数组成的。
        IP地址用32位二进制数标识计算机网络中的每一台计算机。
例如:10011000000000110001011001010100。
记忆这32位二进制数显然比较困难,可以用小数点分隔为四组,每8位一组。
例如:10011000.00000011.00010110.01010100
但这样记忆起来还是比较困难,那就把每组的八位二进制数转换为十进制数。
例如:152.3.22.84
这就是我们常见的IP地址(又称为点分十进制地址)了。


二. IP地址的分类
        每个IP地址由网络标识(NetID)和主机标识(HostID)两部分组成,分别表示一台计算机所在的网络和在该网络内的这台计算机。

IP地址与子网掩码(扫盲版)_第1张图片
IP地址公分五类,每个IP地址的前5位(从左侧数)用于表示IP地址的类别。
1) A类IP地址
      网络地址的第一位必须是“0”, 地址范围从1.0.0.0 到127.0.0.0。可用的A类网络有126个,每个网络能容纳1亿6千多万个主机。
2) B类IP地址
      网络地址的前二位必须是“10”,地址范围从128.0.0.0到191.255.255.255。可用的B类网络有16382个,每个网络能容纳6万多个主机。
3) C类IP地址
      网络地址的前三位必须是“110”。范围从192.0.0.0到223.255.255.255。C类网络可达209万余个,每个网络能容纳254个主机。
4) D类IP地址
      D类IP地址前四位以“lll0”开始,它是一个专门保留的地址。它并不指向特定的网络,目前这一类地址被用在多点广播(Multicast)中。多点广播地址用来一次寻址一组计算机,它标识共享同一协议的一组计算机。
5) E类IP地址
      E类地址的前五位以“llll0”开始,为将来使用保留。
6) 全“0”(“0.0.0.0”)地址对应于当前主机。全“1”的IP地址(“255.255.255.255”)是当前子网的广播地址。
下图淸析地表示出IP地址的分类和长度
IP地址与子网掩码(扫盲版)_第2张图片
三. 子网的划分
        我们首先考虑:假如一个公司申请了一个B类地址152.3.0.0~152.3.255.255。由上文可知这个公司可以有16382台主机接入Internet,但是,这个公司仅有4000台电脑,这就使12532个IP处于闲置状态,从而造成了宝贵IP地址资源的巨大浪费。 (当然,可以申请C类地址,但如此举例只为说明问题)
         如何解绝?如果只将152.3.0.0这个网络下主机的四分之一分配给该公司,其余的四分之三再分配给同等规模的其他公司,这就使有限的IP资源得到最大限度的利用。
         如何操作?我们分析一下他的网络地址。用()标出其网络地址部分,用[]标出其主机地址部分:10(011000.00000011).[00000000.00000000]。我们可以采用借位的方式,从主机地址最高位开始借位变为新的子网位,所剩余的部分则仍为主机位。我们借用2位以划分子网用¬¬__标出即:00[000000.00000000]、01[000000.00000000]、10[000000.00000000]、11[000000.00000000]。这就在原来的一个网络下,又划分了四个子网。
         以上在 理论上是可行的,但由 上文“IP地址分类”可知全“0”与全“1”的IP地址是有特殊用途的,因此上述借2位只能将IP地址划分为2个子网。即:01[000000.00000000]和10[000000.00000000]。所以只能用3位划分为8-2=6个子网。
         到这里大家又可能有这样的疑问借用3位划分会不会使主机地址的位数不够,从而达不到一个子网内16328÷4=4095.5台主机呢?我们可以计算一下,未划分子网前主机地址一共16位,用3位划分子网,还剩余13位。13位二进制表示的最大十进制数为8191>4095.5,所以完全可以用3位来划分。
         经过以上的讲解现在知道IP地址的结构分为三部分:网络位、子网位和主机位,如图:

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


四. 子网掩码(Subnet Mask)与有关计算
         引入子网概念后,网络位加上子网位才能全局惟一地标识一个网络。把所有的网络位用1来标识,主机位用0来标识,就得到了子网掩码。如:11111111111111111111000000000000这说明该子网掩码所对应得IP地址的前20位是网络号(包括网络位和子网位)后12位是主机号。上例即表明子网掩码有区分一个IP地址的网络号和主机号的作用。
        子网掩码的另一个作用是计算出一个IP地址的网络号,进而计算出主机号。具体计算方法见下例:
IP地址为: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)运算后得出的结果即为网络部分


即网络号为192.9.200.0。
则它的主机号可按如下方法得到:
将子网掩码按位取反:00000000.00000000.00000000.11111111
将IP地址和子网掩码的反码逐位进行逻辑与(AND)得到的结果即为主机号部分

结果为0.0.0.13,即主机号为13。
通过以上的讲述相信广大菜鸟对IP地址和子网掩码有了一定的了解,需要指出的是以上的论述只是IP地址和子网掩码的的最基本的概括,实际情况比这要复杂。另外,如果我所做的东西能为大家解开心中的疑问,使大家真的学到些东西,我会非常开心也会继续努力!当然最后还是希望大家能到我的空间里踩上一脚,添个人气。 

你可能感兴趣的:(网络,internet,语言,c)