大家先看下千兆宽带直连电脑的测速结果,如下图所示:
其实能测到900多M已经是很合格了,毕竟在测速时要计算网线,水晶头等一系列的损耗,但是硬件损耗导致的速率被拉低并不是主要的因素,而运营商给的千兆也是没问题,那缩水的几十兆跑哪去了呢?
“1460”
3,由于TCP协议中还有20字节的TCP头部,所以最终在TCP数据段中能承载的最大数据量就是1480-20=1460字节。
我们总结一下公式:
数据字段=MTU-IP头部-TCP头部=MSS-TCP头部=1500-20-20=1460byte
(MTU:最大传输单元,MCC=MTU-TCB头部)
“1538”
以太网帧(最大)+前导码+帧间隙=1518+8+12=1538byte
把以上数值全部带入公式后就可以算出1000Mbps×(1460/1538)≈949.28Mbps那么在千兆宽带下,有效数据占比约为95%,确实无法达到千兆!
最后我们来看看测速软件是如何运作的:
1,测速服务器(如speedtest、360等测速网),开始测速客户端(电脑)。
2,测速时会有上行测速和下行测速,针对下行,测速服务器做数据统计时只要数据字段这一部分的数据,MAC帧头、IP头、TCP头部的长度均不列入计算范围;下面开始进入测速环节:
↓ 测速TCP数据帧进入电脑。因以太网帧最大长度为1518byte,进入网卡后MAC头部、IP头部被去掉, ↓ 再通过TCP目的端口号,知道其对应为测速服务,下一步拆掉TCP头部后转给测速进程, ↓ 最终客户端电脑测速进程拿到的数据长度为1518-18-20-20=1460byte,将其纳入测速数据统计;
所以说,为了得到1460这个有效测速长度,需要消耗78byte(前导码8+帧间隙12+mac头部18+ip头部20+tcp头部20)的字段参数。
现在你知道为什么千兆宽带却测不满千兆的原因了吧!