查询了一下 HTTP2 默认对于单条连接并发的 stream 数量有最大 100 的限制,但我的理解,既然 stream 取代了原先的 TCP connection 成为新的并发单位,那应该两点之间只需要一条 TCP connection ,然后所有并发请求都以 stream 的形式塞进去,不管是 100 个还是 100w 个?
1
3dwelcome 2022-05-10 17:27:22 +08:00
TCP 网络不稳定会掉包。
以掉包率 5%来计算,如果你把所有的 stream 都塞进一个 tcp connection ,那么当 100 个 stream 都掉包的时候,最后一个 stream 重发 tcp 包,就必须要等前面 99 个 stream 都发完,属于串联性质,会增加总耗时。 如果有 100 条 tcp 同时连接,那么 IP 丢包重发就是并联的,不耗时间。 |