Jak długo fragmentowane fragmenty TCP są przechowywane na serwerze TCP


10

Załóżmy, że dany fragment TCP jest podzielony na dwa datagramy IP i że pierwszy datagram dociera do serwera TCP, ale drugi datagram nigdy nie dociera.

Po pewnym czasie serwer TCP wysyła komunikat podtrzymujący i określa, że ​​klient żyje. Co serwer TCP robi z tym pierwszym datagramem? Czy czeka na przybycie drugiego datagramu, czy odrzuca pierwszy datagram?

Odpowiedzi:


8

Po upływie limitu czasu ponownego składania fragmentu fragment jest upuszczany; drugi koniec będzie musiał ponownie przesłać.

Ten limit czasu można ogólnie skonfigurować. W systemie Linux domyślnie jest to 30 sekund i jest kontrolowany przez /proc/sys/net/ipv4/ipfrag_time.


Czy upłynął limit czasu ponownego składania fragmentu w odniesieniu do pierwszego odebranego fragmentu, czy też zegar jest resetowany dla każdego nowego przybywającego fragmentu?
Randomblue,

2
Myślę, że będziesz musiał przeczytać kod źródłowy, aby ostatecznie na to odpowiedzieć.
Michael Hampton

2

Nie ma ostatecznej odpowiedzi na to pytanie;

Jeśli zobaczysz ten artykuł na temat retransmisji adaptacyjnej, zobaczysz, że TCP używa RTT jako czynnika w obliczaniu odpowiednich opóźnień.

To jest bardziej szczegółowy artykuł. Zasadniczo nie ma specjalnej wartości limitu czasu tylko dla fragmentacji.

Ten artykuł Cisco wskazuje jednak, że wirtualna zapora IOS XR ma domyślny limit 10 sekund na fragmenty, z własnym konfigurowalnym zegarem. Łączę to, aby powiedzieć, że systemy operacyjne i urządzenia będą zachowywać się inaczej, a jeśli przekazujesz połączenie przez takie urządzenie, na przykład, może to negatywnie zakłócać twoje połączenie.

Najlepiej byłoby połączyć dwie maszyny o tej samej konfiguracji ze zwrotnicą i rozpocząć stamtąd testowanie, jeśli chcesz przetestować efekty opóźnienia fragmentacji.


Dzięki. Czy uważasz, że limit czasu fragmentu w artykule Cisco jest obliczany w odniesieniu do pierwszego otrzymanego fragmentu lub ostatniego otrzymanego fragmentu?
Randomblue

Ostatni otrzymany fragment ma większy sens niż pierwszy, ale nie wiem, według własnego uznania w tym przykładzie Cisco.
jwbensley
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.