基于NS2的COPE编码机制实现仿真(4)
时间:2017-05-17 22:57 来源:毕业论文 作者:毕业论文 点击:次
2.4 COPE协议 COPE协议是一种针对无线网络的可部署的网络编码机制,能够提升网络性能。COPE协议服务于无线网状网络,它使用网络编码来处理单播传输。此协议假设没有同步,或者事先不知道发送端,接收端以及传输率,而这三者可以随时改变。本解决方法的主要特征是机会主义:每一个节点依赖于本地信息来侦察并且开发使用这些可能任何时候出现的编码机会。COPE的主要思想是在IP层和MAC层之间插入一个编码层,在节点每次发送数据包前检查是否有编码机会,并在节点接收到数据包时检查该数据包是原始包还是编码包,以及编码包是否能够正确解码。 基于机会的网络编码方法COPE研究网络编码在无线环境中的具体实现的问题。为节点创造出更多的编码机会,就能有效的提高网络的吞吐量。 COPE方案不同于传统的线性编码方案,它具有以下几个特点: 1)拓扑的局部性。COPE方案不需要预先知道整个网络的拓扑结构,而是由无线网络中节点之间的数据包交互后得到的邻节点状态报告来得知局部拓扑结构的,而节点正是通过邻居节点报告来达到进行网络编码的功能。 2)编码算法复杂性更低。COPE方案不需要选取某个有限域来作为系数域,且编码的过程只是简单的异或(XOR)的过程,即根据编码规则选取队列中若干个满足条件的数据包,对其进行异或再转发出去即可,这点在一定程度上简化了编码解码的过程。 下面以一个例子来说明COPE的选择数据包的组合方式。图2-1表示一个无线网络中有A,B,C,D四个节点,此时B节点要向A,C,D这三个节点发送数据包,如图2-2所示,从A,C,D这三个节点发送的接收报告可知,它们的缓冲池中已分别具有其中几个数据包,因此,B要从发送队列中选择若干个数据包进行压缩,图2-3中列举出几种编码方案,若B向A,C,D发送p1和p2的异或,只有C能解码得到期望接收的数据包p2,节点D由于期望接收的是数据包p4,但此时仅能解码出p2,因此接收不成功。而节点A因为没有足够的信息解码,因此也不成功。所以,可以说这是一个不好的编码方案。第二种情况向A,C,D节点发送p1和p3的异或包,同理,A和C均能解码得出原始的数据包,因此这是一个较好的编码方案。第三种情况选择将p1,p3,p4三个数据包同时压缩发送,这种情况下A,C,D都能解码出原始数据包,达到了最优的效果,因此,它是一个很好的编码方案。 图2-1当前网络的状况 图2-2 B的输出队列中每个包的下一跳 图2-3可选的编码方案 (1、无法解码,不可行;2、均可解码,但不是最优;3、最优的) 从上图的例子可以发现,要使得所有接收节点都有能力尽最大可能地解码出原始数据包,中转节点必须至少要保证被选择出压缩的数据包均发送于不同的接收端,否则,假如有两个数据包发送至同一个接收节点,假设该节点未侦听到其中任意一个数据包,则当它收到压缩后的数据包时,它并没有能力解码出原始的数据包,因此,这次的传送是失败的。所以,为了能尽可能地让接收端解码得出原始数据包,COPE必须遵循以下规则: 一个简单的法则:一个节点要将p1,p2pn,n个本地混在起,传给r1,r2rn,n个下一跳,当且仅当ri有n-1个pj(j!=i)。 依据这条规则,所有的接收节点都能够有足够的信息来解码数据包,得到原始的数据包。COPE中的节点正是利用这条简单的规则来最大化地压缩发送队列中的数据包,以减少传输次数,节约带宽提高网络吞吐量。这个法则保证了每个下一跳集中的节点都能解码。当一个节点有机会发送的时候,它选择满足上述法则的最大的n,进而最大化编码的收益。(实际上,只有当上层协议认为下层是可靠的时候,并且流量对延迟不敏感的时候,这才有可能最大化。以TCP为例,如果每次选出的n个包,使得n最大,但却不一定包含输出队列前面的包,这将导致TCP的超时。或者上层协议并不关心包的交付,如UDP) (责任编辑:qin) |