¿Qué sucede con las conexiones TCP cuando quito el cable de Ethernet?

42

Para una conexión TCP, cuando quito el cable y me vuelvo a conectar después de 30-40 segundos, no hay problemas de pérdida de paquetes. Pero cuando el tiempo de reconexión es más de unos pocos minutos, todos los paquetes se pierden. Sé que funciona con el temporizador de retransmisión agotándose, pero quiero saber qué sucede exactamente cuando se desconecta un cable de red.

Entrada J
fuente
9
"lo que sucede exactamente" va a ser muy difícil de responder. En estos días, el sistema operativo puede hacer cosas "inteligentes", como detectar que el cable se ha eliminado. Descartar las rutas a esa red desde la tabla de enrutamiento. Activando nuevas rutas vía inalámbrica ... Todo esto se interpone en el camino de una simple explicación universal.
Hennes
55
¿Buscó en el cubo de bits sus paquetes faltantes?
Daniel R Hicks
44
Una cosa que puede ocurrir con certeza es que sus comunicaciones actuales se interrumpen en medio de tan
Ereon
Depende del sistema operativo y su configuración. Para MS Windows intente googlear windows mediasense.
Zaboj Campula

Respuestas:

60

Por definición, en un modelo en capas como OSI o TCP / IP, cada capa funciona de manera independiente y no es consciente de las capas inferiores.

Cuando quita el cable, se trata de una interrupción física ( capa 1 ), por lo que casi de inmediato Ethernet ( capa 2 ) detecta una pérdida de señal (si está en Windows verá la red de información emergente muy temida desconectada )

IP ( capa 3 ) y TCP ( capa 4 ) no lo notarán, por lo que intentarán seguir trabajando.

TCP no interrumpirá una conexión TCP establecida durante un período de tiempo porque cuando TCP envía datos, espera un ACK en respuesta y si no llega dentro de un período de tiempo, vuelve a transmitir los datos.

TCP retransmitirá los datos, los pasará a IP, quién los pasará a Ethernet, quién no podrá enviarlos y simplemente los descartará.

TCP estará esperando nuevamente y repitiendo este proceso hasta que ocurra un tiempo de espera que le permita declarar que la conexión ha terminado. TCP restablece el número de secuencia del segmento, descarta la información que intentaba enviar y libera los recursos de memoria intermedia y de memoria intermedia que se asignaron para esa conexión.

Enchufe el cable antes de que suceda y todo continuará. Esto es lo que hace que TCP sea confiable y al mismo tiempo vulnerable a los ataques DDos.

Si el sistema operativo tiene más de una interfaz (por ejemplo, ethernet y wi-fi), es posible que cuando el ethernet se caiga, intente a través de wifi. Depende de cómo esté configurado el enrutamiento, pero en términos generales " TCP no lo sabrá ".

La estructura básica de los ataques DDoS es: miles de clientes abren cada uno una conexión TCP cada pocos segundos a un servidor y luego abandonan la conexión. Cada conexión TCP permanece abierta en el servidor durante mucho tiempo (desperdiciando activos valiosos como puertos TCP, memoria asignada, ancho de banda, etc.) obstruyendo los recursos del servidor para atender a usuarios legítimos.

jcbermu
fuente
77
Eso es lo que dice el modelo, pero creo que los sistemas operativos reales detectan algunas fallas y eliminan las conexiones de inmediato. Eso es solo algo útil que hacer.
usr
8
@usr ¿Por qué sería útil eliminar todas las conexiones solo porque alguien apaga y enciende el conmutador Ethernet al que está conectada mi PC?
un CVn
9
@usr Deshabilitar la tarjeta de red a través de las interfaces administrativas del sistema operativo es una operación completamente diferente en comparación con desconectar físicamente el cable o romper el enlace de la capa física. Por favor no confunda los dos.
un CVn
77
Además, si en realidad no envía ningún dato TCP mientras el cable está desconectado, nunca lo notará. Es por eso que debe seguir enviando mensajes de mantenimiento: las aplicaciones que solo escuchan nunca sabrán si la conexión "se corta". En el lado positivo, también significa que si ninguno de los lados intentó enviar nada mientras el cable estaba desconectado, la conexión funcionará bien después de que el cable se vuelva a enchufar. TCP se usa de manera muy diferente de cómo se diseñó :) Recuerde el experimento TCP-over-Pigeon-mail :))
Luaan
11
@ usr Es una muy mala opción de implementación no seguir los estándares. Las conexiones TCP pueden sobrevivir a interrupciones temporales de la red. Está diseñado para hacerlo. De hecho, solía ser que incluso podría reiniciar su computadora y aún tener una conexión TCP, pero esto no siempre fue práctico. Su suposición de que todos quieren desconectarse cuando se tira de un cable es falsa, y no es cómo se diseñaron los sistemas.
Brad