窗口的缓存空间不足。虽然,目前主机的内存空间很大,但在操作系统中,分配给TCP 的 接收窗口都是有限的,这就造成了适应性问题的产生。考虑到在真实系统中,接受窗口大小 都是一个固定值,所以,在模型中将接收窗口作为常量进行处理。 4 动态预留算法 根据对多径TCP 协议2 条路径性能模型的研究,提出了一种简单的数据调度算法—— 动态预留算法,即依据多路径性能为多路径动态调整数据预留空间。改进算法主要集中在对 RTT 差异的适应,算法的伪代码如下: 动态预留算法:send_control() Input: m individualsX ={X1,X2,K,Xm}, { } 1 2 , , , m Y = Y Y KY , k Output: m updated individuals { } 1 2 , , , m Y = Y Y KY 1: sort X to ' { 1 , 2 , , m } m m m X = X X K X , Y to ' { 1, 2, , m } m m m Y = Y Y KY //B is the min size of packet. F is the correlation coefficient of two paths 3: for i = 1 to m do 4: i m Z ← FreeSpace(i) 5: end for 6: for i = m to 1 do 7: if i m Z > B then 8: min Z ← i m Z 9: for j = i to 1 do 10: if j m Y == 0 then 11: j m Y ← min i X mj X m Z F 12: if j m Y < j m Z then 13: j m Y ← j m Z 14: end… 15: end for 此算法中,X 表示往返时延,Y 表示为各子流预留的空间。当需要为各子流分配数据包 时,首先会按各子流的往返延时将子流的各参数排序,并分别计算出各路径发送窗口的剩余 空间。然后,选取所有路径中,需要向发送窗口添加数据包,并且往返时延最大的路径作为 基准路径,为其他路径依次分配预留空间。数据的分配会按往返时延由小到大的顺序分配给 各路径。此算法虽然简单,但是经过验证,它可以显著改善适应性问题,使多径TCP 协议 在保证吞吐率的前提下,适应各种复杂环境。 5 仿真 采用ns-2 仿真工具对研究结论进行了验证,得到了预期的结果,证明了研究结论的正 确性。下面将从3 个方面详细介绍仿真结果。 5.1 适应性问题验证 0 50 100 150 200 250 300 350 400 450 500 0 100 200 300 400 500 600 700 800 900 rtt1 = rtt2 = 0.116s, p1 = p2 = 0.005, WinMax = 10 t/s 吞吐率/(kbps) mptcp normal 0 50 100 150 200 250 300 350 400 450 500 0 50 100 150 200 250 300 350 400 450 500 rtt1 = 0.116s, rtt2 = 0.997s, p1 = p2 = 0.005, WinMax = 10 t/s 吞吐率/(kbps) (a) 相同性能路径下吞吐率对比 (b) 不同性能路径下吞吐率对比 图1 适应性问题验证 Fig. 1 The adaptation problem verification 图1 (a)与(b)分别为路径的RTT 相同与不同时,多径TCP 协议与TCP 协议在2 条路径 场景下总吞吐率的对比。可知,当2 条路径RTT 相同时,多径TCP 协议的整体性能与2 条 TCP 协议的性能相近;当RTT 不同时,多径TCP 协议与2 条TCP 协议的性能有很大差距。 从而验证了适应性问题是存在的,而且会给多径TCP 协议的整体性能造成严重影响。 5.2 性能模型和影响因素验证 通过对多径TCP 协议的原理分析,在第3 节中给出了多径TCP 协议的性能模型。对性 能模型的准确性进行了验证,实验结果如图2 所示。 0 0.2 0.4 0.6 0.8 1 1.2 2 3 4 5 6 7 8 9 10 11 x 104 RTT/(s) 发包数/(pkts/s) Throughput Model(Two Pathes) PACC(MPTCP) PACC model(MPTCP) 0 0.2 0.4 0.6 0.8 1 1.2 2 2.5 3 3.5 4 4.5 5 x 104 RTT/(s) 发包数/(pkts/s) Throughput Model(Three Pathes) PACC(MPTCP) PACC model(MPTCP) (a) 2 条路径 (b) 3 条路径 图2 性能模型验证 Fig. 2 The throughput model verification 图2 所示为对2 条、3 条相互独立的路径进行的验证结果。通过仿真验证了所提性能模 型的准确性,该模型可以计算多径TCP 在不同环境中的吞吐量。 0 50 100 150 200 250 300 350 400 450 500 50 100 150 200 250 300 350 400 450 rtt1 = rtt2 = 0.116s, p1 = 0.005, WinMax = 10 t/s 吞吐率/(Kbps) p2 = 0.005 p2 = 0.1 p2 = 0.5 0 50 100 150 200 250 300 350 400 450 500 100 101 102 103 104 105 t/s 发包数/(pkts/s) rtt1 = rtt2 = 0.116s, p1 = 0.005, WinMax = 10 p2 = 0.005 p2 = 0.1 p2 = 0.5 (a) 丢包率变化时吞吐率对比 (b)丢包率变化时发包数对比 图3 影响因素验证(丢包率) Fig. 3 The influence factor verification (packet loss rate) 此外,对上文中影响因素的分析结论进行了仿真。关于RTT 因素的验证,可以由图1 的结果看出,RTT 的不同容易引起适应性问题。由图3 可知,路径间丢包率的差异对多径 TCP 协议整体性能的影响不明显,3 种情况下多路径整体吞吐率无明显变化。因此,第3 节 中对影响因素的分析正确,符合多径TCP 协议在实际网络中的表现。 5.3 改进方案验证 针对引起适应性问题的原因,对多径TCP 协议进行了改进,主要从调度和接收窗口大 小2 个方面进行了分析。通过ns 实验,对改进后多径TCP 协议的表现进行了仿真。实验仍 然采用2 条路径的场景,实验环境为,2 条路径的往返时延分别为0.116s 和0.997s,丢包率 均为0.005。实验结果如图4 所示。 0 50 100 150 200 250 300 350 400 450 500 0 50 100 150 200 250 300 350 400 450 500 t/s 吞吐率/(Kbps) rtt1 = 0.116s, rtt2 = 0.997s, p1 = p2 = 0.005, WinMax = 10 original mptcp modified mptcp(10) modified mptcp(18) 0 50 100 150 200 250 300 350 400 450 500 0 50 100 150 200 250 300 350 400 450 500 t/s 吞吐率/(Kbps) rtt1 = 0.116s, rtt2 = 0.997s, p1 = p2 = 0.005, WinMax = 10 original mptcp modified mptcp(30) modified mptcp(60) (a) 动态预留算法下吞吐率对比 (b) 接收窗口变化时吞吐率对比 图4 改进方案验证 Fig. 4 The adaptation problem solutions 图4 (a)所示为对动态预留算法的仿真结果,图4(b)所示为对接收窗口大小变化的仿真结 果。从显示结果发现,动态预留算法与增大接收窗口2 种方法均可以明显改善多径TCP 协 议的适应性问题。但是,接收窗口的缓存大小不能无限制增加,所以,接收窗口的增大并不 能适应所有多径TCP 协议的应用。而动态预留算法通过动态调整各路径数据的分配,可以 达到令人满意的效果,而且实现方法比较简单,易于在真实网络场景部署。 6 结论 通过对多径TCP 协议流量控制的分析,建立了性能模型,准确计算出多径TCP 协议在 不同网络场景中的吞吐率。发现了影响多径TCP 协议实际性能的关键问题——适应性问题, 对适应性问题的关键因素进行了分析,并设计了动态预留算法,初步解决了该问题。通过 ns 仿真,验证了工作的准确性。下一步的工作将在真实异构网络中验证流量模型和动态预 留算法。 学术论文网Tag:代写论文 代写代发论文 论文发表 职称论文发表 |