7.2 IP地址和域名

  在前面的内容中已经提到了IP地址,比如ARP协议根据已知的IP地址(网络地址)获取主机的MAC地址(硬件地址),RARP协议根据主机的MAC地址获取该设备的IP地址;DNS域名解析服务,提供域名和IP地址之间的转换。接下来,系统地介绍什么是IP地址,以及IP地址与域名的关系。

7.2.1 IP地址

  在现实生活中,每个地理位置都有一个详细的通信地址,根据这个通信地址,信件、快递物品可以送到指定的位置。在网络上,每台要通信的主机(含网络设备)也必须有一个IP地址,它的作用就是其他主机可以通过这个IP地址找到它。

  每个IP地址都由两部分组成:网络号和主机号。网络号用来标识这个IP地址属于哪一个网络,就像一个通信地址中都有一个城市名一样。在一个网络当中的所有主机,应该有相同的网络号。主机号用来标识这个网络中的唯一一台主机,相当于通信地址中的街道门牌号。

  IP地址有两种表示方式,二进制表示和点分十进制表示,常见的是点分十进制表示的IP地址。IP地址的长度为32位,每8位组成一个部分,这样一个IP地址可以分为4个部分,每个部分如果用十进制表示,其值的范围为0~255。例如用点分十进制表示的IP地址119.186.211.92,其二进制表示为01110111 10111010 11010011 01011100。可以看出,在使用十进制表示的时候,中间用点号隔开。

7.2.2 IP地址类型

  在IP协议提出时,为了划分大小不同的网络,使某种类型的网络中主机的数量在一定范围之内,定义了5种IP地址类型。

  • A类地址

  具有A类地址的网络可以拥有很大数量的主机。A类地址的最高位固定总为0,加上之后紧跟着7位,共8位一起表示网络号,剩下的24位表示主机号。这样根据IP协议的约定,整个网络拥有27-2(共计126)个A类网络,而每个A类网络中可以拥有最多224-2(大约1700万)台主机。

  因为A类地址前8位表示网络号,且第1位必须是0,所以A类地址的网络号范围在00000000到01111111之间,十进制表示为0~127。但因为全0的A类网络号不可以使用,127这个网络号有特殊的含义,用来做环路测试(人们常用的127.0.0.1这个IP地址就是用来表示用户自身的机器),所以整个网络共有126个A类网络。

  另外,在一个网络中,不是所有的主机号都可以分配给主机使用,其中有两个主机号是有特殊含义的,一个是全0的主机号,表示网络本身;一个是全1的主机号,表示广播地址,所以才会出现一个网络中可以拥有的主机数是理论计算值减2的情况。

  • B类地址

  B类地址一般用来分配到中等或稍大规模的网络中。B类地址的最高两位固定是10,与后面的14位一起构成网络号,剩下的16位表示主机号。这样根据IP协议的约定,整个网络拥有214(共计16384)个B类网络,而每个B类网络中可以拥有最多216-2(大约65000)台主机。

  因为B类地址前16位表示网络号,且前两位必须是10,所以B类地址的网络号范围在10000000 00000000到10111111 11111111之间,其中IP地址第一个部分十进制范围为128~191。

  • C类地址

  C类地址分配给主机数量不多的网络。C类地址的最高三位固定是110,和后面跟着的21位一起构成网络号,只有8位表示主机号。整个网络拥有221(共计200多万)个B类网络,但是每个B类网络最多只有28-2(共计254)台主机。

  因为C类地址前24位表示网络号,且前三位必须是110,所以C类地址的网络号范围在11000000 00000000 00000000到11011111 11111111 11111111之间,其中IP地址第一个部分的十进制范围为192~223。

  • D类地址

  D类地址不分网络地址和主机地址,前四位必须是1110,它是一个专门保留的地址。它并不指向特定的网络,目前这一类地址被用在多点广播(Multicast)中。多点广播地址用来一次寻址一组计算机,它标识共享同一协议的一组计算机。

  • E类地址

  E类地址也不分网络地址和主机地址,前五位必须是11110,为将来使用保留。

  另外需要特别指出的是,A、B、C三类地址中还各有一个网段被应用到内部局域网中,而不能在实际的互联网上出现,即10网段、172.16.x.x到172.31.x.x网段和192.168网段。使用这3个网段中IP地址的主机,不能直接出现在互联网上,需要通过一些其他的手段才能上网。

7.2.3 子网掩码

  根据IP地址类型的划分,出现了网络中提供的IP地址的数量与实际需求相差甚远的情况。虽然看起来IP地址的绝对数量应该能满足人们的需求,但是由于IP地址由网络号和主机号构成,所以网络中A类网络才126个,最多的C类网址也不过200多万个。随着互联网的普及,IP网络越来越不够分,因此,人们提出了很多解决方案,目前使用范围最广的就是使用子网的方式对原网络进行再次划分。

  由上述内容可知,IP地址分为网络号和主机号,子网就是把主机号再分为子网号和主机号,这样,原来的一个A类网络就不再总是拥有1700多万台主机了。原来的网络可以进一步划分,即使是C类网络也可以进一步划分为更小的子网,实现这一技术的就是子网掩码。

  子网掩码是一种用来指明一个IP地址的哪些位标识的是网络号(含子网号)以及哪些位标识的是主机号的位掩码。子网掩码不能单独存在,它必须结合IP地址一起使用。子网掩码只有一个作用,就是将某个IP地址划分成网络地址和主机地址两部分。

  A类地址的默认子网掩码为11111111 00000000 00000000 00000000,点分十进制表示为255.0.0.0,这就表示A类地址的前8位是网络号,后24位是主机号。例如前面用点分十进制表示的IP地址119.186.211.92,其二进制表示为01110111 10111010 11010011 01011100。从点分十进制IP地址的第一部分可以看出,这个IP地址为A类地址,其默认子网掩码即为255.0.0.0。

  如果现在需要将这个IP地址所在的A类网络划分成更小的子网,每个子网可以有26 -2(共计62)台主机,该如何操作呢?可以通过子网掩码,将IP地址的前26位都设置成网络号,后6位设置成主机号,则这个IP地址所在的子网里就只能拥有26-2(共计62)台主机了。针对这个需求,需要将此IP地址的子网掩码设置为11111111 11111111 11111111 11000000,子网掩码十进制表示为255.255.255.192,这个IP地址的网络号为IP地址的前26位01110111 10111010 11010011 01。

  如果需要判断两个IP地址是否在一个子网中,只需要判断它们的网络号是否一致就可以了,具体的算法不是本节需要介绍的内容。

  另外,子网掩码必须由连续的1和连续的0组成,换算成十进制可以看出,最后一个数只能是0、128、192、224、240、248、252、254、255这几个数字。

  除了用划分子网的方式解决IP网络和IP地址资源紧缺的问题外,目前还有一种解决方式就是采用新的IP版本(IPv6),它对现有IP地址进行了大规模的改革,其中IP地址使用128位来表示。从目前看来,这些IP地址足够给每个人的每个设备提供一个独一无二的IP地址,目前已经有一些软硬件开始支持IPv6。

7.2.4 域名

  域名(Domain Name),是由一串用点号分隔的名字组成的Internet上某一台计算机或计算机组的名称,用于在数据传输时标识计算机的电子方位。

  在网络中,要想找到一台主机,是通过IP地址寻找的。但IP地址是数字标识,使用时难以记忆和书写,因此在IP地址的基础上又发展出一种符号化的地址方案,来代替数字型的IP地址。每个符号化的地址都与特定的IP地址对应,这样网络上的资源访问起来就容易得多了。这个与网络上的数字型IP地址相对应的字符型地址就是域名。

  在访问搜狐的时候,在浏览器地址栏输入的www.sohu.com就是域名。通常来说,在域名中,主机名放在前面,域名放在后面,搜狐的域名中www是主机名,sohu.com是域名。

  域名可分为不同级别,包括顶级域名、二级域名等。顶级域名又可分为以下两类。

  一类是国家顶级域名,200多个国家都按照ISO3166国家代码分配了顶级域名,例如中国是cn,美国是us,韩国是kr等。

  另一类是国际顶级域名,例如表示工商企业的com,表示网络提供商的net,表示非营利组织的org等。

  二级域名是指顶级域名之下的域名,例如在国际顶级域名下,由域名注册人申请注册的网上名称,例如sohu、apple、microsoft等。在国家顶级域名下,一般二级域名表示注册企业类别的符号,例如com、edu、gov、net等。