El retroceso exponencial es un algoritmo que utiliza la retroalimentación para disminuir multiplicativamente la velocidad de un proceso, con el fin de encontrar gradualmente una velocidad aceptable. Estos algoritmos se emplean en una amplia gama de sistemas y procesos, siendo especialmente notables las redes inalámbricas y las redes informáticas .
Algoritmo de retroceso exponencial
Un algoritmo de retroceso exponencial es un sistema de control de bucle cerrado que reduce la velocidad de un proceso controlado en respuesta a eventos adversos. Por ejemplo, si una aplicación móvil no logra conectarse a su servidor, podría intentarlo de nuevo 1 segundo después; si vuelve a fallar, 2 segundos después, luego 4, etc. En cada caso, la pausa se multiplica por una cantidad fija (en este caso, 2). El evento adverso es la imposibilidad de conectarse al servidor. Otros ejemplos de eventos adversos incluyen colisiones de tráfico de red , pérdida de paquetes , una respuesta de error de un servicio o una solicitud explícita para reducir la velocidad (es decir, aplicar un retroceso ).
La reducción de la tasa puede modelarse como una función exponencial :
o
Aquí, t es el retardo aplicado entre acciones, b es el factor multiplicativo o base , y c es el número de eventos adversos observados. Alternativamente, f es la frecuencia (o tasa) del proceso (es decir, el número de acciones por unidad de tiempo). El valor de c se incrementa cada vez que se observa un evento adverso, lo que produce un aumento exponencial del retardo y, por lo tanto, una tasa inversamente proporcional. Un algoritmo de retroceso exponencial donde b = 2 se denomina algoritmo de retroceso exponencial binario .
Cuando la tasa se ha reducido en respuesta a un evento adverso, generalmente no permanece en ese nivel reducido indefinidamente. Si no se observan eventos adversos durante un período de tiempo, a menudo denominado tiempo de recuperación o período de enfriamiento , la tasa puede volver a aumentarse. El período de tiempo que debe transcurrir antes de intentar aumentar la tasa nuevamente puede, a su vez, estar determinado por un algoritmo de retroceso exponencial. Por lo general, la recuperación de la tasa ocurre más lentamente que la reducción de la tasa debido al retroceso y a menudo requiere un ajuste cuidadoso para evitar la oscilación de la tasa. [ 1 ] El comportamiento exacto de recuperación depende de la implementación y puede estar influenciado por diversos factores ambientales.
El mecanismo mediante el cual se logra la reducción de la tasa en un sistema puede ser más complejo que un simple retardo. En algunos casos, el valor t puede referirse a un límite superior del retardo, en lugar de a un valor específico. El término " retroceso exponencial" alude a la característica de crecimiento exponencial del retroceso, en lugar de a una relación numérica exacta entre el número de eventos adversos y los tiempos de retardo.
limitación de velocidad
El retroceso exponencial se utiliza comúnmente como parte de los mecanismos de limitación de velocidad en sistemas informáticos, como los servicios web , para garantizar una distribución equitativa del acceso a los recursos y prevenir la congestión de la red . Cada vez que un servicio informa a un cliente que está enviando solicitudes con demasiada frecuencia, el cliente reduce su tasa en un factor predeterminado hasta que esta alcanza un equilibrio aceptable. El servicio puede aplicar la limitación de velocidad negándose a responder a las solicitudes que el cliente envía con demasiada frecuencia, de modo que los clientes que se comportan de forma indebida no puedan exceder los recursos asignados.
Una ventaja de utilizar un algoritmo de retroceso exponencial frente a un límite de velocidad fijo es que los límites de velocidad mediante retroceso exponencial se pueden alcanzar dinámicamente sin necesidad de proporcionar información previa al cliente. En caso de que los recursos se vean inesperadamente limitados, por ejemplo, debido a una carga elevada o una interrupción del servicio, las solicitudes de retroceso y las respuestas de error del servicio pueden reducir automáticamente la tasa de solicitudes de los clientes. Esto ayuda a mantener cierto nivel de disponibilidad en lugar de sobrecargar el servicio. Además, se puede priorizar la calidad del servicio para ciertos clientes en función de su importancia individual, por ejemplo, reduciendo el retroceso para las llamadas de emergencia en una red telefónica durante períodos de alta carga.
En una versión simple del algoritmo, los mensajes se retrasan por un tiempo predeterminado (no aleatorio). Por ejemplo, en el protocolo SIP sobre transporte no confiable (como UDP ), el cliente retransmite las solicitudes en un intervalo que comienza en T1 segundos (generalmente500 ms , que es la estimación del tiempo de ida y vuelta ) y se duplica después de cada retransmisión hasta que alcanza T2 segundos (que por defecto es4 s ). Esto da como resultado intervalos de retransmisión de500 ms ,1 s ,2 s ,4 s ,4 segundos entonces4 s . [ 2 ]
Prevención de colisiones
Los algoritmos de retroceso exponencial pueden utilizarse para evitar colisiones en la red. En una red punto a multipunto o multiplexada por división de tiempo estadística , varios emisores se comunican a través de un único canal compartido. Si dos emisores intentan transmitir un mensaje simultáneamente o se superponen , se produce una colisión y los mensajes se dañan o se pierden. En ese caso, cada emisor puede retroceder antes de intentar retransmitir el mismo mensaje.
Un algoritmo de retroceso exponencial determinista no es adecuado para este caso de uso, ya que cada emisor retrocedería durante el mismo período de tiempo, lo que los llevaría a retransmitir simultáneamente y causar otra colisión. En cambio, para evitar colisiones, el tiempo entre retransmisiones se aleatoriza y el algoritmo de retroceso exponencial establece el rango de valores de retardo posibles. El retardo de tiempo generalmente se mide en ranuras, que son períodos de tiempo de duración fija en la red. En un algoritmo de retroceso exponencial binario (es decir, uno donde ), después de c colisiones, cada retransmisión se retrasa por un número aleatorio de tiempos de ranura entre 0 y . Después de la primera colisión, cada emisor esperará 0 o 1 tiempos de ranura. Después de la segunda colisión, los emisores esperarán entre 0 y 3 tiempos de ranura ( inclusive ). Después de la tercera colisión, los emisores esperarán entre 0 y 7 tiempos de ranura (inclusive), y así sucesivamente. A medida que aumenta el número de intentos de retransmisión, el número de posibilidades de retardo aumenta exponencialmente . Esto disminuye la probabilidad de una colisión, pero aumenta la latencia promedio.
El retroceso exponencial se utiliza durante la retransmisión de tramas en redes de acceso múltiple con detección de portadora y prevención de colisiones (CSMA/CA) y de acceso múltiple con detección de portadora y detección de colisiones (CSMA/CD), donde este algoritmo forma parte del método de acceso al canal utilizado para enviar datos en dichas redes. En redes Ethernet , el algoritmo se utiliza comúnmente para programar retransmisiones después de colisiones. La retransmisión se retrasa un tiempo determinado a partir del tiempo de ranura (por ejemplo, el tiempo que se tarda en enviar 512 bits; es decir, 512 tiempos de bit ) y el número de intentos de retransmisión.
Ejemplo
Este ejemplo proviene del protocolo Ethernet , [ 3 ] donde un host emisor puede saber cuándo se ha producido una colisión (es decir, otro host ha intentado transmitir) cuando está enviando una trama. Si ambos hosts intentaran retransmitir tan pronto como se produjera una colisión, se produciría otra colisión , y el patrón continuaría indefinidamente. Los hosts deben elegir un valor aleatorio dentro de un rango aceptable para garantizar que esta situación no ocurra. Por lo tanto, se utiliza un algoritmo de retroceso exponencial. El valor de 51,2 μs se utiliza como ejemplo aquí porque es el tiempo de ranura para unaLínea Ethernet de 10 Mbit/s . Sin embargo,En la práctica, 51,2 μs podría sustituirse por cualquier valor positivo.
- Cuando se produzca la primera colisión, envíe una señal de interferencia para impedir que se envíen más datos.
- Reenviar un fotograma después de 0 segundos o51,2 μs , elegido al azar.
- Si eso falla, vuelva a enviar el marco después de0 s ,51,2 μs ,102,4 μs o153,6 μs .
- Si aún así falla, vuelva a enviar el fotograma después de k ·51,2 μs , donde k es un entero aleatorio entre 0 y 2 3 − 1 .
- Para fallos adicionales, después del c -ésimo intento fallido, vuelva a enviar el marco después de k ·51,2 μs , donde k es un número entero aleatorio entre 0 y 2c − 1 .
Historia y teoría
En un artículo fundamental publicado en AFIPS 1970, [ 4 ] Norman Abramson presentó la idea de que múltiples usuarios, en diferentes islas, compartieran un único canal de radio (es decir, una única frecuencia) para acceder a la computadora principal de la Universidad de Hawái sin ninguna sincronización horaria. Las colisiones de paquetes en el receptor de la computadora principal son tratadas por los emisores después de un tiempo de espera como errores detectados. Cada emisor que no reciba una confirmación positiva de la computadora principal retransmitirá su paquete perdido. Abramson supuso que la secuencia de paquetes transmitidos en el canal compartido es un proceso de Poisson a una tasa G , que es la suma de la tasa S de llegadas de nuevos paquetes a los emisores y la tasa de paquetes retransmitidos en el canal. Suponiendo un estado estacionario, demostró que la tasa de rendimiento del canal es con un valor máximo de 1/(2 e ) = 0,184 en teoría.
Larry Roberts consideró un canal ALOHA con ranuras de tiempo , donde cada ranura era lo suficientemente larga para el tiempo de transmisión de un paquete. (Un canal satelital que utiliza el protocolo TDMA tiene ranuras de tiempo). Utilizando el mismo proceso de Poisson y las mismas suposiciones de estado estacionario que Abramson, Larry Roberts demostró que la tasa de rendimiento máxima es 1/ e = 0,368 en teoría. [ 5 ] Roberts fue el director del programa del proyecto de investigación ARPANET . Inspirado por la idea del canal ALOHA con ranuras de tiempo, Roberts inició un nuevo proyecto del Sistema de Satélites ARPANET (ASS) para incluir enlaces satelitales en ARPANET.
Los resultados de simulación de Abramson, sus colegas y otros mostraron que un canal ALOHA, ranurado o no, es inestable y a veces entraba en colapso por congestión . El tiempo hasta el colapso por congestión dependía de la tasa de llegada de nuevos paquetes, así como de otros factores desconocidos. En 1971, Larry Roberts pidió al profesor Leonard Kleinrock y a su estudiante de doctorado, Simon Lam , de la UCLA, que se unieran al proyecto del Sistema de Satélites de ARPANET . Simon Lam trabajaría en la estabilidad, la evaluación del rendimiento y el control adaptativo de ALOHA ranurado para su investigación de tesis doctoral. El primer artículo que coescribió con Kleinrock fue la Nota 12 del Sistema de Satélites de ARPANET (ASS), distribuida al grupo ASS en agosto de 1972. [ 6 ] En este artículo, se utilizó una ranura elegida aleatoriamente en un intervalo de K ranuras para la retransmisión. Un nuevo resultado del modelo es que aumentar K aumenta el rendimiento del canal, que converge a 1/ e cuando K aumenta al infinito. Este modelo mantenía los supuestos de llegadas de Poisson y estado estacionario, y no estaba diseñado para comprender el comportamiento estadístico ni el colapso por congestión.
Estabilidad y retroceso adaptativo
Para comprender la estabilidad, Lam creó un modelo de cadena de Markov de tiempo discreto para analizar el comportamiento estadístico de ALOHA ranurado en el capítulo 5 de su disertación. [ 7 ] El modelo tiene tres parámetros: N , s y p . N es el número total de usuarios. En cualquier momento, cada usuario puede estar inactivo o bloqueado. Cada usuario tiene como máximo un paquete para transmitir en la siguiente ranura de tiempo. Un usuario inactivo genera un nuevo paquete con probabilidad s y lo transmite inmediatamente en la siguiente ranura de tiempo. Un usuario bloqueado transmite su paquete pendiente con probabilidad p , donde 1/ p = ( K +1)/2 para mantener el intervalo de retransmisión promedio igual. Los resultados de rendimiento-retardo de los dos métodos de retransmisión se compararon mediante simulaciones exhaustivas y se encontró que eran esencialmente los mismos. [ 8 ]
El modelo de Lam proporciona respuestas matemáticamente rigurosas a las cuestiones de estabilidad de ALOHA ranurado, así como un algoritmo eficiente para calcular el rendimiento de retardo-transmisión para cualquier sistema estable. Hay tres resultados clave, que se muestran a continuación, del modelo de cadena de Markov de Lam en el Capítulo 5 de su tesis doctoral (publicada también conjuntamente con el profesor Len Kleinrock en IEEE Transactions on Communications ). [ 9 ] )
- El modelo ALOHA ranurado con llegadas de Poisson (es decir, N infinito ) es inherentemente inestable, ya que no existe una distribución de probabilidad estacionaria. (Alcanzar el estado estacionario fue una suposición clave utilizada en los modelos de Abramson y Roberts).
- Para ALOHA ranurado con un N finito y un K finito , el modelo de cadena de Markov se puede utilizar para determinar si el sistema es estable o inestable para una tasa de entrada dada ( N × s ) y, si es estable, calcular su retardo promedio de paquete y tasa de rendimiento del canal.
- Aumentar K incrementa el número máximo de usuarios que puede admitir un canal ALOHA ranurado estable. [ 10 ]
Corolario
Para un valor finito de ( N × s ), un canal inestable para el valor actual de K puede estabilizarse aumentando K a un valor suficientemente grande, que se denominará su K ( N , s ). [ 11 ]
Control heurístico para retroceso adaptativo
Lam utilizó la teoría de decisión de Markov y desarrolló políticas de control óptimas para ALOHA ranurado, pero estas políticas requieren que todos los usuarios bloqueados conozcan el estado actual (número de usuarios bloqueados) de la cadena de Markov. En 1973, Lam decidió que, en lugar de utilizar un protocolo complejo para que los usuarios estimaran el estado del sistema, crearía un algoritmo simple para que cada usuario utilizara su propia información local, es decir, el número de colisiones que había encontrado su paquete en cola. [ 13 ] Aplicando el corolario anterior, Lam inventó una clase de algoritmos de retroceso adaptativos que denominó procedimiento de control de retransmisión heurístico (RCP heurístico). [ 12 ] : 894
Un algoritmo RCP heurístico consta de los siguientes pasos: (1) Sea m el número de colisiones previas sufridas por un paquete en un usuario como información de retroalimentación en su bucle de control . Para un nuevo paquete, K (0) se inicializa a 1. (2) El intervalo de retransmisión del paquete K ( m ) aumenta a medida que m aumenta (hasta que el canal se estabiliza, como se implica en el corolario anterior). Para la implementación, con K (0)=1, a medida que m aumenta, K ( m ) puede incrementarse mediante multiplicación (o suma).
Observación
El retroceso exponencial binario (BEB) utilizado en Ethernet varios años después es un caso especial de RCP heurístico con .
BEB es muy fácil de implementar. Sin embargo, no es óptimo para muchas aplicaciones, ya que utiliza 2 como único multiplicador, lo que limita su flexibilidad de optimización. En particular, para un sistema con un gran número de usuarios, BEB incrementa K ( m ) demasiado lentamente. Por otro lado, para un sistema con pocos usuarios, un valor de K relativamente pequeño es suficiente para que el sistema sea estable, y no sería necesario el backoff.
Para ilustrar un ejemplo de RCP multiplicativo que utiliza varios multiplicadores, véase la última fila de la Tabla 6.3 en la página 214 del Capítulo 6 de la tesis doctoral de Lam, o la última fila de la Tabla III en la página 902 del artículo de Lam-Kleinrock. En este ejemplo:
- Se transmite un nuevo paquete inmediatamente, m =0, K (0)=1
- Para un paquete con 1 colisión previa, K (1) = K (0) × 10 = 10 (El multiplicador salta directamente a K * = 10, que se encontró que era el valor óptimo de K en estado estacionario para este sistema en particular (ALOHA ranurado para un canal satelital).
- Para un paquete con 2 colisiones previas, K (2) = K (1) × 10 = 100 (una colisión más, K aumenta 10 veces).
- K (3) = K (2) × 2 = 200
- K ( m )= K ( m − 1) para m ≥4
Para este ejemplo, K = 200 es suficiente para un sistema ALOHA ranurado estable con N igual a aproximadamente 400, lo cual se deduce del resultado 3 del corolario anterior. No es necesario aumentar K más.
Retroceso exponencial truncado
La variante "truncada" del algoritmo introduce un límite para c . Esto significa simplemente que, tras un cierto número de incrementos, la exponenciación se detiene. Sin un límite para c , el retardo entre transmisiones puede volverse excesivamente largo si un emisor observa repetidamente eventos adversos, por ejemplo, debido a una degradación del rendimiento de la red . En un sistema aleatorio, esto puede ocurrir por casualidad, lo que genera una latencia impredecible; los retardos más largos debido a incrementos ilimitados de c son exponencialmente menos probables, pero son prácticamente inevitables en una red congestionada debido a la ley de los números verdaderamente grandes . Limitar c ayuda a reducir la posibilidad de latencias de transmisión inesperadamente largas y a mejorar los tiempos de recuperación tras una interrupción transitoria.
Por ejemplo, si el techo se establece en i = 10 en un algoritmo de retroceso exponencial binario truncado (como en el estándar IEEE 802.3 CSMA/CD [ 14 ] ), entonces el retardo máximo es de 1023 tiempos de ranura, es decir 2 10 − 1 .
Seleccionar un límite de retroceso adecuado para un sistema implica encontrar un equilibrio entre la probabilidad de colisión y la latencia. Al aumentar el límite, se produce una reducción exponencial en la probabilidad de colisión en cada intento de transmisión. Al mismo tiempo, aumentar el límite también incrementa exponencialmente el rango de posibles tiempos de latencia para una transmisión, lo que conlleva un rendimiento menos determinista y un aumento en la latencia promedio. El valor óptimo del límite para un sistema es específico tanto de la implementación como del entorno. [ 15 ]
Retroceso previsto
Dada una distribución uniforme de tiempos de retroceso, el tiempo de retroceso esperado es la media de las posibilidades. Después de c colisiones en un algoritmo de retroceso exponencial binario, el retardo se elige aleatoriamente de [0, 1, ..., N ] ranuras, donde N = 2c − 1 , y el tiempo de retroceso esperado (en ranuras) es
Por ejemplo, el tiempo de retroceso esperado para la tercera ( c = 3 ) colisión, se podría calcular primero el tiempo de retroceso máximo, N :
y luego calcular la media de las posibilidades de tiempo de retroceso:
- .
que es, por ejemplo, E (3) = 3,5 ranuras.
Véase también
Referencias
- ^ Tanenbaum y Wetherall 2010 , pág. 395
- ↑ Rosenberg et al. RFC3261 – SIP: Protocolo de inicio de sesión . The Internet Society. 2002.
- ↑ Peterson, Larry L.; Davie, Bruce S. (2022). «Capítulo 2: Enlaces directos» . Redes informáticas: Un enfoque de sistemas (Sexta ed.). Morgan Kaufmann Publishers. pág. 120. ISBN 978-0-12-818200-0.
- ↑ Abramson, Norman (1970). El sistema ALOHA: otra alternativa para las comunicaciones informáticas (PDF) . Actas de la Conferencia Conjunta de Informática de Otoño de 1970. AFIPS Press.
- ↑ Roberts, Lawrence G. (abril de 1975). "Sistema de paquetes ALOHA con y sin ranuras y captura". ACM SIGCOMM Computer Communication Review . 5 (2): 28– 42. doi : 10.1145/1024916.1024920 .
- ↑ Kleinrock, Leonard; Simon S. Lam (agosto de 1972). Resultados analíticos para el modelo del sistema satelital ARPANET que incluyen los efectos de la distribución del retardo de retransmisión (PDF) (Informe técnico). Centro de Información de Redes ARPA, Instituto de Investigación de Stanford , Menlo Park, California. Nota ASS 12 (NIC 11294).
- ↑ Lam, Simon S. (marzo de 1974). Conmutación de paquetes en un canal de difusión de acceso múltiple con aplicación a la comunicación por satélite en una red informática, tesis doctoral, 306 páginas (tesis). UCLA-ENG-7429 (ARPA), Escuela de Ingeniería y Ciencias Aplicadas de la UCLA.
- ↑ Figura 5-1 en la página 100, Capítulo 5, de la tesis doctoral de Lam.
- ↑ Kleinrock, Leonard; Lam S., Simon (abril de 1975). "Conmutación de paquetes en un canal de difusión de acceso múltiple: evaluación del rendimiento" (PDF) . IEEE Transactions on Communications . COM-23 (4): 410–423 . Bibcode : 1975ITCom..23..410K . doi : 10.1109/TCOM.1975.1092814 . Consultado el 16 de febrero de 2023 .
- ↑ Fig. 5-9 en la página 114 del Capítulo 5 de la disertación de Lam, o Fig. 10 en la página 418 del artículo de Kleinrock-Lam de 1975.
- ↑ Fig. 5-10 en la página 116 del Capítulo 5 de la disertación de Lam, o Figura 11 en la página 418 del artículo de Kleinrock-Lam de 1975.
- 1 2 Lam, Simon S.; Kleinrock, Leonard (septiembre de 1975). "Conmutación de paquetes en un canal de difusión de acceso múltiple: procedimientos de control dinámico" (PDF) . IEEE Transactions on Communications . COM-23 (9): 891–904 . Bibcode : 1975ITCom..23..891L . doi : 10.1109/TCOM.1975.1092917 . Recuperado el 16 de julio de 2023 .
- ↑ Véase el Algoritmo 4 en las páginas 901-902 del artículo de Lam-Kleinrock [ 12 ] o la subsección 6.7.2, en las páginas 209-210 del Capítulo 6 de la disertación de Lam.
- ↑ "Estándar IEEE 802.3-2015" . IEEE . Consultado el 20 de marzo de 2022 .(compra)
- ^ Tanenbaum y Wetherall 2010 , pág. 285 .
Bibliografía
- Tanenbaum, Andrew; Wetherall, David (2010). Redes de computadoras (5.ª ed.). Pearson. ISBN 978-0132126953.
Este artículo incorpora material de dominio público de la Norma Federal 1037C . Administración de Servicios Generales . Archivado del original el 22 de enero de 2022.
- Ethernet
- Algoritmos de planificación de red
- Algoritmos de planificación