В сетевом стеке есть есть буферы на отправку и прием.
Вы пакет отправили, это не значит что вы ждете подтверждение доставки с другого конца.
Вы отправляете следующий и следующий пакеты.
Система копит "такие необходимости подтверждений", и когда от другой стороны они приходят, система удаляет "эту необходимость" из памяти и отправляет дальше.
Т.о. осуществеляется поточная запись в порт, и также поточное подтвержение доставки.
Когда что-то пошло не так, подтвержения перестают ходить. Данные которые вы хотите отправить оседают в буфере отправки. В это время система ждет подтвержения от другой стороны.
Когда вы включаете кабель, буфер отправки - переполнен.
+ система не может отправить другие пакеты, потому что нет подтвержения доставки о предыдущих.
Т.о. если буфер отправки переполнен - то ваши данные теряются.
Система никогда не знает, когда вы включили кабель. Она просто может пославть пакет аля пинг, через некоторое время. В линуксе это время в районе 2х часов по-умолчанию. Т.о. неактивный сокет может жить 2 часа и ничего с ним не случится, вы в него будете писать, а происходить ничего не будет.
P.S. Это не точное моё описание, чисто "описание по понятиям" \m/