Теоретически нет предела для данных с TCP, НО, поскольку мы ограничены физическими ресурсами (т. Е. Памятью), разработчики, такие как Microsoft Winsock, используют нечто, называемое размером окна tcp.
Это означает, что когда вы отправляете что-то, например, с помощью функции send () Winsock (и не устанавливаете какие-либо параметры для обработчика сокета), данные сначала будут скопированы во временный буфер сокета. Только когда принимающая сторона подтвердит, что он получил эти данные, Winsock снова будет использовать эту память.
Итак, вы можете заполнить этот буфер, отправляя быстрее, чем он освобождается, а затем - ошибка!