Medidas de equidad de TCP

La medida de equidad es una gran herramienta para determinar si todos los flujos de TCP obtienen la parte justa del ancho de banda de red disponible. Hay varios protocolos de capa de transporte disponibles, la imparcialidad de TCP requiere que un nuevo protocolo TCP no afecte el rendimiento de otros protocolos disponibles o la variación del propio TCP. Digamos que hay 5 flujos en una red, 1 TCP Cubic, 1 Reno, 1 NewReno, 1 UDP y 1 BBR. El ancho de banda de red disponible es de 10 MBPS. Idealmente, todos estos 5 flujos deben compartir el mismo ancho de banda, es decir, 2 MBPS. Pero, BBR toma 3 MBPS, Reno y NewReno toman 2 MBPS, CUBIC toma 1 MBPS y UDP toma 3 MBPS. En este escenario, BBR está afectando a otros flujos de TCP, es decir, Cubic. La relación de ancho de banda de la red utilizada por TCP BBR y Cubic es 3:1, que debería ser 1:1 en el caso justo. Hay muchas medidas de equidad en la literatura.

Necesidad de la medida de equidad de TCP:

Desde el comienzo de Internet, los protocolos de transporte han evolucionado significativamente. El RFC 793 inicial era un protocolo TCP muy básico .Hoy en día, existen cientos de protocolos TCP en la literatura. Diferentes dispositivos utilizan su propia elección de protocolo TCP. El objetivo principal de la medida de equidad es verificar la compatibilidad del protocolo TCP recién diseñado con otros TCP existentes. La imparcialidad es el rendimiento relativo de otros TCP cuando este nuevo TCP bajo prueba se utiliza en la misma red. Si el rendimiento de otros flujos de TCP no se ve afectado por este nuevo TCP, entonces se considera bueno. Luego, se probarán sus nuevas optimizaciones y nuevas características y luego solo se considerará su potencial para superar a otros TCP. Si un nuevo TCP perjudica gravemente a otros flujos, entonces no hay beneficio de usar este protocolo en nuestros dispositivos porque dañará gravemente a otros. Es por eso que una medida de equidad es esencial para certificar cualquier TCP de nuevo diseño.

Existe un índice de equidad muy popular llamado índice de equidad de Raj Jain.

Índice de equidad de Jain

Este índice fue presentado por Raj Jain, ex alumno del IISC y de la Universidad de Harvard. Actualmente, es profesor de CSE en la Universidad de Washington. 

 J(x1, x2, ..., xn) = \frac{(\sum_{i=1}^{n} {x_i})^2} {n\sum_{i=1}{n} {x_i^2} } = \frac{(\bar{x})^2}{(\bar{x^2})}

Si hay n flujos de TCP en la red, su rendimiento se denota como x1, x2, …, xn. El rendimiento es la tasa de entrega exitosa de paquetes/mensajes a través de una conexión de red establecida. También se puede acuñar como la cantidad de ancho de banda utilizado por un Node en particular. El índice de Jain se calcula luego según la ecuación dada.

Jain Index = Square of the sum of all throughputs/
             (N x sum of squares of all throughputs) 
           = Square of average throughput/
             Average of squared throughput

Si J=1 , entonces el TCP bajo experimento es perfectamente justo con otros flujos de TCP. Se puede dar a entender que TCP no daña otros flujos de TCP en la red. Cualquier nuevo algoritmo TCP desarrollado hoy tiene que demostrar su eficiencia en términos de la medida de equidad de TCP. BBR usó el Índice de Jain como su herramienta de medición de equidad y fracasó estrepitosamente. El índice de Jain toma el rendimiento total de todos los Nodes, no tiene en cuenta el rendimiento de su serie temporal. 

Supongamos que hay dos flujos TCP F1 y F2. El ancho de banda es de 10 MBPS y la conexión permanece activa durante 100 segundos.

For first 50 seconds, F1: 8 MBPS and F2: 2 MBPS
For next 50 seconds,  F1: 2 MBPS and F2: 8 MBPS,
[Jain's index takes the average throughput of both the TCP flows] 
Hence T1=T2=5 MBPS, where T= Throughput
J(F1, F2) = (25/25) = 1

En este caso, el Índice es 1, lo que implica que ambos flujos obtuvieron una parte igual/justa del ancho de banda durante toda la duración, pero no es cierto. Si trazamos el gráfico de serie temporal para el rendimiento, entonces será completamente diferente. Esta es la limitación del índice de Jain, por lo que BBR no se convirtió en un RFC estándar, causa de este retraso.

Equidad máxima-mínima

Este no es un índice de medición, sino un algoritmo que garantiza la equidad. Este algoritmo asegura la equidad en la red. 

Algoritmo:

  1. Esto funciona de forma reversible.
  2. Calcule la parte justa de cada flujo insatisfecho.
  3. Asigne la parte justa a cada flujo insatisfecho.
  4. Si a algún Node se le asigna más de lo necesario, se le llama sobreasignado.
  5. Retirar todas las acciones sobreasignadas, esto se denomina cantidad residual.
  6. Asigne nuevamente este monto residual a los flujos no satisfechos.

Considere que hay 4 flujos sobre un enlace de cuello de botella con un ancho de banda total disponible de 12 MBPS.

Max-min fairness

Equidad máxima-mínima

La demanda de estos flujos es A=2.4, B=3, C=4, D=5 MBPS.

Paso 1: la parte justa de los 4 flujos es = 12/4 = 3 MBPS. Asigne 3 MBPS a cada flujo al principio.

Flow A: Assigned 3 MBPS, Demand = 2.4, Over-assigned 0.6 MBPS. 
Flow A is completely satisfied.
Flow B: Assigned 3 MBPS, Demand = 3, Completely satisfied.
Flow C: Assigned 3 MBPS, Demand = 4, Unsatisfied
Flow D: Assigned 3 MBPS, Demand = 5, Unsatisfied

Paso 2: Calcular la participación justa de los flujos insatisfechos restantes, utilizando el flujo residual. 

Fair share = 0.6/2 = 0.3
Assign 0.3 MBPS to flow C and D, because they are not yet satisfied
Flow C: Assigned 3.3 MBPS, Demand = 4, Unsatisfied
Flow D: Assigned 3.3 MBPS, Demand = 5, Unsatisfied
Residual amount = 0

Por lo tanto, los 4 flujos obtuvieron la máxima participación posible. Los flujos A y B quedaron satisfechos mientras que C y D no están satisfechos.

Si la red hace cumplir la equidad máxima-mínima, entonces puede castigar aquellos flujos que transmiten más que la parte más alta asignada a ellos. Suponga que los flujos C y D son UDP y, por lo tanto, el receptor no recibe ACK. Continúan enviando paquetes de datos de 4 y 5 MBPS a la red. La cuota máxima que les asigna la red es de 3,3 MBPS. Por eso, 

discard 4 - 3.3 = 0.7 MBPS from flow C
discard 5 - 3.3 = 1.7 MBPS from flow D

Hay una ventaja de la equidad máximo-mínimo. Si la red hace cumplir esta equidad, no se interrumpirá ningún flujo; de lo contrario, se descartarán paquetes de la red de flujo inadecuado. Por lo tanto, esos flujos no podrán dañar otros flujos que se comportan bien.

Otras medidas de equidad:

QoE Fairness: Significa Calidad de Experiencia. Se define como la función de transformación lineal. F= 1 − \frac{2σ}{(H−L)}   . Se dice que un sistema es absolutamente justo cuando todos los N usuarios obtienen el mismo valor de QoE. No se mide en escalas de razón. Se utiliza en escalas de intervalo. Este índice está ligado en el intervalo [0-1]. 0 significa la QoE más baja. 1 significa la equidad QoE perfecta. El valor 0,5 significa que la mitad de los usuarios obtienen 0 QoE y la otra mitad obtiene 1 QoE.

Índice de equidad de G: este índice de equidad lo utilizan básicamente los proveedores de servicios de Internet en el contexto de la asignación de ancho de banda. El índice de equidad  de k -ésimo orden de G se da como:f(x) = sin(xπ/2)^{1/k}    

El índice de G da valores más pequeños en comparación con el índice de Jain. Los valores más pequeños son más sensibles a las asignaciones de ancho de banda injustas y su valor puede llegar a 0, lo que indica una distribución muy injusta. El índice de Jain es un índice muy promedio, mientras que el índice de G se enfoca más en la igualdad. 

Por ejemplo:

distribution: {20, 20, 20, 0}
Jain's index = 0.75
G's index = 0

Por lo tanto, el índice de Jain es muy ambiguo, mientras que el índice de G proporciona detalles más específicos sobre la asignación de ancho de banda.

Publicación traducida automáticamente

Artículo escrito por pintusaini y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *