1、第7章 面向IP的交换技术第7章 面向IP的交换技术7.1 TCP/IP协议协议 7.2 IP编址方式编址方式 7.3 传统路由器的工作原理传统路由器的工作原理 7.4 IP与与ATM结合的技术结合的技术 7.5 多协议标记交换技术多协议标记交换技术MPLS 思考题思考题 第7章 面向IP的交换技术7.1 TCP/IP 协协 议议7.1.1 TCP/IP分层模型分层模型 关于协议分层,前面我们曾详细介绍了ISO开放系统互连OSI的网络体系结构模型,同样,TCP/IP也采用分层体系结构。采用分层技术,可以简化系统的设计和实现,并能提高系统的可靠性和灵活性。TCP/IP共分五层。与OSI七层模型相
2、比,TCP/IP没有表示层和会话层,这两层的功能由最高层应用层提供。同时,TCP/IP分层协议模型在各层名称定义及功能定义等方面与OSI模型也存在着差异,如图7.1所示。第7章 面向IP的交换技术图7.1 TCP/IP分层模型与OSI模型的比较数据链路层物理层网络层传输层会话层表示层应用层网络接入层物理层网络层传输层应用层第7章 面向IP的交换技术 TCP/IP与OSI模型是不同的,OSI模型来自于标准化组织,而TCP/IP则不是人为制定的标准,它产生于Internet网的研究和应用实践中。根据已经开发出的协议标准,可以将TCP/IP的通信任务划分为相对独立的五层结构:应用层、运输层、网络层、
3、网络接入层和物理层。物理层包含了数据传输设备(例如工作站、计算机)与传输媒体或网络之间的物理接口。这一层关心的是诸如传输媒体的性能、信号特性、数据速率等问题的定义。第7章 面向IP的交换技术 网络接入层关心的是终端系统和与其相直接相连的网络之间的数据交换。发方计算机必须向网络提供目的计算机的地址,这样网络才能沿适当的路径将数据传送给正确的目的计算机。这一层所使用的具体软件取决于应用网络的类型。比如,电路交换、分组交换、局域网等不同类型的网络各使用不同的标准。网络接入层关心的是连接在同一个网络上的两个端系统如何接入网络,并使数据沿适当的路径通过网络。当通信双方跨越不同网络时,分组如何在网络中选路
4、、转发是网络层要完成的功能。第7章 面向IP的交换技术 不论进行数据交换的是什么样的应用程序,通常都要求数据的交换是可靠的。也就是说,我们希望确保所有数据都能顺利到达目的应用程序,并且到达的数据与它们被发送时的顺序是一致的。用于可靠传递的机制就是运输层,传输控制协议(TCP)是提供这一功能的目前使用最广泛的协议。应用层所包含的是用于支持各种用户应用程序的逻辑。对于各种不同类型的应用程序,如文件传送程序,需要一个独立的专门逻辑负责该应用的模块。第7章 面向IP的交换技术 TCP/IP是由许多协议组成的协议簇,其详细的协议分类如图7.2所示。图7.2中同时给出了OSI模型的对应层。对于OSI模型的
5、物理层和数据链路层,TCP/IP不提供任何协议,由网络接入层协议负责。对于网络层,TCP/IP提供了一些协议,但主要是IP协议。对于运输层,TCP/IP提供了两个协议:传输控制协议TCP和用户数据协议UDP。对于应用层,TCP/IP提供了大量的协议作为网络服务,例如Telnet、FTP等。第7章 面向IP的交换技术图7.2 TCP/IP协议簇Telnet FTP SMTP DNS TFTP NFS SNMPTCPUDP应用层传输层ICMPARPRARP网络层网络接入层物理层数据链路层物理层IP第7章 面向IP的交换技术 TCP/IP的主要特点如下:高可靠性。TCP/IP采用重新确认的方法和“窗
6、口”流量控制机制以保证数据的可靠传输。安全性。为建立TCP连接,在连接的每一端都必须与该连接的安全性控制达成一致。IP协议在它的控制分组头中有若干字段允许有选择地对传输的信息实施保护。灵活性。TCP/IP对下层支持其协议,而对上层应用协议不作特殊要求。因此,TCP/IP的使用不受传输媒介和网络应用软件的限制。互操作性。从FTP、Telnet等实用程序可以看到,不同计算机系统之间可采用文件方式进行通信。第7章 面向IP的交换技术7.1.2 TCP/IP模型各层的功能模型各层的功能 1应用层应用层 TCP/IP应用层为用户提供访问 Internet的一组高层协议,即一组应用程序,例如 FTP、Te
7、lnet等。应用层的作用是对数据进行格式化,并完成应用所要求的服务。数据格式化的目的是便于传输与接收。严格地说,应用程序并不是TCP/IP的一部分,只是由于TCP/IP对此制定了相应的协议标准,所以将它们作为TCP/IP的内容。实际上,用户可以在Internet网之上(运输层之上)建立自己的专用程序。设计使用这些专用应用程序要用到TCP/IP,但不属于TCP/IP。第7章 面向IP的交换技术 2运输层运输层 TCP/IP运输层的作用是提供应用程序间(端到端)的通信服务。为实现可靠传输,该层协议规定接收端必须向发送端回送确认;若有分组丢失时,必须重新发送。该层提供了两个协议:(1)传输控制协议T
8、CP:负责提供高可靠的数据传送服务,主要用于一次传送大量报文的情况,如文件传送等。(2)用户数据协议UDP:负责提供高效率的服务,用于一次传送少量报文的情况,如数据查询等。第7章 面向IP的交换技术运输层的主要功能是:(1)格式化信息;(2)提供可靠(TCP协议)和不可靠(UDP协议)传输。第7章 面向IP的交换技术 3IP层层 TCP/IP网络层的核心是IP协议,同时还提供多种其它协议。IP协议提供主机间的数据传送能力,其它协议提供IP协议的辅助功能,协助IP协议更好地完成数据报文传送。IP层的主要功能有三点:(1)处理来自运输层的分组发送请求:收到请求后,将分组装入IP数据报,填充报头,选
9、择路由,然后将数据报发往适当的网络接口。第7章 面向IP的交换技术 (2)处理输入数据报:首先检查输入的合法性,然后进行路由选择;假如该数据报已到达目的地(本机),则去掉报头,将剩下的部分即运输层分组交给适当的传输协议;假如该数据报未到达目的地,则转发该数据报。(3)处理差错与控制报文:处理路由、流量控制、拥塞控制等问题。第7章 面向IP的交换技术 网络层提供的其它协议主要有:(1)地址转换协议ARP:用于将Internet地址转换成物理地址;(2)逆向地址转换协议RARP:与ARP的功能相反,用于将物理地址转换成Internet地址;(3)Internet报文控制协议ICMP:用于报告差错和
10、传送控制信息,其控制功能包括差错控制、拥塞控制和路由控制等。第7章 面向IP的交换技术 4网络接入层网络接入层 网络接入层是 TCP/IP协议软件的最低一层,主要功能是负责接收IP分组,并且通过特定的网络进行传输,或者从网络上接收物理帧,抽出IP分组,上交给网络层。网络接入主要有两种类型:第一种是设备驱动程序(例如,机器直接连到局域网的网络接入);第二种是专用数据链路协议子系统(例如X.25中的网络接入)。第7章 面向IP的交换技术7.2 IP 编编 址址 方方 式式7.2.1 传统分类编址方式传统分类编址方式 一个IP地址由4个字节共32位的数字串组成,这4个字节通常用小数点分隔。每个字节可
11、用十进制或十六进制表示,如129.45.8.22和0 x8.0 x43.0 x10.0 x26就是用十进制和十六进制表示的IP地址。IP地址也可以用二进制表示。一个IP地址包括两个标识码(ID),即网络ID和主机ID。第7章 面向IP的交换技术 同一个物理网络上的所有主机都有同一个网络ID,网络上的每个主机(包括网络上的工作站、服务器和路由器等)只有一个主机ID与其对应。据此把IP地址的4个字节划分为两个部分:一部分用以标明具体的网络段,即网络ID;另一部分用以标明具体的节点,即主机ID。在这32位地址信息内有5种定位的划分方式,这5种划分方式分别对应于A、B、C、D和E类IP地址,这样设计是
12、为了不同规模(大规模、中等规模和小规模)组织的需要,具体见表7.1。第7章 面向IP的交换技术表表7.1 IP地址分类地址分类网络类型 特征地址位 开始地址 结束地址 A 类 0 xxxxxxxB 0.0.0.0 127.255.255.255 B 类 10 xxxxxxB 128.0.0.0 191.255.255.255 C 类 110 xxxxxB 192.0.0.0 223.255.255.255 D 类 1110 xxxxB 224.0.0.0 239.255.255.255 E 类 1111xxxxB 240.0.0.0 255.255.255.255 第7章 面向IP的交换技术
13、A类:一个A类IP地址由1个字节的网络地址和3个字节的主机地址组成,网络地址的最高位必须是“0”(每个字节有8位二进制数)。B类:一个B类IP地址由2个字节的网络地址和2个字节的主机地址组成,网络地址的最高两位必须是“10”。C类:一个C类地址是由3个字节的网络地址和1个字节的主机地址组成,网络地址的最高三位必须是“110”。D类:用于多播。第一个字节以“1110”开始。因此,任何第一个字节大于223且小于240的IP地址是多播地址。全零(0.0.0.0)地址对应于当前主机。全“1”的IP地址(255.255.255.255)是当前子网的广播地址。E类:以“1111”开始,为将来使用保留。第7
14、章 面向IP的交换技术 凡是主机段,即主机ID全部设为“0的IP地址称之为网络地址,如129.45.0.0。凡是主机ID部分全部设为“1”的IP地址称之为广播地址,如129.45.255.255。网络ID不能以十进制“127”作为开头,在此类地址中,数字127保留给诊断用,如127.1.1.1用于回路测试;同时,网络ID的第一个8位组也不能全置为“0”,全“0”表示本地网络;网络ID部分全部为“0”和全部为“1”的IP地址被保留使用。传统分类编址方式使得同一物理网络上的所有主机共享一个相同的网络前缀网络ID在互联网中选路时,只需检查目的地址的网络ID,就可以找到目的主机所在的物理网络。第7章
15、面向IP的交换技术7.2.2 子网编址方式子网编址方式 20世纪80年代,随着局域网的流行,如果按传统分类编址方式为每个物理网络分配一个独特的前缀,那么会迅速耗尽地址空间,因此人们开发了一种地址扩展来保存网络前缀,这种方法称为子网编址(Subnet Addressing),它允许多个物理地址共享一个前缀。子网划分是用来把一个单一的IP网络地址划分成多个更小的子网(subnet)。这种技术可使一个较大的分类IP地址能够被进一步划分。子网划分基于以下原理:第7章 面向IP的交换技术 (1)大多数网络中的主机数在几十台至几百台,甚至更高,而A类地址主机数为224,B类地址主机数为216。A类地址一般
16、只能用于特大型网络。为了充分利用Internet的宝贵地址资源,可以将主机地址进一步细分为子网地址和主机地址,即主机属于子网,以有效地提高Internet地址资源的利用率。第7章 面向IP的交换技术 (2)采用子网划分和基于子网的路由选择技术,能够有效降低路由选择的复杂性,提高选路的灵活性和可靠性。子网划分的方法如图7.3所示。在Internet地址中,网络地址部分不变,原主机地址划分为子网地址和主机地址。与传统的分类地址一样,地址中的网络部分(网络前缀+子网)与主机部分之间的边界是由子网掩码来定义的。图7.3 子网划分的原理网络地址(14 bit)0116子网地址(8 bit)24主机地址(
17、8 bit)31第7章 面向IP的交换技术图7.4 某公司的子网划分187.15.0.0255.255.0.0187.15.1.0255.255.255.0187.15.2.0255.255.255.0187.15.3.0255.255.255.0187.15.254.0255.255.255.0第7章 面向IP的交换技术 图7.4给出一个子网划分的例子。B类地址187.15.0.0被分配给了某个公司。该公司的网络规划者希望建立一个企业级的IP网络,用于将数量超过200个的站点互相连接起来。由于在IP地址空间中“187.15”部分是固定的,因此只剩下后面两个字节用来定义子网和子网中的主机。他们
18、将第三字节作为子网号,第四字节作为给定子网上的主机号。这意味着该公司的企业网络能够支持最多254个子网,每个子网可以支持最多254个主机。因此,这个互联网络的子网掩码为255.255.255.0。这个例子说明了为整个网络定义统一子网掩码255.255.255.0的情况。它意味着每个子网中最大的主机数只能是254台。假如主机数目达到500台,或者主机数目非常少,那么采用固定长度子网掩码就非常不方便。第7章 面向IP的交换技术7.2.3 无分类编址方式无分类编址方式CIDR Internet的高速发展给原先的IP地址模式带来很多问题,主要有:(1)剩余的IP地址将要耗尽,尤其是B类地址。某些中等规
19、模的机构已经申请了B类地址,自己的主机数目又不是很多,这样没有充分发挥B类地址容量大的优势,势必造成B类地址的浪费,使得可用的B类地址趋于耗尽。(2)Internet上的路由信息严重超载。随着网络技术的高速发展,路由器内路由表的数量和尺寸也高速增长,降低了路由效率,增重了网络管理的负担。第7章 面向IP的交换技术 20世纪90年代,人们设计出了另外一种扩展方式,即忽略分类层次并允许在任意位置进行前缀和后缀之间的划分,这种方法称为无分类编址(Classless Addressing),它允许更复杂地利用地址空间。无分类编址是为解决IP地址趋于耗尽而采取的紧急措施。其基本思想是对IP地址不分类,用
20、网络前缀代替原先的分类网络ID。用网络前缀代替分类,前缀允许任意长度,而不是特定的8、16和24位。无分类地址的表示方法为IP地址加“/”再加后缀,例如192.168.120.28/21表示一个无分类地址,它有21位网络地址。第7章 面向IP的交换技术 无分类编址网络中的路由器选路时采用无分类域间选路CIDR(Classless Inter-Domain Routing)技术。从概念上讲,CIDR把一块相邻接的地址(比如C类地址)在路由表中压缩成一个表项,这样可以有效降低路由表快速膨胀的难题。图7.5很好地说明了这个概念。图中,16个C类网络地址组成了一个地址空间块,连接到路由器2,另外16个
21、C类地址组成了另一个地址空间块,连接到路由器3,路由器2、路由器3连接到路由器1。在路由器2和路由器3中,路由表只维持连接到本子网的16个C类网络地址的表项,而在路由器1中,路由表更简单,只维持到路由器2、路由器3两个网络的地址表项,并不是把所有的32个C类网络地址分别分配不同的表项。在向互联网络发布时,只使用了一个单一的CIDR向网络发布192.168.0.0/16(16表示网络地址长度为16 bit)。第7章 面向IP的交换技术图7.5 CIDR汇聚示例192.168.0.0192.168.1.0192.168.2.0路由器2192.168.15.0192.168.192.0192.168
22、.193.0192.168.194.0192.168.207.0路由器3路由器1通告192.168.240.0/20通告192.168.192.0/20通告192.168.0.0/16第7章 面向IP的交换技术 CIDR允许任意长度的网络前缀,相应的掩码长度也变成可变长度,称为可变长子网掩码VLSM(Variable-Length Subnet Mask)。VLSM能够把一个分类地址网络划分成若干大小不同的子网。在上面的例子中,若主机数目为500台,分配一个子网掩码为255.255.254.0的子网就可以支持最多512个主机地址。若另外一个场合主机数目为100台,分配一个子网掩码为255.25
23、5.255.128的子网就可以支持最多128个主机地址。第7章 面向IP的交换技术 因此,CIDR与VLSM结合起来能更有效地管理地址空间,让分配给每个子网的主机地址的数量都符合实际需要。目前,互联网上的B类地址即将耗尽。按CIDR策略,可采用申请几个C类地址取代申请一个单独的B类地址的方式来解决B类地址的匮乏问题。所分配的C类地址不是随机的,而是连续的,它们的最高位相同,即具有相同的前缀,因此路由表就只需用一个表项来表示一组网络地址,这种方法称为“路由表汇聚”。第7章 面向IP的交换技术 除了使用连续的C类网络块作为单位之外,C类地址的分配规则也有所改变。世界被分配成几个区域,每个区分配一部
24、分C类地址空间。具体分配情况为:(1)欧洲:194.0.0.0195.255.255.255;(2)北美洲:198.0.0.0199.255.255.255;(3)中南美洲:200.0.0.0201.255.255.255;(4)亚洲和太平洋:202.0.0.0203.255.255.255。第7章 面向IP的交换技术 这样,每个区域都分配了大约32106个地址。这种分配的好处是,现在任何位于欧洲之外的路由器都得到了一个发往194.x.x.x或者195.x.x.x的IP分组,从而可以简单地把它传递给标准的欧洲网关。在效果上这等同于把32106个地址压缩成一个路由选择表项。作为降低IP地址分配速
25、度以及减少Internet路由表中表项数的一种方法,CIDR技术在过去的几年内已经被广泛认同。现在在分配网络地址时,均分配一个CIDR块,而不是像前面描述的那种传统的分类地址。第7章 面向IP的交换技术7.3 传统路由器的工作原理传统路由器的工作原理7.3.1 路由器完成的功能和硬件结构路由器完成的功能和硬件结构 路由器主要完成两个功能:寻找去往目的网络的最佳路径,由路由协议完成;转发分组,即对每一个经过路由器的分组都需要经过一系列操作,包括转发决策、交换分组、输出链路的调度等。路由器通过端口与每个独立的子网相连。路由器从子网送过来的IP分组中提取目的主机的IP地址,与子网掩码进行运算后获得目
26、的IP地址的网络号部分,再根据IP分组中目的IP地址的网络号部分选择合适的端口,把IP分组送出去。第7章 面向IP的交换技术 1路由器的功能结构路由器的功能结构 路由器的功能结构如图7.6所示,它由控制部分和转发部分组成。转发部分由端口、交换结构组成;控制部分由路由处理、路由表、路由协议组成。下面简单介绍每一部分的功能。第7章 面向IP的交换技术图7.6 路由器的硬件结构输入端口输入端口交换结构输出端口输出端口路由表路由处理路由协议路由协议转发部分控制部分第7章 面向IP的交换技术 1)端口 端口包括输入端口和输出端口,是物理链路和分组的出、入口。图7.7为端口的内部结构图。图7.7 端口的内
27、部结构物理接口数据链路层处理内部缓冲区交换结构第7章 面向IP的交换技术 端口具有如下功能:(1)进行数据链路层的封装和解封装。(2)在路由表中查找输入分组的目的地址从而决定目的端口(称为路由查找),路由查找可以使用一般的硬件来实现,或者通过在每块线卡上嵌入一个微处理器来完成。(3)为了提供QoS(服务质量),端口要对收到的分组分成几个预定义的服务级别。第7章 面向IP的交换技术 (4)有时可运行诸如SLIP(串行线网际协议)和PPP(点对点协议)这样的数据链路级协议或者诸如PPTP(点对点隧道协议)这样的网络级协议。(5)参与对公共资源的仲裁。在路由器中,多个端口和其它一些电路合起来形成线卡
28、。一块线卡一般支持4、8或16个端口。第7章 面向IP的交换技术 2)交换网络结构 交换网络结构在多个端口之间提供分组转发的通路。它的物理结构主要有三种:共享总线、共享内存和空分交换开关。3)路由处理器 路由处理器运行系统软件和各种路由协议,计算、维护和更新路由表。它的部分功能既可以用软件实现,也可以用硬件实现。第7章 面向IP的交换技术 2路由器的交换结构路由器的交换结构 从概念上来说,路由器中使用的交换网络结构主要有共享总线、共享存储器、空分交换开关等。评价一个交换结构的优劣参数有吞吐率、分组丢失率、分组传输延迟、缓存容量大小以及总线实现的复杂度。1)共享总线 共享总线有总线、环、双向总线
29、等。分组在路由器中通过共享总线传输。通常,共享总线的机制是时分复用的,即在共享介质上的某一个模块的每个一个周期分享一个时间片传输它的数据。图7.8是共享总线结构图。共享总线经历了从第一代的单总线单处理器到第三代的多总线多处理器的变化。第7章 面向IP的交换技术图7.8 共享总线结构第7章 面向IP的交换技术图7.9 单总线单处理器结构 (1)单总线单处理器结构。最初的路由器采用了传统计算机体系结构,包括共享中央总线、中央CPU、内存及挂在共享总线上的多个网络物理端口,如图7.9所示。CPU端口端口存储器接口第7章 面向IP的交换技术 中央CPU完成除所有物理端口之外的其它所有功能。数据分组从一
30、个物理端口接收进来,经总线送到中央CPU,由中央CPU做出转发决定,然后又经总线送到另一个物理端口发送出去。每发送一个分组需要经过两次总线,这是整个系统的瓶颈。这种单总线单处理器结构的主要缺点是处理速度慢,一个CPU要完成所有的任务,从而限制了系统的吞吐量。另外一个缺点是系统容错性差,若CPU出现故障,则导致系统完全瘫痪。但该结构的优点是系统价格低。目前的接入路由器基本上都是这种结构。如Cisco2501路由器就是第一代路由器的典型代表,其CPU是Motorola 的68302处理器。第7章 面向IP的交换技术 (2)单总线对称式多处理器结构。第二代路由器开始采用了简单的并行处理技术,即做到在
31、每个接口处都有一个独立的CPU,专门负责接收和发送本接口的数据包,管理接收、发送队列,查询路由表,做出最终转发决定等。而主控CPU仅完成路由器配置管理等非实时功能,如图7.10所示。第7章 面向IP的交换技术图7.10 单总线多处理器结构CPU缓存端口CPU缓存端口中央CPU存储器CPU缓存端口第7章 面向IP的交换技术 分组到达端口后,不用再送往处理机进行路由查找,而是直接在转发缓存中进行路由查找,根据查找结果将分组直接转发到输出端口。这样,每个分组只占用一次总线,使总线的利用率提高了一倍。这种体系结构的优点是本地转发/过滤数据包的决定由每个接口负责处理的专用CPU来完成,对数据包的处理被分
32、散到每块接口卡上。第二代路由器的主要代表有北电的Bay BCN系列,其中大部分接口CPU采用的是性能并不算高的Motorola 60 MHz的MC68060或33 MHz的MC68040。第7章 面向IP的交换技术 (3)多总线多CPU结构。第三代路由器至少包括第二代以上总线和第二代以上的CPU。这种路由器的结构非常复杂,性能和功能也非常强大。这完全可以从该类路由器的典型之作Cisco7000系列中看出。在Cisco7000中共有3类CPU和3条总线,分别是接口CPU、交换控制CPU、路由CPU及控制总线(CxBUS)、数据总线(DxBUS)、系统总线(SxBUS),如图7.11所示。第7章
33、面向IP的交换技术图7.11 多总线多CPU路由器结构接口CPU端口接口CPU端口控制总线数据总线接口CPU端口交换CPU路由CPU系统总线第7章 面向IP的交换技术 共享总线有一个共同的特征:共享总线在某一时刻只允许一个端口发送数据,影响了吞吐量。从一个简化模型来说,一个路由器有N个输入端口和N个输出端口,所有的端口速率为每秒S个分组(假定分组长度固定)。一个分组时间指的是端口发送一个分组需要的时间,即1/S秒。如果总线运行的速度足够高,为NS个分组/秒,则分组在总线上传输时没有冲突。如果总线的速率低于NS个分组/秒,则需要在输入端口增加队列进行缓冲。如果能允许多个端口同时发送数据,系统的吞
34、吐量将会大大增加。第7章 面向IP的交换技术 2)共享存储器 在共享存储器结构的路由器中,使用了大量的高速RAM来存储输入数据,并可实现向输出端的转发。在这种体系结构中,由于数据首先从输入端口存入共享存储器,再从共享存储器传输到输出端口,因此它的交换带宽主要由存储器的带宽决定。第7章 面向IP的交换技术 如图7.12所示,接收的分组首先由串行转换为并行,并顺序写入一个双端口的随机访问存储器RAM(Random Access Memory)中。它们的分组头和内部的路由标签传输给一个存储器的控制器,由控制器来决定读取哪个分组到输出端口。从原理上来说,这是一个输出排队,但是所有的输出缓存都属于一个公
35、共的缓冲池。因此各个输出端口的输出缓存可以共享。但是同上面的总线结构类似,如果要实现输出排队,存储器的操作速度必须N倍于端口速度,而这是受物理条件限制难以扩展的。存储器的控制器控制分组头时也必须有很高的运行速率。多播和广播实现也很复杂:一个多播的分组要复制多份(消耗更多的内存)或者从内存中读取多次(分组必须保留在存储器中直到输出到所有的端口)。第7章 面向IP的交换技术图7.12 共享存储器交换结构输入端口输入端口输入端口共享存储器输出端口输出端口输出端口系统控制器第7章 面向IP的交换技术 当规模较小时,这类结构还比较容易实现,但当系统升级扩展时,设备所需要的连线大量增加,控制也会变得越来越
36、复杂。因此,这种结构的发展前景不很乐观。第7章 面向IP的交换技术 3)空分交换开关结构 与共享存储器结构路由器相比,基于空分交换开关的设计则有更好的可扩展性能,并且省去了控制大量存储模块的复杂性,降低了成本。在空分交换开关结构路由器中,分组直接从输入端经过空分交换开关流向输出端。它采用空分交换开关代替共享总线,允许多个数据分组同时通过不同的线路进行传送,从而极大地提高了系统的吞吐量,使系统性能得到了显著提高。系统的最终交换带宽仅取决于空分交换开关阵列和各交换模块的能力,而不是取决于互连线自身。其结构如图7.13所示。第7章 面向IP的交换技术图7.13 空分交换开关结构第7章 面向IP的交换
37、技术 空分交换开关结构具有很多优点。它具有高速特点的原因有二:一是从线卡到交换结构的连接是点对点的连接,具有很高的速率;二是能够多个通道同时进行数据交互。多个点的开关同时闭合就能在多对端口之间同时进行数据传输。事实上,空分开关被称为内部无阻塞的。就目前来看,这种方案是高速新路由器的最佳方案。第7章 面向IP的交换技术7.3.2 路由器的工作原理路由器的工作原理 路由器工作于OSI参考模型的下三层:物理层、数据链路层和网络层,完成不同网络之间的数据存储和转发。我们假定通过路由选择协议及路由选择算法在路由器中已经建立好路由表,那么路由器如何通过路由表对IP分组进行转发呢?下面就介绍路由器的工作原理
38、。第7章 面向IP的交换技术1路由表介绍路由表介绍表表7.2 路由表构成路由表构成目的IP地址 掩码 端口 下一跳地址 路由费用 路由类型 状态 第7章 面向IP的交换技术 (1)目的IP地址:目的网络ID号或者目的IP地址。(2)掩码:掩码应用到分组的目的地址,以便找到目的地的网络地址或子网地址。(3)端口:路由器的每一端口连接一个子网。(4)下一跳地址:指向下一个路由器的端口地址。(5)路由费用:在RIP中,是指到达目的IP网必须经过的路由器数目;在OSPF中,是指路由器为某一路由选择的最佳成本。在任何时候到指定目的IP网都存在着不止一条路由的可能性,但是正常情况下路由器仅使用其中的一条,
39、即成本最低的那条。第7章 面向IP的交换技术 (6)路由类型:有下面几种直接的,即目的子网直接连接到路由器;静态的,即人工输入的路由;RIP(Route Information Protocol)路由,即通过RIP协议学习到的路由;OSPF(Open Shortest Path First)路由,即通过OSPF协议学习到的路由。(7)状态:指出路由是否有效或者路由的优先级。第7章 面向IP的交换技术 2最长匹配查找原则最长匹配查找原则 前面介绍了无分类域间路由CIDR,它是为解决地址资源紧缺、减少路由表的规模而设计的。这样,路由表中存放的不是一个个具体的IP地址,而是可变长度的网络前缀。路由器
40、在对IP分组寻址时,采用最长的网络前缀匹配LPM(Longest Prefix Matching)。最长匹配查找是在路由表中查找与分组的目标地址具有最长匹配位数的网络地址。具体做法是读取路由表中的每一项路由,然后从左到右依次与分组的目标网络地址进行逐位比较。当遇到第一个不匹配位时,则该路由的比较过程结束。第7章 面向IP的交换技术 例如,假设路由表中有三个表项“202.x.x.x”、“202.168.x.x”和“202.168.16.x”(x表示任意)。在路由器中,路由表项是按照降序的顺序进行存储的,以本例来说,它的存储顺序为“202.168.16.x”、“202.168.x.x”、“202.
41、x.x.x”。如果有一个IP分组,它的目的地址为202.168.16.5,按照最长匹配查找原则,首先与“202.168.16.x”进行比较,并在内存中记录下匹配的位数,然后与“202.168.x.x”进行比较,并马上发现前面的匹配效果比后面的好,一旦得出这个结论,路由器就不会继续向下进行比较了,也就是说,该路由的比较过程结束了。那么这个分组应该从与“202.168.16.x”相连的端口输出。第7章 面向IP的交换技术 3路由查找方法路由查找方法 路由器在转发分组处理时的瓶颈之一是在路由表中进行路由查找。有两个原因导致路由查找困难:首先,路由表可能有成千上万的表项,输入的每个分组如果对每一个路由
42、表项进行匹配,效率很低;第二个原因是一个输入分组有可能匹配多个路由表项,需要从中找出最长前缀匹配的表项。第7章 面向IP的交换技术 路由查找算法有精确匹配查找和最长匹配查找,对于分类IP地址一般采用精确匹配查找,对于CIDR一般采用最长匹配查找。最长匹配路由查找的思想是把路由表项存储在树中,从而使得寻找最长匹配成为寻找从根到匹配节点的最长的路径。一般来说,基于树的算法是从树的根节点开始,使用目的地址中的后若干位来匹配当前节点的子节点,直到找到一个匹配为止。因此,在最坏情况下查找路由表所花费的时间和找到的最长前缀匹配的长度成正比。基于树的算法的主要思想是大多数节点只需要保存很少的子节点而不用保存
43、所有可能的值。这类算法节约了内存,付出的代价是需要做更多次数的内存查找。在路由器中采用缓存技术来提高路由查找速度,有以下两种方法:路由缓存和转发引擎。第7章 面向IP的交换技术 1)路由缓存 传统上所有路由查找由中央CPU集中处理,这样导致CPU的负荷非常大,成为影响路由器性能的瓶颈。因此,解决办法之一是将路由器中央CPU的部分功能转移到接口卡上,每个接口卡有自己独立的CPU和存储器,接口卡将数据包转发用到的路由信息存储到存储器中,称为路由缓存。每个接口卡只存储自己最近一段时间用到的路由信息而不是整个路由表。当数据包进入接口卡,首先在路由缓存中查找目的IP路由信息,如果查到,则直接转发到输出端
44、口上;如果在路由缓存中查找不到,则将目的IP分组头发往中央路由表,并将反馈的结果在路由缓存中更新,后续IP分组在接口卡上直接转发。因此路由缓存可以大大提高转发速度,提高转发效率。第7章 面向IP的交换技术 2)转发引擎 路由缓存通过在接口卡上增加专用CPU来提高转发速度,带来好处的同时也增加了接口卡的成本(专用CPU、Cache存储器)。随着路由器端口数目的增加,成本也随之增长。解决的办法是将每个接口卡上的转发功能分离出来,形成专门的转发引擎(Forwarding Engine),将多个转发引擎并行连接到总线上,可以获得很高的吞吐量,如图7.14所示。第7章 面向IP的交换技术图7.14 转发
45、引擎的工作过程示例处理器分组头部分组处理器发送单元接收单元发送单元接收单元线卡转发引擎接收单元分组处理器头部分组发送单元线卡分组头IP分组路由器缓存交换结构第7章 面向IP的交换技术 工作过程:(1)IP分组到达入端口后,提取出分组头,加上一个标签(含入端口号);(2)含有标签的分组头经过交换结构分配到转发引擎FIFO队列,该队列为所有转发引擎共享;(3)转发引擎进行检错,检错无误后,进行路由查找,然后产生一个新的标签,它包含与下一跳路由器相连端口的地址信息(含出端口号);(4)将变换后的分组头通过交换网络转发回原来的端口(标签起的作用);(5)IP分组被直接转发到连接下一条路由器的输出端口。
46、第7章 面向IP的交换技术 4路由器的分组转发过程路由器的分组转发过程 图7.15为实际的3个路由器互连网络。路由器A的端口1连接128.7.254.0子网,端口2连接128.7.253.0子网,端口3连接路由器B的端口1,端口5连接路由器C的端口1,路由器C的端口2连接路由器B的端口2,路由器B的端口3连接128.7.234.0子网,PCA的IP地址为128.7.254.10,连接到子网128.7.254.0,PCB的IP地址为128.7.253.15,连接到子网128.7.253.0,PCC的IP地址为128.7.234.18,连接到子网128.7.234.0。表7.3为路由器A遵循的路由
47、表示例,我们以PCA到PCB、PCA到PCC两种情况讨论分组在路由器A转发分组的过程。第7章 面向IP的交换技术图7.15 路由器互连网络端口1路由器A路由表端口3端口4端口5端口2128.7.254.0子网128.7.253.0子网PCAPCB123路由器B128.7.238.212路由器C128.7.240.2128.7.239.1128.7.234.0子网PCC第7章 面向IP的交换技术表表7.3 路由器路由器A中的路由表举例中的路由表举例目的IP地址 子网掩码 端口 下一跳地址 路由费用 路由类型 状态 128.7.254.0 255.255.255.0 1 1 Direct UP 1
48、28.7.253.0 255.255.255.0 2 1 Direct UP 128.7.234.0 255.255.255.0 3 128.7.238.2 2 Static UP 128.7.234.0 255.255.255.0 5 128.7.240.2 3 Static UP 第7章 面向IP的交换技术 第一种情况PCA到PCB:PCA的IP分组到达路由器A的端口1,首先分析分组信息,解析分组头,提取目的IP地址,以目的IP地址为索引,在路由表中使用最长匹配原则进行查找,得出目的网络,直接连接到端口2,路由费用为1。将该IP分组进行链路层封装,并从端口2转发出去。第7章 面向IP的交换
49、技术 第二种情况PCA到PCC:PCA的IP分组到达路由器A的端口1,首先分析分组信息,解析分组头,提取目的IP地址,以目的IP地址为索引,在路由表中使用最长匹配原则进行查找。有两条路由可供选择:一条从端口3连接到下一跳IP地址为128.7.238.2的路由器B,路由费用为2;另外一条从端口5连接到下一跳IP地址为128.7.240.2的路由器C,路由费用为3。路由器选择路由费用最小的路由作为最佳路由,因此,将该IP分组进行链路层封装,并从端口3转发出去。IP分组在路由器内进行转发的流程如图7.16所示。第7章 面向IP的交换技术图7.16 路由器处理IP分组的流程图IP分组进入缓冲区提取目的
50、IP地址访问路由表找到最长匹配地址?找到默认路由?yes发给指定的下一跳yes发给指定的下一跳目的地不可达nono第7章 面向IP的交换技术 当路由器转发IP分组时,路由器只根据IP分组的目的IP地址的网络号部分选择合适的端口,把IP分组送出去。同主机一样,路由器也要判定端口所接的是否是目的子网,如果是,就直接把分组通过端口送到网络上,否则,也要选择下一个路由器来传送分组。路由器也有它的缺省网关,用来传送不知道往哪儿送的IP分组。这样,通过路由器把知道如何传送的IP分组正确转发出去,不知道的IP分组送给“缺省网关”路由器。这样一级级地传送,IP分组最终将送到目的地,送不到目的地的IP分组则被网