同样一次连接建立,在两种地址协议下的表现会有差别,尤其是响应速度与失败形态。很多人只在新环境里才第一次注意到这件事,因为这两种协议并行的网络里,客户端往往会先尝试一种 IP 地址,等不到回应再退回另一种,多出来的往返就藏在这段试探里。
差别主要来自地址格式与寻址方式。较新的协议把 IP 地址长度扩到了原来的四倍,头部结构随之调整,去掉了部分校验环节,把工作交给上下层分担。这些改动在正常路径上带来更简洁的处理,在异常路径上则会让表现不一样。
| 观察项 | 传统协议 | 新协议 |
|---|---|---|
| 地址长度 | 较短,一段固定 | 较长,一段扩为四倍 |
| 头部校验 | 自带校验字段 | 取消该字段,交由上下层 |
| 常见失败形态 | 超时后直接报错 | 先试一种再退回,耗时拉长 |
| 地址来源 | 每台设备通常一个 | 可能存在多个,择优使用 |
串联与回退带来的额外耗时
在两种协议并行的环境里,客户端拿到两组地址,通常先试其中一组,等不到回应再退回另一组。这一段等待会直接加到握手耗时上,表现就是:首次访问慢,第二次反而快了,因为退回过一次之后缓存了选择结果。把这个现象认出来,就不会误判成IP质量波动。
首次慢、第二次快,往往是对两种地址的试探与回退造成的。遇到这种规律,别急着换IP,先看客户端有没有把上次的选择记下来。
代理IP链路上的取舍
在代理IP链路上,地址的解析与选择发生在哪一端,会影响最终走的是哪一种协议。有的配置让请求端先定好,有的交给中间环节决定,两者在新旧协议并行的站点上表现不同。需要明确的是:链路两端对协议的支持必须一致,否则会退回到共同支持的那一种。
先试错的那一次,耗时都记在账上。
两种地址协议并行会长期存在,判断问题时要先确认当前走的是哪一种。
把这些差异记住,遇到首次访问偏慢、重试后恢复正常的情况,就知道先从地址选择这一段查起,不必一上来就怀疑带宽。
