Czy można uzyskać aktualny limit czasu retransmisji gniazda java?
Załóżmy, że po przeciwnych stronach planety są dwa hosty połączone za pomocą gniazda java (ping zwykle trwa 450 ms), które nieprzerwanie przesyła dane.
Rozumiem, że retransmisją zarządza stos tcp platformy bazowej (np. System operacyjny Windows).
Chcę, aby stos OS / TCP nadawcy rozpoczął retransmisję pakietów, dla których nie otrzymano potwierdzenia w ciągu powiedzmy 3 sekund
Jak to zrobić? Czy można zapytać, jakie są aktualnie skonfigurowane ustawienia licznika czasu retransmisji TCP dla danego gniazda?
1 odpowiedź
Nie jest możliwe dostosowanie limitu czasu retransmisji z poziomu Java. Rzeczywiście, myślę, że nie jest to możliwe z dowolnego programu przestrzeni użytkownika napisanego w jakimkolwiek języku programowania.
Limity czasu retransmisji są określane przez algorytm(y) sterowania przepływem TCP. Limity czasu są adaptacyjne; tj. algorytm dostosowuje je w górę iw dół zgodnie z warunkami sieci. W rzeczywistości w ciągu ostatnich 50 lat wypróbowano wiele wersji algorytmu sterowania przepływem TCP. Podsumowanie Kontroli przeciążenia TCP znajduje się w Wikipedii.
W zależności od systemu operacyjnego (i uprawnień administratora) można sprawić, aby system operacyjny używał różnych algorytmów sterowania przepływem. Oto kilka linków:
- Jak sprawdzić algorytm kontroli przeciążenia TCP w Ubuntu
- Kontrola przeciążenia TCP w systemie Windows
Ale najważniejsze jest to, że nie możesz (i nie powinieneś) dostrajać tego z aplikacji Java.
Podobne pytania
Nowe pytania
java
Java to język programowania wysokiego poziomu. Użyj tego tagu, jeśli masz problemy z używaniem lub zrozumieniem samego języka. Ten tag jest rzadko używany samodzielnie i jest najczęściej używany w połączeniu z [spring], [spring-boot], [jakarta-ee], [android], [javafx], [hadoop], [gradle] i [maven].