Предположим, что данный TCP-фрагмент фрагментирован на две IP-дейтаграммы, и что первая дейтаграмма поступает на TCP-сервер, а вторая датаграмма никогда не приходит.
По прошествии определенного времени TCP-сервер отправляет сообщение поддержки активности и определяет, что клиент жив. Что же тогда TCP-сервер делает с этой первой дейтаграммой? Ожидает ли вторая дейтаграмма, или она отбрасывает первую дейтаграмму?
По истечении тайм-аута повторной сборки фрагмент удаляется; другой конец должен будет передать повторно.
Этот тайм-аут обычно настраивается. В Linux это 30 секунд по умолчанию и управляется через /proc/sys/net/ipv4/ipfrag_time
.
На этот вопрос нет однозначного ответа;
Если ты видишь этот В статье об адаптивной ретрансляции вы увидите, что TCP использует RTT как фактор при вычислении соответствующих задержек.
это это более подробная статья. По сути, не существует специального значения тайм-аута только для фрагментации.
это Однако статья Cisco указывает, что виртуальный межсетевой экран IOS XR имеет тайм-аут по умолчанию 10 секунд для фрагментов со своим собственным настраиваемым таймером. Я связываю это, чтобы сказать, что ОС и устройства будут вести себя по-разному, и если вы передаете соединение через такое устройство, например, это может негативно помешать вашему соединению.
Лучше всего соединить две машины одинаковой конфигурации с помощью кроссовера и начать тестирование оттуда, если вы хотите проверить эффекты задержки фрагментации.