Это объясняет, как работает механизм управления перегрузкой TCP: Что такое эта штука TCP Window? TCP Window — это количество данных, находящихся в ожидании подтверждения (еще не подтвержденных получателем), которые отправитель может отправить по конкретному соединению, прежде чем получит подтверждение от получателя о том, что он получил часть из них. Например, если пара хостов общается по TCP-соединению с размером TCP Window в 64 КБ (килобайта), отправитель может отправить только 64 КБ данных, а затем должен остановиться и ждать подтверждения от получателя о том, что часть или все данные были получены. Если получатель подтверждает, что все данные получены, отправитель может отправить еще 64 КБ. Если отправитель получает подтверждение от получателя о том, что получен первый 32 КБ (что может произойти, если вторые 32 КБ все еще находятся в пути, или если вторые 32 КБ были потеряны), тогда отправитель может отправить только еще 32 КБ, так как он не может иметь больше 64 КБ неподтвержденных данных в ожидании (вторые 32 КБ данных плюс третьи).
Зачем нужен TCP Window? Основная причина для использования Window — управление перегрузкой. Вся сетевая связь, которая состоит из хостов на обоих концах, маршрутизаторов между ними и самих соединений (будь то оптоволокно, медь, спутник или что-то еще), будет иметь "узкое место" где-то, которое может обрабатывать данные только с определенной скоростью. Если узким местом не является скорость передачи данных передающего хоста, то слишком быстрая передача данных приведет к ее превышению, что приведет к потере данных. TCP Window снижает скорость передачи данных до уровня, при котором не возникает перегрузок и потери данных.