Created
December 28, 2016 01:46
-
-
Save ThinkZ/f52ca20b1d83d8194a228cbd2b597df0 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
经常有人讨论ADSL下载速度的问题,有的说2M应该是2048/8=256K/秒,很早就想深究这个问题了,以下根据协议的具体工作来分析2048K的ADSL下载速度到底应该是多少? | |
MTU1480#(目前大多城域网采用IP上行,不再用ATM,VLAN信息占12,因此不是1492) | |
同步速率2048000 | |
DMT frame长度(byte)64#参考用,不必用来计算 | |
字节/秒256000#以上统计物理层的速率,单位是Bit,为了方便计算,转换成Byte | |
ATM信元数量/秒4830.188679#53字节/信元,ADSL采用ATM方式来传送数据 | |
有效信元字节/秒231849.0566#48字节/信元 | |
最大接收以太网侦数/秒154.3602241#以太网侦长度1502,拨号方式都是以太网封装数据的 | |
每个以太网侦花费时间6.478352865 | |
PPPoE侦最大有效负载(既IP包MTU)1480#1502中,12个以太网地址和2个类型,8个PPPoE包头,负载为1480 | |
IP包的最大有效负载1460#MTU减去20字节的IP包头 | |
FTP下载时,TCP最大有效负载1440#每个包的最大实际有用数据 | |
FTP下载时,TCP的ACK数(假设win=4)38.59005603#下载时,每收到4个有效包,就应答一个ACK包,继续传4个包,这是TCP的特点 | |
每ACK占用2ms,共消耗ms/秒77.18011205 | |
扣除ACK占用时间,实际收以太网侦数/秒142.4466847 | |
有效数据的下载最高速率205123.226#(忽略TCP握手以及慢启动机制) | |
换算成KB/秒200.3156504 | |
以上是假设线路质量和网络质量良好情况下单线程FTP理论上最大可达速率 | |
由上可见,线路和网络良好时,对速率影响最大的是ACK时间以及WIN数量,ACK包一般是60字节,512K上行速率仅需要1ms,但你的电脑也要响应时间,因此一般是1ms~2ms之间,如果你的电脑很繁忙(如中毒),那响应时间会大大增加,还有就是使用路由方式也可能会增加该时间。另外win值是1~16之间,但我抓包测试最多是4,因此在最理想情况,2M的ADSL最高下载速度是200~205K/秒。 | |
线路质量的影响 | |
线路质量差导致误码,万分之4的误码能影响10%的下载速度,千分之一能影响近50%的速度。 | |
网络质量的影响 | |
主要就是延时,下行数据可以通过Win数量来调节,甚至采用多线程尽量填满通道,值得注意是并不一定多线程就快,多线程只能在高带宽高延时有效果,否则适得其反。 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment