【无标题】网络互联

第五章 网络互联技术

第一节 网络互联概述

计算机网络发展的一个重要目标就是实现更大范围的数据通信与信息共享,让更多的用户获得计算机网络所带来的信息服务。在网络技术发展的过程中,出现了适应于不同环境的网络类型,如局城网、城域网和广域网等,即使对于同一种类型的网络,不同的制造商生产的网络产品在通信技术和运行协议方面也都具有很大的差异。要让分布在世界各地,不同类型、不同协议和技术细节的网络相互连接起来,并且能顺畅、高效地实现信息共享,就必须依靠网络互联技术来实现。网络互联技术是所有能在物理上和逻辑上实现不同网络相互连接的技术的总称,对应于ISO/OSI模型的各个层次。在这里,“互联”和“互连”具有不同的含义:“网络互连”仅指将网络通过有线或无线传输介质在物理上连接在一起,而“网络互联”的含义还包括不同的网络之间在功能和应用上,能够看起来像一个完整的网络一样,自由顺畅地运行。

采用不同通信技术和运行协议的网络通常称为异构网络,如局域网中的以太网和令牌环网、广域网中的帧中继网和ATM网等,实现异构网络互联的基本策略主要包括协议转换和构建虚拟互联网络。协议转换机制采用一类支持异构网络间协议转换的网络中间设备,实现异构网络间数据分组的转换和转发,理论上讲,这种中间设备可以在除物理层之外的任何一层实现协议转换,例如,支持协议转换的网桥或交换机、多协议路由器和应用网关等。通过构建虚拟互联网络机制的异构网络互联是在现有异构网络基础上,构建一个同构的虚拟互联网络,异构网络只需分装和转发虚拟互联网络分组,同时引人虚拟互联网中间设备互连异构网络,实现在异构网络间转发统一的虚拟互联网的数据分组。IP网络就是此类虚拟互联网, Internet是利用IP网络实现的全球最大的互联网络,是典型的在网络层实现的网络互联,采用同构的网络层协议-IP地址与网络标识-IP地址,引入网络互联设备-IP路由器。

除了异构网络互联,还有同构网络互联问题,如两个异地以太网的互联,实现这类同构网络互联的典型技术主要有隧道技术等。

第二节 网际协议(IP)

一、IP概述

本书第三章里曾经提到,互联网Internet是基于TCP/IP体系建立起来的。而网际协议(Internet Protocol,IP)是TCP/IP体系中最重要的两个协议之一,正是由于IP的出现,大量的分布在世界各地的不同类型的网络才可以互联在一起形成人们所熟悉的Internet,因此In- termet 也被称为IP网络。IP的功能对应于ISO/OSI参考模型中的网络层,与之配套的还有3个协议,它们共同构成TCP/IP参考模型的网络互联层。这3个协议分别如下。

·地址解析协议(Address Resolution Protocol,ARP)。

·网际控制报文协议(Internet Control Message Protocol,ICMP)。

·网际组管理协议(InternetGroup Management Protocol,IGMP)。

IP采用路由器(Router)作为网络互联的中间设备,其作用是将不同的计算机网络连接在一起,在网络层实现数据的路由和转发。路由是指收集、计算和维护到达不同网络的路径信息,这些信息被存于路由表(也称转发表)之中,供数据分组转发时使用。转发是指当路由器在某个接口收到网络层数据分组时,提取该分组的目的地址,检索路由表,匹配最佳路由入口(Entry),通过该入口对应的接口再次转发网络层数据分组,发送到相邻的下一跳(Next Hop)设备。路由与转发紧密关联,路由为转发更新、维护路由信息,存于路由表,转发需要利用路由表中的这些路由信息正确转发分组。路由器利用路由协议获取、计算、更新路由表中的路由信息,利用网络层数据通信协议(如IP)来构建和转发分组。IP为接入 IP 网的终端计算机、路由器和子网分配标识这些设备的地址,称为IP地址。在IP网中传输的数据分组携带有源IP地址和目的IP地址,路由器根据接收到的分组中的IP地址进行路由和转发。IP 地址和IP路由是IP中最核心的技术,接下来会进行详细的讲解。

Internet的巨大发展证明了IP的设计是成功的,其特点可以概括为以下3点。

1.IP 是面向无连接的、不可靠的分组传输协议

IP在发送IP分组时,不需要维护任何状态信息,只是简单地将分组独立地发送出去。而有些协议,如TCP,在发送数据分组之前需要通过“发送探测-接收反馈”的“握手”机制建立并维护一条逻辑链路,在整个发送过程中,一直要保持这条链路的联通状态。而且, IP也没有端到端的确认回传和拥塞控制机制,对发送的数据分组不保证其不丢失和按顺序到达,因此说IP数据传输是一种不可靠的数据传输。同时,IP提供的还是一种“尽力而为”的服务,这样做可以简化分组的传输,提高数据通信的效率。而传输的可靠性可以由其他上层协议来保障,如TCP。

2.IP 屏蔽了数据链路层和物理层的差异,使得数据的传输和转发更加方便

在IP网中,各种局域网、城域网和广域网被连接在一起,它们的物理层和数据链路层协议各不相同,存在着多种帧结构和地址设计。使用IP,可以在网络互联过程中不去考虑各种不同的帧结构和地址类型,只要按照IP地址和路由协议将数据从源点转发到目的点即可。

3.IP 是点对点式网络通信协议

点对点通信是指网络中建立通信的两台计算机之间由一条物理信道相连接,数据分组由源点计算机直接或者经过转发到达目的计算机,网络中的其他计算机不需要对这个数据分组进行检测和判断。在大规模的计算机网络中,一般很少能够在两台计算机之间直接进行数据通信,都需要进行分组的存储转发和路由选择。基于TCP/IP的Internet属于点对点式网络。

二、IPv4协议报文格式

IPv4 是第4版IP,是当前Internet网络主要使用的IP,以下简称IP。IP数据报的格式结构如图5-1所示。

其中各字段的含义如下。

1)版本号字段占4位,表示的是IP的版本号,IPv4的版本号字段值为0100(十进制的4)。

2)首部长度字段占4位,给出的是IP分组首部长度,包括可变长度的选项字段,以4B为单位。4个比特可表示的最大数值是15,因此IP分组的首部长度的最大值是60个字节。

3)区分服务字段占8位,在旧标准中称为服务类型字段,用来指示期望获得哪种类型的服务。只有在网络提供区分服务(DiffServ)时,才使用该字段。

4)总长度字段占16位,给出IP分组的总字节数,包括首部和数据部分。16bit可以表示的最大IP分组的总长度为65535B,除去最小的IP分组首部20B,最大IP分组可以65535B-20B=65515B的数据。实际上,IP分组需要进一步封转到链路层数据帧中进行传输,然而几乎没有如此大MTU的链路,因此实际网络中不会有这么大的IP分组。

5)标识字段占16位,用于标识一个IP分组。IP利用一个计器,每产生一个IP分组计数器就加1,并将计数器的值作为该IP分组的标识。该字段不能作为IP分组的唯一标识,这是因为由于IP产生标识的机制,不同主机产生的IP分组完全有可能具有相同的标识,所以单靠标识字段是无法唯一标识一个IP分组的。实际上,IP是依靠标识字段、源IP地址、

分片和重组过程中,用于标识属于同一源的IP分组。 目的IP地址及协议等字段共同唯一标识一个IP分组的。标识字段最重要的用途是在IP分组

固定部分

6)标志位字段占3位,结构为:  保留位    DF    MF

其中,最高比特位保留,DF是禁止分片(Don'tFragment)标志,MF是更多分片标志(More Fragments)标志。DF=0表示允许路由器将该IP分组分片,DF=1表示禁止路由器将IP分组分片。如果路由器在转发一个DF=1的IP分组时,其总长度超过输出链路的 MTU,路由器不会对该IP分组进行分片,路由器会丢弃该分组。MF=0表示该IP分组是一个未被分片的IP分组或者是被分片IP分组的最后一片。MF=1表示该IP分组一定是一个 IP分组的分片,并且不是最后一个分片。

7)片偏移字段占13位,表示一个IP分组分片封装源IP分组数据的相对偏移量,即封装的数据从哪个字节开始,片偏移字段以8B为单位。

8)生存时间(TTL)字段占8位,表示IP分组在网络中可以通过的路由器数(或跳数)。源主机在生成IP分组时设置TIL初值,每经过路由器转发一次,TTL减1,如果 TTL=0,路由器则丢弃该IP分组,并向源主机发送Type =11、Code =0的 ICMP 报文。

9)协议字段占8位,指示该IP分组封装的是哪个协议的数据包,例如,6为TCP,即表示封装的为TCP段;17为UDP,即表示封装的是UDP数据报。IP是利用该字段实现复用/解复用功能的。

10)首部校验和字段占16位,利用校验和实现对IP分组首部的差错检测。计算校验和时,该字段置全0,然后整个首部以16比特字对齐,采用反码算数运算(算数加的过程将最高位的进位“卷回”到和的最低位再加)求和,将最后得到的和反码作为首部校验和字段。在接收IP数据分组时,将整个首部按同样算法求和,结果为16比特1,表示无差错,只要有一位不为1,则表示首部有差错,丢弃该分组。首部校验和字段在路由器每次转发分组时需要重新计算后重置,因为IP分组首部的某些字段在转发过程中会发生改变,如TTL,所以必须重新计算首部校验和。所以,首部校验和是逐跳计算、逐跳校验的。

11)源 IP地址字段占32位,是发出IP分组的源主机的IP地址。

12)目的IP地址字段占32位,是IP分组需要送达的主机的IP地址,路由器将依据该地址检索匹配路由表,决策如何转发该IP分组。

13)选项字段的长度可变,范围在1~40B之间,取决于选项内容。选项字段可以携带安全、源选路径、时间戳和路由记录等内容。

14)填充字段的长度可变,占0~3B,取值全为0,目的是补齐整个首部,符合32位对齐,即保证首部长度是4B的倍数。

第三节 IP 地址

IP要连接位于世界各地的网络和主机,实现数据的自由传输,必须要为每一个参加数据通信的网络或主机分配一个在全球范围内唯一的标识符号,这个唯一的标识符号称为IP地址。IP地址的分配由因特网名称和数字分配机构(ICANN)负责。目前普遍使用的IP是 IPv4版本,其规定的IP地址由一个32位的二进制数表示。为了便于书写和阅读,32位二进制表示的IPv4地址通常采用4个十进制数字表示,每个十进制数的取值范围是0-255,十进制数字间用“·”来隔开,这种表示方法称为点分十进制法。比如某IP地址用二进制数表示为11001010110000100001010010001010,用点分十进制数就可以写成202.194.20.138。

要为世界各地数量巨大的网络和主机分配和管理地址,还要为未来的网络技术和规模的发展预留充足的资源,IP地址的编址方法就显得异常重要。从IP地址(IPv4)出现到现在,其编址方法一共经历了3个历史阶段。

1.分类的 IP 地址

早期的IP地址被固定地划分为若干个类别,每一类地址都由固定长度的两个字段构成:网络号(NetID)和主机号(HostID)。网络号标志主机或路由器所连接到的网络,每一个网络号在 Internet内是唯一的。主机号标志某一个主机或路由器的某个具体接口。其表示方式如下。

最初将IP地址按A、B、C类划分是出于满足不同用户需求的考虑,因为当时的各种计算机网络差异很大,有的国家或机构的网络拥有很多主机,而有的网络主机则很少。A、B、C类网络地址拥有不同数量的主机号,可以按需要分配给不同的用户。某个单位按类申请到某一固定网络号的IP地址,就相当于申请到所有具有该网络号的一系列IP地址,其中各个主机号可以由该单位用户自行分配,只要没有重复即可。比如某单位申请了网络号为202.194.20的一个C类地址块,则可以将范围为202.194.20.0~202.194.20.255的256个 IP地址自主分配给其内部所管辖的主机。由此可知,网络号越短,则一个网络内可以容纳的主机数越多。

对于A类地址,其网络号字段占据1个字节且第1位固定为0,则有7位可以使用,所以可指派的网络号个数为27-2=126个,减2的原因在于:IP地址中规定的全0是保留地址,表示本地网络。网络号为127,即01111111用于回环测试,不具有任何意义,所以A类地址的网络号中没有0000000和01111111两个地址。A类地址的主机号占3个字节,因此每一个A类网络的最大主机数为224-2=16777214个,这里减2的原因在于:全0的主机号表示该IP地址是本主机所连接到的单个网络地址,全1的主机号表示该网络上的所有主机。

对于B类地址,其网络号字段占据2个字节,其前两位固定为10,则可分配的网络号个数为2"-1=16383,减1的原因是IP规定128.0.0.0这个B类地址不可以指派。B类地址的每一个网络上的最大主机数是26-2=65534个。

对于C类地址,其网络号字段占据3个字节,且最前面的3位固定为110,同时192.0.0.0这个地址也不用于指派,所以其可以分配的网络号个数为2”-1=2097151个。C类地址的每一个网络的最大主机数是2-2=254个。各类IP地址的取值范围及占整个IP地址个数的比值如图5-2 所示。

占IP地址空间87.5%的A、B、C类地址可以用于标识网络中的主机或路由器,但是并不是所有地址都可用,因为有些地址有特殊用途,不能分配给主机或路由器,如表5-1所示。

由于将IP地址分为网络号和主机号两个字段,因此在进行IP地址分配时,管理机构只需要向申请者分配网络号,获得某一网络号的单位在自己所管辖范围内自主分配主机号,比如某学校的计算机学院申请到一个网络号为202.194.20的C类地址段,则学院可以将202.194.20.1~202.194.20.254之间的IP地址按照需要分配给学院下面的各个系、研究所和实验室。这种分等级的地址结构方便了IP地址的管理。在这种模式下,所有网络号相同的主机被视为一个网络,IP网中的路由器在转发分组时是按照网络号进行转发的,分组到了某一网络之后再根据主机号发送到最终的接收主机,这样可以大大减少路由表中的项目,从而节约存储空间,提高查找速度,提高网络运行的效率。

随着网络规模的发展,这种分类的IP地址编址方式逐渐显示出了一些弊端,最主要的就是在IP地址分配过程中会出现巨大的浪费。在早期Internet中网络和主机较少的情况下,这个问题并不明显,但当越来越多的主机需要加入Internet时,IP地址消耗的速度显著增加,分配过程中的浪费问题就显得非常棘手。当一个单位申请到某个网络号的A类或B类地址后,则具有该网络号的所有地址就都归属这个单位使用,即使单位没有那么多需要分配 IP地址的主机,其他单位也无法使用这些剩余的IP地址。此外,两级IP地址的灵活性也是一个问题。假如有一个单位需要在新的地理位置开通一个新网络,只能按照既定的流程进行申请并等待审批通过,即使这个单位已经有了足够的IP地址资源,也不能自主添加新的网络。为了解决这些问题,Internet的管理机构从 1985年起,在IP地址中又增加了一个“子网号”字段,将两级的IP地址结构变为三级IP地址结构,这样的IP地址划分和分配方法称为子网划分。

2.子网划分

子网划分的基本思路如下。

1)在原有两级IP地址结构的基础上,从IP地址的主机号部分借用若干位作为子网号(subnetID),则 IP地址的结构就变成了网络号、子网号和主机号3个部分,表示方式如下。

IP 地址::={<网络号>,<子网号>,<主机号>}

2) 一个拥有多个物理网络的单位,可以利用子网号,将自己所管辖的物理网络划分为若干个子网(Subnet)。划分子网是单位内部的行为,与IP地址管理机构无关,外部网络也看不到这个单位内部划分了多少个子网,仍然将这个单位视为一个网络。

3)从其他网络发送给某单位中某个主机的IP数据报,先根据其目的IP地址中的网络号找到单位网络相连接的路由器;该路由器再根据目的IP地址中的子网号找到相应的子网,最终将IP数据报发送到目的主机。

比如,某单位拥有一个C类地址,其网络地址为202.194.20.0(网络号为202.194.20),则所有目的IP地址为202.194.20.x的IP数据报都会被送到与这个网络相连的路由器R上。假设该单位将其主机号中的3位作为子网号使用,剩下的5位作为主机号,则可以最多在其单位内部划分出8个子网,分别是202.194.20.0(子网号为000)、202.194.20.32(子网号为001)、202.194.20.64(子网号为010)、202.194.20.96(子网号为011)、202.194.20.128(子网号为100)、202.194.20.160(子网号为101)、202.194.20.192(子网号为110)和202.194.20.244(子网号为111),每个子网可以容纳的最大主机数为2°-2=30个。划分子网后,整个网络对外仍表现为一个网络,该网络上的路由器R接收到外来IP数据报,再根据目的地址将其转发到相应的子网。

采用子网划分方法的一个最核心问题是如何使得网络连接的路由器能够正确地将IP数据报发送给网络内部不同的子网。由于在IP数据报中没有包含关于源主机或者目的主机所在网络子网划分情况的信息,所以必须采用一种机制让路由器能够知道自己所连接网络的子网划分情况,实际应用中采用的是一种被称为“子网掩码”(SubnetMask)的方法。

子网掩码从形式上看是一个32位的二进制数,由一串1和跟随的一串0组成,形如

11111000 0oooooo0oooo0000,与IP地址一样,也可以用4个点分十进制数来表示。子网掩码中的1对应于IP地址中的网络号和子网号字段,0对应于主机号字段。子网掩码与目的IP地址配合起来,就可以知道具有该IP地址主机所在子网的网络地址,具体的方式是将IP地址与子网掩码按位进行逻辑与(AND)运算,其结果即为所在子网的网络地

址。例如,有IP地址202.194.20.138,其子网掩码为1111111 11111111

11100000,两者按位进行逻辑与运算为:

具有该IP地址的主机所在子网的网络地址即为202.194.20.128。

每个单位在申请到某个IP地址段后,要在本单位管辖范围内进行IP地址分配,必须要确定一个子网掩码,用来标识网络内部的子网是如何划分的。某个网络的路由器在收到一个 IP数据报后,首先要将数据报的目的IP地址与路由器所连接网络的子网掩码逐位进行“逻辑与(AND)”运算,得出IP数据报所要送往的子网网络地址。

如果内部网络没有进行子网划分,则采用默认的子网掩码,即子网掩码中1的位置与 IP 地址网络号字段相对应。

·A类IP地址的默认子网掩码为255.0.0.0。

·B类IP地址的默认子网掩码为255.255.0.0。

·C类IP地址的默认子网掩码为255.255.255.0。

在子网掩码成为Internet正式标准后,Internet中的路由器在与相邻路由器交换路由信息时,必须把自己所在网络或子网的子网掩码告诉相邻路由器。路由器的路由表中也必须包含目的网络的子网掩码。

3.无分类编址 CIDR

子网划分的方式在一定程度上方便了IP地址的分配和管理,但仍然在Internet发展过程中面临着急需解决的问题:IPv4的地址空间已经基本耗尽,Internet主干网上的路由表中的项目数量异常庞大。为了解决这些问题,Internet的研究者和管理者又提出了变长子网掩码 VLSM 来提高 IP地址资源的利用率,在VLSM的基础上又进一步研究出无分类编址方法,称为无分类域间路由选择Classless Inter-Domain Routing,CIDR)。CIDR的基本思想如下。

1)CIDR 不再按照A、B、C类的类型区分IP地址,也不再使用子网号字段。它把32位的IP地址划分为两部分,前面的部分称为网络前缀,用来指明网络,后面的部分用来指明主机。这是一种无分类的两级编址方式,表示方法如下。

2)网络前缀都相同的连续IP地址称为一个CIDR地址块,其中一个地址被确定,则整个地址块的最小地址和最大地址,以及地址块中的地址数就都可以被确定。比如已知 IP 地址为202.194.20.138/27,其中前27位为网络前缀,后5位为主机号,用二进制表示为:

该地址块中共有2=32个地址。因此,一个用CIDR表示的IP地址,除了其本身的IP地址和网络前缀位数外,还表明了很多重要的信息,包括所在地址块的最小地址、最大地址,以及地址块中IP地址的数量。

为了描述方便,通常用CIDR地址块中的最小地址和网络前缀位数来指明地址块,则上面所表示的IP地址块就可以写为202.194.20.128/27。

为了和现有的使用子网掩码的网络兼容,CIDR的斜线加网络前缀表示法也可以表示成子网掩码的形式,称为地址掩码。网络前缀位数即为地址掩码中1的个数,地址掩码的其余位为0。例如“/27”对应的子网掩码为11111111 11111111 11111111 11100000(255.255.255.224)。获得某个CIDR地址块的单位,仍然可以在其内部划分出一些子网,子网也都有一个网络前缀和主机号,只是子网的网络前缀比整个单位的网络前缀要长,即从主机号中借用若干位来进行子网划分。

CIDR的一个重要作用就是用来简化路由器中的路由表,将众多的IP地址聚合在一个 CIDR地址块中,从而减少路由表中的项目和路由器之间的信息交换,提高整个网络的性能。这种方式称为“路由聚合”,也称“构成超网”。比如一个网络前缀为“/13”的CIDR地址块,其地址掩码为255.248.0.0,则包含的IP地址数为512K个(1K=1024),相当于包含8个B类网络或者2048个C类网络,采用CIDR的路由聚合技术,就可以大大减少路由表中的项目数。此外,CIDR还使得IP地址的分配更加灵活,可以根据申请者的需要分配适当大小的CIDR地址块,而分类IP地址的方式只能按照固定网络号位数的A、B、C类进行分配。

例如,某集团总公司的网络管理中心申请到了210.32.16.0/20的地址块,相当于16个 C类网络。集团总公司内部有4个相对独立的分公司需要建立各自的子网。集团总公司可以自由地对各个分公司(A、B、C和D)进行地址块分配,各个分公司还可以在自己所管辖的网络内再进行划分。集团总公司可以为每个分公司分配相同IP地址数的地址块,也可以分配不同 IP地址数的地址块。

假如为4个分公司分配相同IP地址数的地址块,则可以借用主机号字段的前2位,将210.32.16.0/20 地址块划分为22=4个大小相等的地址块,如表5-2所示。

则在这种分配方式下,每个分公司的网络都包含了2"=1024个IP地址,并且可以在分公司内部再进行子网划分。

采用CIDR方式进行网络划分后,虽然该集团的网络包含了4个子公司,16个C类网络,但不需要在路由器中为每一个分公司子网设置一个路由表项,而只需要用210.32.16.0/20一个路由表项就可以在Intenet中标识该集团的网络地址。所有目的地址的前20位与210.32.16.0/20相一致的IP 数据报,都会被送到该集团与Intenet相连接的主路由器上,而外界不需要知道该集团内部网络划分的情况。

在路由聚集过程中,可能存在将一个聚集在一起的大子网中的某个(或某几个)小子网单独分出去,比如分配给不同区域或组织,这样就会导致大子网不包含这些小子网的现象。为了充分利用路由聚集带来的高效路由的好处,又需要避免出现路由错误(或称路由黑洞现象),可以在同一个路由器中并列关于到达大子网和小子网的路由。显然,小子网的网络前缀比大子网的网络前缀要长。在这种情况下,在使用CIDR进行路由查找时,有可能会得到不止一个的匹配结果,这时,应当从四配结果中选择具有最长网络前级的路由,称为最长前缀匹配。因为网络前缀越长,子网就越小,路由就越具体。

综上所述,为了尽可能高效地利用IP地址资源和提高网络效率,IP地址的编址方法经历了不断的改进。除此之外,为了节约 P 地址,Intemet 的管理者在IP 地址中特别划分出一部分地址作为保留使用,称为私有地址或专用地址。这部分地址可以在某个网络内部使用,形成一个专用网,但不能在公共互联网上使用,公共互联网会丢弃目的地址是这部分地址的 IP分组。私有地址空间如表54所示。

某个单位的网络可能包含多个主机,但可以只申请一个全球范围内有效的IP地址,网络内部的主机使用私有地址进行分配,只要内部各主机的私有IP地址不重复即可。使用私有地址的主机可以方便地与网络内的其他主机进行通信,但如果需要与网络外的其他主机通信,必须采用一定的机制进行地址转换。实际网络中使用的私用地址转换方法称为网络地址转换协议(Network Address Translation,NAT)。NAT的基本思想是:在专用网连接到Inter- net 的路由器上安装NAT软件,装有NAT软件的路由器称为NAT路由器。每个NAT路由器至少应该具有一个有效的全球IP地址。

当专用网内的主机需要向Internet上的其他主机发送数据报时,首先将IP数据报发送给所在专用网的NAT路由器,NAT路由器将IP数据报中的源IP地址(用私有地址表示)换成NAT路由器自己的全球IP地址,然后按照IP数据报中的目的地址转发出去,并且将这个私有地址和NAT 路由器的全球IP地址记录到路由器上的地址转换表中。Internet上的目的主机在接收到这个IP数据报后,按照NAT路由器的全球IP地址发送应答数据报,则NAT 路由器收到这个数据报后,根据地址转换表,再将全球IP地址转化成私有IP地址,最终将应答的IP数据报转发给专用网中发送数据报的主机。

使用NAT路由器进行专用网和Internet的通信,只能适用于由专用网内主机发起的情况,因为如果Internet上的主机发起一个访问专用网内部主机通信,NAT路由器不知道该向专用网内部的哪一台主机转发数据报,因此专用网内部的主机不能充当服务器使用。

第四节IP路由概述

当Internet 中的每一个参与通信的设备都被赋予有效的IP地址之后,IP数据报就可以按照IP地址进行发送和接收,而在整个网络中为IP数据报寻找合适的通信路径并且将其转发出去的过程称为IP路由,是由路由器实现的。

一、路由器的结构及功能

路由器是一种具有多个输入端口和多个输出端口的专用计算机,其主要任务是获取与维护路由信息及转发分组。路由器从功能结构角度可以分为输入端口、输出端口、交换结构与路由处理器。

1)路由处理器就是路由器的CPU,负责执行路由器的各种指令,包括路由协议的运行、路由计算,以及路由表的更新维护等。

2) 输入端口负责从物理接口接收信号,还原数据帧,提取IP数据报(或其他网络层协议分组),根据IP数据报的目的IP地址检索路由表,决策需要将该IP数据报交换到哪个输出端口,最后交给交换结构进行交换。输入端口需要有缓存,用于保存排队待交换的IP数据报,如果输入端口接收IP数据报的速度比交换结构交换IP数据报的速度快,则可能导致缓存溢出,造成IP数据报被丢弃,此时会发生拥塞现象。

3)输出端口也要开辟缓存,用于保存排队交换到指定端口待发送的IP数据报。当输出端口发送某IP数据报时,重新封装该IP数据报到对应接口网络的数据链路层的数据帧中,然后通过物理层发送出去。输出端口的缓存也可能由于交换过来的IP数据报速度大于该输出端口发送IP分组的速度,导致缓存溢出,造成IP数据报丢弃。输出端口通常执行FCFS(先到先服务)的调度策略,也可以执行其他调度策略,比如按优先级调度、按IP数据的TOS类型调度等。

4)交换结构完成将输人端口的IP数据报交换到指定的输出端口。主要包括基于内存交换、基于总线交换和基于高级的交叉“网络”交换3种交换结构类型。交换结构的性能在很大程度上决定了路由器的性能。上述3种交换结构中,基于内存交换的交换结构性能最低,相应的路由器价格也最便宜,基于“网络”交换的交换结构性能最好,通常这类路由器价格也比较昂贵。

二、路由表与路由转发

“路由”与“转发”是路由器最重要的两项基本功能。通过静态(人工方式)或者动态(运行路由协议)获取的路由信息被保存在路由表中,供数据转发时使用。路由表是以路由项来存储路由信息的,每个路由项也称为一个“人口”(Entry),每个路由项包括很多字段,表示不同的信息。其中比较重要的字段包括目的网络、子网掩码、下一跳地址和接口等,其中目的网络与子网掩码也可以合并到目的网络字段中,采用CIDR地址形式表示。路由表的基本结构如下所示。

目的网络与子网掩码准确描述了一个目的网络;下一跳表示到达该目的网络的路径的下一个邻居结点的接口IP地址,可能是下一个路由器与本路由器相连的接口的IP地址,也可能是直连网络,如果是直连网络,则下一跳取值为空;接口是转发IP分组到达该目的网络时,应从哪个接口将IP分组发出去。在路由表中经常会有一些比较特殊的路由项,例如,默认路由(或默认路由),该路由项对应的目的网络和子网掩码分别是0.0.0.0和0.0.0.0,或者0.0.0.0/0;特定主机路由,它的目的网络是特定主机的IP地址,而子网掩码是255.255.255.255,或者表示为a. b.c.d/32。

路由器在收到IP数据报时,会利用IP数据报的目的IP地址检索匹配路由表,如果路由表中没有匹配成功的路由项,则通过默认路由对应的接口转发该IP数据报,也就是说,在路由表匹配过程中,至少会有默认路由会被匹配“成功”。如果除默认路由外,有一条路由项匹配成功,则选择该路由项对应的接口,转发该IP数据报;如果除默认路由外,有多条路由项匹配成功,则选择网络前缀匹配成功位数最长的路由项,通过该路由项指定的接口转发该IP 数据报,这就是路由转发过程的“最长前缀匹配原则”。

最长前缀匹配原则是在CIDR方式下,路由器对于收到的IP数据报,将其中的目的IP地址与路由表中各路由项中的掩码按位进行逻辑与运算,将结果与路由表中的目的网络进行比较,如果出现与多个目的网络相一致的情况,则选择其中网络前缀最长的一项作为路由转

发的依据。

例如,某路由器的路由表如表5-5所示。

三、路由算法

1.静态路由与动态路由

Intemet中路由信息的配置途径可以分为两大类:静态路由和动态路由。静态路由是人工配置的路由,这类路由信息记录到路由表后,在下次被更改之前,一直保持不变,故称为静态路由。静态路由因为反映了人类智慧,所以静态路由在路由表中的优先级是最高的,即在相同条件下会被首选的。动态路由是指路由信息根据网络的“实时”(或当前)状态,周期性地动态计算和更新路由信息,使路由信息反映网络状态的动态变化,优化路由选择。动态路由需要路由器运行路由协议动态收集网络状态信息,然后按照某种路由算法计算当前网络状态下到达不同目的网络的最佳路由。

2.距离-向量路由算法

距离-向量路由算法是一种仅需网络“局部”信息、异步的、迭代的、分散式的路由算法。每个路由器周期性地向邻居通告形如<目的网络,距离>的距离向量,每个路由器当收到邻居的距离向量或检测到本地链路的费用变化时,根据Bellman-Ford方程计算经过哪个邻居可以获得到达每个目的网络的最小距离,更新自己的距离向量与路由表,并将更新的距离向量交换给其所有的邻居路由器。经过多次迭代,确定到达每个目的网络的最佳路由。

距离-向量路由算法最典型的问题是容易出现无穷计数问题(Count to Infinity),尤其网络中存在环路时很容易出现无穷计数问题。消减无穷计数问题的方法主要有:毒性逆转(Poisoned Reverse)、定义最大有效距离(如RIP定义最大有距离为15跳)、水平分割和阻碍时钟等。

3. 链路状态路由算法

链路状态路由算法是将网络抽象为一个图,然后利用数据结构中经典的Dijkstra算法求最短路径,从而获得最佳路由信息。为了掌握全网的拓扑结构,每个路由器检测并收集直接相连链路的费用及直接相连路由器的IP地址等信息,构造链路状态分组,广播扩散给网络中其他所有路由器。每个路由器维护一个链路状态数据库,该数据库存储收集到的链路状态信息,并根据这些链路状态信息构建网络拓扑图(实际路由器并不会真正构建这个图),进一步利用 Dijkstra算法求最短路径,确定最佳路径。

当网络存在环路且链路费用反映动态的链路通信量时,链路状态路由算法会存在振荡或摆动(Oscillations)现象,有可能导致某些数据分组在局部存在环路的网络中被Ping-Pang转发,送不到目的网络,最终被丢弃(如IP分组的TTL=0时)。

4. 层次路由

当网络规模很大时,基于单一抽象网络拓扑图的路由算法不再适用,因为这些算法要在大规模网络上交换网络状态信息,比如链路状态信息、距离-向量信息等,会消耗掉大部分网络带宽,致使网络性能下降。另外,当网络规模跨越了组织边界时,很难满足网络管理自治性的需求,每个组织都可能希望按自己的策略和方法实现自己网络的管理和路由。最有效的解决方案就是层次化路由。为此,将大规模的互联网按组织边界、管理边界、网络技术边界或功能边界划分为多个自治系统(AS),每个自治系统由一组运行相同路由协议的路由器组成。每个自治系统可以选择不同的自治系统内的路由协议,按照不同的路由算法计算自治系统内的路由,这类路由协议称为自治系统内路由协议;每个自治系统存在一个或多个与其他自治系统互连的路由器,称为网关路由器,负责与其他自治系统交换跨越自治系统的路由可达性信息,采用的路由协议称为自治系统间路由协议。这样,层次路由将大规模互联网的路由划分为两个层:自治系统内路由和自治系统间路由。不同的自治系统可以选择不同的自治系统内路由协议,以性能优先优化到达本自治系统内的路由;自治系统间需要遵循统一的自治系统间路由协议,交换自治系统间的路由信息,以政策优先优选路由。

四、路由协议

1.自治系统 (Autonomous system,AS)

自治系统(AS)是在统一技术管理下的一组路由器,这些路由器使用相同的AS内部路由选择协议和度量以确定分组在该AS内的路由,不同自治系统可以选择不同的AS内部路由协议,AS之间的路由选择协议是各AS共同遵守的统一的AS之间的路由协议。

事实上,一个AS可能使用多种内部路由选择协议和度量,但是一个AS对其他AS表现出的是一个单一的和一致的路由选择策略。

2.域内路由与域间路由

Internet域内路由协议(即在一个自治系统内部使用的路由选择协议)称为内部网关协议(Interior Gateway Protocol,IGP),如RIP和OSPF协议等。

Internet城间路由协议称为外部网关协议(ExternalGateway Protocol,EGP),实现跨越不同自治系统交换或通告路由信息。目前Internet使用最多的外部网关协议是BGP4。

3.RIP 路由协议

RIP是一种分布式的基于距离向量的IGP;RIP要求自治系统内的每一个路由器都要维护从它自己到其他每一个目的网络的距离向量;RIP中的“距离”也称为“跳数”(Hop Count),从一个路由器到直接连接的网络的距离定义为1,RIP允许一条路径最多只能包含15 跳,16跳表示网络不可达;运行RIP的路由器只能和相邻的路由器交换路由信息,即自己所保持的路由表,目的是告诉相邻的路由器:“我到本自治域内所有网络的距离及要经过的下一跳路由器”,通常每隔30s交换一次路由信息;RIP由于采用距离向量路由算法,所以有可能产生无穷数问题,但是由于RIP规定16跳表示网络不可达,所以不会经过太长时间,无穷计数问题便会消除。

4.OSPF 路由协议

OSPF协议的全称是开放最短路径优先协议,“开放”表示OSPF协议不受任何一家商业公司控制,而是公共的;“最短路径优先”是因为OSPF使用Dijkstra最短路径算法.是IGP。

OSPF收集与本路由器相邻的所有路由器的链路状态,构造链路状态分组,与RIP仅在相邻路由器直接交换路由信息不同,运行OSPF协议的路由器要向本自治系统中的所有路由器广播发送链路状态信息,称为“洪泛”。“链路状态”信息包括本路由器与哪些路由器相邻,以及该链路的“度量”(Metric),只有当链路状态发生变化时,路由器才洪泛链路状态信息。每个路由器将收集到的链路状态信息存储到一个链路状态数据库中,该数据库逻辑上就是全网的拓扑结构,在全网范围内是一致的(称为链路状态数据库的同步),每一个链路状态都带上一个32位的序号,序号越大状态就越新。OSPF的链路状态数据库能较快地进行更新,使各个路由器能及时更新其路由表。OSPF还规定每隔一段时间,如30min,就刷新一次数据库中的链路状态,OSPF的更新过程收敛得快是其重要优点。

为了使OSPF能够用于大规模自治系统网络,OSPF可以将一个自治系统进一步划分为若干个区域,每个区域都有一个32位的区域标识符(用点分十进制表示),通常区域也不能太大,在一个区域内的路由器最好不超过200个。划分区域的好处就是将洪泛法交换链路状态信息的范围局限于每一个区域,而不是整个的自治系统,减少整个网络交换链路状态信息的通信量。因此,在一个区域内部的路由器只知道本区域的完整网络拓扑,而不知道其他区域的网络拓扑。OSPF使用层次结构的区域划分,上层的区域称为主干区域(Backbone Area),主干区域的标识符规定为0.0.0.0,主干区域的作用是连通其他下层区域。

OSPF直接用IP数据报传送报文,所有在OSPF路由器之间交换的分组都具有鉴别的功能。OSPF对不同的链路可根据IP分组的不同服务类型TOS而设置成不同的代价,因此, OSPF对于不同类型的业务可计算出不同的路由。如果到同一个目的网络有多条相同代价的路径,那么可以将通信量分配给这几条路径,称为多路径间的负载平衡。

OSPF支持变长子网划分和无类编址CIDR。由于一个路由器的链路状态只涉及与相邻路由器的连通状态,因而与整个互联网的规模并无直接关系。因此当互联网规模很大时,OS- PF协议要比距离向量协议RIP好得多。

5.BGP 协议

BGP是不同自治系统的路由器之间交换路由信息的协议。BCP的较新版本是BGP4(BGP第4个版本),简写为BGP。Interet的规模太大,使得自治系统之间的路由选择非常困难,比较合理的做法是在AS之间交换网络“可达性”信息。自治系统之间的路由选择是“策略”或“政策”优先的,因此,边界网关协议BGP只能是力求寻找一条能够到达目的网络且比较好的路由(不能兜圈子),而并非要寻找一条最佳路由。

每一个自治系统选择至少一个路由器(通常是BGP边界路由器)与其他自治系统交换路由信息,分属两个自治系统、负责发布自治系统间路由信息的两个路由器(边界路由器)称为对等路由器。BCP在TCP之上建立BCP会话(Session),利用BGP会话交换路由信息。 BCP会话包括:外部会话eBGP,连接分属两个不同自治系统的对等路由器,在自治系统间交换跨自治系统的路由可达性信息;内部会话iBGP,连接同一自治系统内的路由器,在自治系统内交换(发布),到达其他自治系统的网络可达性信息。BCP交换路由信息数量级是自治系统数的量级,要比这些自治系统中的网络数少很多。由于每一个自治系统的边界路由器的数目很少,使得自治系统之间的路由选择不致过于复杂。

BGP支持CIDR,BGP的路由信息包括目的网络前缀、下一跳路由器,以及到达该目的网络所要经过的各个自治系统序列。在BGP刚刚运行时,BGP的对等路由器之间交换整个 BGP 路由表,之后只需要更新有变化的部分即可。

BGP会话交换包括以下4种类型的报文。

1)打开(OPEN)报文,用来与相邻的另一个BGP发言人建立关系。

2)更新(UPDATE)报文,用来发送某一路由的信息,以及列出要撤销的多条路由。

3)保活(KEEPALIVE)报文,用来确认打开报文和周期性地证实邻站关系。4)通知(NOTIFICATION)报文,用来发送检测到的差错。

第五节 IP中的其他重要协议

一、地址解析协议(ARP)

网络中的主机在发送数据时,数据从应用层开始,由上而下,一层层地被封装,直到交给数据链路层,被封装成MAC帧,再交给物理层进行传输,而MAC帧中使用的源地址和目的地址都是硬件地址(如局域网的以太网地址),而IP地址则被隐藏在MAC帧的数据中数据链路层看不到IP地址。当Internet上的应用使用IP地址进行通信时,发送数据的主机和转发数据的路由器都必须要知道IP地址所对应的硬件地址才能将通信过程具体实现。地址解析协议(ARP)就是用来解决这一问题的一套机制。

ARP 的基本思想是在每一台主机中设置专用内存区域,称为ARP高速缓存,里面有该主机所在局域网中各个主机和路由器的IP地址与硬件地址的映射表,并且这个映射表要经常更新。

假设某局域网中的主机A要向局域网内的另一个主机B发送IP数据报,则主机A首先查找其ARP高速缓存内的映射表中是否有主机B的IP地址,如果有,则查找出其对应的硬件地址,并将该硬件地址写入MAC帧,通过局域网将该MAC帧发送给主机B。如果ARP高速缓存中没有主机B的IP地址,则运行ARP,按以下步骤找出主机B的硬件地址。

1)主机A首先在本局域网中广播发送一个ARP请求分组,其内容可以形象描述为:“我的IP地址是A,硬件地址是a,我想知道IP地址为B的主机硬件地址”。本局域网中的所有运行 ARP的主机都会收到该ARP请求分组。

2)主机B收到该 ARP请求分组后,发现其中询问的IP地址与自己的IP地址一致,则收下该分组,并且将主机A的硬件地址和IP地址信息写入自己的ARP高速缓存中,以方便今后向主机A 发送IP数据报;其他主机发现与ARP请求分组中询问的IP地址与自己的 IP地址不一致,则丢弃该分组。主机B收下 ARP请求分组后,创建一个ARP响应分组,并将自己的硬件地址写人该响应分组,然后将这个分组直接发送给主机A。

3)主机A收到主机B的ARP响应分组后,将其中所携带的主机B的硬件地址写入 ARP高速缓存中的地址映射表。

为了防止局域网中主机硬件地址的变更,ARP高速缓存中的每一对地址映射都有一个生存时间(几十分钟),如果超过生存时间,该地址映射将被从高速缓存中删除。删除后需要重新运行ARP查找主机的硬件地址。

当某局域网内的主机A要向其他局域网内的主机B发送IP数据报时,首先需要把该 IP数据报发送给本局域网所连接的路由器R1上,由路由器R1进行转发,这就需要启动 ARP,找到路由器R1的IP地址所对应的硬件地址,从而将IP数据报送到R1;R1需要查找路由表找到主机B所在局域网连接的路由器R2,这也需要启动ARP,解析出R2的硬件地址并转发;最后由R2使用ARP解析出主机B的硬件地址,最终将IP数据报发送到主机B。由此可见,当不同局域网的主机之间发送IP数据报时,需要在主机和路由器上多次使用ARP进行IP地址与硬件地址的映射解析。而在IP数据报经过不同的路由器时,其源IP地址和目的IP地址保持不变,而MAC帧中的源地址和目的地址要相应地发生变换。

二、动态主机配置协议(DHCP)

任何一台计算机要连入Internet,享受各种互联网服务,必须要进行相应的配置,包括该计算机所分配的IP地址、子网掩码、默认路由器的IP地址和域名服务器的IP地址等,称为协议配置。然而要在较大规模的局域网内采用人工手动的方式为每一台计算机进行协议配置,不仅很不方便,还容易产生错误。动态主机配置协议(DHCP)就是用来解决这一问题的一种机制,它可以通过软件的方式为每一台新加入网络的计算机自动进行协议配置,而不需要用户手工操作。

DHCP采用的是客户机/服务器模式,其基本思想是:在一个网络内部设置一台DHCP服务器(或者多个网络共用一台DHCP服务器,每个网络通过DHCP中继代理与服务器相连),其中保存和管理着该网络所管辖的IP地址及其他配置信息;当一台计算机新接入该网络时,还没有配置IP地址,它在开机启动后向该网络广播发送一个DHCP发现报文(DH- CPDISCOVER),其目的IP地址置为全1,源IP地址置为全0。DHCP服务器在收到这个 DHCP发现报文后,从自己所保存的IP地址数据库中取出一个,与其他配置信息一起,通过DHCP提供报文(DHPOFFER)发送给这台计算机,从而为这台计算机分配一个新的IP地址及其他配置信息,则这台计算机就可以使用这个IP地址及其他配置信息访问 Internet 了。

DHCP服务器分配给网络中计算机的IP地址是临时的,只能在一段时间内有效,这个时间称为租用期,租用期的具体时间由DHCP服务器自行决定,也可以由DHCP客户端在发现报文中提出对租用期的要求。

对于安装了Windows系列操作系统(如WindowsXP、Windows7等)的客户端计算机,用户可以方便地将其设置为使用DHCP,具体步骤如下(以Windows7操作系统为例)。

右击桌面上的“网络”图标,在弹出的快捷菜单中选择“属性”命令,在弹出的对话框中单击“更改适配器设置”按钮,打开如图5-3所示的窗口。右击“本地连接”图标,在弹出的快捷菜单中选择“属性”命令,弹出如图5-4所示的对话框;双击“Inter- net 协议版本4(TCP/IPv4)”选项,弹出如图5-5所示的对话框,选择“自动获得IP地址”和“自动获得DNS服务器”复选框,这样该计算机就会在接入网络后自动获得DH- CP分配的IP地址。

三、网际控制报文协议(ICMP)

由于Interet 的规模庞大,结构复杂,数据报在传输过程中经常会遇到延迟、丢失等各种异常情况,如果通信的双方能够知道这些异常情况,就可以及时地进行调整和控制,提高网络传输的效率和成功率。网际控制报文协议(ICMP)就是用来完成这一功能的机制。它通过让主机或路由器发送ICMP报文,将网络传输过程中的差错和异常情况报告给参与数据通信的相关主机。ICMP报文作为IP数据报的数据部分,被封装在IP数据报中。

ICMP 报文格式为:

ICMP 报文有两种类型:ICMP差错报告报文和ICMP询问报文。ICMP差错报告报文共有以下5种情况。

1)终点不可达。当路由器或主机不能交付数据报时,向源点发送终点不可达报文。其报文类型值为3。

2) 源点抑制。当路由器或主机由于拥塞而丢弃数据报时,向源点发送源点抑制报文,告知源点降低发送速率。其报文类型值为4。

3)时间超时。当路由器收到生存时间(TTL)值为0的数据报时,除丢弃该报文外,还要向源点发送时间超时报文。当终点在预先规定的时间内不能收到一个数据报的内容时,就把已经收到的部分丢弃,并向源点发送一个时间超时报文。其报文类型值为11。

4)参数问题。当路由器或目的主机收到的数据报的报头中有的字段不正确时,就丢弃该报文,并向源点发送参数问题报文。其报文类型值为12。

5)改变路由。当路由器的路由表发送变化时,要向主机发送改变路由报文,通知主机随之改变自己的默认路由。其报文类型为5。

常用的ICMP询问报文有两种情况。

1)回送请求和回答。回送请求报文是由主机或路由器向一个特定的目的主机发出的询问。收到此报文的主机必须给源主机或路由器发送回送回答报文,用于测试目的站是否可以到达。其类型值分别为8(回送请求)和0(回送回答)。

ICMP回送请求和回答报文的一个典型应用是分组间探测ping命令,用来测试两个主机之间的连通性。对于接入网络的某台主机,在Windows系统下用户进入“命令提示符”模式,输入ping hostname命令(hostname可以是IP地址,如202.205.140.52;也可以是主机域名,如www.sohu.com),如图5-6所示。则该主机将向hostname所代表的主机连续发送4个ICMP回送请求报文。如果网络连通,则hostname主机收到回送请求报文后进行响应,发送ICMP回送回答报文。源主机可以统计有多少请求报文被发送,收到多少回答报文,报文往返时间是多少,以及有多少报文被丢弃等信息。

2)时间戳请求和回答。ICMP时间戳请求和回答报文用于网络中的主机请其他主机或路由器回答当前的日期和时间,用于在网络中进行时钟同步和测量时间。其类型值为13(时间戳请求)和14(时间戳回答)。

四、网际组管理协议(IGMP)

IGMP是IP 的一部分,用于对IP多播提供管理服务。IP多播(Multicast)也称为IP组播,是针对 Internet上许多由一个源点向多个终点发送数据的业务而设计的一种服务。比如新闻发布、视频点播和视频会议等业务,都是由一个信息源点向多个用户传递信息的Inter- net应用。在一对多的通信中,采用多播可以大大节省网络资源。其基本思想是:IP多播是利用多播IP地址标识一个多播组,当向一个多播IP地址发送IP分组时,该多播组内的所有成员都会收到该IP分组。由于一个多播组内的成员可以位于不同的局域网上,因此Internet中必须要有能够支持IP多播的路由器,根据多播IP地址将IP分组复制并转发到多播组成员所在的局域网,而局域网本身是支持链路层多播的,所以可以将IP分组送达到某个特定的主机。能够运行多播协议的路由器称为多播路由器。多播传输可以保证同一个多播分组(副本)在每个链路上最多只转发一次。IPv4多播的IP地址采用的是D类地址,地址范围为224.0.0.0~239.255.255.255,多播地址只能用于目的地址,而不能用于源地址。

图5-7给出了一个IP多播的简单示意图。假设位于3个不同局域网的主机A、主机B和主机C均属于一个多播组,其多播地址为224.30.152.52。当服务器要向这个多播组发送IP多播时,只需要将IP分组发送到多播路由器R中,R根据多播路由协议,将IP分组复制并转发到多播组成员主机A、主机B和主机C所在局域网的多播路由器,即R1、R2和R3,从而在3个局域网中通过硬件多播,发送到主机A、主机B和主机 C。

要在Intermet 上进行IP多播,除了需要多播路由协议外,还要用到网际组管理协议(ICMP)。简单的讲,ICMP就是要让连接在本地局域网上的多播路由器知道该局域网上是否有主机参加或退出了某个多播组。ICMP的工作过程可以简单概括为两个阶段。

1)当某个主机加入一个新的多播组时,该主机需要向多播组的多播地址发送一个 IGMP报文,表明自己想要成为该多播组的成员。本地的多播路由器收到该IGMP报文后,根据多播路由协议将多播组成员信息告知Internet上的其他多播路由器。

2)各局域网所连接的多播路由器要周期性地探寻本地局域网上的主机,以确定这些主机是否还是某多播组的成员。如果局域网内某多播组中的一个主机对探寻信息发出回应,则多播路由器认为该组是活跃的;如果经过几次探寻后没有一个主机进行回应,则多播路由器认为本地局域网上的主机都已经离开了这个多播组,因此就不再将这个组的成员关系信息发送给其他多播路由器。

第六节 IPv6 协议

如前文所述,Internet的迅速发展使得传统的IPv4协议面临着IP地址资源严重不足的问题,即使采用了子网划分、构成超网和私有地址等节约IP地址的方法,也只能暂时缓解IP地址的短缺,不能从根本上解决IPv4地址资源不够用的问题。

在这一背景下,IETF于1992年成立了专门的IPng工作组,负责研究下一代IP,并于1995年提出了下一代IP的版本(IP的第6版),简称为IPv6。IPv6经过20年的发展,相关协议和技术都在不断完善,在部分国家和领域也获得了一定的应用,但在整个世界范围内还没有完全标准化。IPv6协议的主要特点体现在以下几个方面。

1)IPv6采用了新的IP首部格式,包括基本首部和多个可选的扩展首部,基本首部为固定的40B长度,如图5-8和图5-9所示。

基本首部中各字段的作用如下。

·版本号:占4位,指明了IP的版本,在IPv6中该字段为0110(十进制6)。

·通信业务类型:占8位,用于区分不同的IPv6数据报的类别或优先级。

·流标号:占20位,IPv6中提出了数据业务流的概念,将某特定源点到终点的一系列实时数据报(如音频、视频业务等)定义为流,属于同一个流的数据报,其流标号是相同的。网络中的路由器对于流数据要提供相应的资源预留来保证其服务质量。

·有效载荷长度:占16位,指明IPv6数据报除基本首部外的字节数,最大值为64KB。

·下一个首部:占8位。当IPv6数据报没有扩展首部时,下一个首部的值用于指明基本首部后面的数据所属于的上层协议;当有扩展首部时,用于表示后面第一个扩展首部的类型。

·跳数限制:占8位。用来防止数据报在网络中无限制地被转发。数据报被源点发出后,每经过一个路由器转发,该值就减1,当减为零时,该数据报则被丢弃。

·源地址和目的地址:各占128位,用于表示数据报的源点和终点。

IPv6与IPv4相比基本首部去掉了选项字段、校验和字段等,增加了流标签字段,基本首部变得更简洁,有利于快速路由。

IPv6的扩展首部被用来扩展协议的功能,可以根据不同业务的需要进行设置,目前已经定义的扩展首部主要有逐跳选项、路由选择、分片、鉴别、封装安全有效载荷和目的站选项6种。每一个扩展首部都由若干字段组成,其中第一个字段都设置为8位的“下一个首部”字段,其作用与基本首部中的“下一个首部”字段相同。IPv6的扩展首部除逐跳选项外,都只在数据报的源点和终点进行处理,在其经过的路由器中不进行处理,这样可以大大提高路由器的处理效率。

2) IPv6 中将 IP地址设置为128位,最多可以提供多达3.4x10*个IP地址,这是一个非常巨大的数字,可以充分满足未来互联网对IP地址资源的需求。IPv6地址通常采用冒号分隔的十六进制地址书写形式,把每16位的值用十六进制数表示,各个数之间用冒号隔开,例如一个用冒号十六进制数表示的IPv6 地址是:45EE:0000:78AC:FFFF:2A9B:0000: FFFF:62F4。

冒号十六进制表示方法还可以采用压缩方式,对于连续的多部分0,可以利用连续的两个“:”(即“::”)代替,但在一个IPv6地址中只能用一次。比如某IPv6地址为:BC83:0000:0000:0000:0000:315A:0000:0000,可以采用压缩方式将其写为:BC83::315A:0000:0000。

IPv6 地址包括单播地址、组播地址和任播地址3种类型。单播地址唯一标识网络中的一个主机或路由器网络接口,可以作为源地址和目的地址;组播地址标识网络中的一组主机,只能用做IPv6分组的目的地址,向一个组播地址发送IP分组,该组播地址标识的多播组中的每个成员会收到一个该IP分组的一个副本;任播地址也是标识网络中的一组主机,也只能用做IPv6分组的目的地址,但当向一个任播地址发送IP分组时,只有该任播地址标识的任播组的某个成员收到该IP分组。

由于IPv6能够提供更加丰富的IP地址资源,同时可以支持资源预留和服务质量,按道理应该会很快取代IPv4而成为新的Internet协议标准,但由于目前的IPv4已经运行多年且一直被美国等少数国家所主导,其中包含着巨大的已有利益,因此在推动和发展IPv6协议的过程中,由于拥有更多IPv4地址资源的美国并不积极,导致了IPv6多年来一直还处于草案和试验阶段。我国在IPv6网络的研究、开发和建设上取得了巨大的成就,组织实施了下一代互联网规范工程(CNCI),并通过国家科技重大专项和其他相关科技计划,在基于IPv6的下一代互联网理论研究、标准制定、网络基础设施建设、关键设备和技术试验等方面取得了一系列的成果。2003年,第二代中国教育和科研计算机网(CERNET2)建成,是世界上规模最大的纯IPv6网络,基于CERNET2的相关IPv6技术和应用也在迅速发展。

本章小结

要让分布在世界各地,不同类型、不同协议和技术细节的网络相互连接起来,并且能顺畅、高效地实现信息共享,就必须依靠网络互联技术来实现。网络互联技术是所有能在物理上和逻辑上实现不同网络相互连接的技术的总称,对应于OSI参考模型的各个层次。实现异构网络互连的基本策略主要包括协议转换和构建虚拟互联网络。协议转换机制采用一类支持异构网络间协议转换的网络中间设备,实现异构网络间数据分组的转换和转发;虚拟互联网络是在现有异构网络基础上,构建一个同构的虚拟互联网络,异构网络均只需分装和转发虚拟互连网络分组,同时引人虚拟互联网中间设备互连异构网络,实现在异构网络间转发统一的虚拟互联网的数据分组。Internet是利用IP网络实现的全球最大的互联网络。

网际协议(IP)是TCP/IP体系中最重要的两个协议之一,它将大量的分布在世界各地的不同类型的网络互联在一起形成Internet,IP 的功能对应于OSI参考模型中的网络层,与地址解析协议(ARP)、网际控制报文协议(ICMP)和网际组管理协议(IGMP)共同构成 TCP/IP参考模型的网络互联层。

IP采用路由器(Router)作为网络互联的中间设备,将不同的计算机网络连接在一起,在网络层实现数据的路由和转发。IP为接入IP网的终端计算机、路由器和子网分配标识这些设备的地址,称为IP地址。

IP的特点可以概括为以下3点。

1)IP是面向无连接的、不可靠的分组传输协议。

2)IP屏蔽了数据链路层和物理层的差异,使得数据的传输和转发更加方便。

3)IP是点对点式网络通信协议。

IPv4 地址由一个32位的二进制数表示,通常采用4个十进制数字表示,每个十进制数字间用“·”隔开。IP地址其编址方法经历了分类的IP地址、子网划分和无分类IP地址 CIDR共3个历史阶段。为了节约IP地址,IP地址中特别划分出一部分地址作为保留使用,称为私有地址或专用地址。这部分地址可以在某个网络内部使用,形成一个专用网,但不能在公共互联网上使用。使用私有地址的主机如果需要与网络外的其他主机通信,必须采用网络地址转换(NetworkAddress Translation,NAT)机制进行地址的转换。

在整个网络中为IP数据报寻找合适的通信路径并且将其转发出去的过程称为IP路由,是由路由器实现的。Internet中路由信息的配置途径可以分为两大类:静态路由和动态路由。静态路由是人工配置的路由,动态路由是指路由信息根据网络的“实时”状态,周期性地动态计算和更新路由信息,使路由信息反映网络状态的动态变化,优化路由选择。动态路由算法包括距离-向量路由算法、链路状态路由算法和层次路由算法等。路由器使用的主要协议包括RIP 路由协议、OSPF路由协议和BGP等。

将IP地址与对应的硬件地址进行转换采用的是地址解析协议(ARP),其基本思想是在每一台主机中设置专用内存区域,保存该主机所在局域网中各个主机和路由器的IP地址与硬件地址的映射表,并且对这个表进行定期更新。

动态主机配置协议(DHCP)通过软件的方式为每一台新加人网络的计算机自动进行协议配置,而不需要用户手工操作。DHCP采用的是客户机/服务器模式,其基本思想是:在一个网络内部设置一台DHCP服务器,其中保存和管理着该网络所管辖的IP地址及其他配置信息,为接入该网络的计算机自动分配IP地址。

网际控制报文协议(ICMP)通过让主机或路由器发送ICMP报文,将网络传输过程中的差错和异常情况报告给参与数据通信的相关主机,从而能及时地进行调制和控制,提高网络传输的效率和成功率。

网际组管理协议IGMP是IP的一部分,用于对IP组播提供管理服务。其作用是让连接在本地局域网上的多播路由器知道该局域网上是否有主机参加或退出了某个多播组。

为了从根本上解决IPv4地址资源不够用的问题,IETF提出了下一代IP的版本(IP的第6版),简称IPv6。IPv6中将IP地址设置为128位,采用冒号分隔的十六进制地址书写形式,把每16位的值用十六进制数表示,各个数之间用冒号隔开。IPv6地址包括单播地址、组播地址和任播地址3种类型。IPv6多年来一直还处于草案和试验阶段,我国在IPv6网络的研究、开发和建设上取得了巨大的成就,组织实施了下一代互联网规范工程(CNGI),中国教育和科研计算机网(CERNET2)是世界上规模最大的纯IPv6网络。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值