Критическим является размер окна. Возможно, в вашем случае он
получается слишком большой и слишком много ACK нужно ожидать
клиенту в очереди на подтверждение, что может что-то переполнить. Я
обратил внимание, что в первом файле, на момент сбоя, получается
ACK к пакету, отправленному секунду надзад. А за секунду сколько
уже в очередь на подтверждение ушло? P.S. Может, я запутался. И задержка в одну секунду была между повтором предыдущего пакета.
Ага! Вот что может быть: по какой-то причине, ваш клиент, не приняв подтверждение (не обработав ACK), не освобождает буфер передачи и хранит неподтверждённый пакет, занимая ОЗУ. Когда таких пакетов становится несколько, возникает сбой. Покопайте в эту сторону.
Сделайте дёргание выходом МК на каждый обработанный ACK и осциллографом посмотрите, что происходит. Так же добавьте ногодрыг на каждый переданный пакет и на каждый повтор передачи. Картина прояснится.