Supongamos que la máquina A quiere enviar datos a la máquina B. Hay muchos enrutadores en el medio, digamos 100.
La cantidad de datos que debe enviarse es de 1000000 bytes. Mi pregunta es si dividir los datos en un tamaño de paquete, por ejemplo, un paquete de 1000 bytes, disminuirá el retraso de extremo a extremo en lugar de enviar todos los datos a la vez.
Agradezco cualquier información sobre esta duda que tengo.
¡Gracias!
networking
usuario734861
fuente
fuente
Respuestas:
Puede estar preguntando sobre la conveniencia de utilizar tramas Jumbo Ethernet ( enlace de Wikipedia ), definidas como paquetes con más de 1500 bytes de carga útil. Las tramas gigantes suelen transportar cargas útiles de 9000 bytes.
Las mediciones han demostrado que la latencia se mejora con paquetes tan grandes para el rendimiento TCP de extremo a extremo. Sin embargo, pueden tener un impacto negativo al pasar a través de enlaces de bajo ancho de banda (que hoy en día es menos probable).
Puede encontrar más información en el enlace de Wikipedia anterior y su sección de Referencias.
Mi propia opinión: cuando juego con tamaños de MTU, nunca he logrado muchas mejoras en las transferencias grandes al configurar el tamaño de MTU por encima del valor predeterminado (1500). Sin embargo, sin hacer mediciones precisas, creo que usar un tamaño de paquete demasiado pequeño es más lento. Por lo tanto, no creo que deba cambiar la MTU de la predeterminada.
Si entendí correctamente su pregunta de enviar todo o en partes, le recomendaría enviar cargas útiles que llenen completamente un paquete Ethernet. Recuerde que los datos que está enviando son la carga útil que luego se envolverá con los encabezados de protocolo, que son más grandes para IPv6 que para IPv4 ( consulte esto ). El envío de grandes fragmentos de datos lo hará automáticamente, ya que el sistema operativo lo cortará para un reempaquetado máximo por tamaño de MTU. Envíe trozos grandes, pero no habrá ganancias de mejora por enviar gigantes.
fuente
en resumen: sí, el tamaño de los paquetes afecta la velocidad efectiva de transferencia, cuanto más grandes sean los paquetes, menor será la cantidad de paquetes necesarios y, por lo tanto, dependiendo de los protocolos utilizados, etc.
Los marcos jumbo se pueden usar en algunos casos (no todos los medios / hardware lo admiten) para reducir aún menos esa sobrecarga.
Sin embargo, existen otros factores que pueden tener un efecto aún mayor en la velocidad de transferencia. Si hay 100 saltos / dispositivos en el medio, obtiene otros problemas como el enrutamiento y el cambio de paquetes que se convierten en una gran carga para la velocidad de transferencia. En ese momento, no solo se pueden permitir tramas gigantes, sino que es dudoso que pueda usar los paquetes completos de 1500 bytes y solo el procesamiento se vuelve lo suficientemente prohibitivo como para que MTU ya no importe mucho.
para 1000000 bytes, la MTU ni siquiera importa tanto porque solo tiene 1 mb y eso llevará aproximadamente 1 segundo. por 1Tb de forma regular, entonces buscaría optimizar. incluso si "segmenta previamente" el archivo en múltiples no lo hará ir más rápido. pero en realidad puede hacerlo más lento porque incluso si se divide en 1 paquete de archivos, su interfaz puede considerar que el paquete se puede dividir aún más. la conexión se calcula mediante la MTU "menos disponible", lo que significa que la "brecha" más pequeña (MTU de un enlace particular) en la ruta que tomará el paquete es del tamaño con el que se negociará la conexión. es decir, si no está fragmentado aún más debido a la sobrecarga "invisible" por otras cosas como conexiones ppp, redes mpls, cifrado y túneles, etc.
fuente