信号权重和流分类的对数规律

如果我的设备有 3 个蜂窝模组,接入三大运营商网络,如何设置动态加权 ECMP 路由,排除掉信号不可用的那路呢,这个机制对于频繁出入运营商网络覆盖不规律的场所非常重要。

Linux 本身并没有这种机制,需要一个脚本动态刷新,为了保证网络被剔除后,相关连接的 NAT 重置,需要 conntrack -F:

bash 复制代码
while true; do
  # 1. 读信号
  rssi0=$(at_cmd /dev/ttyUSB0 AT+CSQ)
  rssi1=$(at_cmd /dev/ttyUSB1 AT+CSQ)
  rssi2=$(at_cmd /dev/ttyUSB2 AT+CSQ)

  # 2. 计算权重(简单线性映射:rssi 越大 weight 越高)
  w0=$((rssi0 + 100))
  w1=$((rssi1 + 100))
  w2=$((rssi2 + 100))

  # 3. 更新路由
  ip route replace default \
    nexthop dev wwan0 weight $w0 \
    nexthop dev wwan1 weight $w1 \
    nexthop dev wwan2 weight $w2

  # 4. 重置连接。此举可清理 conntrack,让新路由 NAT 生效,旧连接新 NAT 会被高层机制 reset
  conntrack -F
  # 5. 等待信号低于阈值的中断 or 简单间隔轮询 sleep 2(不支持 INT 时)
  SLEEP_for_INT
done

我觉得 Linux 很无趣了,即使修改了内核,增加路由子系统 metric 与物理层的交互接口,也没什么大不了的,不会再从这种事中获得乐趣。

但有趣的是,w0,w1,w2 如何归类。

即时的 w 值会造成路由震荡,连接跟着乒乓,那么就必须对 rssi 做处理,而且容易看到,1,2,3 的区分和 101,102,103 的区分并不一样,前三者属于不同类别,后三者显然属于同一类,100,800 属于不同类,但 10100,10899 就属于同类。

我需要小数值具有高区分度,大数值差值不敏感,区间随数值增大逐步变宽,仅此而已。

韦伯-费希纳定律说人的感觉是对数的,自然界的无线信号衰减也是对数的,所以区分信号类别的函数就是对树的,而不必搞什么阶梯式分段函数来故弄玄虚,就像手机厂商把一段 dBm 区间直接映射成几格一样。

以下是我调教的三个备选函数:

f 1 ( x ) = ⌊ log ⁡ α x ⌋ , α = 2 ( 首选 ) , 3 , ⋯ f_1(x)=\lfloor\log_\alpha x\rfloor,\quad \alpha=2(首选),3,\cdots f1(x)=⌊logαx⌋,α=2(首选),3,⋯

f 2 ( x ) = ⌊ ln ⁡ x k ⌋ , k = 0.8 , 1 , 1.2 f_2(x)=\lfloor\dfrac{\ln x}{k}\rfloor,\quad k=0.8,1,1.2 f2(x)=⌊klnx⌋,k=0.8,1,1.2

f 3 ( x ) = β arctan ⁡ ( ln ⁡ x ) f_3(x)=\beta\arctan{(\ln x)} f3(x)=βarctan(lnx)

这几个都挺好。

还有一个事,昨天我在 网络长尾延时的重尾本质 提到流量分类,流长是自相似的,因此分类也是对数关系,也能用这几个函数。

浙江温州皮鞋湿,下雨进水不会胖。

相关推荐
镜象科技1 小时前
职业院校AI心理健康解决方案怎么选?三个特殊场景与三类路线
人工智能
Leo.yuan1 小时前
企业Data Agent架构选型:帆软Dora基于NL2BI的现有BI体系复用方案
大数据·人工智能
朱涛的自习室1 小时前
70 美金的 Beyond Compare,我让 Gemini 4 和 DeepSeek 造个开源免费版(Day 2)
android·前端·人工智能
米小虾1 小时前
上下文:Agent 的眼睛里到底装着什么
人工智能·agent
米小虾2 小时前
Agent = 大脑 + 眼睛 + 手脚:一篇看懂现代 AI Agent 的骨架
人工智能
小小测试开发2 小时前
安全评测得分 0.9556 掉到 0.3257,只改了 top_k 和 prompt_style 之外的题面比例
人工智能·安全·prompt
slacker-kian2 小时前
[实践]-用LLM对文本结构化:把多段文本描述变成规范的 JSON 知识库
人工智能·llm·prompt·结构化·pydantic·one-shot 提示
品牌常新2 小时前
景区巡逻机器人怎么选?派宝S5全地形守护解析
运维·人工智能·机器人
冬奇Lab3 小时前
LLM 驱动的自动化测试系列(13):Flaky Test 不是重跑几次就能解决的分类问题
人工智能·测试