科普系列1:带宽和互联网的故事

早就想写这么一篇科普文了,最近正好有机会,就整理了一篇出来。

前言

互联网早就成为大家生活中的一部分了,以至于很多人都得了不上网就会死掉的怪病。

虽然每天都用,但互联网各种奇怪的脾性总还是让人摸不到头脑。虽然像bit和byte这样误会早就澄清了,但还是有太多每天都见但很难以用直觉解释的问题,比如:

  • 为啥我明明是100Mb宽带,玩网游时不时卡到不会动?
  • 为啥迅雷下载快?
  • 为啥10Mb独享带宽的宽带比100Mb共享带宽的贵那么多?具体好在哪里?
  • 为啥南北互联那么难?
  • 为啥运营商对上传那么吝啬?
  • etc

本文试着用最简单的语言把这些现象解释一下,看完之后上面这些问题你就能明白了。希望能加深诸位对于互联网的理解,在选择宽带和路由器神马的时候有所帮助。


首先,我们先从结构聊起,构成互联网的主体技术的以太网是个神马东西?


不靠谱的快递公司

如果把网络比做快递公司的话,互联网就是一个特别不靠谱的快递公司。在说明它有多不靠谱之前,我们先说说“正常”的,也就是靠谱的快递应该是什么样的。其实靠谱的快递就跟大家平时用的快递差不多。

假设一家快递公司一天能处理100个包裹。但双11一下来了1000个包裹,怎么办?

  • 没事,快递公司有很大的仓库,没法立刻处理的先存仓库,慢慢消化。你的快递会迟到,但永远不会缺席。
  • 买家没在家?那包裹我们先替你临时保存,下次再送。
  • 查无此人?买家拒收?买家长时间没联系?没事,我们负责给卖家退回去。
  • 包裹都有号码,可以追踪。买卖双方都可以知道包裹到哪了。
  • 仓库满,快递公司运转不过来了?我们会跟卖家解释,而且会暂停收新的包裹直到混乱结束。

其实也没啥特别的不是?不过没有对比就没有伤害哈,你看看互联网这家快递是怎么干活的

  • 几乎没有仓库,也不会替你保存包裹。如果处理不了,包裹直接扔掉。啥?双11一下来了1000个包裹,先给我扔900个。剩下100个送不送看心情。
  • 敲不开门?扔!查无此人?扔!拒收?扔!反正不管出什么问题,包裹直接扔就对了
  • 是真・直接就扔。既不会通知买家也不会通知卖家
  • 就算快递公司整个炸了,揽收的也照样收包。只不过左手收进来右手就给扔了,当然这事也不会告诉你。
  • 包裹追踪?想查包到哪里出问题了?呵呵,你咋不上天呢?

总结一下就是扔你的包裹就是常态,发出去的包就像泼出去的水,你永远都不知道能不能送到。

现实世界中快递公司这么干那谁还敢用啊?还不分分钟让人打死?可是人家以太网技术不但混的风生水起,还胖揍了其他各种相对靠谱的快递公司,真的是魔幻的不能再魔幻了哈?

为啥?

因为结构简单所以又便宜又好,容量还大,速度快到不科学啊!

打个比方:

靠谱快递1个包裹10块钱,最多3天送到。

不靠谱快递1个包裹1分钱,5分钟送到。

你说你选哪个?

不知道能不能送到?没关系,送出去之后我等10分钟,买家那边没消息我就再送一次。大不了我就送10次嘛,10次也才1毛钱,时间也就花了不到2个小时而已,比10元+3天可经济多了。


于是,这种叫以太网快递公司击败了其他类型的网络,组成了我们今天的互联网。


不靠谱的快递公司的日常

现在这个不靠谱的快递方式普及了,组成了一个遍布世界范围的快递网络。当然这个快递网络也不是由一家公司整体运营的,而是由很多家快递公司分别运营的。快递公司们都有自己的快递站,分拣中心,骨干物流中心网络。公司和公司之间互不干涉,但物流是通的。

比如你在大连,用网通这家快递公司寄包裹,包裹会被网通公司交给电信公司,然后再由电信公司送到广州的目的地。

快递公司虽然很多,但大家物流系统是通的,当然也有共同的特点,就是都不靠谱。

公司之间为了扩大业务,可能会覆盖相同的区域,比如你们的小区就有联通,网通,铁通三家快递公司的快递站。

你选了一家相对看着顺眼的公司,与之签约,每月给快递站50块钱。快递站承诺你,每天最多可以帮你处理20个包裹。

但实际上,这个快递站的处理能力只有100个/天(当然这个从头到尾都不会跟你说),而你所在的小区签约这家公司的用户了100多户。够用吗?这个不好说,毕竟不是每户人家每天都有包裹要邮寄的。

何况退一步讲,不够用又如何?不够用就把你的包裹随手扔了就是了。多简单!

下面具体说一下各种情况下快递站会怎么做。

  • 某一天,快递站已经收了50个包裹,你一下邮了20个,全部正常抵达。
  • 某一天,快递站已经收了90个包裹,你邮寄了6个,全部正常抵达。
  • 某一天,快递站已经收了95个包裹,你要邮20个,结果只到了10个。另外10个呢?被就地处决了呗!等等,明明容量就剩5个了,怎么还能寄出去10个呢?因为扔也不能就挑你一个人的包扔嘛。剩下5个就不知道是扔的哪个倒霉蛋的了。
  • 某一天,快递站已经收了1000个包裹,你还要邮20个,结果。。。。结果就是互相伤害呗!这个时候用网络蚂蚁/网际快车/迅雷的人占便宜,老实人吃亏。

如果快递站尚有余力,没到必须互相伤害的程度呢?这些多线程下载软件带来的提升就会大打折扣,用不用意义也就不大了。前几年,各家快递公司整体的物流能力都堪忧,尤其是快递站到户的这一部分更是如此,多线程下载自然大行其道。近两年物流能力都有长足的提高了,物流能力也都有余力了,多线程下载也就慢慢的凉了。


最后,思考题

某一天,快递公司已经收了50个包裹,你邮寄了20个,结果只有2个正常到达,为啥?


为啥?这不是理所应当的事情嘛。要不怎么能叫不靠谱的快递公司呢。虽然快递站没爆,但上游中转站爆了/所在城市总物流中心爆了/骨干运输线路爆了/收件人所在地的物流中心爆了/收件人家附近的快递站爆了,反正你的包有100000种死法,怎么死的重要吗?

当然,从快递站到骨干网,这家快递公司的处理能力/余力越大,越不太会扔掉你的包裹。所以选一家相对靠谱,余力大的公司,用户体验就会好一些。只不过问题在于,各家公司的快递站/骨干网还有多少余力,以及愿意分配给你多少余力,都属于正经的企业机密,是永远不会告诉你的。


各家快递公司能告诉你的只有一个虚无缥缈的承诺,每天最多可以帮你处理多少包裹。

当然你也可以用这个承诺的大小来大概推断一下快递公司规模和水平,毕竟敢承诺你每天20个的快递公司,还是相对来说比只敢承诺你每天2个包裹的公司靠谱。

但可以承诺每天最多100个包裹的公司,不见得就比承诺每天20个的体验好。一个是一分钱一分货,这个后面会讲,另外一个是其实一般人平均每天也就能发3~5个包裹而已。

快递公司的承诺:带宽

估计大家也都看明白了,快递公司就是运营商,你上网发送的数据包就是包裹,快递站就是宽带接入的部分,快递站承诺你每天最大的包裹处理量就是所谓的带宽。看了上面东西,你也应该明白,这个承诺其实是特别虚的一个东西。本身承诺的就是一个最大值而已,而且快递公司的物流还有多大余力和承诺你的带宽又没有直接关系。(也不会跟你说实话)

更重要的是,理论上你的丢包率是可以在0~100%浮动的哈。而且就算你的包裹99%都被丢了,按照合同,你也是不能有任何怨言的。

这也是我一直说的,带宽只是衡量网络的一个指标而已。而对于家用网络还是最没用的那个。你关心自己用的网络是1Mbps的还是10Mbps的还是20Mbps的甚至是100Mbps还是1000Mbps的其实没多大用,你倒不如关心一下自己网络在高峰期间的丢包率。

只不过吧,丢包率是个很难横向比较的指标。不像最大带宽,你找个人少的时候测一下就行了。丢包率则是高峰时测才有意义,起点终点不同又不能横行比较,而且还得长期的观察才能品出好坏。

更重要的是,丢包率只能说明过去,今天就算一个包不丢明天也可能丢到你怀疑人生。

所以对于企业用户以及服务器来说,宁可峰值低一些,可以保证不丢包的网络自然更有吸引力一些。


思考题,
100Mb共享带宽的网络,高峰会有10%的几率丢包。
和
10Mb独享带宽网络(因为带宽独享,所以我们假设它不丢包)
你觉得哪个好?

100Mb的好?就算丢了10%我还有90Mb嘛。你这么想就图样了。丢包的影响远比你想的严重。前面也说了,包被丢掉之后是不会通知发送方和接收方的。那怎么知道对方收没收到呢?只能等到超时,然后再重传。

而等超时这个动作,基本上都是按秒来算的。有的时候双方还要商量一下如何重传的具体事宜,弄不好3秒5秒都算客气的。

如果你玩吃鸡或者lol什么的,明明没有谁在用网,还时不时出现的卡住完全不动,或者ping值毫无征兆的飙到数百几秒后再恢复,那十有八九就是丢包受害者了。

另外有兴趣的可以去网络服务商或者数据中心问问报价,你就会发现10Mb的独享带宽可比100Mb的共享带宽贵多了。因为100Mb的共享带宽平均分下来,肯定没有10Mb(或者换句话说就是如果有100Mb的带宽,肯定不止分给10个人用。)

所以,这样的宽带给你100Mb还是1000Mb区别很大么?

顺便说一下,独享带宽的宽带也不是说绝对不丢包。只不过能保证你的数据包在接入骨干网之前不会因为带宽爆掉的关系被扔掉。而包要送到了对方网络,可能要途径几家运营商的网络,这时候会不会被扔,谁也说不准。

而且,有些时候甚至也不是保证到骨干网,只是保证在你接入的交换机不会被扔,在往上会不会被扔就不管了。也就是有真独享带宽和假独享带宽的说法。


普及更大带宽的困境

宽带自然是越快越好,但个中的矛盾在于,现在宽带费用是包月的,你用还是不用,用多少,扔你多少包都不影响运营商的收入。换句话说,运营商投入再多的资本,大举兴建骨干网络,和快递站的容量也没人给运营商加鸡腿。

而增加网络容量那是要真金白银的,运营商当然不乐意。

但如果是按流量收费那就是另一个故事了:运营商肯定把网络建得畅通无阻,巴不得你玩命用呢。

比如手机的按流量收费。

其实无线网络相对于光纤,容量是相当有限的。毕竟频率就那么多,但光纤的话可以无限拉。但中国的手机网络极快的从2G升到3G,又升到4G现在准备上5G了。而且,如果是按流量收费的套餐,一般也不会限你的速度,导致手机网速很多时候比宽带还快,就是这个道理。

总体来说,按流量收费是大势所趋。你邮寄多少包裹,就收你多少邮费确实更合理一些,实际操作起来问题很多,所以一时半会不会也不能指望它普及。

另一方面,那如果国家出钱,把骨干网和接入的部分都做到畅通无阻,我是不是就能用上便宜又高速又稳定的网络了呢?或者换句话说,现在中国电信中国联通神马的骨干网络建设其实相当的给力,放在那里也是放着,为啥就不给我用呢?

这就涉及到互联网运营商之间的结算方法了。再往下这坑可就越挖越深,差不多可以写本书了。所以我尽量把概念简化,有不准确的地方大家多担待。

运营商的网费:其实地主家也没有余粮

其实运营商的带宽也都是从上家买来的。

也就是说,运营商不但要建设自己的高速的物理网络把你接入进来,还得跟上家批发带宽再零售给你。批发价多少要看运营商的体量,体量越大越便宜。各家多少,肯定是都不一样了,而且一定是企业机密,人家不会告诉你的。

可以告诉你的是,即使是批发也一点都不便宜。虽说此带宽和彼带宽并不是完全相同的概念,但就费用来说你用100Mb的光纤一个月费用可能都买不下来1个Mb。具体1Mb带宽零售的话要卖多少钱,还是可以参考一下各大服务商和数据中心的10Mb独享带宽的价格。

所以你指望一个月就交这么点钱,100Mb让你随便用?天下哪有这么好的事。

归根结底,不管你是100Mb还是1000Mb,是不可能让你没有限制随便用的,要么限流要么限速,要么一起限。反正上刀山还是下火海你自己选一个,这就是家用宽带的宿命。不把你消耗的平均带宽限到足够低,运营商不就成慈善机构了么?

  • 限流。这个最好理解,就像手机这样,每个月不得超过多少流量。就算你10G流量,其实平均下来消耗的带宽是8*10000MB/30天/24小时/3600秒=0.03Mbs=30Kbps
  • 限速。这个办法就多了,技术上可以给你开100Mb甚至1000Mb,实际上给你开10Mb,20Mb。或者高峰时段在上游交换机上限速,或者设置优先级,或者用下面这个更粗旷的办法
  • 反正就10G带宽,你们100000个人看着分吧。现在明白为啥访问境外网站为啥那么慢了吧?知道为啥玩境外服务器的网游狂丢包了吧?即使是电信联通网通这样的巨头,国内的网络都是自己的,可以不花钱。出国的带宽也还是要跟人家买。当然境外网站慢还有另外一个重要原因,这里也不讲了,大家明白就行了。

另外,也不是你用的每一Mb的带宽,运营商都需要跟上家交钱的。实际上,运营商自然是要千方百计,想方设法在这上面省钱。

比如如果是运营商自己网内的资源的话,那就不用给上家掏钱了。打个比方,如果你是电信用户,访问网通机房的服务器,电信很有可能要为你的这个行为给网通付钱或者承担额外的成本。而如果你是电信用户,访问电信机房的服务器,那电信就美滋滋了,速度自然是又快又好。

思考题,所以你猜中国南北互联为啥是世界难题哩?

很多互联网内容提供商的巨头早都学乖了,会在电信和网通的网络内分别架设服务器,或者用双线BGP的机房。原始一点的办法,是让用户自己选服务器。先进一点的办法,可以自动选。像CDN啥的,其实道理也都差不多。

电信的用户和网通的用户,打开youku的页面,看到一样的内容。但很可能是走了完全不同的线路,从完全不同的服务器上返回的结果。也就是说,虽然你们看视频网站很费带宽,但运营商其实也不是那么疼。

对于运营商来说,交钱从上家那里批发来的带宽可是真金白银买来的,零售给企业用户和服务器是稳赚的,他们用也就用了。

而对于一般用户来说,你就交那么点钱,自然是能不给你用就不给你用。一直以来个人用户主要的需求还是下行的流量。而下行的流量是很好控制的,估计你也猜到了,方法就像上面说的,把热门的服务器纳入运营商的内网不就行了?

也就是说,你是电信用户,打开视频网站,比如youku吧。网站会自动给你分配一个电信的服务器。你是网通用户,则自动给你分配一个网通的服务器。这样以来,运营商成本也低,你看着也舒服,皆大欢喜哈。

但一般用户的上行带宽可就没有那么好控制了。尤其是近几年,P2P的兴起。你挂P2P的时候,P2P程序可不会分辨对方到底是同城的邻居还是还是相隔千里之外的国际友人。同网的倒是好说,你要是想给国际友人传数据,那对于运营商来说就跟杀父之仇一样啊。(断人财路等于杀人父母嘛!)

没有P2P之前,你给国际友人传数据也就传了,虽然运营商很不爽,但忍忍也就过去了,毕竟数量有限不是?而P2P不但数量大,还要长期的挂在网上,有的人甚至7x24小时的上传,这可就相当于7x24杀人家父母,运营商能不发飙么?

而且P2P不是一个两个人这么上传,是大家一起上传。服务器的上行带宽都是花钱买来的,毕竟有个上限。而对于个人用户上行带宽根本没啥成本,而且单个人上传少数量补嘛。所以P2P快到飞起的同时,也成了运营商挥之不去的梦魇。

所以你猜,为啥宽带的上传都那么抠门?

思考题,啥即使跨过了ADSL的时代,现在用光纤上行下行对称已经没有技术难度,
但为啥运营商在上行的问题上特别抠门?

结语

不知不觉写了这么长,就先写到这吧,希望对大家有帮助。

编辑于 2019-10-11