旁路TCP加速方法、装置、设备及介质制造方法及图纸

技术编号:38469724 阅读:5 留言:0更新日期:2023-08-11 14:46
本发明专利技术涉及互联网技术领域,提供一种旁路TCP加速方法、装置、设备及介质,应用于旁路部署的加速设备或者加速服务,在不影响原有TCP链路的情况下改善链路状态,且部署灵活;实时捕获数据包,并将捕获的数据包分流至不同线程,以提升并发处理效率;在检测到数据包丢包时结合缓存执行对数据包的重传,无需从发送方重新发包,降低了重发包所需时间,且在丢包影响链路之前提前补包,以保证链路通畅;在检测到数据包对应的数据流发生拥塞时执行拥塞控制,降低了链路拥塞发生的可能性,提高了链路的带宽利用率;检测数据包是否需要提前确认,通过提前回复ACK和补发数据包的形式,降低了链路的总体延迟和丢包率。链路的总体延迟和丢包率。链路的总体延迟和丢包率。

【技术实现步骤摘要】
旁路TCP加速方法、装置、设备及介质


[0001]本专利技术涉及互联网
,尤其涉及一种旁路TCP加速方法、装置、设备及介质。

技术介绍

[0002]TCP(Transmission Control Protocol,传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议,依赖于对数据包按序进行编号以及确认机制,在不可靠的网络环境下为上层协议提供可靠的传输保障。
[0003]TCP虽然是可靠的协议,但在一些特殊的网络条件下会出现不稳定、波动大等问题,如长距离的网络链路或无线网络等情形。以无线网络为例,无线网络是通过无线电波作为传输媒介,将数据传输和通信功能扩展到没有物理连接的设备之间,允许设备通过无线方式进行互联和通信,而不需要使用传统的有线连接,如电缆或光纤。但是无线网络也带来了误码率高,网络状况不稳定的问题,当用户网络环境较差时,会产生大量的丢包,这些丢包需要从发送方进行重传,这极大的影响了全链路性能。
[0004]针对TCP在特殊网络条件下存在的不稳定、波动大等问题,现有技术中通常采用以下解决方案:1、增加中间路由、交换机数量,以提高信号覆盖范围。
[0005]但是,这种方式费用昂贵、消耗大。
[0006]2、在中间路由、交换机上部署代理服务,进行TCP连接分割。
[0007]但是,这种方式一般只能加速TCP的慢启动环节,且会占用大量的设备资源,消耗大。并且,需要对中间路由进行修改,会影响现有业务,风险大。同时,该方案将原本一条TCP连接分割成了两条,破坏了原有的TCP链路,一旦代理服务出现问题,则会导致整个TCP链路瘫痪,且配置繁琐。

技术实现思路

[0008]鉴于以上内容,有必要提供一种旁路TCP加速方法、装置、设备及介质,旨在解决不稳定、波动大的网络环境下的丢包重传慢、延时高的问题,以及传统代理对原始TCP链路影响大的问题,且解决了传统代理配置繁琐、占用资源大,部署或者修改会影响原本业务的问题。
[0009]一种旁路TCP加速方法,应用于旁路部署的加速设备或者加速服务,所述旁路TCP加速方法包括:实时捕获数据包,并在捕获到数据包时,将捕获的数据包分流至对应的线程;检测是否有数据包存在丢失风险,并在检测到有数据包存在丢失风险时,结合缓存执行对所述数据包的重传,并将所述数据包重传至所述数据包的接收方;在重传过程中,检测所述数据包对应的数据流是否发生拥塞,并在检测到所述数据包对应的数据流发生拥塞时执行拥塞控制;在执行拥塞控制后,检测所述数据包是否需要提前确认;
当检测到所述数据包需要提前确认时,生成所述数据包的模拟ACK包,并将所述模拟ACK包传输至所述数据包的发送方。
[0010]根据本专利技术优选实施例,所述方法还包括:获取所述发送方与所述接收方的中间设备,及获取所述中间设备的空闲端口,为所述空闲端口配置镜像,并通过所述空闲端口建立与镜像服务器的连接,在所述镜像服务器上部署所述加速设备;或者获取所述发送方与所述接收方的中间设备,在所述中间设备上部署所述加速服务。
[0011]根据本专利技术优选实施例,所述将捕获的数据包分流至对应的线程包括:获取每个数据包的包头格式;根据每个数据包的包头格式确定每个数据包的协议类型;基于每个数据包的协议类型分析每个数据包的TCP/IP的四元组,得到分析结果;根据所述分析结果将每个数据包划分至对应的TCP流;根据每个数据包所属的TCP流为每个数据包配置对应的线程。
[0012]根据本专利技术优选实施例,所述结合缓存执行对所述数据包的重传前,所述方法还包括:获取所述发送方与所述接收方进行TCP握手时确定的MTU;将未被确认的数据包以所述MTU为长度进行分割,并将分割后的数据包以有序二维链表的形式存储至所述缓存;其中,当接收到所述缓存中任意数据包的ACK包时,从所述缓存中删除所述任意数据包所属的区间的字段;其中,当在所述缓存中查询丢失数据包时,在所述有序二维链表末尾的预设长度范围内进行二分查找。
[0013]根据本专利技术优选实施例,所述检测是否有数据包存在丢失风险,并在检测到有数据包存在丢失风险时,结合缓存执行对所述数据包的重传包括:获取每个数据包所属的TCP流的带宽、历史丢包率,以及在所述缓存中的存储时长;获取与所述带宽对应的第一权重、与所述历史丢包率对应的第二权重,以及与所述存储时长对应的第三权重;计算所述带宽与所述第一权重的乘积得到第一数值,计算所述历史丢包率与所述第二权重的乘积得到第二数值,及计算所述存储时长与所述第三权重的乘积得到第三数值;计算所述第一数值、所述第二数值与所述第三数值的和,得到每个数据包当前的动态丢包率;获取预先配置的丢包率阈值;当有数据包对应的所述动态丢包率大于所述丢包率阈值时,确定所述数据包存在丢失风险;从所述数据包对应的TCP头中获取SACK字段;根据所述SACK字段获取丢失的数据包序号;
根据所述数据包序号从所述缓存中查询并获取丢失的字段;根据所述数据包序号对所述丢失的字段进行重传。
[0014]根据本专利技术优选实施例,所述方法还包括:在根据所述数据包序号对所述丢失的字段进行重传的过程中,为每个重传的所述丢失的字段配置定时器;基于所述定时器对每个重传的所述丢失的字段进行超时重传。
[0015]根据本专利技术优选实施例,所述检测所述数据包对应的数据流是否发生拥塞,并在检测到所述数据包对应的数据流发生拥塞时执行拥塞控制包括:采用下述公式计算拥塞指数:;其中,R表示预先配置的理论带宽,S表示所述数据包的大小,t
RTT 表示所述数据包的往返时延,t
RTO
表示预先配置的传输超时时限,p表示所述历史丢包率,b表示一次ACK的确认包数;Y表示所述拥塞指数,bw表示所述数据包所属的TCP流的带宽;cwnd表示拥塞窗口的大小;获取预先配置的拥塞指数阈值;当所述拥塞指数Y小于所述拥塞指数阈值时,确定所述数据包对应的TCP流发生拥塞;降低所述TCP流中用于提前确认的模拟ACK包的发送频率,并提升所述缓存中所述TCP流对应的数据包的重传频率;其中,对于具有相同IP的其他TCP流,降低所述其他TCP流中用于提前确认的模拟ACK包的发送频率,并提升所述缓存中所述其他TCP流对应的数据包的重传频率。
[0016]根据本专利技术优选实施例,所述检测所述数据包是否需要提前确认包括:获取预先配置的第四权重、第五权重及第六权重;计算所述数据包所属的TCP流的带宽与所述第四权重的乘积得到第四数值,计算所述历史丢包率与所述第五权重的乘积得到第五数值,及计算所述拥塞指数与所述第六权重的乘积得到第六数值;计算所述第四数值、所述第五数值与所述第六数值的和,得到目标值;获取预先配置的预设阈值;当所述目标值大于所述预设阈值时,确定所述数据包需要提前确认。
[0017]一种旁路TCP加速装置,运行于旁路部署的加速设备或者加速服务,所述旁路TCP加速装置包括:分流单元,用于实时捕获数据包,并在捕获到数据包时,将捕获的数据包分流至对应的线程;检测单元,用于检测是否有数据包存在丢本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种旁路TCP加速方法,其特征在于,应用于旁路部署的加速设备或者加速服务,所述旁路TCP加速方法包括:实时捕获数据包,并在捕获到数据包时,将捕获的数据包分流至对应的线程;检测是否有数据包存在丢失风险,并在检测到有数据包存在丢失风险时,结合缓存执行对所述数据包的重传,并将所述数据包重传至所述数据包的接收方;在重传过程中,检测所述数据包对应的数据流是否发生拥塞,并在检测到所述数据包对应的数据流发生拥塞时执行拥塞控制;在执行拥塞控制后,检测所述数据包是否需要提前确认;当检测到所述数据包需要提前确认时,生成所述数据包的模拟ACK包,并将所述模拟ACK包传输至所述数据包的发送方。2.如权利要求1所述的旁路TCP加速方法,其特征在于,所述方法还包括:获取所述发送方与所述接收方的中间设备,及获取所述中间设备的空闲端口,为所述空闲端口配置镜像,并通过所述空闲端口建立与镜像服务器的连接,在所述镜像服务器上部署所述加速设备;或者获取所述发送方与所述接收方的中间设备,在所述中间设备上部署所述加速服务。3.如权利要求1所述的旁路TCP加速方法,其特征在于,所述将捕获的数据包分流至对应的线程包括:获取每个数据包的包头格式;根据每个数据包的包头格式确定每个数据包的协议类型;基于每个数据包的协议类型分析每个数据包的TCP/IP的四元组,得到分析结果;根据所述分析结果将每个数据包划分至对应的TCP流;根据每个数据包所属的TCP流为每个数据包配置对应的线程。4.如权利要求1所述的旁路TCP加速方法,其特征在于,所述结合缓存执行对所述数据包的重传前,所述方法还包括:获取所述发送方与所述接收方进行TCP握手时确定的MTU;将未被确认的数据包以所述MTU为长度进行分割,并将分割后的数据包以有序二维链表的形式存储至所述缓存;其中,当接收到所述缓存中任意数据包的ACK包时,从所述缓存中删除所述任意数据包所属的区间的字段;其中,当在所述缓存中查询丢失数据包时,在所述有序二维链表末尾的预设长度范围内进行二分查找。5.如权利要求1所述的旁路TCP加速方法,其特征在于,所述检测是否有数据包存在丢失风险,并在检测到有数据包存在丢失风险时,结合缓存执行对所述数据包的重传包括:获取每个数据包所属的TCP流的带宽、历史丢包率,以及在所述缓存中的存储时长;获取与所述带宽对应的第一权重、与所述历史丢包率对应的第二权重,以及与所述存储时长对应的第三权重;计算所述带宽与所述第一权重的乘积得到第一数值,计算所述历史丢包率与所述第二权重的乘积得到第二数值,及计算所述存储时长与所述第三权重的乘积得到第三数值;计算所述第一数值、所述第二数值与所述第三数值的和,得到每个数据包当前的动态
丢包率;获取预先配置的丢包率阈值;当有数据包对应的所述动态丢包率大于所述丢包率阈值时,确定所述数据包存在丢失风险;从所述数据包对应的TCP头中获取SACK字段;根据所述SACK字段获取丢失的数据包序号;根据所述数据包序号从所述缓存中查询并获取丢失的字段;根据所述数据包序号对所述丢失的字段进行重传。6.如权...

【专利技术属性】
技术研发人员:苑志超吴昊铁智慧刘奎
申请(专利权)人:灵长智能科技杭州有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1