Page 459 - 《软件学报》2025年第7期
P. 459
3380 软件学报 2025 年第 36 卷第 7 期
当打开视频时, 客户端首先请求获取 MPD 文件, 并对其进行解析, 进而获取该视频的各种比特率资源的地址
和描述信息, 然后根据自身的网络状况, 选取合适的视频片段进行下载. 在视频播放的同时, DASH 客户端可使用
ABR 算法, 根据网络状态、应用状态和客户端缓冲区状态动态地切换不同比特率的视频片段, 从而实现自适应码
率播放.
虽然自适应流媒体技术提高了视频用户的体验, 但其将视频片段顺序传输的特点也为研究者从流量中通过侧
信道技术分析出视频内容提供了可能.
2.2 HTTP/2 协议
由于 HTTP 自适应流媒体技术均基于 HTTP 协议构建, HTTP 协议作为视频数据传输的载体, 其协议规范和
传输机制直接影响着加密视频流的传输特征, 与加密视频识别技术密切相关. HTTP 协议最初是专门被设计用于
在网站服务器和客户浏览器之间传输 Web 应用数据的协议, 由于其应用简单方便, 易于部署, 且 HTTP 流量通常
不会被各类防火墙过滤, HTTP 协议已经不局限于传输 Web 应用数据, 而是广泛用于传输自适应流媒体、各类
APP 数据等. 随着基于 HTTP 协议的应用越来越多, 为了提高网络传输性能, 优化用户服务体验, HTTP 协议一直
不断进行改进, 目前主要被使用的 HTTP 版本包括 HTTP/1.1, HTTP/2, QUIC 和 HTTP/3.
HTTP/1.1 协议自 1999 年发布以来, 在很长一段时间内都是使用最广泛的 HTTP 协议版本. 然而, 随着互联网
的飞速发展, HTTP/1.1 因串行通信、队头阻塞和头部冗余等性能问题逐渐不能满足现代 Web 应用对高并发和大
数据量传输的需求. 为了解决这些问题, 互联网工程任务组 IETF (Internet engineering task force) 在 2015 年 5 月发
布了 HTTP/2 协议. 作为 HTTP/1.1 协议的全新升级版本, 它从根本上解决了 HTTP/1.1 的性能瓶颈, 提供了更加快
速、安全、高效的网络通信能力, 并迅速获得了全球众多浏览器和服务器的支持. 截至 2023 年 12 月, HTTP/2 在
全球互联网网站中的使用率已达到了 37.6% [32] , 在 TOP 10 000 的网站中使用率更是高达 62.3%. 几乎在同一时期,
Google 于 2015 年提出了基于 UDP 的 QUIC 协议, 旨在克服 TCP 协议的队头阻塞、连接延迟和连接迁移等固有
问题, 以实现更快的连接建立和无缝的连接迁移. 基于 QUIC 的 HTTP/3 协议, 最初被称为 HTTP over QUIC, 于
2022 年 6 月完成标准化, 旨在进一步提升网络性能和用户体验, 目前已经初步在全球范围内推广应用.
当前, 互联网中呈现出 HTTP/1.1、HTTP/2、QUIC 和 HTTP/3 协议并存的现象. HTTP/2 正逐步取代老旧的
HTTP/1.1, 成为应用最广泛的 HTTP 协议版本. 与此同时, 以谷歌为代表的服务提供商已经开始在其服务中部署
HTTP/3 协议. 然而, 有研究指出 [33] , 在网络服务质量不佳的情况下, HTTP/3 的传输效率不如 HTTP/2. 因此, 服务
提供商选择同时支持多种协议, 并根据用户的地理位置和网络环境来选择使用 HTTP/2 或 HTTP/3. 例如, Facebook
在网络状况良好时优先使用 HTTP/3 进行视频传输, 而在网络延迟较大的路径上则切换至 HTTP/2 协议. 因此, 展
望未来, 可以预见 HTTP/1.1 的使用将逐渐减少, 而 HTTP/2 和 HTTP/3 将在很长一段时间内在互联网中并存使用.
本文研究使用 HTTP/2 协议传输的加密视频内容的识别问题.
HTTP/2 并非 HTTP/1.1 的简单升级版, 而是使用了多路复用技术, 替代了 HTTP/1.1 的传输模式. HTTP/2 引入
了二进制分帧、多路复用、首部压缩、服务器推送和流的优先级控制等功能 [34] , 从根本上解决了 HTTP/1.1 的诸
多问题, 大幅提升了传输数据的性能. 其中, 二进制分帧是 HTTP/2 所有性能提升的核心. 它在不改变原有 HTTP
语义的基础上重新定义了数据的封装和传输, 并将帧作为最小的数据单元, 所有的帧都采用二进制编码, HTTP/2
消息由各种数据帧共同构成. 如图 2 所示, HTTP/2 协议将 HTTP 首部信息通过 HPACK 技术压缩后封装为一个
HEADERS 帧进行单独传输, 并将 HTTP 负载数据封装为若干个 DATA 帧, 此外还有 WINDOW_UPDATE 帧等控
制帧. 在 HTTP/2 中, 每个请求或响应使用不同的流 (默认至多 100 条流). 通过使用二进制分帧, 给每个帧分配一
个流标识符, 使各个帧可以交错传输, 以支持同时发送多个独立请求, 当接收到流的所有帧时, 接收方可以将帧重
新组合成完整的消息. 这使得 HTTP/2 可以实现多路复用, 在使用单条 TCP 连接且不发生阻塞的情况下, 可以将多
个请求和响应并行处理, 以此大幅减少网络延迟, 提高网络资源的利用率.
HTTP/2 协议虽然在正式规范 RFC 7540 [35] 中并没有强制使用 HTTPS 加密传输, 但是在实际的使用过程中,

