发明内容
为了解决现有技术的问题,本发明实施例提供了一种数据传输方法及装置。所述技术方案如下:
一种数据传输方法,所述方法包括:
将每条路径上数据传输过程分为多个不相重叠的周期,记录每个周期内数据包进入和离开发送缓存的时间,计算数据包占用缓存的时间;
根据所述数据包占用缓存的时间和缓存大小,实时计算路径质量;
周期性的选出所述路径质量较好的路径作为数据传输的路径。
所述将每条路径上数据传输过程分为多个不相重叠的周期,包括:
从数据初次传输开始计时,直到发生丢包重传结束计时,为一个周期样本;
重新开始计时,采集下一个周期样本;
根据当前所有周期样本,计算周期样本的均值和标准差;
根据公式 计算所述周期;其中,N是周期样本个数,是周期样本的平均值,S是周期样本的标准差,α为显著性水平。
所述从数据初次传输开始计时,直到发生丢包重传结束计时,为一个周期样本,包括:
当发送第一个数据时,记录当前时间为开始时间;
持续发送数据,并且对每个发送的数据,使用当前时间打上时间戳;
当发生了丢包,记录最后一个数据的时间戳为结束时间;
周期样本即为结束时间与开始时间之差。
所述根据所述数据包占用缓存的时间和缓存大小,计算路径质量,包括:
根据公式计算路径质量;其中,Qi为路径质量,是所述周期内最后一个数据包离开的时间,是所述周期内第一个数据包进入的时间,buffersizei是所述周期内缓存区处理的数据量。
从最后一次计算所述路径质量Qi起,如果发生了丢包或者计时超过了当前的周期,Qi须重新计算。
所述周期性的选出路径质量好的路径,包括:
各路径根据路径质量计算拥塞窗口数据量的传输时间,并将其中最大的传输时间作为调度的周期;
在调度的周期内,各路径计算已分配到发送缓存数据量的传输时间,并将其中最小的传输时间对应的路径作为当前数据的传输路径,分配一个往返时延能传输的数据量到所述路径的发送缓存;
当计时超过所述周期后,各路径重新计算已分配到发送缓存数据量的传输时间,选出下一个分配数据的路径。
所述方法进一步包括:
如果发生丢包,判断往返时间和拥塞窗口之比是否大于等于所述路径质量,如果是,则丢包的原因是无线随机丢包,不必降低拥塞窗口,保持现有的数据传输效率;否则,丢包的原因是发生拥塞,减低拥塞窗口,控制数据传输速率。
一种数据传输装置,所述装置包括周期分配单元、传输时间记录单元、路径质量评估单元和路径选择单元,其中,
所述周期分配单元,用于将每条路径上数据传输过程分为多个不相重叠的周期;
所述传输时间记录单元,用于记录每个周期内数据包进入和离开发送缓存的时间,计算数据包占用缓存的时间;
所述路径质量评估单元,用于根据所述数据包占用缓存的时间和缓存大小,实时计算路径质量;
所述路径选择单元,用于周期性的选出所述路径质量较好的路径作为数据传输的路径。
所述装置进一步包括丢包判断单元,用于在发生丢包时,判断是否为无线随机丢包,如果是,则保持现有的数据传输效率;否则,减低拥塞窗口,控制数据传输速率。
所述装置进一步包括重传单元,用于在发生丢包后,重新传输当前数据。
本发明实施例提供的技术方案带来的有益效果是:
通过动态不重叠的评估周期和基于数据进出缓存的评估方法,对路径质量进行量化,准确衡量和预测路径的传输能力,进而得到传输时间最短的路径,能够确保数据并行的在最少时延的路径进行发送,尽可能确保数据有序到达接收端,解决了接收端缓存阻塞的问题。同时,通过评估的路径质量和路径实时数据的比较,准确辨别丢包发生的原因,采取不同的拥塞控制和重传策略,保证CMT在较高的传输效率上运行。本发明所述的方案,不仅提高数据的传输速率和质量,减少数据重传,降低网络负载,而且能够提高流媒体用户的体验效果。
实施例一
如图1所示,为本发明实施例一提供的数据传输方法原理流程图,其中,
步骤10,将每条路径上数据传输过程分为多个不相重叠的周期,记录每个周期内数据包进入和离开发送缓存的时间,计算数据包占用缓存的时间。
首先,需要根据数据发送情况,将整个发送过程分成很多个不相重叠的周期,并记录每个周期内多个数据包进入和离开发送缓存的占用时间。然后就可以利用设计的路径质量评估模型,衡量和预测每条路径的传输能力,并根据路径质量将路径状态分为活动状态与不活动状态。这里,实际上需要将每条路径分别根据数据传输过程来分为多个不相重叠的周期。
将SCTP中各条路径共享一个发送缓存的结构,改成每条路径独享各自发送缓存的结构,并根据路径的传输特性,动态对缓存进行配额。周期的初始值可以为SCTP心跳间隔的3倍。从初次传输开始计时,一直到发生丢包重传结束计时,采集周期样本;然后重新开始计时,采集下一个周期样本。利用当前所有周期样本,计算样本的均值和标准差,然后采用置信区间的方法计算出新的周期。
步骤20,根据数据包占用缓存的时间和缓存大小,实时计算路径质量。
在一个周期内,各路径记录第一个数据包进入其发送缓存的时间,最后一个数据包离开其发送缓存的时间,从而计算数据包进出其发送缓存的占用时间。此占用时间和路径发送缓存大小之比即为此路径的路径质量。这里对路径质量的计算,是实时进行的,目的是为了对路径质量进行实时探测和评估以衡量路径传输能力。最后一次计算路径质量起,如果发生了丢包,或者计时超过了当前的周期,此路径必须重新计算路径质量。路径质量是评估传输能力的主要标准,路径的质量越好,传输能力越高。
所有路径默认标记成活动的。如果计算出的周期小于路径的重传超时值(RTO),则把此路径标记成不活动的,不参与数据传输和调度。
步骤30,周期性的选出路径质量较好的路径作为数据传输的路径。
根据路径质量评估结果,周期性选出活动路径供CMT使用,并从这些活动路径中选出传输时间最短的路径,作为当前数据的发送路径,且动态的控制这次分配的数据量,从而尽量保证数据包的有序到达。基于评估结果,利用数据分配调度算法,智能分配调度多路径的数据发送,尽可能保证数据包的有序到达。并引进新的重传机制,来区分处理不同原因造成的数据包丢失。
如果出现丢包,根据拥塞窗口(cwnd)、往返时延(RTT)与路径质量的关系,判断其原因是网络拥塞引起的丢包,还是无线网络的随机丢包,采取不同的拥塞控制策略,并从传输时间最短路径进行重传。
各活动路径计算其拥塞窗口(cwnd)数据量的传输时间,并将其中最大的传输时间作为调度周期。
在一个调度周期内,各活动路径计算已分配到发送缓存数据量的传输时间,并将其中最小的传输时间对应的路径作为当前上层应用数据的发送路径,分配一个往返时延(RTT)能传输的数据量到其发送缓存;然后,各路径又重新计算已分配到发送缓存数据量的传输时间,再选出下一个分配数据的路径。当调度周期超时后,返回重新取用路径质量和拥塞窗口(cwnd),计算调度周期。
由于无线环境下,丢包的原因大多数为无线网络的随机丢包,而不是拥塞丢包。因此,某条路径发生了一次丢包(由重复确认或者计时器超时探测出来的),如果往返时间(RTT)和拥塞窗口(cwnd)之比大于等于路径质量,则认为丢包的原因是无线随机丢包,此时不必降低拥塞窗口(cwnd),保持现有的传输效率;否则,认为丢包的原因是发生拥塞,采用SCTP拥塞控制算法,此时减低拥塞窗口,控制发送速率。如果丢包连续发生,则认为丢包的原因可能是发生拥塞,此时减低拥塞窗口(cwnd),控制发送速率。无论什么情况,如果发生丢包,都必须尽快在选出的传输时间最短的路径进行重传。
如图2所示,为本发明实施例一的主体框架图,包括发送端,接收端和多条传输路径。在发送端,包含了本发明实施例一的主要模块:路径质量评估模型(PQEM)、数据分配调度器(DDS)、优化重传策略管理(ORP)。数据分发算法根据不同路径对应的缓存,将数据分发到不同的路径进行传输,路径状态回馈信息反馈到质量评估模型来讲质量评估结果反馈给数据分发算法。接收端接收数据并在接收缓存中重组数据,然后将接收信息反馈跟发送端,发送端通过优化的重传策略反馈给数据分发算法进行数据的传输。
具体来说,本发明实施例一实际上主要有以下几个重要的部分:
路径质量评估算法:
传统评估路径质量的方法,一般是通过收集每个数据包的确认信息(SACK),测量往返时间(RTT)来进行。这样的方法在CMT的环境下可能会造成路径质量差异的误判,不能准确反映路径RTT的变化情况,也不能预测链路质量的变化趋势。因此,本发明实施例是根据数据发送情况,将整个发送过程分成很多个不相重叠的周期,并记录每个周期内多个数据包进入和离开发送缓存的占用时间,由此可以准确衡量和预测每条路径的传输能力。同时,本发明实施例把SCTP中各条路径共享一个发送缓存的结构,改成每条路径独享各自发送缓存的结构,并根据路径的传输能力,动态对缓存进行配额。
本发明实施例首先确定评估每条路径质量的周期u。此周期是根据历史统计和现有取样,由置信区间的方法计算得到,初始值可以为3倍心跳(Heartbeat)周期。具体过程如下:
a)当发送第一个数据包时,记录当前时间(current time)为开始时间(start time)。
b)持续发送数据包,并且对每个发送的数据包,使用当前时间(current time)打上时间戳(timestamp)。
c)当发生了丢包(由重复确认或者计时器超时探测出来的),记录最后一个数据包的时间戳(timestamp)为结束时间(end time),并且立即重传丢失的数据包,执行d);否则,返回b)。
d)周期样本即为结束时间(end time)与开始时间(start time)之差,清空所有记录,返回a)重新取样。
根据以上算法,可以得到多个周期样本x1,x2,x3…xn。
根据以上取得的周期样本,根据公式(1)计算出样本的平均值
公式(1)
其中,xi是样本值,N是样本个数,是样本的平均值。
为了避免存储所有的样本值,可以使用迭代的方法计算平均值,如公式(2):
公式(2)
其中,xN+1是当前的样本值,N是前一次的样本个数,是前一次样本的平均值。根据历史记录可以用迭代的方法得出本次的平均值
同理,可以根据公式(3)计算出样本的标准差
公式(3)
其中,xi是样本值,N是样本个数,是样本的平均值,SN是样本的标准差。
为了减小计算量,使用迭代的方法计算标准差,如公式(4):
公式(4)
其中,xN+1是当前的样本值,N是前一次的样本个数,是前一次样本的平均值,SN是前一次样本的标准差。根据历史记录可以用迭代的方法得出本次的标准差SN+1。
然后,根据中心极限定理,利用置信区间的方法计算出可以评估周期u,如公式(5):
公式(5)
其中,N是样本个数,是样本的平均值,S是样本的标准差,α为显著性水平,Z1-α/2可以通过查表法得知。
据此,本发明实施例可以根据公式(6)计算路径i的质量Qi。
公式(6)
其中,是评估周期内最后一个数据离开的时间,是评估周期内第一个数据进入的时间。buffersizei是评估周期内缓存区处理的数据量。
从最后一次计算Qi起,如果发生了丢包,或者计时超过了当前的评估周期ui,Qi必须重新计算。Qi是评估路径i传输能力的主要标准,Qi值越少证明路径i的质量越好,传输能力越高。如果某条路径评估周期u小于路径的重传超时值(RTO),可以认为此路径丢包率很高,不适合传输,并把此路径标记成不活动的(inactive)。
数据并行传输算法:
根据本发明实施例的评估结果,DDS会周期性地从所有路径中选出活动(active)路径供CMT使用,并从这些活动路径中选出传输时间最短的路径,作为当前数据的发送路径,且动态的控制这次分配的数据量,从而尽量保证数据包的有序到达。
在新数据待传输的时候,发送端能够发送的数据收到三个因素限制:拥塞窗口(cwnd),接收端通告窗口(a rwnd)和发送缓存(rwnd)。根据SCTP的规范和多家乡的特性,为避免拥塞和缓存阻塞的发生,发送端在所有路径上允许发送的最大数据量Dmax如公式(7)所示:
公式(7)
其中,cwndi是路径i的拥塞窗口大小,outstandingi是路径i上已经发送但是未收到回应的数据量,rwnd是接收缓存大小,n是可供使用的活动路径条数,Dmax为发送端在所有路径上允许发送的最大数据量。
其中,接收缓存大小如公式(8)所示:
公式(8)
根据评估得到的活动路径i传输能力Qi,可以得到在一个RTT内发送一个cwnd数据需要的时间如公式(9)所示:
公式(9)
为了能利用上尽量多的活动路径,DDS选择最大的作为数据分配周期Pd如公式(10)所示:
公式(10)
根据SCTP的传输特性,路径i的拥塞窗口cwnd和已分配数据Di之间的关系如公式(11)所示:
公式(11)
根据公式(12)可以计算出数据最早可在第k轮被发送出去:
公式(12)
由此可以得到,路径i要传输所有的分配数据Di所需要的时间Ti如公式(13)所示:
Ti=k*Qi*cwndi 公式(13)
因此,DDS选择Ti值最小的路径作为当前数据的发送路径,并分配cwndi+(k-1)*MTU作为这次发送的数据量,投放到路径i的发送端缓存中。然后,更新Di,重新计算Ti。
当计时超过分配周期Pd时,重新获取各路径的Qi,cwndi,然后重新计算Pd和Ti。
优化的重传机制:
在无线网络中,信道的频率时变特性不可避免会引起数据包传输的丢失,因此SCTP的重传机制非常有必要。但是,SCTP现有的两种重传机制:快速重传和超时重传,都没有区分丢包的原因,盲目的认为是网络拥塞引起的丢包,从而减低拥塞窗口(cwnd)影响传输效率。ORP引进新的重传策略来对丢包的原因进行分辨,优化了SCTP重传的拥塞控制。
在无线环境下,丢包原因可以分为三种:由于带宽不足而引起的拥塞丢包;由于无线噪声干扰而引起的数据错误丢包;由于路径失效切换而引起的转移丢包。在大多数情况下,无线传输数据包丢失的原因是数据错误丢包或者转移丢包,而不是拥塞丢包。数据错误丢包可以由SACK来探测,转移丢包可以由计时器超时来探测。而且,这两种丢包并不是由于网络拥塞而引起的,即使丢包,网络带宽还足够支持更大的数据容量,因此没必要减低拥塞窗口(cwnd)。
当探测到有一次丢包的时候,如果则ORP认为丢包不是由于网络拥塞引起,而是无线信道的随机丢包。ORP令SCTP不会去减低cwnd的大小,保持现有的发送速率;否则,认为是拥塞丢包,使用SCTP的拥塞控制,减低cwnd大小,从而减低发送速率。
如果丢包连续发生,则ORP认为可能发生了网络拥塞,令SCTP使用标准的方法减低cwnd的大小,控制发送速率;如果丢包是由计时器超时引起的,此传输路径应该标记成不活动的(inactive)。
无论是什么原因发生的丢包,ORP都必须尽快在DDS选出来Ti值最小的路径上重传。
本发明实施例中,通过对现有的SCTP协议进行改进,基于现有的多路并行传输方案进行优化,用于在异构无线网络环境下,更好的提供流媒体视频传输服务。本发明设计的路径质量评估模型,通过计算周期内数据进出发送端缓存速率,来衡量和预测每条路径的传输能力,并从中选出适于传输的多条活动路径。基于评估结果,利用数据分配调度算法,选择传输时间最短的路径进行动态数据发送,尽可能保证数据的有序性。同时,改进了SCTP的重传机制和拥塞控制,从而区分丢包原因,保证传输效率。本发明的解决方案能够准确的对路径质量进行评估,自适应的分配数据到发送路径,有效的提高流媒体数据传输质量,减少数据重传,缓解数据无序性,降低网络负载,提高流媒体用户的体验效果。