说明
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:
更进一步的研究待续......

在Ubuntu 16.04.3 LTS上玩转quic-go项目相关推荐

  1. 在Ubuntu 16.04.3 LTS上玩转QUIC开源项目proto-quic

    说明 proto-quic项目是民间从chromium中抽取出的QUIC实现相关的代码.采用这个项目的代码,比从chromium源码编译,要更快速和简单.因为毕竟GFW限制,不是所有的人都可以翻墙去下 ...

  2. 在Ubuntu 16.04.4 LTS上调研开源QUIC项目ngtcp2

    最近在研究QUIC协议,尝试了一些QUIC相关的开源项目,主要是c,c++,go等语言编写的.这里记录下我折腾ngtcp2的过程. 基本思路就是参照github上该项目的README来进行就可以了.由 ...

  3. 在Ubuntu 16.04.6 LTS上升级python 3.5到3.7.3实录

    缘由 我想安装一个python模块you-get,发现只能使用pip3安装,但是我发现我的Ubuntu 16.04.6 LTS上有python3.5,但是没有pip3,也无法成功安装,真是要了我的老命 ...

  4. 在Ubuntu 16.04.6 LTS上安装python3.7和pip3后出现Command '('lsb_release', '-a')' 出错问题的解决方法

    在Ubuntu 16.04.6 LTS上安装python3.7和pip3后出现Command '('lsb_release', '-a')' returned non-zero exit status ...

  5. 在Ubuntu 16.04.6 LTS上升级Go到最新版1.12.5实录

    上一次我在Ubuntu 16.04.3 LTS上从源码安装了Go,当时最新的版本是1.10,参见我之前的博文 https://blog.csdn.net/tao_627/article/details ...

  6. 在Ubuntu 16.04.5 LTS上利用python中的PIL模块压缩一百多兆的单张图片实操

    在前面的博文中,我将300多张电影海报拼接为了一张103MB的巨幅图片,我想拿它做电脑桌面(1080P),但是这么多的图片,存储和加载是个麻烦事儿,需要将它压缩到几MB大小. 在Ubuntu 16.0 ...

  7. 在Ubuntu 16.04.5 LTS上升级python的pip版本实录

    在ubuntu 16.04.5 LTS上使用Python安装模块时,比较顺手的方法是使用pip命令.这次,我在安装一个模块时,老是提示下面的问题,比较不爽.所以,我就照着提示做了一遍,记录下来,以作备 ...

  8. 在Ubuntu 16.04.3 LTS上运行go+https+json示例

    下面是我依据网上资料的实操过程,记录以作备忘.该示例给出了https通信并处理json文件的例子. 平台:Ubuntu 16.04.3 LTS go版本:1.10 1.生成自签名的服务器端的私钥KEY ...

  9. 在Ubuntu 16.04.3 LTS上搭建QUIC交互demo

    目的 本文依据参考文献中的资料,来利用chromium源码编译出quic_server和quic_client, 并依靠它们来发送QUIC协议请求,了解QUIC交互的细节. 前提 必须能够流畅地翻墙下 ...

最新文章

  1. MongoDb 安全配置
  2. Deep Residual Learning for Image Recognition 笔记
  3. c语言交换a b(运算符),关于编程语言:是否有一个复合赋值运算符用于a = b
  4. php图片上传在哪个文件夹,php删除上传的图片及文件夹
  5. CodeForces 359D (数论+二分+ST算法)
  6. 查表法实现反正切_关于python实现CRC32的应用和总结
  7. BugkuCTF-Reverse题mobile2(gctf)
  8. 菜鸟python_手把手教你,菜鸟也能用Python写一个2048游戏
  9. C语言 semaphore
  10. 在ARMSYS(S3C44B0X开发板)上进行uClinux内核移植的总结
  11. leecode - 入门 -- 双指针总结
  12. 动态规划——硬币找零
  13. 使用docker安装Jenkins教程
  14. c++ GUI轻量工具包FLTK介绍 (1)
  15. Delphi 跨语言环境 乱码问题
  16. 计算机打印机能不能取消正在,打印机怎么取消正在排队打印的任务? 打印机删除打印任务的教程...
  17. 电脑文档出现乱码怎么恢复?文档出现了乱码怎么恢复
  18. 广州海客智能机器人:为什么要让孩子从小学习机器人课程
  19. template用法
  20. Linux之scp与sftp的使用

热门文章

  1. merge into使用方法
  2. Nexus3.x安装
  3. 每个程序员都需要学习 JavaScript 的7个理由
  4. 为什么不记录慢速查询?
  5. 求二进制中1的个数(编程之美2.1)
  6. HDU-1698-Just a Hook
  7. 微信无法连接服务器501,微信成语猜猜看第501关BUG出现全是英文怎么过解决方法...
  8. linux系统安装deamonsync,DAEMON Sync的使用心得体会。简易版家庭云服务器!正是我要的那种...
  9. html打印在一页面布局,html – CSS打印布局 – 单页打印
  10. 用法 stl_51Nod 2160 数字游戏 STL基本用法