【技术实现步骤摘要】
基于TCP
‑
BPF的动态网络自适应修改方法
[0001]本专利技术涉及
TCP
动态网络修改领域,尤其涉及一种基于
TCP
‑
BPF
的动态网络自适应修改方法
。
技术介绍
[0002]当客户端与服务端建立
TCP
连接时,通常情况下与
TCP
相关的参数大多都是默认的,比如
TCP
所采用的拥塞控制方案,初始拥塞窗口大小
、
以及
UTO、
延迟
ACK
的大小等,但是在网络环境发生变化时,如网络环境从低带宽高延迟变为高带宽低延迟,或丢包率徒增,网络波动时,对于当前
TCP
连接的参数,可能就不是最优解了
。
[0003]其次,有时需要去修改
TCP
相关参数来适应应用层的需求,如
TCP UTO(User Timeout
,用户超时时间
)
,需要根据不同的应用层的场景来设置不同的
UTO
,而非默认值;再如,在智能手机上运行的
app
需要针对短数据包优化的重传技术,而数据中心服务器可以则需要另一种拥塞控制方案,即需要实现客户端的定制化
。
[0004]Linux TCP
协议栈现在有一些方式来对
TCP
连接参数进行修改,如基于通用规则的自适应配置,或通过修改相应文件来调整参数等方式,但这 ...
【技术保护点】
【技术特征摘要】
1.
一种基于
TCP
‑
BPF
的动态网络自适应修改方法,其特征在于,包括以下步骤:
(1)
使用
eBPF
获取
TCP
协议栈中的关键数据,并基于
eBPF
的
map
将关键数据传递到用户态,同时收集应用层的第一信息,将关键数据和第一信息作为衡量指标,以计算出适配当前网络环境的一组最优
TCP
参数集;其中,所述关键数据包括网络带宽相关数据
、
网络延迟相关数据
、
网络稳定性相关数据
、
丢包率相关数据和延迟
ACK
相关数据;所述第一信息包括对连接持久性的需求和数据传输模式;所述
TCP
参数集包括拥塞控制算法
、
初始拥塞窗口大小
、
用户超时时间和延迟
ACK
;
(2)
使用
TCP
‑
BPF
提供的
tcp_options_write()
方法将所述步骤
(1)
得到的最优
TCP
参数集插入到
TCP Header
中的
options
字段中,并将更新后的
TCP
参数集中的
TCP
参数同步至服务端,以实现
TCP
参数的传递;
(3)
服务端在收到
TCP
报文时,通过
TCP
‑
BPF
提供的
tcp_parse_options()
方法对
options
字段进行解析,并使用
eBPF
提供的
bpf_setsockops
和
setsockops
辅助函数将接收到的最优
TCP
参数集应用到服务端的当前
TCP
连接中
。2.
根据权利要求1所述的基于
TCP
‑
BPF
的动态网络自适应修改方法,其特征在于,所述拥塞控制算法包括
Reno
算法
、NewReno
算法
、CUBIC
算法
、BBR
算法和
Vegas
算法
。3.
根据权利要求1所述的基于
TCP
‑
BPF
的动态网络自适应修改方法,其特征在于,所述步骤
(1)
中,使用
eBPF
获取
TCP
协议栈中的关键数据,具体包括:网络带宽相关数据:通过
struct tcp_sock
中的
__u32 snd_cwnd
获取拥塞窗口大小;通过
struct tcp_sock
中的
__u32 snd_ssthresh
获取慢开始门限;通过
struct tcp_sock
中的
__u32snd_cwnd_cnt...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。