littlebot
Published on 2025-04-18 / 0 Visits
0

【源码】基于C语言的QUIC协议测试项目

项目简介

本项目是用C语言编写的关于QUIC协议实现及其相关功能的测试代码集合。它包含多个测试用例,用于验证QUIC协议实现中数据包解析、流控制、窗口更新、版本协商等关键功能的正确性。由LiteSpeed Technologies开发,可帮助开发者确保QUIC协议实现符合预期规范,在不同网络条件下正常工作,也为后续维护和更新提供参考。

项目的主要特性和功能

  1. 多功能测试:对QUIC协议多个关键功能进行测试,保障协议实现的正确性。
  2. 跨平台支持:已在Linux(i386、x86_64、ARM)、FreeBSD(i386)、MacOS(x86_64)、Android(ARM)、Windows(x86_64)等平台完成测试。
  3. 多版本支持:目前支持Q043、Q046、Q050、ID - 27、ID - 28、ID - 29、ID - 30和ID - 31等QUIC版本,会在新版本发布后尽快添加支持。

安装使用步骤

假设用户已经下载了本项目的源码文件。

前提条件

构建LSQUIC需要CMake、zlib和BoringSSL。示例程序使用libevent提供事件循环。

构建BoringSSL

  1. 复制BoringSSL: git clone https://boringssl.googlesource.com/boringssl cd boringssl
  2. 使用特定版本: git checkout b117a3a0b7bd11fe6ebd503ec6b45d6b910b41a1
  3. 编译库: cmake . && make 记住BoringSSL源代码的位置: BORINGSSL=$PWD 若要开启优化: cmake -DCMAKE_BUILD_TYPE=Release . && make 若要构建为库(构建lsquic本身为共享库时必要): cmake -DBUILD_SHARED_LIBS=1 . && make

构建LSQUIC库

  1. 获取源代码: cd lsquic git submodule init git submodule update
  2. 编译库:
    • 静态编译: cmake -DBORINGSSL_DIR=$BORINGSSL . make
    • 动态编译: cmake -DLSQUIC_SHARED_LIB=1 -DBORINGSSL_DIR=$BORINGSSL . make
  3. 运行测试: make test

使用Docker构建

  1. 初始化Git子模块: cd lsquic git submodule init git submodule update
  2. 构建Docker镜像: docker build -t lsquic .
  3. 使用示例: sudo docker run -it --rm lsquic http_client -s www.google.com -p / -o version=Q046 sudo docker run -p 12345:12345/udp -v /path/to/certs:/mnt/certs -it --rm lsquic http_server -c www.example.com,/mnt/certs/chain,/mnt/certs/key

下载地址

点击下载 【提取码: 4003】【解压密码: www.makuang.net】