說明
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
下載下傳并安裝項目
在/home/taoyx/program_develop/go_demo目錄的src下面,下載下傳,編譯和安裝quic-go項目代碼
go get -v -t -u github.com/lucas-clemente/quic-go
進入項目所在目錄
cd github.com/lucas-clemente/quic-go
執行下面的指令測試
go test ./...
測試發現進行GQUIC測試時,有很多fail,原因待查
測試example目錄下面的server
go run example/main.go -www /var/www/
同時采用從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
測試example目錄下面的client
我悲催的發現,測試網站的QUIC版本與目前client的版本不比對,測試無法進行
go run example/client/main.go https://clemente.io
後來我在網上找到一個可以提供QUIC服務的網站,使用上面的client去請求,可以成功擷取響應
go run example/client/main.go 'https://liudanking.com'
下面是在Chrome浏覽器(版本号64)中開啟QUIC之後,請求上面的同一個位址,擷取的QUIC互動截圖
TODO:
更進一步的研究待續......