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