在Ubuntu 16.04.3 LTS上玩转quic-go项目 - Go语言中文社区

在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


进入项目所在目录
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:
更进一步的研究待续......
版权声明:本文来源CSDN,感谢博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/tao_627/article/details/79425977
站方申明:本站部分内容来自社区用户分享,若涉及侵权,请联系站方删除。
  • 发表于 2020-03-07 15:41:49
  • 阅读 ( 1335 )
  • 分类:Go

0 条评论

请先 登录 后评论

官方社群

GO教程

猜你喜欢