虽然只有一个 TCP 连接,却能够在这个连接同时处理客户端和服务端的多个数据传输。
按照以上所述,HTTP2 是用 UDP 实现的 TCP 实现了 UDP?我的想法是对的吗?
1
514146235 2019 年 3 月 5 日
当然不对啊,udp 根本不需要建立连接,就是无脑直接发,到没到根本不管。所以才会说 udp 是不可靠协议,但是因为没有握手的过程,从而 udp 通常表现的比 tcp 协议更快。
|
3
rrfeng 2019 年 3 月 5 日 via Android
一点都不是。
|
4
lhx2008 2019 年 3 月 5 日
不是,TCP 本来就是流,在流上发包很正常,基本上所有 TCP 协议都是流上发包,至于无序到达,HTTP/2 的意思应该是来自不同服务器的包可以无序到达,没说来自同一个服务器的包可以无序。
|
5
msg7086 2019 年 3 月 5 日
可以说是把 TCP 链路给 UDP 化了。但是也不完全是 UDP 化,因为上层只管乱序,不管丢包重发。
以后 HTTP/3 可能就要全面 UDP 了。 另外,TCP 并不是 UDP 实现的。 |
6
orangeade 2019 年 3 月 5 日
你说的是 HTTP/3 HTTP/2 还是有 TCP 的队头阻塞的
|
7
gamexg 2019 年 3 月 5 日
不是,
http2 还是基于 tcp 的,建简易理解可以认为底层 tcp 连接里面都是这样的包 流 id | 流数据 接受方根据 流 id 重组为多个子流就实现了单连接多路复用。当然实际不是这样简单,还有一些其他细节。 |
10
gamexg 2019 年 3 月 5 日
@wysnylc #9 不会无序到达,tcp 协议可以保证发送什么顺序接收时就是什么顺序。
那么每个 “流 id + 数据 ” 就会按照发送的顺序到达接收端,不会出现无序的情况。 |
11
mritd 2019 年 3 月 5 日 首先声明,利益无关,今天 Harbor 群里看到的,刚看完推荐楼主看一下 https://mp.weixin.qq.com/s/bD8C0oR34ZKUEZjN9yBSJg
|