带宽时延乘积的含义

带宽时延乘积指的是链路的带宽(单位比特每秒)与来回通信延迟(RTT,单位秒)的乘积。结果为比特的数据量,表示在特定时间该网络上的最大数据量--已发送但尚未确认的数据。

带宽时延乘积对网络性能的影响
     举一个好理解的例子,开了100Mb的电信宽带,但由于中间一些路由器以及链路的瓶颈,导致ping对端主机的RTT为1s,对端的窗口大小为64kB,那么你的发包速度很快会占满窗口,必须等待ACK回来才能重新发包,所以你的速度大概只能有64KB/S。
     假设两台电脑百兆网口接在一起用Chariot跑TCP流量,电脑的窗口大小为64KB(窗口不自动扩大)。它们之间线路速度为100Mb/s,RTT稳定为1ms,那么带宽时延乘积为100Kb (12.5KB), 小于窗口大小,那么跑出来的速度是接近线速(100Mb/s)的。如果RTT稳定为10ms,那么理论速度为64*8/10=51.2Mb/s。

在实验室测试电信的百兆光纤专线时,使用www.speedtest.net网站测速,下载测试速度大概85Mb/s,以64KB的窗口大小计算可以得出RTT大概等于6ms。而自己搭PPPOE服务器,测试性能,下载速度可以到93Mb/s。说明中间路由器的转发,链路速度这些会使RTT时间增大,从而影响下载性能。

如果开通百兆网,并不意味着你真正有百兆的使用体验,这还得需要运营商优化线路,使用性能更好的中间路由器,努力降低往返时延才行。

http://blog.csdn.net/u013401853/article/details/53930932


应用程序通过socket系统调用和远程主机进行通讯,每一个socket都有一个读写缓冲区。读缓冲区保存了远程主机发送过来的数据,如果缓冲区已满,则数据会被丢弃,写缓冲期保存了要发送到远程主机的数据,如果写缓冲区已慢,则系统的应用程序在写入数据时会阻塞。可知,缓冲区是有大小的。
    BDP 给出了一种简单的方法来计算理论上最优的 TCP socket 缓冲区大小(其中保存了排队等待传输和等待应用程序接收的数据)。如果缓冲区太小,那么 TCP 窗口就不能完全打开,这会对性能造成限制。如果缓冲区太大,那么宝贵的内存资源就会造成浪费。如果您设置的缓冲区大小正好合适,那么就可以完全利用可用的带宽
BDP = 带宽 * 延迟 (单位: 字节)
    带宽*延时/8*2^20 = ***B
      带宽: Mebibites     延时:s (RTT)

注意:调整tcp前,必须调整core,对于tcp,udp来说不能超出core的限制

默认值:
net.core.rmem_max = 131071 128K
net.core.rmem_default = 124928
net.core.wmem_max = 131071
net.core.wmem_default = 124928

net.ipv4.tcp_rmem = 4096 87380 2691072
net.ipv4.tcp_wmem = 4096 16384 2691072

示例: 
带宽:1.5M   100M
延时:500ms  3000ms
1.5 * 0.5 / 8 * 2^20         ======= net.ipv4.tcp_wmem
100 * 3 / 8 * 2^20           ======= net.ipv4.tcp_wmem


一般设置socket的sendbuf和recvbuf等于带宽时延乘积。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值