SUFT 传输协议共公开测试,邀请大家一起测试、分析和完善

2016-02-23 16:41:05 +08:00
 spance

为了解决某些长距离通信的问题,我们在 UDP 上开发了这个用户态传输协议,经过了 alpha 阶段的测试,现在公开发布,邀请大家一起来玩,并请大家积极反馈结果,有能力的同学诚邀你们一起分析和完善。

什么是 SUFT ?

Small-scale UDP Fast Transmission Protocol, SUFT ?

The SUFT is a application layer transmission protocol based on UDP and implemented in Golang. It provides some of the same service features: stream-oriented like TCP, low latency and esures reliable, ordered transport of stream with plain congestion control.

The protocol is designed for maximizing throughput and minimizing effect of losing packets on throughput, and it oriented in small and medium-scale communication scene.

Project

https://github.com/spance/suft

这是刚做完的新项目,可能还有很多问题,希望有能力的同学能参与进来深入了解和持续改进。

SUFT 已经完整实现了 golang: net.Conn 接口,便于上层应用使用.

喜欢抓包分析的,已经写好了 wireshark 插件用于友好的剖析 SUFT.

Goals & Features

对于这样的传输协议,我们着重观察和强调这几个方面

应用

目前仅是协议验证和优化期,具体可以怎么应用大家可以开动脑筋。。。

根目录 main 包有一个类似 netcat(nc)的传输工具,用来互传文件(甚至也可以是一个 Chat Room ),具体用法请查看 README.

实景测试 2

3254 次点击
所在节点    分享创造
11 条回复
miyuki
2016-02-23 16:49:38 +08:00
马克 回家看看
spance
2016-02-23 19:33:27 +08:00
@Livid 拜托修改一下标题去掉错字“共”
congeec
2016-02-23 20:05:18 +08:00
还没部署在生产环境么?
咱出口宽带这鸟样,很适合用这项目呀
spance
2016-02-23 20:08:07 +08:00
@congeec 还没有开始应用,目前处在协议层优化测试阶段,从我小范围多天的测试结果来看,效果比较满意,欢迎分享测试结果,可以对比 tcp 或者其他协议。
mhycy
2016-02-23 20:30:22 +08:00
请问拥塞控制现在是如何实现的?
Orzpls
2016-02-23 20:55:47 +08:00
支持,希望好好发展。
spance
2016-02-23 20:58:23 +08:00
@mhycy 拥塞控制包括 2 个方面,慢启动和 rto 重传时大比例丢包后窗口缩减,与 tcp 的拥塞控制不同,不纯碎以丢包来判断拥塞,换句话说这个对丢包是宽容的。
与这个相关的还有快速重传,这其实也包括一部分 tcp 拥塞控制中快速恢复的功能,这里快速重传不计入 cwnd ,也能避免陷入 rto 重传,并且由于使用 bitmap ack 能够准确的反馈窗口内收到和丢失状态,所以这里的快速重传更能积极的促进吞吐。
spance
2016-02-23 21:03:56 +08:00
@Orzpls 感谢支持。

@mhycy 还有,因为对于丢包采用容忍态度,所以难以实现准确的链路带宽的探测,因此目前是指定最大传输带宽,如果有兴趣可以参与进来,一起讨论和解决这个问题。
zhengnanlee
2016-02-24 17:21:33 +08:00
请问您是如何写出一个通信协议的,看过哪些书籍呢?
spance
2016-02-24 19:10:36 +08:00
@zhengnanlee 看到各种闭源 xxx 加速漫天要价于是年前就闷了几天就写了,并把它开源了,也没看过什么,了解网络、常用算法和数据结构,你也可以自己创造一个!
zhengnanlee
2016-02-24 21:28:56 +08:00
@spance 那我就从学习您的代码开始吧

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/258503

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX