转自xhamigua_QQ496400739的文章
http://xhamigua.blog.163.com/blog/static/61786908201191112512850/
文章中可能有些小错误,不过不影响学习。
关于IP网络号和主机号的原理
2011-10-11 13:29:12| 分类:系统方面 | 标签:|举报|字号大中小订阅
1、标准分类的ip地址的网络号是,
A类是前8位
B类是前16位
C类是前24位
举一个例子
如172.16.10.2,因为172.16.10.2是B类地址,所以172.16所代表的位就是网络号的位,后面10.2代表的位是主机位,A类C类和例子结构相同,就是位数不同。
2、如果不是标准的ip地址,就是要划子网的,就不一样了。要看后面的位数来确定
如192.168.15.2/26,后面的26代表网络号位数是26位,剩下的6位是主机号;前24位是标准的网络号,后俩位是为划分子网从主机号分出来的,也划分到网络号里。
子网掩码与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.0.13)
如何计算网络地址? ? ? ? ?
我们日常生活中的地址如:北大街1号,从字面上就能看出街道地址是北大街,而我们从IP地址中却难以看出网络地址,要计算网络地址,必须借助我们上边提到过的子网掩码。
计算过程是这样的,将IP地址和子网掩码都换算成二进制,然后进行与运算,结果就是网络地址。与运算如下所示,上下对齐,1位1位的算,1与1=1 ,其余组合都为0。
1...0...1...0
1...0...0...0
与运算________________
1...0...0...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?00110010
11111111?11111111?11111111?00000000
与运算________________________________________
11001010?01100011?10100000?00000000
3) 将运算结果换算成十进制,这就是网络地址。
11001010?01100011?10100000?00000000换算成十进制就是202.99.160.0
现在我们就可以解答上面三种情况的通与不通的问题了。
1、从下面运算结果可以看出二台计算机的网络地址都为192.168.0.0且IP地址不同,所以可以通。
192.168.0.1 11000000.10101000.00000000.00000001
255.255.255.0 11111111.11111111.11111111.00000000
与运算_________________________________________________________
192.168.0.0 11000000.10101000.00000000.00000000
192.168.0.200 11000000.10101000.00000000.11001000
255.255.255.0 11111111.11111111.11111111.00000000
与运算_________________________________________________________
192.168.0.0 11000000.10101000.00000000.00000000
2、从下面运算结果可以看出1号机的网络地址为192.168.0.0,2号机的网络地址为192.168.1.0 不在一个网络,所以不通。
192.168.1.200 11000000.10101000.00000001.11001000
255.255.255.0 11111111.11111111.11111111.00000000
与运算__________________________________________________________
192.168.1.0 11000000.10101000.00000001.00000000
3、从下面运算结果可以看出1号机的网络地址为192.168.0.0,2号机的网络地址为192.168.0.192 不在一个网络,所以不通
192.168.0.1 11000000.10101000.00000000.00000001
255.255.255.192 11111111.11111111.11111111.11000000
与运算_________________________________________________________
192.168.0.0 11000000.10101000.00000000.00000000
192.168.0.200 11000000.10101000.00000000.11001000
255.255.255.192 11111111.11111111.11111111.11000000
与运算________________________________________________________
192.168.0.182 11000000.10101000.00000000.11000000
相信看到这应该明白了为何计算网络地址和如何计算了,但也许还有很多疑问,如IP地址为什么写成这样,子网掩码到底是怎么回事等等,别急,下面慢慢介绍。
三、计算相关地址—通过IP地址和子网掩码与运算计算相关地址
知道IP地址和子网掩码后可以算出:
●网络地址
● 广播地址
● 地址范围
● 本网有几台主机
【例1】下面例子IP地址为192?168?100?5 子网掩码是255?255?255?0。算出网络地址、广播地址、地址范围、主机数。
1、分步骤计算
1)将IP地址和子网掩码换算为二进制,子网掩码连续全1的是网络地址,后面的是主机地址。 虚线前为网络地址,虚线后为主机地址
192.168.100.5 11000000.10101000.01100100.00000101
255.255.255.0 11111111.11111111.11111111.00000000
2)IP地址和子网掩码进行与运算,结果是网络地址
192.168.100.5 11000000.10101000.01100100.00000101
255.255.255.0 11111111.11111111.11111111.00000000
与运算 ______________________________________________________________
结果为: 192.168.100.0 11000000.10101000.01100100.00000000
3) 将上面的网络地址中的网络地址部分不变, 主机地址变为全1,结果就是广播地址。
网络地址为: 192.168.100.0 11000000.10101000.01100100.00000000
___________________________________________________________________________
将主机地址变为全1
广播地址为: 192.168.100.2 55 11000000.10101000.01100100.11111111
4) 地址范围就是含在本网段内的所有主机
网络地址+1即为第一个主机地址, 广播地址-1即为最后一个主机地址,由此可以看出
地址范围是: 网络地址+1 至 广播地址-1
本例的网络范围是:192?168?100?1 至 192?168?100?254
也就是说下面的地址都是一个网段的。
192?168?100?1、192?168?100?2 ... 192?168?100?20 ... 192?168?100?111... 192?168?100?254
5) 主机的数量
主机的数量=2二进制的主机位数-2
减2是因为主机不包括网络地址和广播地址。本例二进制的主机位数是8位。
主机的数量= 2^8-2=254
2、总体计算
我们把上边的例子合起来计算一下过程如下:
192.168.100.5 11000000.10101000.01100100.00000101
255.255.255.0 11111111.11111111.11111111.00000000
2)IP地址和子网掩码进行与运算,结果是网络地址
192.168.100.5 11000000.10101000.01100100.00000101
255.255.255.0 11111111.11111111.11111111.00000000
与运算 _________________________________________________________
结果为网络地址:192.168.100.0 11000000.10101000.01100100.00000000
将结果中的网络地址部分不变,主机地址变为全1
结果为广播地址:192.168.100.0 即 11000000.10101000.01100100.11111111
广播地址为: 192.168.100.255 即 11000000.10101000.01100100.11111111
主机的数量: 2^8-2=254
地址范围是: 网络地址: 192.168.100.0 ...... 广播地址为: 192.168.100.255
主机的地址范围是:网络地址+1:192.168.100.1 ...... 广播地址为: 192.168.100.254
【例2】IP地址为128?36?199?3 子网掩码是255?255?240?0。算出网络地址、广播地址、地址范围、主机数。
1) 将IP地址和子网掩码换算为二进制,子网掩码连续全1的是网络地址,后面的是主机地址, 虚线前为网络地址,虚线后为主机地址
128?36?199?3 10000000?00100100?1100 0111?00000011
255?255?240?0 11111111?11111111?1111 0000?00000000
2)IP地址和子网掩码进行与运算,结果是网络地址
128?36?199?3 10000000?00100100?1100 0111?00000011
255?255?240?0 11111111?11111111?1111 0000?00000000
与运算 __________________________________________________________
结果为网络地址:128?36?192?0 10000000?00100100?1100 0000?00000000
3)将运算结果中的网络地址不变,主机地址变为1,结果就是广播地址。
128?36?192?0 10000000?00100100?1100 0000?00000000
______________________________________________________________
广播地址: 128?36?207?255 10000000?00100100?1100 1111?11111111
4) 地址范围就是含在本网段内的所有主机
网络地址+1即为第一个主机地址,广播地址-1即为最后一个主机地址,由此可以看出
本例的网络范围是:128?36?192?1 至 128?36?207?254
5) 主机的数量
主机的数量=2二进制位数的主机-2=212-2=4094
从上面两个例子可以看出不管子网掩码是标准的还是特殊的,计算网络地址、广播地址、地址数时只要把地址换算成二进制,然后从子网掩码处分清楚连续1以前的是网络地址,后是主机地址进行相应计算即可
如何直接广播地址和受限广播地址的区别? ? ? ? ?
广播地址是一种特殊的IP地址形式,一种是直接广播地址,一种是有限广播地址。
直接广播地址包含一个确定的网络号和一个全“1”的主机号,如你说的202.163.30.255就是一个直接广播地址。 255就是一个主机号,202则是C类的IP地址,C类IP地址就是我们常接触到的。
受限广播地址是32位全1的IP地址(255.255.255.255)。受限的广播地址是255.255.255.255。该地址用于主机配置过程中IP数据报的目的地址,此时,主机可能还不知道它所在网络的网络掩码,甚至连它的IP地址也不知道。在任何情况下,路由器都不转发目的地址为受限的广播地址的数据报,这样的数据报仅出现在本地网络中。
例子:
ip 地址 121.175.21.9
子网掩码 255.192.0.0
求 网络地址 主机号 直接广播地址 ?
121开头的IP地址是个A类IP地址,
二进制:01111001 10101111 00010101 00001001
子网掩码 255.192.0.0 二进制的:11111111 11000000 00000000 00000000,做与运算,
可以得出网络地址是:01111001 10000000 00000000 00000000
十进制是:121.128.0.0/10
把网络地址中的主机地址部分全为1就可以得到直接广播地址(上面红色部分是网络地址。黑色部分是主机地址。)
01111001 10111111 11111111 11111111
十进制的直接广播地址:121.191.255.255
IP地址的子网划分??????
你一定对IP地址有所了解吧?我们知道在INTERNET中广泛使用的TCP/IP协议就是利用IP地址来区别不同的主机的。如果你曾经进行过TCP/IP协议设置,那么你一定会遇到子网掩码(Subnet mask)这一名词,那么你知道什么是子网掩码吗?它有什么作用呢?
我们知道IP地址是一个4字节(共32bit)的数字,被分为4段,每段8位,段与段之间用句点分隔。为了便于表达和识别,IP地址是以十进制形式表示的如210.52.207.2,每段所能表示的十进制数最大不超过255。IP地址由两部分组成,即网络号(Netgwork ID)和主机号(Host ID)。网络号标识的是Internet上的一个子网,而主机号标识的是子网中的某台主机。网际地址分解成两个域后,带来了一个重要的优点:IP数据包从网际上的一个网络到达另一个网络时,选择路径可以基于网络而不是主机。在大型的网际中,这一点优势特别明显,因为路由表中只存储网络信息而不是主机信息,这样可以大大简化路由表。IP地址根据网络号和主机号的数量而分为A、B、C三类:
A类IP地址:用7位(bit)来标识网络号,24位标识主机号,最前面一位为"0",即A类地址的第一段取值介于1~126之间。A类地址通常为大型网络而提供,全世界总共只有126个只可能的A类网络,每个A类网络最多可以连接16777214台主机。
B类IP地址:用14位来标识网络号,16位标识主机号,前面两位是"10"。B类地址的第一段取值介于128~191之间,第一段和第二段合在一起表示网络号。B类地址适用于中等规模的网络,全世界大约有16000个B类网络,每个B类网络最多可以连接65534台主机。
C类IP地址:用21位来标识网络号,8位标识主机号,前面三位是"110"。C类地址的第一段取值介于192~223之间,第一段、第二段、第三段合在一起表示网络号。最后一段标识网络上的主机号。C类地址适用于校园网等小型网络,每个C类网络最多可以有254台主机。
从上面的介绍我们知道,IP地址是以网络号和主机号来标示网络上的主机的,只有在一个网络号下的计算机之间才能"直接"互通,不同网络号的计算机要通过网关(Gateway)才能互通。但这样的划分在某些情况下显得并十分不灵活。为此IP网络还允许划分成更小的网络,称为子网(Subnet),这样就产生了子网掩码。子网掩码的作用就是用来判断任意两个IP地址是否属于同一子网络,这时只有在同一子网的计算机才能"直接"互通。那么怎样确定子网掩码呢?
前面讲到IP地址分网络号和主机号,要将一个网络划分为多个子网,因此网络号将要占用原来的主机位,如对于一个C类地址,它用21位来标识网络号,要将其划分为2个子网则需要占用1位原来的主机标识位。此时网络号位变为22位为主机标示变为7位。同理借用2个主机位则可以将一个C类网络划分为4个子网……那计算机是怎样才知道这一网络是否划分了子网呢?这就可以从子网掩码中看出。子网掩码和IP地址一样有32bit,确定子网掩码的方法是其与IP地址中标识网络号的所有对应位都用"1",而与主机号对应的位都是"0"。如分为2个子网的C类IP地址用22位来标识网络号,则其子网掩码为:11111111 11111111 11111111 10000000即255.255.255.128。于是我们可以知道,A类地址的缺省子网掩码为255.0.0.0,B类为255.255.0.0,C类为255.255.255.0。下表是C类地址子网划分及相关子网掩码:
子网位数 子网掩码 主机数 可用主机数
1 255.255.255.128 128 126
2 255.255.255.192 64 62
3 255.255.255.224 32 30
4 255.255.255.240 16 14
5 255.255.255.248 8 6
6 255.255.255.252 4 2
你可能注意到上表分了主机数和可用主机数两项,这是为什么呢?因为但当地址的所有主机位都为"0"时,这一地址为线路(或子网)地址,而当所有主机位都为"1"时为广播地址。
同时我们还可以使用可变长掩码(VLSM)就是指一个网络可以用不同的掩码进行配置。这样做的目的是为了使把一个网络划分成多个子网更加方便。在没有VLSM的情况下,一个网络只能使用一种子网掩码,这就限制了在给定的子网数目条件下主机的数目。例如你被分配了一个C类地址,网络号为192.168.10.0,而你现在需要将其划分为三个子网,其中一个子网有100台主机,其余的两个子网有50台主机。我们知道一个C类地址有254个可用地址,那么你如何选择子网掩码呢?从上表中我们发现,当我们在所有子网中都使用一个子网掩码时这一问题是无法解决的。此时VLSM就派上了用场,我们可以在100个主机的子网使用255.255.255.128这一掩码,它可以使用192.168.10.0到192.168.10.127这128个IP地址,其中可用主机号为126个。我们再把剩下的192.168.10.128到192.168.10.255这128个IP地址分成两个子网,子网掩码为255.255.255.192。其中一个子网的地址从192.168.10.128到192.168.10.191,另一子网的地址从192.168.10.192到192.168.10.255。子网掩码为255.255.255.192每个子网的可用主机地址都为62个,这样就达到了要求。可以看出合理使用子网掩码,可以使IP地址更加便于管理和控制。
1、IP地址的表示方法
IP地址 = 网络号+主机号
把整个Internet网堪称单一的网络,IP地址就是给每个连在Internet网的主机分配一个在全世界范围内唯一的标示符,Internet管理委员会定义了A、B、C、D、E五类地址,在每类地址中,还规定了网络编号和主机编号。在 TCP/IP协议中,IP地址是以二进制数字形式出现的,共32bit,1bit就是二进制中的1位,但这种形式非常不适用于人阅读和记忆。因此Internet管理委员会决定采用一种"点分十进制表示法"表示IP地址:面向用户的文档中,由四段构成的32 比特的IP地址被直观地表示为四个以圆点隔开的十进制整数,其中,每一个整数对应一个字节(8个比特为一个字节称为一段)。A、B、C类最常用,下面加以介绍。本文介绍的都是版本4的IP地址,称为IPv4.
从上图可以看出:
· A类地址:A类地址的网络标识由第一组8位二进制数表示, A类地址的特点是网络标识的第一位二进制数取值必须为"0"。不难算出,A类地址第一个地址为00000001,最后一个地址是01111111,换算成十进制就是127,其中127留作保留地址,A类地址的第一段范围是:1~126,A类地址允许有27 -2=126个网段(减2是因为0不用,127留作它用),网络中的主机标识占3组8位二进制数,每个网络允许有224-2=16777216台主机(减2是因为全0地址为网络地址,全1为广播地址,这两个地址一般不分配给主机)。通常分配给拥有大量主机的网络。
· B类地址:B类地址的网络标识由前两组8位二进制数表示,网络中的主机标识占两组8位二进制数,B类地址的特点是网络标识的前两位二进制数取值必须为"10"。 B类地址第一个地址为10000000,最后一个地址是10111111,换算成十进制B类地址第一段范围就是128~191,B类地址允许有214 =16384个网段,网络中的主机标识占2组8位二进制数,每个网络允许有216-2=65533台主机,适用于结点比较多的网络。
· C类地址:C类地址的网络标识由前3组8位二进制数表示,网络中主机标识占1组8位二进制数C类地址的特点是网络标识的前3位二进制数取值必须为"110"。C类地址第一个地址为11000000,最后一个地址是11011111,换算成十进制C类地址第一段范围就是192~223,C类地址允许有221 =2097152个网段,网络中的主机标识占1组8位二进制数,每个网络允许有28-2= 254台主机,适用于结点比较少的网络。
有些人对范围是2x不太理解,举个简单的例子加以说明。如C类网,每个网络允许有28-2= 254台主机是这样来的。因为C类网的主机位是8位,变化如下:
00000000
00000001
00000010
00000011
……
11111110
11111111
除去00000000和11111111不用外,从00000001到11111110共有254个变化,也就是28-2个。下图是IP地址的使用范围。
2、几个特殊的IP地址
1)私有地址
上面提到IP地址在全世界范围内唯一,看到这句话你可能有这样的疑问,像192.168.0.1这样的地址在许多地方都能看到,并不唯一,这是为何?Internet管理委员会规定如下地址段为私有地址,私有地址可以自己组网时用,但不能在Internet网上用,Internet网没有这些地址的路由,有这些地址的计算机要上网必须转换成为合法的IP地址,也称为公网地址,这就像有很到的世界公园,每个公园内都可命名相同的大街,如香榭丽舍大街,但对外我们只能看到公园的地址和真正的香榭丽舍大街。下面是A、B、C类网络中的私有地址段。你自己组网时就可以用这些地址了。
10.0.0.0~10.255.255.255
172.16.0.0~172.131.255.255
192.168.0.0~192.168.255.255
2)回送地址
A类网络地址127是一个保留地址,用于网络软件测试以及本地机进程间通信,叫做回送地址(loopback address)。无论什么程序,一旦使用回送地址发送数据,协议软件立即返回之,不进行任何网络传输。含网络号127的分组不能出现在任何网络上。
小技巧:
· Ping 127.0.0.1,如果反馈信息失败,说明IP协议栈有错,必须重新安装TCP/IP协议。如果成功,ping本机IP地址,如果反馈信息失败,说明你的网卡不能和IP协议栈进行通信。
· 如果网卡没接网线,用本机的一些服务如Sql Server、IIS等就可以用127.0.0.1这个地址。
3)广播地址
TCP/IP规定,主机号全为"1"的网络地址用于广播之用,叫做广播地址。所谓广播,指同时向同一子网所有主机发送报文。
4)网络地址
TCP/IP协议规定,各位全为"0"的网络号被解释成"本"网络。由上可以看出:一、含网络号127的分组不能出现在任何网络上;二、主机和网关不能为该地址广播任何寻径信息。由以上规定可以看出,主机号全"0"全"1"的地址在TCP/IP协议中有特殊含义,一般不能用作一台主机的有效地址。
3、子网掩码
从上面的例子可以看出,子网掩码的作用就是和IP地址与运算后得出网络地址,子网掩码也是32bit,并且是一串1后跟随一串0组成,其中1表示在IP地址中的网络号对应的位数,而0表示在IP地址中主机对应的位数。
1)标准子网掩码
A类网络(1 - 126) 缺省子网掩码:255·0·0·0
255·0·0·0 换算成二进制为 11111111·00000000·00000000·00000000
可以清楚地看出前8位是网络地址,后24位是主机地址,也就是说,如果用的是标准子网掩码,看第一段地址即可看出是不是同一网络的。如21.0.0.0.1和21.240.230.1,第一段为21属于A类,如果用的是默认的子网掩码,那这两个地址就是一个网段的。
B类网络(128 - 191) 缺省子网掩码:255·255·0·0
C类网络(192 - 223) 缺省子网掩码:255·255·255·0
B类、C类分析同上。
2) 特殊的子网掩码
标准子网掩码出现的都是255和0的组合,在实际的应用中还有下面的子网掩码
255·128·0·0
255·192·0·0
。。。。。。
255·255·192·0
255·255·240·0
。。。。。。
255·255·255·248
255·255·255·252
这些子网掩码又是什么意思呢?这些子网掩码的出现是为了把一个网络划分成多个网络。
还记得上面的例子吗?如下所示:192·168·0·1和192·168·0·200如果是默认掩码255.255.255.0两个地址就是一个网络的,如果掩码变为255.255.255.192这样各地址就不属于一个网络了。下面的子网划分将作详细介绍。
表1是几个子网掩码计算过程中非常有用的十进制和二进制的对照