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), Cross-country (0,05s), International (0,1s)

📊Резултати от изчисленията

TCP размер на прозореца:
-
TCP размер на прозореца:
-
Формула:Широчина на честотната лента (bps) × RTT (секунди) ÷ 8 = TCP прозорец (байтове)

Промени в системната конфигурация

Всяка операционна система изисква различни промени в конфигурацията, за да коригира прозореца за получаване на TCP.

Windows XP

  • Отворетеregedit.exe
  • Прегледайте доHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
  • Можете да променитеTcpWindowSizeиGlobalMaxTcpWindowSize

Моля, имайте предвид, че няколко други фактора в ефективността на трансфера могат да бъдат коригирани на същата страница. Моля, посетете 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 приема по-големи размери.