Окна TCP: свободная полоса не помогает, если получатель закрыл окно

Запросить

Фотография конкретного исполнения не приложена.

Скорость TCP ограничивается не только физической линией. Получатель сообщает доступную ёмкость через receive window, а отправитель регулирует нагрузку через congestion window. Эти величины решают разные задачи и требуют разных способов диагностики.

RFC 5681 связывает допустимый объём неподтверждённых данных с ограничениями rwnd и cwnd. Большое окно одного типа не отменяет малое другого. Поэтому медленный поток при свободной сети может быть связан с потреблением данных приложением, а не только с congestion или ограничением порта.

В packet capture видно объявленное receive window с учётом согласованного scaling. Congestion window обычно требует сведений отправляющего stack или осторожного анализа его поведения. Приравнивать любое маленькое число window в заголовке к cwnd неверно. Также число байтов в очереди ОС не является автоматически размером любого из окон.

В приёмке сравнивают медленное чтение у получателя и ограничение сетевого пути как разные сценарии. Наблюдают окно, ACK и прикладную задержку. Увеличение скорости интерфейса не исправляет остановившийся reader. Итоговый диагноз должен назвать ограничивающую границу, а не описывать каждый медленный TCP-поток одной общей причиной «узкий канал».

Основание — Numbered IETF TCP references with RFC7413 explicitly Experimental; selected mechanisms and algorithms only, разделы RFC5681 Definitions of cwnd, rwnd and FlightSize; RFC9293 Window management. Сохранён текст публичной справочной публикации; конкретная реализация может поддерживать только часть возможностей. Основание — указанные номерные RFC TCP. Дополнения и алгоритмы не считаются включёнными автоматически; RFC 7413 о Fast Open имеет статус Experimental. Реальный TCP stack, socket options, трасса и настройки системы не проверялись; соединения и сетевые испытания не выполнялись.

Все разборы