本来我想给本文取个《思维定势,创新与情怀》这个题目,后来觉得有点大,恰好昨天跟同事抽烟间隙聊到了bbr算法多么的创新顺带扯到了工业革命中蒸汽机发明以及后来汽车的发明,也吐槽了旧势力的愚昧与无知,所以,题目就跟100多年前的工业革命有关了。
        事情是这样的。
        当蒸汽机刚刚被发明出来时,仅仅是用来驱动水泵的,很快就用到了棉纺织业,但是却迟迟无法用于车辆,直到发明了火车以及后来的汽车。这是为什么?
        工业革命直接来源于水泵抽水这个需求,由于此时英国需要对抗来自印度殖民地棉布的竞争,后来蒸汽机迅速扩展到棉纺织业,这让印度棉布从此退出了市场,也让英国资本家的胃口大开,从此几十年太阳永不落,维多利亚女王在1851年万国工业博览会上高呼:荣光啊,荣光,无尽的荣光!
        但是,即便在1851年工业革命几乎已经完成的英国,道路上的车辆依然是马力驱动的,贵族以乘马车为荣,那为什么工业革命的成果没有用于改造车辆呢?为什么就可以快速用于水泵,纺织机,甚至铁甲舰呢?
        因为无论水泵,纺织机,还是铁甲舰,都是以前没有的东西,或者说以前有,但是在动力方面遇到了瓶颈,人们普遍采用头痛医头脚痛医脚这种策略满足当下的需求即可,在19世纪,不存在任何改造车辆的需求和动机,马车的动力十足,不存在动力问题,甚至后来当第一批汽车造出来时,汽车还一度跑不过马车,所以自然而然没有人会用乱哄哄的冒着黑烟的毫无美感的机器去替代那匹灵性的流线型且健康的马。
        即便是马车真的遇到瓶颈了,人们普遍的思路也是改进马车上,而不是用一个新的东西替换它!人们会想到把蒸汽机装载马上上,这样提供的额外动力会让马不那么累,人们会想到用马来拉铁轨上的火车,蒸汽机只是一个额外的动力补充,直到今天,人们依然用”马力“来度量引擎的动力...甚至直到今天,在车辆造型上,我们实际上依然用的是”改进后的马车“!
        我从网上找了几个图,我们来看一下:

首先我们要明白,美索不达米亚的人们发明了轮子和车辆,这是几千年以前的事了,后来马拉战车几乎横扫了欧亚大陆,中国的商周时期也是马拉战车风靡的时代,我们来看一下马拉战车:

后来持有铁质武器的步兵和骑兵取代了战车,然而车辆并没有因此而退出历史舞台,一直到近代,马车都是贵族出行的代步工具,我们再来看个图:

然而,即便有几千年的历史,机器最终还是赢了,是该淘汰马的时候了,然而我们可以看到,人们只是把马换成了带有轮子的发动机而已:

我们今天看到的汽车,你会觉得跟马车完全不同,可是它的骨架依然是马车,特别是两驱的车子:

然而并不仅仅是汽车,我们今天看到的几乎所有的车辆都是”改进后的马车“:

三轮车:

拖拉机:

...
但是,除了自行车:

Perfect!自行车是个创举!它用后驱代替了前驱,然后用前轮的陀螺效应代替了马车的三轮或者四轮支架原理来维持平衡,这绝对是个创新。然而自行车的发明却和改进马车无关。
----------------------------------------
人们不是不愿意放弃马车,而是因为人们已经在马上身上投资了几千年,即便是有新的机器可以完全替代马车,人们于情怀上还是过不去,于是人们越是改进马车,越是对其增加了新的投资,最终,现在人们几乎想象不到汽车除了现在这个样子还能长成什么样子...这有点像毒瘾的戒断反应,以吸烟为例,当吸第一口的时候,觉得超级恶心,然而从熄灭它开始,尼古丁的戒断反应开始表现,迫使你不得不再吸一根,如此循环,最终你已经离不开尼古丁了,你想不到没有尼古丁生活会变成什么样子...
----------------------------------------
如果公司在一项技术上投资了3年没有产出,几乎都是会要么继续投资下去,要么完全砍掉,是绝对不会用一个新的技术替换它的,新技术只能作为额外因素融入,而不能作为主导因素替换它,这就是事实,汽车的造型就是典型的例子。
----------------------------------------
对于bbr算法,你觉得它的创举在哪里?
它的创举当然在封闭的反馈系统本身,然而我认为,它最大的创举在于改造了TCP拥塞控制的API,因为只有这样,bbr才不会被别的因素(比如猜测到出现丢包)所掣肘,bbr的patch集中,第14个patch: [v4,net-next,14/16] tcp: new CC hook to set sending rate with rate_sample in any CA state我觉得是最有效的:
This commit introduces an optional new "omnipotent" hook,
....
This function can also be used by a congestion control that prefers
not to use the default cwnd reduction approach (i.e., the PRR
algorithm) during CA_Recovery to control the cwnd and sending rate
during loss recovery.
...

如果没有这个patch,请问bbr算法怎么集成到现有框架中。现有框架中,对于丢包,猜测的既不准确,对其反应又过于激烈,好像发生了什么大事一般(是不是有点像台风预报)!如果没有这个patch,bbr正在高速运行时,只要发现有dubious发现有丢包,窗口计算马上就会被PRR接管,此时bbr也只能无奈。
----------------------------------------

该不该抛弃那匹马呢?自己决定!

----------------------------------------

下雨要不要穿皮鞋?自己决定!

该不该抛弃那匹马呢?相关推荐

  1. 匹马行天下之思维决定高度篇——编程“价”更高

    匹马行天下之思维决定高度篇--编程"价"更高 ----也许我注定成不了一个伟大的人,但是至少我可以做一个很棒的自己.我想我现在应该做的不是瞻前顾后,而是活在当下,正确认知自己,做好 ...

  2. 【智力问题】25匹马赛跑,每次只能跑5匹马,最快能赛几次找出跑得最快的3匹马?赛跑不能计时,并假设每匹马的速度是恒定不变的。...

    答案是7次. 1. 首先将25匹马分成5组a.b.c.d.e进行比赛.比赛的次数就是5次.得到每组的第一名,分别编号a1,b1,c1,d1,e1. 2. 然后我们将每组的第一名进行比赛,得出结果.假设 ...

  3. 不要去追一匹马,用追马的时间种草

    不要去追一匹马,用追马的时间种草,待到春暖花开时,就会有一批骏马任你挑选:不要去刻意巴结一个人,用暂时没有朋友的时间,去提升自己的能力,待到时机成熟时,就会有一批的朋友与你同行.用人情做出来的朋友只是 ...

  4. 64匹马8个跑道需要多少轮才能挑选出最快的4匹马?

    64匹马8个跑道需要多少轮才能挑选出最快的四匹马? 第一步 把64匹马分成8组,每组各比赛一次,按照快慢进行排序,出现以下结果: 第二步 淘汰每一组的最后四匹,因为只需要跑的最快的四匹,即使出现一个组 ...

  5. 25匹马,找出最快的3匹,但是只有5个赛道,每次比赛只能得到5匹马的速度排序,那么最少需要多少次比赛

    笔试题:25匹马,找出最快的3匹,但是只有5个赛道,每次比赛只能得到5匹马的速度排序,那么最少需要多少次比赛 在网上搜了下答案,好像不靠谱. 最后在英文网站上找到正确的答案:? 次 参考:http:/ ...

  6. N*N匹马,N个赛道,求出最快N匹马的解法

    入门级:81匹马,9个赛道,不计时,最少要赛几场可以求出最快四匹马? 首先:分为9组分别进行比赛后得到每一组的比赛名次,比赛场次:9: 然后:将9组的每组第一名比赛,得到第一名,肯定是所有马的第一名: ...

  7. 智力题:64匹马8个跑道,至少需要多少轮才能挑选出最快的4匹马

    题意: 64匹马8个跑道需要多少轮才能挑选出最快的四匹马? 解法: 1.分成八组,每组8匹马. 2.八组内部分别比赛,总共比八场,对每组的马排序. 每组的后四匹显然不是答案,直接淘汰. 现在只剩下八组 ...

  8. 有25匹马,5条赛道

    昨天参加暴风影音的校招笔试,选择题和编程题 选择题中的一道题是这样的: 有25匹马,5条赛道,一匹马一条赛道,无法为每匹马计时,每一场比赛只能知道5匹马的相对快慢,求决胜出前5名至少需要多少场比赛, ...

  9. 25马5跑道,求最快的五匹马的需要比赛的次数

    25匹马分5组,每组比一次. 然后5个组的冠军再比一次. 共进行了6次比赛,结果如下: 可知此时已经排好序,A1是25匹马中跑的最快的,同时,对角线下面的图片不可能进入前五名因为显然,A1>B1 ...

最新文章

  1. 和菜鸟一起学c++之虚函数
  2. P1056 排座椅(模拟)
  3. C#生成Excel报表 用MyXls组件生成更完美
  4. Push rejected: Push to origin/master was rejected
  5. Micropython 如何用Turnipbit做一个自动浇水装置
  6. C#学习之按钮点击事件
  7. 聚焦业务价值:分众传媒在 Serverless 上的探索和实践
  8. 彭文华:详解数字化转型的破局之道(附直播视频)
  9. php apache停止工作,phpStudy Apache 经常出现停止工作
  10. Kafka : FileNotFoundException索引文件丢失 xxx.index (No such file or directory)
  11. 有关android工程的构建脚本(build.xml)的学习
  12. Spring Cloud Stream与RabbitMQ整合时Producer与Consumer的相关配置
  13. springmvc mybatis shiro springsecurity lucene restful webservice bootstrap html5
  14. [编程入门]猴子吃桃的问题(JAVA解法)
  15. 找到任务栏广告弹窗的源头
  16. excel提取身份证出生日期_EXCEL教学:通过身份证号码提取所有信息
  17. java压缩解压缩rar、zip文件
  18. Momenta Mpilot Parking 自主泊车(APA/AVP)方案
  19. 桌面计算机怎么设置声音,关于电脑自定义声音的设置
  20. 一起自学SLAM算法:8.2 Cartographer算法

热门文章

  1. Latch的四种写法及为何要避免其产生,以及Latch与DFF的区别?
  2. 抖音小店无货源的回款周期是多久?怎么加快小店的回款周期?
  3. 万卷书 - 历史的教训 The Lessons of History
  4. ncr管理系统_项目管理信息平台
  5. l5630鲁大师跑分_【搞机作战室】鲁大师电脑性能测试跑分科普
  6. 上海人工智能领军企业中集飞瞳ceaspectusS成熟船公司航运人工智能,集装箱运输各节点验箱上报箱况+箱轨迹,集装箱套箱云堆场
  7. 智能音箱——多模态交互之DPL 2.0
  8. 文件服务器锁定账户,文件服务器账户权限设置
  9. 【数据库】商品信息表的设计
  10. web前端人员自行切图教程