在Ubuntu 16.04.3 LTS上搭建QUIC互動demo
阿新 • • 發佈:2019-01-03
目的
本文依據參考文獻中的資料,來利用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分鐘左右吧
sudo build/install-build-deps.sh
或者
sudo build/install-build-deps.sh --no-chromeos-fonts
gn gen out/Default
ninja -C out/Default quic_server quic_client
此時我們已經得到quic_server和quic_client
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 -
--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/
[2].http://blog.csdn.net/dxpqxb/article/details/76819992
本文依據參考文獻中的資料,來利用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 srcsudo build/install-build-deps.sh
或者
sudo build/install-build-deps.sh --no-chromeos-fonts
這兩個命令都下載失敗,但是都沒有啥影響
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-datawget -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