基于硬件的大规模网络路由仿真方法

文档序号:7707338阅读:141来源:国知局
专利名称:基于硬件的大规模网络路由仿真方法
技术领域
本发明涉及一种基于硬件的大规模网络路由仿真方法,属于网络仿真技术领域。
背景技术
互联网在过去十几年的中的爆炸式增长使人们意识到互联网已经成为全球主要的 k流方式,互联网对生活的影响己经渗透到各个方面。互联网运营商和用户对设备商 有着极高的期望值,他们要求经过完全测试的可靠产品,因此需要一种先进的测试工 具。网络模拟和仿真技术能够以较低的成本完成网络性能的分析与评价,为网络技术 的研究提供方便高效的验证手段。
网络仿真技术使用仿真接口作为真实网络应用程序和仿真系统之间的桥梁,它可 以将外界真实网络中的IP报文转化为仿真系统内的虚拟IP报文,也可以将虚拟IP报 文转化为外界真实IP报文,从而使得仿真系统内部的虚拟网络和外界真实网络能够相 互作用。网络仿真技术用于测试实际的网络应用程序,和外界真实网络有交互,所构 造的虚拟网络和外界真实网络是需要进行同步的。
因此,国内专门针对路由进行仿真的^^术还比较罕见,国外在进行这方面研究的也 极少,涉及到路由仿真的只有网络模拟/仿真软件0PNET和NS2中的小部分功能。OPNET 和NS2的核心功能都是进行网络模拟,大多数讨论使用OPNET和NS2进行网络仿真的文 献仅仅是局限于模拟的范围之内,但是这两款软件也都有用于仿真(emulation)的模 块,可以与外界的真实网络相连接。为了突破硬件平台的性能限制,研究人员可以采 用分布式处理的方式,使用相应的并行模拟(PDES)机制,将数个单机版的仿真软件联 合起来完成一个仿真任务。但是这样做同时带来了并行处理协同性的问题和对仿真数 据控制有效性的问题。除了性能瓶颈的问题,现有技术只注重仿真网络中IP分组的转 发,而缺乏对路由分组的考虑,更极少涉及路由协议的交互特性。此外,现有的网络仿 真软件几乎都是建立在通用计算机平台之上。普通的CPU和操作系统对于网络数据流 的处理效率都比较低下,因此这些网络仿真软件的功能都受限于硬件平台的性能。而且,在网络数据传输和路由选择方面的研究需要搭建接近与真实网络的实验环境,使用 真实路白设备耗费大量资金,并且配置复杂繁琐。

发明内容
太发明的目的是提供一种基于硬件的大规模网络路由仿真方法,提出使用高性能专 用网络处理专用平台实现大规模网络路白仿真技术。
技术原理大规模网络路主仿真技术系统的主要思路是使月强大和专用的网络数据 处理器(如网络处理器、MIPS处理器等)来完成仿真任务。这类专用的网络数据处理 器是为^络应月领域设计的专后指令处理器,它具有以;的特征软件可编程能力;对 数据包处理流程的优化,以满足线速处理要求;可以接管很多原来由主CPU完成的管 理和控剖功能。后户在控制台配置所需的虚拟爽络拓扑结构、路由协议信息等参数,控 制台将生成配置文件,并将配置文件下发给硬件处理平台,硬件处理平台根据配置参数 进行路白的仿真,这包括运行路由协议、队歹C调度以及数据包转发处理等。?数据包 从源路由器穿越大规模网络路由仿真系统到达目的路由器就像穿越了一个真正的网络 一样,从两边的真实路由设各看进去和一个真实的寫络一样,真实的路H设备能够和大 规模网络路由仿真系统进行正常的路由信息交互,能够看到和真实网络环境一样的数据 包的丢失、延时、^r动等现象,而且真实路曰设备的时钟和大规模网络路由仿真系统的 时钟能够无缝衔接。所有这一切都是建立在装月专^网络数据处理器的强大数据处理能 力之上。
-. 仿真过程流程之前要有初始化过程。
仿真的初始化过程由网络性能的仿真、装载相应的QoS算法代码和虚拟路由表的 构建三个部分依次生成。 、
生成网络设备的仿真模型本质上就是内存中的一系列缓冲队列, 一个虚拟的数据包 在这些仿真模型之间的传递过程实际上就是处涅器将一个虚拟的数据包从一个设备所 对应的队列拷贝到另一个设备所对应的队列中;
装载相应的QoS算法代码指对仿真模型"的队列的范塞控制策略和从列之间的调
度策略需对应真实的网络设备的QoS特性。路由表为每一个进入仿真系统的数据包提供了一条穿过仿真网络的路径,它是根据 配置文件中提供的静态路由以及各个仿真设备所使用的路由协议产生的动态路由两者 合并生成的。
在初始化之后的仿真过程步骤如下
(1) 接收真实网络数据包
网络处理器接收来自网络中的数据包,存储在网络处理器的存储器中,并在其中构 '造相应的数据包描述信息;
数据包描述信息包括数据包的入口、存储地址、数据包偏移和大小等信息;最后在 存储器中存放相应的数据包指针,根据这个指针可以找到相应的数据包描述信息和数据 包的内容。那么,在数据包转发过程中只需拷贝数据包指针,而不用拷贝整个数据包。
(2) 真实数据包转化为用于仿真的虛拟包
将从网络中接收的真实数据包解封装,去掉二层的包头信息,修改数据包描述的偏 移地址;然后将数据包的指针拷贝到虚拟接收路由器的缓冲队列中,用于仿真数据包的 转发过程,这里称存储下来用于仿真的数据包为虚拟数据包。
(3) 在虚拟网络设备之间转发虛拟数据包
提取虚拟包的目的IP地址,用此IP地址去查找路由表,得到下一跳跳径和下一跳 路由器。如果下一跳路径是虚拟链路,则将数据包指针拷贝到下一跳路由器的缓冲内存
队列中,并使TTL值减1,返回步骤(3)继续查找转发,如此循环直到下一跳为真实的
物理接口;如果下一跳路径是是真实的物理接口,则转至第(4)步。在虚拟网络设备之 间转发虚拟数据包也就是在虚拟路由器内存队列之间转发虚拟数据包指针。在虚拟数据
包指针的插入队列过程中,根据配置的拥塞控制策略即可模拟路由器的QoS特性。 "(4)虚拟数据包转化为真实数据包进入真实网络
将虚拟数据包封装成真实网络的数据包,从正确的物理接口发送。根据下一跳的IP
地址则将数据包封装成帧,添加正确的源MAC地址和目的MAC地址,由于TTL的修改 重新计算并修改数据包包头的校验和值,并从此物理接口发送进入真实网络。
7有益效果
本发明申请所提供的大规模网络路由仿真技术具有多个优点
1、 处理性能高
使用专用网络数据包处s器解决传统网络仿真处理平台的性能瓶颈,为实现与真 实路由设备的无缝衔接提供足够的处理能力。
2、 提供可靠的虚实转换接口
大规模网络路由仿真系统可以代替真实网络中路由传输的中间段,能够与真实的 路由设备进行标准的路由信息交互。IP数据包在大规模网络路由仿真系统内部经历了 真实-虚拟-真实的转换,与穿越真实的网络是一样的。从两边的网络看进去大规模网络 路由仿真系统的硬件平台是看不到的,看到的只是一个由多级路由器组成的"真实" 的网络。
3、 可扩展性强
由于采用的是可编程的专用高性能网络数据处理器,真个系统釆用模块化设计, 核心的底层数据处理模块可以根据需要随时升级以满足不同需求。
4、 降低了成本,增强丁方便性和可操作性。
大规模网络路由仿真技术通过单硬件平台或多平台组合环境来仿真大规模网络的 路由行为,并实现虚拟时钟与真实时钟的无缝衔接,为实验和研究提供最接近真实网 络的环境,降低研究成本,并且提供一体化配置监控平台,方便配置及使用。大规模 网络路由仿真技术支持现有主要的路由协议,包括BGP、 OSPF、 RIP等,并提供扩展接 □。


图1是一种基于硬件的大规模网络路由仿真方法的软件组成结构图2是一种基于硬件的大规模网络路由仿真方法的工作流程图3是一种基于硬件的大规模网络路由仿真方法中的路由器在大规模网络路由仿
真系统中的仿真模型。
图4是一种基于硬件的大规模网络路由仿真方法的内部路由表结构;
具体实施例方式
现在结合

对发明内容进行进一步说明
从硬件连接角度来说,整个大规模网络路由仿真系统包括控制台和硬件处理平台两 个部分。控制台控制评测系统配置、运行状态监控、路由仿真报告生成;硬件处理平 台负责路由信息的交互、IP数据包在虚拟网络中的路由处理、虚拟网络中队列调度处 理以及与真实设备的无缝衔接等。原来完整的中间传输网络由大规模网络路由仿真系 统代替,大规模网络路由仿真系统仿真了整个中间传输网络的特性,包括路由交互、 路由选择、QoS策略以及链路的丢包和时延等特性。
从软件组成上来说,系统的结构如图所示
此系统主要由控制台子系统和硬件处理子系统两大组件构成。控制台子系统提供 与用户的交互界面,进行虚拟网络的拓扑配置、路由协议配置,并生成配置文件下发 给硬件处理平台子系统。控制台子系统还为用户提供系统的各项运行参数,根据用户 需要生成仿真测试报告。硬件处理平台子系统根据配置文件中的信息建立虚拟路由表 和路由器的仿真模型,对数据包进行传输仿真,完成真实-虚拟-真实的转换。
大规模网络路由仿真关键技术原理
大规模网络路由仿真系统能够模拟整个中间传输网络的特性主要关键技术包括 虚拟路由表的构建、网络性能仿真和拥塞控制策略三部分。
虚拟路由表的构建
仿真系统在初始化的过程中会根据已配置的静态路由以及仿真设备开启的路由协 议来生成路由表,这个路由表即包含了整个仿真网络中任意两点间的最短路径信息。 在仿真开始之后,用于仿真的虚拟设备之间的拓扑结构就不会再发生改变,因此,系
统并不会按照路由协议中规定的消息传递的方式完成路由表的收敛,而是直接以相应 路由协议使用的最短路径算法来完成路由表的生成工作。
对于实际的路由协议的实现而言,Bellman-Ford和Dijkstra算法两者有着比较大的 差别,但在本文所述的仿真系统中,运算路由表的目的仅是为了得到两个网络设备接口之间的最短路径,因此,也可以使用Dijkstra算法对启用了RIP协议的虚拟设备进行 最短路径的运算,只不过这时每条路径上的权重都是l。下面就简单叙述一下系统中采 用的Dijkstra算法的基本实现
(1) .假设用带权的邻接矩阵arcs来表示带权有向图,arcs[i][j]表示弧〈Vi, Vj〉上的
权值。若ai, Vj〉不存在,则置arcs[i][j]为oo。 S为己经找到从开始点V出发的 最短路径的终点的集合,它的初始状态为空集。那么,从V出发到图中其余各顶点 Vi可能达到的最短路径长度的初始值为-
外]=面["她(r)][!'] ,K e r
(2) 选择Vj,使得
£> W = M" {外'j IK = P _ 5}
Vj就是当前求得的一条从V出发的最短路径的终点。令
(3) 修改从V出发到集合V-S上任意顶点Vk可达的最短路径长度。如果式 成立,则修改^[H为
= Z)[小ara W [A]
(4) 重复操作(2)、 (3)共n-l次,可求得从V到图上其余各顶点的最短路径是依路径长 度递增的序列。
通过分析Dijkstra算法我们可以看出,在应用该算法时,只是记录下从出发点到 所有其它顶点的最短路径的长度。为了得到所有的最短路径,需要在依次得到最短路 径长度的同时记录下所有的最短路径,为此,需要增加存储结构记录下最短路径。改 进后的内部路由表示意图如图4所示。
为了达到伪装的真实性要求,网络拓扑伪装系统不仅要提供伪装拓扑信息,还要 与外部系统交互路由信息。本系统运行OSPF协议与外部路由器通信,学习外部路由协 议。同时,可以将整个虚拟网络的路由信息发送给外部的路由器,达到欺骗外部网络的目的。其主要方法是将内部仿真网络节点和网络链路的信息封装在LSA (链路状态通
告)数据包向外部网络通告。 网络性能仿真
IP连接性
本系统针对入侵者在信息收集阶段对主机和目标网络的探测方法,设计诱骗环境, 模拟真实路由器的主机响应行为,以到达迷惑入侵者的目的。主要包括三个方面
1、 对地址扫描的欺骗,主要是针对ping程序。
2、 对路由追踪的欺骗,主要是针对tracert程序。
3、 虚拟路由器的设计与实现,主要是模拟路由器对数据包的路由选择功能。 对真实的网络拓扑进行模拟,当使用tracert等工具进行网络探测时,会表现的和真
实的网络结构一致。
当系统接收到数据包时,该数据包会周游整个虚拟的网络拓扑,当数据包路由途中 经过一个虚拟路由器时,也会消耗该数据包的TTL,当一个数据包的下TTL为O时,也会 丢弃该数据包,并发送一个ICMP超时信息,该消息会包含使该包TTL减到O的路由器的正 地址。系统需要提供与虚拟的网络拓扑相符合的ICMP和路由协议信息以应对外部网络的 探测。这个工作需要比较强的事务处理能力,因此由网络处理器的Xscale核完成。 时延
通过网云的数据包的时延是通过使用网络处理器对数据包的缓存来实现的。图5是 路由表的结构,其中的第3项是所有选择该路由的数据包应当具有的时延。每个进入网 络处理器的数据包首先査询路由表,得到时延值之后,进入缓冲区等待出站。
对于传输时延,由数据包在缓冲队列之间的拷贝时间来模拟。
对于传播时延,本仿真系统采用网络处理器内部时钟来模拟传播时延。每个数据包 在网络处理器接收时,在数据包描述信息里加上接收时间;网络处理器轮询真实物理接 口的缓冲队列,将达到传播时延的数据包发送到真实网络。
对于处理时延,在大规模网络路由仿真系统中处理时延就被作为排队时延进行对 待。每个路由器的处理时延由査找路由表和缓冲队列的排队时延进行模拟。
本系统对时延的模拟主要集中在传播时延上,也就是对链路时延的模拟,主要是通过网络处理器对数据包的缓存来实现的。 拥塞控制
图3描述了一个路由器在系统中的仿真模型的实现,由缓冲队列(包括预先分配的内
存块和QoS策略),路由表,网络接口模型三部分组成,并且系统会分配一个硬件线程来
进行缓冲队列的维护工作。模型工作的主要流程是 一个虚拟的数据包由网络接口模型
接收后,进入缓冲区队列等待,管理线程根据加载的QoS策略决定这个数据包被转发的
:时间(或者被丢弃的概率),在数据包离开缓冲队列之后,由管理线程査找路由表,将它
转发给下一个路由器的仿真模型。IETF建议了多个服务模型和机制来满足IP QoS的需 求,如综合业务模型(Int-Serv),区分业务模型(Dif-Serv),多协议标记交换(MPLS)等。 但是对一个整体的IP QoS体系的仿真引入分布式处理的模式,利用多块硬件板卡并行处 理来增强处理能力。
根据不同的拥塞策略,各个缓冲队列执行相应的机制进行丢包。 一旦缓冲队列的数 据包数量达到溢出门限,可根据数据包的优先级以及QoS约定,有选取择地丢弃那些优 先级较低,不太重要的数据包。同时,由于有一定的缓冲余裕空间,可按随机时间分布 而不是同时丢弃所有的数据包,从而避免了网络的流量振荡。本系统采用了随机早期检 测(RED)的方法来实现拥塞控制,主要是加入了对于队列为空的时间段影响的考虑。 首先需要估计出在这段空闲期间内路由器能够传输的分组的个数m,空闲期结束之后, 路由器就认为在这个空闲其收到了m个分组,在此基础上计算当前的平均队列长度。当 某个路由器队列达到拥塞门限后,提前随机地丢弃接收的数据包。随机丢弃过程中,首 先设定随^l数产生范围和丢弃范围,然后为每个数据包在随机数产生范围内产生一个随 机数,如果该随机数处于丢弃范围之内,则丢弃该数据包。 '大规模网络路由仿真系统的工作流程如图2所示
仿真的初始化过程主要由网络性能的仿真、装载相应的QpS算法代码和虛拟路由 表的构建三个部分依次生成。网络设备的仿真模型本质上就是内存中的一系列缓冲队列 (分布在不同性能的存储器&), 一个虚拟的数据包在这些仿真模型之间的传递过程实 际上就是处理器将一个虛拟的数据包从一个设备所对应的队列拷贝到另一个设备所对 应的队列中;而这些队列的拥塞控制控制策略和队列之间的调度策略即对应了真实的网
12络设备的QoS特性。路由表为每一个进入仿真系统的数据包提供了一条穿过仿真网络
的路径,它是根据配置文件中提供的静态路由以及各个仿真设备所使用的路由协议产生 的动态路由两者合并生成的。
初始化过程流程如下用户在控制台配置网络拓扑图,并将拓扑配置传送给网络处 理器;网络处理器接收配置后,生成所有网络设置的仿真模型,完成为路由器分配内存
队列、计算链路时延等工作;根据控制台的拓扑配置的QoS策略,网络处理器从flash 装载相应的微码,装载由Xscale完成,Xscale将flash上的微码装载到内存供微引擎运 行;同时根据拓扑配置,由Dijkstra算法计算可以得到整个拓扑的最短路径树,从而生 成路由表。
仿真过程流程如下
1, 接收真实网络数据包
网络处理器接收来自网络中的数据包,存储在网络处理器的DRAM存储器中,并在 SRAM中构造相应的数据包描述信息。数据包描述信息包括数据包的入口、 DRAM存储 地址、数据包偏移和大小等信息。最后在SCRATCH存储器中存放相应的数据包指针, 根据这个指针可以找到相应的数据包描述信息和数据包的内容。那么,在数据包转发过 程中只需拷贝数据包指针,而不用拷贝整个数据包。 2, 真实数据包转化为用于仿真的虚拟包
将从网络中接收的真实数据包解封装,去掉二层的包头信息,修改数据包描述的偏 移地址。然后将数据包的指针拷贝到虚拟接收路由器的缓冲队列中,用于仿真数据包的 转发过程,这里称存储下来用于仿真的数据包为虚拟数据包。
3, 在虚拟网络设备之间转发虚拟数据包
提取虚拟包的目的IP地址,用此IP地址去查找路由表,得到下一跳跳径和下一跳 路由器。如果下一跳路径是虚拟链路,则将数据包指针拷贝到下一跳路由器的缓冲内存 队列中,并使TTL值减1,返回步骤(3)继续查找转发,如此循环直到下一跳为真实的 物理接口;如果下一跳路径是是真实的物理接口,则转至第(4)步。在虚拟网络设备之 间转发虚拟数据包也就是在虚拟路由器内存队列之间转发虚拟数据包指针。在虚拟数据 包指针的插入队列过程中,根据配置的拥塞控制策略即可模拟路由器的QoS特性。4, 虚拟数据包转化为真实数据包进入真实网络
将虚拟数据包封装成真实网络的数据包,从正确的物理接口发送。根据下一跳的IP
地址则将数据包封装成帧,添加正确的源MAC地址和目的MAC地址,由于TTL的修改 重新计算并修改数据包包头的校验和值,并从此物理接口发送进入真实网络。
本发明包括但不限于以上的实施例,凡是在本发明的精神和原则之下进行的任何局 部改进、等同替换或变形,都将视为在本发明的保护范围之内。
权利要求
1.一种基于硬件的大规模网络路由仿真方法,其特征在于仿真过程流程之前要有初始化过程;仿真的初始化过程由生成网络设备的仿真模型、装载相应的QoS算法代码和虚拟路由表的构建三个部分依次生成;生成网络设备的仿真模型本质上就是内存中的一系列缓冲队列,一个虚拟的数据包在这些仿真模型之间的传递过程实际上就是处理器将一个虚拟的数据包从一个设备所对应的队列拷贝到另一个设备所对应的队列中;装载相应的QoS算法代码指对以上提及的仿真模型中的队列的拥塞控制控制策略和队列之间的调度策略需对应真实的网络设备的QoS特性;路由表为每一个进入仿真系统的数据包提供了一条穿过仿真网络的路径,它是根据配置文件中提供的静态路由以及各个仿真设备所使用的路由协议产生的动态路由两者合并生成的;其特征还在于在初始化之后的仿真过程步骤如下(1)接收真实网络数据包网络处理器接收来自网络中的数据包,存储在网络处理器的存储器中,并在其中构造相应的数据包描述信息;数据包描述信息包括数据包的入口、存储地址、数据包偏移以及大小;最后在存储器中存放相应的数据包指针,根据这个指针找到相应的数据包描述信息和数据包的内容;(2)真实数据包转化为用于仿真的虚拟包将从网络中接收的真实数据包解封装,去掉二层的包头信息,修改数据包描述的偏移地址;然后将数据包的指针拷贝到虚拟接收路由器的缓冲队列中,用于仿真数据包的转发过程,这里称存储下来用于仿真的数据包为虚拟数据包;(3)在虚拟网络设备之间转发虚拟数据包提取虚拟包的目的IP地址,用此IP地址去查找路由表,得到下一跳跳径和下一跳路由器;如果下一跳路径是虚拟链路,则将数据包指针拷贝到下一跳路由器的缓冲内存队列中,并使TTL值减1,返回步骤(3)继续查找转发,如此循环直到下一跳为真实的物理接口;如果下一跳路径是是真实的物理接口,则转至第(4)步;在虚拟网络设备之间转发虚拟数据包也就是在虚拟路由器内存队列之间转发虚拟数据包指针;在虚拟数据包指针的插入队列过程中,根据配置的拥塞控制策略即可模拟路由器的QoS特性;(4)虚拟数据包转化为真实数据包进入真实网络将虚拟数据包封装成真实网络的数据包,从正确的物理接口发送;根据下一跳的IP地址则将数据包封装成帧,添加正确的源MAC地址和目的MAC地址,由于TTL的修改重新计算并修改数据包包头的校验和值,并从此物理接口发送进入真实网络。
2.根据权利要求1所述的一种基于硬件的大规模网络路由仿真 方法,其特征在于在虚拟路由表的构建中使用Dijkstra算法对启用 了 RIP协议的虚拟设备进行最短路径的运算时,每条路径上的权重都 是l。
3.根据权利要求1所述的一种基于硬件的大规模网络路由仿真方法,其特征在于网络性能的仿真指当系统接收到数据包时,该数据 包会周游整个虚拟的网络拓扑,当数据包路由途中经过一个虚拟路由器时,也会消耗该数据包的TTL,当一个数据包的下TTL为O时,也会 丢弃该数据包,并发送一个ICMP超时信息,该消息会包含使该包TTL 减到0的路由器的正地址;系统提供与虚拟的网络拓扑相符合的ICMP 和路由协议信息以应对外部网络的探测;这个工作由网络处理器的 Xscale核完成。
4.根据权利要求1所述的一种基于硬件的大规模网络路由仿真方 法,其特征在于装载相应的QpS算法代码中采用了随机早期检测的 方法来实现拥塞控制,指加入了对于队列为空的时间段影响的考虑; 首先需要估计出在这段空闲期间内路由器能够传输的分组的个数m, 空闲期结束之后,路由器在这个空闲收到了m个分组,在此基础上计 算当前的平均队列长度;当某个路由器队列达到拥塞门限后,提前随机地丢弃接收的数据包;随机丢弃过程中,首先设定随机数产生范围和丢弃范围,然后为每个数据包在随机数产生范围内产生一个随机 数,如果该随机数处于丢弃范围之内,则丢弃该数据包。.
全文摘要
本发明公开了提供一种基于硬件的大规模网络路由仿真方法,提出使用高性能专用网络处理专用平台实现大规模网络路由仿真技术。仿真的初始化过程由网络性能的仿真、装载相应的QoS算法代码和虚拟路由表的构建三个部分依次生成;仿真过程步骤如下首先,接收真实网络数据包,然后,将真实数据包转化为用于仿真的虚拟包,在虚拟网络设备之间转发虚拟数据包,并虚拟数据包转化为真实数据包进入真实网络。本发明申请所提供的大规模网络路由仿真方法处理性能高、提供可靠的虚实转换接口、可扩展性强、降低了成本,增强了方便性和可操作性。
文档编号H04L12/56GK101567818SQ20091013609
公开日2009年10月28日 申请日期2009年4月28日 优先权日2008年12月25日
发明者杨义先, 斌 武, 王秀娟, 赵建鹏, 郑康锋, 郭世泽, 钮心忻 申请人:中国人民解放军总参谋部第五十四研究所;北京邮电大学;北京工业大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1