IP地址

IP地址是什么?为了确切地标识Internet中的主机和路由器,TCP/IP建立了一套编址方案,为每台主机和路由器分配一个全网唯一的地址。这个地址的名字就叫IP地址。(相当于国家为了知道谁是谁为每个人都分配了一个身份证号码一样)。

值得注意的是,一台主机至少拥有一个IP地址,允许一台主机拥有多个IP地址。

有些网络拥有很多主机,而有些网络上的主机很少,类似于小区一样,我们对IP地址进行了分类,五类,A类到E类。大量使用的是A,B,C类。

A类地址:8位网络号(0开头)+24位主机号

B类地址:16位网络号(10开头)+16位主机号

C类地址:24位网络号(110开头)+8位主机/号

D类:组播地址

E类:保留以后再用。

注意,网络号不能全部为0或者全部为1.IP地址也不能全部为0或者全部为1.

由此得到A类网络地址范围为00000001~01111111.用点分十进制记法,把他们分别换算成十进制,就是1~127.

同理,B类网络地址的范围为10000000 00000001 ~10111111 11111111.即128.1~191.255

C类:11000000 00000000 00000000~11011111 11111111 11111111.即192.0.0~223.255.255

 

子网掩码

1、子网掩码的作用

在设置电脑IP时,会碰到两个重要的参数,一个是IP地址,一个是子网掩码。IP地址是互联网上每个子网或每个主机在网络上的唯一身份标签,那子网掩码是干什么用的呢?(用来划分子网的网段和遮掩部分IP地址,换个说法就是:它是用来划分IP地址中哪一部分是网络号,哪一部分是机器号)

随着互联网的发展,越来越多的网络产生,有的网络多则几百台主机,少则区区几台,这样就浪费了大量的IP地址,所以要划分子网。为了有序地区分和管理不同的子网,就需要使用子网掩码。

子网掩码是一种用来指明一个IP地址所标示的主机处于哪个子网中。子网掩码不能单独存在,它必须结合IP地址一起使用。子网掩码只有一个作用,就是将某个IP地址划分成网络地址主机地址两部分。

2、子网掩码的用法

子网掩码是一个32位地址,对于A类地址来说,默认的子网掩码是255.0.0.0;对于B类地址来说默认的子网掩码是255.255.0.0;对于C类地址来说默认的子网掩码是255.255.255.0。

子网掩码通常有十进制和二级制两种表现形式,255.255.0.0用二进制表示则为1111111.11111111.00000000.00000000,其中,前面2个字节的16位“1”表示网络号,后面2个字节的16位“0”表示主机号。

当配合IP地址172.20.0.4使用时,则表示该IP地址是B类地址,172.20是网络标识,0.4是主机标识。也即子网掩码AND IP地址的部分是网络标识,子网掩码取反后AND IP地址的部分即为主机标识。

子网掩码有两个特殊地址,当子网掩码的主机地址全为0时,表示该网络地址,当子网掩码的主机地址全为1时,表示该网络的广播地址。

 

怎么划分子网网段?

为什么要遮掩IP地址?怎么个遮掩法?

现在我们有这么个IP地址:192.168.1.129

我们并不知道它的网络号,也不知道它属于哪部分子网网段。我们现在就需要一个东西来划分出子网网段,这个东西就叫:子网掩码。

再,我们给出具体子网掩码:255.255.255.0

什么要这么给?因为子网掩码的长度要和IP地址相同32位,每8位预先被划分为一段。255的二进制就是1111 1111。

那么我们把子网掩码设置为255.255.255.193行不行?

这需要看它的二进制,子网掩码还需要满足一个条件才可以使用:它的二进制中1和0必须是连续的。

255.255.255.193的二进制:

1111 1111.1111 1111.1111 1111.1100 0001

可以看出它1并不连续,所以255.255.255.193不能作为子网掩码使用。

255.255.255.0就很符合条件。

那子网掩码怎么用?

答:用乘法来遮掩IP地址。1×1=1、1×0=0、0×0=0、0×1=0(按位与)

IP地址:192.168.1.129

二进制:

1100 0000.1010 1000.0000 0001.1000 0001

子网掩码:255.255.255.0

二进制:

1111 1111.1111 1111.1111 1111.0000 0000

计算:

  1.  1100 0000.1010 1000.0000 0001.1000 0001
  2.  1111 1111.1111 1111.1111 1111.0000 0000
  3.  ————————————————————
  4.  1100 0000.1010 1000.0000 0001.0000 0000

计算后的这段二进制代码相比于原来的IP地址,后面8位被用0遮掩了。

为什么要遮掩?因为我们不必关心后面8位是1还是0了。子网网段已经被划分出来了。

1100 0000.1010 1000.0000 0001.0000 0000的十进制:192.168.1.0

也就是说,从192.168.1.0到192.168.1.255都是同一个子网网段,里面的0—255号可以分配给不同的机器。

0—255号都是机器的号码,IP地址显示的就是其中129号。

192.168.1.0就是所谓的网络号,也可以写作192.168.1或者192.168.1.0\24(24指的是IP地址中有24位未被遮掩)

IP地址的意思就很明白了,网段(网络号)加上机器号码。同一个IP地址根据不同子网掩码,会划分出不同的网络号和机器号。

 

 

例1 不同子网下的主机能否直接通信

假设两个IP地址分别是172.20.0.18和172.20.1.16,子网掩码都是255.255.255.0。

我们可以知道两者的网络标识分别是172.20.0和172.20.1,无法直接通信,也就无法PING通。要想能相互通信,需要将子网掩码改成255.255.0.0。

 

例2 如何确定子网掩码

1)将主机数目转化为二进制来表示,总位数是N;

2)将掩码地址全部置1,然后从后向前的将N位全部置为 0,即为子网掩码值。

如欲将B类IP地址168.195.0.0划分成若干子网,每个子网内有主机700台:

1)700=1010111100,该二进制为十位数,N = 10

2)将子网掩码255.255.255.255从后向前的10位全部置0,即为: 11111111.11111111.11111100.00000000,也即255.255.252.0。

255.255.252.0就是168.195.0.0的700台主机的子网掩码了。

 

例3 如何理解172.20.1.0/26

上文中的26代表主机ID的掩码地址长度,从前往后有26位,即子网掩码的地址是255.255.255.192。

 

 

******************************************讲故事举例***************************************************

 

IP地址

IP地址是什么?为了确切地标识Internet中的主机和路由器,TCP/IP建立了一套编址方案,为每台主机和路由器分配一个全网唯一的地址。这个地址的名字就叫IP地址。(相当于国家为了知道谁是谁为每个人都分配了一个身份证号码一样)。

值得注意的是,一台主机至少拥有一个IP地址,允许一台主机拥有多个IP地址。(计算机可以有几个身份证但是人只能有一个)。

类似于居民身份证号,主机的身份证号也有一定的规律。

在人少的时候,身份证号的位数就要求少一些;当居民变多,以前的位数号码所能表示的最大人口数量超过这个国家的人口数量时,身份证就要升级,将身份证号码增长一点点。IP地址也是。因此机器数量少的时候用的是IPv4(目前还在用,估计马上就要换IPv6了)。

 

IPv6是英文“Internet Protocol Version 6”(互联网协议第6版)的缩写,是互联网工程任务组(IETF)设计的用于替代IPv4的下一代IP协议,其地址数量号称可以为全世界的每一粒沙子编上一个地址

IPv6的地址长度为128位,是IPv4地址长度的4倍。于是IPv4点分十进制格式不再适用,采用十六进制表示。IPv6有3种表示方法。
一、冒分十六进制表示法
  格式为X:X:X:X:X:X:X:X,其中每个X表示地址中的16b,以十六进制表示,例如:
  ABCD:EF01:2345:6789:ABCD:EF01:2345:6789
  这种表示法中,每个X的前导0是可以省略的,例如:
  2001:0DB8:0000:0023:0008:0800:200C:417A→ 2001:DB8:0:23:8:800:200C:417A
二、0位压缩表示法
  在某些情况下,一个IPv6地址中间可能包含很长的一段0,可以把连续的一段0压缩为“::”。但为保证地址解析的唯一性,地址中”::”只能出现一次,例如:
  FF01:0:0:0:0:0:0:1101 → FF01::1101
  0:0:0:0:0:0:0:1 → ::1
  0:0:0:0:0:0:0:0 → ::
三、内嵌IPv4地址表示法
  为了实现IPv4-IPv6互通,IPv4地址会嵌入IPv6地址中,此时地址常表示为:X:X:X:X:X:X:d.d.d.d,前96b采用冒分十六进制表示,而最后32b地址则使用IPv4的点分十进制表示,例如::192.168.0.1与::FFFF:192.168.0.1就是两个典型的例子,注意在前96b中,压缩0位的方法依旧适用
 

目前仍在使用的IP地址是IPv4版本的。由四个字节组成,每个字节8位二进制数,就是说目前的IP地址由32位二进制数组成。

32个000011111等,写着麻烦,看着也容易看花眼。因此我们用点分十进制法,将这32位二进制数字每八位划分一次,每8位数对应一个十进制数,这样一来,长长的32位地址就变成了四个用点隔开的十进制数字了。

而IP地址也是由几个信息一起组成的。比身份证简单很多,IP地址由网络号和主机号四个字段组成。如果把网络号比作小区,主机号就相当于小区里面的各个房子的门牌号。

 

网络号:有的小区可能密密麻麻住了好几万人,有的小区可能是开阔的别墅区只住了不到一百人。如果统一门牌号为5位以满足那些住的很密集的小区的需求,那对于别墅区来说前面的几位数字浪费了,写起来麻烦。于是根据小区人口的不同对小区进行分类,不同类别的小区的门牌号位数也不同。人多的五位、人少的两位。

有些网络拥有很多主机,而有些网络上的主机很少,类似于小区一样,我们对IP地址进行了分类,五类,A类到E类。大量使用的是A,B,C类。

A类地址:8位网络号(0开头)+24位主机号

B类地址:16位网络号(10开头)+16位主机号

C类地址:24位网络号(110开头)+8位主机/号

D类:组播地址

E类:保留以后再用。

注意,网络号不能全部为0或者全部为1.IP地址也不能全部为0或者全部为1.

由此得到A类网络地址范围为00000001~01111111.用点分十进制记法,把他们分别换算成十进制,就是1~127.

同理,B类网络地址的范围为10000000 00000001 ~10111111 11111111.即128.1~191.255

C类:11000000 00000000 00000000~11011111 11111111 11111111.即192.0.0~223.255.255

 

 

当房产商向政府申请修房子时,申请到的只是某省某市某区某街道,类似的,当某单位申请一个IP地址时,实际上获得的是一个网络号,具体的各个主机号由本单位自行分配,就像房产商修哪一栋楼叫ABCD栋都是房产商自己设计的。

 

子网掩码:

 

当一个小区越修越大,可能就会将本小区划分为几个分区或者几期工程。当一个单位的主机很多而且分布在较大地理位置时,可以将本单位所属主机划分为若干个子网,然后各个子网之间用路由器互联。

由于网络号已经分好了,内部再划分的子网号的字段就不能加到网络号中了。我们将子网号的字段加到主机号字段中。

规定用一个32位的子网掩码来表示子网号字段的长度。子网掩码由一连串的1和一连串的0构成。1对应于网络好和子网号字段,0对应于主机号。

比如:某单位要分配一个C类IP地址为202.114.16.0.加入这个单位的主机要划分5个子网,5转换为二进制为101,所以要用3个二进制表示子网字段。若这个主机要划分为2个子网,2转换为二进制为10,所以要用2个二进制表示子网字段。若要划分为9个呢,一样的,9转化为二进制是1001,就需要4个二进制表示子网字段了。

这里我们以划分为5个子网,用3个二进制子网字段为例:

复习一下,C类的网络号为3个字节,24个二进制长度。主机号为1个字节,8个二进制长度。

C类IP地址为:110XXXXX XXXXXXXX XXXXXXXX+子网号(这里为101)+主机号

网络号对应到子网掩码是1,因此

110XXXXX XXXXXXXX XXXXXXXX→11111111 11111111 11111111

子网号对应到子网掩码也是1,这里子网号为101,对应过去就是111

主机号对应到0,因此,这个C类地址对应的完整的子网掩码就是:

11111111 11111111 11111111 11100000.

当外界访问这个单位的主机时,路由器用子网掩码和目的地址相“与”(1+1=1,0+1=0,1+0=0,0+0=0),得到的结果中最后一个字节由子网号和主机号构成。路由器再将该组转发到这个例子中的第三个主机上。

当然,单位也可以不划分子网。此时子网掩码为默认值,此时1的长度就是网络号的长度,A类地址默认的子网掩码是11111111 00000000 00000000 00000000(255.0.0.0),B类地址的是11111111 11111111 00000000 00000000(255.255.0.0),C类的是11111111 11111111 11111111 00000000(255.255.255.0)