返回介绍

发布于 2024-01-15 22:20:40 字数 756 浏览 0 评论 0 收藏 0

流:在一个连接中传递数据的潜在的许多数据传输信道中的一个。一个流是双向的。如果流被客户端首先创建(连接发起人),那么它将有一个奇数编号的流标识符。如果流被服务器创建(连接应答者),那么它将有一个偶数编号的流标识符。在流中的数据自动被分解成帧,然后在接收端重新组装。

在为一个多路复用流建立一个 API 时有一些复杂性需要解决。在最高层次上,我们需要有一个机制增加新流到一个连接中,以及分别独立地读和写不同的流。

对每个流,我们需要一个方法来访问流,指定流应该使用的特性。特性包括,例如,可靠性和性能权衡(例如通过增加冗余减少抖动,通过减少冗余来减少带宽)。

我们期望不同的流将有明显的传输特征,它们或许会被应用设置或修改。这些包括明显的特征设置:

  • 可调冗余水平(对延迟储蓄的贸易带宽)
  • 可调优先级水平(仿照 SPDY 的演变优先级方案)

我们期望一些或许被视为输出流的控制通道将总是有用的,且可能被用于标识剩下流的状态改变。

对加密协商来说,控制通道可能包含特殊目的帧(控制帧)和一个保留的流。

在 QUIC 连接中的每个流将有一个独特的相关联的流标识符。

基于数据传输的字节流将仿照 TCP,具有有效负载数据提供的字节范围。字节范围将选择每个字节流中的定位。

流将被划分成帧放入(UDP)包中。只要有可能,任何特定的数据包的有效载荷应只来自于一个流。这将减少这种概率,一个包丢失将阻碍不止一个流的进步。当没有足够的数据流来填充一个数据包,然后来自不止一个流的帧可能被打包进一个包。这种包装应减少数据包计数开销,减少序列化延迟。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文