用脑补而不是重传对有损传输进行纠错

这是一个经理被害的现场,法医用橡胶,液体,沙石类的自然物件在沙盘上模拟了该现场,同时用文字做了详尽记录描述这个现场 “…经理的右皮鞋上有尿液…” …

问题,篡改沙盘上模拟现场的难度和篡改记录的难度,哪个更大?

不用说,篡改沙盘更容易,泼一盆水,或仅仅吹走几粒沙,现场就不同了,然而篡改记录则需修改特定文字而不留痕迹。

沙盘上保存模拟信号,文字描述相当于编码信号。模拟信号很容易被噪声干扰,而编码信号则天生抗干扰,因此,编码信号对复制,存储,传输这些噪声环境天然友好。硬盘可能不如老唱片持久,但硬盘更能经受无限次复制,而老唱片每翻录一次都会积累噪声。

考虑一个精确的值,1.5,如果用 1.5V 电压模拟 1.5 这个值,只要一点小小的比如 0.02V 的干扰,模拟电压就变成了 1.52V,永久改变了模拟值。但如果将 1.5 编码成某种描述,比如 00100101,用 0~3V 电压表示 0,用 6~9V 电压表示 1,想篡改或干扰这个编码,至少要超过 3V 的电压波动。

由于很难篡改和干扰编码信号,这意味着编码信号即使被干扰了局部,也很容易被纠错。所谓纠错指的是从局部干扰导致的错误中恢复,即 “脑补”。考虑一句名诗 “浙江温州皮鞋湿,下雨进水不会胖。” 如果被干扰成 “浙江温州皮鞋 x,下雨进水不会胖。” 很容易将 x 恢复成 “湿”,这就是 “从意义中恢复”,反过来,如果一双真的温州皮鞋雨后被烘干,并且丝毫没有胖,很难想象它在此前下雨时进水湿了。

任何编码信号本质上是一种 “有意义的描述”,编码信号缺失的部分自然都可通过 “脑补”,“从意义中恢复”。

描述一片蓝天的编码缺失了一块,很容易将其恢复成附近的蓝天底色的编码,如果恰好这片缺失的区域有一只鸟,即使纠错失败,也毫不违和。

我此前给出过一个 直接在意义空间编码 的方案,其实有更简单的方法,诉诸于人的信息何不让人脑(或 app 自身)自行纠错呢,娱乐至死的互联网时代,绝大多数信息都诉诸于人,包括视频,音频,网页,所以我一直不明白当 http 传输网页时,为什么不能接受有损,在网络丢包率高时,图片,视频是模糊的,声音是呲啦的,文字是间隔着的 x。

典型的 1500mtu,一个数据包超过 1k 还是太大,丢一个报文就丢 1k 多数据,这些数据如果集中在一起就会造成数据空洞,很难从如此大的空洞中纠错,因此传输编码必须再次散列,将每个报文的数据散列到任何地方。

“不怕慢,就怕站” 是一句俗语,如果接受有损传输和脑补纠错结合,就能彻底脱离等待,摆脱刷新网页时那朵菊花。这时我们可以从另一个视角推导拥塞控制的动机。

完全忽略拥塞控制时,假设 n 个 sender 分别同时传输不同大小数据量,在瓶颈处的拥塞丢包将使 n 个 receiver 承受相同的丢包率,进而获得相同的 qoe,而 qoe 直接诉诸人脑。

经历和构造相同的不同人脑对音视频和文字感受能力和脑补能力大差不差,相同丢包率给不同人带来几乎一致的体感。据以上假设,传输协议将传输收敛到一定的丢包容忍范围,以相同力度降低编码清晰度以降低传输量,背后理论是,如果 sender 发送 n 个报文被丢掉 m 个,此时的 qoe 是可接受的,那就直接按 n - m 的量对编码进行约束。

把网络看作空洞大小根据拥塞程度变化的筛子,瓶颈节点就是编码器,这就是 qoe-based cc,天然公平。

用一种过时的老式的方法看待这个想法,就会通顺很多。

1990 年代很多山寨 vcd/dvd 播放机都有 “超强纠错” 功能,在开播前延时几秒构建一个 buffer,无论光盘划成什么样子都能流畅播放,原理就是在 buffer 里脑补。把 sender 发送一批数据看作一张新光盘,把瓶颈处的丢包看作把光盘划了,在 receiver 处的展示前加一个 “超强纠错”。

存储和传输本质上是一回事,都是数据在时间和空间里通过某种介质,数据通过网络和保存光盘没有不同,这种介质在数据通过的时间和空间与 sender 和 receiver 是隔离的,数据注定有概率受损,独立的无损网络根本不存在。

所以重传是什么?所以冗余是什么?arq 是 tcp 惯的臭毛病,fec 则是对 arq 的反动。但这难道不都是分层的问题?

以分层的视角,tcp 只能看到字节流,看不到意义。但 tcp/ip 并非分层模型,tcp 只是承载协议,此外,udp 也可以看到一切。教科书总将 tcp/ip 与 iso/osi 对等类比,但实际上,tcp/ip 只有 tcp,而 tcp 只干两件事,传文件和远程登录,这两个场景都不适合脑补。

接受有损传输的脑补协议并不多见甚至根本没有,令人遗憾。

如今数据中心传输协议以及广域网音视频传输协议都被内卷进对 tcp 的相爱相杀。一方面,几乎所有协议都不想抛弃 tcp,理由是 tcp 被广泛部署并深入研究,拥有成熟的拥塞控制机制可直接拿来,另一方面,几乎每个协议又嫌 tcp 做得不够或做得太多,纷纷自研新机制去 patch tcp。

在 tcp 之外,无知的经理们竟然在妄想一张底层的无损网络。自研端到端协议只能在硬件层面卷单机性能,必然把传输智能推向网络核心,否则,即使再好的车也会受制于颠簸的路。同样无知的另一些经理必然被迫卷入自研交换机领域,为在端网卡内卷的经理们烧柴供热。

1990 年代末,一批经理卷入快速制作大容量且材料昂贵的 vcd 光盘,另一批经理去造装这种奢华光盘的昂贵盒子,甚至去造运输这种昂贵光盘的携带昂贵避震系统的专用车,确保这种光盘不会因挤压和颠簸而划伤受损。没有经理关心光盘里是什么,但对大多数消费者,一张轻微划伤的盘搭配山寨播放机要好过这些昂贵的家伙。

用老式的方法解决当下的问题,思路就打开了。我们再看看传真。

传真不传编码而传像素。将 http 传来的网页编码成图片,通过传真的方式将像素传输到对端,与真正传真不同的是,这种传输允许个别像素丢失,此时对端将收到一张模糊但足以识别的图片,解码这个图片成为超文本,再喂给浏览器进行渲染,无疑算一种有损传输方式,是的,还可以结合 ai。

有损传输必须结合脑补,无论是人脑补还是程序协助。脑补的前提是 “有意义的编码”,而编码可以理解为 “描述”,描述就是可在双方达成共识的 “协议”。现在我们脱离计算机网络说这事。

比较中文和英文就会很有趣,无论中英文都有两种传输方式,文字和声音,但中文的两种传输是独立的,而英文是同一的,所以英文却更容易脑补,因此它更容易做有损传输。

用中文介绍自己名字时,几乎必须要解释是哪个字,比如 “我叫山鸡,xx 的鸡”…,与此类似,当看到 “我是经理” 这几个字时,可能读不出它,中文的语音和文字是独立的,二者几千年时间独立发展,到现在几乎成了两种系统。英文则完全不存在这个问题,无论听到 “my son is Mr. anderson.” 还是看到以上字符串,都知道这是什么,无论是文字变成了 “my sXn is Mr. andXrson.”,还是听成了 “my son is Mr. derson.”,都能 “从意义中恢复”。

回到计算机网络,我们选择英文的方式编码意义还是中文的方式编码意义,并非一贯。前面提到有损传输,好像意思是取消了重传后传输量也变小了,但万事都不是无偿的,守恒律才是常态。英文冗余在意义中本身就会让数据量变大,有损传输的意义在于抵抗丢包,降低时延和协议复杂性。正如我们看到的,中文书翻译成英文后就会变厚,英文书翻译成中文就会变薄,中文的方式必然不可抵抗丢包,同样的丢包率,中文的方式损失的意义更多,也更难通过脑补纠错。中文的多音字压缩了很多语音,而同音字又压缩了很多字型,如果同时传输两者,脑补纠错能力增加了,但数据量也几乎加倍了。

值的一提的是,有损传输和拥塞控制是两个维度,但比拥塞控制和重传的关系更近,很多经理对此的理解并不明晰,弯路甚至无果也就在所难免了。

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

  • 21
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值