Qu'advient-il des connexions TCP lorsque je débranche le câble Ethernet?


42

Pour une connexion TCP, lorsque je retire le câble et que je me reconnecte après 30 à 40 secondes, il n’ya pas de problème de perte de paquets. Mais lorsque le délai de reconnexion est supérieur à quelques minutes, tous les paquets sont perdus. Je sais que cela fonctionne avec la minuterie de retransmission qui s'épuise, mais je veux savoir ce qui se passe exactement quand un câble réseau est débranché.


9
"ce qui se passe exactement" va être très difficile de répondre. De nos jours, le système d'exploitation peut faire des choses "intelligentes", comme détecter le retrait du câble. Suppression des itinéraires vers ce réseau à partir de la table de routage. Activer de nouveaux itinéraires via le sans fil, .... Tout cela fait obstacle à une explication universelle simple.
Hennes

5
Avez-vous cherché dans le seau pour vos paquets manquants?
Daniel R Hicks

4
Une chose qui peut se produire à coup sûr est que vos communications en cours sont interrompus au milieu comme
ereOn

Cela dépend du système d'exploitation et de sa configuration. Pour MS Windows, essayez de google windows mediasense.
Zaboj Campula

Réponses:


60

Par définition, sur un modèle en couches comme OSI ou TCP / IP, chaque couche fonctionne indépendamment des couches inférieures.

Lorsque vous retirez le câble, il s’agit d’une perturbation physique ( couche 1 ); ainsi, presque immédiatement, ethernet ( couche 2 ) détecte une perte de signal (si vous êtes sous Windows, vous verrez apparaître une fenêtre très redoutée indiquant que le réseau est déconnecté ).

IP ( couche 3 ) et TCP ( couche 4 ) ne le remarqueront pas, ils vont donc essayer de continuer à travailler.

TCP ne rompt pas une connexion TCP établie pendant un certain temps, car lorsque TCP envoie des données, il attend un ACK en réponse et, s'il n'arrive pas dans un certain délai, il retransmet les données.

TCP transmettra à nouveau les données, en les transmettant à IP, qui les transmettra à Ethernet, qui ne pourra pas les envoyer et les écartera simplement.

TCP attendra à nouveau et répétera ce processus jusqu'à ce qu'un délai expire lui permettant de déclarer que la connexion est terminée. TCP réinitialise le numéro de séquence du segment, supprime les informations tentant d’envoyer et libère la mémoire tampon et les ressources mémoire allouées pour cette connexion.

Branchez le câble avant que cela ne se produise et tout continuera. C’est ce qui rend TCP fiable et en même temps vulnérable aux attaques DDos.

Si le système d'exploitation a plusieurs interfaces (par exemple, Ethernet et Wi-Fi), il est possible que, lorsque l'Ethernet tombe en panne, il essaie via WiFi. Cela dépend de la configuration du routage, mais en termes généraux, " TCP ne le saura pas ".

La structure de base des attaques DDoS est la suivante: des milliers de clients ouvrant chacun une connexion TCP toutes les quelques secondes à un serveur, puis abandonnant la connexion. Chaque connexion TCP reste ouverte sur le serveur pendant une longue période (perte d’actifs précieux tels que ports TCP, mémoire allouée, bande passante, etc.) encrassant les ressources du serveur pour répondre aux attentes des utilisateurs légitimes.


7
C'est ce que dit le modèle, mais je pense que les systèmes d'exploitation réels détectent certaines défaillances et éliminent immédiatement les connexions. C'est juste une chose utile à faire.
usr

8
@usr Pourquoi serait-il utile de supprimer chaque connexion simplement parce que quelqu'un allume et éteint le commutateur Ethernet auquel mon PC est connecté?
un CVn

9
@usr Désactiver la carte réseau via les interfaces d'administration du système d'exploitation est une opération complètement différente par rapport au débranchement physique du câble ou à la rupture du lien de couche physique. S'il vous plaît ne confondez pas les deux.
un CVn

7
De plus, si vous n'envoyez pas de données TCP alors que le câble est déconnecté, il ne le remarquera jamais . C'est pourquoi vous devez continuer à envoyer des messages persistants - les applications qui n'écoutent que jamais ne sauront jamais si la connexion "meurt". Du côté positif, cela signifie également que si aucune des parties ne tente d’envoyer quoi que ce soit alors que le câble est débranché, la connexion fonctionnera très bien une fois le câble rebranché. Le protocole TCP est utilisé très différemment de la façon dont il a été conçu :) Rappelez-vous l'expérience TCP-over-Pigeon-mail :))
Luaan

11
@usr C'est un très mauvais choix d'implémentation de ne pas suivre les normes. Les connexions TCP peuvent survivre à des pannes temporaires du réseau. C'est conçu pour le faire. En fait, vous pouviez même redémarrer votre ordinateur tout en conservant une connexion TCP, mais cela n’était pas toujours pratique. Votre hypothèse selon laquelle tout le monde veut être déconnecté lorsqu'un câble est tiré est fausse et ne correspond pas à la conception des systèmes.
Brad
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.