La pérdida de paquetes ocurre cuando uno o más paquetes de datos que viajan a través de una red informática no llegan a su destino. La pérdida de paquetes se debe a errores en la transmisión de datos, generalmente a través de redes inalámbricas , [1] [2] o a congestión de la red . [3] : 36 La pérdida de paquetes se mide como un porcentaje de paquetes perdidos con respecto a los paquetes enviados.
El Protocolo de Control de Transmisión (TCP) detecta la pérdida de paquetes y realiza retransmisiones para garantizar la fiabilidad de los mensajes . La pérdida de paquetes en una conexión TCP también se utiliza para evitar la congestión y, por lo tanto, produce una reducción intencional del rendimiento de la conexión.
En aplicaciones en tiempo real, como la transmisión multimedia o los juegos en línea , la pérdida de paquetes puede afectar la calidad de la experiencia del usuario (QoE).
El Protocolo de Internet (IP) está diseñado según el principio de extremo a extremo como un servicio de entrega de mejor esfuerzo , con la intención de mantener la lógica que deben implementar los enrutadores lo más simple posible. Si la red hiciera garantías de entrega confiables por sí sola, eso requeriría una infraestructura de almacenamiento y reenvío , donde cada enrutador dedica una cantidad significativa de espacio de almacenamiento a los paquetes mientras espera verificar que el siguiente nodo los recibió correctamente. Una red confiable no podría mantener sus garantías de entrega en caso de una falla del enrutador. La confiabilidad tampoco es necesaria para todas las aplicaciones. Por ejemplo, con la transmisión de medios en vivo , es más importante entregar paquetes recientes rápidamente que garantizar que los paquetes obsoletos se entreguen eventualmente. Una aplicación o un usuario también pueden decidir volver a intentar una operación que está tomando mucho tiempo, en cuyo caso se agregará otro conjunto de paquetes a la carga de entregar el conjunto original. Una red de este tipo también podría necesitar un protocolo de comando y control para la gestión de la congestión, lo que agrega aún más complejidad.
Para evitar todos estos problemas, el Protocolo de Internet permite que los enrutadores simplemente descarten paquetes si el enrutador o un segmento de red está demasiado ocupado para entregar los datos de manera oportuna. Esto no es ideal para una transmisión rápida y eficiente de datos, y no se espera que suceda en una red no congestionada. [4] La eliminación de paquetes actúa como una señal implícita de que la red está congestionada y puede hacer que los remitentes reduzcan la cantidad de ancho de banda consumido o intenten encontrar otra ruta. Por ejemplo, utilizando la pérdida de paquetes percibida como retroalimentación para descubrir la congestión, el Protocolo de Control de Transmisión (TCP) está diseñado para que la pérdida excesiva de paquetes haga que el remitente reduzca la velocidad y deje de inundar el punto de cuello de botella con datos. [3] : 282–283
Los paquetes también pueden perderse si la suma de comprobación del encabezado IPv4 o la secuencia de comprobación de la trama Ethernet indican que el paquete está dañado. La pérdida de paquetes también puede ser causada por un ataque de pérdida de paquetes .
Las redes inalámbricas son susceptibles a una serie de factores que pueden dañar o perder paquetes en tránsito, como interferencias de radiofrecuencia (RFI), [1] señales de radio que son demasiado débiles debido a la distancia o desvanecimiento por trayectos múltiples , hardware de red defectuoso o controladores de red defectuosos.
El Wi-Fi es inherentemente poco confiable e incluso cuando dos receptores Wi-Fi idénticos se colocan muy cerca uno del otro, no muestran patrones similares de pérdida de paquetes, como podría esperarse. [1]
Las redes celulares pueden experimentar pérdida de paquetes causada por "alta tasa de error de bits (BER), características inestables del canal y movilidad del usuario". [5] El comportamiento de limitación intencional de TCP impide que las redes inalámbricas funcionen cerca de sus tasas de transferencia potenciales teóricas porque el TCP no modificado trata todos los paquetes perdidos como si fueran causados por la congestión de la red y, por lo tanto, puede limitar las redes inalámbricas incluso cuando en realidad no están congestionadas. [5]
La congestión de la red es una causa de pérdida de paquetes que puede afectar a todo tipo de redes. Cuando el contenido llega durante un período prolongado a un enrutador o segmento de red determinado a una velocidad mayor que la que es posible enviar a través de él, no queda otra opción que descartar los paquetes. [3] : 36 Si un solo enrutador o enlace está restringiendo la capacidad de la ruta de viaje completa o de la red en general, se conoce como cuello de botella. En algunos casos, los paquetes se descartan intencionalmente mediante rutinas de enrutamiento, [6] o mediante técnicas de disuasión de red para fines de gestión operativa. [7]
La pérdida de paquetes reduce directamente el rendimiento de un determinado remitente, ya que algunos datos enviados nunca se reciben y no se pueden contabilizar como rendimiento. La pérdida de paquetes reduce indirectamente el rendimiento, ya que algunos protocolos de la capa de transporte interpretan la pérdida como una indicación de congestión y ajustan su velocidad de transmisión para evitar un colapso por congestión.
Cuando es necesaria una entrega confiable, la pérdida de paquetes aumenta la latencia debido al tiempo adicional necesario para la retransmisión. [a] Suponiendo que no hay retransmisión, los paquetes que experimentan los peores retrasos podrían descartarse preferentemente (dependiendo de la disciplina de cola utilizada), lo que da como resultado una latencia general más baja.
La pérdida de paquetes se puede medir como la tasa de pérdida de tramas, definida como el porcentaje de tramas que deberían haber sido reenviadas por una red pero no lo fueron. [8] : 4
La pérdida de paquetes está estrechamente relacionada con consideraciones de calidad del servicio . La cantidad de pérdida de paquetes que es aceptable depende del tipo de datos que se envían. Por ejemplo, para el tráfico de voz sobre IP , un comentarista consideró que "perder uno o dos paquetes de vez en cuando no afectará la calidad de la conversación. Las pérdidas entre el 5% y el 10% del flujo total de paquetes afectarán la calidad de manera significativa". [9] Otro describió una pérdida de paquetes inferior al 1% como "buena" para la transmisión de audio o video, y entre el 1% y el 2,5% como "aceptable". [10]
La pérdida de paquetes se detecta mediante protocolos confiables como TCP. Los protocolos confiables reaccionan a la pérdida de paquetes automáticamente, por lo que cuando una persona, como un administrador de red, necesita detectar y diagnosticar la pérdida de paquetes, generalmente utiliza información de estado de equipos de red o herramientas diseñadas específicamente para ese fin.
El protocolo de mensajes de control de Internet proporciona una función de eco , en la que se transmite un paquete especial que siempre produce una respuesta. Herramientas como ping , traceroute , MTR y PathPing utilizan este protocolo para proporcionar una representación visual de la ruta que siguen los paquetes y para medir la pérdida de paquetes en cada salto . [b]
Muchos enrutadores tienen páginas de estado o registros, donde el propietario puede encontrar la cantidad o el porcentaje de paquetes descartados durante un período particular.
Según el principio de extremo a extremo , el Protocolo de Internet deja la responsabilidad de la recuperación de paquetes mediante la retransmisión de los paquetes perdidos a los puntos finales (las computadoras que envían y reciben los datos). Estos son los que están en la mejor posición para decidir si la retransmisión es necesaria, ya que la aplicación que envía los datos debe saber si es mejor retransmitir un mensaje en su totalidad o en parte, si ya no es necesario enviar el mensaje y cómo controlar la cantidad de ancho de banda consumido para compensar cualquier congestión.
Los protocolos de transporte de red como TCP proporcionan a los puntos finales una forma sencilla de garantizar la entrega fiable de paquetes, de modo que las aplicaciones individuales no tengan que implementar la lógica para ello por sí mismas. En caso de pérdida de paquetes, el receptor solicita la retransmisión o el remitente reenvía automáticamente los segmentos que no hayan sido reconocidos. [3] : 242 Aunque TCP puede recuperarse de la pérdida de paquetes, la retransmisión de paquetes faltantes reduce el rendimiento de la conexión, ya que los receptores esperan retransmisiones y consumen ancho de banda adicional. En ciertas variantes de TCP, si se pierde un paquete transmitido, se reenviará junto con todos los paquetes que ya se habían enviado después.
Los protocolos como el Protocolo de datagramas de usuario (UDP) no permiten recuperar paquetes perdidos. Se espera que las aplicaciones que utilizan UDP implementen sus propios mecanismos para gestionar la pérdida de paquetes, si es necesario.
Existen muchas disciplinas de colas que se utilizan para determinar qué paquetes se deben descartar. La mayoría de los equipos de red básicos utilizan colas FIFO para los paquetes que esperan pasar por el cuello de botella y descartan el paquete si la cola está llena en el momento en que se recibe el paquete. Este tipo de descartado de paquetes se denomina " descarte de cola" . Otros mecanismos de cola llena incluyen la detección temprana aleatoria y la detección temprana aleatoria ponderada . Descartar paquetes no es deseable ya que el paquete se pierde o debe retransmitirse y esto puede afectar el rendimiento en tiempo real; sin embargo, aumentar el tamaño del búfer puede provocar una sobrecarga del búfer que tiene su propio impacto en la latencia y la fluctuación durante la congestión.
En los casos en los que la calidad del servicio limita la velocidad de una conexión, por ejemplo, al utilizar un algoritmo de contenedor con fugas , es posible que se descarten paquetes de forma intencionada para ralentizar servicios específicos y garantizar la disponibilidad de ancho de banda para otros servicios marcados con mayor importancia. Por este motivo, la pérdida de paquetes no es necesariamente una indicación de una mala fiabilidad de la conexión ni signos de un cuello de botella en el ancho de banda.
tanto, el rendimiento de un nodo a menudo se mide no solo en términos de demora, sino también en términos de probabilidad de pérdida de paquetes... un paquete perdido puede retransmitirse de extremo a extremo para garantizar que todos los datos se transfieran finalmente desde el origen al destino.