一种仿真移动自组织网络的方法

文档序号:7652267阅读:237来源:国知局
专利名称:一种仿真移动自组织网络的方法
技术领域
本发明涉及了移动自组织网络技术,具体涉及一种仿真移动自组织网络的方法。
背景技术
移动自组织网络(Mobile Ad-hoc NETwork,MANET)是由可以任意移动的节点组成的自治系统,是一种拓扑动态变化的无线多跳网络。与已有的无线蜂窝网络(Cellular Networks)、无线局域网(Wireless LAN)相比,具有无需预先部署、随时随地组网、自组织和自维护等优点。
近年来,与移动自组织网络相关的协议研发持续火热,协议评估是网络协议设计开发过程中的重要环节,直接影响到网络协议设计开发的质量和效率。模拟、仿真和实景实验是三种主要的协议评估途径。
网络模拟器是在虚拟的网络上运行伪代码,具有成本低,可以提供便易的、可重复的实验场景设置,可扩展性好等优点,但真实性差,无法模拟移动自组织网络无线信道的物理特性。实景实验是在真实网络上运行真实代码,研究者设计开发的协议最终要在真实环境下运行,所以搭建实景环境进行协议评估很有意义。但实景实验很难得到重复的实验设置,而且由于移动自组织网络是一种无线多跳网络,所以需要较大的场地部署实景实验床,这也使得实景实验的成本很高。
仿真是在半真实的网络上运行真实代码,它追求协议运行的结果与实景实验相同,而且提供获得可重复实验设置的方法。可以说,仿真是结合了模拟的设置便易性、可重复性和实景实验真实性特点的第三种协议评估途径,具有良好的应用前景。
为了保证较好的无线链路传输特性仿真有效性,已有的移动自组织网络仿真平台通常使用射频信号衰减控制的方法压缩仿真平台的部署空间,降低部署成本,其中文献(H.Zhao,W.Yan,T.Zhao,and X Li,“WirelessMulti-hop Network Scenario Emulation with MinMax Error”,inProceedings of the 31st IEEE Conference on Local Computer Networks(LCN’06),Nov.2006,pp.949-951)提出一种针对任意移动自组织网络静态场景获得最佳仿真平台的算法,该算法的隐含前提是被仿真节点与仿真节点之间的对应关系不固定。但在实际应用中,仿真实验开始后,被仿真节点上的应用就运行在仿真实验床中的某个固定节点上,为了使实验持续进行,就要求在整个仿真实验过程中被仿真节点与仿真节点之间的对应关系保持不变,而仿真实验床中的节点位置固定,节点间的相对位置关系也固定,这些约束条件使得射频信号衰减控制方法对节点移动仿真的灵活性不足。
现有技术中有利用固定实验床仿真移动自组织网络的方法,该方法在大空间范围内部署大量轻量级仿真节点,这些节点仅需具备有线、无线数据包收发功能,无需运行复杂应用(包括路由协议),仿真实验中的所有应用都运行在一台主机上,任意时刻该主机上的每个应用都与一个轻量级仿真节点相对应,通过改变各应用与轻量级仿真节点的映射关系实现移动自组织网络仿真。显然,这种仿真方法需要大范围的部署场地和大量仿真节点,部署成本高,不宜推广;而且所有应用集中运行在一台主机上,这与移动自组织网络中应用运行的分布式特点不符。

发明内容
有鉴于此,本发明致力于提供一种仿真移动自组织网络的方法。
本发明的上述目的是通过如下的技术方案予以实现的一种仿真移动自组织网络的方法,包括a1)仿真平台由一个控制节点和若干个实验节点组成,将待实验的应用程序部署到每一个实验节点上,所述控制节点和所述实验节点通过高速交换机相连,每个实验节点上装有一块无线网卡和一块有线网卡,无线网卡与外接天线相连,在无线网卡和外接天线之间插入可调射频信号衰减器;b1)仿真实验准备过程中,为每个实验节点指定一个虚拟IP地址,供待实验的应用程序使用,在所述控制节点上对用户定制的移动自组织网络场景进行时间采样,产生移动自组织网络静态场景序列,并计算上述序列中每一静态场景对应的节点映射关系和衰减控制参量矢量,将各采样时刻的仿真节点映射关系和衰减控制参量矢量发送至全部实验节点,其中仿真节点映射关系表现为虚拟IP地址与实验节点的对应关系,即虚拟IP地址与对应实验节点无线网络接口IP地址和有线网络接口IP地址的对应关系,存储在应用-接口映射表中;c1)启动仿真实验后,每一采样时刻,所述控制节点向各实验节点发送当前采样时刻序号,所述实验节点根据当前采样时刻序号设置本节点衰减控制参量,并根据当前采样时刻节点映射关系对应用程序的IP数据包进行调度。
所述步骤c1之后进一步包括a2)实验节点对应用程序的IP数据包进行发送时,在IP包中保留原始IP包头信息;b2)如果原始IP包头中的源地址是虚拟地址,且该地址在应用-接口映射表中对应的无线网络接口IP属于本机,则将IP包标记为“实验床数据包”和“已经无线发送”,通过无线网络接口将它转发到原始IP包头中的目的地址在应用-接口映射表中对应的无线网络接口;c2)如果原始IP包头中的源地址是虚拟地址,且该地址在应用-接口映射表中对应的无线网络接口IP不属于本机,则将IP包标记为“实验床数据包”后,通过有线网络接口将它转发到原始IP包头中的源地址在应用-接口映射表中对应的有线网络接口。
所述步骤c1之后进一步包括a3)所述实验节点接收IP包头中标记为“实验床数据包”的IP数据包;b3)如果IP包未被标记为“已经无线发送”,则通过无线网络接口将该IP包发送至原始IP包头中的目的地址在应用-接口映射表中对应的无线网络接口;c3)如果IP包已被标记为“已经无线发送”,且原始IP包头中的目的地址在应用-接口映射表中对应的有线网络接口IP属于本机,则恢复原始IP包头后,将IP包传递到协议栈上层;如果IP包已被标记为“已经无线发送”,且原始IP包头中的目的地址在应用-接口映射表中对应的有线网络接口IP不属于本机,则通过有线网络接口将它发送到原始IP包头中的目的地址在应用-接口映射表中对应的有线网络接口。。
所述实验节点对数据包进行发送时,在路由协议前的处理步骤为a4)从网络协议栈上层获得即将发送出去的IP包;b4)如果IP包的源地址属于虚拟IP地址,则将原IP包扩展,预留空间;c4)将IP包交给下层协议。
所述实验节点对数据包进行发送时,在路由协议后的处理步骤为
a5)获得经过路由协议处理之后的IP包;b5)如果源地址不是虚拟IP地址,则对该IP包的调度结束,否则继续;c5)将IP包头复制到已预留的空间;d5)如果IP包源地址在应用-接口映射表中对应的无线网络接口IP属于本机,则转到e5;否则转到f5;e5)将IP包标识为“实验床数据包”和“已经无线发送”,源地址修改为本机无线网络接口IP,目的地址修改为原始IP包头中的目的地址在应用-接口映射表中对应的无线网络接口IP,然后转到g5;f5)将IP包标识为“实验床数据包”,源地址修改为本机有线网络接口IP,目的地址修改为原始IP包头中源地址在应用-接口映射表中对应的有线网络接口IP;g5)将IP包交给协议栈下层协议。
实验节点对数据包进行接收时,在路由协议前的处理步骤为a6)从网络协议栈下层获得收到的IP包;b6)如果IP包未被标记为“实验数据包”,则将该IP包直接传送到协议栈上层协议,对它的调度结束,否则继续;c6)如果IP包未被标记为“已经无线发送”,则找到原始IP包头中的目的地址,然后将IP包头的目的地址设为原始IP包头中的目的地址在应用-接口映射表中对应的无线网络接口IP,将IP包头的源地址设为本机无线网络接口IP,并将IP包标记为“已经无线发送”后,将IP包传递到协议栈上层,结束,否则继续;d6)此时IP包被标记为“已经无线发送”。如果原始IP包头中的目的地址在应用-接口映射表中对应的有线网络接口IP属于本机,则用内部保留的原始IP包头覆盖外部包头,重新计算整个IP包的校验值后,将它传递到协议栈上层;否则,将IP包头目的地址设为原始IP包头中的目的地址在应用-接口映射表中对应的有线网络接口IP,将IP包头的源地址设为本机有线网路接口IP,传递到协议栈上层。
实验节点对数据包进行接收时,在路由协议后的处理步骤为a7)获得经过路由协议处理的IP包;b7)如果IP包源地址是虚拟地址,则转到c7;否则转到d7;c7)压缩IP包,去掉b4步骤中预留的空间;d7)将IP包交给协议栈上层协议。
本发明具有如下技术效果射频信号衰减控制方法中存在隐含地要求被仿真节点与仿真节点映射关系保持不变的缺陷,使得该仿真方法对节点移动仿真的灵活性不足,无法满足用户定制实验场景的需求,其根本原因是运行在实验节点上的应用使用本机无线接口收发数据。本发明提出的应用-接口分离技术使得被仿真节点与实验节点映射关系固定,但被仿真节点与无线接口映射关系可变,在保证应用持续运行的同时,解决了射频信号衰减控制方法的缺陷,提升了对节点移动仿真的灵活性,使基于射频信号衰减控制的移动自组织网络能够允许用户定制实验场景。使用本发明进行移动自组织网络仿真实验时,应用依据起始采样时刻的节点映射关系被部署在仿真平台中的不同无线节点上,保持了移动自组织网络中应用分布运行的特点;采用射频信号衰减控制方法,既保证了较好的无线链路传输特性仿真有效性,又降低了部署成本;且采用应用-接口分离技术,也保证了较好的节点移动仿真有效性。


图1是本发明移动自组织网络的仿真平台硬件体系结构示意图;
图2是本发明仿真平台中控制节点软件体系结构示意图;图3是本发明仿真平台中实验节点软件体系结构示意图;图4是本发明射频信号衰减控制示意图;图5是实验节点对数据包进行发送时,在路由协议前的处理流程图;图6是实验节点对数据包进行发送时,在路由协议后的处理流程图;图7是实验节点对数据包进行接收时,在路由协议前的处理流程图;图8是实验节点对数据包进行接收时,在路由协议后的处理流程图;图9是Linux操作系统Netfilter框架的示意图。
具体实施例方式
下面结合附图和具体实施例对本发明进行详细说明。
图1是用于仿真移动自组织网络的仿真平台硬件体系结构,该平台由一个控制节点和若干实验节点组成,它们通过高速交换机相连。每个实验节点上装有一个无线网络接口,该网络接口通过SMA接口与外接天线相连,在无线网络接口和外接天线之间插入双SMA接口的可调射频信号衰减器,例如BOWEISZZ007程控步进衰减器。
图2是仿真平台中控制节点软件体系结构。“用户操作界面”向用户提供实验设置输入接口,该模块将用户定制的移动自组织网络场景时间采样后,将采样后的静态场景序列传送给“命令解释器”;“命令解释器”求解并输出各采样时刻静态场景对应的节点映射关系和衰减控制参量矢量,并将与该静态场景相关联的采样时刻、节点映射关系和衰减参量一同传给“规则生成器”;“规则生成器”根据来自“命令解释器”的输入,对采样时刻进行编号,生成“采样时刻编号、采样时刻序号”对应关系及“采样时刻序号、应用映射、接口映射、衰减参量矢量”格式的规则,各采样时刻的全部规则构成仿真实验中需要使用的规则序列;“规则分发器”在仿真准备过程中将该规则序列分发给所有实验节点,在仿真实验启动后,依据“采样时刻编号、采样时刻序号”对应关系,采用时钟驱动的方法在每一采样时刻到来时,向各实验节点发送当前采样时刻序号;“节点状态管理”模块负责接收来自实验节点的状态报告,通过规则生成器生成节点信息,上传给“节点信息管理”模块。
图3是仿真平台中实验节点软件体系结构,运行Linux操作系统。“规则接收器”接收来自控制节点的规则序列和最新采样时刻序号,并传给“规则解释器”;“规则解释器”根据收到的规则序列和当前采样时刻序号,向“衰减器控制”模块传送当前衰减参量值,向“配置文件生成器”发送当前应用映射和接口映射规则;“数据包调度器”根据配置文件(即当前应用映射和接口映射规则)对发往/收自无线网络接口和有线网络接口的数据包进行重新调度;“状态报告器”定时向控制节点的“节点状态管理”模块报告实验节点的运行状态。
图4是射频信号衰减控制示意图。虚线框内是衰减器及其外围电路组成的控制电路板,与图1中的“可调衰减器”模块对应,实现框内是实验节点机上的软件硬件模块,其中“衰减器控制”与图3中的“衰减器控制”软件模块对应,“无线网卡”是插在实验节点机上的无线网络接口,该网络接口的特点是通过SMA接口与天线相连。控制电路板通过实验节点机的USB接口供电;实验节点机上的衰减器控制模块通过串口向控制电路板发送控制数据,控制电路板上的CPU将来自实验节点机上的控制数据转换成可控制SZZ007衰减器的控制数据,从而控制衰减参量。
在仿真实验准备过程中,包括以下步骤
a)对用户定制的移动自组织网络场景进行时间采样,产生移动自组织网络静态场景序列;用户通过控制节点上的“用户操作界面”定制仿真实验需要的移动自组织网络场景,构成静态场景序列;b)求解上述序列中每一静态场景对应的节点映射关系和衰减控制参量;“用户操作界面”模块将静态场景序列传送给“命令解释器”,“命令解释器”计算每一静态场景对应的节点映射关系和衰减控制参量,并将与该静态场景相关联的采样时刻、节点映射关系和衰减参量一同传给“规则生成器”;“规则生成器”根据来自“命令解释器”的输入,对采样时刻进行编号,生成“采样时刻编号、采样时刻序号”对应关系及“采样时刻序号、应用映射、接口映射、衰减参量矢量”格式的规则,各采样时刻的全部规则构成仿真实验中需要使用的规则序列,具体格式参见f步骤中的例子;“规则生成器”将“采样时刻编号、采样时刻序号”对应关系和“采样时刻序号、应用映射、接口映射、衰减参量矢量”规则序列传给“规则分发器”;c)将各采样时刻的仿真节点映射关系和衰减控制参量发送至全部实验节点;“规则发送器”将“采样时刻序号、应用映射、接口映射、衰减参量矢量”规则序列发送至所有实验节点的“规则接收器”模块。
启动仿真实验后,包括以下步骤d)每一采样时刻,控制节点向各实验节点发送当前采样时刻序号;“规则分发器”依据“采样时刻编号、采样时刻序号”对应关系,采用时钟驱动的方法在每一采样时刻到来时,向各实验节点的“规则接收器模块”发送当前采样时刻序号。
e)实验节点根据当前采样时刻序号设置本节点衰减控制参量;“规则解释器”根据当前采样时刻序号,从“采样时刻序号、应用映射、接口映射、衰减参量矢量”规则序列中提取当前时刻本节点的衰减控制参量值并发送给“衰减器控制”模块,“衰减器控制”模块向图4虚线所示的控制电路板发送控制信号,调节SZZ007衰减器的控制参量;f)实验节点上的数据包调度模块根据当前采样时刻节点映射关系对应用程序数据包进行调度;“规则解释器”根据当前采样时刻序号,从“采样时刻序号、应用映射、接口映射、衰减参量矢量”规则序列中提取当前时刻应用映射和接口映射规则并发送给“配置文件生成器”,“配置文件生成器”生成应用-接口映射表,“数据包调度器”根据当前应用-接口映射表对发往/收自无线网络接口和有线网络接口的数据包进行重新调度;例如,下表所示一个具有三个节点的实验床系统的规则序列。

它表示在时刻1,节点1、2和3分别对应着位于节点1、2和3上的无线网络接口;到了在时刻2,节点2仍然使用自己节点上的无线网络接口,而节点1和3则互相使用对方机器上的无线网络接口传输;这样就仿真了1号和3号节点由于移动而互相交换了物理位置这样的动态场景。
当节点收到控制节点发送的时刻序号1时,就生成如下表所示的应用-接口映射表。


其中,“虚拟网络接口”IP表示用户的应用程序所使用的IP地址,并不代表一个实际的网络接口。“无线网络接口”和“有线网络接口”分别表示此时使用该虚拟接口的应用程序在无线网络中进行数据包收发所使用的无线接口,以及应用程序所在节点上的有线接口。IP地址中最后一部分相同的无线网络接口和有线网络接口,例如192.168.1.1和192.168.2.1,都位于同一个节点上,当节点收到控制节点发送的时刻序号2时,节点上的应用-接口映射如下表所示

g)在整个仿真实验过程中,步骤d~f循环执行,直至仿真实验结束。
在描述步骤f中的基于Linux操作系统的“数据包调度器”的算法之前,需要对两个关键问题进行说明。
第一个问题是,调度算法的实现方式,即如何将调度算法插入到系统中。在Linux操作系统的网络协议栈中实现了名为Netfilter的框架,允许内核态的程序在网络协议栈处理数据包的流程中的几个不同位置插入钩子函数,以便对数据包进行特定的处理。与本方法有关的钩子主要包含以下几个
NF_IP_LOCAL_OUT,表示数据包正在被发送且未经过路由协议处理;NF_IP_POST_ROUTING,表示数据包正在被发送且已经过路由协议处理;NF_IP_PRE_ROUTING,表示数据包正在被接收且未经过路由协议处理;NF_IP_LOCAL_IN,表示数据包正在被接收且已经过路由协议处理。因此,本方法将调度算法实现为模块,在各个钩子处注册处理函数后,插入到系统内核中,这样就能够实现对数据包发送和接收过程的细粒度控制,比如在路由程序处理之前或之后对数据包进行修改和调度。
第二个问题是该调度模块与现有TCP/IP协议栈的兼容性问题。需要考虑的问题主要包括,IP包头格式问题,IP分片问题,等等。针对IP包头格式问题,为了使调度工作不影响原有数据,下面的做法是使用“隧道”技术,将整个原IP包封装在新的包头中,到达目的地后再“拆封”;针对IP分片问题,下面的做法是,在网络的路由层程序对数据包处理之前(此时大数据包尚未经过分片),为IP包数据部分的每1456个字节多预留24字节的空间,其中20字节用于分片后填写新的IP包头,4字节是为了以后可能的扩展而预留的,到达目的地并“合片”之后,再将预留的空间去除。
调度过程分为对需要发送出去的数据包的调度和对从网络接口收到的数据包的调度两部分,其处理步骤分别阐述如下发送数据包调度fa)在路由程序处理之前,从网络协议栈上层获得即将发送出去的IP包;fb)如果IP包的源地址属于虚拟IP地址,则将原IP包扩展,在数据部分前面为每1456字节的数据预留24个字节的空间;fc)将IP包交给下层协议;fd)获得经过路由协议处理之后的IP包;
fe)如果源地址不是虚拟IP地址,则对该IP包的调度结束,否则继续;ff)将IP包头复制到fb中预留的空间的前面部分;fg)在应用-接口映射表中查找源地址对应的无线接口地址。如果该无线接口地址属于本机地址,则转到fh;否则转到fi;fh)将IP包外部包头(区别于f中复制到数据部分的IP包头)中的协议号修改为144(这是从尚未分配到特定协议的号码中任意选出的,用来表明该包属于“实验床数据包”,即经过封装,含有内部IP包头),目的地址修改为原目的地址对应的无线地址,TOS域设为1(表示该IP包经过了无线接口的传输过程,即前面提到的“经过无线发送”),该IP包对应的struct sk_buff结构的dev成员设为本机无线接口对应的struct net_device结构(通过系统函数__dev_get_by_name获得);调用系统函数ip_route_me_harder对IP包的路由进行计算,调用系统函数ip_send_check重新计算整个IP包的校验值,然后转到fj;fi)将外部包头的协议号修改为144,目的地址修改为其源地址对应的有线接口,该IP包对应的struct sk_buff结构的dev成员设为本机有线接口对应的struct net_device结构;调用系统函数ip_route_me_harder对IP包的路由进行计算,调用系统函数ip_send_check重新计算整个IP包的校验值;fj)将IP包交给协议栈下层协议。
在上述方案中,步骤fa~fc如图5所示,步骤fd~fj如图6所示。
在上述方案中,将fb步骤作为处理函数挂载到Netfilter的NF_IP_LOCAL_OUT处,即可在其被调用时自动获得fa步骤中所需的待发送IP数据包;fb步骤的处理函数返回NF_ACCEPT即可以完成c步骤。
在上述方案中,将fe~fi步骤作为处理函数挂载到Netfilter的NF_IP_POST_ROUTING钩子处,即可在其被调用时自动获得fd步骤中所需的经过路由协议处理的数据包;该函数返回NF_ACCEPT即可完成fj步骤。
在上述方案中,fb步骤包含以下步骤fb1)在应用-接口映射表中查找虚拟地址等于该IP包源地址的表项。如果找到,转fb2,否则转fc;fb2)用IP包头中记录的整个IP包长度减去IP包头本身的长度,得到数据部分的长度。然后用这个值除以1456并乘以24,得到数据包需要扩展的大小,如果除法计算余数不为零,需要在最后的结果中再加上24;fb3)使用skb_copy_expand系统函数复制并扩展原IP包,其指明扩展大小的参数设为fb2的计算结果。使用skb_put系统函数增大新IP包的数据部分长度,其指明扩展大小的参数也设为fb2的计算结果;fb4)将原IP包头复制到新数据包的头部;将原IP包的数据复制到新IP包的合适位置,其他位置用数字0填充;fb5)设置新IP包的长度为原IP包长度加上fb2的计算结果,使用ip_send_check函数重新计算新IP包的IP包头校验值;fb6)用新构建的IP包替换原IP包,使用kfree_skb系统函数将原IP包释放。
在上述方案中,步骤fb4包含以下步骤fb41)将原IP包头复制到新数据包的头部;fb42)将原IP包的数据部分看作k个部分,除了最后一个部分,其他每个部分由连续的1456个字节组成,第k个部分包含的数据在1个字节到1456字节之间。将这k个部分从原IP包分别复制到新IP包中以f(k)为起始的新位置上。f(k)表示新位置的第一个字节到新IP包数据部分第一个字节的距离(字节数),其公式为f(k)=1460*(k-1)+20。每次复制完一个部分的数据后,在新IP包中该部分之前的20字节和之后的4字节用数值0填充。
接收数据包调度fk)在路由程序处理之前,从网络协议栈下层获得收到的数据包;fl)如果IP包的协议号不是144,则将该IP包直接传送到协议栈上层协议,对它的调度结束。否则继续;fm)如果IP包头TOS域为0,则找到内部包头(协议号144能够保证内部包头的存在)中的目的地址,然后将外部包头的目的地址设为该地址对应的无线接口地址,源地址设为本机无线接口地址,TOS域设为1,该IP包对应的structsk_buff结构的dev成员设为本机无线接口对应的struct net_device结构,调用系统函数ip_route_me_harder对IP包的路由进行计算,并重新计算整个IP包的校验值后,将IP包传递到协议栈上层,结束。否则继续;fn)此时IP包头TOS域为1,找到内部包头目的地址。如果该地址对应的有线接口地址属于本机,则用内部包头覆盖外部包头,并将内部预留的24字节空间置为0,重新计算整个IP包的校验值后,将它传递到协议栈上层;否则,将外部包头目的地址设为这个有线接口地址,源地址设为本机有线接口地址,调用系统函数ip_route_me_harder对IP包的路由进行计算,并重新计算整个IP包的校验值后,传递到协议栈上层的路由协议;fo)获得经过路由协议处理的IP包;fp)如果IP包源地址是虚拟地址,则转到fq;否则转到fr;fq)压缩IP包,去掉内部包头和填充的部分;fr)将IP包交给协议栈上层协议,对该IP包的调度结束。
在上述方案中,步骤fk~fn如图7所示,步骤fo~fr如图8所示。
在上述方案中,将fl~fn步骤作为处理函数挂载到Netfilter的NF_IP_PRE_ROUTING处,即可在其被调用时自动获得fk步骤中所需的待发送IP数据包;该处理函数返回NF_ACCEPT即可以完成“传递到协议栈上层”操作,返回NF_DROP即可完成“丢弃该数据包”操作。
在上述方案中,将fp和fq步骤作为处理函数挂载到Netfilter的NF_IP_LOCAL_IN处,即可在其被调用时自动获得fo步骤中所需的经过路由协议处理的数据包;该函数返回NF_ACCEPT即可完成fr步骤。
在上述方案中,fq步骤包含以下步骤fq1)用IP包头中记录的整个IP包长度减去IP包头本身的长度,得到数据部分的长度。然后用这个值除以1480,得到分片个数,如果除法计算余数不为零,需要将个数加1;fq2)使用skb_copy_expand系统函数复制原IP包;fq3)将原IP包的数据复制到新IP包的合适位置;fq4)使用系统函数skb_trim设置新IP包的struct sk_buff结构的某些指针,其第二个参数取为原IP包长度减去24与分片个数的乘积;fq5)将IP头中的总长度设为新IP包的长度(即为q4中提到的的第二个参数),使用ip_send_check函数重新计算新IP包的IP包头校验值;fq6)用新构建的IP包替换原IP包,使用kfree_skb系统函数将原IP包释放。
在上述方案中,fq3分为以下步骤fq31)将原IP包的数据部分看作k个部分,k等于q1中求出的分片个数。除了最后一个部分,其他每个部分由连续的1460个字节组成,第k个部分包含的数据在1个字节到1460字节之间。
fq32)将这k个部分从原IP包分别复制到新IP包中以f(k)为起始的新位置上。f(k)表示新位置的第一个字节到新IP包数据部分第一个字节的距离(字节数),其公式为f(k)=1456*(k-1)+20。
综上所述,本发明公开了一种仿真移动自组织网络的方法。上面描述的应用场景和实施例,并非用于限定本发明,任何本领域技术人员,在不脱离本发明的精神和范围内,可做各种的更动和润饰,因此本发明的保护范围视权利要求范围所界定。
权利要求
1.一种仿真移动自组织网络的方法,包括a1)仿真平台由一个控制节点和若干个实验节点组成,将待实验的应用程序部署到每一个实验节点上,所述控制节点和所述实验节点通过高速交换机相连,每个实验节点上装有一块无线网卡和一块有线网卡,无线网卡与外接天线相连,在无线网卡和外接天线之间插入可调射频信号衰减器;b1)仿真实验准备过程中,为每个实验节点指定一个虚拟IP地址,供待实验的应用程序使用,在所述控制节点上对用户定制的移动自组织网络场景进行时间采样,产生移动自组织网络静态场景序列,并计算上述序列中每一静态场景对应的节点映射关系和衰减控制参量矢量,将各采样时刻的仿真节点映射关系和衰减控制参量矢量发送至全部实验节点,其中仿真节点映射关系表现为虚拟IP地址与实验节点的对应关系,即虚拟IP地址与对应实验节点无线网络接口IP地址和有线网络接口IP地址的对应关系,存储在应用-接口映射表中;c1)启动仿真实验后,每一采样时刻,所述控制节点向各实验节点发送当前采样时刻序号,所述实验节点根据当前采样时刻序号设置本节点衰减控制参量,并根据当前采样时刻节点映射关系对应用程序的IP数据包进行调度。
2.如权利要求1所述的仿真移动自组织网络的方法,其特征在于所述步骤c1之后进一步包括a2)实验节点对应用程序的IP数据包进行发送时,在IP包中保留原始IP包头信息;b2)如果原始IP包头中的源地址是虚拟地址,且该地址在应用-接口映射表中对应的无线网络接口IP属于本机,则将I P包标记为“实验床数据包”和“已经无线发送”,通过无线网络接口将它转发到原始IP包头中的目的地址在应用-接口映射表中对应的无线网络接口;c2)如果原始IP包头中的源地址是虚拟地址,且该地址在应用-接口映射表中对应的无线网络接口IP不属于本机,则将IP包标记为“实验床数据包”后,通过有线网络接口将它转发到原始IP包头中的源地址在应用-接口映射表中对应的有线网络接口。
3.如权利要求2所述的仿真移动自组织网络的方法,其特征在于所述步骤c1之后进一步包括a3)所述实验节点接收IP包头中标记为“实验床数据包”的IP数据包;b3)如果IP包未被标记为“已经无线发送”,则通过无线网络接口将该IP包发送至原始IP包头中的目的地址在应用-接口映射表中对应的无线网络接口;c3)如果IP包已被标记为“已经无线发送”,且原始IP包头中的目的地址在应用-接口映射表中对应的有线网络接口IP属于本机,则恢复原始IP包头后,将IP包传递到协议栈上层;如果IP包已被标记为“已经无线发送”,且原始IP包头中的目的地址在应用-接口映射表中对应的有线网络接口IP不属于本机,则通过有线网络接口将它发送到原始IP包头中的目的地址在应用-接口映射表中对应的有线网络接口。。
4.如权利要求2所述的仿真移动自组织网络的方法,其特征在于所述实验节点对IP数据包进行发送时,在路由协议前的处理步骤为a4)从网络协议栈上层获得即将发送出去的IP包;b4)如果IP包的源地址属于虚拟IP地址,则将原IP包扩展,预留空间;c4)将IP包交给下层协议。
5.如权利要求4所述的仿真移动自组织网络的方法,其特征在于实验节点对IP数据包进行发送时,在路由协议后的处理步骤为a5)获得经过路由协议处理之后的IP包;b5)如果源地址不是虚拟IP地址,则对该IP包的调度结束,否则继续;c5)将IP包头复制到已预留的空间;d5)如果IP包源地址在应用-接口映射表中对应的无线网络接口IP属于本机,则转到e5;否则转到f5;e5)将IP包标识为“实验床数据包”和“已经无线发送”,源地址修改为本机无线网络接口IP,目的地址修改为原始IP包头中的目的地址在应用-接口映射表中对应的无线网络接口IP,然后转到g5;f5)将IP包标识为“实验床数据包”,源地址修改为本机有线网络接口IP,目的地址修改为原始IP包头中源地址在应用-接口映射表中对应的有线网络接口IP;g5)将IP包交给协议栈下层协议。
6.如权利要求3所述的仿真移动自组织网络的方法,其特征在于实验节点对IP数据包进行接收时,在路由协议前的处理步骤为a6)从网络协议栈下层获得收到的IP包;b6)如果IP包未被标记为“实验数据包”,则将该IP包直接传送到协议栈上层协议,对它的调度结束,否则继续;c6)如果IP包未被标记为“已经无线发送”,则找到原始IP包头中的目的地址,然后将IP包头的目的地址设为原始IP包头中的目的地址在应用-接口映射表中对应的无线网络接口IP,将IP包头的源地址设为本机无线网络接口IP,并将IP包标记为“已经无线发送”后,将IP包传递到协议栈上层,结束,否则继续;d6)此时IP包被标记为“已经无线发送”。如果原始IP包头中的目的地址在应用-接口映射表中对应的有线网络接口IP属于本机,则用内部保留的原始IP包头覆盖外部包头,重新计算整个IP包的校验值后,将它传递到协议栈上层;否则,将IP包头目的地址设为原始IP包头中的目的地址在应用-接口映射表中对应的有线网络接口IP,将IP包头的源地址设为本机有线网路接口IP,传递到协议栈上层。
7.如权利要求6所述的仿真移动自组织网络的方法,其特征在于实验节点对IP数据包进行接收时,在路由协议后的处理步骤为a7)获得经过路由协议处理的IP包;b7)如果IP包源地址是虚拟地址,则转到c7;否则转到d7;c7)压缩IP包,去掉b4步骤中预留的空间;d7)将IP包交给协议栈上层协议。
全文摘要
本发明公开了一种仿真移动自组织网络的方法,属于移动自组织网络技术。该方法利用应用-接口分离技术,将被仿真节点与实验节点映射关系固定,实验节点根据该节点映射关系对应用程序的数据包进行调度,实现移动自组织网络的仿真。本发明将采样时刻的节点映射关系部署在仿真平台中的不同无线节点上,保持了移动自组织网络中应用分布运行的特点,同时将该技术与射频信号衰减控制相结合,可获得对移动自组织网络中无线链路传输特性和节点移动两大特点的高仿真有效性,既保证了较好的无线链路传输特性仿真有效性,又降低了部署成本。
文档编号H04L29/06GK101051874SQ20071009938
公开日2007年10月10日 申请日期2007年5月18日 优先权日2007年5月18日
发明者赵慧周, 辜新星, 严伟, 赵通, 李晓明 申请人:北京大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1