计算机⽹络知识——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,
168汽车网
③确定⽹络地址:
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和⼦⽹掩码,尽量缩⼩表⽰主机号的范围。