3.2.5 IP地址
由上节可以看到,网络节点通信的数据从源端送达目的端会经过多个节点转接,需要地址作为寻址依据。下面将介绍TCP/IP协议使用的四级地址。
1.四级地址设置
使用TCP/IP协议的互联网使用了4个等级的地址,即物理(链路)地址、逻辑地址(IP地址)、端口地址以及特定应用地址。每一种地址都与TCP/IP体系结构中的特定层相对应,如图3-9所示。
图3-9 4个等级的地址
(1)物理地址
物理地址也叫链路地址,是节点的地址,它包含在数据链路层使用的帧中,是最低一级的地址。由它所属的局域网或广域网定义。这种地址的长度和格式是可变的,取决于特定的网络。例如,以太网使用写在网络接口卡上的6字节(48位)的物理地址,07:01:02:01:2C:3B,其中每个字节写作十二进制数并由冒号分隔。
(2)逻辑地址
在Internet中仅使用物理地址是不合适的,因为不同网络可以使用不同的地址格式。为保证信息应用的异网互通,必须统一异网地址。互联网是将不同的物理网络互连在一起的虚拟逻辑网,因此需要有一种通用的编址系统,用来唯一地标识每个主机的网络位置,而不管底层是使用什么样的物理网络,这就产生了逻辑地址,也称IP地址。IP地址是用于在全世界范围内唯一标识Internet上的每一个主机(或路由器)的每一个网络接口的地址。网际协议第4版(IPv4,Internet Protocol version 4)中规定Internet的逻辑地址即IP地址是32位的,可以用来唯一标识Internet上的每一个主机。IP地址包含在网络层使用的数据报中。
(3)端口地址
现在的计算设备是多进程的,而网络信息系统的最终目的是使一个进程能够和另一个进程通信。比如,计算机A能够和计算机C使用TELNET进行通信;与此同时,计算机A还和计算机B使用FTP通信。而仅有逻辑地址和物理地址只能寻址主机,为了识别标识进程还需要给进程指派一个标号,也就是端口地址。端口地址是用来标识同一主机上不同的网络应用进程的地址。它包含在传输层的报文段中。
(4)特定应用地址
为方便用户使用,有些应用程序也提供了特殊应用的地址。它是针对特定应用标识资源或服务位置的地址。例如,E-mail地址(如xxx@bupt.edu.cn)以及URL(如www.bupt.edu.cn)。E/mail地址用于电子邮件接收,而URL用于万维网页面的定位。
2.IP地址
下面介绍IPv4中的地址格式。Internet组织规定了IP地址是一个32位的标识符,并要求连网的主机必须有一个唯一IP地址,但一个设备可以拥有多于一个的IP地址。IP地址的格式经历了基本的分类IP地址、子网、超网(无分类地址)等几个阶段。其中分类的IP地址是最基本的地址格式,也是理解其他地址格式的基础,因此本节仅介绍分类的IP地址。
(1)IP地址的结构
IP地址由网络号和主机号两个字段组成。网络号标志主机(或路由器)所连接的网络,确定计算机从属的物理网络。主机号标志该主机(或路由器),确定该网络上的一台计算机。网络号字段需要足够的位数以允许分配唯一的网络号给互联网上的每一个物理网络。同样地,主机号字段也需要足够位数为从属于一个网络的每一台计算机都分配一个唯一的主机号。这种两级的IP地址结构可以表示为:
IP地址={网络号,主机号}
IP地址的两级结构保证了两个重要性质:互联网中的每一个物理网络都分配了唯一的值作为网络号,网络号分配必须全球一致;同一网络上的两台计算机必须分配不同的主机号,但一个主机号可在多个不同网络上使用。这样的IP地址的结构使我们可以在Internet上很方便地进行寻址。
(2)IP地址的点分十进制记法
对主机或路由器来说,IP地址都是32位的二进制码。为了人们阅读方便,常常把32位的IP地址分为4段,每段8位,用等效的十进制数字表示,并且在这些数字之间用圆点隔开。这就是点分十进制记法。图3-10表示了这个方法。显然,128.11.4.31比10000000 00001011 00000100 00011111读起来要方便得多。
图3-10 点分十进制
(3)IP地址分类
从IP地址的两级结构可以看到,网络号位数多时可容纳大量的网络,但限制了每个网络中的主机数;主机号位数多则意味着每个物理网络能容纳大量的计算机,但限制了网络的总数。为适应不同大小的网络或者满足不同类型组织的需要,IP地址被分为A、B、C、D、E五类地址,如图3-11所示。
图3-11 IP地址分类
①A类地址
A类地址的网络号字段占1个字节,第1位已固定为0,只有7位可供使用。A类地址的主机号占3个字节。因此,A类地址可分配给接近27=128个组织使用,每个A类网络可容纳接近224=16 777 216台主机(实际数目有所减少,因为其中有保留地址用作特殊用途)。
A类地址范围:0.0.0.0~127.255.255.255。
②B类地址
B类地址的网络号字段有2个字节,前面两位(1 0)已经固定了,只剩下14位可以进行分配。B类地址的主机号占2个字节。因此,B类地址可分配给接近214=16 384个组织使用,每个B类网络可容纳接近216=65 536台主机(实际数目有所减少,因为其中有保留地址用作特殊用途)。
B类地址范围:128.0.0.0~191.255.255.255。
③C类地址
C类地址的网络号字段有3个字节,最前面的3位是(1 1 0),还有21位可以进行分配。主机号字段有1个字节。因此,C类地址可提供给接近221=2 097 152个组织使用,每个C类网络可容纳接近28=256台主机(实际数目有所减少,因为其中有保留地址用作特殊用途)。
C类地址范围:192.0.0.0~223.255.255.255。
④D类地址
D类地址在多播情况下使用前4位为1110,剩下的28位定义不同的多播地址。
D类地址范围:224.0.0.0~239.255.255.255。
⑤E类地址
E类地址为保留地址,前4位为1111。
E类地址范围:240.0.0.0~255.255.255.255。
⑥特殊IP地址
IP协议还定义了一组具备特殊用途的IP地址,称为特殊地址。特殊地址从不分配给主机,如表3-3所示。
表3-3 特殊IP地址
随着入网主机的增多,基本的分类编址对网络的限制越来越明显。为更灵活有效地利用IP地址空间,开发了子网编址方式。它在基本分类编址的基础上,从主机号段提取特定位数作为子网号,将IP地址的两级结构扩展为三级。这种编址方式适用于在划分了多个子网的大规模网络中进行地址分配管理。此外,为更进一步地提高地址空间利用率并平稳地向IPv6过渡,还设计了超网编址或无分类编址方式。它不再具有定长的网络号段和主机号段,而是采用可变长的IP地址结构,尤其适合将多个网络聚合成超网时的情形,大大提高了编址的灵活性。
3.IPv6
尽管32位二进制数可以提供将近40亿个IP地址(IPv4),但是IP地址空间依旧迅速耗尽。一方面是地址资源数量的限制,另一方面是随着网络信息系统的发展,网络进入人们的日常生活,可能身边的每一样东西都需要连入Internet。在这样的环境下,出现了网际协议第6版(IPv6,Internet Protocol Version 6)。
IPv6协议规定用128位二进制数表示IP地址,由两个逻辑部分组成:一个64位的网络前缀和一个64位的主机地址。128位的地址表示成用冒号(:)隔开的8组,每组4个十六进制位,例如,8000:0000:0000:0000:0123:4567:89AB:CDEF。
这样的地址格式明显扩大了地址容量。此外IPv6的主要变化还包括对头部进行了简化,使得路由器可以更快地处理分组;更好地支持选项,加快分组的处理速度;在安全性方面和服务质量上的改进。尽管对IPv6的采用是一个缓慢的过程,但从长远的角度来看其发展前景还是广阔的。