ao-space / gt

Fast WebSocket(s)/HTTP(s)/TCP relay proxy for making tunnels to localhost.
https://ao.space
Apache License 2.0
121 stars 34 forks source link

GT server and GT client connection pools add support for QUIC, which is compatible with existing TCP protocols and implements certain intelligent switching policies #1

Closed aospace-admin closed 1 year ago

aospace-admin commented 1 year ago

Description

The connection between GT server and GT client is currently based on the TCP protocol. In order to improve the performance in long distance, high latency and high packet loss scenarios (mainly multinational scenarios), it is necessary to add support for the QUIC protocol based connection method and to consider supporting the BBR congestion control algorithm; and to consider adding some intelligent switching strategies to improve the user experience.

Project output requirements

Project technical requirements

Open Source Summer Official Website

GT server 与 GT client 连接池增加支持 QUIC,与现有的的 TCP 协议实现兼容及实现智能切换策略

描述

目前 GT server 与 GT client 之间的连接是基于 TCP 协议实现的,为了提高在远距离,高延迟,高丢包率场景下的传输的表现(主要是跨国场景),增加支持基于 QUIC 协议的连接方式,需要考虑支持 BBR 拥塞控制算法;并可以考虑增加一定的智能切换策略,提高用户体验。

项目产出要求

项目技术要求

开源之夏官网

DrakenLibra commented 1 year ago

开发日程(7.1-7.9)

1、本周进展

2、下周计划

  1. Next week plan
    • Read and test the source code, find out and analyze the functions related to "establishing a TCP connection between GT server and GT client";
    • Learn BBR congestion control algorithm.
DrakenLibra commented 1 year ago

开发日程(7.10-7.16)

1、本周进展

2、下周计划

  1. Next week plan
    • Research various open-source implementations of the QUIC protocol, compare and select the most suitable QUIC project;
    • Test the role of related functions and try to embed the QUIC protocol into the GT project.
DrakenLibra commented 1 year ago

开发日程(7.17-7.23)

1、本周进展

2、下周计划

  1. Next week plan
    • Try to implement gt's support for quic based on quic-go.
DrakenLibra commented 1 year ago

开发日程(9.4-9.10)

1、本周进展

2、下周计划

  1. Plan for next week
    • Extend the Connection structure in conn/conn.go and align it with the QUIC interface.
    • Based on quic-go, gt supports QUIC.
DrakenLibra commented 1 year ago

开发日程(9.11-9.17)

1、本周进展

2、下周计划

  1. Plan for next week
    • Improve the parsing settings of QUIC related parameters in client/config.go and server/config.go, and complete gt's support for QUIC.
    • Improve QUIC-related unit tests and integration tests, and update the readme.
    • Try to add BBR support for QUIC.
DrakenLibra commented 1 year ago

开发日程(9.18-9.24)

1、本周进展

2、下周计划

  1. Plan for next week
    • Based on PR communication, improve GT’s support for QUIC.
    • Implement GT's basic intelligent switching between QUIC and TCP.
    • Implement support for BBR for GT's QUIC.