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 logran llegar a su destino. La pérdida de paquetes es causada por errores en la transmisión de datos, generalmente a través de redes inalámbricas , [1] [2] o por 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 una mensajería confiable . La pérdida de paquetes en una conexión TCP también se utiliza para evitar la congestión y, por tanto, produce una reducción intencionada del rendimiento de la conexión.
En aplicaciones en tiempo real, como transmisión de medios o juegos en línea , la pérdida de paquetes puede afectar la calidad de la experiencia (QoE) del usuario .
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 los enrutadores deben implementar, lo más simple posible. Si la red ofreciera 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 haya recibido correctamente. Una red confiable no podría mantener sus garantías de entrega en caso de 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 los paquetes recientes rápidamente que garantizar que los paquetes obsoletos finalmente se entreguen. Una aplicación o un usuario también puede decidir volver a intentar una operación que lleva 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 añade 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 la red está demasiado ocupado para entregar los datos de manera oportuna. Esto no es ideal para una transmisión de datos rápida y eficiente, y no se espera que suceda en una red no congestionada. [4] La caída 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, al utilizar 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 una pérdida excesiva de paquetes haga que el remitente desacelere y deje de inundar el punto de cuello de botella con datos. [3] : 282–283
Los paquetes también se pueden descartar si la suma de verificación del encabezado IPv4 o la secuencia de verificación de la trama Ethernet indican que el paquete se ha dañado. La pérdida de paquetes también puede deberse a un ataque de caída 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 al desvanecimiento de múltiples rutas , 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 exhiben patrones similares de pérdida de paquetes, como cabría esperar. [1]
Las redes celulares pueden experimentar pérdida de paquetes causada por "alta tasa de error de bits (BER), características de canal inestables 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 TCP no modificado trata todos los paquetes descartados 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 de la que es posible enviar, no hay otra opción que descartar paquetes. [3] : 36 Si un solo enrutador o enlace limita la capacidad de la ruta de viaje completa o del viaje de la red en general, se le 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 con fines de gestión operativa. [7]
La pérdida de paquetes reduce directamente el rendimiento de un remitente determinado, ya que algunos datos enviados nunca se reciben y no pueden contarse 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 el colapso congestivo.
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 haya retransmisión, los paquetes que experimentan los peores retrasos podrían descartarse preferentemente (dependiendo de la disciplina de cola utilizada), lo que resulta en una menor latencia general.
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 asociada con consideraciones de calidad del servicio . La cantidad de pérdida de paquetes aceptable depende del tipo de datos que se envían. Por ejemplo, para el tráfico de voz sobre IP , un comentarista estimó que "la pérdida de 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 la conversación". calidad significativamente." [9] Otro describió una pérdida de paquetes de menos del 1% como "buena" para la transmisión de audio o vídeo, y entre un 1% y un 2,5% como "aceptable". [10]
La pérdida de paquetes se detecta mediante protocolos confiables como TCP. Los protocolos confiables reaccionan automáticamente a la pérdida de paquetes, 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 especialmente diseñadas.
El Protocolo de mensajes de control de Internet proporciona una funcionalidad de eco , donde 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 o registros de estado, donde el propietario puede encontrar la cantidad o el porcentaje de paquetes descartados durante un período determinado.
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 paquetes descartados a los puntos finales: las computadoras que envían y reciben los datos. Están en la mejor posición para decidir si la retransmisión es necesaria porque 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 manera fácil de garantizar la entrega confiable de paquetes, de modo que las aplicaciones individuales no necesiten implementar la lógica para esto por sí mismas. En caso de pérdida de paquetes, el receptor solicita la retransmisión o el remitente reenvía automáticamente cualquier segmento que no haya sido reconocido. [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 a medida que los receptores esperan las retransmisiones y consumen ancho de banda adicional. En ciertas variantes de TCP, si un paquete transmitido se pierde, se reenviará junto con todos los paquetes que ya se enviaron después.
Los protocolos como el Protocolo de datagramas de usuario (UDP) no proporcionan recuperación de paquetes perdidos. Se espera que las aplicaciones que utilizan UDP implementen sus propios mecanismos para manejar la pérdida de paquetes, si es necesario.
Hay muchas disciplinas de cola que se utilizan para determinar qué paquetes descartar. La mayoría de los equipos de red básicos utilizarán colas FIFO para los paquetes que esperan pasar por el cuello de botella y descartarán el paquete si la cola está llena en el momento en que se recibe el paquete. Este tipo de caída de paquetes se llama caída de cola . Otros mecanismos de cola completa 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 un aumento del tamaño del búfer, lo 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, utilizando un algoritmo de depósito con fugas , los paquetes pueden descartarse intencionalmente para ralentizar servicios específicos y garantizar el ancho de banda disponible para otros servicios marcados con mayor importancia. Por esta razón, la pérdida de paquetes no es necesariamente una indicación de una mala confiabilidad de la conexión o una señal de un cuello de botella en el ancho de banda.
La fracción de paquetes perdidos aumenta a medida que aumenta la intensidad del tráfico. Por lo tanto, el rendimiento en un nodo a menudo se mide no sólo en términos de retraso sino también en términos de la probabilidad de pérdida de paquetes... un paquete perdido puede retransmitirse de un extremo a otro para garantizar que todos los datos finalmente se transfieran. desde el origen hasta el destino.