在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

下载并安装项目
在/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项目_第1张图片

进入项目所在目录
cd github.com/lucas-clemente/quic-go
执行下面的命令测试
go test ./...
测试发现进行GQUIC测试时,有很多fail,原因待查
在Ubuntu 16.04.3 LTS上玩转quic-go项目_第2张图片

测试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
在Ubuntu 16.04.3 LTS上玩转quic-go项目_第3张图片

测试example目录下面的client
我悲催的发现,测试网站的QUIC版本与当前client的版本不匹配,测试无法进行
go run example/client/main.go https://clemente.io

在Ubuntu 16.04.3 LTS上玩转quic-go项目_第4张图片

后来我在网上找到一个可以提供QUIC服务的网站,使用上面的client去请求,可以成功获取响应

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

在Ubuntu 16.04.3 LTS上玩转quic-go项目_第5张图片

下面是在Chrome浏览器(版本号64)中开启QUIC之后,请求上面的同一个地址,获取的QUIC交互截图



TODO:
更进一步的研究待续......

你可能感兴趣的:(Ubuntu)