天天看點

在Ubuntu 16.04.3 LTS上玩轉quic-go項目

說明

quic-go是使用Go來重寫chromium中的QUIC協定,将來計劃過渡到IETF版本的QUIC協定。

目前該協定還處于不斷更新和活躍之中,目前IETF版本的QUIC協定草案版本号已經到draft 9

下面是我對REAME的實操記錄,以作備忘。

項目首頁

https://github.com/lucas-clemente/quic-go

特别要求

必須能流暢翻牆去下載下傳go相關源碼包

GO環境搭建

目前Ubuntu 16.04.3 LTS使用官方源安裝的版本是1.6.2, 并不符合quic-go項目的版本1.9+的要求。

為此,需要從源碼安裝Go 1.10,參見本博文章

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

設定GOPATH

這非常關鍵,目前我的設定如下:

vim ~/.bashrc

export GOPATH=/home/taoyx/program_develop/go_demo

source ~/.bashrc

在Ubuntu 16.04.3 LTS上玩轉quic-go項目

下載下傳并安裝項目

在/home/taoyx/program_develop/go_demo目錄的src下面,下載下傳,編譯和安裝quic-go項目代碼

go get -v -t -u github.com/lucas-clemente/quic-go

在Ubuntu 16.04.3 LTS上玩轉quic-go項目

進入項目所在目錄

cd github.com/lucas-clemente/quic-go

執行下面的指令測試

go test ./...

測試發現進行GQUIC測試時,有很多fail,原因待查

在Ubuntu 16.04.3 LTS上玩轉quic-go項目

測試example目錄下面的server

go run example/main.go -www /var/www/

在Ubuntu 16.04.3 LTS上玩轉quic-go項目

同時采用從chromium或proto-quic編譯出的quic-client作為用戶端配對測試

cd ~/program_develop/quic_dev/chromium/src

./out/Default/quic_client --host=127.0.0.1 --port=6121 --v=1 https://quic.clemente.io

在Ubuntu 16.04.3 LTS上玩轉quic-go項目

測試example目錄下面的client

我悲催的發現,測試網站的QUIC版本與目前client的版本不比對,測試無法進行

go run example/client/main.go https://clemente.io

在Ubuntu 16.04.3 LTS上玩轉quic-go項目

後來我在網上找到一個可以提供QUIC服務的網站,使用上面的client去請求,可以成功擷取響應

go run example/client/main.go 'https://liudanking.com'

在Ubuntu 16.04.3 LTS上玩轉quic-go項目

下面是在Chrome浏覽器(版本号64)中開啟QUIC之後,請求上面的同一個位址,擷取的QUIC互動截圖

在Ubuntu 16.04.3 LTS上玩轉quic-go項目

TODO:

更進一步的研究待續......