xtaci / smux

A Stream Multiplexing Library for golang with least memory usage(TDMA)
MIT License
1.31k stars 196 forks source link

想问下协议版本1和2有什么区别 #93

Open xdeng opened 1 year ago

xdeng commented 1 year ago

目前文档能看到的是 Per-stream sliding window to control congestion.(protocol version 2+). 翻译是 用于控制拥塞的每流滑动窗口。(协议版本 2+)。也没看到设置函数。 还有其他的区别吗?哪里有详细介绍?

xdeng commented 1 year ago

我测试了下网络较好文件下载来回测试的环境 协议1 波动小,测试双向时 正向跑满 反向速度会比较小 协议2 波动大,测试双向时 正向跑满 反向速度最高能跑满 平均也比协议1大 这就是滑动窗口起作用了吗?

xtaci commented 1 year ago

对,增加并行必然会增加内存。有限的内存只能提供有限的传输,即波动。

xdeng commented 1 year ago

@xtaci 也就是v2比较费内存? 还有其他区别吗?

xtaci commented 1 year ago

v2的功能是:可以选择增加-smuxbuf -streambuf,来提高并行度

baixiaoshi commented 1 year ago

哪个版本开始,有了v2的功能