2013-03-18 20 views
6

Programuję sterownik urządzenia linuxowego przez bardzo wolny interfejs, którego czas rundy ping może wynosić nawet kilka minut. Kiedy próbuję użyć protokołu TCP do nawiązania połączenia między dwoma węzłami, połączenie zawsze przekracza limit czasu.Zmień limit czasu TCP dla urządzenia sieciowego linux

Czy istnieje metoda ustawienia czasu retransmisji TCP lub czasu oczekiwania na uzgadnianie w sterowniku lub czy istnieją jakieś komendy do ustawienia? Dzięki

Odpowiedz

4

Czy próbowałeś znaleźć odpowiedź na to pytanie? Szybkie wyszukiwanie w Google dało mi this, która wydaje się bezpośrednio rozwiązać ten problem. Podsumowując, ustawienie net.ipv4.tcp_syn_retries określa maksymalny limit czasu dostępny dla połączeń TCP.

Jeśli ten dokument nie odpowiada na twoje pytanie, powinieneś wskazać, co wypróbowałeś i jak zachowanie różniło się od tego, czego się spodziewałeś.

+0

+1 - po prostu czysty :) – linski

+0

Dzięki. Twoja odpowiedź naprawdę pomaga. Ale czy mogę ustawić inny limit czasu dla różnych interfejsów? –

0
/proc/sys/net/ipv4/tcp_retries1 
/proc/sys/net/ipv4/tcp_retries2 

.

tcp_retries1 - INTEGER 


This value influences the time, after which TCP decides, that 
    something is wrong due to unacknowledged RTO retransmissions, 
    and reports this suspicion to the network layer. 
    See tcp_retries2 for more details. 

    RFC 1122 recommends at least 3 retransmissions, which is the 
    default. 


tcp_retries2 - INTEGER 

This value influences the timeout of an alive TCP connection, 
when RTO retransmissions remain unacknowledged. 
Given a value of N, a hypothetical TCP connection following 
exponential backoff with an initial RTO of TCP_RTO_MIN would 
retransmit N times before killing the connection at the (N+1)th RTO. 

The default value of 15 yields a hypothetical timeout of 924.6 
seconds and is a lower bound for the effective timeout. 
TCP will effectively time out at the first RTO which exceeds the 
hypothetical timeout. 

RFC 1122 recommends at least 100 seconds for the timeout, 
which corresponds to a value of at least 8.