TCP Optimal Window Size Calculator

.calc-header { margin-bottom: 30px; padding: 25px; background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); border-radius: 12px; box-shadow: 0 4px 6px rgba(0,0,0,0.1); color: white; } .calc-header h2 { margin-top: 0; color: white; font-size: 28px; margin-bottom: 10px; } .calc-header p { margin: 10px 0; opacity: 0.95; font-size: 15px; } .input-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 15px; margin-top: 20px; } .input-group { display: flex; flex-direction: column; gap: 8px; } .input-group label { font-weight: 600; font-size: 14px; color: rgba(255,255,255,0.95); } .input-group input { padding: 14px; font-size: 16px; border: 2px solid rgba(255,255,255,0.3); border-radius: 6px; font-family: 'Courier New', monospace; background: rgba(255,255,255,0.95); transition: all 0.3s ease; } .input-group input:focus { outline: none; border-color: #4CAF50; background: white; box-shadow: 0 0 0 3px rgba(76, 175, 80, 0.1); } .button-group { margin-top: 15px; } .calc-button { padding: 14px 35px; font-size: 16px; background: #4CAF50; color: white; border: none; border-radius: 6px; cursor: pointer; font-weight: bold; transition: all 0.3s ease; box-shadow: 0 2px 4px rgba(0,0,0,0.2); } .calc-button:hover { background: #45a049; transform: translateY(-1px); box-shadow: 0 4px 8px rgba(0,0,0,0.3); } .calc-button:active { background: #3d8b40; transform: translateY(0); } .result-section { background: white; border: 1px solid #e0e0e0; border-radius: 8px; margin-bottom: 15px; overflow: hidden; box-shadow: 0 2px 4px rgba(0,0,0,0.05); transition: all 0.3s ease; display: none; } .result-section.show { display: block; } .result-section:hover { box-shadow: 0 4px 8px rgba(0,0,0,0.1); } .section-header { background: linear-gradient(135deg, #4CAF50 0%, #45a049 100%); color: white; padding: 15px 20px; cursor: pointer; display: flex; justify-content: space-between; align-items: center; user-select: none; transition: background 0.3s ease; } .section-header:hover { background: linear-gradient(135deg, #45a049 0%, #3d8b40 100%); } .section-header h3 { margin: 0; font-size: 18px; display: flex; align-items: center; gap: 10px; } .section-header .icon { font-size: 20px; } .section-toggle { font-size: 24px; transition: transform 0.3s ease; } .section-header.collapsed .section-toggle { transform: rotate(-90deg); } .section-content { padding: 20px; background: #fafafa; max-height: 2000px; overflow: hidden; transition: max-height 0.3s ease, padding 0.3s ease; } .section-content.collapsed { max-height: 0; padding: 0 20px; } .data-row { display: flex; margin: 12px 0; padding: 10px; background: white; border-radius: 4px; border-left: 3px solid #4CAF50; } .data-label { font-weight: bold; color: #555; min-width: 180px; flex-shrink: 0; } .data-value { color: #333; font-family: 'Courier New', monospace; word-break: break-word; font-size: 18px; } .data-value.highlight { color: #4CAF50; font-weight: bold; font-size: 20px; } .formula-box { background: #e3f2fd; border-left: 4px solid #2196F3; padding: 15px 20px; border-radius: 4px; margin: 15px 0; font-family: 'Courier New', monospace; color: #1565c0; } .info-section { background: white; border: 1px solid #e0e0e0; border-radius: 8px; margin-top: 20px; overflow: hidden; box-shadow: 0 2px 4px rgba(0,0,0,0.05); } .info-section h3 { background: #f5f5f5; margin: 0; padding: 15px 20px; border-bottom: 1px solid #e0e0e0; color: #333; } .info-section h4 { color: #4CAF50; margin: 20px 0 10px 0; font-size: 16px; } .info-section p, .info-section ul { margin: 10px 0; line-height: 1.6; color: #555; } .info-section ul { padding-left: 20px; } .info-section li { margin: 8px 0; } .info-section code { background: #f5f5f5; padding: 2px 6px; border-radius: 3px; font-family: 'Courier New', monospace; color: #d32f2f; } .info-content { padding: 20px; } .help-text { margin-top: 15px; font-size: 14px; color: rgba(255,255,255,0.9); background: rgba(0,0,0,0.1); padding: 10px 15px; border-radius: 4px; } /* Responsive design */ @media (max-width: 768px) { .input-grid { grid-template-columns: 1fr; } .data-row { flex-direction: column; } .data-label { margin-bottom: 5px; min-width: auto; } }

TCP 最佳窗口大小计算器

根据您的链接速度和网络延迟计算最大化吞吐量所需的最佳 TCP 窗口大小。

提示:常用RTT值:本地网络(0.001s)、区域(0.01s)、跨国(0.05s)、国际(0.1s)

📊计算结果

TCP 窗口大小:
-
TCP 窗口大小:
-
公式:带宽 (bps) × RTT(秒) ÷ 8 = TCP 窗口(字节)

系统配置变更

每个操作系统都需要不同的配置更改来调整 TCP 接收窗口。

视窗XP

  • 打开regedit.exe
  • 浏览至HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
  • 您可以更改TcpWindowSizeGlobalMaxTcpWindowSize

请注意,可以在同一页面上调整传输性能的其他几个因素。请访问 Microsoft 了解更多详细信息。

Windows 7、8 和 10

  • 打开regedit.exe
  • 浏览至HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
  • 您可以更改GlobalMaxTcpWindowSize

请注意,可以在同一页面上调整传输性能的其他几个因素。请访问 Microsoft 了解更多详细信息。

Linux

由于 Linux 有多种变体,因此下面并未描述所有配置选项。不过,以下命令可能会对您有所帮助。首先查看当前配置的网络设置使用:

  • cat /proc/sys/net/ipv4/tcp_mem
  • cat /proc/sys/net/core/rmem_default
  • cat /proc/sys/net/core/rmem_max
  • cat /proc/sys/net/core/wmem_default
  • cat /proc/sys/net/core/wmem_max
  • cat /proc/sys/net/core/optmem_max

编辑配置:

  • sysctl -p /etc/sysctl.conf
  • sysctl -w net.core.rmem_max=8388608
    • 配置最大操作系统接收缓冲区大小
  • sysctl -w net.core.wmem_max=8388608
    • 配置最大操作系统发送缓冲区大小
  • sysctl -w net.core.rmem_default=65536
    • 配置默认操作系统接收缓冲区大小
  • sysctl -w net.core.wmem_default=65536
    • 配置默认操作系统发送缓冲区大小

请注意,这些值不一定是您要使用的最终设置。如果您有 Redhat 企业支持或 Ubuntu 企业支持,他们可以提供进一步帮助。

笔记:65,535 字节是历史上的最大值。然而,IETF RFC 1323 适应更大的尺寸。