整形、伪装与端口跳跃构成流量外观处理的完整链条。本页说明三者的分工、执行顺序与相互制约,并给出各自的能力详情入口。
加速协议为了让连接更稳定,往往会在传输层做出一些与常规加密会话不同的设计:更主动的探测、更规律的探测周期、与业务流量形态不匹配的包长分布。这些设计本身是为了性能,但它们在客观上让流量呈现出可被统计识别的特征。
当网络中存在基于特征或基于服务质量的策略时,具备明显特征的流量可能被差别对待——表现为速度被压低、连接被提前中断,或长时间高占用连接被针对。这不是加密强度问题,而是流量"看起来像什么"的问题。
技术能力线要解决的就是这个问题:让流量在外观上更接近普通的加密会话,同时保留加速协议在稳定性上的收益。三个环节分别处理包级特征、会话级特征与承载方式。
第一步 · 流量智能整形。处理数据包长度分布与发送时间间隔。必须在发送前完成,因为它直接决定每个包在链路上的呈现形式。
第二步 · 协议深度伪装。处理握手模式与首包特征。需要在连接建立阶段介入,因为握手过程本身就是最容易被观察的环节。
第三步 · 动态端口跳跃。在会话过程中周期性更换承载端口。依赖前两步已建立的稳定通道,属于会话中后期的动作。
顺序不可颠倒的另一个原因是开销叠加方式:整形对每个包生效,开销与包量线性相关;伪装只在连接建立时生效,开销一次性;端口跳跃按周期触发,开销与周期长度成反比。先做线性开销的环节、再做一次性开销的环节,便于整体预算控制。
包长分布对齐与发送间隔抑制
整形引擎处理两个维度:长度维度上,把加密后的数据包长度分布调整到接近常规加密会话的形态,消除因固定分片而产生的周期性;时间维度上,抑制发送间隔的规律性,避免出现机器特征明显的固定节拍。
最朴素的做法是把所有包填充到统一长度。这确实消除了长度特征,但代价是带宽浪费严重——小包被填成大包,有效载荷比例下降。更合理的做法是按目标分布做概率性调整,只在分布明显偏离时才干预,同时把额外填充控制在可接受比例内。
整形强度与链路条件相关。在带宽充裕时可以提高整形强度以获得更规整的外观;在带宽紧张时则放宽整形,优先保证有效吞吐。这个切换由客户端按实时可用带宽自动完成,用户也可在状态页看到当前生效的强度档位。
按目标分布概率性调整,避免统一填充的带宽浪费。
消除周期性节拍,降低时间维度上的可识别性。
按可用带宽在整形强度与有效吞吐之间切换。
握手模式一致化与首包特征处理
连接建立阶段是整个会话中信息量最大的部分:握手往返次数、首包长度、协商参数顺序都会留下特征。这些特征与数据内容无关,纯粹由协议设计决定,因此也最容易被静态规则匹配。
伪装的思路是让握手过程在可观察特征上与常规加密会话保持一致:往返次数、首包长度、参数呈现顺序都做一致化。这样基于静态特征的匹配就无法把这类连接单独挑出来。
伪装处理的是外观特征,不改变数据本身的加密与完整性保护;它降低的是被简单特征匹配命中的概率,不等于不可识别。任何特征处理都会随着识别方法的演进而需要调整,把它描述成"永久有效"是不诚实的。
按周期更换承载端口以降低被针对性处理概率
即使流量外观已经接近常规会话,长时间占用同一端口承载高流量仍然是一个可被利用的信号:某些策略会针对"某端口持续高占用"做限速,这与流量内容无关,纯粹基于占用行为。周期性更换端口可以打散这种长时间的占用特征。
跳跃在已建立的通道内完成,新旧端口之间存在重叠过渡期,业务数据在过渡期内平滑迁移。客户端负责协调两端,用户侧通常感知不到。若在策略频繁变化的环境中观察到重连,可手动把跳跃周期调长以减少切换次数。
周期越短,被长时间针对的概率越低,但切换开销越大;周期越长则相反。默认 90 秒是在两者之间取的折中值,用户可在客户端中调整。