项目简介
本项目是用C语言编写的关于QUIC协议实现及其相关功能的测试代码集合。它包含多个测试用例,用于验证QUIC协议实现中数据包解析、流控制、窗口更新、版本协商等关键功能的正确性。由LiteSpeed Technologies开发,可帮助开发者确保QUIC协议实现符合预期规范,在不同网络条件下正常工作,也为后续维护和更新提供参考。
项目的主要特性和功能
- 多功能测试:对QUIC协议多个关键功能进行测试,保障协议实现的正确性。
- 跨平台支持:已在Linux(i386、x86_64、ARM)、FreeBSD(i386)、MacOS(x86_64)、Android(ARM)、Windows(x86_64)等平台完成测试。
- 多版本支持:目前支持Q043、Q046、Q050、ID - 27、ID - 28、ID - 29、ID - 30和ID - 31等QUIC版本,会在新版本发布后尽快添加支持。
安装使用步骤
假设用户已经下载了本项目的源码文件。
前提条件
构建LSQUIC需要CMake、zlib和BoringSSL。示例程序使用libevent提供事件循环。
构建BoringSSL
- 复制BoringSSL:
git clone https://boringssl.googlesource.com/boringssl cd boringssl
- 使用特定版本:
git checkout b117a3a0b7bd11fe6ebd503ec6b45d6b910b41a1
- 编译库:
cmake . && make
记住BoringSSL源代码的位置:BORINGSSL=$PWD
若要开启优化:cmake -DCMAKE_BUILD_TYPE=Release . && make
若要构建为库(构建lsquic本身为共享库时必要):cmake -DBUILD_SHARED_LIBS=1 . && make
构建LSQUIC库
- 获取源代码:
cd lsquic git submodule init git submodule update
- 编译库:
- 静态编译:
cmake -DBORINGSSL_DIR=$BORINGSSL . make
- 动态编译:
cmake -DLSQUIC_SHARED_LIB=1 -DBORINGSSL_DIR=$BORINGSSL . make
- 静态编译:
- 运行测试:
make test
使用Docker构建
- 初始化Git子模块:
cd lsquic git submodule init git submodule update
- 构建Docker镜像:
docker build -t lsquic .
- 使用示例:
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】