在Ubuntu 16.04.3 LTS上搭建QUIC交互demo

目的
本文依据参考文献中的资料,来利用chromium源码编译出quic_server和quic_client, 并依靠它们来发送QUIC协议请求,了解QUIC交互的细节。

前提
必须能够流畅地翻墙下载chromium等项目代码

下面是实操记录

项目目录存放在
cd ~/program_develop/quic_dev
最后的目录结构在这里提前说明一下


下载chromium项目源码
git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git

在~/.bashrc中添加
export PATH="$PATH:这里为depot_tools的路径" 
更新配置
source ~/.bashrc

mkdir chromium && cd chromium 
fetch --nohooks chromium
chromium项目源码大约9.91G,这一步根据网速快慢可能需要花费较长时间,我这里大约40分钟左右吧



编译出quic_server和quic_client

cd src
sudo build/install-build-deps.sh
或者
sudo build/install-build-deps.sh --no-chromeos-fonts 

这两个命令都下载失败,但是都没有啥影响


gclient runhooks  

gn gen out/Default 
ninja -C out/Default quic_server quic_client 

此时我们已经得到quic_server和quic_client


准备测试网页及证书

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 ~/program_develop/quic_dev/chromium/src
cd net/tools/quic/certs  
./generate-certs.sh  
cd - 

生成的证书在下面的目录


在浏览器中添加证书

然后打开chrome浏览器(我在Ubuntu 16.04上安装的版本是63),在地址栏里输入chrome://settings/search#ssl 然后选择 授权中心,点击导入 ,将net/tools/quic/certs/out/2048-sha256-root.pem导入 ,最后勾选第一项,确定即可







开启QUIC的server和client,请求准备好的网址

下一步就是跑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  
这里明确指定端口号6121,使用--v=1开启更多的调试信息

然后是启动Client,采用QUIC协议来发送请求和接收响应
./out/Default/quic_client --host=127.0.0.1 --port=6121 https://www.example.org/  


然后,根据交互细节来了解QUIC协议,并阅读QUIC实现的相关代码。


参考文献

[1].http://blog.csdn.net/Claranc/article/details/79062260
[2].http://blog.csdn.net/dxpqxb/article/details/76819992
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值