关于我们

质量为本、客户为根、勇于拼搏、务实创新

< 返回新闻公共列表

遇到网络带宽问题就头疼?别慌!

发布时间:2021-03-14 07:19:57
放眼整个人类历史,互联网对人类文明的影响怎么评价也不为过的,而其发端不过是实验室的产物。所以,一开始根本没有考虑运营的问题,如与质量相关的带宽、时延等QOS技术根本没有考虑,由于设计的理念和先天不足,即使后期修补改进,也难以实施。


图片


在谈论带宽前,我们首先要了解带宽的定义,澄清一些问题:

带宽的定义


指在固定的时间可传输的数据量,单位是bps(bit per second)。首先要搞清楚单位问题,带宽肯定是以bit为单位的,比如100M带宽,就是100M bit,而平常我们下载软件所显示的单位都是byte,1byte=8bit,这有个换算。常常有个无知而愤怒的声音:我的宽带是4M的,下载速率才400K左右,电信骗子!

再次,我们要明白ISP给我们开通带宽的真正含义:它仅仅是指从你家到本地ISP最近接入设备间线路的带宽,一般这是你唯一可独享的线路带宽,除此这外,全世界任何一个ISP也无法承诺。这是真正和大众有关且能控制的,其它很多问题当地ISP也无法解决的。

TCP/IP协议本来就是基于包交换的,换句话说,是一种带宽共享的协议,只能是在线路上独享带宽,从来没有说能在网络中独享带宽。10年前,ATM协议还有个虚电路的概念,理论上比IP协议能更好的承诺带宽,可惜最后被IP废成渣了,目前ATM仅在ADSL接入层还有应用,大家常常要在ADSL猫里要设置的VPI,VCI就是ATM协议最重要的参数,随着光纤的普及,ATM将彻底消失了。

假设以10M带宽为例,理论上下载速率可以达到10/8=1.25M,但实际上根本不可能,能达到1M就不错了,这是为什么呢?这其中的原因很复杂,大概有以下几个方面:

一、协议开销


TCP/IP是一个协议族,当然核心的是TCP和IP协议,让我们像剥洋葱一样,一层层剥开每一层协议:

图片

TCP协议报文格式

图片

由上可见,TCP最小协议开销为5X32=160bit(20byte)。

IP协议报文格式

图片

由上可见,IP最小协议开销为5X32=160bit(20byte)。

Ethernet II帧格式

图片

注此处单位是byte, Ethernet II类型以太网帧的最小长度为64字节(6+6+2+46+4),最大长度为1518字节(6+6+2+1500+4)。Ethernet II最小协议开销为6+6+2+4=18byte(144bit)

完整数据包

图片

总结一下:

所有协议的开销为:14+20+20+4=58byte,按以太网最小数据包(46byte)算:其协议开销占比58/104=56%,按最大数据包(1518byte)算,也就是最大效率:其协议开销占比58/1518=3.8%。

当然每秒在网络上传输的数据包大小并无规律可言,由于应用不同,也无法统计出一个大致平均的协议开销占比。其实这种算法并不严谨,数据链路层也并不是只有以太网协议,比如ADSL所用的PPPOE,WIFI的802.11n等等,其中还少算了应用层和物理层的开销,尤其是应用层各种协议种类繁多(难于计算统计),另外,传输层UDP协议的开销也会更小一些。这些开销全部要占用网络带宽,就好比到邮局寄包裹,包裹也是要算重量和费用的。

除此之外,为了维护物理链路的连接和各种协议和应用软件的连接,会定时地传输各种协议报文,类似心跳的报文,有时我们联网后,并没有任何上网动作,但很多协议已经开始工作,有流量和连接产生,可以在DOS窗口下用netstat –a查看传输层的连接情况。

二、传输问题


传输问题也分为几部分:

1. 接入线路问题。

传统的宽带ADSL对线路的要求高,既有距离、介质的要求,对电气干扰也有要求,有一部分ADSL的线路是不达标的,自然其带宽也不够。

比如电话线的线径,最初只有电话时,线径记得只有0.3或0.4毫米,这对通话质量基本没什么影响。但有了ADSL后,影响就大了,中国电信集团要求采用0.5毫米的电话线,同时采用类似网线的双绞线,以减少干扰。

关于ADSL线路质量是一个很专业的领域,线径只是其中一个小小的指标而已,还有诸如双绞线或平行线方式,主电缆的质量,开线率等等指标。同时ADSL经过不断升级,各版本对线路质量要求也不同。

目前光纤入户已经开始大量普及,衡量的指标又完全不同,主要是光衰,一般<25DB以下都是合格的,当然越小越好。有的光猫可以直接查看光衰。

2. ADSL终端匹配

ADSL的标准版本很多:ADSL,ADSL2,ADSL2+,ADSL猫和电信DSLAM之间就需要协商,匹配一个大家都支持的版本。电信的DSLMA设备都是顶级的设备制造商的产品,而ADSL猫的质量就参差不齐了,在ADSL版本匹配上影响很大,相同条件下,速率不达标,也许只是换个猫,速率就达标了,甚至速率会有成倍的提升。

3. 干线的传输

中国幅员辽阔,城市之间经过成百上千公里的光缆连接,远非弹丸小国可比。在这几百甚至上千公里的距离,只有光缆吗?光是有衰耗的,所以每隔一段距离都会有中继站,重新放大光信号。同时为了更大的带宽,也会设置光复用的传输设备。

三、设备问题


主要是网络中各种设备,分2个方面

1. 转发性能问题。数据包从设备入口进来,再从出口转发出去,这之间的时间差就是设备转发的时延,时延是带宽的杀手。网络工程师都知道,在衡量设备性能上,有背板带宽和包转发速率等主要参数。交换机是纯硬件转发的,是最快的,电信级的路由器也基本上是硬件转发的,而防火墙就慢多了,它要对每个数据包进行分析并控制,效率就差多了,所以在ISP骨干网里,是不会有防火墙的。

除了网络设备外,光传输设备的影响也非常大,小到本地网,大到省内,甚至国家骨干网。每台设备都要经历光-电-光的转换,时延也在一次次的累加。纯光的运算仍只在理论和实验室中。其中涉及到光网络的协议开销,已不在我所熟悉的领域了。

2. 除了ip及以上协议,每个数据包在进入一台设备上时先要对数据链路层协议进行解包,而在离开设备时要重新封装数据链路层协议,这都是造成时延的因素。在DOS下有个tracert命令,可以查看经过的三层以上的设备(如路由器),但这其中根本不包括二层及以下的设备,像交换机,网络接入设备FTTH等,其它传输设备根本不支持ICMP协议,更无法体现出来,其实我们随便访问一个页面,都要经过10台以上的路由器,而实际每个数据包经过的设备要乘以N倍。

综上所述,网络中设备成百上千,每台设备都不停地处理数据包,不断地累加时延,而带宽就只有2个参数:数据量/时间,而时延无疑严 重影响了带宽。

四、测速问题


我们常常用软件或在网站上测速,但在我看来,这并不科学,也不靠谱。本质上所有的测速原理都是通过下载一个大的文件来计算带宽的,是应用层的,而我们的带宽是纯物理层的。

比如用迅雷,它计算的下载速率是你下载的文件大小除以时间,这其中根本不管物理层,数据链路层,网络层,传输层和应用层的所有协议开销,而且也不管PC中是否有其它程序同时也在占用网络带宽。

真正科学的方法是从PC的网卡上抓取流量来计算带宽,但这也仅仅解决了PC侧的计算问题。那么对端呢?测速网站的服务器带宽是否够用?假设服务器的带宽只有100M,而同时有100个人在测速,那每个人测出的最大带宽也不过只有1M,哪怕你一个人就有100M带宽。

另外服务器的硬件也可能是瓶颈,目前大部分服务器还是用传统硬盘,当有成百上千的用户请求时,即使带宽足够,但硬盘的传输速率也可能是瓶颈。

其实,以上都不是最主要的问题,最主要的是这些测试都是测量PC到远端服务器的带宽,这些服务器可能在北京,也可能在广州,可能长达几千公里的距离。而ISP根本不可能给你承诺几千公里距离的带宽,它承诺的只是短短几公里从你家到ISP设备间的带宽。

其实简单地说,我们所感知的实际带宽分2部分:接入带宽和骨干网性能,接入带宽就是ISP办理业务时承诺的带宽。对于ISP来说,接入带宽随着光纤的普及,将不会成为瓶颈了,骨干网的性能只能通过不断扩大带宽,优化网络来解决。

而骨干网性能就是ISP骨干网的带宽、容量和优化情况,这就是大家所不了解的了。

总之,对大众来说,带宽是不靠谱的测试和应用上的感知,而真正理性分析后,会发现这是个非常复杂的问题,即使罗列了以上因素,我仍然觉得远远不够。只是希望大家能通过这篇文章,大家能理性地探讨带宽的问题,牢骚和叫骂是不能解决问题。也希望此文能抛砖引玉,和其它领域的专家一起探讨,以便更全面地看待这个问题。



/template/Home/Zkeys/PC/Static