两年后,偶然翻到这个帖子。的确是可行的,已经实现了,但本质是增大滑动窗口大小,提高重发频率。
拥塞控制通常由线路的一些属性决定,如丢包率、延迟变化等,而这些属性不一定能反应线路的真实拥塞情况,因此只使用令牌桶进行流速限制。
若需要提高响应速度,可以增加前向纠错(FEC),牺牲一部分带宽以降低丢包率。
1
Shura 2018-01-18 15:40:36 +08:00 6
可行,参考 kcp https://github.com/skywind3000/kcp
|
2
wtks1 2018-01-18 15:41:27 +08:00 via Android 1
那是 lZ 你没遇到过运营商封大流量 udp 传输....
|
4
jedihy 2018-01-18 15:59:39 +08:00 2
你设计可靠传输但是又不考虑拥塞控制,每个人都这样玩就完蛋了
|
5
scream7 2018-01-18 16:03:30 +08:00 1
|
6
29EtwXn6t5wgM3fD 2018-01-18 16:06:05 +08:00 via iPhone 2
QUIC ?
|
7
eaglexiang 2018-01-18 17:46:35 +08:00 via Android 1
当然可行,你只需要在应用层,自己做一套验证重传和拥塞控制就行了。话说回来,这样的效果跟 大文件分割+断点续传+TCP 又有啥区别。
|
8
topbandit 2018-01-18 17:47:53 +08:00 1
参考 QQ
|
9
eaglexiang 2018-01-18 17:48:19 +08:00 via Android
只要文件块小一点,再加上并发连接,我想也能实现你的需求
|
10
mt7620 2018-01-18 18:42:57 +08:00 via Android 1
github 搜 kcptun
|
11
nazor OP @eaglexiang TCP 有固有缺陷的,网络环境差的时候,效率很低。
|
12
mooncakejs 2018-01-18 18:59:26 +08:00
上 bbr 可解。
用 udp 重新发明 tcp 的轮子可不是好主意。 |
13
eaglexiang 2018-01-18 22:50:12 +08:00 via Android
@nazor 我想这种缺陷就是由掉包率带来的吧。可以考虑换一套解决拥塞的库,如 BBR 或者锐速之类的,应该有缓解。如果真用 UDP 实现了类似 TCP 的检验重传,那 TCP 的缺陷也一样会有
|
15
xiadong1994 2018-01-18 22:56:49 +08:00 via iPhone 1
实现当然没有问题,问题是你怎么设计你的拥塞控制算法。
|
16
hugee 2018-01-18 23:06:25 +08:00 via Android
不可行
|
17
ifaii 2018-01-18 23:33:01 +08:00 1
UDP 来实现可靠的数据传输 那不就是 TCP 嘛
|
19
watzds 2018-01-19 08:40:17 +08:00 via Android 1
@ifaii 怎么就是 TCP 了,TCP 和 UDP 又不只是差了可靠传输。况且可以有不同实现,在某个场景达到更好效果
|
20
zzgy 2018-01-19 08:42:08 +08:00 via Android 1
quic 可以,也可以用我司的 SDK,我司基于 quic 做了一套 UDP 加密传输协议,有意向可以聊聊
|
21
lieh222 2018-01-19 08:42:12 +08:00 1
把这个比喻成快递,送快递没人的时候都放门口超市了,所以还是找个服务器当超市吧。。
|
22
superkey 2018-01-19 09:50:48 +08:00 1
可行,早些年一些远控软件都是用 udp 协议,能避免大部分杀软.
|
23
julyclyde 2018-01-19 15:39:53 +08:00
@watzds UDP 比 IP 除了多个端口号的概念,还有啥区别吗?
你在 UDP 上层实现可靠传输,和在 IP 上层实现可靠传输,还有啥区别吗? |
24
stackexplode 2018-01-19 19:16:36 +08:00
udt
|
25
Justin13 2018-01-20 08:28:08 +08:00 via Android
quic。不过 quic 基本上就是干掉了三次握手的 tcp..
|
26
tony1016 2018-01-23 09:24:27 +08:00
zerotier
|