Un argumento frecuentemente citado es básicamente el contenido en esta imagen.
Sin embargo, esto no refleja la realidad de una conexión TCP subyacente que tiene que iniciarse lentamente, y donde el cliente reconoce todos los demás segmentos recibidos del servidor. Siempre que el cliente tenga algo que enviar (por ejemplo, una solicitud HTTP), los ACK estarán respaldados. Entonces, ¿dónde está la ganancia aquí?
Respuestas:
Hay varias razones por las cuales la canalización es más rápida que las conexiones HTTP persistentes puras:
Como la canalización es simple de implementar para la mayoría de los sistemas, lo haría de todos modos.
fuente
La ventaja es mantener la tubería llena tanto como sea posible, en lugar de dejar que se drene entre solicitudes.
Con la canalización, la dirección del servidor -> cliente de la canalización está constantemente llena, para un rendimiento máximo y una latencia mínima.
Sin canalización, tiene un protocolo de "detener y esperar" donde el servidor -> la dirección del cliente permanece inactivo entre el momento en que se envía el último fotograma de una respuesta y antes de enviar el primer fotograma de la siguiente respuesta. La tubería permanece inactiva durante todo el tiempo acumulado que lleva que sucedan todas estas cosas:
fuente