[gull] Coupure TCP-IP Ack et M$-Win

Leopoldo Ghielmetti Leopoldo.Ghielmetti at a3.epfl.ch
Mon Sep 13 17:07:02 CEST 2004


On Mon, 2004-09-13 at 15:58, Christian Kaenzig wrote:
> On Monday 13 September 2004 12:22, Félix Hauri wrote:
> > On Mon, Sep 13, 2004 at 11:44:43AM +0200, Magnus wrote:
> > > je ne pense pas que ce soit lié à leur implémentation de
> > > TCP/IP. En fait, lors de la déconnexion, M$ "tue"
> > > l'interface. Linux ne le fait pas nativemement; si tu
> > > installes un prog du type de ifplugd avec un timeout de 2
> > > sec, tu verras le même comportement que M$.
> > > M$ effectue l'équivalent de # ifconfig <interface> down.
> >
> > timeout !?
> > Ce n'est pas très ``TCP''!?
> 
> TCP a un timeout de réception d'un ACK pour un paquet. Après ça, il considère 
> que le paquet est perdu et le réémet. Sauf erreur il a aussi un nombre 
> d'essais avant de signaler une erreur à l'application.
> 
> Je ne suis pas du tout expert, mais je pense que ce timeout et nombre d'essais 
> max peut changer en fonction de l'implémentation (ou du paramétrage ?) de 
> TCP.
> 
> Il serait alors normal que si aucune donnée n'est transmise, la coupure ne 
> soit pas détectée (pas d'erreur de transmission). Et peut-être que Linux n'a 
> ici pas de nombre d'essais maximum (donc jamais d'erreur signalée)...

Il y a un paramètre de timeout qui peut être spécifié pour le TCP (au
niveau du système) et qui permet de donner le signalement de perte de
connexion. Normalement il est défini autour de 2h.
Je ne me rappelle plus ou j'avais lu ça, en 2000 j'avais du travailler
sur des sockets et j'avais découvert ce paramètre. Et je me rappelle
aussi qu'il était dit que c'était un paramètre global au système et que
le changer affectait toutes les applications.
Ceci dit, il s'agissait de Solaris 2.6, mais je pense que sous Linux ça
doit être la même chose.

Et l'expérience est très simple à faire. Il suffit d'ouvrir un telnet et
d'enlevèr le câble. Si on ne touche à rien, après 2h (à peu près) la
connexion tombe toute seule. Si on essaye d'utiliser la connexion, elle
tombe plus vite car le timeout du ACK TCP intérvient bien avant.

ciao, Leo

> > > Lors de la reconnexion, il recrée l'interface complètement
> > > (si DHCP, il refait la requête, il me semble.)
> >
> > Dans tous les cas, je ne pense pas que cela aille si loin,
> > car si je tire le câble dix secondes mais que je ne tape
> > rien pendant ces dix secondes, puis que je rebranche le
> > câble AVANT de taper qqch, alors tout va bien.
> >
> > Il me semble que si l'interface IP était killé, alors telnet
> > le serait immédiatement aussi...
> 
> Ca dépend de la gestion. Si les couches réseau sont bien séparées, un arrêt 
> momentané du réseau ne devrait pas déranger tcp/ip. Une fois reconnecté, avec 
> la même IP, les paquets avec le même tuple (ip et port des deux bouts plus le 
> protocole) seront transmits au même socket (s'il existe toujours) et TCP n'y 
> aura vu que du feu.
> 
> Christian
> _______________________________________________
> gull mailing list
> gull at lists.alphanet.ch
> http://lists.alphanet.ch/mailman/listinfo/gull
> 
> 




More information about the gull mailing list