Вдогонку, вчера засыпал уже
В модемах на пике совершенства использовался протокол V.42, у него тоже было небольшое окно и битовая маска с избирательной перепосылкой, он сидел ниже IP, потому потери в линии протокол TCP не видел. В протоколе сидел в т.ч. реордеринг, потому для TCP в случае проблем канал просто кратковременно замораживался. В этом смысле V.42 был умнее обычного TCP и использовал технологию, похожую на TCP 2018, но значительно раньше. Стоит отметить, что задержка на аналоговом аудиоканале в рамках города там была очень небольшая, значительно меньше, чем в типичных глобальных IP-сетях.
А для гео-спутников (из-за большой задержки) IP вообще не получается инкапсулировать в лоб. Потому там, условно говоря, все работает через две прокси: первая на земле, не далеко от отправляющего данные сервера, там полностью реализуется TCP, а затем по внутреннему протоколу данные доставляются через спутник в плату DVB-S по дата-каналу внутри DVB, с лютым FEC, огромными окнами и встроенной перепосылкой, с обратным тонким каналом через наземную связь. У клиента вторая прокся снова локально реализует TCP для совместимости с TCP-стеком операционки. В итоге TCP не сходит с ума из-за задержек - для него канал выглядит как прокся-тугодум с медленной реакцией, в которой вообще ничего не теряется, но пропускная способность которой зависит от погоды (в прямом смысле). В итоге в хорошую погоду DVB-S благодаря FEC может выдерживать десятки минут между разовыми потерями, и все работает замечательно. А в плохую погоду все работает паршиво (результирующая пропускная способность падает кратно и периодически стопорится), даже при небольших потерях (в %), но частых - из-за большой задержки, собственно.