Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Implement support for the QUIC protocol and intelligent switching policy #37

Merged
merged 56 commits into from
Oct 31, 2023

Conversation

DrakenLibra
Copy link
Contributor

@DrakenLibra DrakenLibra commented Sep 24, 2023

为GT增加QUIC支持,并实现TCP/QUIC之间的智能切换,主要解决 Issue #1 。完成了以下内容:

  • 基于quic-go设计并实现增加支持基于 QUIC 协议的连接方式;
  • 为GT的QUIC增加BBR拥塞控制算法的支持。由于quic-go仅支持Cubic拥塞控制算法(参考quic-go Issue 776),使用cgo将msquic插入gt,以实现对quic bbr的支持;
  • 实现TCP/QUIC的智能切换。在构建内网穿透网络连接时,通过一组并发的网络探针,获取客户端和服务端之间的网络基本情况,通过XGBoost算法进行决策,算法模型主要参考论文
  • 编写go test测试QUIC的支持;
  • 通过压力测试对比GT-TCP和GT-QUIC的性能;
  • 编写相应的设计和使用文档。

Add QUIC support to GT and achieve intelligent switching between TCP/QUIC, mainly addressing Issue #1. Completed the following:

  • Based on quic go Design and implement additional support for QUIC protocol based connection methods;
  • Add support for BBR congestion control algorithm to GT's QUIC. Since quic-go only supports Cubic congestion control algorithm (refer to quic-go Issue 776), use cgo to insert msquic into gt to achieve support for quic bbr;
  • Implement intelligent switching of TCP/QUIC. When constructing an intranet penetration network connection, a set of concurrent network probes are used to obtain the basic network information between the client and server, and decisions are made using the XGBoost algorithm. The algorithm model is mainly referenced in paper;
  • Support for writing go tests to test QUIC;
  • Compare the performance of GT-TCP and GT-QUIC through stress testing;
  • Write corresponding design and usage documents.

server/conn.go Outdated Show resolved Hide resolved
.github/workflows/container.yml Outdated Show resolved Hide resolved
client/client.go Outdated Show resolved Hide resolved
conn/quicConn.go Outdated Show resolved Hide resolved
@DrakenLibra DrakenLibra changed the title Add support for the QUIC protocol based connection method Implement support for the QUIC protocol and intelligent switching policy Sep 28, 2023
conn/quicConn.go Outdated Show resolved Hide resolved
@vyloy vyloy force-pushed the dev branch 2 times, most recently from 9424836 to 5131c6f Compare October 22, 2023 07:08
@vyloy vyloy merged commit 0a39183 into ao-space:dev Oct 31, 2023
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants