旁路TCP加速方法、装置、设备及介质与流程

文档序号:35098370发布日期:2023-08-10 05:53阅读:27来源:国知局
旁路TCP加速方法、装置、设备及介质与流程

本发明涉及互联网,尤其涉及一种旁路tcp加速方法、装置、设备及介质。


背景技术:

1、tcp(transmission control protocol,传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议,依赖于对数据包按序进行编号以及确认机制,在不可靠的网络环境下为上层协议提供可靠的传输保障。

2、tcp虽然是可靠的协议,但在一些特殊的网络条件下会出现不稳定、波动大等问题,如长距离的网络链路或无线网络等情形。以无线网络为例,无线网络是通过无线电波作为传输媒介,将数据传输和通信功能扩展到没有物理连接的设备之间,允许设备通过无线方式进行互联和通信,而不需要使用传统的有线连接,如电缆或光纤。但是无线网络也带来了误码率高,网络状况不稳定的问题,当用户网络环境较差时,会产生大量的丢包,这些丢包需要从发送方进行重传,这极大的影响了全链路性能。

3、针对tcp在特殊网络条件下存在的不稳定、波动大等问题,现有技术中通常采用以下解决方案:

4、1、增加中间路由、交换机数量,以提高信号覆盖范围。

5、但是,这种方式费用昂贵、消耗大。

6、2、在中间路由、交换机上部署代理服务,进行tcp连接分割。

7、但是,这种方式一般只能加速tcp的慢启动环节,且会占用大量的设备资源,消耗大。并且,需要对中间路由进行修改,会影响现有业务,风险大。同时,该方案将原本一条tcp连接分割成了两条,破坏了原有的tcp链路,一旦代理服务出现问题,则会导致整个tcp链路瘫痪,且配置繁琐。


技术实现思路

1、鉴于以上内容,有必要提供一种旁路tcp加速方法、装置、设备及介质,旨在解决不稳定、波动大的网络环境下的丢包重传慢、延时高的问题,以及传统代理对原始tcp链路影响大的问题,且解决了传统代理配置繁琐、占用资源大,部署或者修改会影响原本业务的问题。

2、一种旁路tcp加速方法,应用于旁路部署的加速设备或者加速服务,所述旁路tcp加速方法包括:

3、实时捕获数据包,并在捕获到数据包时,将捕获的数据包分流至对应的线程;

4、检测是否有数据包存在丢失风险,并在检测到有数据包存在丢失风险时,结合缓存执行对所述数据包的重传,并将所述数据包重传至所述数据包的接收方;

5、在重传过程中,检测所述数据包对应的数据流是否发生拥塞,并在检测到所述数据包对应的数据流发生拥塞时执行拥塞控制;

6、在执行拥塞控制后,检测所述数据包是否需要提前确认;

7、当检测到所述数据包需要提前确认时,生成所述数据包的模拟ack包,并将所述模拟ack包传输至所述数据包的发送方。

8、根据本发明优选实施例,所述方法还包括:

9、获取所述发送方与所述接收方的中间设备,及获取所述中间设备的空闲端口,为所述空闲端口配置镜像,并通过所述空闲端口建立与镜像服务器的连接,在所述镜像服务器上部署所述加速设备;或者

10、获取所述发送方与所述接收方的中间设备,在所述中间设备上部署所述加速服务。

11、根据本发明优选实施例,所述将捕获的数据包分流至对应的线程包括:

12、获取每个数据包的包头格式;

13、根据每个数据包的包头格式确定每个数据包的协议类型;

14、基于每个数据包的协议类型分析每个数据包的tcp/ip的四元组,得到分析结果;

15、根据所述分析结果将每个数据包划分至对应的tcp流;

16、根据每个数据包所属的tcp流为每个数据包配置对应的线程。

17、根据本发明优选实施例,所述结合缓存执行对所述数据包的重传前,所述方法还包括:

18、获取所述发送方与所述接收方进行tcp握手时确定的mtu;

19、将未被确认的数据包以所述mtu为长度进行分割,并将分割后的数据包以有序二维链表的形式存储至所述缓存;

20、其中,当接收到所述缓存中任意数据包的ack包时,从所述缓存中删除所述任意数据包所属的区间的字段;

21、其中,当在所述缓存中查询丢失数据包时,在所述有序二维链表末尾的预设长度范围内进行二分查找。

22、根据本发明优选实施例,所述检测是否有数据包存在丢失风险,并在检测到有数据包存在丢失风险时,结合缓存执行对所述数据包的重传包括:

23、获取每个数据包所属的tcp流的带宽、历史丢包率,以及在所述缓存中的存储时长;

24、获取与所述带宽对应的第一权重、与所述历史丢包率对应的第二权重,以及与所述存储时长对应的第三权重;

25、计算所述带宽与所述第一权重的乘积得到第一数值,计算所述历史丢包率与所述第二权重的乘积得到第二数值,及计算所述存储时长与所述第三权重的乘积得到第三数值;

26、计算所述第一数值、所述第二数值与所述第三数值的和,得到每个数据包当前的动态丢包率;

27、获取预先配置的丢包率阈值;

28、当有数据包对应的所述动态丢包率大于所述丢包率阈值时,确定所述数据包存在丢失风险;

29、从所述数据包对应的tcp头中获取sack字段;

30、根据所述sack字段获取丢失的数据包序号;

31、根据所述数据包序号从所述缓存中查询并获取丢失的字段;

32、根据所述数据包序号对所述丢失的字段进行重传。

33、根据本发明优选实施例,所述方法还包括:

34、在根据所述数据包序号对所述丢失的字段进行重传的过程中,为每个重传的所述丢失的字段配置定时器;

35、基于所述定时器对每个重传的所述丢失的字段进行超时重传。

36、根据本发明优选实施例,所述检测所述数据包对应的数据流是否发生拥塞,并在检测到所述数据包对应的数据流发生拥塞时执行拥塞控制包括:

37、采用下述公式计算拥塞指数:

38、;

39、其中,r表示预先配置的理论带宽,s表示所述数据包的大小,trtt 表示所述数据包的往返时延,trto表示预先配置的传输超时时限,p表示所述历史丢包率,b表示一次ack的确认包数;y表示所述拥塞指数,bw表示所述数据包所属的tcp流的带宽;cwnd表示拥塞窗口的大小;

40、获取预先配置的拥塞指数阈值;

41、当所述拥塞指数y小于所述拥塞指数阈值时,确定所述数据包对应的tcp流发生拥塞;

42、降低所述tcp流中用于提前确认的模拟ack包的发送频率,并提升所述缓存中所述tcp流对应的数据包的重传频率;

43、其中,对于具有相同ip的其他tcp流,降低所述其他tcp流中用于提前确认的模拟ack包的发送频率,并提升所述缓存中所述其他tcp流对应的数据包的重传频率。

44、根据本发明优选实施例,所述检测所述数据包是否需要提前确认包括:

45、获取预先配置的第四权重、第五权重及第六权重;

46、计算所述数据包所属的tcp流的带宽与所述第四权重的乘积得到第四数值,计算所述历史丢包率与所述第五权重的乘积得到第五数值,及计算所述拥塞指数与所述第六权重的乘积得到第六数值;

47、计算所述第四数值、所述第五数值与所述第六数值的和,得到目标值;

48、获取预先配置的预设阈值;

49、当所述目标值大于所述预设阈值时,确定所述数据包需要提前确认。

50、一种旁路tcp加速装置,运行于旁路部署的加速设备或者加速服务,所述旁路tcp加速装置包括:

51、分流单元,用于实时捕获数据包,并在捕获到数据包时,将捕获的数据包分流至对应的线程;

52、检测单元,用于检测是否有数据包存在丢失风险,并在检测到有数据包存在丢失风险时,结合缓存执行对所述数据包的重传,并将所述数据包重传至所述数据包的接收方;

53、拥塞控制单元,用于在重传过程中,检测所述数据包对应的数据流是否发生拥塞,并在检测到所述数据包对应的数据流发生拥塞时执行拥塞控制;

54、所述检测单元,还用于在执行拥塞控制后,检测所述数据包是否需要提前确认;

55、重传单元,用于当检测到所述数据包需要提前确认时,生成所述数据包的模拟ack包,并将所述模拟ack包传输至所述数据包的发送方。

56、一种计算机设备,所述计算机设备包括:

57、存储器,存储至少一个指令;及

58、处理器,执行所述存储器中存储的指令以实现所述旁路tcp加速方法。

59、一种计算机可读存储介质,所述计算机可读存储介质中存储有至少一个指令,所述至少一个指令被计算机设备中的处理器执行以实现所述旁路tcp加速方法。

60、由以上技术方案可以看出,本发明应用于旁路部署的加速设备或者加速服务,在不影响原有tcp链路的情况下改善链路状态,在一段tcp链路中实现类似于传统代理将tcp链路分割成两段的效果(即发送方到加速设备或加速服务的部署节点、加速设备或加速服务的部署节点到接收方两段),将丢包的影响限制在其中任意一段链路中,继而使得丢失的数据包可以更快的重传,且部署灵活;实时捕获数据包,并将捕获的数据包分流至不同线程,以提升并发处理效率;在检测到数据包丢包时,结合缓存执行对数据包的重传,无需从发送方重新发包,从中间加速缓存中获取丢包重传至接收方即可,降低了重发包所需时间,且在丢包影响链路之前提前补包,以保证链路通畅;在检测到数据包对应的数据流发生拥塞时执行拥塞控制,降低了链路拥塞发生的可能性,提高了链路的带宽利用率;检测数据包是否需要提前确认,通过提前回复ack和补发数据包的形式,均衡发送方到加速设备或加速服务的部署节点、加速设备或加速服务的部署节点到接收方的等效两段速率,降低了链路的总体延迟和丢包率。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1