论文部分内容阅读
在实际项目开发中发现,在工业网络中使用UDP协议进行主要数据传输时,由于产生和发送数据的设备需要连续不间断的运行,这使得网络中的UDP流量越来越大,最终造成了拥塞,轻微拥塞时导致丢包增加,严重时甚至导致网络崩溃。同时,UDP也会大量的占用TCP的带宽,导致TCP的吞吐量严重下降。因此有必要对UDP进行拥塞控制,防止UDP的流量不受限制的增长,并保证对TCP的友好性。本文对基于端到端的拥塞控制算法和基于路由器的拥塞控制算法进行深入研究,从网络的端系统和路由器两个位置对相应的拥塞控制算法进行分析,并在此基础上进行相应的改进。对TFRC(TCP-Friendly Rate Control,TCP友好速率控制)算法进行分析,并针对其响应拥塞滞后和无拥塞分层的不足进行改进,得到MLC-TFRC(Multi-Level Congestion TFRC)算法。该算法首先得到抖动值,继而根据抖动对是否会发生拥塞进行预判,并对即将发生拥塞的情况采取降速措施;然后根据丢失事件率将网络拥塞分成不同拥塞程度,对于不同程度的拥塞在发送端采用不同的吞吐量模型,以快速解决网络拥塞。对主动队列管理(Active Queue Management,AQM)机制进行分析,并分析显式拥塞通知(Explicit Congestion Notification,ECN)算法,针对ECN算法的不足,提出改进的EQCN(Explicit Queue Congestion Notification)算法。该算法首先修改IP报文头部,添加EQ标志位,并在IP头的选项域中添加两个选项,用于保存队列长度和UDP包的数量,然后由接收端进行统计,再填充到对应的选项中,最后发送端据此调整自身发送速率。另外,还对RED(Random Early Detection,随机早期检测)算法进行了改进,提出QRED(Queue based RED)算法,改进的算法将原来的单线性丢弃率-平均队列长度函数修改成多线性分段函数,然后针对每个分段采用相应的分段函数计算丢弃率,使得到的丢弃率更加稳定,使其符合相关网络需求。整合EQCN算法和QRED算法,合并称为EQ-RED(Explicit Queue based RED)算法。最后,利用NS2(Network Simulator2)对TFRC和MLC-TFRC进行了仿真,并从吞吐量、丢包率及TCP友好性等方面分析了改进的有效性;对EQ-RED进行了仿真,并从平均队列长度、时延及丢包率等方面分析了改进的有效性。