文献综述(或调研报告):
现代社会,数据中心数量在逐步增多,其规模也在进一步增加。现代数据中心需要处理、传输的数据往往规模巨大,但数据中心所使用的传统的分层集中式拓扑会造成数据中心核心交换机的数据传输压力剧增,进而导致传输性能大幅下降甚至设备故障等严重问题,为此,如VL2和FatTree等新型拓扑结构不断被设计出来,并投入使用。这些新型拓扑结构为数据中心的数据传输提供了大量的可用路径,充分使用这些路径就需要确保不同流量采用不同的路径,这便是多路径TCP能在数据中心中替代常规TCP的主要原因。
多路径TCP技术在现有的TCP会话基础上增加多径传输的功能,从根本上改变了数据的调度和传输方式,通过同时建立多条传输路径,将数据传输的方式由传统的单路径变成了多路径,有效地提升了网络传输能力和稳定性。
为了使数据中心原有的网络设备,特别是中间件能够支持多路径TCP,多路径TCP协议的设计受到了极大的制约。实现多路径最简单的方法是将完整的数据流分段从发送缓冲区中取出,并依据测量的往返时间(RTT)作为路径性能的判断标准,将这些分段分配到最佳可用路径上,但这样的设计使多路径TCP的子流并不连续,可能会导致中间件中断连接,为了避免这种情况的发生,研究人员选择在TCP的三次“握手”阶段建立多路径TCP连接,后续子流通过MP_JOIN选项和ADD_ADDR选项与现有连接匹配,并使每个数据包都带有相应的数据序列号和子流序列号,并添加相应的校验和以确保中间件不会对多路径TCP的数据包有所改动。同时,研究人员还在发送端实现了机会重传、惩罚和缓冲区自动调节机制,利用重传和对路径拥塞窗口的调节,进一步降低多路径TCP对内存的使用并避免多路径传输导致的数据包乱序问题[1][2]。
研究人员对多路径TCP的原始设计基本实现了多路径TCP提升吞吐量、公平性、均衡拥塞、安全性和正常恢复力的设计原则和优化目标。但各种各样的数据中心中,有些目标可以在实现的基础上进一步优化,有些目标甚至并没有达到预期,甚至比常规TCP性能还要差。
当路径遭遇拥塞导致数据包丢失需要重新传输数据包的情况下,多路径TCP会执行机会重传机制和惩罚机制,在另一条子流上传输原有的数据包并降低产生拥塞链路的拥塞窗口尺寸,这种机制对于数据量大的流能够保持较高的吞吐量,但数据中心中还存在需要低时延的延迟敏感流,如查询流。机会重传机制并不能保证延迟敏感流的延迟保持在较低的水平,甚至会延长延迟敏感流的完成时间。对此,研究人员基于数据中心多路径的多样性,提出了快速多路径损失恢复(FUSO)[3]这一新方法。快速多路径损失恢复的核心是在严格遵循多路径TCP现有的拥塞控制机制的前提下,利用拥塞窗口存在空余和上层应用程序没有新数据传输的间隙,通过损失率低的路径去立刻主动地恢复损失率高的子流上疑似丢失的数据包。在快速多路径损失恢复中,发送端为最先发送却未收到确认包的数据包生成恢复包,利用描述子流中发生损失概率的度量公式
,找出当前最不可能发生数据包丢失的“最好”路径,将恢复包当作正常的数据包进行传输,主动地去恢复当前最可能发生数据包丢失的“最坏”路径可能丢失的数据包。在接收端有一个数据级(即流级别)的接收缓冲区且每个子流都有一个映射到数据级接收缓冲区的虚拟接收缓冲区。接收到恢复包后,接收端直接将恢复包插入数据级接收缓冲区的相应位置,完成流传输。恢复包不会影响坏的子流在子流级的行为,而是直接在数据级恢复丢失的包。这种利用数据中心多路径多样性来快速恢复损失的方法,虽然能大幅降低数据流的尾部流完成时间,但这是以路径中产生大量冗余为代价的,在拥塞程度较为严重的环境中,快速多路径损失恢复的方法恢复保守的状态,可以与原有的多路径TCP满拥塞窗口时的机会重传和惩罚机制[4]互补使用,进一步确保延迟敏感流的较低的流完成时间和数据量较大的流的高吞吐量。
多路径TCP遵循的公平原则并没有在真实场景中实现。具体表现为两方面:1)一些常规TCP用户升级为多路径TCP会降低其他用户的吞吐量,但这种降低的行为并不会对被升级的用户带来好处;2)多路径TCP用户可能会过度抢占常规TCP用户的资源。研究人员认为这种现象主要是因为多路径TCP的连接增加算法(LIA)[5]为了在最佳资源池和路径响应能力之间进行权衡,导致的拥塞路径传输流量过多,过度抢占资源。为此他们设计了机会连接增加算法(OLIA)[6],解决了传统的连接增加算法带来的两个问题。机会链接增加算法是基于窗口的拥塞控制算法,主要基于链接增加算法修改了Kelly and Voice算法使多路径TCP的拥塞控制符合帕累托最优原则,并根据最近两次丢失之间传输的数据量、最近一次丢失后传输的数据量和链路的往返时间(RTT),对拥塞窗口内的任务做出快速反应,以保证多路径TCP的响应能力和不浮动性。研究试验表明,在多路径TCP用户和常规TCP用户共存的场景中,机会链路增加算法能够很好的满足帕累托最优原则,并具有与原有的链路增加算法相近甚至更优的性能,在模拟数据中心并生成短流量的场景中,的机会链路增加算法比原有的链路增加算法有更短的流完成时间,更快的响应速度以及更高的吞吐量,但算法的稳定性和收敛性还有待探究,还需要更多模拟数据中心的场景来探究算法的性能。
多路径TCP通常与基于流的等价多路径路由方法(ECMP)结合,使用随机哈希将多路径TCP的子流分配到不同的路径。但是,随机散列的随机性也决定了这种方法的性能并不是最优的,因为不同的子流可能会因为随机散列而使用相同的路径,而其他可用路径仍未使用,导致多路径TCP的优势减弱。为此,研究人员探索了一种支持多路径TCP的软件定义网络(SDN)控制器[7],该控制器有助于多路径TCP子流的替代路由机制。软件定义网络控制器通过提取数据包中多路径TCP选项所携带的信息,利用拓扑管理器(TM)查找符合要求的数据中心中的最短路径集,控制器的转发模块(FM)负责为子流选择传输的路径并为途径的交换机安装适当的OpenFlow规则。拓扑管理器使用深度优先搜索(DFS)图遍历算法,找到所有长度不超过特定跃点计数阈值的可用路径,并过滤获得的路径集以提取最短路径、最短路径集或边缘不相交的路径集并返回到转发模块。转发模块会维护路径缓存哈希表和流哈希表,便于相同数据包传输时避免拓扑管理器的冗余计算,当子流不在表中才会调用拓扑管理器去计算路径集,并从中选择一条分配给子流。研究人员还为多路径TCP的路径管理提供了每对IP地址创建一个以上子流的功能。在模拟数据中心的三种拓扑的实验场景中,软件定义网络控制器提供的确定性的子路由机制使用更少的子流提供了原有的随机方法的性能,在使用软件定义网络控制器的数据中心中,极大降低了OpenFlow规则安装数量和控制器的总体负载。软件定义网络控制器的方法能够更好的利用数据中心冗余可用路径的多样性,但主要针对长期流量,对于短期流量并未有所体现。
数据中心往往存在着异构路径,依据最小往返时间(RTT)进行路径管理的多路径TCP在路径存在异构时会受到影响。当多路径TCP的接受端接收到乱序数据包时,它不会立即发送重复的数据确认包,因为在多路径TCP中,接收端收到乱序数据包是正常现象,当路径之间的异构差异表现为路径的时延时,直到来自慢速路径的数据包到达接收端,才会发送数据确认包。此数据确认包将同时确认从快速路径发送的许多数据包,因此快速路径可以一次发送许多数据包,从而导致突发发送,这会要求更大的网络内缓冲区和更大的主机缓冲区才能充分利用快速路径和聚合带宽,对多路径TCP的性能产生了严重的影响。为了解决这些问题,研究人员提出并实现了一个新的调度程序,称为滑动多路径调度程序(STMS)[8]。该调度程序预分配数据包以通过有序到达的快速路径发送,它无需依赖网络路径条件的估计,而是根据已确认的数据包动态调整多路径TCP级别的发送窗口。滑动多路径调度程序的核心思想是为快速子流缓冲数据包,并为慢速子流分配具有较大序号的数据包,以便它们按顺序到达。决定了快速路径发送数据包数量的参数被称为间隙值,他是通过路径条件的测量计算得出,但在路径单向延迟和路径带宽无法准确预测的实际情况下,为了能保证滑动多路径调度程序仍能够有更好的性能,研究人员采用基于反馈的间隙值调整方案,利用数据确认包所确认的数据包数量统计数据包无序到达程度作为反馈信号,根据间隙值相比于实际间隙值的大小调整发送窗口,这也保证了不需要较大主机缓冲区大小以及数据包端到端的平均延迟不会增加。实验结果表明,在路径异质性较大的情况下,滑动多路径调度程序的性能优于默认调度程序,更能够适应不同的网络和缓冲区设置。
以上是文献综述,课题毕业论文、任务书、外文翻译、程序设计、图纸设计等资料可联系客服协助查找。