Comments (6)
开发日程(7.1-7.9)
1、本周进展
- 阅读GT项目源码,主要关注了client/client.go和server/sever.go的启动流程和函数依赖关系;
- 阅读论文《WiseTrans: Adaptive Transport Protocol Selection for Mobile Web Service》,关注QUIC和TCP在不同网络条件下的性能差异。
2、下周计划
- 阅读并测试源码,找出并分析与“GT server 与 GT client 之间建立TCP连接”的相关函数;
- 学习BBR拥塞控制算法。
Development schedule (7.1-7.9)
- This week's progress
- Read the source code of the GT project, mainly focusing on the startup process and functional dependencies of client/client.go and server/sever.go;
- Read the paper "WiseTrans: Adaptive Transport Protocol Selection for Mobile Web Service", pay attention to the performance difference between QUIC and TCP under different network conditions.
- 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.
from gt.
开发日程(7.10-7.16)
1、本周进展
- 梳理GT项目中与Client-Server之间构建连接池的代码,找出关键函数并分析逻辑。主要关注Client端的c.connectLoop()->connect()->initConn()->dialFn函数链,关注Server端的listen()->acceptLoop()->handle()->handleTunnel()函数链,以及MagicNumber在区分流量中的作用;
- 学习BBR拥塞控制算法,阅读了提出BBR算法的论文“BBR:Congestion-Based Congestion Control”。使用iperf3在Linux中测试了不同条件下Cubic和BBR的吞吐量,BBR在长肥网络(带宽时延积大、丢包率高)具有显著效果。
2、下周计划
- 调研各种QUIC协议的开源实现,对比并挑选最合适的QUIC项目;
- 测试相关函数的作用,尝试将QUIC协议嵌入GT项目。
Development schedule (7.10-7.16)
- This week's progress
- Comb through the code of GT project with Client-Server to build connection pool, find out the key functions and analyse the logic. Mainly focus on the c.connectLoop()->connect()->initConn()->dialFn function chain of the Client side, on the listen()->acceptLoop()->handle()->handleTunnel() function chain of the Server side, and the MagicNumber's role in differentiating traffic;
- Learn about the BBR congestion control algorithm and reading the paper "BBR: Congestion-Based Congestion Control" that proposed the BBR algorithm. Test the throughput of Cubic and BBR under different conditions in Linux using iperf3. Find that BBR has a significant effect in long fat networks (large bandwidth delay product and high packet loss).
- 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.
from gt.
开发日程(7.17-7.23)
1、本周进展
- 调研各种QUIC的开源实现,主要关注quic-go(https://github.com/quic-go/quic-go ),msquic(https://github.com/microsoft/msquic )和quiche(https://github.com/google/quiche ),因为这三个quic项目一直保持高频率维护。quic-go仅支持cubic拥塞控制算法(issue里面提到似乎不准备添加bbr算法),msquic和quiche均支持bbr;
- 尝试寻找关键函数,因为比较熟悉quic-go而且函数接口对应,所以目前尝试先使用quic-go让gt支持quic,后续视情况选择使用cgo替换为quiche/msquic,又或者自行为quic-go增加bbr支持。
2、下周计划
- 尝试基于quic-go实现gt对quic的支持。
Development schedule (7.17-7.23)
- This week's progress
- Investigate various open source implementations of QUIC, focusing on quic-go (https://github.com/quic-go/quic-go), msquic (https://github.com/microsoft/msquic) and quiche (https://github.com/google/quiche), because these three quic projects have maintained high-frequency maintenance. quic-go only supports the cubic congestion control algorithm (it seems that the bbr algorithm is not planned to be added in the issue), and both msquic and quiche support bbr;
- Try to find the key functions, because I am familiar with quic-go and the function interface corresponds, so try to use quic-go first to make gt support quic, and then choose to use cgo to replace quiche/msquic according to the situation, or add bbr support for quic-go myself.
- Next week plan
- Try to implement gt's support for quic based on quic-go.
from gt.
开发日程(9.4-9.10)
1、本周进展
- 尝试将QUIC嵌入gt。但是QUIC的IO读写接口全部实现在stream结构中,而TCP的IO接口是现在connection结构中,因此需要对GT中connection层进行大量修改,于9.5开会进行讨论。
- 在clinet.go以及client/conn.go中为QUIC撰写对应的处理函数,在server.go以及server/conn.go中为QUIC撰写对应的处理函数。
2、下周计划
- 扩展conn/conn.go中的Connection结构,对齐QUIC的接口。
- 基于quic-go实现gt对QUIC的支持。
Development schedule (9.4-9.10)
- Progress this week
- Try embedding QUIC into gt. However, QUIC's IO read and write interfaces are all implemented in the stream structure, while TCP's IO interface is now in the connection structure, so a lot of modifications to the connection layer in GT need to be made, and a meeting will be held on 9.5 for discussion.
- Write corresponding processing functions for QUIC in clinet.go and client/conn.go, and write corresponding processing functions for QUIC in server.go and server/conn.go.
- 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.
from gt.
开发日程(9.11-9.17)
1、本周进展
- 基于QUIC实现QuicConnection结构,实现net.Conn接口,对齐conn/conn.go中的Connection结构需求,满足client/client.go中的函数处理需求。
- 基于QUIC实现QuicListener结构,实现net.Listener接口,满足server/server.go中的函数处理需求。
- 开会讨论后续进展计划。
2、下周计划
- 完善client/config.go和server/config.go中对于QUIC相关参数的解析设置,完成gt对于QUIC的支持。
- 完善QUIC相关的单元测试和集成测试,更新readme。
- 尝试为QUIC增加BBR支持。
Development schedule (9.11-9.17)
- Progress this week
- Implement the QuicConnection structure based on QUIC, implement the net.Conn interface, align the Connection structure requirements in conn/conn.go, and meet the function processing requirements in client/client.go.
- Implement the QuicListener structure based on QUIC and implement the net.Listener interface to meet the function processing needs in server/server.go.
- Meet to discuss follow-up progress plans.
- 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.
from gt.
开发日程(9.18-9.24)
1、本周进展
- 为GT的server与client之间的连接池增加支持 QUIC。
- 尝试实现GT对于QUIC和TCP之间的智能切换。
- 调研如何为GT的QUIC增加BBR的支持。
2、下周计划
- 基于PR的沟通,完善GT对于QUIC的支持。
- 实现GT对于QUIC和TCP的基本的智能切换。
- 为GT的QUIC实现对于BBR的支持。
Development schedule (9.18-9.24)
- Progress this week
- Add support for QUIC to the connection pool between GT's server and client.
- Try to implement GT's intelligent switching between QUIC and TCP.
- Investigate how to add BBR support to GT's QUIC.
- 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.
from gt.
Related Issues (16)
- 使用不太明确 HOT 2
- GT server and GT client develop web management functions HOT 8
- linux上gt编译失败 HOT 1
- Question: Are there any examples of implementing WebRTC peer-to-peer connections? HOT 3
- TCP 内网穿透实测失败,有什么注意点? HOT 6
- Full HTTP Proxy protocol support for a "Home VPN" HOT 10
- [Feature] Support to be built and run on Windows HOT 4
- 远程协作场景需求请教 HOT 1
- 部署的方法没看到文档参考啊,另外网页管理什么时候能出啊 HOT 2
- [Feature] Support to be built and run on macOS HOT 1
- 对于页面提的几个建议 HOT 1
- 最好web管理页最好弄个记住密码或者免登陆xx天的功能 HOT 1
- 是否支持压缩特性 HOT 1
- centos7.6中运行后 web地址访问不通 HOT 2
- 【开源之夏有奖活动】Connect 子命令功能开发
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from gt.