057、天线匹配不良在协议层表现出的异常特征 一个让我熬了三个通宵的现场前两年做一个无线数据采集项目节点装在金属机柜里面外置一根小棒状天线。实验室里跑得好好的拉到现场之后大概每几十次通信就会丢一次包重发两三次又能通。当时第一反应是软件问题——协议栈重传逻辑写得不够健壮于是加超时、加退避、加重传次数折腾两天没任何改善。后来把频谱仪搬到现场一看天线馈点上的驻波比高得离谱匹配网络在金属环境里完全偏离了设计值。回波损耗恶化之后发射功率大部分反射回功放接收灵敏度也塌了。但诡异的是链路并没有彻底断——而是表现出一种非常像软件bug的间歇性异常。这次踩坑让我意识到一件事天线匹配不良在协议层留下的指纹和软件逻辑错误、信道拥塞、干扰长得非常像但细看又不一样。下面把这类异常的特征、判断思路和取舍讲透。匹配不良到底改了什么物理量先把物理层发生的事情说清楚不然后面协议层的现象没法解释。天线匹配不良直接后果是三个一是发射通道的反射功率上升真正辐射出去的能量下降等效全向辐射功率缩水。二是接收通道的匹配失配会抬高噪声系数同时降低有用信号进入前端的幅度接收灵敏度变差。三是匹配网络的频率选择性会畸变原本平坦的通带变得倾斜带内某些频点插损大某些频点插损小。这三个后果叠加落到协议层就表现为一种链路预算被悄悄吃掉一截的效果。注意关键词——被吃掉一截而不是被吃掉全部。这个一截是理解所有异常特征的钥匙。协议层第一个异常非对称的链路质量正常链路双向的接收信号强度指示和丢包率大致是对称的A到B和B到A差不太多。匹配不良的节点经常出现一种很别扭的现象一端能稳定收到另一端反过来却频繁丢包。原因是两端的天线匹配状态不一样一端反射严重发射出去的信号弱但它的接收通道可能还行另一端发射正常接收却被自己的匹配问题拖累。现场怎么观察把双向的接收信号强度指示分别打点记录不要只看单向。如果发现两个方向的数值差超过十几个单位而且反复确认发射功率配置是对称的那基本可以怀疑其中一端的天线匹配出了问题。这个特征在公开资料里很少有人单独拎出来讲因为大家习惯看单向指标。但它是区分匹配不良和单纯距离远的关键——距离远是双向一起恶化匹配不良是单向偏科。协议层第二个异常重传次数分布的形状软件逻辑错误导致的重传分布通常很整齐——要么每次都重传固定次数要么在某个特定条件下集中爆发。匹配不良导致的重传分布是长尾的。大部分包一次就过少部分包要重传一次极少数包要重传三四次甚至更多。因为匹配失配吃掉的那部分链路余量刚好卡在解调门限附近信号好一点就过差一点就挂随机性很强。现场排查时把重传次数的直方图打出来看形状。如果是长尾分布且尾部拖得很长优先怀疑射频前端而不是协议逻辑。这里有个隐形陷阱很多协议栈默认的重传次数上限设得不高长尾尾部那些包直接被丢弃表现为偶发丢包。工程师看到偶发丢包第一反应往往是去查软件实际上根因在射频。协议层第三个异常速率自适应策略的抖动现在的无线协议大多有速率自适应机制根据链路质量动态调整调制编码方式。链路好就用高速率链路差就降速保连通。匹配不良会把这个机制搞得很神经质。因为匹配失配引入的损耗随频率、随环境、随时间波动链路质量评估值在门限附近来回跳速率就跟着反复升降。表现出来就是吞吐量忽高忽低平均吞吐量远低于理论值但连接又不断。更麻烦的是有些实现里速率切换本身要消耗空中时间和管理帧频繁切换进一步吃掉有效吞吐形成恶性循环。现场判断方法抓速率切换的日志看切换频率。正常环境切换是稀疏的匹配不良的节点切换会非常密集而且切换后的速率往往在最低档和中间档之间跳很少能稳定在高档。协议层第四个异常确认帧的异常丢失模式这个特征比较隐蔽但很有价值。数据帧的确认机制里如果数据帧本身被正确接收接收端会回一个确认帧。匹配不良时有一种典型模式数据帧发出去了接收端也收到了并回了确认但确认帧在回程路上被匹配问题吃掉发送端以为失败就重传接收端收到重复帧再回确认又丢如此反复。结果是发送端重传了很多次接收端其实早就收到了。从接收端的日志看同一个序列号的帧来了好几遍从发送端的日志看一直重传直到超限。这个现象的本质是回程链路比去程链路更差。判断方法对比两端的日志看接收端是否收到大量重复序列号同时发送端报告大量重传超限。如果两个日志对不上基本可以锁定是回程链路问题而回程链路问题里天线匹配不良是高频嫌疑。现场排查的动作顺序讲到这里把排查顺序理一下这是实战里最省时间的路径。第一步别急着动软件。先把双向接收信号强度指示打点看是否非对称。非对称就直奔射频。第二步把重传次数直方图打出来看是不是长尾。长尾就优先怀疑链路余量不足而不是协议逻辑。第三步看速率切换日志的频率密集抖动说明链路质量评估在门限附近晃。第四步对比两端日志的序列号看是否有确认帧丢失模式。四步走完如果都指向射频再去测驻波比、测回波损耗确认匹配网络的实际状态。注意一定要在实际安装环境下测实验室的数据没有意义——金属机柜、外壳、周围物体都会改变天线的输入阻抗。一个容易被忽略的权衡发现匹配不良之后工程师常犯两个极端错误。一个是只调匹配网络把驻波比压下去就收工。但驻波比好不代表辐射效率高有些匹配方式是把能量耗在匹配元件上而不是辐射出去驻波比漂亮了实际辐射功率反而更低。要同时看辐射效率和驻波比。另一个是拼命加发射功率来补偿。发射功率加大反射回功放的功率也加大轻则功放提前进入非线性区产生谐波和互调重则直接烧功放。而且反射功率产生的谐波可能落在接收频段反过来干扰自己的接收通道形成自激式的异常。正确的做法是先把匹配网络的损耗和辐射效率平衡好再适度调整发射功率同时留够链路余量。链路余量这件事实验室里够用不代表现场够用金属环境、人体遮挡、多径都会再吃掉几个单位。余量留多少取决于现场环境的恶劣程度没有统一答案只能实测。最后一句实在话天线匹配不良在协议层的表现本质是链路余量被悄悄吃掉一截之后各种自适应机制和重传机制在门限附近挣扎的痕迹。它不会给你一个干净的报错只会给你一堆像软件bug的现象。能不能快速定位取决于你是否愿意在动手改代码之前先花半小时把物理层的指标打点看清楚。