pong

command module
v0.9.4 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 17, 2022 License: Apache-2.0 Imports: 6 Imported by: 0

README

pong-go

pong-go 是 pong 代理协议的 golang 语言开源实现。

安装

作为android客户端的第三方库使用时,使用 gomobile bind 命令编译成 aar, 参考 gomobile.txt

transport protocols

pong-go 支持以下标准协议作为传输协议:

  • tcp
  • tls
  • http
  • https
  • http2
  • h2c
  • http3
  • ws
  • wss

proxy protocols

pong-go 同时支持以下代理协议:

  • pong
  • shadowsokcs
  • vless
  • socks5
  • qsocks (没有握手过程的精简版socks5)

注意:所有代理协议,仅支持明文

关联项目

pong proxy protocol

pong 是一种结合了socks5与http2特性的代理协议,支持在一条网络连接上多路复用同时并发数十数百个代理请求。

pong协议的优势:

  • 避免“连接阻塞”

因为安全和隐私保护需要,代理服务通常放置在web server之后,

src <---> proxy-local <---> web server <---> proxy server <---> dst 

web server对单一客户端有着最大并发连接数限制,一般不会超过10,打开一个新闻/图片网站首页往往需要并发50-100个代理请求,连接数耗尽瞬间耗尽,后续代理请求排队等待连接释放,于是发生客户端卡顿假死,通常只能重启客户端来强制释放连接。

在90%以上的时间里,一个pong客户端只需要维持一个网络连接,可以有效避免“连接阻塞”导致的卡顿。

  • 0 open 时间

因为是在一条已经打开的网络连接上并发代理,无需耗费时间去为每个代理请求打开网络连接和握手验证,收到代理请求会立即转发,速度上pong会优于其它协议。

关于pong协议的细节,请参阅 https://github.com/pingworlds/pong-protocol

同类项目

Documentation

The Go Gopher

There is no documentation for this package.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL