论文部分内容阅读
无线网络近年来得到了大规模的应用,但是,无线网络链路本身具有信号衰落、外部干扰、多路访问竞争、节点移动等特点,使得链路的比特错误率较高,从而导致了无线网络下的TCP协议性能表现不佳。针对这一问题,研究者提出了很多改进的措施,如单层改进方法、跨层改进方法、端到端改进方法,但是均不能解决较高丢包率无线网络环境下的TCP性能不佳问题。网络编码的提出提供了解决此问题的新思路。Sundararajan提出了基于网络编码的TCP/NC协议。理论分析和仿真已证明该协议在高丢包率环境下能有效提高吞吐率,但并未在实际机器上实现该协议,也未搭建实验床在无线环境中验证该协议性能。为了评价TCP/NC在实际网络中的性能表现并对其进行改进,首先,本文根据TCP/NC的基本原理与特点并结合Linux内核中TCP/IP协议栈的结构,提出了基于Linux内核模块的TCP/NC实现技术。该方法可以在基本不修改Linux原有TCP/IP协议栈的前提下,将网络编码层插入TCP层与IP层之间。其次,由于TCP/NC协议的冗余因子无法随着无线网络的状况自动变化,从而影响了TCP/NC协议的性能。本文提出了根据网络的吞吐率变化对冗余因子进行自适应调整的算法,并在Linux内核中实现了冗余因子自适应的TCP/NC协议,即ad R-TCP/NC协议。最后,本文在Linux下搭建了多种基于AODV协议的无线Ad-Hoc网络实验床环境,对TCP、TCP/NC、ad R-TCP/NC协议的性能进行了测量、比较和分析,研究了冗余因子和编码窗口对TCP/NC、ad R-TCP/NC吞吐率的影响。实验结果表明,TCP/NC应用于丢包率较高的实际无线网络时可以有效提高TCP的性能。编码窗口、冗余因子对TCP/NC的性能都有重要影响,在进一步优化TCP/NC的性能时需要综合考虑。此外,在丢包率动态变化的环境下,冗余因子自适应的ad R-TCP/NC协议能根据网络情况对冗余因子进行调整,可以进一步提高无线网络的性能。