¿Cómo se explica el principio de principio a fin en términos simples?

Cambiaría ligeramente la respuesta de Tony Li.

End-to-end simplemente dice: si una función de red puede implementarse correcta y completamente usando las funcionalidades disponibles en los hosts finales, esa función debería implementarse en los hosts finales sin delegar ninguna tarea a la red (es decir, nodos intermedios entre los hosts finales).

De esta forma, las nuevas funciones de red pueden desarrollarse sin cambiar la infraestructura de red existente. Por ejemplo, hay muchas formas diferentes de implementar algo como HTTP, pero debe preferir alternativas de diseño que usen únicamente las funciones disponibles en ambos extremos a los diseños que exigen nuevas funcionalidades de enrutadores y conmutadores.

Los nodos intermediarios, por otro lado, pueden interceptar tales funciones de red para fines de optimización, seguridad y escalabilidad. Por ejemplo, los cortafuegos, los equilibradores de carga y los servidores proxy interceptan los flujos HTTP por seguridad, escalabilidad y optimización. Tenga en cuenta que esas características son auxiliares y HTTP no depende de ellas.

Piénsalo de esta manera. Los presidentes de dos países quieren comunicarse entre sí. El problema es que ambos países hablan idiomas completamente diferentes e imagínense que solo hay un traductor disponible en todo el mundo que puede hablar ambos idiomas con fluidez. Entonces el presidente P1 se comunica con su secretaria S1 en el lenguaje L1. S1 transfiere el mensaje del presidente al traductor T en el lenguaje L1. T luego convierte el mensaje a L2 y lo transfiere al secretario S2, quien a su vez lo comunica al presidente P2.
Esta es una analogía muy simplificada de cómo funciona la conexión TCP de extremo a extremo. Básicamente, a partir del ejemplo, puede inferir que es el trabajo de la secretaria respectiva llevar el mensaje. Cualquiera de los presidentes es ajeno al hecho de que su mensaje se ha convertido a otro idioma.
En la pila TCP / IP real, su aplicación (es decir, el presidente) no necesita preocuparse por cosas como

  • hardware subyacente (por ejemplo, su NIC) presente en el sistema,
  • si el mensaje se transmite a través de WiFi, ethernet o bluetooth o ZigBee o cualquier otro estándar
  • Qué esquema de red (IPv6 o IPv4) se está siguiendo.

Simplemente puede crear sockets (análogos a la secretaria) y simplemente entregar el mensaje a la secretaria.

Ahora imagine que el traductor no es realmente fluido en el lenguaje L2. Entonces, el mensaje de que está transfiriendo a S2 tiene algunos errores. S2 es fluido en el lenguaje L2 nota inmediatamente este error pero no conoce la fuente de este error. Podría haber ocurrido en cualquier etapa del sistema y este mensaje no se puede dar al presidente debido a su naturaleza errónea. Entonces, envía un mensaje de regreso diciendo que ese mensaje no se recibió. S1 lo recibe pero lo mantiene alejado de P1. Ahora todo el proceso se repite con S1 enviando de nuevo el mensaje P1s. Ahora supongamos que milagrosamente T es capaz de representar la traducción correcta esta vez y P2 recibe el mensaje. Esta es nuevamente una versión muy simplificada de confiabilidad en la comunicación de extremo a extremo a través de TCP.

Ahora imagine que P1 tiene que comunicarse con otro presidente P3 de otro país lingüísticamente diferente. P1 no puede enviar el mensaje a S1 ya que él ya está ocupado comunicándose con su contraparte S2. Entonces, contrata a otra secretaria S3 para transmitir sus mensajes a P3 a través de un traductor T igual o diferente (¡por supuesto, dependiendo de la capacidad de T para traducir L3 si no se contrata a otro traductor T3!). Se lleva a cabo exactamente el mismo proceso descrito anteriormente. La ventaja de usar un sistema de este tipo es ahora evidente. P1 ahora puede simplemente seguir transmitiendo su mensaje a quien quiera sin tener que preocuparse demasiado de cómo se transmite el mensaje.

Esto es exactamente lo que sucede cuando abres múltiples pestañas / ventanas del navegador. ¿Alguna vez se preguntó por qué digamos que si consulta Google en una pestaña y Yahoo en la otra, ambas aparecen en las pestañas respectivas desde las que se realizaron las consultas? Después de todo, ambas consultas eran de la misma aplicación (es decir, navegador o en nuestro caso P1). Esto sucede porque se abre un socket diferente para cada pestaña que segrega los datos en las pestañas respectivas. Este caso es análogo a que las pestañas son las diferentes secretarias (S1 y S2) y que el navegador es el presidente P1.

Este concepto de abstracción es lo que mantiene internet o, para el caso, cualquier tipo de red informática. Proporciona una gran flexibilidad entre dispositivos con la red y también con respecto a la escritura de aplicaciones. ¡Imagina tener que escribir una aplicación desde cero!

El principio de principio a fin es en realidad, muy, muy simple.

Si los hosts necesitan un mecanismo para proporcionar alguna funcionalidad, la red no debe interferir o participar en ese mecanismo a menos que sea absolutamente necesario.

O, dicho de manera más simple, la red debería ocuparse de sus propios asuntos.

Estoy de acuerdo con la explicación de Tony Li. Un buen ejemplo sería el enrutamiento. Si el host A quiere enviar paquetes al host B, ¿cómo encamina el paquete?

Inundaciones (ineficientes)

Enrutamiento de origen (buen ejemplo del principio de extremo a extremo) : en el que el origen conoce la topología y elige la ruta que desea, pero se vuelve muy pesada especialmente para rutas transoceánicas que incluyen muchos enrutadores y tantas direcciones.

Protocolo de árbol de expansión (optimización para el enrutamiento al obtener ayuda de la red) : cada enrutador crea un árbol de expansión de costo mínimo para llegar al otro host. Cada enrutador tiene una tabla de reenvío que se mantiene por estado de destino en lugar de por estado de flujo. Entonces, tomar algo de ayuda de las redes para lograr la tarea de extremo a extremo.

El enrutamiento es una tarea tan común en las redes que vale la pena recibir ayuda de la red.

More Interesting

¿Por qué el protocolo BXXP / BEEP no tuvo un impacto mayor?

Cuando se diseña una aplicación o un dispositivo de red, ¿cómo y dónde se integra el conjunto TCP / IP para que funcione con otros sistemas de red?

¿Por qué las misiones CubeSat usan el protocolo AX.25?

¿Cómo se usa ampliamente el protocolo de árbol de expansión múltiple en las redes?

¿Cómo se organizan las opciones de IP en un encabezado de IP y cómo podemos extraerlas?

¿Qué protocolos de enrutamiento (capa 3) utilizan los satélites? ¿La alta latencia plantearía algún problema al usar los protocolos existentes?

¿Por qué la pila OSI no funcionó? ¿Por qué la pila TCP / IP se convirtió en estándar?

¿Cuál es el diferente protocolo de enrutamiento y protocolo de reenvío? ¿Existe algún protocolo por parte de los investigadores para elegir el movimiento de datos de manera inteligente?

¿Cuál es la diferencia entre TCP y OSI?

¿Cuáles son las amenazas de seguridad contra una red MPLS?

¿Qué es un protocolo de comunicación de red? Por ejemplo, Napster tenía un protocolo definido por el cual intercambiaba datos entre clientes y el servidor host. ¿Podría mostrarme un breve ejemplo de lo que esto significa?

¿Qué son los protocolos de enrutamiento de red?

Cómo ver el protocolo de transferencia de hipertexto

¿Cuál es el significado del Protocolo Arthur-Merlin a través de Goldwasser & Sipser?

¿Por qué la oficina administrativa de Fyers utiliza un protocolo HTTP sin cifrar para el inicio de sesión del usuario?