计算机网络知识——IP地址和子网掩码

一、IP地址                             

  IP地址由网络号和主机号组成。每台连在Internet网上的主机有唯一的IP地址。IP地址采用二进制形式,通常以"点分十进制表示法"表示(8个比特为一段,用十进制整数)。IP地址分为A、B、C、D、E五类,下图所示:(本文介绍的都是版本4的IP地址,称为IPv4.)

A类地址以0开头,第一个字节作为网络号,地址范围为:0.0.0.0~127.255.255.255;

B类地址以10开头,前两个字节作为网络号,地址范围是:128.0.0.0~191.255.255.255;

C类地址以110开头,前三个字节作为网络号,地址范围是:192.0.0.0~223.255.255.255。

D类地址以1110开头,地址范围是224.0.0.0~239.255.255.255,D类地址作为组播地址(一对多的通信);

E类地址以11110开头,地址范围是240.0.0.0~255.255.255.255,E类地址为保留地址,供以后使用。

注:只有A,B,C有网络号和主机号之分,D类地址和E类地址没有划分网络号和主机号。

1、网络地址

    网络地址是主机号全为0的IP地址,网络地址代表整个网段。

2、广播地址

直接广播地址

  广播地址与网络地址的主机号正好相反,广播地址中,主机号为全1。当向某个网络的广播地址发送消息时,该网段内的所有主机都能收到该广播消息。广播地址通常称为直接广播地址,是为了区分受限广播地址。

受限广播地址

  255.255.255.255该IP地址是受限的广播地址。受限广播地址与一般广播地址(直接广播地址)的区别在于,受限广播地址只能用于本地网络。当用于主机配置过程中IP数据报的目的地址时,主机可能还不知道它所在网络的网络掩码,甚至连它的IP地址也不知道,因此路由器不会转发以受限广播地址为目的地址的数据报;一般广播地址既可在本地广播,也可跨网段广播。例如:主机192.168.1.1/30上的直接广播数据包后,另外一个网段192.168.1.5/30也能收到该数据报;若发送受限广播数据报,则不能收到。

注:一般的广播地址(直接广播地址)能够通过某些路由器(当然不是所有的路由器),而受限的广播地址不能通过路由器 

3、组播地址

D类地址就是组播地址。

4、回环地址

  A类网络地址127是一个保留地址,用于网络软件测试以及本地机进程间通信,叫做回送地址(loopback address)。无论什么程序,一旦使用回送地址发送数据,协议软件立即返回,不进行任何网络传输。含网络号127的分组不能出现在任何网络上。

5、A、B、C类私有地址

私有地址(private address)也叫专用地址,它们不会在全球使用,只具有本地意义。

A类私有地址:10.0.0.0/8,范围是:10.0.0.0~10.255.255.255

B类私有地址:172.16.0.0/12,范围是:172.16.0.0~172.31.255.255

C类私有地址:192.168.0.0/16,范围是:192.168.0.0~192.168.255.255

6、0.0.0.0地址

  常用于寻找自己的IP地址,例如在我们的RARP,BOOTP和DHCP协议中,若某个不知道知IP地址的无盘机想要知道自己的IP地址,它就以255.255.255.255为目的地址,向本地范围(具体而言是被各个路由器屏蔽的范围内)的服务器发送IP请求分组.

二、子网掩码                                       

1、什么是子网掩码

  子网掩码的作用是和IP地址与运算后得出网络地址,可以判断两个IP地址是否同属于一个子网的,也是32位二进制地址,其中1代表该位为网络位,0代表的位为主机位。它和IP地址一样也是使用点式十进制来表示的。如果两个IP地址在子网掩码的按位与的计算下所得结果相同,即表明它们共属于同一子网中。

  在计算子网掩码时,我们要注意IP地址中的保留的两个地址(网络地址和广播地址),它们是指主机地址全为“ 0”或“ 1”时的IP地址,它们代表着本网络地址和广播地址,不能被计算在内。

2、标准子网掩码

A类的默认子网掩码 255.0.0.0    11111111.00000000.00000000.00000000    一个子网最多可以容纳1677万多台电脑

B类的默认子网掩码 255.255.0.0     11111111.11111111.00000000.00000000    一个子网最多可以容纳6万台电脑

C类的默认子网掩码 255.255.255.0    11111111.11111111.11111111.00000000   一个子网最多可以容纳254台电脑(256-2)

3、 特殊的子网掩码

标准子网掩码出现的都是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这样各地址就不属于一个网络了。下面的子网划分将作详细介绍。

4、子网掩码的计算

  对于无须再划分成子网的IP地址来说,其子网掩码非常简单,即按照其定义即可写出:如某B类IP地址为 10.12.3.0,无须再分割子网,则该IP地址的子网掩码255.255.0.0。如果它是一个C类地址,则其子网掩码为 255.255.255.0。其它类推,如下计算示例:

 标准子掩码的计算

1)有一个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 

将两个二进制数逻辑与(&)运算后得出的结果即为网络部分

11000000 00001001 11001000 00001101

& 11111111 11111111 11111111 00000000 

结果为:11000000 00001001 11001000 00000000        即192.9.200.0,   即网络号为192.9.200.0 

④子网掩码取反后与IP地址逻辑与(&)后得到的结果即为主机部分

11000000 00001001 11001000 00001101 

& 00000000 00000000 00000000 11111111 

结果为:00000000 00000000 00000000 00001101       即0.0.0.13,       即主机号为13(0.0.0.13)

2)计算IP地址为:202.99.160.50子网掩码是255.255.255.0的网络地址步骤如下: 

①将IP地址和子网掩码分别换算成二进制 
  202.99.160.50 换算成二进制为 11001010.01100011.10100000.00110010 
  255.255.255.0 换算成二进制为 11111111.11111111.11111111.00000000 
②将二者进行与运算        11001010.01100011.10100000.00000000 
将运算结果换算成十进制,这就是网络地址。 即202.99.160.0

通过计算IP地址的网络地址可以判断两个IP地址是否属于同一网段。

如:1号机的IP地址:192. 168. 0. 1                11000000.10101000.00000000.00000001

  2号机的IP地址:192. 168. 0. 200            11111111.11111111.11111111.11001000

  子网掩码:255. 255. 255. 192                 11111111.11111111.11111111.11000000

1号机的网络地址:192. 168. 0. 0

2号机的网络地址:192. 168. 0. 192                   因此两台机不属于同一网段

3)广播地址:网络地址中用于表示主机号的位(对应子网掩码中为0的位)全部变成1。

4)地址范围:网络地址+1即为第一个主机地址

   广播地址-1即为最后一个主机地址,因此地址范围是: 网络地址+1  至  广播地址-1 (即除去主机号全为0和全为1的两个地址)

5)主机数:n = 表示主机号的位数(子网掩码中为0的位数),主机数 = 2 ^ n - 2

      网络地址和广播地址不能作为主机的IP地址,所以减去2

特殊子网掩码

  对于需要将一个网络划分多个子网的网络来说,其网络号需要利用高位主机位来实现划分子网(具体需要占用多少位需根据划分的子网段个数决定,剩下的位数依然用于表示主机号),其子网掩码就变得特殊。

  • 利用子网数来计算 

在求子网掩码之前必须先搞清楚要划分的子网数目,以及每个子网内的所需主机数目。

欲将B类IP地址168.195.0.0划分成27个子网,如何设置子网掩码?

① 将子网数目转化为二进制来表示:27=11011; 

② 取得该二进制的位数,为N;N = 5,(27需要5位二进制数才能表示) 

该类IP地址的标准子网掩码,将其主机号部分的前N位置1,即得出该IP地址划分子网的子网掩码。 

将B类地址的子网掩码255. 255. 0. 0的主机号前5位置 1,得到 255. 255. 248. 0

  • 利用主机数来计算

欲将B类IP地址168.195.0.0划分成若干子网,每个子网内有主机700台,计算子网掩码。

① 将主机数目转化为二进制来表示:700=1010111100;(2^10 > 700+2) 

② 如果主机数小于或等于254(注意去掉保留的两个IP地址),则取得该主机的二进制位数,为N,这里肯定 N<8。如果大于254,则 N>8,这就是说主机地址将占据不止8位;该二进制为十位数,N=10;

取该类IP地址的标准子网掩码,将其主机号位数全部置1,然后从后向前的将N位全部置为 0,即为子网掩码值。

将该B类地址的子网掩码255.255.0.0的主机地址全部置1,得到255. 255. 255. 255,然后再从后向前将后 10位置0,即为:11111111.11111111.11111100.00000000,即255. 255. 252. 0。这就是该欲划分成主机为700台的B类IP地址 168. 195. 0. 0的子网掩码。

  • 还有一种题型,要你根据每个网络的主机数量进行子网地址的规划和计算子网掩码。这也可按主机数来计算。

1)一个子网有10台主机,如何那么对于这个子网需要的IP地址是:10+1+1+1=13

注意:加的第一个1是指这个网络连接时所需的网关地址,接着的两个1分别是指网络地址和广播地址。

因为13小于16(16等于2的4次方),所以主机位为4位。而256-16=240,所以该子网掩码为255. 255. 255. 240。

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

2)一个公司有530台电脑,组成一个对等局域网,子网掩码和IP设多少最合适?

① 2^10 >530+2,因此IP地址的后10位为主机号位,即32位子网掩码的后10位全部为0,即255. 255. 252. 0

②IP的分配,首先选一个B类IP,这里选172. 172. x. x,

③确定网络地址:

IP地址:    172. 172. aaaaaakk. nnnnnnnn

子网掩码:255. 255. 11111100. 00000000

网络地址:172. 172. aaaaaakk.  00000000

网络地址=IP地址 & 子网掩码,其中IP地址中a和1按位与必定为a,n和0按位与必定为0,是固定不变的,因此可以随便填0或1,此处填0,即a = 0;n是表示主机号的位,也可以随便填0或1,只需确保最终每个IP地址的主机号不同就可以,k同样也是如此。

IP的最后一段8位就可以表示254台主机(1~254),530/254 = 3(采用进位后整数)。因此,kk处00,01,10,11,四选三即可。

最后IP地址为:172.172.1.x , 172.172.2.x , 172.172.3.x

说明:理论上说,我们确定了IP地址的前两段即可,后两段可以随便填写,因为16位足够用来表示530台主机的IP地址。甚至我们可以选取A类子网掩码255. 0. 0. 0,后24位能表示的主机号远远超过了530。正因为如此,无疑是大海捞针,如果同时局域网访问量过频繁、过大,会影响效率的,所以,最好设置符合自己的IP和子网掩码,尽量缩小表示主机号的范围。                                                     

posted @ 2017-04-29 15:37  chayounder  阅读(2885)  评论(0编辑  收藏  举报