论文部分内容阅读
无线Ad Hoc网络实现了没有基础设施环境下的移动节点自由互联,在军事领域及民用服务领域都有广泛的应用前景,因而受到了学术界广泛关注。但其固有的独特特征也带来了许多研究上的挑战,其中对无线Ad Hoc网络下可靠传输协议TCP性能的研究是一个重要领域。研究表明,Ad Hoc网络下大部分丢包是路由失败导致,但TCP无法将其与拥塞丢包分开,错误地调用拥塞控制,造成TCP性能严重下降。现有文献通过跨层交互方式对TCP进行改进,并取得了一些成果。其中,纽约大学的余新博士提出了一种跨层改进方案EPLN,该方案使用来自网络层的丢包反馈信息来区分丢包原因,以此调整TCP的拥塞控制机制,较好地改善了TCP性能。但是,由于该方案仅局限于TCP与网络层跨层交互,并未涉及来自MAC层的信息,将严重影响丢包原因判断的准确性。而且,EPLN采用当收到下层丢包反馈将TCP冻结暂停发送的方式来减少超时,待网络状况好转,继续使用原来状态恢复发送,这仍可能造成发送过快导致更多丢包,影响了TCP性能。本文提出了一种对EPLN的扩展方案ENEPLN。新方案在MAC层、网络层和传输层之间进行跨层信息交互,以改善TCP性能。在MAC层,节点保存历史信号记录,发生丢包后通过特定判断算法判定丢包是否因节点的移动造成,并将判定结果反馈到网络层。在网络层,利用DSR协议的Route Error消息将丢包原因捎带回TCP源端,源端根据丢包原因决定是否清除路由,以减少不必要的路由发现开销,同时将丢包事件通过ICMP消息反馈到传输层。在传输层,TCP从冻结状态恢复之后,放弃原来状态,根据当前路由往返跳数计算出一个合适的发送速率进行数据传输。我们在NS2中实现了扩展后的方案,并运行了大量的仿真实验对新方案进行验证,对实验结果进行了分析。仿真实验结果表明,新方案能够减少平均路由发现次数,降低TCP平均慢启动次数,在静态场景下吞吐率能够比原方案提高10%到20%,动态场景下吞吐率也能有小幅提高。