无线网络技术课程论文-在NN的网络拓扑下双信道的分配问题及编程实现分配算法.doc

无线网络技术课程论文-在NN的网络拓扑下双信道的分配问题及编程实现分配算法.doc

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
无线网络技术课程论文-在NN的网络拓扑下双信道的分配问题及编程实现分配算法

无线网络技术课程论文 PAGE  PAGE 12 在N*N的网络拓扑下双信道的分配问题及编程实现分配算法 空白小龙 现有的WMN基本上都是采用单信道MAC协议。这种技术限制了整个网络的数据传输速率与网络容量,因为根据无线信道特点,当一个节点向另一个节点传输数据的时候,为了避免冲突,两个节点的所有领节点都不能够进行数据传送(如下图),这就极大地限定了整个网络的容量。 信道1 信道1 D C B A 单信道MAC协议下节点的数据传输 尽管现有的802.11a/b/g与802.16协议在物理层技术上有了很大的进步,如采取了一些有效的功率控制等方法,但仍然不能从根本上满足今天人们对网络带宽日益增大的需求。802.11a/g标准标称的带宽为54Mb/s,但这只是在峰值速率,而在真正应用过程中,由于用户接入时会发生多用户冲突、丢包错误等,因此真正的可达带宽几乎只有标称值的一半。另外,随着接收双方通信距离的增大,数据传输速率会显著下降。 幸运的是,802.11b/g标准和802.11a标准分别提供3个和12个没有交迭的信道(频点),使相邻的节点可以同时使用不同的信道。如果网络中的节点能够同时使用多个信道(如下图),就可以提高网络吞吐量。 信道1 信道2 D C B A 多信道MAC协议下节点的数据传输 实际上,早在移动Ad Hoc网络的设计中,人们就用了多信道的设计思想来提高网络的传输速率与网络容量。WMN是Ad Hoc网络的一种特例,因此,人们仍然可以采用多信道MAC机制,来设计WMN的多信道MAC协议。 多信道MAC协议概括起来,主要有以下几种: 按控制信道分,有专用控制信道的多信道MAC协议和无专用控制信道的多信道MAC协议。前者采用专用的射频(一直在控制信道上)来传递控制信息,这样,能够更有效地传递控制信息,但信道的利用率不高。而后者不能有效地传递控制信息。 按节点射频分,有多射频多信道MAC协议和单射频多信道MAC。前者每个节点有多个射频,这样节点可以同时在多个信道上传输数据,可以再多个信道上实现“边说边听”的功能,更有效地控制节点的传输。 基于这个问题,我通过编程实现了在N*N的网络拓扑下双信道的分配算法,并用图形化的形式很好的展示了在N*N的网络拓扑下双信道(信道1、信道2)的分配情况,通过构建了三个数据结构(图Graph、边ArcCell、点VertexType),编写的信道分配算法我把它命名为Blank算法—BlankAlgorithm。 下面是实现了的在N*N的网络拓扑下双信道的分配算法的运行界面截图,之后再详细的分析此算法的实现过程以及具体解释它的运算机理。 3*3的网络拓扑下双信道(信道1、信道2)的分配情况 4*4的网络拓扑下双信道(信道1、信道2)的分配情况 5*5的网络拓扑下双信道(信道1、信道2)的分配情况 6*6的网络拓扑下双信道(信道1、信道2)的分配情况 下面通过结合Blank算法中的数据结构和具体的代码对3*3的网络拓扑下双信道(信道1、信道2)的分配情况这个特例来分析并且详细解释Blank算法的思考过程及原理。 下面是所有文件的截图: Blank算法数据结构的核心是图、边、点。 图 点 边 Graph.java //图 public class Graph{ int row;//行数 int line;//列数 int vexnum,arcnum;//节点的数目和边的数目 VertexType vex[];//图中节点的数据结构类VertexType ArcCell arcs[][];//图中边的数据结构类ArcCell //构造方法 public Graph(){} //在构造方法中对各个数据结构的属性赋值 public Graph(int row,int line){ this.row=row; this.line=line; //点数=行数*列数 vexnum=row*line; //边数的求法 arcnum=row*(line-1)+line*(row-1); //实例所有的点 vex=new VertexType[row*line]; //实例所有的边 arcs=new ArcCell[row*line][row*line]; } } ArcCell.java //边 public class ArcCell{ int ChannelNumber;//边上的信道信息 } VertexType.java //点 public class Ve

文档评论(0)

haihang2017 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档