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

更多协议的支持如KCP和QUIC #9

Open
MiyamuraMiyako opened this issue May 10, 2018 · 3 comments
Open

更多协议的支持如KCP和QUIC #9

MiyamuraMiyako opened this issue May 10, 2018 · 3 comments

Comments

@MiyamuraMiyako
Copy link

KCP是为流速设计的(单个数据包从一端发送到一端需要多少时间),以10%-20%带宽浪费的代价换取了比 TCP快30%-40%的传输速度。所以在网络欠佳时KCP有比TCP更好的表现。
目前KCP已经有不少语言的实现:
1、C:kcp
2、Java-netty:kcp-netty
3、golang:kcp-go
4、rust:kcp
5、C#:kcp-csharp
6、Node.JS:node-kcp

QUIC协议实现比较复杂,没找到合适的实现。要适配到hprose可能过于困难,暂时不用考虑这个。

@andot
Copy link
Member

andot commented May 10, 2018

在通讯上采用跟 TCP 全双工一样的方式吗?

@andot
Copy link
Member

andot commented Feb 5, 2019

kcp 协议了解了一下,说目前国内网络对该协议封锁的比较严重,实际效果在网络环境不好时并不比 TCP 更好。所以目前暂不考虑提供内置实现,但是 Hprose 3.0 在设计上,具体的传输层跟 RPC 是分离的,传输层是以插件方式实现的,因此用户如果需要,可以通过插件方式单独添加。

Hprose 3.0 增加了 UDP 支持的内置实现(实现方式也是插件方式,只不过内置了)。在请求和响应内容都比较小时(不超过65499个字节),可以考虑使用 UDP 来代替 TCP。

@MiyamuraMiyako
Copy link
Author

这么做也可以,插件形式方便扩展。
似乎这个issue可以关闭了,不过多个语言实现相同功能的插件也要耗费不少时间精力。

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

No branches or pull requests

2 participants