一种基于eBPF的TCP中继加速系统

文档序号:37613634发布日期:2024-04-18 17:27阅读:8来源:国知局
一种基于eBPF的TCP中继加速系统

本发明实施例涉及广域网tcp加速技术,尤其涉及一种基于ebpf的tcp中继加速系统。


背景技术:

1、ebpf是一项革命性技术,起源于linux内核,可以在内核中运行沙盒程序。它用于安全有效地扩展内核的功能,而无需更改内核源代码或加载内核模块。通过允许在内核中运行沙盒程序,应用程序开发人员可以运行ebpf程序以在运行时向操作系统添加其他功能。如今,ebpf被广泛用于驱动各种用例:在现代数据中心和云原生环境中提供高性能网络和负载平衡,以低开销提取细粒度的安全可观察性数据,帮助应用程序开发人员跟踪应用程序,提供性能故障排除、应用程序和容器运行时安全实施等方面的见解。

2、目前使用的互联网的基础通信架构是以tcp/ip协议为核心的协议族。用户访问云计算服务时,大多数时间都在使用tcp协议与云主机进行通信。然而,目前所使用的广域网环境复杂,相比局域网而言,广域网中存在着长延迟、高丢包和频繁抖动等现象,这导致tcp协议在广域网中的数据传输效果并不理想,使得网络的带宽利用率不高。即便如今网络带宽越来越大,但是由于tcp协议受其拥塞控制机制的影响,网络吞吐量却没有明显的提高,本发明因此而来。


技术实现思路

1、本发明提供一种基于ebpf的tcp中继加速系统,可以缓解长肥管道现象,降低tcp连接延迟和丢包率,增加吞吐量。

2、本发明实施例提供了一种基于ebpf的tcp中继加速系统,其特征在于,包括:控制器、加速网关和中继节点,所述加速网关部署在用户侧和云平台侧,中继节点部署在两侧加速网关之间的通信路径上;

3、所述加速网关包括代理模块和地址转换模块;所述代理模块用于通过加速网关拦截用户向云主机发送的建立tcp连接的请求,将请求的目的ip地址和目的端口变为加速网关本机的地址和端口,以及通过加速网关将用户回发响应数据包时的源ip地址和源端口号修改成云主机的ip地址和端口号;所述地址转换模块用于通过ebpf中bpf_map_type_hash类型的map实现加速网关的地址转换;

4、所述控制器包括路径选择模块和路线信息下发模块;所述路径选择模块用于在收到加速网关发送的路径请求后执行路径选择算法以得到最优路径信息;所述路线信息下发模块用于将最优路径信息下发给对应的加速网关和中继节点;

5、所述中继节点包括指标收集模块和数据转发模块;所述指标收集模块用于收集中继节点的网络状况和自身负载信息;所述数据转发模块用于将来自上一跳中继节点的数据包转发到下一跳中继节点。

6、可选的,所示代理模块采用ebpf的套接字重定向的能力,将数据包从一个套接字直接转发到另一个套接字。

7、可选的,所述地址转换模块中map的key是用户的ip地址和端口号,map的value是用户想要连接的云主机的ip地址和端口号。

8、可选的,将系统中的加速网关和中继节点之间的链路抽象成有向无环图,有项无环图中的有向边以及顶点都具备权重;

9、相应的,所述路径选择模块采用改进的迪杰斯特拉算法进行最优路径选择,具体为:两个顶点之间的距离包括两个顶点之间有向边的权重和其中一个顶点的权重,将求解得到的最短单源路径作为最优路径。

10、可选的,所述指标收集模块使用ebpf收集中继节点的自身负载信息。

11、可选的,所述数据转发模块利用ebpf中bpf_map_type_sockmap类型的map进行数据转发,map的key是数据包的源ip地址和源端口号,map的value是中继节点与其下一跳中继节点的tcp连接对应的套接字。

12、本发明的加速系统借用流水线思想把一个端到端的tcp连接利用多个tcp中继节点进行转发,从而把一个长肥管道分成了多个距离短、时延短的连接,可以减少排队和丢包、提高tcp连接的吞吐率。同时,该方法不仅适用于普通用户访问云服务中心,也适用于广域网环境下长距离、高带宽的tcp连接,具有很广阔的应用前景。

13、本发明的有益效果为:

14、1、本发明首次使用ebpf技术实现了tcp中继,相较于用户态程序实现的tcp中继和dpdk实现的tcp中继,其利用bpf_sk_redirect_map在中继节点之间更快速地转发数据包、非轮询的处理方式意味着更小的cpu开销、在内核实现数据包处理意味着更低的处理时延

15、2、相较于传统的收集方法,ebpf实现的指标收集能收集更细粒度的指标,如tcp请求处理延迟、tcp链接个数、丢包率等。

16、3、本发明提出的中继系统可以实现自定义的路径选择算法,该算法可以根据实时链路状况(如链路时延、丢包率)和中继节点自身的负载(如cpu使用率、内存使用率、现有的tcp链接个数、请求处理延迟等)来选择最优的中继路径。



技术特征:

1.一种基于ebpf的tcp中继加速系统,其特征在于,包括:控制器、加速网关和中继节点,所述加速网关部署在用户侧和云平台侧,中继节点部署在两侧加速网关之间的通信路径上;

2.根据权利要求1所述的系统,其特征在于,所示代理模块采用ebpf的套接字重定向的能力,将数据包从一个套接字直接转发到另一个套接字。

3.根据权利要求1所述的系统,其特征在于,所述地址转换模块中map的key是用户的ip地址和端口号,map的value是用户想要连接的云主机的ip地址和端口号。

4.根据权利要求1所述的系统,其特征在于,将系统中的加速网关和中继节点之间的链路抽象成有向无环图,有项无环图中的有向边以及顶点都具备权重;

5.根据权利要求1所述的系统,其特征在于,所述指标收集模块使用ebpf收集中继节点的自身负载信息。

6.根据权利要求1所述的系统,其特征在于,所述数据转发模块利用ebpf中bpf_map_type_sockmap类型的map进行数据转发,map的key是数据包的源ip地址和源端口号,map的value是中继节点与其下一跳中继节点的tcp连接对应的套接字。


技术总结
本发明公开了一种基于eBPF的TCP中继加速系统。其中,该系统包括:控制器、加速网关和中继节点,加速网关部署在用户侧和云平台侧,中继节点部署在两侧加速网关之间的通信路径上。加速网关用于实现透明代理功能以及进行地址转换;控制器用于收集汇总所有中继节点的指标以及根据收集的指标选择最优的中继路径;中继节点用于对网络状况及自身负载的采样和收集,同时将来自上一跳中继节点的数据包转发给下一跳中继节点。本发明把一个端到端的TCP连接利用多个TCP中继节点进行转发,从而将把一个长肥管道分成了多个距离短、时延短的连接,可以减少排队和丢包的发生、提高TCP连接的吞吐率。

技术研发人员:徐宏力,邹春雨,赵功名
受保护的技术使用者:中国科学技术大学苏州高等研究院
技术研发日:
技术公布日:2024/4/17
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1