发明名称 一种提取移动自组织网络MAC层拓扑方法
摘要 本发明属于移动自组织网络领域,具体涉及移动自组织网络所使用的MAC协议。首先对采集的数据进行过滤,然后提取所有剩下数据包MAC层中的MAC地址对,根据这些地址对,绘制出MAC层拓扑结构。搜集目标网络中通信的数据包,对这些数据包进行筛选,仅保留移动自组网中MAC帧是数据帧,提取出剩下数据包MAC层中MAC地址对,基于这些地址对能够提取出目标网络MAC层拓扑结构。
申请公布号 CN103595640B 申请公布日期 2016.08.17
申请号 CN201310633623.8 申请日期 2013.11.29
申请人 电子科技大学 发明人 阮宗利;刘学通;王海南;彭晓燕;廖红舒
分类号 H04L12/751(2013.01)I;H04W84/18(2009.01)I 主分类号 H04L12/751(2013.01)I
代理机构 成都宏顺专利代理事务所(普通合伙) 51227 代理人 李顺德;王睿
主权项 一种提取移动自组织网络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。
地址 611731 四川省成都市高新区(西区)西源大道2006号