基于最小化完成时间的网络传输方法及系统的制作方法

文档序号:8546172阅读:420来源:国知局
基于最小化完成时间的网络传输方法及系统的制作方法
【技术领域】
[0001] 本发明涉及一种网络传输协议,具体涉及一种基于数据中心的网络传输方法。
【背景技术】
[0002] 近年数据中心逐渐成为许多交互式在线服务的底层基础设施,例如网络搜索,社 交网络和广告。这些服务常常具有严格的时延要求,对于用户请求的响应必须足够快。这 些任务的相关数据需要通过网络流进行传输,国内外相关学者从多方面提出了方法,例如 类似于TCP的公平共享协议、最短流优先调度协议等,致力于加快任务的完成。然而,这些 方案或多或少地存在一些缺陷。因此如何设计高效的流调度协议,减少或避免设计缺陷,提 高传输效率,成为数据中心重要的研宄问题。

【发明内容】

[0003] 发明目的:为了解决现有的数据中心调度策略的不足,提供一种基于最小化完成 时间的网络传输系统,同时提供一种基于最小化完成时间的网络传输方法。
[0004] 技术方案:为解决上述技术问题,本发明提供的基于最小化完成时间的网络传输 系统,包括:
[0005] 基于明确速率控制的发送端,用于发送数据包时,在包头尾部添加至少包括发送 速率Rs、期望平均发送速率Ar和当前流F的大小Size的流信息;以及用于在接收数据包 之后,根据收到的发送速率Rs,调整发送端的发送速率;
[0006] 具有流调度功能的交换机,用于在转发收到的数据包之前,更新交换机的流状态 表;以及用于根据最小化完成时间扩张系数算法来调整流状态表中的流的优先级,并根据 优先级更新数据包中的实际发送速率、期望截止时间和期望平均发送速率,使优先级最高 的流获得拥塞链路资源;
[0007] 返回控制信息的接收端:接收端在接收到发送包后,根据发送包的信息设置确认 包的类型,并向发送端发送确认包,所述确认包中包括至少有实际发送速率、期望截止时间 和期望平均发送速率的流控制信息。
[0008] 本发明同时提供的一种基于最小化完成时间的网络传输方法,该方法基于流优先 级分配和分布式速率控制,包括五种类型的确认包,分别为:SYNACK、DETACK、BOOST、ACK和 FINACK确认包,其中SYNACK包、BOOST包和FINACK包具有高优先级,ACK包具有中优先 级,DETACK包具有低优先级;SYNACK为用于表示对建立连接的SYN包的确认包、DETACK和 BOOST均为用于表示对链路状况探测的DET包的确认包、ACK为用于表示对数据包DATA的 确认包、FINACK为用于表示对断开连接的FIN包的确认包;
[0009] 该方法包括以下步骤:
[0010] 1)发送端发送SYN数据包建立连接,报头包含流大小、发送速率和期望平均发送 速率,进入步骤2);
[0011] 2)交换机根据SYN包在流状态表中添加相应的流信息,并根据流表信息按照最小 化完成时间扩张系数算法来更新链路上的流的优先级,并计算更新每个流的期望截止时间 和期望平均发送速率,同时根据优先级分配实际发送速率,并将包括实际发送速率、期望截 止时间和期望平均发送速率的流控制信息写入数据包;接收端把SYN数据包的流控制信息 复制到SYNACK确认包中,回复给发送端;发送端接收SYNACK,建立连接,之后根据确认包中 的发送速率确定发送包的包类型,如果发送速率高于预设的数据发送阈值则进入步骤5), 否则进入步骤3);
[0012] 3)发送端发送探测包DET定时探测链路资源的分配状况,交换机根据流表信息按 照最小化完成时间扩张系数算法来更新链路上的流的优先级,根据优先级不断更新DET包 中的实际发送速率字段;接收端根据DET包中的发送速率信息,确定回复的类型,如果高于 预设的数据发送阈值,则接收端执行步骤6),否则接收端执行步骤4);
[0013] 4)接收端发送低优先级的DETACK确认包,发送端执行步骤5);
[0014] 5)同步骤 3);
[0015] 6)接收端发送高优先级的BOOST确认包,发送端执行步骤7);
[0016] 7)发送端发送正常的数据报文,接收端接收到正常数据报文执行步骤8);
[0017] 8)接收端复制数据包中的速率信息到中优选级的ACK确认包;发送端根据收到的 ACK包确定执行步骤,如果数据全部得到确认,则执行步骤9);否则,当发送速率高于数据 发送阈值时,执行步骤7);当发送速率低于数据发送阈值时,执行步骤3);
[0018] 9)发送端发送FIN数据包,以关闭与接收端方向的连接,接收端接收到FIN数据 包,执行步骤10);
[0019] 10)接收端发送FINACK确认包到发送端,结束通信。
[0020] 优选的,上述步骤2)中的根据最小化完成时间扩张系数算法来更新链路上的流 的优先级并更新每个流的期望截止时间和期望平均发送速率和步骤3)中的按照最小化完 成时间扩张系数算法来更新链路上的流的优先级,包括以下步骤:
[0021] 21)获取当前链路上所有优先级待定的流的集合S,包括建立时间Start_i,流的 大小Size,剩余传输量大小Resp进入步骤22);
[0022] 22)判断优先级待定的流集合是否为空集,如是则结束,如否则进入步骤23);
[0023] 23)计算待定流全部完成的时间:Tfin -R^s, +T_now,其中T_now为当前时间, C为链路带宽,进入步骤24);
[0024] 24)计算所有流在Tfin时刻的扩张系数ratio=Size*(T_fin-Start_i)/C,其中 Start_i为第i个流的建立时间,进入步骤25);
[0025] 25)选出扩张系数最小的流F,从流集合S中删除,并作为最优先的流加入到优先 级队列首部,以Tfin作为流F的期望截止时间,并计算期望平均发送速率为C/ratio,跳回 步骤22)。
[0026] 优选的,上述根据优先级分配或更新实际发送速率的步骤包括:基于根据最 小化完成时间扩张系数算法更新的链路上流的优先级,优先级最高的流的发送速率为 min(C*a,rate),其他流的发送速率为min(C* (1-a),rate),其中C为链路带宽,a为链路 有效数据比例,rate为发送数据包中的发送速率信息。
[0027] 有益效果:本发明提供的基于最小化完成时间的网络传输方法及系统,利用路由 器已知拥塞链路的所有流信息,通过采用基于最小化完成时间扩张系数的方法,对于链路 上的所有流进行优先级分配,通过与发送端、接收端的协同,实现了在线的流调度和分布式 的速率控制。本发明提出了用完成时间扩张系数作为网络传输效率的度量方式,来描述某 个流动实际获得的拥塞资源和理想之间的差距,通过最小化完成时间扩张系数算法,降低 所有流的最大扩张系数,使流调度达到相对公平,克服了目前数据中心传输协议在降低完 成时间上的不足,以此降低了数据中心中的平均任务完成时间,有效提高了数据中心网络 的传输效率,最终提高部署在虚拟机上任务的性能以及数据中心整体的网络通信效率。
【附图说明】
[0028] 图1是实施例的系统结构图;
[0029] 图2是实施例中流优先级分配流程图;
[0030] 图3为实施例中基于分布式速率控制的数据包交换图。
【具体实施方式】
[0031] 下面结合实施例对本发明做进一步的详细说明,本实施列对本发明不构成限定。
[0032] 1、系统描述
[0033] 本实施例应用的系统结构如图1所示:本系统的实现包括三个主要部分:基于明 确速率控制的发送端,具有流调度功能的交换机以及返回控制信息的接收端。
[0034] 基于明确速率控制的发送端,用于发送数据包时,在包头尾部添加至少包括发送 速率Rs、期望平均发送速率Ar和当前流F的大小Size的流信息;以及用于在接收数据包 之后,根据收到的发送速率Rs,调整发送端的发送速率;
[0035] 具有流调度功能的交换机,用于在转发收到的数据包之前,更新交换机的流状态 表;以及用于根据最小化完成时间扩张系数算法来调整流状态表中的流的优先级,并根据 优先级更新数据包中的实际发送速率、期望截止时间和期望平均发送速率,使优先级最高 的流获得拥塞链路资源;
[0036] 返回控制信息的接收端:接收端在接收到发送包后,根据发送包的信息设置确认 包的类型,并向发送端发送确认包,所述确认包中包括至少有实际发送速率、期望截止时间 和期望平均发送速率的流控制信息。
[0037] 所述确认包的类型包括:SYNACK、DETACK、BOOST、ACK和FINACK确认包,其中 SYNACK包、BOOST包和FINACK包具有高优先级,ACK包具有中优先级,DETACK包具有低优 先级。其中SYNACK为用于表示对建立连接的SYN包的确认包、DETACK和BOOST均为用于 表示对链路状况探测的DET包的确认包、ACK为用于表示对数据包DATA的确认包、FINACK 为用于表示对断开连接的FIN包的确认包。对于DET包设置了两种类型的确认包,是为了 实现流的快速调度。当DET包中发送速率超过预设的数据发送阈值,接收端会发送高优先 级的BOOST确认包,以快速启动新流;否则,发送低优先级的DETACK,用于发送端感知链路 状况。
[0038] 2、流优先级分配
[0039] 如图2提供的流优先级分配流程图所示,本实施例采用的基于最小化完成时间扩 张系数算法的流优先级分配包括以下步骤:
[0040] 21)获取当前链路上所有优先级待定的流的集合S,包括建立时间Start_i,流的 大小Size,剩余传输量大小Resp进入步骤22);
[0041] 22)判断优先级待定的流集合是否为空集,如是则结束,如否则进入步骤23);
[0042] 23)计算待定流全部完成的时间:7}in = +T_now;其中T_now为当前时间, C为链路带宽,进入步骤24);
[0043] 24)计算所有流在Tfin时刻的扩张系数ratio=Size*(T_fin-Start_i)/C,其中 Start_i为第i个流的建立时间,进入步骤25);
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1