web-dev-qa-db-fra.com

Modifier le délai TCP pour un périphérique réseau Linux

Je programme le pilote de périphérique Linux sur une interface très lente, dont le temps de ping peut durer plusieurs minutes. Lorsque j'essaie d'utiliser TCP pour établir une connexion entre deux nœuds, la connexion expire toujours.

Existe-t-il une méthode pour définir le délai de retransmission ou d'établissement de liaison TCP TCP plus longtemps dans le pilote, ou existe-t-il des commandes pour le définir? Merci

9
Yifan Sun

Avez-vous essayé de chercher une réponse à cette question? Une recherche rapide sur Google m'a donné this , ce qui semble résoudre directement ce problème. Le résumé est que le réglage du net.ipv4.tcp_syn_retries détermine le délai maximal disponible pour les connexions TCP.

Si ce document ne répond pas à votre question, vous devez indiquer ce que vous avez essayé et en quoi le comportement différait de ce que vous attendiez.

6
larsks
/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.
2
Satish