Commit Graph

24 Commits

Author SHA1 Message Date
hahahrfool
6291babff3 修订代码, 示例, 优化quic,设最大多路复用路数 为 4路.
之前代码使用纯单路且stream上限为320个,idle时间为2小时

现在自己思考发现完全不合理。

单个session内存在的stream数量 越少性能越高

重构了quic部分的代码。

添加一种主动记录服务端能承受的最大stream数量的机制,每次建立新stream时都试图找到 stream最少的一条可用session。

这种缓存session的做法实际上类似 连接池技术。

修复一些小问题.
2022-04-07 22:31:29 +08:00
hahahrfool
650b595e35 修订代码,文档 2022-04-06 14:52:57 +08:00
hahahrfool
2c9c993c11 修订文档、示例; 修复在windows上直连时readv闪退的bug;
这次在程序ctrl+C关闭时, 会主动Close所有的监听端口. 主要是被报告windows有时退出程序之后, 端口还是处于占用状态.

试图引进新的 Makefile_release 文件 以及新的workflow文件 来快速编译发布包
2022-04-03 14:32:23 +08:00
hahahrfool
8ad0905ce9 feat:apiServer;修复生成的证书无法使用的问题;修复小bug
添加如下命令行参数

-i interactive mode (只是加了一个参数, 还未实现交互功能)
-ea enable api server
-spp api Server Path Prefix, must start with '/',默认值 /api

只有 -ea命令行参数给出后,才会运行api服务器

默认allstate 的api的url 为  https://127.0.0.1:48345/api/allstate

用到basic auth,用户名为admin
密码的toml配置是

[app]
admin_pass = "adfadfadfadfa"

修订 api草案
2022-04-01 17:52:18 +08:00
hahahrfool
0dae5ca236 修订代码文档,完善zap 2022-03-31 19:03:58 +08:00
hahahrfool
b97e990b44 尝试引入zap包作为log包 2022-03-31 18:28:57 +08:00
hahahrfool
7df432ea7f 修订代码 2022-03-31 09:19:59 +08:00
hahahrfool
8606e6e573 添加-mp参数进行memory pprof. 修订代码 2022-03-31 08:36:59 +08:00
hahahrfool
d696d96b29 恢复readv相关代码;
之前认为readv内存泄漏所以做了特殊处理;现在发现没必要,在没有悬垂链接时,并没有泄漏. 于是改回.
2022-03-31 02:01:46 +08:00
hahahrfool
f8ef685bdd 解决readv内存泄漏问题;解决转发时断连后的悬垂链接问题
在四点链接的情况下,我们只终端中间两点是不够的,要切三刀;
总之实践很简单,就是copy完成之后,要Close所有的链接

readv的话,系统readv数组和buffer不要在put进pool后相互引用

添加-bl 选项,可以自定义buf大小;注意越小可能越慢,建议buf大小保持在4k以上

添加-pp选项,可以生成cpu.pprof文件

修复其它小问题.
2022-03-31 01:32:58 +08:00
hahahrfool
4ece4b84dd 修订代码 2022-03-30 21:32:35 +08:00
hahahrfool
1b6dfde7b6 修订代码,试图防止udp被lazy处理;修订文档,注释 2022-03-28 08:33:50 +08:00
hahahrfool
aace001585 全面修订splice和readv的代码,极大提升性能; 添加生成uuid命令 2022-03-27 12:04:12 +08:00
hahahrfool
b46ee2a7ee 改进readv代码, 将readv的buf长度与MTU脱钩.
netLayer/readv.go中 目前有两个可变的变量,目前暂时调为下面的值:
const readv_buffer_allocLen = 8
const ReadvSingleBufLen = 4096

实际上这个不方便大家手动调节的,因为如果大家遇到readv减速了的情况的话,直接关闭readv即可.
2022-03-26 19:39:36 +08:00
hahahrfool
1070942f4f 修复ws+vless裸奔时,开启readv时的闪退问题 2022-03-26 18:18:08 +08:00
hahahrfool
4e9f865a62 修订代码 2022-03-24 23:10:37 +08:00
hahahrfool
65cc8e9cfa 进一步减轻readv的内存分配负担. 2022-03-24 22:51:28 +08:00
hahahrfool
146f7cf926 修复大量与websocket和回落相关的bug;
修复 websocket时无回落的问题
修复 websocket不匹配时直接返回内部错误字符串导致 可探测 的超级bug
修复回落不匹配问题
修复websocket时readv闪退问题

修复 命令行 loglevel参数被配置文件覆盖问题
修复获取tls 的 alpn和 sni时遇到空指针闪退问题

将默认fallback地址的赋值放到通用代码中;
移除 ErrSingleFallback, 改用utils.ErrFirstBuffer
使ws的server可以返回 预设的path
2022-03-24 13:42:34 +08:00
hahahrfool
0a69fbacbf 将所有示例移动到examples;修订代码,文档 2022-03-23 09:25:13 +08:00
hahahrfool
c8f639a81d 修订代码,增强readv性能,减少内存分配 2022-03-23 08:05:22 +08:00
hahahrfool
4d2bbaeceb 完善对writev的支持;为vless和ws实现MultiWriter;修订代码 2022-03-22 22:39:26 +08:00
hahahrfool
536a84def6 修订代码,注释,文档 2022-03-22 16:46:05 +08:00
hahahrfool
5661c8737f 添加readv功能;给出测试数据;修订代码,注释;
toml 新增 app.noreadv项,命令行参数新增 -readv

默认readv是打开状态,可以选择性关闭。
2022-03-22 14:12:32 +08:00
hahahrfool
61692eeb68 renamed: proxy/relay.go -> netLayer/relay.go 2022-03-20 18:07:43 +08:00