基于NS2的COPE编码机制实现仿真(5)
时间:2017-05-17 22:57 来源:毕业论文 作者:毕业论文 点击:次
3)侦听数据包。COPE方案中,充分利用无线网络中节点能够侦听邻居节点之间发送的数据包这一特性,将节点设置为混杂模式后,不论该节点是否是接收端,都将侦听到的原始数据包储存到特定的缓冲池中,供解码时使用。同时向其它邻居节点发送接收报告,告知它所获得的数据包情况。 4)伪广播功能。802.11协议中MAC层有两种模式:单播和多播。由于COPE方案中编码后的数据包是要发送往多个接收端,因此较理想的模式应是采用多播通信,由于多播通信的不可靠性和缺乏退避算法,使得不得不采用单播通信。然而,利用节点的侦听数据包的能力,邻节点可以接收下一跳地址不是自身的数据包,因此,可以对数据包包头格式作适当修改,编码时在包头中记录每一个被压缩的数据包的下一跳地址,当节点接收到这个数据包时,就能够查看包头的内容来判断其中是否含有需要解码的原始数据包。这样,就达到了广播的效果,而同时单播通信的信道又能够很好地检测碰撞及使用退避算法,使链路更稳定可靠。 2.5 网络模拟器NS2 本实验以NS2为实验平台,进行网络模拟。 2.3.1 NS2简介 NS2是指 Network Simulator version 2,NS(Network Simulator),即面向对象的、离散事件驱动的网络环境模拟器,主要用于解决网络研究方面的问题。是一种针对网络技术的源代码公开的、免费的软件模拟平台。所以,NS2是一个面向对象的网络模拟工具,可以完整地模拟整个网络环境。NS2提供了在无线或有线网络上的TCP、路由、多播等多种协议的模拟。NS2一直以来都在吸收全世界各地研究人员的成果,包括UCB、CMU等大学和SUN等公司的无线网络方面的代码。 下面介绍NS中常用的几个组件: (1)事件调度器 由于NS是基于事件驱动的,调度器也就成为NS2的指挥中心,它可以跟踪仿真时间,调度当前事件链表中的仿真事件(例如一个FTP应用何时开始,何时结束仿真等),并交由产生该事件的对象处理。 (2)节点(Node) 是由Tc10bject对象组成的复合组件,在NS中可以表示端节点和路由器。每个节点具有唯一的地址(id标识),节点有单播节点和组播节点两种不同类型,通过节点内部的nodetype_变量来区分,NS中默认的是单播节点;节点为每一个连接到它的业务源分配不同的端口,用于模拟实际网络中的端口;另外,节点有一个路由表以及路由算法,由地址分类器(AddrClassifier)根据目的地址转发数据包。 (3)链路(Link) 由多个组件复合而成,用来连接网络节点。所有的链路都是以队列的形式来管理分组的到达、离开和丢弃。在链路中增加Trace/EnqT、Trace/DeqT、Trace/DrpT以及Trace/RecvT等对象可以跟踪每个数据包到达、进入、离开队列以及被丢弃的时间;还可以用队列监视器(Queue Monitor)来监测队列长度和平均队长的变化情况。 (4)代理(Agent) 负责网络层分组的产生和接收,也可以用在各个层次的协议实现中。Agent类包含源及目的节点地址、分组类型、大小、优先级等状态变量,并利用这些状态变量来给所产生的分组的各个字段赋值。每个Agnet连接到一个网络节点上(一般是端节点),由该节点给它分配一个端口号。Agnet是实现UDP协议及各种版本TCP协议的基类。 (5)包(Packet) 由头部和数据两部分组成。头部包括cmn haeder、ip header、tep header、rtp header及trace Header等,其中最常用的是通用头结构cmn haeder,该头结构中包含一个唯一的标识符,包类型、包的大小以及时间戳等。在agnet产生了一个包之后,所有的头部都同时生成,用户能够根据偏移量来存取各头部所包含的信息。一般情况下,Packet只有头部,没有数据部分。 (责任编辑:qin) |