Як довго фрагментарні фрагменти TCP зберігаються на сервері TCP


10

Припустимо, що даний фрагмент TCP фрагментований на дві дейтаграми IP, і що перша дейтаграма надходить на сервер TCP, але друга дейтаграма ніколи не надходить.

Через певний проміжок часу сервер TCP надсилає спостереження і визначає, що клієнт живий. Що тоді сервер TCP робить з цією першою дейтаграмою? Чи чекає прибуття другої дейтаграми чи вона відкидає першу дейтаграму?

Відповіді:


8

Після закінчення часу закінчення часу збору фрагмента фрагмент скидається; інший кінець потрібно буде повторно передати.

Цей час очікування зазвичай налаштовується. У Linux це 30 секунд за замовчуванням, а керовано через /proc/sys/net/ipv4/ipfrag_time.


Чи тайм-аут для повторної збірки фрагмента відносно першого отриманого фрагмента, або скидання таймера для кожного нового фрагмента, що надходить?
Randomblue

2
Я думаю, що вам доведеться прочитати вихідний код, щоб остаточно відповісти на це.
Майкл Хемптон

2

На це питання немає остаточної відповіді;

Якщо ви побачите цю статтю про адаптивну ретрансляцію, ви побачите, що TCP використовує RTT як фактор розрахунку відповідних затримок.

Це більш детальна стаття. По суті, немає особливого значення тайм-ауту лише для фрагментації.

Ця стаття Cisco хоча вказує на те, що віртуальна брандмауер IOS XR має фрагмент затримки для фрагментів у 10 секунд із власним настроюваним таймером. Я пов'язую це з тим, щоб сказати, що ОС і пристрої поводяться по-різному, і якщо ви передаєте з'єднання, хоча такий приклад, як, наприклад, це може негативно заважати вам у зв’язку.

Найкраще було б з'єднати дві машини однакової конфігурації з перехрестом і почати тестування звідти, якщо ви хочете перевірити ефекти затримки фрагментації.


Дякую. Чи вважаєте ви, що час очікування фрагмента в статті Cisco обчислюється відносно першого отриманого фрагмента або останнього отриманого фрагмента?
Randomblue

Останній отриманий фрагмент має більше сенсу, ніж перший, але я не знаю, його на розсуд Cisco у цьому прикладі.
jwbensley
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.