如何通过子网掩码划分网段

资料一:

一、缺省A、B、C类地址,子网掩码; 
二、子网掩码的作用: 
code: 
IP地址 192.20.15.5 11000000 00010100 00001111 00000101 
子网掩码 255.255.0.0 11111111 11111111 00000000 00000000 
网络ID 192.20.0.0 11000000 00010100 00000000 00000000 
主机ID 0.0.15.5 00000000 00000000 00001111 00000101 
计算该子网中的主机数:2^n-2=2^16-2=65534 
其中:n为主机ID占用的位数2: 192.20.0.0(表示本网络), 192.20.255.255 (表示子网广播); 
该子网所容纳主机的IP地址范围:192.20.0.1~192.20.255.254 
三、实现子网 
1.划分子网的理由: 
① 远程LAN互连; 
②连接混合的网络技术; 
③增加网段中的主机数量; 
④减少网络广播。 
2.子网的实现需要考虑以下因素: 
①确定所需的网络ID数,确信为将来的发展留有余地; 
谁需要占用单独的网络ID? 
▲每个子网; 
▲每个WAN连接; 
②确定每个子网中最大的计算机数目,也要考虑未来的发展; 
谁需要占用单独的主机ID? 
▲每个TCP/IP计算机网卡; 
▲每个TCP/IP打印机网卡; 
▲每个子网上的路由接口; 
③考虑增长计划的必要性: 
假设您在InterNIC申请到一个网络ID:192.20.16.0 但你有两个远程LAN需要互连,而且每个远程LAN各有60台主机。 
若不划分子网,您就只能使用一个网络ID:192.20.16.0,使用缺省子网掩码:255.255.255.0,而且在这个子网中可以容纳的主机ID的范围: 192.20.16.1~192.20.16.254,即可以有254台主机。 
现在若根据需要划分为两个子网,即借用主机ID中的两位用作网络ID,则子网掩码就应变为:255.255.255.192(11000000)目的是将借用的用作网络I D的位掩去。看一看划分出来的子网的情况: 
▲192.20.16.65~126 
192.20.16.01000001~01111110 
本网段(01 网段)主机数:2n-2=26-2=62或126-65+1=62 
▲192.20.16.129~190 
192.20.16.10000001~10111110 
本网段(10 网段)主机数:2n-2=26-2=62或190-129+1=62 
▲子网号00全0表示本网络,子网号11全1是子网屏蔽,均不可用。
提示:在早期的子网划分标准RFC950中,不能使用全0或全1做为二进制子网标识(在子网划分公式2n-2中的-2处理)。在RFC1812中,这个限制已被取消。下面内容摘自于RFC1812。
“以前版本的文档认为,子网号不能为0或-1,并且至少要有两位长。在一个CIDR领域,子网号就是网络前缀的一种延伸。如果没有前缀,那么子网号也就不存在了。从CIDR观点来看,这种对子网号的限制是没有意义的,可以安全地忽略。” 
这个方案可以满足目前需求,但以后如果需要加入新的网段则必须重新划分更多的子网(即借用更多的主机ID位用作网络ID),或如果以后需要每个子网中的主机数更多则必须借用网络I D位来保证更多的主机数。 
四、定义子网号的方法 
若InterNIC分配给您的B类网络ID为129.20.0.0,那么在使用缺省的子网掩码255.255.0.0的情况下,您将只有一个网络ID和216-2台主机(范围是:129.20.0.1~129.20.255.254)。现在您有划分4个子网的需求。 
1.手工计算法: 
①将所需的子网数转换为二进制 
4→00000100 
②以二进制表示子网数所需的位数即为向缺省子网掩码中加入的位数(既应向主机ID借用的位数) 
00000100→3位 
③决定子网掩码 
缺省的:255.255.0.0 
借用主机ID的3位以后:255.255.224(11100000).0,即将所借的位全表示为1,用作子网掩码。 
④决定可用的网络ID 
列出附加位引起的所有二进制组合,去掉全0和全1的组合情况 
code: 
  组合情况     实际得到的子网ID 
   000╳ 
001→32 (00100000 ) 129.20.32.0 
010→64 (01000000 ) 129.20.64.0

你一定对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地址更加便于管理和控制。

参考资料:http://www.popsoft.com.cn/learn/net/sm.htm

资料二: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)技术,又叫子网寻径(subnetrouting),英文简称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 11111111 00000000)为:
  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类:

子网数目 占用位数    子网掩码    子网中主机数
 2     1    255.128.0.0    8,388,606
 4     2    255.192.0.0    4,194,302
 8     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类:

子网数目 占用位数    子网掩码    子网中主机数
 2     1    255.255.128.0   32,766
 4     2    255.255.192.0   16,382
 8     3    255.255.224.0   8,190
 16     4    255.255.240.0   4,094
 32     5    255.255.248.0   2,046
 64     6    255.255.252.0   1,022
 128    7    255.255.254.0   510
 256    8    255.255.255.0   254

C类:

子网数目 占用位数    子网掩码    子网中主机数
 2     1    255.255.255.128   126
 4     2    255.255.255.192   62
 8     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

IP地址、子网掩码详解

一、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个网段(第一个可用网段号1,最后一个可用网段号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个网段(第一个可用网段号128.0,最后一个可用网段号1291.255),网络中的主机标识占2组8位二进制数,每个网络允许有216-2=65533台主机,适用于结点比较多的网络。

●C类地址:C类地址的网络标识由前3组8位二进制数表示,网络中主机标识占1组8位二进制数C类地址的特点是网络标识的前3位二进制数取值必须为"110"。C类地址第一个地址为11000000,最后一个地址是11011111,换算成十进制C类地址第一段范围就是192~223,C类地址允许有221 =2097152个网段(第一个可用网络号192.0.0,最后一个可用网络号223.255.255),网络中的主机标识占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地址的使用范围。 网络类别 最大网络数 第一个可用的网络号 最后一个可用的网络号 每个网络中的最大主机数

A 126(27-2) 1 126 16777214

B 16384(214) 128.0 191.255 65534

C 2097152(221) 192.0.0 223.255.255 254

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"的网络号被解释成"本"网络。由上可以看出:

(1)含网络号127的分组不能出现在任何网络上;

(2)主机和网关不能为该地址广播任何寻径信息。

由以上规定可以看出,主机号全"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这样各地址就不属于一个网络了。下面的子网划分将作详细介绍。

192.168.0.1 11000000.10101000.00000000.00000001

192.168.0.200 11000000.10101000.00000000.11001000

255.255.255.0 11111111.11111111.11111111.00000000

192.168.0.1 11000000.10101000.00000000.00000001

192.168.0.200 11000000.10101000.00000000.11001000

255.255.255.192 11111111.11111111.11111111.11000000

下表是几个子网掩码计算过程中非常有用的十进制和二进制的对照

用于子网掩码换算的十进制和二进制对照

十进制 128 64 32 16 8 4 2 1

二进制 10000000 01000000 00100000 00010000 00001000 00000100 00000010 00000001

常用的子网掩码的十进制和二进制对照

十进制 128 192 224 240 248 252 254 255

二进制 10000000 11000000 11100000 11110000 11111000 11111100 11111110 11111111

二、彻底明白IP地址的含义

不管是学习网络还是上网,IP地址都是出现频率非常高的词。Windows系统中设置IP地址的界面大家都很熟悉,图中出现了IP地址、子网掩码、默认网关和DNS服务器这几个需要设置的地方,只有正确设置,网络才能通,那这些名词都是什么意思呢?学习IP地址的相关知识时还会遇到网络地址、广播地址、子网等概念,这些又是什么意思呢?

要解答这些问题,先看一个日常生活中的例子。如下图所示,住在北大街的住户要能互相找到对方,必须各自都要有个门牌号,这个门牌号就是各家的地址,门牌号的表示方法为:北大街+XX号。假如1号住户要找6号住户,过程是这样的,1号在大街上喊了一声:"谁是6号,请回答。",这时北大街的住户都听到了,但只有6号作了回答,这个喊的过程叫"广播",北大街的所有用户就是他的广播范围,假如北大街共有20个用户,那广播地址就是:北大街 21号。也就是说,北大街的任何一个用户喊一声能让"广播地址-1"个用户听到。

从这个例中可以抽出下面几个词:

街道地址:北大街,如果给该大街一个地址则用第一个住户的地址-1,此例为:北大街0号

住户的号:如1号、2号等。

住户的地址:街道地址+XX号,如北大街 1号、北大街 2号等

广播地址:最后一个住户的地址+1,此例为:北大街21号

Internet网络中,每个上网的计算机都有一个像上述例子的地址,这个地址就是IP地址,是分配给网络设备的门牌号,为了网络中的计算机能够互相访问,IP地址=网络地址+主机地址,图1中的IP地址是192.168.100.1,这个地址中包含了很多含义。如下所示:

网络地址(相当于街道地址): 192.168.100.0

主机地址(相当于各户的门号): 0.0.0.1

IP地址(相当于住户地址): 网络地址+主机地址=192.168.100.1

广播地址: 192.168.100.255

这些地址是如何计算出来的呢?为什么计算这些地址呢?要想知道如何,先要明白一个道理,学习网络的目的就是如何让网络中的计算机相互通讯,也就是说要围绕着"通"这个字来学习和理解网络中的概念,而不是只为背几个名词。

注:192.168.100.1是私有地址,是不能直接在Internet网络中应用的,上Internet要转为公有地址,下面详细说明。

1、为什么要计算网络地址

一句话就是让网络中的计算机能够相互通讯。先看看最简单的网络,下图中是用网线(交叉线)直接将两台计算机连起来。下面是几种IP地址设置,看看在不同设置下网络是通还是不通。

(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地址而不是物理连接。那么如何计算呢?

2、如何计算网络地址

我们日常生活中的地址如:北大街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.00000000

与运算______________________________________________________________

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.255    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位。

主机的数量=28-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

主机的数量:                           28-2=254

地址范围是:   网络地址: 192.168.100.0 ...... 广播地址为: 192.168.100.255

主机的地址范围是:网络地址+1:192.168.100.1 ...... 广播地址-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. 局域网内ping [局域网内ip地址]命令详解

    一.工作过程 主机A向主机B发送一个ICMP请求报文[类型字段为8,代码字段为0],若收到ICMP回复报 文[类型字段为0,代码字段为0]则说明主机B处于活动状态:若超时未收到回复,则可能是 因为(1 ...

  2. IP2——IP地址和子网划分学习笔记之《子网掩码详解》

    2018-05-04 16:21:21   在学习掌握了前面的<进制计数><IP地址详解>这两部分知识后,要学习子网划分,首先就要必须知道子网掩码,只有掌握了子网掩码这部分内容 ...

  3. 网络编程之TCP/IP各层详解

    网络编程之TCP/IP各层详解 我们将应用层,表示层,会话层并作应用层,从TCP/IP五层协议的角度来阐述每层的由来与功能,搞清楚了每层的主要协议,就理解了整个物联网通信的原理. 首先,用户感知到的只 ...

  4. IP地址子网掩码主机地址网络号主机号

    (1)子网掩码1所对应的位为网络号位 而所对应的位为主机号位 IP地址+子网掩码=网络号: IP地址+子网掩码(反码)=主机号. (2)主机号中的m位被用来表示网络号了,也就是子网号,将0-255划分 ...

  5. IP地址,子网掩码,默认网关,路由,形象生动阐述

    自己的Linux虚拟机已经分配了固定的IP地址(使用无线路由,用的是192.168.1.XX网段),公司的无线网络分配的IP地址是(10.51.174.XX网段) 所以当自己的电脑拿到公司,还想使用桥 ...

  6. [转]IP地址-子网掩码-默认网关

    IP地址:是给每个连接在Internet上的主机分配的一个32bit地址.地址有两部分组成,一部分为网络地址,另一部分为主机地址.IP地址分为A.B.C.D.E 5类.常用的是B和C两类.网络地址的位 ...

  7. IP地址 子网掩码 默认网关 DNS(转)

    突然被问到IP地址方面的知识,吓得我赶紧上网找一找资料,觉得这篇还是写得简单易懂,share一下. Key: 1.IP地址=网络地址+主机地址,(又称:主机号和网络号组成): 2.将IP地址和子网掩码 ...

  8. 【转载】IP地址和子网划分学习笔记之《子网掩码详解》

    原文地址: https://blog.51cto.com/6930123/2112748 一.子网掩码 IP地址是以网络号和主机号来标示网络上的主机的,我们把网络号相同的主机称之为本地网络,网络号不相 ...

  9. 【TCP/IP】TCP详解笔记

    目录 前言 17. TCP 传输控制协议 17.1 引言 17.2 TCP 服务 17.3 TCP的首部 18. TCP连接的建立与终止 18.1 引言 18.2 连接的建立与终止 18.2.1 建立 ...

随机推荐

  1. js 鸭式辨型法

    无意中看到arr.length === +arr.length;这句代码,然后就去了解了下 这是一种鸭式辨型的判断方法. 鸭式辨型:像鸭子一样走路.游泳和嘎嘎叫的鸟就是鸭子 这句话表示: a.arr有 ...

  2. HTML+CSS Day10实例

    1.家居大视野 效果图: 代码: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "h ...

  3. Vagrant常用命令

    Vagrant常用命令 Vagrant的几个命令: vagrant box add 添加box的操作 vagrant init 初始化box的操作 vagrant up 启动虚拟机的操作 vagran ...

  4. 如何用脚本快速修改IP地址(Netsh)

    如何用脚本快速修改IP地址(Netsh) 如果通过Windows的网络属性修改Ip/网关,真是太麻烦了.最近一个项目经常要切换ip,所以我写了两个脚本:c:\116.bat netsh interfa ...

  5. Python 2 中的编码

    在 Python 尤其是 Python2 中,编码问题是困扰开发者尤其初学者的一大问题.什么 Unicode/UTF-8/str ,又是 decode/encode 的,搞得人头都大了.其实不然,这有 ...

  6. 笔记整理--Linux多线程

    Unix高级环境编程系列笔记 (2013/11/17 14:26:38) Unix高级环境编程系列笔记 出处信息 通过这篇文字,您将能够解答如下问题: 如何来标识一个线程? 如何创建一个新线程? 如何 ...

  7. 50、matplotlib画图示例

    1.画饼图 import matplotlib.pyplot as plt >>> labels = 'frogs','hogs','dogs','logs' >>> ...

  8. 外部VBS的调用

    一.QTP调用外部VBS的方法 加到QTP的Resource中 在QTP菜单中设置, 菜单FileàSettingsàResource,将要加载的VB脚本添加进来. 举例: 步骤1:在D盘下新建一个V ...

  9. 编写程序,从vector<char>初始化string

    #include<iostream> #include<string> #include<vector> using namespace std; int main ...

  10. SharePoint2013 Set Value To PeoplePicker

    var columnName = 'Display Name';var userName = 'domain\\name';var searchText = RegExp("FieldNam ...