CN103595640B - 一种提取移动自组织网络mac层拓扑方法 - Google Patents
一种提取移动自组织网络mac层拓扑方法 Download PDFInfo
- Publication number
- CN103595640B CN103595640B CN201310633623.8A CN201310633623A CN103595640B CN 103595640 B CN103595640 B CN 103595640B CN 201310633623 A CN201310633623 A CN 201310633623A CN 103595640 B CN103595640 B CN 103595640B
- Authority
- CN
- China
- Prior art keywords
- node
- subgraph
- mac
- coordinate
- address
- 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.)
- Expired - Fee Related
Links
Landscapes
- Mobile Radio Communication Systems (AREA)
Abstract
本发明属于移动自组织网络领域,具体涉及移动自组织网络所使用的MAC协议。首先对采集的数据进行过滤,然后提取所有剩下数据包MAC层中的MAC地址对,根据这些地址对,绘制出MAC层拓扑结构。搜集目标网络中通信的数据包,对这些数据包进行筛选,仅保留移动自组网中MAC帧是数据帧,提取出剩下数据包MAC层中MAC地址对,基于这些地址对能够提取出目标网络MAC层拓扑结构。
Description
技术领域
本发明属于移动自组织网络领域,具体涉及移动自组织网络所使用的MAC协议。
背景技术
移动自组织网络,是由若干可移动的通信节点构成的无固定设置的、可快速组建的多跳无线通信网络,它具有网络拓扑结构动态变化、自组织无中心节点、无线传输带宽有限等特点。通过观察网络拓扑结构,可以获知网络是否存在漏洞并对网络性能进行评估,也可以获知某区域节点是否密集。针对某区域的密集程度,可以选择适合的路由协议。在移动自组织网络中,当有节点出现故障,不能和其他节点通信的时候,网络管理员可以通过获取此时网络的拓扑结构,通过比较以前和现在的网络拓扑结构,找出可能出现故障的节点并及时的修复它。本专利是一种基于采集的数据提取出移动自组织网络的拓扑结构。
发明内容
本发明的目的在于提供一种提取MAC层拓扑结构的方法。
本发明的目的通过如下步骤实现:
S1、对采集的数据包进行筛选,过滤掉非测试网络的数据包,保留MAC帧是Data类型或Data QoS类型、MAC地址(源和目的)是单播地址的数据包,其中,所述的采集的数据包为目标网络中所有数据包;
S2、提取S1筛选下来的数据包的MAC地址对,若目的MAC地址是广播地址,则抛弃该数据包,否则把这对地址作为一个元素存入链表MACList中;
S3、创建一个一维数组MACadd[],用来存放所有的MAC地址,并记每个MAC地址在数组中的位置作为其索引号,记为Index,其中,有L个元素;
S4、根据S3所述的一维数组MACadd[]创建一个L*L的二维数组Adjac_MAC[][],所述Adjac_MAC[][]的横坐标表示源MAC地址,纵坐标表示目的MAC地址,所有元素值初始化为0,所述Adjac_MAC[][]中元素值表示源和目的MAC地址之间的发包数,遍历链表MACList中所有元素,更新邻接矩阵;
S5、根据S4所述更新后的邻接矩阵,绘制测试网络的拓扑结构,包括:
S51、确定子图个数,子图中的任意节点和其他子图中的每个节点都不存在链路,初始化subgraph=1,记索引号为1的节点为参考节点;
S52、反向遍历S51所述参考节点对应的行元素,若有元素值不为零,则标记该值列坐标对应的节点为已读,并以最后一个元素值不为零时,该值列坐标对应的节点为参考节点,执行步骤S52;
S53、遍历所有节点,查找是否存在没有被标记的,若都标记为已读,则执行步骤S54,若有未被标记的,则停止查找,以该节点为参考节点,且subgraph++,执行步骤S52;
S54、把每个节点的标记清零,设显示区域宽为width,高为height,存在链路的节点之间距离为r=width/3/sqrt(subgraph),根据subgraph,把显示区域划分为subgraph块,记索引号为1的节点为根节点,若subgraph为奇数,其坐标为X=width/2,Y=height/2,否则根节点的坐标为X=width*(subgraph+1)/(2*subgraph),Y=height/2;
S55、确定与根节点存在链路的节点坐标。先统计与根节点存在链路节点的个数,记为adjacentnum,令Q=π/4,若adjacentnum==1,Q=π/2,否则,dQ=π/2/(adjacentnum-1),与根节点存在链路的节点坐标为X'=X+r*cos(Q),Y'=Y+r*sin(Q),Q每次递增一个dQ,并标记每个节点为已读,令flag=1,dn=0;
S56、遍历所有节点,若所有节点均已被标记为已读,则结束,否则,执行flag*=-1,当其为-1时,表示与该节点存在链路的节点放在左边的子图,flag为1时,表示与该节点存在链路的节点放在右边的子图,并以该节点为根节点,若subgraph为奇数,根节点坐标为X=0.5*(subgraph+flag*dn)*width/subgraph,Y=height/2;否则,根节点的坐标为X=0.5*(subgraph+1+flag*dn)*width/subgraph,Y=height/2。flag==1时,dn+=2,表示左右子图都画完一次,执行步骤S55。
本发明的有益效果是:搜集目标网络中通信的数据包,对这些数据包进行筛选,仅保留移动自组网中MAC帧是数据帧,提取出剩下数据包MAC层中MAC地址对,基于这些地址对能够提取出目标网络MAC层拓扑结构。
附图说明
图1是提取MAC层拓扑结构流程图。
图2是一个基于AODV路由协议的移动自组网的拓扑图。每个圆代表一个节点,数字代表编号,每个边代表一条直达链路。
图3是802.11协议一般帧格式。
图4是802.11协议帧格式中Frame control字段具体格式。
具体实施方式
下面结合附图来说明本发明的具体实施方式:
创建一个移动移动自组织网络,基于AODV路由协议实验平台,MAC层采用802.11协议,通过互相发送ping命令产生数据。用Linux系统下Wireshark搜集数据,需开启混杂模式(mon0),这样才能收集覆盖范围内的所有数据包。在Windows下用Microsoft visual studio2008编写的程序对采集的数据进行分析,最后把程序整合到Wireshark下进行演示。
S1、如图2所示,构建一个移动自组织网络,由四个节点组成星形结构,采用基于AODV路由协议实验平台,MAC层采用802.11协议,帧格式如图3所示,互相发送ping命令产生数据。
S2、对收集的数据进行筛选。
S21、过滤掉非测试网络的数据包。采集数据的时候,是联入该网络进行采集的,即假设MAC层数据部分是未加密或已解密的,而其他网络大多数都是加密的。所以,若数据包MAC层数据部分加密了,则认为是非测试网络的数据包。在接收的PCAP文件中,若MAC层数据部分未加密或已解密,则数据包中逻辑链路控制字段8个字节都为“aa、aa、03、00、00、00、08、00”(十六进制表示),提取出每个数据包该字段的值,若有一个比特不相符,则认为该数据包不是目标网络产生的。
S22、只保留MAC帧是Data类型或Data QoS类型、MAC地址(源和目的)是单播地址的数据包。在MAC帧头部Frame control字段(见图4)中,有种类和子类两部分,种类有控制帧(01),管理帧(00),数据帧(10)。设一个数据包Frame control字段低8位的值赋给macFrameType,若(macFrameType&0x0C)==0x08,则保留,否则都抛弃。
S3、提取筛选下来的数据包的MAC地址对(SA表示源MAC地址、DA表示目的MAC地址),若目的MAC地址是广播地址,即255.255.255.255(十进制),则抛弃该数据包,否则把这对地址作为一个元素存入链表MACList中;
S4、动态创建一个一维数组MACadd[],用来存放所有MAC地址。遍历链表MACList中每个元素,判断其中的MAC地址是否已在数组中。若数组MACadd[]中没有某MAC地址,则加入;若已存在,则不加。并记每个MAC地址在数组中的位置作为其索引号,记为Index。
S5、根据一维数组MACadd[],元素个数记为L,创建一个L*L二维数组Adjac_MAC[][],横坐标表示源MAC地址,纵坐标表示目的MAC地址,所有元素值初始化为0。数组中元素值表示源和目的MAC地址之间发包数。遍历链表MACList,链表中每个元素(MAC地址对)的源MAC地址记为SA、目的MAC地址记为DA,通过更新邻接矩阵中对应的元素,即Adjac_MAC[Index[SA]][Index[DA]]++。
S6、绘制测试网络的拓扑结构。绘制拓扑图的步骤如下:
A:确定有几个子图,子图中的任意节点和其他子图中的每个节点都不存在链路。初始化subgraph=1,记索引号为1的节点为参考节点。
B:反向遍历参考节点对应的行元素,若有元素值不为零,则标记该值列坐标对应的节点为已读,并以最后一个元素值不为零时,该值列坐标对应的节点为参考节点,执行步骤B。
C:遍历所有节点,查找是否存在没有被标记的,若都标记为已读,则执行步骤D,若有未被标记的,则停止查找,以该节点为参考节点,且subgraph++,执行步骤B。
D:把每个节点的标记清零,设显示区域宽为width,高为height,存在链路的节点之间距离为r=width/3/sqrt(subgraph)。根据subgraph,把显示区域划分为subgraph块。记索引号为1的节点为根节点,若subgraph为奇数,其坐标为X=width/2,Y=height/2;否则根节点的坐标为X=width*(subgraph+1)/(2*subgraph),Y=height/2。
E:确定与根节点存在链路的节点坐标。先统计与根节点存在链路节点的个数,记为adjacentnum,令Q=π/4。若adjacentnum==1,Q=π/2,;否则,dQ=π/2/(adjacentnum-1)。与根节点存在链路的节点坐标为X'=X+r*cos(Q),Y'=Y+r*sin(Q),Q每次递增一个dQ,并标记每个节点为已读,令flag=1,dn=0。
F:遍历所有节点,若所有节点均已被标记为已读,则结束;否则,执行flag*=-1,当其为-1时,表示与该节点存在链路的节点放在左边的子图,flag为1时,表示与该节点存在链路的节点放在右边的子图,并以该节点为根节点,若subgraph为奇数,根节点坐标为X=0.5*(subgraph+flag*dn)*width/subgraph,Y=height/2;否则,根节点的坐标为X=0.5*(subgraph+1+flag*dn)*width/subgraph,Y=height/2。flag==1时,dn+=2,表示左右子图都画完一次。执行步骤E。
Claims (1)
1.一种提取移动自组织网络MAC层拓扑方法,其特征在于,包括如下步骤:
S1、对采集的数据包进行筛选,过滤掉非测试网络的数据包,保留MAC帧是Data类型或Data QoS类型、MAC地址是单播地址的数据包,其中,所述的采集的数据包为目标网络中所有数据包;
S2、提取S1筛选下来的数据包的MAC地址对,若目的MAC地址是广播地址,则抛弃该数据包,否则把这对地址作为一个元素存入链表MACList中;
S3、创建一个一维数组MACadd[],用来存放所有的MAC地址,并记每个MAC地址在数组中的位置作为其索引号,记为Index,其中,有L个元素;
S4、根据S3所述的一维数组MACadd[]创建一个L*L的二维数组Adjac_MAC[][],所述Adjac_MAC[][]的横坐标表示源MAC地址,纵坐标表示目的MAC地址,所有元素值初始化为0,所述Adjac_MAC[][]中元素值表示源和目的MAC地址之间的发包数,遍历链表MACList中所有元素,更新邻接矩阵;
S5、根据S4所述更新后的邻接矩阵,绘制测试网络的拓扑结构,包括:
S51、确定子图个数,子图中的任意节点和其他子图中的每个节点都不存在链路,初始化subgraph=1,记索引号为1的节点为参考节点;
S52、反向遍历S51所述参考节点对应的行元素,若有元素值不为零,则标记该值列坐标对应的节点为已读,并以最后一个元素值不为零时,该值列坐标对应的节点为参考节点,执行步骤S52;
S53、遍历所有节点,查找是否存在没有被标记的,若都标记为已读,则执行步骤S54,若有未被标记的,则停止查找,以该节点为参考节点,且subgraph++,执行步骤S52;
S54、把每个节点的标记清零,设显示区域宽为width,高为height,存在链路的节点之间距离为r=width/3/sqrt(subgraph),根据subgraph,把显示区域划分为subgraph块,记索引号为1的节点为根节点,若subgraph为奇数,其坐标为X=width/2,Y=height/2,否则根节点的坐标为X=width*(subgraph+1)/(2*subgraph),Y=height/2;
S55、确定与根节点存在链路的节点坐标,先统计与根节点存在链路节点的个数,记为adjacentnum,令Q=π/4,若adjacentnum==1,Q=π/2,否则,dQ=π/2/(adjacentnum-1),与根节点存在链路的节点坐标为X'=X+r*cos(Q),Y'=Y+r*sin(Q),Q每次递增一个dQ,并标记每个节点为已读,令flag=1,dn=0,其中,所述Q表示旋转角度,dn表示已标记的节点个数;
S56、遍历所有节点,若所有节点均已被标记为已读,则结束,否则,执行flag*=-1,当其为-1时,表示与该节点存在链路的节点放在左边的子图,flag为1时,表示与该节点存在链路的节点放在右边的子图,并以该节点为根节点,若subgraph为奇数,根节点坐标为X=0.5*(subgraph+flag*dn)*width/subgraph,Y=height/2;否则,根节点的坐标为X=0.5*(subgraph+1+flag*dn)*width/subgraph,Y=height/2,flag==1时,dn+=2,表示左右子图都画完一次,执行步骤S55。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310633623.8A CN103595640B (zh) | 2013-11-29 | 2013-11-29 | 一种提取移动自组织网络mac层拓扑方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310633623.8A CN103595640B (zh) | 2013-11-29 | 2013-11-29 | 一种提取移动自组织网络mac层拓扑方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103595640A CN103595640A (zh) | 2014-02-19 |
CN103595640B true CN103595640B (zh) | 2016-08-17 |
Family
ID=50085629
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310633623.8A Expired - Fee Related CN103595640B (zh) | 2013-11-29 | 2013-11-29 | 一种提取移动自组织网络mac层拓扑方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103595640B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103945368B (zh) * | 2014-04-03 | 2017-06-30 | 电子科技大学 | 一种确定移动自组织网络中ip地址与mac地址的方法 |
CN109104339A (zh) | 2017-06-21 | 2018-12-28 | 富士通株式会社 | 信息传输方法、装置及电子设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009146132A2 (en) * | 2008-04-04 | 2009-12-03 | Powerwave Cognition, Inc. | Methods and systems for a mobile, broadband, routable internet |
CN102291852A (zh) * | 2011-08-01 | 2011-12-21 | 湖南立森数据技术有限公司 | 一种基于无线自组网络的数据终端以及数据访问方法 |
-
2013
- 2013-11-29 CN CN201310633623.8A patent/CN103595640B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009146132A2 (en) * | 2008-04-04 | 2009-12-03 | Powerwave Cognition, Inc. | Methods and systems for a mobile, broadband, routable internet |
CN102291852A (zh) * | 2011-08-01 | 2011-12-21 | 湖南立森数据技术有限公司 | 一种基于无线自组网络的数据终端以及数据访问方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103595640A (zh) | 2014-02-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Motamedi et al. | A survey of techniques for internet topology discovery | |
CN105262687B (zh) | 一种基于wia-pa技术的用电信息采集系统组网通信方法 | |
CN102185749B (zh) | 采用树形拓扑关系避免路由环路的方法 | |
CN101488925B (zh) | 一种利用网络流采集及统计虚拟专用网络流量的方法 | |
CA2640842A1 (en) | Virtual root bridge | |
CN106162795B (zh) | 利用逻辑区域坐标的无线物联网的自我组网和路由方法 | |
CN102594885B (zh) | 传感器网络解析互通平台、传感器网络互通方法及系统 | |
CN103595640B (zh) | 一种提取移动自组织网络mac层拓扑方法 | |
CN105763357A (zh) | 一种系统拓扑的绘制方法及装置 | |
CN108768691A (zh) | 基于snmp协议的以太网自动拓扑发现及成环定位检测系统 | |
CN106982164A (zh) | 一种网络拓扑发现方法及设备 | |
CN103813372B (zh) | 一种基于IPv6的无线传感器网络管理方法 | |
CN109088756B (zh) | 一种基于网络设备识别的网络拓扑补全方法 | |
Wahyono et al. | Optimization Service Discovery in Wireless Balloon Network | |
CN109639510A (zh) | 一种基于子网分析的区域PoP划分方法 | |
Kothari et al. | Implementation of black hole security attack using malicious node for enhanced-dsr routing protocol of manet | |
CN106452827A (zh) | 一种混合cdp、lldp与fdb数据的网络拓扑计算方法 | |
Shavitt et al. | Quantifying the importance of vantage point distribution in internet topology mapping (extended version) | |
Huang et al. | A backbone-aware topology formation (BATF) scheme for ZigBee wireless sensor networks | |
CN102404159A (zh) | 一种基于事件触发的认知网络拓扑发现方法 | |
CN101414980B (zh) | 主干路由系统的三色环网络结构设计及维护方法 | |
CN107948202A (zh) | 基于IPv6的数据传输方法和数据传输系统 | |
CN112039988A (zh) | 一种基于IPv6网络的智慧校园平台 | |
Li | A method of network topology visualization based on SNMP | |
Pu et al. | Design of Industrial Network Topology Discovery Algorithm Based on Multi-protocol |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20160817 Termination date: 20181129 |