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,001 с), регіональний (0,01 с), міжнародний (0,05 с), міжнародний (0,1 с)

📊Результати розрахунку

Розмір вікна TCP:
-
Розмір вікна TCP:
-
формула:Пропускна здатність (біт/с) × RTT (секунди) ÷ 8 = вікно TCP (байти)

Зміни конфігурації системи

Кожна операційна система потребує різних змін у конфігурації для налаштування вікна отримання TCP.

Windows XP

  • ВІДЧИНЕНОregedit.exe
  • Перейдіть доHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
  • Ви можете змінитиTcpWindowSizeіGlobalMaxTcpWindowSize

Зауважте, що кілька інших факторів продуктивності передачі можна налаштувати на тій же сторінці. Відвідайте корпорацію Майкрософт, щоб отримати додаткові відомості.

Windows 7, 8 і 10

  • ВІДЧИНЕНОregedit.exe
  • Перейдіть доHKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
  • Ви можете змінитиGlobalMaxTcpWindowSize

Зауважте, що кілька інших факторів продуктивності передачі можна налаштувати на тій же сторінці. Відвідайте корпорацію Майкрософт, щоб отримати додаткові відомості.

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 передбачає більші розміри.