深入理解IP地址等

来源:互联网 发布:斗鱼主播唱歌软件 编辑:程序博客网 时间:2024/06/10 07:45

Internet网络中,每个上网的计算机都有一个像上述例子的地址,这个地址就是IP地址,是分配给网络设备的门牌号,为了网络中的计算机能够互相访问,IP地址=网络地址+主机地址,例如:IP地址是192.168.100.1,这个地址中包含了很多含义.如下所示:
网络地址(相当于街道地址): 192.168.100.0
主机地址(相当于各户的门号): 0.0.0.1
IP地址(相当于住户地址): 网络地址+主机地址=192.168.100.1
广播地址: 192.168.100.255 (网络中最后一个IP地址+1)
这些地址是如何计算出来的呢 为什么计算这些地址呢 要想知道如何,先要明白一个道理,学习网络的目的就是如何让网络中的计算机相互通讯,也就是说要围绕着"通"这个字来学习和理解网络中的概念。注:192.168.100.1是私有地址,是不能直接在Internet网络中应用的,上Internet要转为公有地址,下面详细说明.
一,为什么要计算网络地址
一句话就是让网络中的计算机能够相互通讯.先看看最简单的网络。

1,设置1号机的IP地址为192.168.0.1子网掩码为255.255.255.0,2号机的IP地址为192.168.0.200子网掩码为255.255.255.0,这两台计算机就能正常通讯.
2,如果1号机地址不变,将2号机的IP地址改为192.168.1.200子网掩码还是为255.255.255.0,那这两台就无法通讯.
3,设置1号机的IP地址为192.168.0.1子网掩码为255.255.255.192,2号机的IP地址为192.168.0.200子网掩码为255.255.255.192,注意和第1种情况的区别在于子网掩码,1为255.255.255.0本例是255.255.255.192这两台计算机就不能正常通讯.

第1种情况能通是因为这两台计算机处在同一网络192.168.0.0,所以能通,而2,3种情况下两台计算机处在不同的网络,所以不通.
这里先给个结论:用网线直接连接的计算机或是通过HUB或普通交换机间接的计算机之间要能够相互通,计算机必须要在同一网络,也就是说它们的网络地址必须相同,而且主机地址必须不一样.如果不在一个网络就无法通.这就像我们上面举的例子,同是北大街的住户由于街道名称都是北大街,且各自的门牌号不同,所以能够相互找到对方.
计算网络地址就是判断网络中的计算机在不在同一网络,在就能通,不在就不能通.注意,这里说的在不在同一网络指的是IP地址而不是物理连接.那么如何计算呢
二,如何计算网络地址
我们日常生活中的地址如:北大街1号,从字面上就能看出街道地址是北大街,而我们从IP地址中却难以看出网络地址,要计算网络地址,必须借助我们上边提到过的子网掩码.
计算过程是这样的,将IP地址和子网掩码都换算成二进制,然后进行与运算,结果就是网络地址.与运算如下所示,上下对齐,1位1位的算,1与1=1 ,其余组合都为0
例如:计算IP地址为:202.99.160.50子网掩码是255.255.255.0的网络地址步骤如下:
1)将IP地址和子网掩码分别换算成二进制
202.99.160.50 换算成二进制为 11001010·01100011·10100000·00110010
255.255.255.0 换算成二进制为 11111111·11111111·11111111·00000000
2)将二者进行与运算
11001010.01100011.10100000.00000000
3)将运算结果换算成十进制,这就是网络地址.
11001010·01100011·10100000·00000000换算成十进制就是202.99.160.0
现在我们就可以解答上面三种情况的通与不通的问题了.
1,从下面运算结果可以看出二台计算机的网络地址都为192.168.0.0且IP地址不同,所以可以通.

2,从下面运算结果可以看出1号机的网络地址为192.168.0.0,2号机的网络地址为192.168.1.0 不在一个网络,所以不通.

3,从下面运算结果可以看出1号机的网络地址为192.168.0.0,2号机的网络地址为192.168.0.192 不在一个网络,所以不通

   子网掩码不能单独存在,它必须结合IP地址一起使用。子网掩码只有一个作用,就是将某个IP地址划分成网络地址主机地址两部分。

  子网掩码的设定必须遵循一定的规则。与IP地址相同,子网掩码的长度也是32位,左边是网络位,用二进制数字“1”表示;右边是主机位,用二进制数字“0”表示。只有通过子网掩码,才能表明一台主机所在的子网与其他子网的关系,使网络正常工作。

  子网掩码的术语是扩展的网络前缀码不是一个地址,但是可以确定一个网络层地址哪一部分是网络号,哪一部分是主机号,1 的部分代表网络号,掩码为 0的部分代表主机号。子网掩码的作用就是获取主机 IP的网络地址信息,用于区别主机通信不同情况,由此选择不同路。其中 A类地址的默认子网掩码为 255.0.0.0;B类地址的默认子网掩码为 255.255.0.0;C类地址的默认子网掩码为:255.255.255.0。

  如何通过子网掩码来确定网络号或者网络地址?

  通过 IP 地址的二进制与子网掩码的二进制进行与运算进行定某个设备的网络地址,也就是说通过子网掩码分辨一个网络的网络部分和主机部分子网掩码一旦设置,网络地址和主机地址就固定了。

  子网一个最显著的特征就是具有子网掩码。与IP地址相同,子网掩码的长度也是32位,也可以使用十进制的形式。例如,为二进制形式的子网掩码:11111111111111111111111100000000,采用十进制的形式为:255.255.255.0。

  1.子网掩码的概念

  子网掩码是一个32位地址,用于屏蔽IP地址的一部分以区别网络标识和主机标识,并说明该IP地址是在局域网上,还是在远程网上。

  2.确定子网掩码数
用于子网掩码的位数决定于可能的子网数目和每个子网的主机数目。在定义子网掩码前,必须弄清楚本来使用的子网数和主机数目。

  

  定义子网掩码的步骤为:

  A、确定哪些组地址归我们使用。比如我们申请到的网络号为 “210.73.a.b”,该网络地址为C类IP地址,网络标识为“210.73”,主机标识为“a.b”。

  B、根据我们现在所需的子网数以及将来可能扩充到的子网数,用宿主机的一些位来定义子网掩码。比如我们现在需要12个子网,将来可能需要16个。用第三个字节的前四位确定子网掩码。前四位都置为“1”(即把第三字节的最后四位作为主机位,其实在这里有个简单的规律,非网络位的前几位置1原网络就被分为2的几次方个网络,这样原来网络就被分成了2的4次方16个子网),即第三个字节为“11110000”,这个数我们暂且称作新的二进制子网掩码。

  C、把对应初始网络的各个位都置为“1”,即前两个字节都置为“1”,第四个字节都置为“0”,则子网掩码的间断二进制形式为:“11111111.11111111.11110000.00000000”

  D、把这个数转化为间断十进制形式为:“255.255.240.0”

  这个数为该网络的子网掩码。

  3.IP掩码的标注

  A、无子网的标注法

  对无子网的IP地址,可写成主机号为0的掩码。如IP地址210.73.140.5,掩码为255.255.255.0,也可以缺省掩码,只写IP地址。

  B、有子网的标注法

  有子网时,一定要二者配对出现。以C类地址为例。

  1.IP地址中的前3个字节表示网络号,后一个字节既表明子网号,又说明主机号,还说明两个IP地址是否属于同一个网段。如果属于同一网络区间,这两个地址间的信息交换就不通过路由器。如果不属同一网络区间,也就是子网号不同,两个地址的信息交换就要通过路由器进行。例如:对于IP地址为210.73.140.5的主机来说,其主机标识为00000101,对于IP地址为210.73.140.16的主机来说它的主机标识为00010000,以上两个主机标识的前面三位全是000,说明这两个IP地址在同一个网络区域中,这两台主机在交换信息时不需要通过路由器进行。210.73.60.1的主机标识为00000001,210.73.60.252的主机标识为11111100,这两个主机标识的前面三位000与111不同,说明二者在不同的网络区域,要交换信息需要通过路由器。其子网上主机号各为1和252。

  2.掩码的功用是说明有子网和有几个子网,但子网数只能表示为一个范围,不能确切讲具体几个子网,掩码不说明具体子网号,有子网的掩码格式(对C类地址)。

  子网掩码通常有以下2种格式的表示方法:

  1. 通过与IP地址格式相同的点分十进制表示

  如:255.0.0.0 或 255.255.255.128

  2. 在IP地址后加上"/"符号以及1-32的数字,其中1-32的数字表示子网掩码中网络标识位的长度

  如:192.168.1.1/24 的子网掩码也可以表示为 255.255.255.0

  子网掩码和ip地址的关系

  子网掩码是用来判断任意两台计算机的IP地址是否属于同一子网络的根据。最为简单的理解就是两台计算机各自的IP地址与子网掩码进行AND运算后,如果得出的结果是相同的,则说明这两台计算机是处于同一个子网络上的,可以进行直接的通讯。

  请看以下示例:

  运算演示之一:aa

  I P 地址 192.168.0.1

  子网掩码 255.255.255.0

  AND运算 (AND运算法则:1 与 1 = 1 ,1 与 0 = 0 ,0 与 1 = 0 ,0 与 0 = 0 ,即当对应位均为1时结果为1,其余为0。)

  转化为二进制进行运算:

  I P 地址 11000000.10101000.00000000.00000001

  子网掩码 11111111.11111111.11111111.00000000

  AND运算

  11000000.10101000.00000000.00000000

  转化为十进制后为:

  192.168.0.0

  运算演示之二:

  I P 地址 192.168.0.254

  子网掩码 255.255.255.0

  AND运算

  转化为二进制进行运算:

  I P 地址 11000000.10101000.00000000.11111110

  子网掩码 11111111.11111111.11111111.00000000

  AND运算

  11000000.10101000.00000000.00000000

  转化为十进制后为:

  192.168.0.0

  运算演示之三:

  I P 地址 192.168.0.4

  子网掩码 255.255.255.0

  AND运算

  转化为二进制进行运算:

  I P 地址 11000000.10101000.00000000.00000100

  子网掩码 11111111.11111111.11111111.00000000

  AND运算

  11000000.10101000.00000000.00000000

  转化为十进制后为:

  192.168.0.0

  通过以上对三组计算机IP地址与子网掩码的AND运算后,我们可以看到它运算结果是一样的。均为192.168.0.0 。所以计算机就会把这三台计算机视为是同一子网络,然后进行通讯的。

  

  根据上面我们可以看出,局域网内部的ip地址是我们自己规定的(当然和其他的ip地址是一样的),这个是由子网掩码决定的通过对255.255.255.0的分析。可得出:

  前三位IP码由分配下来的数字就只能固定为192.168.0 所以就只剩下了最后的一位了,那么显而易见了,ip地址只能有(2的8次方-2),即256-2=254,一般主机地址全为0或者1(二进制)有其特殊的作用。

  那么你可能要问了:如果我的子网掩码不是255.255.255.0呢?你也可以这样做啊假设你的子网掩码是255.255.128.0

  那么你的局域网内的ip地址的前两位肯定是固定的了

  这样,你就可以按照下边的计算来看看同一个子网内到底能有多少台机器

  1、十进制128 = 二进制1000 0000

  2、IP码要和子网掩码进行AND运算

  3、 I P 地址 11000000.10101000.1*******.********

       子网掩码 11111111.11111111.10000000.00000000

  AND运算       11000000.10101000.10000000.00000000

  转化为十进制后为: 192 . 168. 128 . 0

  4、可知我们内部网可用的IP地址为:

  11000000.10101000.10000000.00000000 到 11000000.10101000.11111111.11111111

或  (11000000.10101000.00000000.00000000 到 11000000.10101000.01111111.11111111)

  5、转化为十进制:

  192 . 168.128.0 到192 . 168.255.255 (或者192.168.0.0到192.168.127.255)

  6、0和255通常作为网络的内部特殊用途。通常不使用。

  7、于是最后的结果如下:我们单位所有可用的IP地址为:

  192.168.128.1-192.168.128.254

  192.168.129.1-192.168.129.254

  192.168.130.1-192.168.130.254

  192.168.131.1-192.168.131.254

  . . . . . . . . . . . . .

  192.168.139.1-192.168.139.254

  192.168.140.1-192.168.140.254

  192.168.141.1-192.168.141.254

  192.168.142.1-192.168.142.254

  192.168.143.1-192.168.143.254

  . . . . . . . . . . . . .

  192.168.254.1-192.168.254.254

  192.168.255.1-192.168.255.254

  8、总数为(255-128+1)*(254-1+1) =128 * 254 = 32512

  子网内包含的机器数目应该是2^n-2,比如说上面的子网掩码是255.255.128.0,那么他的网络号是17位,主机号是15位,只要主机号不全是0或者1就是可以的,所以ip地址是192.168.192.0(11000000.10101000.11000000.00000000)也允许,除掉全0全1,结果为2^15-2=32766,上面的落了好多地址

  9、看看的结果是否正确

  (1)、设定IP地址为192.168.128.1

  Ping 192.168.129.233通过测试

  访问http://192.168.129.233可以显示出主页

  (2)、设定IP地址为192.168.255.254

  Ping 192.168.129.233通过测试

  访问http://192.168.129.233可以显示出主页

  10、结论:以上证明我们的结论是对的。

  子网掩码

  (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地址和子网掩码,例如c类地址子网掩码(11111111 11111111 11111111 00000000)为:255.255.255.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。

0 0
原创粉丝点击