• 压缩冗余信息


    我们传输的大量信息都是少量信息的简单组合(yet another 幂律?)。

    任何信息均如此。对于文字信息,有固定的短语,俚语,名言警句,对于多媒体,有范式化前奏,BGM,名人舞姿,常见镜头,体现在数据包中就是一些 0,1 组合成的固定比特片段。

    把这些片段甄别出来,为其关联唯一短 ID,部署在内容的中间转发节点上,事情将变得高尚。
    在这里插入图片描述
    转发数据包时,用数据包的任意子串匹配这些片段(诸如 Leetcode “求最长子串”,练熟了还是有用的。),一旦命中,即可将较长子串替换成较短 ID,相当于仅传输字典索引,时间换空间,大大降低传输量,从而节省带宽。

    图中那张“共享的 ‘内容 -> ID’ 映射表”可通过离线/在线学习获得,也可人工配置。

    说起在线学习,可以维护一个 LRU 链表,保存最 Hot 的 Top N 片段。

    最后说优化,还是那句话,所有优化都需要注入新信息,优化匹配算法的信息来自现实世界。

    打个比方,紧接着“当我避开你的温柔后”的大概率是“泪开始坠落”。或者可为每个区域,甚至每个用户维护一个字典,现实世界具有相同特征的 entry 传输的数据重复度也偏高。比如说涉及浙江温州的数据传输,专门建立一个皮鞋相关的字典,是高尚的。

    这种传输优化可用于朴素的 CDN 动态加速,也可用于朴素的 CDN 静态加速回源,但注意,一定要朴素,不然得不偿失,但最能打的场景还是隧道传输加速了。

    前两周我提到过,统计复用率足够高时,端到端传输优化很难闭环,单流结果不再由单流行为决定,大多数端到端算法被认为不靠谱,不如降低发送量,从而提高通过率,最大程度减少重传时延。进一步说,如果大家都这么做,世界又将重新变得高尚。

    传统 TCP/IP 网络早被 CDN 盖了一个内容层,鉴于此,本文说的这类朴素的内容层,从不识别内容,只识别“一段具有特征的比特流”,将其编码成更短的比特流,就算赚到,细节可能还包括高效的匹配算法和编码方案。

    至于古时候存储介质(竹简,石头)和传输介质(马车)都很贵的时候,书面语总比口语惜字如金,也是这个意思。白话文被写下来的行为在宋朝之后普及,因为宋朝之后大范围普及了纸,或者还有稍许活字印刷术。

    超过 20 ms 的传输在平时上网中就很少见,绝大多数内容都是通过 CDN 接入,而 CDN 调度机制基本上不会调度到太远的地方,因此果真要做长传,一定要控制丢包率,如果丢包率不能控制,就选择抗丢包的算法,比如 BBR。降低丢包还有一个方法将是少发数据,发得少丢得少。就是本文。

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

  • 相关阅读:
    理解C/C++中的链接
    【数据结构】搜索二叉树(C++实现)
    如何设计神经网络结构图,神经网络设计与实现
    vue3 hook库
    osi七层模型
    excel表格乱码怎么解决呢?
    Linux扩展篇之Shell编程二(运算符和条件判断)
    vue组件库发布到npm
    MySQL:基本查询 | 表的增删改查
    FITC荧光标记脂多糖 FITC-LPS;CY3、CY5、CY7标记芽霉菌糖/昆布多糖/海洋硫酸多糖/聚二糖/棉籽糖定制合成
  • 原文地址:https://blog.csdn.net/dog250/article/details/126187304