专利名称:一种恶劣信道下的tcp加速方法
技术领域:
本发明为一种TCP (Transmission Control Protocol,传输控制协议)加速的方法,属于TCP加速算法中的分段连接算法(SPLIT CONNECT 10NAPPR0ACHES),也是一种TCP加速代 (PEP, Performance EnhancmentProxy)
背景技术:
喷泉码主要包括LT码和Raptor码两种,LT码是喷泉码的基础形式,Raptor码是喷泉码改进形式。LT码的编码长度是任意的,可以从Ι-bit 二进制符号一直到任意n-bit。 LT码是无码率的码,也就是说,从数据得到的编码符号可以是无限多的。而且,编码符号可以随意产生,可以根据需要产生任意多个。同时解码器可以由比编码前数据长度多一点的编码数据恢复出原始数据。因此,无论网络有多少丢包,怎样丢包,编码器都可以产生足够多的编码分组,直到解码器接收到足够多并成功解码。由于解码器可以只用比原始数据多一点点的编码数据来恢复原始数据,LT码对于丢包信道可以说是接近理想的。所以总的说 LT码是相对于任意丢包信道都接近理想并且随数据量增长也非常高效的一种编码方式。下面给出一个简单的例子来说明LT码的编解码。假设整个数据共有3-bit,每个bit为一个原始分组,如图IA所示,编码器将随机取出N个原始分组(N称为“权重”),并对其做异或操作得到编码分组。一种编码的举例如图IB所示。图IB中的连线表示编码分组是由哪几个原始分组异或而来。解码器看到的情况如图IC所示,解码过程开始时,首先寻找只有一个连接线(即只由一个编码分组异或得来) 的编码分组。如果没有这样的分组到来,则解码暂停并等待这种分组的到来。在我们的例子中,第一个编码分组正是这样的分组。通过这一分组解码器得到第一个原始分组为1。之后解码器会搜寻将所有跟第一个原始分组有连线的编码分组的连线都消去,即异或第一个原始分组。这样第一步解码完成后情况如图1D。在图ID所示的阶段,将会循环上述步骤直到解码完成。在这个例子中,第四个编码分组只有一条连线,故可以恢复出第三个原始分组为1,之后即可根据第二个编码分组恢复出第二个原始分组为0。传统TCP在无线网络中主要有两个问题第一,在包含有线网络和无线网络的异质环境中缺乏有效的错误检测机制。传统 TCP是针对有线传输介质提出的,将丢包都归结于网络拥塞;在无线网络环境下存在许多与拥塞无关而可以导致丢包的原因。如无线信道突发性位错误、移动设备处在切换过程中、 ^MfWM (fading channel)等。第二,传统TCP在无线网路中缺乏有效的错误恢复机制。传统TCP在检测出丢包后触发拥塞控制处理过程,首先重传未被确认的包,然后减小拥塞窗口从而降低发送速率, 进而激活拥塞控制机制,包括超时时钟指数回退、减小慢启动阈值,最后进入拥塞避免阶段以确保拥塞得以解除。而无线网络BER高,使用这种错误恢复会使协议性能下降,吞吐量的下降和延迟的增加。
发明内容
根据本发明的一个方面,提供了一种传输控制协议(TCP)加速方法,其特征在于包括判断延迟是否大于一个第一预定值;在所述延迟判断的结果为“是”时,进行喷泉码加速;在所述延迟判断的结果为“否”时,判断丢包率是否大于一个第二预定值;当所述丢包率判断的结果为“是”时,采用选择性重传;当所述丢包率判断的结果为“否”时,采用传统的TCP方案。根据本发明的另一个方面,提供了一种传输控制协议(TCP)加速器,其特征在于包括数据预读取部分,用于处理网络中原始数据帧,分析其协议类型;数据读取部分,用于分析TCP数据包的内容,通过查看内容判断是否需要进行加速服务;加速器缓存部分,用于根据TCP数据的顺序对其进行排序;加速方案决策部分,用于选择合适的加速方案;普通TCP处理部分,用于执行标准TCP工作;重发加速处理选择部分,用于执行选择性重传加速;喷泉码加速处理部分,用于执行喷泉码加速。
图1显示了一个简单的例子,用来说明LT码的编解码。图2显示了一个典型的多用户接入网络的实例的网络拓扑。图3用于说明是否启用加速处理以及选择何种加速方式进行处理的选择的一个实施例。图4给出了详细执行选择性重传加速的流程一个实施例。图5显示了图4、图6中服务器针对TCP数据包的一种进行方式实施例。图6给出了详细执行喷泉码加速的流程的一个实施例。图7显示了图3的方案中的喷泉码加速处理的一种进行方式实施例。图8给出了加速器模块化结构图的一种进行方式实施例
具体实施例方式本发明根据网络的具体状况采用两种方式进行加速处理,选择性重传方式(SACK) 和喷泉码加速方式。选择性重传(SACK)的方式进行TCP的加速,由于每次对一组数据分组内丢失的数据进行确认,避免不必要的重传,进而减小时延,提高网络吞吐量。另一方面,NACK方法可以让信道保持连续的传输,而不需要停止等待下一个数据分组的确认,然而在TCP中,必须每次确认已正确发送一组数据后,才会发送下一组,因此对于信道的利用率不高。
但是选择重传方法存在的问题是,当延迟增加的时候,由于反馈确认的时间增加, 从而导致超时和无效重发次数增加,因此信道的利用率随着延迟的增加而降低。由于喷泉码对丢包信道是接近理想的,且不需要保证传输的可靠性,对丢包不敏感。因此本发明在加速器之间采用喷泉码编解码的流传输技术,利用喷泉码的无码率特性, 源源不断地发送编码数据包,在占满信道的情况下,还能在最大程度上减少反馈信道的使用。与选择性重传和传统TCP相比,在丢包率和延迟较大的时候均具有较大优势。当然,由于喷泉码的引入,对于编解码速率无法与现有IOOMbps的无线网络相比。 经过实际测试编码码率一般能达到lOMpbs,解码码率在5Mbps左右。因此,本发明提出一种自适应的加速方案。在丢包率和延迟均较小的时候,本发明所提及的设备能够采用标准TCP 进行通信;而当丢包率较高而延迟仍然较小的时候,设备可以采用较快的选择性重传方案; 当丢包率和延迟均较大的时候,则自动切换到喷泉码加速方案,确保充分利用信道资源。图 3、图7给出了这种切换的原则。本发明可以显著改进TCP协议在恶劣信道下的吞吐量,甚至使其接近理想情况。如图2所示网络拓扑是一个典型的多用户接入网络的实例。图中201、202、203为三个示例性的局域网,a、b、c分别为这三个局域网的网关服务器,本发明的应用程序就安装这些网关服务器上,图中“网络” 204表示局域网201、202、203之间的网络链路。al、a2、 a3、c 1、c2等代表各个局域网的用户。图2中本发明对应的TCP加速器是网络中的网关服务器a、b、c中的一个模块。客户端与客户端通信的方式是子网内客户端将数据报文发送给网关,由网关统一将数据转发给网络中其他网关。当数据报文到达对应网段的网关后,该网关将数据发送给目的客户端,最终实现了端到端的数据报文传输。本发明实现了对恶劣环境下的TCP协议的加速代理。如图7所示,根据本发明的一个实施例的加速方法包括接收到TCP报文后,对子网内的客户端按照标准TCP协议主动回复该数据包已接收到。并开启新的TCP连接加速器包括在局域网的网关中,并具有一定的过滤分析功能,只对TCP数据报文进行加速处理;对于其他类型的数据包,加速器仅作转发处理。数据包由发送端网关按照常规路由方式发送到下一个网关,直到被目的节点所在子网的网关接收后, 该网关对数据包进行处理,然后将之按照标准TCP协议发送给目的节点。图7显示了根据本发明的一个实施例的加速器的工作流程。根据本发明的一个实施例的TCP加速器,如图9所示,其主要工作流程如下901.网关上的加速代理模块定期发送网络探测包,获得网络状态(丢包率、延时) 的估计信息。902.当加速代理模块收到一个数据包后,首先判断该数据包不是TCP数据包, “是”则进入904 ;“否”则进入903。903.根据图3和图7的方法确定是否启用加速处理以及选择何种加速方式进行处理。图3中,X轴代表通信链路延时的增加,Y轴代表通信链路丢包率的增加,图中不同的图案表示在某种延时、丢包率情况下应该采用何种TCP加速方案。如图3所示,根据实际测试经验,作为一个示例性的实施例,可以按照如下方式决策
-当丢包率小于1%,延迟小于IOms的时候,采用标准TCP方式,不采用任何加速方案,进入904 ;-当丢包率大于1%,小于100%,而延迟小于IOms的时候,采用选择性重传方案, 进入905 ;-当延迟大于IOms的时候,采用喷泉码加速方案,进入906。904.查看数据包的目的地址,按照路由表直接进行转发处理。905.按照选择式重传方式进行加速处理,随后进入907。906.按照喷泉码加速方式进行处理,随后进入907。907.处理结束。图4给出了从发送端到接收端的详细执行选择性重传加速的流程。如图4所示,假设客户端A向客户端D发送一组TCP报文,B是A的网关加速器,C 是D的网关加速器。401.当A把数据发送到网关加速器B后,网关加速器B按照图5方式伪应答A,向 A确认该数据报文已经发送成功;402.网关加速器B将该数据分组重新排列并存入对应TCP连接的缓存中;403.网关加速器B将数据转发到网关加速器C ;404.网关加速器C创建接收缓冲,并每隔预定时间(如0. 5秒)检查是否有丢包; 若发现有丢包,则把所有丢包的编号加入到T0S_ACK消息包内,并发送给B ;405.若网关加速器B收到T0S_ACK消息包,则将所有涉及的丢包再重新发送给网关加速器C ;406.在网关加速器C的接收缓存处,若收到连续的数据块,则将该连续数据发送给目的节点D,直到最后TCP流发送完毕,发送FIN。图10给出了工作在网关(B和/或C)上的根据本发明的TCP加速器的具体工作流程。1001.对从网卡提取的TCP数据包进行缓存。1002.判断数据包的类型是否是T0S_ACK数据包,如果“是”则进入1003,“否”则进入1004。1003.查找TCP数据缓存,重发对应序列号的TCP数据包,并将TCP数据缓存中该序列号之前的数据删除。1004.判断上述TCP数据包的目的地址,如果是所述网关(B或C)的内部局域网地址则进入1007,如果是其外部网络则进入1005。1005.向上述TCP数据包的发送端发送伪应答TCP数据包。1006.按照上述TCP数据包的目的地址进行转发处理。1007.按照不同的TCP连接以及相应的TCP数据包序列号进行顺序缓存处理。1008.根据接收的TCP数据包的序列号更新丢失数据包序列号缓存。1009.定时查找各个TCP连接的数据缓存,随后进入1010。1010.判断某个TCP连接的缓存序列号是否存在连续的缓存序列号,若“是”则进 A 1011。1011.把连续序列号的TCP数据包按照目的地址发送给相应的接收端。
1012.定期查看丢失数据包序列号缓存,把相应的丢失包序列号封装到T0S_ACK 数据包中,发送给发送端的网关服务器。如图6所示,假设客户端A向客户端D发送一组TCP报文,B是A的网关加速器,C 是D的网关加速器。图6给出了从发送端到接收端的详细执行喷泉码加速的流程的一个实施例,其包括-当A把数据发送到网关加速器B后,网关加速器B按照图5方式伪应答A,向A 确认该数据报文已经发送成功;-B将该数据分组重新排列并存入对应TCP连接的缓存中;-在所述缓存中,为每一个TCP连接流分配一个相应的编码器,对数据进行编码, 编码后将编码信息保存,并将数据发送给网关加速器C ;-网关加速器C接收到数据后,根据数据携带的编码信息将数据送入到对应解码器进行解码;若解码成功发送进入第5步,不成功则继续等待;若等待时间超时则进入解码不成功情况;-由于解码成功,则将解码后数据包放入待发送缓存,并向网关加速器B发送ACK_ DONE数据包;-若解码不成功,且等待超时仍未解码成功,则发送T0S_ACK信息包给网关加速器 B,以表明某一组数据分组没有解码成功;-若网关加速器B接收到ACK_D0NE,说明该分组对应的数据包被解码成功,则删除步骤3中保存的编码信息;-若网关加速器B接收到T0S_ACK,则说明该分组对应的数据包尚未解码成功,则补发编码数据给C ;-若待发送缓存是连续的数据分组,则将数据发送给目的节点D,直到发送完毕。图11给出了网关服务器上的加速器执行喷泉码加速的流程。1101.对从网卡提取的TCP数据包进行缓存。1102.判断数据包是否是T0S_ACK数据包,如果“是”则进入1103,“否”则则进入 1104。1103.根据T0S_ACK数据包中的信息从编码器信息中查找相应的编码信息,如度分布、初始结束序列号等,从缓存的TCP数据中查找相应的TCP数据包重新进行编码并发送。1104.判断是否是T0S_D0NE数据包,如果“是”则进入1105,“否”则进入1106。1105.删除所述T0S_D0NE数据包中传回的编码器信息,删除TCP缓存队列中相应的数据包。1106.判断所述TCP数据包的目的地址,如果是该网关的内部局域网地址则进入 1110,如果是其外部网络则进入1107。1107.向该TCP数据包的发送端发送伪应答TCP数据包。1108.进入喷泉码编码模块进行编码。1109.在编码成功时,挂起编码器,保存编码器信息,并发送已完成的编码数据包。1110.根据不同编码数据包初始化相应的解码器,并保存。1111.将接收的数据包放入相应的解码器进行解码。
1112.判断解码是否失败,如果超过时限没有收到后续的编码数据包,则判定该解码器解码失败,随后,进入1114 ;否则判定解码成功,随后,进入1113。1113.发送T0S_D0NE数据包,删除相应的解码器信息,把解码数据包缓存起来。1114.在解码失败的情况下,发送T0S_ACK数据包以使发送端加速器重新编码并且重发该系列编码数据包。1115.定期查看成功解码的数据包缓存。1116.判断某个TCP连接的成功解码数据包缓存队列是否存在连续序列号的数据包,如“是”则进入1117。1117.按照连续序列号TCP数据包的目的地址进行发送。图7给出了根据本发明的喷泉码加速处理方法的一个实施例。如图7所示,在网关需要对新的数据分组进行加速,网关需要选择适当的加速方案。根据该实施例的方法包括701.网关首先估计当前的信道参数,包括丢包率和延迟;估计方法可以有多种。一种方案是主动监测,通过发送侦测包并通过接收反馈包估计信道;具体计算方
法是丢包率P = N接收数据包/N发送数据包,延迟Delay = T接收数据包-Τ发送数据包;其中数据包的数量N a收数据包,已发送的数据包数量是N发送数据包,发送数据包的时间为Isfil数据包,接收反馈数据包的时丨司为T接收数据包;另一个方案中,网关通过接收T0S_ACK信息包来估计对方网关成功接收率和延迟信息。T0S_ACK信息包内包含了对方网关成功接收到数据包的数量^ftiafra,又已知已发送的数据包数量是Nsfiaafra,因此丢包率为ρ = Naftm/Nsfiim ;发送TCP数据包的时间为
丁发送数据包,—1^丁(^_八0(^1^]0^|1]力T接收数据包,^( Delay = T接收数据包_T发送数据包;T0S_ACK信息包描述如图4、图5描述的流程所述;702.分析延迟是否大于一个预定值(例如,10毫秒,也可以根据网络情况等设定为其他值),如果大于则进入步骤703的喷泉码加速方案,“否”则进入步骤704的判断丢包率;703.由于信道情况适合喷泉码加速,因此采用喷泉码方案进行加速;704.分析丢包率是否大于一个预定值(例如,1%,也可以根据网络情况等设定为其他值),如果大于则进入步骤705的选择重传方案,“否”则进入步骤706的传统TCP方案;705.由于信道情况适合选择重传加速,因此采用选择重传方案进行加速;706.由于信道情况适合传统TCP,因此不做任何加速方案,直接进行TCP转发。图8给出了根据本发明的加速器的模块结构一个实施例,包括是数据预读取模块 801,用于处理网络中原始数据帧,分析其协议类型,对于不属于TCP协议的数据包一律直接交给正常网关做转发处理;对于TCP协议的数据包交给数据读取模块处理;该模块只分析数据包类型,不处理数据内容,因此工作速度较快,避免成为网络瓶颈;普通网关模块802,用于起到传统网关功能;数据读取模块803,用于分析所有TCP数据包的内容,通过查看内容判断是否需要进行加速服务;有的TCP数据包可能是来自不支持加速功能的网络,如果遇到这种类型的 TCP数据包,则将数据包直接交给正常网关做转发处理;如果是需要加速的数据包,则交给加速器缓存;加速器缓存模块模块804,用于根据TCP数据的顺序对其进行排序。由于处于恶劣网络环境,因此包的到达可能乱序,故这里需要将TCP数据包进行排序;加速方案决策器模块805,用于按照诸如图7的实施例的方式选择合适的加速方案;普通TCP处理模块806,用于执行标准TCP工作;重发加速处理选择模块807,用于按照如图4的实施例所示的流程进行工作;喷泉码加速处理模块808,用于执行如图6的实施例所示的工作流程。本发明的用途包括-在hternet或者无线自组织网络中充当网关功能,为子网内节点提供加速服务,例如图1所示;-在个人手持终端的蓝牙、WLAN点对点通信中,通过安装软件提供本发明所提及的网络加速服务;-在由于恶劣应用环境和可能的干扰造成信道不稳定的情况下,可以使用本发明所提及的网络加速功能为军事通信提供可靠传输保证。本发明的有益效果包括-由于TCP被设计于可靠的网络环境中,因此当丢包率或者延迟增加少许都会导致TCP传输性能急剧恶化。因此在大多数的无线网络环境,尤其是较为复杂的多条无线网络环境或者是干扰严重的网络中,TCP无法充分利用信道资源甚至无法保证传输的可靠完成。采用本发明,可以自适应的担当网络加速的功能,当网络环境良好的时候提供速率较高的TCP传输,当网络环境恶化时可以自主切换到加速模式,起到充分利用信道的作用。测试表明,本发明即时在丢包率90 %以上,延迟2秒钟左右的环境里也可以正常工作,并提供接近信道容量的传输性能。-另一方面,本发明只对网络转发节点——网关做了增加性的改进,因此对于客户端,也即用户而言是透明的。用户一方面无需升级设备软硬件,只需要采用标准的网络协议即可接入网络;另一方面用户无需了解网络复杂的环境变化,对于网络参数恶化对于用户而言仅仅是传输速率的浮动,因此在最大限度上保障了用户的体验。本发明应用于恶劣的无线信道下,可以解决传统TCP以及其他TCP改进算法在实际恶劣无线环境应用环境下吞吐量低的问题,有效利用了信道,大大提高了无线频谱的利用率。适用于军队、应急、抢险救灾等多种恶劣应用场景下的快速一对一、一对多乃至多对多的通信环境。应当理解的是,在以上叙述和说明中对本发明所进行的描述只是说明而非限定性的,且在不脱离如所附权利要求书所限定的本发明的前提下,可以对上述实施例进行各种改变、变形、和/或修正。
权利要求
1.一种传输控制协议(TCP)加速方法,其特征在于包括 判断延迟是否大于一个第一预定值(步骤702);在所述延迟判断的结果为“是”时,进行喷泉码加速(步骤703);在所述延迟判断的结果为“否”时,判断丢包率是否大于一个第二预定值(步骤704);当所述丢包率判断的结果为“是”时,采用选择性重传(步骤705);当所述丢包率判断的结果为“否”时,采用传统的TCP方案(步骤706)。
2.根据权利要求1所述的方法,其特征在于所述喷泉码加速(步骤70 进一步包括 对从网卡提取的TCP数据包进行缓存(步骤1101);判断数据包是否是T0S_ACK数据包(步骤1102);在上述T0S_ACK数据包判断步骤的结果为“是”时,根据T0S_ACK数据包中的信息从编码器信息中查找相应的编码信息,从缓存的TCP数据中查找相应的TCP数据包重新进行编码并发送(步骤1103);在上述T0S_ACK数据包判断步骤的结果为“否”时,判断是否是T0S_D0NE数据包(步骤 1104);在上述T0S_D0NE数据包判断步骤的结果为“是”时,删除所述T0S_D0NE数据包中传回的编码器信息,并删除TCP缓存队列中相应的数据包(步骤1105);在上述T0S_D0NE数据包判断步骤的结果为“否”时,判断所述TCP数据包的目的地址 (步骤 1106);如果上述目的地址被判断为该网关的外部网络地址,向该TCP数据包的发送端发送伪应答TCP数据包(步骤1107),并进入喷泉码编码模块进行编码(步骤1108),并在编码成功时挂起编码器、保存编码器信息、并发送已完成的编码数据包(步骤1109);如果上述目的地址被判断为该网关的内部局域网地址,根据不同编码数据包初始化相应的解码器并保存解码器信息(步骤1110),并将接收的数据包放入相应的解码器进行解码(步骤1111),并判断解码是否失败(步骤1112),在解码成功时,发送T0S_D0NE数据包、删除相应的解码器信息、并把解码数据包缓存起来(步骤1113);在解码失败的情况下,发送T0S_ACK数据包以使发送端加速器重新编码并且重发该系列编码数据包(步骤1114);定期查看成功解码的数据包缓存(步骤1115);判断某个TCP连接的成功解码数据包缓存队列是否存在连续序列号的数据包(步骤 1116);如“是”则进入1117。在存在连续序列号的数据包的情况下,按照连续序列号TCP数据包的目的地址进行发送(步骤1117)。
3.根据权利要求1所述的方法,其特征在于所述选择性重传(步骤70 进一步包括 当一个第一客户端(A)把数据发送到一个第一网关加速器(B)后,第一网关加速器(B)对所述第一客户端(A)作伪应答,向第一客户端(A)确认该数据的报文已经发送成功(步骤 401);所述第一网关加速器(B)将所述数据分组重新排列并存入对应的TCP连接的缓存中 (步骤402);所述第一网关加速器(B)将所述数据转发到一个第二网关加速器(C)(步骤403); 所述第二网关加速器(C)创建接收缓冲,并每隔预定时间检查是否有丢包;若发现有丢包,则把所有丢包的编号加入到T0S_ACK消息包内,并发送给所述第一网关加速器(B) (步骤404);若所述第二网关加速器(B)收到所述T0S_ACK消息包,则将所有涉及的丢包再重新发送给所述第二网关加速器(C)(步骤405);若在所述第二网关加速器(C)的接收缓存处收到连续的数据块,则将该连续数据发送给一个目的节点(D),直到最后TCP流发送完毕(步骤406)。
4.根据权利要求1所述的方法,其特征在于所述喷泉码加速(步骤70 进一步包括 当一个第一客户端(A)把数据发送到一个第一网关加速器(B)后,第一网关加速器(B)向A确认该数据报文已经发送成功;所述第一网关加速器(B)将所述数据分组重新排列并存入对应TCP连接的缓存中; 在所述缓存中,为每一个TCP连接流分配一个相应的编码器,对数据进行编码,编码后将编码信息保存,并将数据发送给一个第二网关加速器(C);所述第二网关加速器(C)接收到数据后,根据数据携带的编码信息将数据送入到对应解码器进行解码;在解码成功的情况下,则将解码后数据包放入待发送缓存,并向所述第一网关加速器 (B)发送ACK_D0NE数据包;在解码不成功且等待超时仍未解码成功的情况下,则发送T0S_ACK信息包给第一网关加速器(B),以表明某一组数据分组没有解码成功;在第一网关加速器(B)接收到ACK_D0NE时,说明该分组对应的数据包被解码成功,则保存的编码信息;若网关加速器B接收到T0S_ACK,则说明该分组对应的数据包尚未解码成功,则补发编码数据给所述第二网关加速器(C);若待发送缓存是连续的数据分组,则将数据发送给一个目的节点(D)。
5.一种传输控制协议(TCP)加速器,其特征在于包括数据预读取部分(801),用于处理网络中原始数据帧,分析其协议类型; 数据读取部分(803),用于分析TCP数据包的内容,通过查看内容判断是否需要进行加速服务;加速器缓存部分(804),用于根据TCP数据的顺序对其进行排序; 加速方案决策部分(805),用于选择合适的加速方案; 普通TCP处理部分(806),用于执行标准TCP工作; 重发加速处理选择部分(807),用于执行选择性重传加速; 喷泉码加速处理部分(808),用于执行喷泉码加速。
6.根据权利要求5的加速器,其特征在于进一步包括 普通网关部分(802),用于起到传统网关的功能。
7.根据权利要求5的加速器,其特征在于所述加速方案决策部分(80 所进行的选择合适的加速方案的处理包括判断延迟是否大于一个第一预定值(步骤702);在所述延迟判断的结果为“否”时,判断丢包率是否大于一个第二预定值(步骤704)。
8.根据权利要求5的加速器,其特征在于所述重发加速处理选择部分(807),所执行的选择性重传加速包括当一个第一客户端(A)把数据发送到一个第一网关加速器(B)后,第一网关加速器(B) 对所述第一客户端(A)作伪应答,向第一客户端(A)确认该数据的报文已经发送成功(步骤 401);所述第一网关加速器(B)将所述数据分组重新排列并存入对应的TCP连接的缓存中 (步骤402);所述第一网关加速器(B)将所述数据转发到一个第二网关加速器(C)(步骤403); 所述第二网关加速器(C)创建接收缓冲,并每隔预定时间检查是否有丢包;若发现有丢包,则把所有丢包的编号加入到T0S_ACK消息包内,并发送给所述第一网关加速器(B) (步骤404);若所述第二网关加速器(B)收到所述T0S_ACK消息包,则将所有涉及的丢包再重新发送给所述第二网关加速器(C)(步骤405);若在所述第二网关加速器(C)的接收缓存处收到连续的数据块,则将该连续数据发送给一个目的节点(D),直到最后TCP流发送完毕(步骤406)。
9.根据权利要求5的加速器,其特征在于所述喷泉码加速处理部分(808)所执行喷泉码加速处理包括当一个第一客户端(A)把数据发送到一个第一网关加速器(B)后,第一网关加速器(B) 向A确认该数据报文已经发送成功;所述第一网关加速器(B)将所述数据分组重新排列并存入对应TCP连接的缓存中; 在所述缓存中,为每一个TCP连接流分配一个相应的编码器,对数据进行编码,编码后将编码信息保存,并将数据发送给一个第二网关加速器(C);所述第二网关加速器(C)接收到数据后,根据数据携带的编码信息将数据送入到对应解码器进行解码;在解码成功的情况下,则将解码后数据包放入待发送缓存,并向所述第一网关加速器 (B)发送ACK_D0NE数据包;在解码不成功且等待超时仍未解码成功的情况下,则发送T0S_ACK信息包给第一网关加速器(B),以表明某一组数据分组没有解码成功;在第一网关加速器(B)接收到ACK_D0NE时,说明该分组对应的数据包被解码成功,则保存的编码信息;若网关加速器B接收到T0S_ACK,则说明该分组对应的数据包尚未解码成功,则补发编码数据给所述第二网关加速器(C);若待发送缓存是连续的数据分组,则将数据发送给一个目的节点(D)。
全文摘要
本发明应用于恶劣的无线信道下,可以解决传统TCP以及其他TCP改进算法在实际恶劣无线环境应用环境下吞吐量低的问题,有效利用了信道,大大提高了无线频谱的利用率。适用于军队、应急、抢险救灾等多种恶劣应用场景下的快速一对一、一对多乃至多对多的通信环境。本发明的TCP加速方法包括判断延迟是否大于一个第一预定值(步骤702);在所述延迟判断的结果为“是”时,进行喷泉码加速(步骤703);在所述延迟判断的结果为“否”时,判断丢包率是否大于一个第二预定值(步骤704);当所述丢包率判断的结果为“是”时,采用选择性重传(步骤705);当所述丢包率判断的结果为“否”时,采用传统的TCP方案(步骤706)。
文档编号H04L29/06GK102299899SQ20101020826
公开日2011年12月28日 申请日期2010年6月24日 优先权日2010年6月24日
发明者刘洪全, 刘鹏飞, 宋思明, 谷源涛 申请人:清华大学