首页> 中国专利> 一种面向QualNet网络半实物仿真的实物接入方法

一种面向QualNet网络半实物仿真的实物接入方法

摘要

本发明涉及一种面向QualNet网络半实物仿真的实物接入方法,属于网络仿真技术领域。本方法同时支持隧道模式和解析模式,在隧道模式中,通过对真实数据包添加虚拟的IP报文头,可使真实数据包顺利通过虚拟网络,简洁有效;在解析模式中,实物接口通过引入数据包转化模块,实现真实节点同虚拟节点在网络协议上的交互,具有更好的扩展性。对真实节点不做任何改动,实物接口的所有功能均在仿真服务器上加以实现,减小了对真实节点的限制,提高了使用灵活性。

著录项

  • 公开/公告号CN103200190A

    专利类型发明专利

  • 公开/公告日2013-07-10

    原文格式PDF

  • 申请/专利权人 北京理工大学;

    申请/专利号CN201310098333.8

  • 申请日2013-03-26

  • 分类号H04L29/06(20060101);

  • 代理机构

  • 代理人

  • 地址 100081 北京市海淀区中关村南大街5号

  • 入库时间 2024-02-19 19:33:17

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2015-12-09

    授权

    授权

  • 2013-08-07

    实质审查的生效 IPC(主分类):H04L29/06 申请日:20130326

    实质审查的生效

  • 2013-07-10

    公开

    公开

说明书

技术领域

本发明涉及一种面向QualNet网络半实物仿真的实物接入方法,属于网 络仿真技术领域。

背景技术

在网络半实物仿真系统中,需将仿真软件构建的虚拟网络同真实网络设 备互联起来,需要高效的实物接口实现两者的关联。

网络的研究中普遍采用了实物实验法和软件仿真法。实物实验法中,实 验对象在真实物理平台上运行,具有较高的精度;但构建全尺度实物实验平 台代价高昂,且进行大量重复试验是困难的。软件仿真法具有较好的灵活性 和可控性,但不能直观展示真实设备、应用在特定网络环境下的实际性能。 为将实物实验法和软件仿真法有效结合,国内外研究机构提出了网络半实物 仿真的方法。所谓网络半实物仿真,就是在由仿真软件构建的虚拟网络中引 入真实设备,使真实应用程序、协议或硬件参与到网络仿真中。真实协议栈 和应用程序在不做任何修改的情况下运行,其产生的数据流流入或流出虚拟 网络。这种方法将真实网络协议栈和应用程序同仿真软件在构建网络场景上 的灵活性有机结合在一起,为大规模网络研究提供了有效手段,当前得到了 广泛应用。

构建网络半实物仿真系统,一方面需要具有高保真度和实时运行能力的 网络仿真软件;另一方面需要高效的实物接口以将真实数据包注入和导出虚 拟网络。根据注入虚拟网络的真实数据包是否对虚拟网络透明,可以将网络 半实物仿真划分为两类:

隧道模式:真实数据包对虚拟网络是不透明的,虚拟节点不能解析、识 别真实数据包中的协议字段。

解析模式:虚拟节点能够解析、识别真实数据包中的协议字段,能够实 现真实节点同虚拟节点在协议上的交互。

在“隧道模式”网络半实物仿真系统中,当数据包从真实节点发出并进 入虚拟网络时,实物接口并没有对真实数据包进行格式转换。真实数据包在 虚拟网络中可能被丢掉、延迟、重排序、甚至复制,但由于数据包并未被解 析,虚拟节点不能完成与协议字段相关的操作。因此,这种模式只能构建“真 实节点–虚拟网络–真实节点”的仿真场景。而在“解析模式”网络半实物 仿真系统中,虚拟节点能够识别和处理真实数据包的协议字段,能够实现真 实节点同虚拟节点在网络协议上的交互。两种模式的接入方式各有优劣,“隧 道模式”简单方便,具有较高的接入效率;而“解析模式”能够将真实网络 同虚拟网络跟紧密的结合起来,具有更好的扩展性。

QualNet作为当前广泛使用的网络仿真软件具有较高的保真度和良好的 扩展性,同时也提供了实物接口以支持真实设备的接入,方便构建网络半实 物仿真系统。其提供的实物接口通过构建真实节点同虚拟节点一对一的映射 关系来将真实节点嵌入虚拟网络。使用QualNet构建虚拟网络,然后将虚拟 节点A映射到真实节点B上,A与B形成一个真实节点-虚拟节点对(LVP),其 中真实节点B用LVP-L表示,而A为B在虚拟网络中的影子节点,用LVP-V表示。 仿真中,真实节点B发出的数据包,会从虚拟节点A进入虚拟网络;同样虚拟 网络中到达A的数据包,也会流向B,这样A和B从网络行为上看恰如同一个节 点。为实现上述功能,QualNet提供了IPNE(IP network emulation,IP网 络模拟)接口。IPNE支持三种工作模式:NatOn,NatYes,TrueEmulation,其 中NatOn和NatYes工作于“隧道模式”,而TrueEmulation则采用了“解析 模式”。如图1所示,IPNE通过隧道模块将真实节点同仿真服务器相连,通 过常规处理模块实现真实数据包导入和导出虚拟网络。在实际工作过程中, 真实节点产生的数据包通过安装在真实节点上的隧道处理模块封装后,发给 仿真服务器;仿真服务器通过隧道处理模块解封收到的真实数据包,然后将 其注入虚拟网络;同样的,虚拟网络导出的数据包,经过仿真服务器上的隧 道处理模块封装后发给真实节点,真实节点解封后即可识别、处理此数据包。 如此便将真实节点同仿真服务器构建的虚拟网络互联到来。QualNet的改进 版本EXata,进一步增强了上述实物接入能力,但方法上基本保持一致。

Qualnet提供的实物接口在一定程度上能够将真实网络设备接入虚拟 网络,但其灵活性和扩展性受到了限制。IPNE工作于TrueEmulation模式时, 需要对节点进行手动配置静态路由,不能实现真实节点自动接入虚拟网络, 增加了仿真的复杂性,尤其是在虚拟网络规模较大时,手动配置静态路由是 困难的。而EXata只支持解析模式接入功能,且必须在真实设备上安装相应 的管理软件才能将真实节点接入虚拟网络,考虑到真实设备的多样性和使用 权限的问题,限制了EXata网络半实物仿真系统的适用性。

发明内容

本发明的目的是为解决现有技术的扩展性和灵活性较差的问题,提出一 种面向QualNet网络半实物仿真的实物接入方法,能够同时支持隧道模式和 解析模式,且不用对真实节点做任何改动,即可将真实节点接入QualNet构 建的虚拟网络,构建网络半实物仿真系统,具有较好的扩展性和灵活性。

本发明的目的是通过如下技术方案实现的。

步骤1,场景配置。

首先使用QualNet构建虚拟网络,将真实网络设备(LVP-L)同仿真服务 器通过以太网相连。然后,通过配置文件的方式构建真实节点同虚拟节点一 对一的映射关系(LVP),此配置文件中必须含有如下信息:

(1)声明同真实节点建立映射关系的虚拟节点为影子节点(LVP-V), 并指明接入模式,其中接入模式选择为隧道模式或解析模式;所述LVP-V具有 网络节点的各个协议层;

(2)为每一对LVP指明一个LVP-Bridge(真实节点接入仿真服务器的桥 接端口,为仿真服务器上的某有线网卡),多对LVP能共享一个LVP-Bridge。

步骤2,初始化。

运行QualNet,QualNet开始读取配置文件,为每一对LVP进行如下初始 化工作:

1)为使QualNet截取LVP-L发送的数据包,需对每一对LVP分配一个“数 据包抓取模块”。所述“数据包抓取模块”包括“数据包过滤器”,“数据 包缓存”。“数据包过滤器”筛选来自LVP-Bridge的数据包,将符合相应“筛 选规则”的数据包放置到相应的“数据包缓存”中。不同LVP工作模式下的 筛选规则不同:

隧道模式中,筛选规则为“只接受源IP地址为LVP-L且目的地址为仿真 服务器的IP数据包”;

解析模式中,筛选规则为“只接受LVP-L发送的数据包(即链路层数据 包)”。

2)为使QualNet将数据包发送给LVP-L,需对每一对LVP分配一个“数据 包构建模块”。所述数据包构建模块根据LVP-V收到的虚拟数据包,构造相 应的真实数据包,从LVP-Bridge发给LVP-L。

3)特别的,在解析模式时,关闭LVP-VIP及其上层协议的仿真功能,仅 保留其链路层和物理层仿真功能。

初始化完成后,QualNet将各LVP以链表的形式组织起来,以便于依次访 问各LVP。

步骤3,将真实数据包注入虚拟网络。

由于真实数据包同虚拟数据包在格式上(如字节序、对齐方式)有所不 同,为使QualNet能够识别真实数据包,实物接口对以下网络协议提供解析 功能:RIP,PIM,OSPF,OSLR,AODV,UDP,TCP,ICMP,IGMP,ARP,IP。 所述网络协议的解析函数按照协议标准对真实数据包的各协议字段进行解 析、识别。

仿真运行后,QualNet工作于实时模式,虚拟网络同真实网卡保持时间 同步。LVP-L发送的数据包,经过“数据包过滤器”的筛选后被放置在相应 的“数据包缓存”中。QualNet设置定时器,定时器超时周期为T。每隔时间 T,仿真器遍历一次LVP链表,将每一对LVP的“数据包缓存”中的数据包依 次读出。每读取一个真实数据包,实物接口根据LVP所处的工作模式分别进 行如下处理:

若LVP工作于隧道模式:

步骤3.a.1,只抓取IP数据包,帧结构中的协议类型字段为IP协议类型, 否则报错。

步骤3.a.2,创建一个新的IP数据包,并将步骤3.a.1所抓获数据帧中的 IP报文(包括IP报头)原封不动的复制到新创建的IP数据包中,然后加上新 的IP报头。新报头字段中源IP地址、目的IP地址、生存时间(TTL)按照真 实数据包IP相应字段进行设置,而协议类型字段设置为当前网络协议未采用 的协议编号(IPPROTO_LVP)。通过IPPROTO_LVP能识别新建IP数据包是虚拟 数据包或者来自真实网络。LVP-V收到新建IP数据包后,若识别为虚拟数据 包则将其上交上层协议,若识别为来自真实网络,则将其发送到真实网络中。

步骤3.a.3,将步骤3.a.2新建的IP数据包插入到相应LVP-V的IP发送队 列中。

若LVP工作于解析模式:

步骤3.b.1,抓取链路层数据帧,解析数据帧的头部,根据其中“协议 类型”字段判定上层报文的类型。若是IP报文,则调用IP报文解析函数进行 识别;若是ARP报文则调用ARP报文解析函数进行识别。

步骤3.b.2,IP报文解析函数根据IP报文头部中的“协议类型”字段判 定上层报文的类型。若是TCP报文,则调用TCP报文解析函数进行识别;若是 UDP报文则调用UDP报文解析函数进行识别;若是ICMP报文,则调用ICMP报文 解析函数进行识别;若是IGMP报文则调用IGMP报文解析函数进行识别。

步骤3.b.3,UDP报文解析函数根据UDP报文头中“端口号”判定上层报 文的类型。若是RIP报文,则调用RIP报文解析函数进行识别;若是AODV报文 则调用AODV报文解析函数进行识别;若是OSPF报文,则调用OSPF报文解析函 数进行识别;若是OLSR报文则调用OLSR报文解析函数进行识别。

步骤3.b.4,上述解析完成后,QualNet创建一个新的虚拟数据包,并根 据步骤3.b.2和步骤3.b.3解析获得的数据包各字段的内容,设置虚拟数据包 的各协议字段。

步骤3.b.5,把所创建虚拟数据包插入到相应LVP-V的MAC层发送队列中。

步骤4,数据包导出虚拟网络。

在虚拟网络中,虚拟数据包到达LVP-V时,根据LVP所处的工作模式, 分别进行以下操作:

若为隧道模式:

LVP-V收到数据包后,若自身为此数据包的目的节点且数据包以 IPPROTO_LVP作为标记,表明此数据包需要发送给真实网络,去掉虚拟数据 包IP头部后,IP负载即为源真实数据包,使用先前分配给LVP的“数据包构 造模块”将其发给真实网络。

若为解析模式:

LVP-V不再将此链路层数据包上交本虚拟节点的上层协议,而是调用LVP 的“数据包构造模块”,根据此虚拟数据包构造链路层真实数据包。然后将 此真实数据包通过LVP-Brideg发送给LVP-L,由真实节点接收、识别、处理 此数据包。

有益效果

本发明的接入方法与现有技术相比,具有以下优点:

1.同时支持隧道模式和解析模式,以方便用户根据具体仿真任务灵活 构建网络半实物仿真系统。在隧道模式中,通过对真实数据包添加虚拟的IP 报文头,可使真实数据包顺利通过虚拟网络,简洁有效;在解析模式中,实 物接口通过引入数据包转化模块,实现真实节点同虚拟节点在网络协议上的 交互,具有更好的扩展性。

2.对真实节点不做任何改动(即不需要进行复杂的路由配置或安装额 外的管理软件)。实物接口的所有功能均在仿真服务器上加以实现,仿真服 务器将网卡置于混杂模式,通过“数据包抓取模块”即可获取真实节点发送 的数据包,进而将其注入虚拟网络,而不需在真实节点上安装隧道管理模块, 减小了对真实节点的限制,提高了使用灵活性。

附图说明

图1为背景技术中的IPNE结构图;

图2为本发明的面向QualNet网络半实物仿真的实物接入方法流程图;

图3为本发明的接入方法中真实数据包注入虚拟网络的流程示意图。

具体实施方式

为了更好的说明本发明的目的和优点,下面结合附图和实施例对本发明 内容作进一步说明。

本实施方式中采用pcap构建“数据包抓取模块”,采用libnet作为“数 据包构建模块”。具体的接入方法为:

步骤一,场景配置。

首先使用QualNet构建虚拟网络,将真实网络设备同仿真服务器通过以 太网相连。然后,通过配置文件的方式构建真实节点同虚拟节点一对一的映 射关系(LVP),此配置文件中必须含有如下信息:

(1)声明同真实节点建立映射关系的虚拟节点为影子节点(LVP-V), 并指明接入模式,其中接入模式可选隧道模式或解析模式;

(2)为每一个LVP指明一个LVP-Bridge(真实节点接入仿真服务器的桥 接端口,为仿真服务器上的某有线网卡),多个LVP能共享一个LVP-Bridge。

步骤二,初始化每一对LVP。

运行QualNet,QualNet开始读取配置文件,为每一对LVP进行如下初始 化工作:

如果该LVP采用隧道模式:

(1)LVP-V在其LVP-Bridge上分配一个libnet句柄,pcap句柄;

(2)将此LVP插入到LVP链表中;

(3)设置pcap的过滤器,只接受源IP地址为LVP-L且目的地址为仿真服 务器的IP层数据包。

如果该LVP采用解析模式:

(1)关闭LVP-VIP及其上层协议的仿真功能,仅保留其链路层和物理 层仿真功能;

(2)LVP-V在其LVP-Bridge上分配一个libnet句柄,pcap句柄;

(3)将此LVP插入到LVP链表中;

(4)设置pcap的过滤器,只接受LVP-L发送的数据包(链路层数据包)。

初始化完成后,实物接口构建了一个LVP的链表,其中每一个LVP具有一 个libnet句柄、pcap句柄、pcap缓存,其中libnet句柄用于构建真实数据 包,pcap句柄用于读取pcap缓存中的数据包。如图3中间部分所示。

步骤三,真实数据包注入虚拟网络

仿真运行后,QualNet工作于实时模式,虚拟网络同真实网卡保持时间 同步。如图3所示,LVP-L发送的数据包,经过LVP-Bridge和pcap过滤器, 被缓存在相应的pcap缓存中。QualNet设置定时器,定时器超时周期为T。每 隔T,仿真器遍历LVP链表,依次调用LVP的pcap句柄,将其pcap缓存中的数 据包全部读出。每读取一个真实数据包,实物接口根据LVP所处的工作模式 分别进行如下处理.

若LVP工作于隧道模式:

(1)只抓取IP层数据包,所以帧结构中的协议类型字段应为IP协议类 型,否则报错。

(2)创建一个新的数据包仿真事件,并将所抓获数据帧中的IP报文包 括IP报头原封不动的复制到新创建的数据包事件中,然后加上新的 IP报头。新报头字段中源IP地址、目的IP地址、TTL等按照真实数 据包IP字段进行设置,而协议类型设置为当前网络协议还未采用的 协议编号(IPPROTO_LVP),通过此字段即可识别哪些IP数据包是 虚拟数据包,哪些来自真实网络。LVP-V收到IP数据包后,根据此 字段决定是将此数据包上交上层协议实体,还是将其发送到真实网 络中。

(3)将新建的IP报文插入到此LVP-V的IP发送队列中。如此便将真实 数据包注入虚拟网络。

若LVP工作于解析模式:

对此数据包(链路层)进行格式调整(包括字节序调整、字节对齐等), 创建相应的仿真事件并插入到该LVP-V的MAC层发送队列中。这个过程需要 对数据包进行协议解析和重构建,这一工作需通过协议解析单元来完成。以 RIP报文的处理为例:

(1)实物接口首先解析802.3数据帧的头部,发现上层协议为IP报文, 则进一步解析IP报文头部的各个字段;

(2)由于数据包IP头部的协议字段为UDP,数据包去掉IP头部后被 送给UDP协议解析单元;

(3)此单元解析UDP报文头部,根据端口号可以确定该报文为RIP路 由交互报文,去掉UDP头部后将其送往RIP协议解析单元;

(4)RIP协议解析单元首先对RIP数据包进行解析,然后创建了一个仿 真事件,同时为此仿真事件分配一个虚拟数据包,并根据所解析的 RIP信息,构建虚拟RIP报文。

(5)根据先前解析的报文头部(UDP、IP),在此虚拟报文上增加UDP 报文头和IP报文头,所加的报文头都是按照仿真软件内部要求进行 的。

(6)最后,根据LVP-V的类型,在虚拟IP数据包的基础上增加链路层头 部,并将此虚拟数据包插入到LVP-V的MAC层发送队列中。

实物接口对以下网络协议提供了解析功能:RIP,PIM,OSPF,OSLR, AODV,UDP,TCP,ICMP,IGMP,ARP,IP。

步骤四,数据包导出虚拟网络

在虚拟网络中,虚拟数据包到达LVP-V时,根据LVP所处的工作模式, 分别进行以下操作:

若为隧道模式:

LVP-V在IP层收到数据包文后,若自身为此数据包的目的节点且数据包 以IPPROTO_LVP作为标记,表明此数据包需要发送给真实网络,去掉虚拟数 据包IP头部后,IP负载即为源真实数据包,使用先前存储在LVP中libnet 句柄将其发给真实网络,否则按原仿真流程处理数据包。

若为解析模式:

LVP-V不再将此数据包(链路层)上交本虚拟节点的上层协议,而是调 用LVP的libnet句柄,根据此虚拟数据包构造真实数据包(链路层)。然后 将此真实数据包通过LVP-Brideg发送给LVP-L,真实节点即可接收、识别、 处理此数据包。

本实施例中,按照上述方法,采用QualNet-5.02linux版本,libnet 1.1.4.2,libpcap1.1.1.2版本进行实现。

1)配置文件采用如下格式:

LVP YES

[NODE ID] LVP-BRIDGE eth0

[NODE ID] LVP-LEVEL 1

其中LVP YES表示启用实物接入功能。其中,NODE ID为节点号,即指 明该节点将作为LVP-V被映射到真实节点上;LVP-BRIDGE eth0指定了真实 节点同仿真服务器的连接端口(服务器的网卡);LVP-LEVEL指定了LVP的 工作模式,1表示隧道模拟,2表示解析模式。

2)将定时器超时周期T设为1毫秒。

3)将IPPROTO_LVP设为253。

实施例1:

1、使用QualNet构建虚拟网络,虚拟网络中放置5个虚拟节点,它们的 拓扑关系为1-2-3-4-5。其中,1号节点、5号节点以隧道模式作为LVP-V分别 映射到两台同仿真服务器相连的真实主机上。配置文件如下:

LVP YES

[1]LVP-INTERFACE[0] eth0

[1]LVP-LEVEL[0] 1

[5]LVP-INTERFACE[0] eth0

[5]LVP-LEVEL[0] 1

2.启用QualNet。

3.从某个LVP-L向另一个LVP-L传输文件。在文件传输的过程中,杀死或 激活虚拟网络中某个中间节点(2、3、4号节点),观测到文件传输速率随 着虚拟网络的变化,发生相应的改变。说明,实物接口可以将真实网络流量 注入和导出虚拟网络,且虚拟网络影响了真实网络流量的性能。

实施例2:

1.使用QualNet构建虚拟网络,虚拟网络中放置5个虚拟节点,它们的 拓扑关系为1-2-3-4-5。其中,3号节点以解析模式作为LVP-V映射到同仿真 服务器相连的某个真实主机上。配置文件如下:

LVP YES

[3]LVP-INTERFACE[0] eth0

[3]LVP-LEVEL[0] 2

2.运行QualNet,启动半实物仿真。

3.在LVP-L上,使用ping测试其同虚拟网络中1号节点的连通性。发现 LVP-L能够收到并识别1号虚拟节点的回复报文。说明,实物接口不仅能够将 真实报文注入、导出虚拟网络,同时还对报文进行了相应的解析工作,使得 真实节点同虚拟节点能够进行协议上的交互。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号