CN107786684B - 一种移动自组网地址自动分配协议在ns2中的模拟仿真方法 - Google Patents
一种移动自组网地址自动分配协议在ns2中的模拟仿真方法 Download PDFInfo
- Publication number
- CN107786684B CN107786684B CN201710893457.3A CN201710893457A CN107786684B CN 107786684 B CN107786684 B CN 107786684B CN 201710893457 A CN201710893457 A CN 201710893457A CN 107786684 B CN107786684 B CN 107786684B
- Authority
- CN
- China
- Prior art keywords
- address
- agent
- message
- network
- protocol
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/50—Address allocation
- H04L61/5046—Resolving address allocation conflicts; Testing of addresses
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W24/00—Supervisory, monitoring or testing arrangements
- H04W24/06—Testing, supervising or monitoring using simulated traffic
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
Description
技术领域
本发明涉及一种在NS2(Network Simulator 2)中模拟实现移动自组网地址自动分配的方法。
背景技术
移动自组网所具有的节点独立、无中心以及动态多跳等特性,使得其在军事应用、个人通信、灾难现场的救援和无线传感器网络等领域应用广泛。目前,移动自组网络的研究热点之一是如何有效地发现路由并建立系统路由表,所提出的协议主要分为主动式(或称表驱动式)、按需式(或称响应式)。表驱动路由协议中节点均维护一张包含到达目的节点路由信息的路由表,并根据网络拓扑的变化实时更新路由表,以尽量准确反映网络的拓扑结构正确路由。在按需驱动路由协议中,节点不需要实时更新维护路由信息,当需要时才查找并更新路由信息。
不论采用何种协议,在进行正常的路由通信前,网络中的节点需要首先配置有效的网络层地址,传统的地址配置协议采用的是类似服务器-客户端的结构,由固定的服务器来分配网内节点的地址,然而在移动自组网络中并不存在固定的中心节点来实施地址分配处理,同时,伴随着节点的加入、子网合并等而导致网内节点可能出现地址冲突的问题。因此,需要针对移动自组网络区别于传统无线网络的特点,研究相应的地址配置以及冲突解决的协议与算法。
针对预先分配网络地址不适用的场景,近些年来,业界提出了不少可用于移动自组网络的地址自动配置的方案,这些方案可以分为以下三类:1)基于冲突地址检测的分配机制;2)基于节点分层的地址分配机制;3)基于邻居代理的分配机制。还有一些方法难于归类,例如WeakDAD算法等,由于需要修改路由协议,降低了这类方法的实用性。
总体而言,设计、分析移动自组网络中的地址分配协议时,主要考察下面几类指标:
(1)可靠性:能够保证网络中不出现冲突地址,能够很好适应子网合并、拆分等拓扑变化;
(2)时效性:从开始时到完成配置过程所需要的时间尽量短;
(3)稳定性:在运行期间不应经常性地改变节点的地址导致正在进行的通信被打断;
(4)高效性:在配置过程中占用较少的计算开销及通信开销;
(5)地址回收:节点离开网络后,其使用的地址是否能够回收以备后续再次分配。
为了分析、验证上述指标,通常需要通过组建实际的网络或者基于模拟仿真平台进行,然而受限于成本、物理等因素,往往无法采用大规模的节点,对于网络的规模以及结果记录存在诸多限制;另一方面网络模拟仿真平台通常是面向传统互联网的,缺乏对该类协议仿真的支持,针对该问题,本文提出通过扩展NS2来实现对自动分配类协议模拟仿真的通用方案。
发明内容
本发明要解决的技术问题是克服现有技术的不足,提供一种能够解决地址冲突问题的实现移动自组网地址自动分配的方法。
为解决上述技术问题,本发明提出的技术方案为:一种移动自组网地址自动分配协议在NS2中的模拟仿真方法,扩展NS2网络模拟平台,在NS2平台网络中有报文到来时,地址配置代理先于路由协议代理之前获取报文,并且判断该报文的类型;若该报文属于地址配置 协议报文,则地址配置代理处理完成后将报文丢弃;若该报文类型为路由协议代理报文,则地址配置代理先根据地址自动配置 协议检测网络中是否存在地址冲突,有冲突则改变IP地址,再根据协议中处理规则将该报文丢弃或转交给内部引用路由协议代理继续处理;其他类型的报文,则直接转给路由协议代理处理;在上述方案中,只有当网络中出现地址冲突时,地址自动配置协议代理才去处理、解决地址冲突,否则该代理不动作,对NS2平台中原有模块、组件均无影响。
所述扩展NS2网络模拟平台包括在NS2网络中嵌入地址配置代理和扩展GOD类,在NS2平台的路由协议代理之前嵌入地址配置代理,所述地址配置代理由AddrConfig类实现,包括以下步骤:1)查找NS2网络中节点id所对应的IP地址;2)判断NS2网络中是否有IP地址与报文中的IP地址冲突;当有IP地址冲突时更新节点中的IP地址,并且更新全局地址映射表;3)地址配置代理向更新IP地址的节点发送地址配置 报文。
NS2中每个节点的IP地址即为节点的id序号,由GOD类(Global OperationDirector)记录整个网络的全部节点序号信息,并维护了记录着网络中各节点间最小跳数,此种采用节点id值作为节点的IP能方便对网络行为的模拟,但损失了系统的扩展性,并且,由于id的唯一性且不能动态发生改变,使得在整个模拟实验过程中,节点的IP也相应地不能改变,因此,在现有的NS2平台无法实现网络地址自动配置协议的模拟实验。
在平台的路由协议代理之前嵌入地址配置代理,扩展后的NS2平台结构如图1所示,当报文将先由地址配置代理(AddrConfigAgent)接收,经其处理后再转发给路由协议代理(RoutingAgent)处理。
在本发明中,所述AddrConfig中具体提供了以下的实现:运用u_int32_tget_ip(nsaddr_tnode_id)方法查找节点id所对应的IP地址;运用voidset_ip(nsaddr_tid,u_int32_tip)方法更新节点中的IP地址;运用send_packet(Packetconst*p,u_int32_tip)方法向更新IP地址的节点发送地址配置 报文运用voidstart_rt_agent()方法启动地址配置代理中所引用的路由协议代理;运用voidstop_rt_agent()方法关闭地址配置代理中所引用的路由协议代理。在AddrConfig类中,有vector<string>commands成员,用于保存系统启动时传给路由协议代理的参数。当地址
配置代理启动所管理的路由协议代理时,保存在commands中的参数依次传给路由协议代理中的Agent::command(int,char**)方法,由此正确地初始化路由协议代理。
经过上述的扩展后,基于NS2来进行地址自动配置协议的仿真实验的步骤为:
在本发明中,所述扩展GOD类具体包括以下内容,在GOD类中添加了u_int32_tip_map[num_nodes]数组来记录网络中各节点的IP地址,AddrConfig代理中的u_int32_tget_ip(nsaddr_t)和voidset_ip(nsaddr_t,u_int32_t)维护该数组,保证节点id与IP地址正确对应。
与现有技术相比,本发明的优点在于:本发明中对NS2平台进行了扩展,主要包括在路由协议代理之前嵌入地址配置代理和在原有GOD类中添加对模拟网络中节点编号和IP地址映射维护,使得其可以支持对网络地址自动分配协议的仿真。
附图说明
图1为扩展后的NS2平台结构图。
图2为实施例一的网络拓扑图。
图3为实施例二的网络拓扑图。
具体实施方式
为了便于理解本发明,下文将结合较佳的实施例对本发明作更全面、细致地描述,但本发明的保护范围并不限于以下具体的实施例。
需要特别说明的是,当某一元件被描述为“固定于、固接于、连接于或连通于”另一元件上时,它可以是直接固定、固接、连接或连通在另一元件上,也可以是通过其他中间连接件间接固定、固接、连接或连通在另一元件上。
除非另有定义,下文中所使用的所有专业术语与本领域技术人员通常理解的含义相同。本文中所使用的专业术语只是为了描述具体实施例的目的,并不是旨在限制本发明的保护范围。
实施例
下面介绍在扩展后的NS2平台具体实现对PACMAN协议的模拟实验。
PACMAN协议是一种新颖、高效的分布式地址自动分配方案,通过跨层分析,在地址动态分配中能够充分利用数据链路层和网络层的信息,兼备有状态方法及无状态方法的特性。
试验步骤;
实验中路由协议采用AODV协议,具体的PACMAN协议移植到扩展平台需要以下四个步骤:
1)创建协议代理类PACMANAddrConfig
定义PACMAN协议的代理类PACMANAddrConfig,继承自AddrConfig类,重点是实现函数PACMANAddrConfig::recv(Packet*,Handler*)。当接从底层传来路由协议报文时函数被调用,在其中主要实现PACMAN协议所对应的报文解析、地址冲突检测和地址冲突解决操作。
NS2中报文中地址域值为节点id,利用上一节扩展平台所提供的get_ip方法即获取到对应的IP地址,接下来将IP地址信息传入地址冲突检测模块,由PACMAN协议中一系列地址冲突检测算法根据地址信息检测是否存在IP地址冲突。若检测无冲突,则将该路由协议报文转由自身管理的AODV路由协议代理处理。若检测到非其他节点存在地址冲突,则向冲突地址发送ACN(AddresssConflictNotification)消息,若检测自身存在地址冲突,则由地址冲突解决模块生成自身的新地址,删除并重新分配初始化自身管理的AODV路由协议代理,同时更新扩展平台里的地址信息。
2)为地址自动配置代理分配路由协议代理
在PACMANAddrConfig中用如下代码为地址配置代理分配AODV路由协议的代理对象。
Agent*PACMANAddrConfig::alloc_rt_agent(){
returnnewAODV(id);
}
地址自动配置代理对路由协议代理完全透明,地址配置代理收到底层传来的路由协议或应用层报文,经过自身处理后,就将之传给此处生成AODV路由协议代理对象,由该代理实现对报文的路由转发。
3)添加对地址自动配置代理对象的引用
在路由协议代理类中添加对地址自动配置代理对象的引用。
classAODV:Agent{
//originaldeclaration...
//...
AddrConfig*addr_conf_agent;
};
PACMAN协议地址自动配置代理是基于节点所收发到路由协议报文的被动地址冲突检测协议,需要记录并分析自身节点所发出的路由协议报文。因此,在路由协议代理中发送报文时,将调用其对应地址配置代理的recv函数,使得报文被地址配置代理对象处理。在下面代码片段中,当AODV协议代理发送Hello报文时,先调用地址配置代理recv函数处理发出路由协议报文时的情况。
voidAODV::sendHello(){
this->addr_config_agent->recv(p);
Scheduler::instance().schedule(target_,p,0.0);
};
4)修改路由协议代理中的定时器类的析构函数
当PACMAN地址自动配置代理检测到网络地址冲突需要重启路由协议代理时,PACMAN协议地址自动配置代理将删除已有的路由协议代理,并重新分配一个新的路由协议代理。而当AODV路由协议代理被析构时,定时器已经将事件插入到事件调度器当中,为了避免调度器调用无效的事件,应该由AODV路由协议代理中的定时器对象在析构时将已经插入事件调度器中的事件注销。
下面两组实验中分别定义了不同的网络拓扑结构,初始设置所有节点均具有相同的IP地址。
实验一
网络共9个节点,其拓扑结构如图2所示。网络流量设置为:从15s至20s,节点B向节点I发送TCP数据流;自30s至模拟结束,节点E向节点I发送TCP数据流。
根据PACMAN协议地址自动配置代理的事件日志可以看网络中出现的地址冲突情况以及节点IP地址被重新配置的情况:
表1实验一仿真结果表
由表1可以看出,事件1至6出现时并没有流量发生,凭借邻居节点间的Hello报文,PACMAN协议中的SA算法发现并解决了网络中大部分地址冲突。在15秒后,当节点B向节点I发送数据时,协议成功检测到中间节点H和F存在地址冲突,并将该两节点的IP分别更改为169.254.0.13和169.254.0.2,但同时也可以看到,F节点的新地址与节点I的地址一样,PACMAN协议并没有检测到该冲突。
实验二
实验设置了12个节点,其网络拓扑结构如图3所示。模拟开始后,15s-20s,节点J向节点A发送数据,55s-65s,节点E向节点L发送数据,节点D向节点J发送数据。
实验中,PACMAN协议所检测到事件情况如表2:
表2实验二仿真结果表
在本实验中,网络中地址冲突的解决都在网路初始阶段,即发生在节点相互发送数据之前。在模拟结束后,仍然存在3对地址冲突的节点:节点C和J均为169.254.0.1,节点G和I的地址均为169.254.0.7,节点F和L的地址均为169.254.0.8。
从上述实验的结果,可以完整地看到PACMAN协议如何逐步发现并解决网络中地址冲突的过程,帮助研究者通过仿真实验评估和测量协议的特点和性能。比如,基于上述实验,能够发现出当节点间的相互通信不够频繁时,PACMAN协议中被动式地址冲突算法由于所获信息量太少,不足以分析检测出网络中地址冲突情况。
Claims (3)
1.一种移动自组网地址自动分配协议在NS2中的模拟仿真方法,其特征在于:扩展NS2网络模拟平台,在NS2平台网络中有报文到来时,地址配置代理先于路由协议代理之前获取报文,并且判断该报文的类型;若该报文属于地址配置协议报文,则地址配置代理处理完成后将报文丢弃;若该报文类型为路由协议代理报文,则地址配置代理先根据地址自动配置协议检测网络中是否存在地址冲突,有冲突则改变IP地址,再根据协议中处理规则将该报文丢弃或转交给内部引用路由协议代理继续处理;其他类型的报文,则直接转给路由协议代理处理;
所述扩展NS2网络模拟平台包括在NS2网络中嵌入地址配置代理和扩展GOD类,在NS2平台的路由协议代理之前嵌入地址配置代理,所述地址配置代理由AddrConfig类实现,包括以下步骤:1)查找NS2网络中节点id所对应的IP地址;2)判断NS2网络中是否有IP地址与报文中的IP地址冲突;当有IP地址冲突时更新节点中的IP地址,并且更新全局地址映射表;3)地址配置代理向更新IP地址的节点发送地址配制报文。
2.根据权利要求1所述的移动自组网地址自动分配协议在NS2中的模拟仿真方法,其特征在于:所述AddrConfig中具体提供了以下的实现:运用u_int32_tget_ip(nsaddr_tnode_id)方法查找节点id所对应的IP地址;运用voidset_ip(nsaddr_tid,u_int32_tip)方法更新节点中的IP地址;运用send_packet(Packetconst*p,u_int32_tip)方法向更新IP地址的节点发送地址配置报文运用voidstart_rt_agent()方法启动地址配置代理中所引用的路由协议代理;运用voidstop_rt_agent()方法关闭地址配置代理中所引用的路由协议代理。
3.根据权利要求1所述的移动自组网地址自动分配协议在NS2中的模拟仿真方法,其特征在于:所述扩展GOD类具体包括以下内容,在GOD类中添加了u_int32_tip_map[num_nodes]数组来记录网络中各节点的IP地址,AddrConfig代理中的u_int32_tget_ip(nsaddr_t)和voidset_ip(nsaddr_t,u_int32_t)维护该数组,保证节点id与IP地址正确对应。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710893457.3A CN107786684B (zh) | 2017-09-28 | 2017-09-28 | 一种移动自组网地址自动分配协议在ns2中的模拟仿真方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710893457.3A CN107786684B (zh) | 2017-09-28 | 2017-09-28 | 一种移动自组网地址自动分配协议在ns2中的模拟仿真方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107786684A CN107786684A (zh) | 2018-03-09 |
CN107786684B true CN107786684B (zh) | 2020-10-16 |
Family
ID=61434161
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710893457.3A Active CN107786684B (zh) | 2017-09-28 | 2017-09-28 | 一种移动自组网地址自动分配协议在ns2中的模拟仿真方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107786684B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111432046A (zh) * | 2020-03-23 | 2020-07-17 | 韶鼎人工智能科技有限公司 | 一种网络重复地址检测方法 |
CN113568323B (zh) * | 2021-02-08 | 2024-06-11 | 北京机电工程研究所 | 一种无线自组织网络半实物仿真装置和方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2002102132A2 (en) * | 2001-06-18 | 2002-12-27 | Telcordia Technologies, Inc. | Method and system for soft handoff of mobile terminals in ip wireless networks |
CN1794679A (zh) * | 2005-12-23 | 2006-06-28 | 上海大学 | 移动无线自组网络的有线局域网模拟平台构建方法 |
CN101127786A (zh) * | 2007-09-25 | 2008-02-20 | 中兴通讯股份有限公司 | 一种移动ip多重注册时分配ip地址的方法 |
CN102291448A (zh) * | 2011-08-08 | 2011-12-21 | 华南理工大学 | 移动自组织网络中基于地理位置的ip地址自动分配方法 |
CN102439905A (zh) * | 2011-09-30 | 2012-05-02 | 华为技术有限公司 | 网络拓扑自动发现方法、装置及系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8223716B2 (en) * | 2006-12-05 | 2012-07-17 | Toshiba America Research, Inc. | Assisted proactive IP address acquisition |
-
2017
- 2017-09-28 CN CN201710893457.3A patent/CN107786684B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2002102132A2 (en) * | 2001-06-18 | 2002-12-27 | Telcordia Technologies, Inc. | Method and system for soft handoff of mobile terminals in ip wireless networks |
CN1794679A (zh) * | 2005-12-23 | 2006-06-28 | 上海大学 | 移动无线自组网络的有线局域网模拟平台构建方法 |
CN101127786A (zh) * | 2007-09-25 | 2008-02-20 | 中兴通讯股份有限公司 | 一种移动ip多重注册时分配ip地址的方法 |
CN102291448A (zh) * | 2011-08-08 | 2011-12-21 | 华南理工大学 | 移动自组织网络中基于地理位置的ip地址自动分配方法 |
CN102439905A (zh) * | 2011-09-30 | 2012-05-02 | 华为技术有限公司 | 网络拓扑自动发现方法、装置及系统 |
Non-Patent Citations (2)
Title |
---|
Group based Address Autoconfiguration Scheme for;Shoaib Mukhtar,;《2005 Student Conference on Engineering Sciences and Technology》;20051231;全文 * |
移动自组网的IP地址自动配置技术研究;陈爱国;张曦煌;《计算机工程与应用》;20071211;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN107786684A (zh) | 2018-03-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Dian et al. | A practical study on Bluetooth Low Energy (BLE) throughput | |
US20060029007A1 (en) | Ad hoc network topology discovery | |
CN102790963B (zh) | 基于Android手机的移动自组网系统及其构建方法 | |
US8009615B2 (en) | Multi-hop ad-hoc wireless networks that support non-multi-hop wireless terminals | |
US20110019540A1 (en) | Wireless ad hoc communication system, terminal, processing method in terminal and program to make terminal execute processing method | |
US20080137556A1 (en) | Mesh networking auto configuration method, virtual link setting method, packet transmission method in multi-hop wireless lan, and terminal thereof | |
CN104796849B (zh) | 一种对数据包进行处理的方法和设备 | |
CN106535238A (zh) | 一种链路的切换方法和装置 | |
CN110249634B (zh) | 包括电力线接口和至少一个射频接口的电表 | |
KR20050076176A (ko) | IPv6 MANET망에서 외부망과의 통신을 위한 시스템및 방법 | |
CN107786684B (zh) | 一种移动自组网地址自动分配协议在ns2中的模拟仿真方法 | |
CN107852367A (zh) | 网状网络中的路径建立 | |
CN104469877A (zh) | 433m无线自动组网方法及系统 | |
US20020172175A1 (en) | Communication device | |
CN102546409B (zh) | 一种基于trill网络的处理报文的方法和路由桥 | |
Suryawanshi et al. | Performance Analysis and Minimization of Blackhole Attack in MANET | |
Fazio et al. | AIPAC: Automatic IP address configuration in mobile ad hoc networks | |
Nguyen et al. | An SDN-based approach to support dynamic operations of multi-domain heterogeneous MANETs | |
US7852776B2 (en) | Routing loop detection control apparatus | |
CN102573000B (zh) | 基于直接/间接矩阵的无线自组织网络保护路由生成方法 | |
CN110995413A (zh) | 一种防止伪节点攻击的联盟链共识节点管理方法 | |
JP2007181056A (ja) | 経路選択方法 | |
KR20080018042A (ko) | 애드혹 네트워크에서의 라우팅 성능 개선 방법 및 장치 | |
KR20070097245A (ko) | 무선 네트워크에서의 경로 설정 방법 및 그에 따른 시스템 | |
JP2003134140A (ja) | モバイルipを利用したデータ転送方式 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |