QUIC协议 - 3 - QUIC连接管理

TCP的安全问题 TCP依赖seq和ACK来实现可靠,流式以及全双工的传输模式,而实际过程中却需要通过三次握手来同步双端的 seq,如果我们提前约定好通信双方初始seq,其实是可以避免三次握手的,那么为什么没有这么做呢?答案是安全问题。 TCP的数据是没有经过任何安全保护的,无论是其header还是payloa...

阅读更多

QUIC协议 - 6 - QUIC的拥塞控制机制

QUIC协议本身(RFC 9002)并没有强制规定必须使用哪一种拥塞控制。它只定义了拥塞控制器与QUIC协议栈交互的接口和信号: QUIC最流行的两种拥塞控制算法是CUBIC和BBR。 RFC 中没有以特定编程语言的 API 形式来定义接口,但它描述了一套逻辑上的接口。可以其分为以下两类 conceptual...

阅读更多

QUIC协议 - 2 - QUIC报文格式

一个 QUIC 数据包由一个或多个报头(Header)和有效载荷(Payload)组成。有效载荷中包含了一系列的数据帧(Frame)。QUIC 的报文格式是高度动态化的,可以根据实际情况进行调整,没有固定的报文结构。 报文头 QUIC 有两种主要类型的报头:长报头(Long Header) 和 短报头(Sho...

阅读更多

H.265混合编码框架

1. 输入与分割 输入视频信号: 原始的、未经压缩的视频帧序列作为编码器的输入。 分割为CTU: 每一帧图像首先被分割成一个个CTU。CTU是HEVC处理的基本单位,每个CTU还可以根据内容的复杂度,被递归地分割成更小的CU。 2. 核心编码循环 编码的核心思想是预测。HEVC不直接编码像素...

阅读更多

H.264与H.265的对比

特性 H.264 H.265 H.265 关键增强 基本编码单元 MB CTU CTU 取代宏块:可从 64x64 到 16x16,远大于 H.264 固定的 16x1...

阅读更多

GCC算法总结

传统的拥塞控制算法通常只依赖一种信号(要么是丢包,要么是延迟)。而GCC则采用延迟加丢包两种拥塞信号,同时运行两个独立的控制器: 基于延迟的控制 (Delay-based Control):这是一种主动式、预测性的方法。它通过监测数据包在网络中传输的单向延迟变化趋势来判断拥塞。当延迟开始持续增长时,GCC...

阅读更多

BBRv3 总结

BBRv2的问题 对ECN信号的响应缓慢且不够有效 这是 BBRv2 最核心的缺陷之一。BBRv2 尝试将 ECN作为避免丢包的早期信号,但其处理方式存在问题。 机制缺陷:BBRv2 收到 ECN-CE(Congestion Experienced)标记后,并不会立即降低其发送速率。相反,它会将 EC...

阅读更多

BBRv2 总结

BBRv1的问题 带宽探测过于激进,导致丢包率过高。 BBRv1的ProbeBW阶段为了探测带宽,会周期性地使用1.25的增益系数发送数据。在网络缓冲队列很小(Shallow Buffer)的情况下,这额外25%的流量无法被吸收,会直接导致周期性的丢包。 抢占性过强,对其他流不公平。 BBRv1主要...

阅读更多