Tcp协议的数据包发送方法和系统的制作方法
【专利摘要】本发明实施例提供一种TCP协议的数据包发送方法和系统,方法包括:首次发送时发送多个数据包;当在第i次发送Si个数据包失败时,在第i+1次基于衰减参数发送Si+1个数据包,其中,所述衰减参数小于2;和/或当基于第一增长参数以指数增长的方式在第j次成功发送数据包的数量Sj达到或超过阈值时,在第j+1次基于第二增长参数发送Sj+1个数据包,其中,所述第二增长参数小于第一增长参数。本发明通过在启动时发送多个数据包,减慢衰减,控制增长的方式,克服了现有技术中启动慢,衰减快的缺陷,实现了数据包的加速传输,用户体验较好。
【专利说明】
TCP协议的数据包发送方法和系统
技术领域
[0001] 本发明实施例设及网络协议技术领域,尤其设及一种TCP协议的数据包发送方法 和系统。
【背景技术】
[0002] 随着互联网技术发展越来越迅猛,越来越多人通过网络进行办公、娱乐等,对数据 传输速率的要求也越来越高。现有技术中,数据包传输时采用拥塞控制的方式,即慢启动、 加性增、减性乘W及对超时事件做出反应的原则。其中慢启动即启动时发送很少的数据包, 之后指数增长;加性增指的是增长到一定的阔值之后用加法的方式增长;减性乘即发送失 败之后指数衰减,一般指成倍的衰减具体可参照图1及其叙述。运种方式传输数据包增加得 太慢而又减少得太快,用户体验不好。
【发明内容】
[0003] 本发明实施例提供一种TCP协议的数据包发送方法和系统,用W解决现有技术中 数据传输太慢用户体验不好的缺陷,实现数据包的加速传输。
[0004] 本发明实施例提供一种TCP协议的数据包发送方法,包括:
[0005] 首次发送时发送多个数据包;
[0006] 当在第i次发送Si个数据包失败时,在第i+1次基于衰减参数发送Sw个数据包,其 中,所述衰减参数小于2;
[0007] 当基于第一增长参数W指数增长的方式在第j次成功发送数据包的数量&达到或 超过阔值时,在第j+1次基于第二增长参数发送Sw个数据包,其中,所述第二增长参数小于 第一增长参数。
[000引本发明实施例提供一种TCP协议的数据包发送系统,包括:
[0009] 快启动单元,配置用于首次发送时发送多个数据包;
[0010] 慢衰减单元,配置用于当在第i次发送Si个数据包失败时,在第i + 1次基于衰减参 数发送SW个数据包,其中,所述衰减参数小于2;
[0011] 增长控制单元,配置用于当基于第一增长参数W指数增长的方式在第j次成功发 送数据包的数量&达到或超过阔值时,在第j+1次基于第二增长参数发送Sw个数据包,其 中,所述第二增长参数小于第一增长参数。
[0012] 本发明实施例提供的TCP协议的数据包发送方法和系统,通过在启动时发送多个 数据包,减慢衰减,控制增长的方式,克服了现有技术中启动慢,衰减快,增长太慢的缺陷, 实现了数据包的加速传输,用户体验较好。
【附图说明】
[0013] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现 有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发 明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可W根 据运些附图获得其他的附图。
[0014] 图1为现有技术中TCP协议的数据包发送方法流程图;
[0015] 图2a为本发明的TCP协议的数据包发送方法的一个实施例流程图;
[0016] 图化为本发明的TCP协议的数据包发送方法的另一个实施例流程图;
[0017] 图3为本发明的TCP协议的数据包发送方法的又一个实施例流程图;
[0018] 图4为本发明TCP协议的数据包发送系统的一个实施例结构示意图;
[0019] 图5为本发明TCP协议的数据包发送系统的又一个实施例结构示意图。
【具体实施方式】
[0020] 为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例 中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是 本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员 在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0021] 可W理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明 的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。需 要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可W相互组合。
[0022] W下先介绍现有技术及现有技术中存在的问题。
[0023] 请参考图1,其示出了现有技术中TCP协议的数据包发送方法流程图100。现有技术 中TCP协议的数据包发送方法包括W下步骤:
[0024] 如图1所示,在步骤101中,首次发送时发送少量数据包。
[0025] 现有技术中在数据包传输时通常采用的是慢启动,慢启动指的是服务器传输数据 包时假如当前传输数据包数为In,并且In为一个相对较小的数。
[0026] 在步骤102中,指数增长至某一阔值后,线性增长。
[0027] 在In的基础上进行指数增长,通常为成倍地增长,例如In为2,当In小于服务器默 认阔值(操作系统默认参数)时,下一次传输的数据包即为当前传输数据包的2倍,例如为2* 2 = 4个数据包,直至达到或者超过默认阔值。当达到或者超过默认阔值后,则按线性增长, 例如阔值为32,增长到32之后依然可W成功发送,则下次在32的基础上加上一个常数,例如 为1。
[0028] 在步骤103中,发送数据包失败时指数回退,成功时线性增长。
[0029] 其中,失败可W是在达到阔值之前,也可W是达到阔值之后。指数回退一般是成倍 的减少。例如当前发送数据包的数量为16,发送失败,则重新发送时,数量减为8,若发送成 功,下一次则发送例如8+1个。具体示例可参见表1。需要注意的是,表格仅为示例,仅仅为了 方便本领域技术人员能更好地理解本申请,并不代表实际的方案和应用。
[0030] 表1现有技术发送数据包示例表 「00311
[0032] 进一步参见表1,其示出了现有技术发送数据包示例表。从表1中可W看出,现有技 术中启动时由于发送的数据包数量较少,在第5次时才达到上限,回退时又太快,到第14次 才又达到上限。现有技术中还存在阔值,假设此阔值为8,则第4次之后就开始线性增长,运 样的话又需要经过多次才能再次到达上限(表中未示出)。而运中间有很多次由于发送的数 据包远没有达到上限,所W很浪费时间,影响用户体验。
[0033] 从上述的现有技术可W看出,现有技术中存在启动较慢,回退太快,增长较慢等问 题。例如当指数增长至发送16个包失败时,下一次直接降为8个包,但是在16个之前,8个已 经成功过,所W再降为8个时,一般情况下都能成功,之后增加又加得比较慢,运样的话发数 据包的数量很难上去,用户看视频或者进行其他网络活动时,通常会感觉到网络较慢,用户 体验不好。
[0034] 为了解决上述现有技术中存在的问题,提出了本申请的TCP数据包发送的技术方 案,下面将参考附图并结合实施例来详细说明本申请。需要注意的是本申请的方案对执行 的对象或者是搭载的系统并无限制,既可W适用于服务器端之间,也可W适用于客户端之 间,当然还可W用于服务器端到客户端或者是客户端到服务器端;对于所搭载的系统,既可 ^是1^;[]111义、1]]1;[义、胖;[]1(1〇¥3、、]\1日。、0〇3等系统,也可^是4]1化〇1(1、105、胖;[吨110]16等,本申请在 此方面没有限制。
[0035] 请参考图2曰,其示出了本发明的TCP协议的数据包发送方法的一个实施例流程图 210。包括W下步骤:
[0036] 如图2a所示,在步骤211中,首次发送时发送多个数据包。
[0037] 在本实施例中,当开始发送数据包时,首次就发送多个数据包。其中,多个可W是 根据W往发送数据包成功的最大纪录确定的,也可W是根据操作系统的阔值或者是服务器 的阔值W及网络状态等而确定,本申请在此方面没有限制。例如,W往发送数据包成功的最 大纪录为64,则首次发送时就可W发64个数据包。又例如,并无 W往的记录,则可W根据操 作系统的阔值确定,例如操作系统的阔值为32个,则首次发送时即可W发32个数据包。
[0038] 继而,在步骤212中,当在第i次发送Si个数据包失败时,在第i + 1次基于衰减参数 发送SW个数据包,其中,衰减参数小于2。
[0039] 在本实施例中,i可W为大于0的任何自然数,衰减参数可W为线性衰减参数、指数 衰减参数或者二者的结合。例如,i = 1,Si = 50,即首次发送数据包失败,则第2次发送数据 包时,基于一个衰减参数如指数衰减参数1/0.8,Si+i = 0.SSi,则Si+i = 40,当然,也可W是基 于线性衰减参数,如Si+i = Si-6,贝化i+1 = 34,该衰减参数还可W是二者的结合,本申请在方 面不作限制。
[0040] 在本实施例中,将衰减参数设计成使得Si/Sw小于2,实质上是为了避免衰减得太 快,相对于现有技术中将衰减参数设置成0.5而言,本申请的方案衰减速率更慢。在某些实 现方式中,还可W将该衰减参数设置得更小,例如小于1,W使发送数据包的数量不至于降 得太快。
[0041] 进一步参考图化,其示出了本发明的TCP协议的数据包发送方法的另一个实施例 流程图220。包括W下步骤:
[0042] 如图化所示,在步骤221中,首次发送时发送多个数据包。
[0043] 在本实施例中,刚开始发包时就发送多个数据包。例如,在播放视频时,首次发送 多个数据包,若发送成功,则可W让用户很快就能很流杨的看视频,可W极大地提升用户体 验。具体说明请对参考步骤211的说明。
[0044] 在步骤222中,当基于第一增长参数W指数增长的方式在第j次成功发送数据包的 数量&达到或超过阔值时,在第j+1次基于第二增长参数发送Sj + 1个数据包,其中,所述第 二增长参数小于第一增长参数。
[0045] 在本实施例中,第一增长参数可W为指数增长参数例如可W为2,阔值可W为操作 系统阔值、服务器阔值或者是根据网络状况如带宽等确定的阔值。其主要强调的是超过阔 值之后,将不再W第一增长参数增长,而是W小于第一增长参数的第二增长参数增长,运 样,既可W保证发送数据包的数量不会像现有技术中增长的太慢,又能降低一直W第一增 长参数增长所带来的发包失败对网络造成的冲击,例如第二增长参数可W为1.2。
[0046] 在本实施例中,由于第二增长参数设计成小于第一增长参数,可W在一定程度上 减缓对网络造成的负担,又能比现有技术更快地接近上限,从而使用户能够有很好的上网 体验。
[0047] 在另一些实施例中,还可W将图2a和图化的方案进行合并,W形成新的技术方案, 该合并无需付出创造性劳动,在此不再详述,仅仅举例说明W使本领域的技术人员能更好 的理解本方案。
[0048] 例如首次发送数据包时发送10个包,成功之后发送20个包,之后发送40个包时失 败,则下次可W将其线性衰减为30个,若成功,则之后可W将其线性或者指数增加至36个 包,运样的话由于波动不是很大,网络也不会受到太大的冲击,同时用户也能有更好的体 验。当然也可W在首次发送10个包之后,不按指数增长,而是按线性增长,例如增长为20,之 后30,之后40,其中线性增长的幅度可W不超过现有技术中指数增长的幅度。
[0049] 进一步参考图3,其示出了本发明的TCP协议的数据包发送方法的又一个实施例流 程图300。包括W下步骤:
[0050] 如图3所示,在步骤301中,首次发送时发送多个数据包。
[0051] 在本实施例中,首次发送的多个数据包可W是历史记录中最多的一次发包记录的 数量,若不存在该记录,则还可W是网络带宽能承受的发包数量或者是所使用的硬件或操 作系统的相关参数或阔值,本申请在此方面没有限制。其他说明可W参照步骤211和步骤 221的相关叙述,在此不再寶述。
[0052] 继而,在步骤302中,当在第k次发送Sk个数据包失败,在第k+1次基于所述衰减参 数发送Sw个数据包成功时,第k+2次基于第S增长参数发送数据包时,所述第S增长参数 设计成使得Sk+2<Sk,其中,所述第=增长参数包括所述第一增长参数或第二增长参数。。
[0053] 在本实施例中,第k次失败,第k+1次基于衰减参数后成功,在第k+2次发送时基于 第S增长参数发送数据包时,第S增长参数设计成使得Sk+2<Sk,该衰减参数可W是步骤212 中的衰减参数。该步骤的作用主要是为了保障衰减之后能大于之前成功的记录,防止做无 意义的回退。例如第k次为100,失败,第k+1次为100/1.5,成功,则第k+2次时,增长参数需小 于1.5,如增长参数为1.2,则Sk+2为(100/1.5)*1.2,运样,就可W保证Sk+2<Sk,从而回退的时 候不会再失败。
[0054] 在另一个实施例中,还可W是第a次成功,在第a+1次基于第四增长参数发送Sa+i个 数据包失败时,第a+2次基于第二衰减参数发送数据包时,所述第二衰减参数设计成使得 Sa+2〉Sa。如Sa= 100,Sa+1 = 100*1.2,第a巧次可 W是Sa+2 = (100*1.2)/1.1,由于Sa已经成功, Sa+2〉Sa,Sa+2才可W作为一个值得尝试的点;否则,Sa+2<Sa的话,由于Sa已经成功,所W Sa+2成 功的可能性会非常大,该方案并不适用于去逼近网络能承受的上限,从而也不利用更好的 用户体验。当然,如果要使数据包更好更快地发送,上述实施例中所描述的Sa+2<Sa的情况反 而更实用,本申请在此方面不作限制。
[0055] 在本实施例中,第=增长参数可W为第一增长参数或者第二增长参数,也可W是 另外定义的参数,本申请在此方面没有限制。当第k+1次成功时,Sw小于阔值时,第S增长 参数可W为第一增长参数;当第k+1次成功时,Sw大于等于阔值时,第S增长参数可W为第 二增长参数。
[0056] 在本实施例中,该步骤可W与步骤212和步骤222结合说明,由于步骤212和步骤 222与步骤302的结合在实际应用中会出现多种情况,因此并未在附图中示出此=个步骤的 关联或者先后次序。例如,发送数据包时首次发多个包,之后指数增长达到阔值之后线性增 长,失败之后线性回退;或者也可W首次发送多个包,之后线性增长,达到阔值之后W更慢 的速率线性增长,失败之后线性回退;其中,还可W包括失败之后线性回退之后的值须大于 之前成功时的值。本申请在此方面没有限制。本领域的技术人员根据本申请的实施例也能 组合出多种方案,运些方案都属于本申请的保护范围。具体示例可参见表2。需要注意的是, 表格仅为示例,仅仅为了方便本领域技术人员能更好地理解本申请,并不代表实际的方案 和应用。
[0057] 表2本发明发送数据包示例表 「mwl
[0059] ~进一步参考表2,其示出了本发明发送数据包示例表。从表2中可W看出由于首次~ 发送数据包时就发送16个,很快就达到了上限,之后由于衰减的不会太快,成功之后参照之 前成功的记录和失败的记录线性增长,逼近上限,很快就趋于稳定可W使网络尽快保持在 一个高速的状态,提升用户体验。
[0060] 应当注意,尽管在附图中W特定顺序描述了本发明方法的操作,但是,运并非要求 或者暗示必须按照该特定顺序来执行运些操作,或是必须执行全部所示的操作才能实现期 望的结果。相反,流程图中描绘的某些步骤可W改变执行顺序。附加地或备选地,可W省略 某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
[0061] 进一步参考图4,其示出了本发明TCP协议的数据包发送系统的一个实施例结构示 意图400。
[0062] 如图4所示,本实施例提供的的数据包发送系统包括:快启动单元401,慢衰减单元 402 W及增长控制单元403。
[0063] 快启动单元401,配置用于首次发送时发送多个数据包。
[0064] 慢衰减单元402,配置用于当在第i次发送Si个数据包失败时,在第i+1次基于衰减 参数发送SW个数据包,其中,所述衰减参数小于2。W及
[0065] 增长控制单元403,配置用于当基于第一增长参数W指数增长的方式在第j次成功 发送数据包的数量&达到或超过阔值时,在第j+1次基于第二增长参数发送Sw个数据包, 其中,所述第二增长参数小于第一增长参数。
[0066] 在本实施例中,快启动单元401用于首次发送多个数据包,其中多个可W是根据历 史最大纪录确定,也可W是根据预设的阔值确定,例如预设的阔值可W是64个数据包,还可 W是根据系统参数、操作系统阔值或者是根据网络状况确定。慢衰减单元402可W用于通过 控制衰减参数从而控制衰减速率。增长控制单元403可W是在阔值之前指数或者线性增长, 在达到阔值之后W更小的指数参数或者更小的线性参数增长。
[0067] 在本实施例中,各个单元之间可W独立执行,也可W相互配合W达到更好的效果, 例如快启动单元401与慢衰减单元402结合,可W实现快启动和慢衰减;快启动单元401与增 长控制单元403结合,可W实现启动和超过阔值之后减缓增长;慢衰减单元402与增长控制 单元403结合,可W实现慢衰减和超过阔值之后减缓增长;还可W是=个单元结合,同时实 现快启动、慢衰减和超过阔值之后减缓增长。本申请在此方面没有限制。
[0068] 进一步参考图5,其示出了本发明TCP协议的数据包发送系统的又一个实施例结构 示意图500。
[0069] 如图5所示,本实施例提供的的数据包发送系统包括:快启动单元501,慢衰减单元 502,增长控制单元503 W及防回退单元504。
[0070] 快启动单元501,配置用于首次发送时发送多个数据包。
[0071] 快启动单元501,配置用于当在第i次发送Si个数据包失败时,在第i+1次基于衰减 参数发送SW个数据包,其中,所述衰减参数小于2。W及
[0072] 增长控制单元503,配置用于当基于第一增长参数W指数增长的方式在第j次成功 发送数据包的数量&达到或超过阔值时,在第j+1次基于第二增长参数发送Sw个数据包, 其中,所述第二增长参数小于第一增长参数。
[0073] 在本实施例中,快启动单元501、快启动单元501W及增长控制单元503与图4中快 启动单元401、快启动单元401W及增长控制单元403--对应,由此,上文针对各个单元的 描述同样适用于图5中的各单元,在此不再寶述。
[0074] 防回退单元504,配置用于当在第k次发送Sk个数据包失败,在第k+1次基于所述衰 减参数发送Sw个数据包成功时,第k+2次基于第S增长参数发送数据包时,所述第S增长 参数设计成使得Sk+2<Sk,其中,所述第=增长参数为所述第一增长参数或第二增长参数。
[0075] 在本实施例中,防回退单元504可W实现失败之后再增长时不至于超过之前失败 的值,W避免多余的操作浪费资源。防回退单元504也可W与快启动单元501、快启动单元 501W及增长控制单元503配合使用,W实现更好的技术效果,提升用户体验。
[0076] 应当理解,图4和图5中记载的诸单元与参考图2曰、图化W及图3描述的方法中的各 个步骤相对应。由此,上文针对方法描述的操作和特征同样适用于图4和图5中的诸单元,在 此不再寶述。
[0077] 值得注意的是,本发明的实施例中的单元并不用于限制本发明的方案,例如快启 动单元可W描述为用于首次发送时发送多个数据包的单元。另外,还可W通过硬件处理器 来实现相关功能模块,例如快启动单元也可W用处理器实现,在此不再寶述。
[0078] W上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可 W是或者也可W不是物理上分开的,作为单元显示的部件可W是或者也可W不是物理单 元,即可W位于一个地方,或者也可W分布到多个网络单元上。可W根据实际的需要选择其 中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性 的劳动的情况下,即可W理解并实施。
[0079] 通过W上的实施方式的描述,本领域的技术人员可W清楚地了解到各实施方式可 借助软件加必需的通用硬件平台的方式来实现,当然也可W通过硬件。基于运样的理解,上 述技术方案本质上或者说对现有技术做出贡献的部分可WW软件产品的形式体现出来,该 计算机软件产品可W存储在计算机可读存储介质中,如R0M/RAM、磁碟、光盘等,包括若干指 令用W使得一台计算机设备(可W是个人计算机,服务器,或者网络设备等)执行各个实施 例或者实施例的某些部分所述的方法。
[0080] 最后应说明的是:W上实施例仅用W说明本发明的技术方案,而非对其限制;尽管 参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可 W对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换; 而运些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和 范围。
【主权项】
1. 一种TCP协议的数据包发送方法,包括: 首次发送时发送多个数据包; 当在第i次发送Sif数据包失败时,在第i+Ι次基于衰减参数发送S1+1个数据包,其中,所 述衰减参数小于2;以及 当基于第一增长参数以指数增长的方式在第j次成功发送数据包的数量&达到或超过 阈值时,在第j+Ι次基于第二增长参数发送Sj+1个数据包,其中,所述第二增长参数小于第一 增长参数。2. 根据权利要求1所述的方法,其中,所述方法还包括: 当在第k次发送Sk个数据包失败,在第k+Ι次基于所述衰减参数发送Sk+1个数据包成功 时,第k+2次基于第三增长参数发送数据包时,所述第三增长参数设计成使得Sk+2〈Sk,其中, 所述第三增长参数包括所述第一增长参数或第二增长参数。3. 根据权利要求1或2所述的方法,其中,所述衰减参数、所述第二增长参数和所述第三 增长参数为线性参数、指数参数或二者的结合。4. 根据权利要求1-3中任一项所述的方法,其中,首次发送时多个数据包的数量根据历 史数据包发送成功的数量记录确定。5. 根据权利要求1-4中任一项所述的方法,其中,所述阈值基于数据发送端的性能和/ 或传输网络的质量所确定。6. -种TCP协议的数据包发送系统,包括: 快启动单元,配置用于首次发送时发送多个数据包; 慢衰减单元,配置用于当在第i次发送Sif数据包失败时,在第i+Ι次基于衰减参数发送 Si+i个数据包,其中,所述衰减参数小于2;以及 增长控制单元,配置用于当基于第一增长参数以指数增长的方式在第j次成功发送数 据包的数量&达到或超过阈值时,在第j+Ι次基于第二增长参数发送Sj+1个数据包,其中,所 述第二增长参数小于第一增长参数。7. 根据权利要求6所述的系统,其中,所述系统还包括: 防回退单元,配置用于当在第k次发送Sk个数据包失败,在第k+Ι次基于所述衰减参数发 送Sk+1f数据包成功时,第k+2次基于第三增长参数发送数据包时,所述第三增长参数设计 成使得S k+2〈Sk,其中,所述第三增长参数包括所述第一增长参数或第二增长参数。8. 根据权利要求6或7所述的系统,其中,所述衰减参数、所述第二增长参数和所述第三 增长参数为线性参数、指数参数或者二者的结合。9. 根据权利要求6-8中任一项所述的系统,其中,所述快启动单元发送的数据包的数量 根据历史数据包发送成功的数量记录确定。10. 根据权利要求6-9中任一项所述的系统,其中,所述阈值基于数据发送端的性能和/ 或传输网络的质量所确定。
【文档编号】H04L29/06GK105847260SQ201610184726
【公开日】2016年8月10日
【申请日】2016年3月28日
【发明人】李洪福, 刘斌
【申请人】乐视控股(北京)有限公司, 乐视云计算有限公司