quic協議實踐


QUIC實踐

環境Ubuntu14.x86_64 gcc4.8 python2.7

編譯QUIC服務器和客戶端

下載

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

修改hosts

因為要從google官網下載一些包,需要通過修改hosts來翻牆
將下面網站中的內容添加到本地hosts文件中(/etc/hosts)

https://github.com/racaljk/hosts/blob/master/hosts

依賴安裝

argparse安裝(未安裝的話)
apt-get install python-argparse 
安裝binutils
cd proto-quic  
export PROTO_QUIC_ROOT=`pwd`/src  
export PATH=$PATH:`pwd`/depot_tools  
./proto_quic_tools/sync.sh  
安裝其它依賴庫
./src/build/install-build-deps.sh --no-syms --no-arm --no-chromeos-fonts

編譯生成服務器和客戶端程序

cd src
gn gen out/Default && ninja -C out/Default quic_client quic_server net_unittests

編譯完成后輸出的文件在proto-quic/src/out/Default

運行服務器

准備測試數據

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

下載完測試數據后記得修改index.html文件中的內容,這塊可以參考本文最后的第一個連接

生成證書

cd proto-quic/src/net/tools/quic/certs/
./generate-certs.sh

運行服務器

在src目錄下執行下面的命令,如果服務器無法啟動,嘗試用root用戶啟動,或者加入sudo命令來啟動

./out/Default/quic_server \
  --quic_response_cache_dir=/tmp/www.example.org \
  --certificate_file=net/tools/quic/certs/out/leaf_cert.pem \
  --key_file=net/tools/quic/certs/out/leaf_cert.pkcs8 \
  --v=1

服務器啟動的成功后會查看6121端口

運行客戶端

使用chromium導入CA證書,具體操作詳見參考連接1。這里需要注意,Ubuntu只允許普通用戶登陸,所以chromium導入證書時是以普通用戶導入的。在運行客戶端時也需要以普通用戶來運行,否則會報證書無效的錯誤

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

客戶端運行成功后將會看到前面准備的數據內容

編譯時遇到的問題

問題1

/usr/bin/ld.gold: warning: ignoring --threads: /usr/bin/ld was compiled without thread support
/usr/bin/ld.gold: warning: ignoring --thread-count: /usr/bin/ld was compiled without thread support
出現上面的警告時說明不支持多線程,但是編譯器會將warning直接視為error從而終止編譯
修改 src/build/config/compiler/BUILD.gn,將fatal_linker_warnings的值修改為false
fatal_linker_warnings = false

參考

http://www.jianshu.com/p/f17b4a015e27
https://www.chromium.org/quic/playing-with-quic


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM