专业网站建设品牌,十四年专业建站经验,服务6000+客户--广州京杭网络
免费热线:400-683-0016      微信咨询  |  联系我们

如何计算TCP吞吐量_服务器

当前位置:网站建设 > 技术支持
资料来源:网络整理       时间:2023/3/7 17:58:28       共计:3599 浏览

如何计算TCP吞吐量?

快速计算一下从一个主机经过长距离的链路到另一个主机之间实际上你可以获得的 TCP 吞吐量是多少。

使用 TCP 传输数据时,两个最重要的因素是 TCP 窗口大小 和 往返延迟。如果你知道这两个参数,你就可以计算出两个主机间的最大吞吐量,不管带宽是多少。

计算 TCP吞吐量的公式

TCP窗口大小(bits) / 延迟(秒) = 每秒吞吐量(bits)

举一个简单的例子。从芝加哥到纽约有 1G 的以太网链路,往返延迟 30ms。如果使用 FTP 在芝加哥的一台服务器和纽约的一台服务器之间传输一个大文件,所能期望的最大吞吐量是多少?

首先把 TCP窗口大小 从字节变成位。这个例子中我们使用 Windows 标准的 64K 窗口大小。

64KB = 65536 Bytes. 65536 * 8 = 524288 bits

接着,把用位表示的窗口大小除以用秒表示的往返延迟。延迟 30ms 的话,在计算中使用 0.03秒。

524288 bits / 0.030 seconds = 17476266 bits per second throughput = 17.4 Mbps maximum possible throughput

这样的话,尽管在数据中心之间我有 1G 的链路带宽,但是基于 给定的窗口大小 和 往返延迟,在传输文件时我所能期望的最大的吞吐量是 17.4 Mbps。

做什么才能变快? 增加窗口大小 或 缩减延迟。

为了增加 TCP窗口大小,可以在每个服务器上做出手动调整,传递更大的窗口大小。这产生了一个问题:你将使用多大的窗口大小?可以使用上面公式的反向计算来确定最优的窗口大小。

计算最优 TCP窗口大小 的公式

带宽(bits每秒) * 往返延迟(秒) = TCP窗口大小(bits) / 8 = TCP窗口大小(字节)

因此在芝加哥和纽约之间 1G 的带宽和 30ms 的延迟的例子中,可以计算如下:

1,000,000,000 bps * 0.030 seconds = 30,000,000 bits / 8 = 3,750,000 Bytes

因此为 FTP连接 配置 3750KB 的 TCP窗口大小,将会填充管道,获得 1Gbps 的吞吐量。

服务器增加 TCP窗口大小,其中一个缺点是需要更多的缓冲内存,因为未应答的数据必须存储在内存中为了应对可能的重传。另一个潜在的缺陷是性能(是不是很讽刺),发生在包丢失时,因为窗口内任何的包丢失都会导致整个窗口重传 - 除非你的 TCP协议栈使用一种 TCP增强技术,叫做选择性应答(selective acknowledgements),但是大部分服务器没有使用此种技术。

另一个选择就是在需要更大窗口的一端放置广域网加速器(WAN accelerator) 和 在加速器之间使用其他TCP优化,比如选择性应答,对服务器不需要特殊的调优或额外的内存。加速器可能也使用第7层应用具体的优化来减少往返次数。

减少延迟?这怎么可能? 除非你能克服光速的限制,否则对于缩减延迟你什么都做不了。再一次,你有一个选择,就是设置加速器,加速器应答本地服务器的报文段,愚弄服务器让它认为看到非常低的局域网延迟。因为服务器看到非常快速的局域网应答,而不是等待远处的服务器应答,这就是为什么我们不需要调整服务器的窗口大小的原因。

版权说明:
本网站凡注明“广州京杭 原创”的皆为本站原创文章,如需转载请注明出处!
本网转载皆注明出处,遵循行业规范,如发现作品内容版权或其它问题的,请与我们联系处理!
欢迎扫描右侧微信二维码与我们联系。
·上一条:破解版的用友软件要怎么安装_服务器 | ·下一条:文明重启浩宇直升机怎么获得配方_服务器

Copyright © 广州京杭网络科技有限公司 2005-2025 版权所有    粤ICP备16019765号 

广州京杭网络科技有限公司 版权所有