一种基于IXP2800网络处理器的路由器的实现方法

上传人:鲁** 文档编号:564903324 上传时间:2022-11-15 格式:DOC 页数:7 大小:22KB
返回 下载 相关 举报
一种基于IXP2800网络处理器的路由器的实现方法_第1页
第1页 / 共7页
一种基于IXP2800网络处理器的路由器的实现方法_第2页
第2页 / 共7页
一种基于IXP2800网络处理器的路由器的实现方法_第3页
第3页 / 共7页
一种基于IXP2800网络处理器的路由器的实现方法_第4页
第4页 / 共7页
一种基于IXP2800网络处理器的路由器的实现方法_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《一种基于IXP2800网络处理器的路由器的实现方法》由会员分享,可在线阅读,更多相关《一种基于IXP2800网络处理器的路由器的实现方法(7页珍藏版)》请在金锄头文库上搜索。

1、一种基于IXP2800网络处理器的路由器的实现方法摘要本文介绍了一种基于Intel2800网络处理器实现路由器的方法,按照该方法设计的路由器可以线速处理10G流量的SDH数据。关键字网络处理器;路由器;10G0引言随着Internet技术的飞速开展,新兴的网络业务不断出现,要求网络设备具有线速处理才能,同时具有很强的灵敏性,以满足不同的网络应用的需要。网络处理器就是为理解决这一问题而研制的一种网络设备,网络处理器既具有ASI芯片的高速处理性能,同时又具有通用途理器的可编程特性,既能完成线速处理分组所要求的高性能硬件功能,又能保证系统的灵敏性。路由器作为网络核心设备,其性能直接影响到网络传输性能

2、和效果。随着新业务的不断出现,路由器功能已经不仅仅是转发分组,而需要提供新的效劳:如集成效劳,区分效劳,拥塞控制等等。同时,人们还要求路由器可以支持灵敏的配置并提供通用的编程平台。网络处理器的特点恰好可以满足对路由器的新的要求。因此基于网络处理器设计路由器,正日益成为国内外相关研究的热点以及网络设备制造商的首选方案。路由器的体系构造经历了从单处理器到并行处理器,从共享总线到交换构造的开展过程。第一代路由器中,全体线路接口共享内部总线,随着网络上业务量和接口模块的增加,总线上数据也随之增加,同时分组的寻路、转发都是由软件处理,加重了PU的处理负担,使路由器传输性能迅速下降。第二代路由器增强了线路

3、接口卡的功能,该卡上配有一定容量的存储器和一个存储路由信息的本地ahe。第二代路由器进步了系统的效率,但仍有两个问题未解决:第一,随着网络规模的扩大,各个端口上的数据流量越来越大,各个端口中包含到达不同目的地的流量越来越多,造成ahe命中率下降,导致路由器性能下降。第二,共享总线的体系构造决定了一旦到达共享总线带宽的极限值,性能很难继续进步。第三代路由器设计,逻辑上将控制功能和数据功能两个主要平面分开,控制平面负责路由表维护、设备管理和异常处理等功能;数据平面负责转发报文。控制平面又称之为慢速通道,是速度比拟慢的通路,因此大局部数据流量不经过它,主要是少量的路由和协议通信报文。控制平面的大局部

4、功能仍然在通用的处理器上由软件实现。数据平面负责转发数据报文,属于快速通道,线速处理数据报文。在数据平面的输入侧,报文经过分类,用目的IP地址查找路由并转发。在数据平面的输出侧,报文必须被调度或者排队;对简单的IP路由,意味着报文需要被放置到正确的输出端口队列中,但QS保证要求更高级的队列调度算法。网络处理器数据平面和控制平面别离的体系构造非常适用于开发第三代的路由器。IXP2800网络处理器是Intel公司的新一代网络处理器,支持10Gbps流量数据处理,具有16个1.4GHz的微引擎和一个700hz的核心处理器Xsale,可配置3块RDRA和4块QDRSRA,支持标准的线卡/交换接口标准S

5、PI4.2或SIXL1。IXP2800网络处理器具有以下的特点:1)采用多内核并行处理器构造。片内处理器按任务分为控制平面处理器核心处理器和数据层面处理器微引擎。控制平面处理器通常负责非实时的管理任务;数据平面处理器进展实时、线速数据分组处理。2)支持硬件多线程。为了进步网络处理器的资源利用率,每个微引擎还支持八个硬件线程。每个线程都有一套专门的硬件来存放上下文ntext,以获得线程切换的零开销。3)优化指令集和专用硬件加速处理单元。采用RIS技术,结合多级流水线技术,大局部指令在一个时钟周期完成。针对网络协议处理特点,设置专用硬件加速处理单元,提供专用指令。4)优化的分级存储组织和分布式存龋

6、在微引擎内部有大量的不同类别的存放器、本地存储器、A,在微引擎外部有片内存储器Srathpad。在网络处理器外部可以扩展大容量的片外存储器SRA和SDRA。多层次的存储组织为用户提供不同速率、不同容量的存储器,便于用户根据应用的需求灵敏配置。另外,不同的存储器有独立的总线支持,程序模块可并行访问多种数据存储单元。5)硬件支持的环和队列操作。网络数据处理涉及很多队列或环的数据构造操作,而入队和出队操作需要屡次访问内存,极大地影响了数据处理分组处理的周期。IXP2800中的SRA控制器提供了基于SRA的先入先出队列,通过硬件实现了环和队列操作。3.1硬件体系构造图1硬件构造图为了满足10G流量的数

7、据处理才能和可扩展性的要求,一共使用了三台IXP2800网络处理器。PS成帧器的一个输入输出端与SDH网络相连,其一个输出端作为第一个入口IXP2800的输入,经过处理的数据,从第一个入口IXP2800输出到第二个入口IXP2800,数据经过相应的处理,从第二个入口IXP2800经过SIX交换网络传输到出口IXP2800,然后通过出口IXP2800发送到成帧器,通过成帧器的输入输出端发送到SDH。至此,整个数据包的分类和路由完成。3.2网络处理器的软件模块构造图2IXP2800网络处理器的微码模块图第一个入口IXP2800从功能上可以分为包接收模块,预分类和转发模块和SPI4发送模块。从edi

8、a接口接收进来的PS数据,经过PPP头部剥离后,完成预分类,根据IP数据包的类型,进展IPv4转发,或者IPv6转发。最后,SPI4发送模块通过SPI4接口把数据发送到第二个入口IXP2800,继续进展处理。第二个入口IXP2800从功能上可以分为SPI4接收模块,分类模块,统计模块,ell(48字节长度的数据块)队列管理模块,ell调度模块和SIX发送模块。从SPI4接口接收前一个IXP2800传输来的数据,通过分类器完成分类后,进展相应的统计,最后,经过ell队列管理模块,ell调度模块和SIX发送模块,通过SIX交换网络将数据发送到出口IXP2800。出口IXP2800从功能上可以分为S

9、IX接收模块,包调度模块,包队列管理模块和包发送模块。通过SIX交换网络接收前一个IXP2800发送来的数据,调度和队列管理功能后,通过edia接口发送出去。3.3资源分配和数据流的说明3.3.1第一个入口IXP2800的资源分配和数据流包接收模块:该模块把接收到的数据写到DRA,同时把数据描绘符写到SRA。SDH数据经过成帧器后,被组装成第二层数据包,SF把数据包分割成一个个固定大小的微包。接收模块接收SPI4总线上的微包,根据接收状态字,把微包组装成第二层数据包,把组成的数据帧从接收缓冲区复制到SDRA中,同时,包描绘符写到SRA中。存放数据包的缓冲区的句柄和其余的关于数据包的描绘信息通过

10、SrathRing传给预分类和转发模块。预分类和转发模块:该模块包括PPP剥离/预分类微块和IPv4/IPv6处理微块,共占用8个E。PPP剥离/预分类微块去掉数据包的第二层PPP头部,并根据PPP头部中相关字段的信息,把数据包分类成IPv4数据包,IPv6数据包,或者PPP控制数据包。PPP控制数据包交给XSale核心处理器处理,其余的数据包交给相应的处理模块处理。IPv4转发微块:该模块检查IP数据包是否是有效数据,假如是无效数据,丢弃该IP数据包。假如是有效的IP数据包,根据IP头部执行最长前缀匹配LP算法,假如找到了一个匹配结果,在该数据包中做标记,交给统计模块;假如没有匹配的结果,那

11、么该IP数据包交给XSalere做进一步的处理。IPv6处理微块:该模块包括IPv6转发子模块,隧道剥离和隧道封装子模块。IPv6转发子模块的功能同IPv4转发子模块的功能近似。隧道剥离子模块处理到达终点的封装了IPv6数据包的IPv4数据报。隧道封装子模块处理需要封装成IPv4的IPv6数据包。一个封装的IPv6数据包首先经过IPv4转发模块,经过LP查询后,其下一跳信息标志一个隧道,那么该数据包被发送给隧道剥离子模块,然后交给IPv6转发子模块,经过IPv6的LP查询后,假如需要经过一个隧道,那么交给隧道封装子模块,最后封装完成的数据包像IPv4数据包一样处理。SPI4发送模块:该模块通过

12、SPI4接口发送数据包。该模块与发送模块类似,只是没有了到调度模块的反应,同时在每一个数据包之前加上了一些额外信息,一起发送给第二个入口IXP2800。3.3.2第二个入口IXP2800的资源分配和数据流SPI4接收模块:该模块通过SPI4接口接收前一个入口IXP2800发送的数据,并组装成完好的IP数据包。该模块与包接收模块类似,只是在接收到的每一个数据包前有额外的描绘信息,根据这些信息来形成数据包的包描绘符。把包描绘符写到srathring中交给分类模块。分类模块:从srathRing中读取数据的描绘信息,读取数据包头部,存储到传输存放器中,使用分类器进展分类,并在每一个数据包的描绘符中做

13、出相应的标记。把做过标记的数据包的描绘信息写到srathring中,给后续模块使用。统计模块:从srathring中读取数据的描绘信息,统计每一个类别的数据包的个数,统计完成后,把数据包的描绘信息写到srathring中,给后续模块使用。ell队列管理模块:与包队列管理模块算法一样,只是包队列管理模块是基于数据包的,而该模块是基于ell的。SIX调度模块:与包调度模块的算法一样,只是包调度模块是基于数据包的,该模块是基于帧固定长度的数据块来调度的。SIX发送模块:该模块从SPI4接口上发送数据包。该模块的算法与发送模块一样,只是发送模块是基于数据包发送的,而该模块是基于帧发送的。3.3.3出口

14、IXP2800的资源分配和数据流SIX接收模块:该模块从SIX交换网络接收帧,把它们组装成IP数据包。根据接收的数据,形成IP数据包的描绘符信息,存储在Srathring中,交给后续模块处理。包队列管理模块:该队列管理器在SRA队列上执行入队列和出队列操作,Q从srathring接收到一个来自分类模块的入对列恳求,在队列上执行入队列操作;从调度E得到出队列消息,在队列上执行出队列操作。当队列在空与非空之间转换时,Q通过邻居存放器发送一个转换消息给调度,每完成一个出队列操作,Q就会向发送srathring中传递一个发送恳求。包调度模块:调度的功能就是从所有的队列中选择一个准备发送的paket后,

15、向Q发送一个出队列恳求,调度的另一个任务就是处理Q返回的对于出队列恳求的回复消息。一共有两个线程:一个调度线程和一个Q消息处理线程。调度线程实际调度一个队列,并且给Q发送出队列恳求。消息处理线程处理从Q回来的消息。包发送模块:发送通过SF向千兆网口发送数据包,发送模块从srathring中取出一个发送恳求来自Q,用来访问包描绘符,并把取到的包切割成微包,并通过数据包描绘信息中指定的端口发送出去,所有分段发送完之后,包缓冲区再循环使用。发送模块周期性地与调度模块通信,以通知调度有多少包发送成功,假如端口上队列中的包数目超过一个限定就是指这个队列中的包被调度但是一直没有发送出去,就不再对这个端口上的队列进展调度。本文介绍了一种基于IntelIXP2800网络处理器的可以处理10G数据流量的路由器的实现方法,在一些模块的设计上使用了比拟简单的方法,随着各个模块的逐步完善,通过该设计实现的路由器的灵敏性必将更好,效率必将更高。1DuglasE.er著,张建忠,陶智华等译,吴功宜审校.?网络处理器与网络系统设计?.机械工业出版社,20222AndreS.Tanenbau著,潘爱民译,徐明伟审.?计算机网络?.清华大学出版社3谭章熹,林闯,任丰源,等.网络处理器的分析与研究.软件学报,2022,144陈云芝,白英彩,李小勇.?基于IXP1200网络处理器构建路

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 工作计划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号