用 UDP 来实现可靠的数据传输 可行吗

2018-01-18 15:27:20 +08:00
 nazor
对于某些位置『偏僻』的海外线路服务器,TCP 数据传输速度很不理想。
比如 AmazonEC2 美国东部节点,TCP 传输速度只有 100KB/s,然而在 PC 机上用 UDP 测试下行速度通常能跑满百兆宽带。
那么用 UDP 实现可靠的数据传输协议,结果应该很美好吧。
5180 次点击
所在节点    奇思妙想
26 条回复
Shura
2018-01-18 15:40:36 +08:00
wtks1
2018-01-18 15:41:27 +08:00
那是 lZ 你没遇到过运营商封大流量 udp 传输....
nazor
2018-01-18 15:51:56 +08:00
@wtks1 这个问题,还是能解决的,服务端进行一些限制。
jedihy
2018-01-18 15:59:39 +08:00
你设计可靠传输但是又不考虑拥塞控制,每个人都这样玩就完蛋了
scream7
2018-01-18 16:03:30 +08:00
shengyu
2018-01-18 16:06:05 +08:00
QUIC ?
eaglexiang
2018-01-18 17:46:35 +08:00
当然可行,你只需要在应用层,自己做一套验证重传和拥塞控制就行了。话说回来,这样的效果跟 大文件分割+断点续传+TCP 又有啥区别。
topbandit
2018-01-18 17:47:53 +08:00
参考 QQ
eaglexiang
2018-01-18 17:48:19 +08:00
只要文件块小一点,再加上并发连接,我想也能实现你的需求
mt7620
2018-01-18 18:42:57 +08:00
github 搜 kcptun
nazor
2018-01-18 18:46:39 +08:00
@eaglexiang TCP 有固有缺陷的,网络环境差的时候,效率很低。
mooncakejs
2018-01-18 18:59:26 +08:00
上 bbr 可解。
用 udp 重新发明 tcp 的轮子可不是好主意。
eaglexiang
2018-01-18 22:50:12 +08:00
@nazor 我想这种缺陷就是由掉包率带来的吧。可以考虑换一套解决拥塞的库,如 BBR 或者锐速之类的,应该有缓解。如果真用 UDP 实现了类似 TCP 的检验重传,那 TCP 的缺陷也一样会有
cloudbeyond
2018-01-18 22:56:15 +08:00
可行,kcptun
xiadong1994
2018-01-18 22:56:49 +08:00
实现当然没有问题,问题是你怎么设计你的拥塞控制算法。
hugee
2018-01-18 23:06:25 +08:00
不可行
ifaii
2018-01-18 23:33:01 +08:00
UDP 来实现可靠的数据传输 那不就是 TCP 嘛
watzds
2018-01-19 08:38:01 +08:00
@ifaii 怎么就是 TCP 了,TCP 和 UDP
watzds
2018-01-19 08:40:17 +08:00
@ifaii 怎么就是 TCP 了,TCP 和 UDP 又不只是差了可靠传输。况且可以有不同实现,在某个场景达到更好效果
zzgy
2018-01-19 08:42:08 +08:00
quic 可以,也可以用我司的 SDK,我司基于 quic 做了一套 UDP 加密传输协议,有意向可以聊聊

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

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

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

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

© 2021 V2EX