首页 > 在Ubuntu 16.04.3 LTS上玩转QUIC开源项目proto-quic

在Ubuntu 16.04.3 LTS上玩转QUIC开源项目proto-quic

说明

proto-quic项目是民间从chromium中抽取出的QUIC实现相关的代码。采用这个项目的代码,比从chromium源码编译,要更快速和简单。因为毕竟GFW限制,不是所有的人都可以翻墙去下载近10G的chromium项目源码。



下面的实操过程完全遵照github上的该项目的提示进行

https://github.com/google/proto-quic

另外参照chromium项目的官网页面





下载源码库

git clone https://github.com/google/proto-quic.git

cd proto-quic

export PROTO_QUIC_ROOT=`pwd`/src

export PATH=$PATH:`pwd`/depot_tools

./proto_quic_tools/sync.sh



sudo ./src/build/install-build-deps.sh

执行错误,但是似乎对结果运行没有影响。



编译生成QUIC的client,server和tests

cd src

gn gen out/Default

ninja -C out/Default quic_client quic_server net_unittests





测试中遇到如下问题:



解决方法:

vim proto-quic/src/out/Default/build.ninja

修改

ninja_required_version = 1.7.2 

将1.7.2修改为1.6.0,然后重新执行,大约编译完成需要半小时以上

ninja -C out/Default quic_client quic_server net_unittests





准备测试数据

以www.example.org为例,重用上一次的测试数据,参见

http://blog.csdn.net/tao_627/article/details/79422273

mkdir -p ~/program_develop/quic_dev/quic-data

cd ~/program_develop/quic_dev/quic-data

wget -p --save-headers https://www.example.org

cd www.example.org

vim index.html



在header里加上X-Original-Url: https://www.example.org/

行末的^M使用Ctrl+V,Ctrl+M实现



生成证书

cd net/tools/quic/certs

./generate-certs.sh

cd -

将证书添加到浏览器中,在地址栏中输入

chrome://settings/search#ssl

选择,高级(打开折叠)=>管理中心=>授权中心,点击导入,将~/program_develop/proto-quic/src/net/tools/quic/certs/out/2048-sha256-root.pem导入,最后勾选第一项,确定即可







下面开始测试

开启QUIC server

./out/Default/quic_server

--quic_response_cache_dir=/home/taoyx/program_develop/quic_dev/quic-data/www.example.org

--certificate_file=net/tools/quic/certs/out/leaf_cert.pem

--key_file=net/tools/quic/certs/out/leaf_cert.pkcs8

--port=6121

--v=1  





然后是QUIC Client

./out/Default/quic_client --host=127.0.0.1 --port=6121 https://www.example.org/ 





参考文献

[1].https://github.com/google/proto-quic

[2].https://www.chromium.org/quic/playing-with-quic

更多相关:

  • 目的 本文依据参考文献中的资料,来利用chromium源码编译出quic_server和quic_client, 并依靠它们来发送QUIC协议请求,了解QUIC交互的细节。 前提 必须能够流畅地翻墙下载chromium等项目代码 下面是实操记录 项目目录存放在 cd ~/program_develop/quic_dev 最后的...