He estado investigando la velocidad de rendimiento de las transferencias de paquetes y estoy confundido acerca del rendimiento total de un sistema final a otro. Por ejemplo: digamos que un servidor está enviando un paquete a un cliente con un enrutador en el medio. mi libro de textoRedes de computadorasde Kurose y Ross dice que el sistema final con la velocidad de rendimiento más lenta determina la velocidad de rendimiento de toda la transferencia de archivos. ¿Por qué es esto?
¿No se sumarían las dos velocidades de rendimiento para obtener el rendimiento total de transferencia de archivos? Por ejemplo: el rendimiento del servidor bombea bits a 1 Mbps y el enrutador bombea bits a 2 Mbps. Digamos también que el tamaño del archivo era de 10 millones de bits. Desde el servidor hasta el enrutador, tomaría 10 segundos llegar al servidor y luego tomaría aproximadamente 5 segundos llegar al cliente, lo que hace que la interacción de rendimiento total tome 15 segundos. Eso es lo que pensaría, pero usando la lógica del libro de texto esto tomaría 10 segundos. ¿Por qué es esto?
Respuesta1
Imagine una fila de hormigas moviéndose desde una hoja hasta su agujero, pero hay un palo en el camino por el que deben trepar:
<Leaf> ------ <stick> ------ <hole>
Una hormiga tarda 3 segundos en llegar al palo (pierna 1 del viaje), 10 segundos en trepar por encima del palo (pierna 2) y luego 2 segundos en pasar del palo al agujero (pierna 3). El ancho de banda total de leg1 es de 3 hormigas, el ancho de banda del palo es de una hormiga y el ancho de banda de leg3 es de 3 hormigas.
Entonces ant0 deja la hoja y viaja hasta el palo. trepa por el palo y camina hacia el hoyo. Tiempo total = 15 segundos.
Ant1 deja 1 segundo detrás de ant0 y atraviesa la pierna1 en tres segundos. Llega al dispositivo, pero el ancho de banda del dispositivo está lleno porque Ant0 lo está usando. entonces Ant1 tiene que esperar 9 segundos antes de poder COMENZAR a cruzar el palo. Cuando Ant0 termina en el palo, Ant1 lo cruza y continúa hacia el agujero. El tiempo total empleado es 3s + 9s (espera) + 10s cruzando el palo + 2 segundos hasta el hoyo => 24 segundos.
Ant2 deja 1 segundo detrás de ant1 y tarda tres segundos en alcanzar el palo. luego necesita esperar a que Ant0 y Ant1 limpien el dispositivo antes de poder cruzar. Tiempo total = 3s + 10s (esperando a ant1) + 8s (esperando a ant0) + 10s (cruzando el palo) + 2s para llegar al hoyo => 33 segundos.
entonces, si tuviéramos que medir el rendimiento de esta ruta, sería 3/(15+24+33) => 0,0416 hormigas por segundo.
digamos que aceleramos el tramo 1 a 1 segundo (3 veces más rápido). terminamos con 3/(13+22+31) => 0,454 hormigas por segundo. muy pequeño aumento para un aumento de velocidad 3x en una pierna.
Digamos que aceleramos la etapa 3 a 1 segundo (2 veces más rápido). terminamos con 3/(12+21+30) => 0,0476 hormigas por segundo. una vez más muy poco impacto.
Sin embargo, si aumentamos la velocidad de la pierna2, quizás de 2 a 5 segundos, obtenemos un número muy diferente 3/(7 + 11 + 17) => 0,085 hormigas por segundo.
Por lo tanto, un aumento en cualquiera de los tramos más rápidos hizo muy poco, pero duplicar la velocidad del componente más lento duplicó efectivamente el rendimiento del camino.
Entonces, ¿te das cuenta de que, aunque Leg3 tiene mucho ancho de banda y una velocidad de transmisión rápida, eso no afecta la velocidad a la que las hormigas llegan al agujero, porque la velocidad a la que las hormigas entran en Leg3 está bloqueada por el palo, por lo que la mayoría del ancho de banda en Leg3 es inutilizable. podría aumentarlo 100 veces y no tener ni un ápice de impacto en la velocidad a la que las hormigas llegan al agujero. En esta situación, lo único que puedes hacer para cambiar la ecuación es aumentar la velocidad a la que las hormigas cruzan el palo. todo lo demás no tiene sentido.
Respuesta2
El extremo con la velocidad más lenta determinará la velocidad general del enlace porque literalmente no puede recibir datos más rápido; de lo contrario, se producirán errores.
No pienses en el tiempo que lleva, piensa en lo rápido que algo puede escuchar.
Digámoslo de esta manera: tienes a una persona leyendo un libro en voz alta, pero puede hablar muy rápido, y tienes a una persona escuchando. La persona que escucha sólo puede comprender a un ritmo lento, por lo que el lector rápido tiene que reducir la velocidad a una velocidad que el oyente pueda comprender o el oyente tiene que seguir diciendo "espera, ¿puedes repetir eso" mucho? Eso determina el rendimiento.
También está cometiendo un error crítico al suponer que el enrutador contiene todo el bloque de datos que se va a transferir antes de transmitirlos y, si bien esto sucede en pequeños bloques de datos, no es así como funciona el sistema en general.
Hay dos rendimientos que estás viendo aquí. El rendimiento del emisor al enrutador y del enrutador al receptor. El enrutador solo retiene una pequeña cantidad de datos en un momento dado y no almacenará el bloque grande completo antes de retransmitirlo, por lo que efectivamente tiene el enlace más lento del sistema, lo que limita la velocidad general a la que puede funcionar el enlace de extremo a extremo. en.