• [^] # Re: Je comprends pas

    Posté par . En réponse au journal Le TCP keepalive m'a tué. Évalué à 3.

    Mais killer une session qui ne répond pas après 5 minutes (timeout par défaut, il me semble), c'est vraiment court.

    sysctl -a 2> /dev/null | grep keep
    net.ipv4.tcp_keepalive_time = 7200
    net.ipv4.tcp_keepalive_probes = 9
    net.ipv4.tcp_keepalive_intvl = 75
    
    

    2H comme spécifié par la RFC.

    Mais est-ce assez courant pour que ça mérite d'avoir un paramètre par défaut dans un soft comme ssh ?

    Oui. Des laptops qui freezent, j'en vois 4x par jour. Sans compter les autres problèmes.

    Et ça arrive avec quelle occurrence ? Est-ce que tous les protocoles réimplémentent des checksums au-dessus ?

    Fréquence aléatoire. Ca peut arriver très fréquemment quand tu as un switch qui déconne, une carte réseau defectueuse etc. Quand ca arrive ca peut donner 12 heures de coupure sur Amazon S3 à cause d'un bit flip dans un gossip protocol…

    Je pense que tu as deux problèmes. Tu considères que les cas d'erreurs sont suffisamment rare pour être ignorés, ne sont pas graves et que les utilisateurs préfèrent réparer les erreurs. Et d'autre part tu sembles supposer que les choix fait par TCP sont applicables aux couches du dessus. TCP n'offre que le sous ensemble commun nécéssaire à tout les protocoles de couche supérieur. Le keep-alive est vraiment un truc litigieux, qui est d'ailleurs dans une RFC annexe. Ca a été inclus car détecter les pannes est un besoin très courant mais le faire au niveau TCP est assez moisi.

    Ta vision est envisageable dans des environnements très particuliers. Pas pour la majorité des systèmes.