基于喷泉码的多径tcp协议的制作方法

文档序号:7993262阅读:205来源:国知局
专利名称:基于喷泉码的多径tcp协议的制作方法
技术领域
本发明属于互联网传输控制技术领域,特别涉及基于喷泉码的多径TCP协议。
背景技术
随着互联网技术的快速发展,如今终端设备往往配备有多个网络接口,同一个终端同时接入多个异构的网络域已经成为可能。在这样的接入环境下,如何合理的利用多接口来为用户提供更多的流量和更好的服务,以达到最大化利用网络资源的目的具有重要意义。目前网络中基于TCP协议产生的流量占总流量的95%以上,传统TCP协议在会话过程中只能建立单一的网络路径连接,无法利用终端设备多个接口这个优势来实现多路径通信, 这严重浪费了设备资源,为充分利用通信对端的多条路径,互联网工程任务组(IETF)提出了多径传输控制协议(MPTCP)。MPTCP不是一种革新的技术,而是对传统TCP的扩展,它在传统TCP/IP应用层与传输层间增加了一个支持多径传输的MPTCP层,其主要有两个功能 包调度和路径管理。MPTCP层在发送方将应用层数据分发到各子流传播,接收方接收各子流数据并按序递交给应用层,使得从通信双方的应用层来看,传输层依然是单路传输。MPTCP传输性能严重受子流传输质量的影响,当所有子流具有高传输质量(延迟、 丢包率等)时,MPTCP吞吐量能达到预期水平,但是在子流传输质量各异的情况下,MPTCP 的网络性能受劣质子流的影响急剧下降,如在高丢包率路径传输的数据将出现大量重传现象,这将严重推迟接收方数据的成功接收;而当子流延迟较高时,通过低延迟路径传输的数据可能需要等待在高延迟路径上传输的数据的到来,以便使接收缓存按序向高层递交数据。高延迟、高丢包率最终导致数据在接收方失序,在严重的情况下,通过高质量路径传输的数据塞满接收缓存区,使接收方无法提供空闲缓存而丢弃后续到达的数据,降低网络吞吐量。为此Y. Huang等人将网络编码引入TCP协议,并证明它能减少丢包率和重传率; V. Sharma等人提出了多径丢包容忍TCP协议,这个协议一定程度上能减缓劣质路径的瓶颈效应,然而其网络传输性能严重依赖于对无线链路丢包率评估的准确性,且它没有提出一个有效的数据分配方法,使接收方尽可能按序接收数据包。因此,如何减小高延迟,高丢包率路径对MPTCP的影响,使数据包在路径质量各异的多路径传输过程中尽可能按序到达接收方,对提高MPTCP吞吐量有着重大的意义。

发明内容
为了克服上述现有技术的不足,本发明的目的在于提供一种基于喷泉码的多径 TCP协议,发送方能根据喷泉码的译码特性,只需发送满足接受方能成功译码所需要的数据量,而不需保证每次传输数据的成功到达,这种方式能有效的减少传输过程中重传包的概率,提高了网络吞吐量。为了实现上述目的,本发明采用的技术方案是基于喷泉码的多径TCP协议,所述方法是在互联网中按以下步骤实现步骤(1),通信双方通过MPTCP握手协议建立MPTCP连接;
步骤O),数据发送方将需要发送的字节流发送到数据缓存区,然后根据喷泉码编码特性将数据B划分为适合的数据块b1; b2,. . .,bn ;步骤( ,将待传输的数据块h编码为喷泉码符号;步骤,存在传输机会的子流产生一个数据传输请求,存在传输机会是指发送窗口不为0 ;步骤(5),路径参数评估模块评估各子流的路径传输质量参数EAT,EAT表示数据通过该路径传输并被接收方成功接收需要花费的时间的期望值;步骤(6),数据分配模块采用虚拟数据分配算法,向数据缓存区请求数据,并将各数据块编码后的符号分配给各子流,具体步骤如下步骤(6a),找出MPTCP所有子流中EAT最小的子流f,初始化该子流的传输参数, 使得数据块指示变量i = 0,分配给它的数据包的大小s = 0,包描述向量Vf = {vi; V2,...,
vn}置零;步骤( ),判断i是否小于等待传输的数据块数目n,且数据包的大小s小于等于最大分段(MSS),如果是,则i增加1,并继续执行下面步骤,否则,转入步骤(6f);步骤(6c),判断评估到的接收方错误译码概率^■是否大于等于预先设置的接受方可接受的最大错误码概率δ,如果是,继续执行下面步骤,否则转入步骤(6h);步骤(6d),判断数据包的大小s是否小于等于最大分段(MSS),如果是,继续执行下面步骤,否则转入步骤(6f);步骤(6e),将包描述向量更新为Vi — Vi+1,同时为数据包分配一个数据块h的喷泉码符号,即数据包的大小s更新为χ ^s + kbi,返回步骤6c,^^为数据块h编码后单个符号包含的比特数;步骤(6f),更新子流f的路径传输质量参数EATf — EDTf+RTf- τ f,具体方法是当发送窗口为0时,EAT = EDT+RT- τ表示EAT等于等待发送窗口由0增大到不为0的时间(RT-τ)与发送窗口不为0后数据包被接受方成功接收所需时间期望值EDT之和,其中RT指响应时间,它有可能出现两种情况,当前一个数据包成功被接受时RT = RTT, 否则RT = RT0,EDT指发送数据包后,数据包被接收方成功接收需时间的期望值,χ指第一个未收到回复包发送时的时间到当前时间的时间间隔;当发送窗口大于0时,即子流存在传输机会,数据包不需要等待发送窗口变大, EAT = EDT ;步骤(6g),判断通过上述方法获得数据分配的子流是否为请求传输数据的子流, 如果是,则返回包描述向量Vf,否则转入步骤(6a)继续执行数据分配;步骤(7),根据包描述向量Vf,为请求数据传输的子流封装数据并发送。其中,所
述步骤(6c)中,根据下面公式评估接收方错误译码概率^>:其中,&为数据块h编码后单个符号包含的比特数,\为已接收的数据比特数。
本发明与现有技术相比,具有的优点是1)发送方能根据喷泉码的译码特性,只需发送满足接受方能成功译码所需要的数据量,而不需保证每次传输数据的成功到达,这种方式能有效的减少传输过程中重传包的概率,提高了网络吞吐量;2)针对数据包在不同传输质量的路径上,由于传输延时或者数据重传引起数据接收方接收到大量逆序到达的包,使得接收端缓存不够用的问题,提出虚拟的数据分配算法, 采用虚拟数据分配算法能够使发送方能够根据估计子流传输质量参数,来给各子流分配数据,使得接受方尽可能的按序接收数据,降低了对接收方缓存的需求。


图1是本发明的结构模型图。图2是本发明的流程图。图3是本发明EAT评估示意图,图3 (a)表示,当发送窗口为0时,EAT = EDT+RT- τ ;图2(b)表示,当发送窗口大于0时,EAT = EDT。
具体实施例方式下面结合附图和实施例对本发明做进一步详细说明。如图1所示,为本发明的结构模型示意图,在应用层与传输层间增加了一个支持多径传输的MPTCP层,在该层有数据缓存区(Buffer)和数据分配模块,应用层需要发送的字节流发送到数据缓存区,然后根据喷泉码编码特性将数据划分为适当编码的数据块,数据分配模块再根据路径质量评估,将这些编码好的数据块分配给各个子流。如图2所示,本发明基于基于喷泉码的多径TCP协议具体实现步骤如下步骤(1),通信双方通过MPTCP握手协议建立MPTCP连接;步骤O),数据发送方将需要发送的字节流发送到数据缓存区,然后根据喷泉码编码特性将数据B划分为适当大小的数据块b1; b2,. . .,bn ;步骤( ,将待传输的数据块h编码为喷泉码符号;根据喷泉码编码特性,假设h
/V
=A= La1, a2, . . . , an], B = [B1, B2, . . . , Bn]T,其中 a1; a2, . . . , an 为^^维列向量,A 表示将
数据块h数据划分为为^^ 维向量,B1, B2, ... , Bn*已知无穷维列矩阵。通过喷泉编码,有AB = C = [Cl,c2,...],我们称Ci为喷泉码符号,发送方通过评估路径质量来决定发送符号Ci的数量,即满足接收方错误译码概率小于预先设置的接受方可接受的最大错误码概率δ时,发送方不再发送该数据块符号。接收方通过A = CB-1来获得源数据。如假设在某子流中传输的传输数据块h编码后的符号,接收方只需要接收2个符号就能够满足成功译码条件;发送方评估当前子流传输质量,决定发送3个符号C = A[B1;B2,B2] = [ci; c2, (J,假设传输过程中( 丢失,接受方收到[Cl,(^,接收方根据A= [ci; cjD—1译码来获得源码,其中D= [BijB3Jt.步骤(4),存在传输机会的子流产生一个数据传输请求,存在传输机会是指发送窗口不为0,子流即传统TCP路径,其有两种情况,发送窗口为0或者发送窗口不为0.
步骤( ,路径参数评估模块评估各子流的路径传输质量参数EAT,EAT表示数据通过该路径传输并被接收方成功接收需要花费的时间的期望值;步骤(6),数据分配模块采用虚拟数据分配算法,向数据缓存区请求数据,并将各数据块编码后的符号分配给各子流,具体步骤如下步骤(6a),找出MPTCP所有子流中EAT最小的子流f,初始化该子流的传输参数, 使得数据块指示变量i = 0,分配给它的数据包的大小s = 0,包描述向量Vf = {vi; V2,...,
vn}置零;步骤( ),判断i是否小于等待传输的数据块数目n,且数据包的大小s小于等于最大分段(MSS),如果是,则i增加1,并继续执行下面步骤,否则,转入步骤(6f);步骤(6c),判断评估到的接收方错误译码概率^■是否大于等于预先设置的接受方可接受的最大错误码概率δ,如果是,继续执行下面步骤,否则转入步骤(6h);接收方错误译码概率^■根据下面公式评估
权利要求
1.基于喷泉码的多径TCP协议,其特征在于,所述方法是在互联网中按以下步骤实现 步骤(1),通信双方通过MPTCP握手协议建立MPTCP连接;步骤O),数据发送方将需要发送的字节流发送到数据缓存区,然后根据喷泉码编码特性将数据B划分为适合的数据块b1; b2,. . .,bn ;步骤(3),将待传输的数据块h编码为喷泉码符号;步骤,存在传输机会的子流产生一个数据传输请求,存在传输机会是指发送窗口不为0;步骤(5),路径参数评估模块评估各子流的路径传输质量参数EAT,EAT表示数据通过该路径传输并被接收方成功接收需要花费的时间的期望值;步骤(6),数据分配模块采用虚拟数据分配算法,向数据缓存区请求数据,并将各数据块编码后的符号分配给各子流,具体步骤如下步骤(6a),找出MPTCP所有子流中EAT最小的子流f,初始化该子流的传输参数,使得数据块指示变量i = 0,分配给它的数据包的大小s = 0,包描述向量Vf = Iv1, V2, ... , vn} 置零;步骤(6b),判断i是否小于等待传输的数据块数目n,且数据包的大小s小于等于最大分段(MSS),如果是,则i增加1,并继续执行下面步骤,否则,转入步骤(6f);步骤(6c),判断评估到的接收方错误译码概率《丨是否大于等于预先设置的接受方可接受的最大错误码概率δ,如果是,继续执行下面步骤,否则转入步骤(6b);步骤(6d),判断数据包的大小s是否小于等于最大分段(MSS),如果是,继续执行下面步骤,否则转入步骤(6f);步骤(6e),将包描述向量更新为Vi — Vi+1,同时为数据包分配一个数据块、的喷泉码符号,即数据包的大小s更新为s + <,返回步骤6c,^^为数据块、编码后单个符号包含的比特数;步骤(6f),更新子流f的路径传输质量参数EATf — EDTf+RTf- τ f,具体方法是 当发送窗口为0时,EAT = EDT+RT- τ表示EAT等于等待发送窗口由0增大到不为0的时间(RT-τ)与发送窗口不为0后数据包被接受方成功接收所需时间期望值EDT之和,其中RT指响应时间,它有可能出现两种情况,当前一个数据包成功被接受时RT = RTT,否则 RT = RTO, EDT指发送数据包后,数据包被接收方成功接收需时间的期望值,τ指第一个未收到回复包发送时的时间到当前时间的时间间隔;当发送窗口大于0时,即子流存在传输机会,数据包不需要等待发送窗口变大,EAT =EDT ;步骤(6g),判断通过上述方法获得数据分配的子流是否为请求传输数据的子流,如果是,则返回包描述向量Vf,否则转入步骤(6a)继续执行数据分配;步骤(7),根据包描述向量Vf,为请求数据传输的子流封装数据并发送。
2.根据权利要求1所述的基于喷泉码的多径TCP协议,其特征在于,所述步骤(6c)中, 根据下面公式评估接收方错误译码概率
全文摘要
基于喷泉码的多径TCP协议,属于互联网传输控制技术领域,依次含有以下步骤当发送方需要发送数据时,首先将数据按块存储在缓存区,然后数据块由编码模块编译为喷泉码符号;数据分配模块根据子流请求及路径评估得到的各子路径质量参数EAT向数据块请求数据,并采用虚拟的数据分配算法,将编码后得到的喷泉码符号分配到各子路径进行传输;本发明可以有效降低采用多径传输控制协议(MPTCP)在传输质量各异的子路径传输数据时的重传概率,减弱低质量路径的瓶颈效应,使得各个子路径传输的数据包尽可能的按序到达接收方,缓解接收方接收缓存大小的限制,提高网络的吞吐量。
文档编号H04L1/00GK102404077SQ201110389050
公开日2012年4月4日 申请日期2011年11月30日 优先权日2011年11月30日
发明者崔勇, 徐鑫, 汪一宁, 潘广进, 王弘毅 申请人:清华大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1