mirror of
https://github.com/shadow1ng/fscan.git
synced 2026-09-25 04:31:52 +08:00
优化自适应扫描系统 & 修复 POC 调度问题
自适应扫描优化: - target/ceiling 分离,自适应池可向上探索而非锁死在 target - assessHealth 阈值按网络环境区分(LAN 收紧 / Internet 放宽) - RTT 漂移时动态压低 target,配合 AIMD 双重降速 - 去掉 semaphore 双层流控,由 ants pool 统一反压 - 探测端口从 3 个扩充到 8 个,减少 RTT 采样偏差 - computeRetries 按环境调整目标概率和上限 Bug 修复: - AdaptivePool.Wait() 加 10 分钟超时,防止 goroutine 卡死时永久挂起 - CEL 环境初始化失败后允许重试(sync.Once → sync.Mutex + 标志位) - CAS 自旋加 runtime.Gosched() 退避,减少高并发下 CPU 空转 - -full 模式下 web 插件跳过 IsMarkedWebService 检查 #588 - 不确定服务补做 HTTP 回退探测,覆盖自定义框架漏网场景 - POC sets 纯字面量值跳过 CEL 编译,消除大量误报错误日志
This commit is contained in:
@@ -25,15 +25,15 @@ func TestComputeRetries(t *testing.T) {
|
||||
{0.10, 2, 3, "10% 丢包: ceil(log(0.01)/log(0.1))=2, 但边界取 ceil 可能是 3"},
|
||||
{0.20, 3, 3, "20% 丢包: 0.2^3=0.008 < 0.01"},
|
||||
{0.30, 3, 4, "30% 丢包"},
|
||||
{0.50, 6, 6, "50% 丢包: ceil(log(0.01)/log(0.5))=7 但上限 6"},
|
||||
{0.80, 6, 6, "80% 丢包: 需要很多次但上限 6"},
|
||||
{0.95, 6, 6, "95% 丢包: 触顶"},
|
||||
{1.0, 6, 6, "100% 丢包: 触顶"},
|
||||
{0.50, 5, 5, "50% 丢包: ceil(log(0.01)/log(0.5))=7 但上限 5"},
|
||||
{0.80, 5, 5, "80% 丢包: 需要很多次但上限 5"},
|
||||
{0.95, 5, 5, "95% 丢包: 触顶"},
|
||||
{1.0, 5, 5, "100% 丢包: 触顶"},
|
||||
}
|
||||
|
||||
for _, tt := range tests {
|
||||
t.Run(tt.desc, func(t *testing.T) {
|
||||
got := computeRetries(tt.lossRate)
|
||||
got := computeRetries(tt.lossRate, EnvWAN)
|
||||
if got < tt.wantMin || got > tt.wantMax {
|
||||
t.Errorf("computeRetries(%.2f) = %d, want [%d, %d]",
|
||||
tt.lossRate, got, tt.wantMin, tt.wantMax)
|
||||
|
||||
Reference in New Issue
Block a user