文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
流
流:在一个连接中传递数据的潜在的许多数据传输信道中的一个。一个流是双向的。如果流被客户端首先创建(连接发起人),那么它将有一个奇数编号的流标识符。如果流被服务器创建(连接应答者),那么它将有一个偶数编号的流标识符。在流中的数据自动被分解成帧,然后在接收端重新组装。
在为一个多路复用流建立一个 API 时有一些复杂性需要解决。在最高层次上,我们需要有一个机制增加新流到一个连接中,以及分别独立地读和写不同的流。
对每个流,我们需要一个方法来访问流,指定流应该使用的特性。特性包括,例如,可靠性和性能权衡(例如通过增加冗余减少抖动,通过减少冗余来减少带宽)。
我们期望不同的流将有明显的传输特征,它们或许会被应用设置或修改。这些包括明显的特征设置:
- 可调冗余水平(对延迟储蓄的贸易带宽)
- 可调优先级水平(仿照 SPDY 的演变优先级方案)
我们期望一些或许被视为输出流的控制通道将总是有用的,且可能被用于标识剩下流的状态改变。
对加密协商来说,控制通道可能包含特殊目的帧(控制帧)和一个保留的流。
在 QUIC 连接中的每个流将有一个独特的相关联的流标识符。
基于数据传输的字节流将仿照 TCP,具有有效负载数据提供的字节范围。字节范围将选择每个字节流中的定位。
流将被划分成帧放入(UDP)包中。只要有可能,任何特定的数据包的有效载荷应只来自于一个流。这将减少这种概率,一个包丢失将阻碍不止一个流的进步。当没有足够的数据流来填充一个数据包,然后来自不止一个流的帧可能被打包进一个包。这种包装应减少数据包计数开销,减少序列化延迟。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论