Пока данные не будут записаны в буфер отправки на стороне отправителя.
Таким образом, если буфер заполнен, он будет блокироваться.
Буфер отправки может быть заполнен, если он еще не передал данные,из-за проблем с сетью или из-за того, что приемный буфер заполнен на стороне получателя.
Можно провести эксперимент: создать отправителя и получателя, установить для буфера отправки сокета отправителя что-то маленькое, а для буфера приема получателя - что-то маленькоек.
Начать отправку, принять соединение на стороне получателя, но не получать.Сокет будет заблокирован, когда число отправленных байтов будет около SenderSendBuffer + ReceiverReceiveBuffer.