Teoría de redes: capas, servicios e interfaces
Quiero aprender sobre las redes informáticas desde abajo hacia arriba. Realmente no entiendo los matices de las capas de red, con libros que mencionan que las capas brindan servicios a las capas por encima de ellas, pero la interfaz entre capas no es parte de la arquitectura de red (la arquitectura de red se define como capas + protocolos). ¿Cuál es la diferencia entre servicio e interfaz? ¿Qué es exactamente una capa de red? No puedo encontrar explicaciones claras para estas preguntas en ninguna parte. (He estado leyendo Computer Networks por AS Tanenbaum)
Como estoy tratando de aprender a trabajar en red desde abajo hacia arriba, estoy tratando de desaprender y reaprender, es decir, sigo adelante pensando que todo lo que sé sobre el tema podría ser incorrecto. Esto es lo que he entendido hasta ahora:
- Cada nodo en una red de comunicación debe realizar actividades (no estoy usando el término 'software' aquí porque las actividades realizadas en cada nodo se pueden implementar mediante lógica digital en hardware)
- Estas actividades a menudo se organizan en capas, donde las actividades en la capa N + 1 solo pueden usar los servicios que las actividades brindan en la capa N. Esta organización es útil para mantenernos cuerdos y todo manejable
- Un modelo de red es una especificación bien definida de estas capas en una red: las actividades que realizan y los servicios que una capa debe proporcionar.
- Un protocolo es una forma de comunicación de actividades en diferentes nodos, pero en la misma capa. La capa N no necesita saber qué protocolo usa la capa N-1 para comunicarse.
¿Mi comprensión es correcta?
He leído que la arquitectura de red especifica las capas y los protocolos utilizados, pero no las interfaces entre las capas . Creo que la 'especificación de capa' contendrá los servicios que deben proporcionarse en una capa. ¿No es lo mismo que la interfaz entre dos capas? La arquitectura de red contiene la especificación de la capa que contiene la especificación del servicio, pero no contiene la especificación de la interfaz. ¿Cómo?
¿Puedo obtener una copia de la especificación de los servicios prestados por cada capa? ¿Es algo concreto o algo ondulado a mano (por ejemplo, tipo "Depende de la situación")
He leído que el protocolo IP de la capa 3 requiere ARP, ICMP, etc. protocolos de la capa 2. Pensé que la capa N no se ocupa de los protocolos reales de la capa N-1 , sino solo de los servicios proporcionados.
¿Dónde está la falla en mi comprensión?
Respuestas
Una arquitectura de red es un diseño de una red específica, con nodos asignados diferentes responsabilidades (por ejemplo, host, puente, enrutador, con muchas variaciones en los dos últimos, especialmente cuando se incluye MPLS). Si bien utiliza conceptos de modelo para definir los roles, no forma parte de la definición de capas o del modelo OSI. Si bien la arquitectura no suele especificar nodos específicos, sí especifica tipos de nodos, qué roles cumplen y cómo encajan en el panorama general. Entonces, aunque dije "red específica" anteriormente, puede haber múltiples instancias y muchos detalles omitidos. Por ejemplo, una empresa que ofrece "triple play" (voz, video, datos) puede tener una arquitectura de red para un área metropolitana, una arquitectura diferente para una ciudad pequeña y otra para áreas rurales. Muchos ejemplos de cada uno, con cada caso siguiendo el plan lo más cerca posible.
El modelo OSI es solo un modelo de referencia que asigna diferentes responsabilidades a cada capa para ayudarnos a determinar cómo funcionan las comunicaciones. El modelo OSI es bastante bueno en las capas 4 e inferiores. Resultó que hay mejores formas de abordar las capas superiores de OSI, por lo que no hablamos mucho de ellas. Es mejor utilizar el modelo en su conjunto para dar perspectiva a cada capa y comprender cada capa. Pero hay muchos casos en el mundo real que doblan el modelo. Más sobre eso más tarde.
Además del modelo, las especificaciones OSI también definen servicios específicos en varias capas. Cada servicio tiene especificaciones para:
- su interfaz de servicio ofrecida a la capa superior (en términos de "primitivas de servicio" para hacer cosas como enviar y recibir "unidades de datos de servicio", con muchos parámetros detallados cuidadosamente)
- uno o más protocolos para implementar el servicio (utilizando primitivas de servicio de un servicio en la capa inferior)
Leer estos documentos es una pausa seria. (Y son documentos de la UIT costosos, por lo que no puede simplemente leerlos en la web. Y la mayoría de los servicios que describen ya no existen). lo dejó adivinando sobre la interfaz de servicio a la capa de arriba, y muchos detalles de cómo el protocolo usa el servicio a continuación. A lo largo de las décadas, el IETF ha mejorado mucho en la aclaración de estas cosas, afortunadamente sin adoptar el enfoque formal exagerado de los documentos OSI (que, después de todo, se desarrollaron bajo la UIT, que es parte de la ONU).
Por lo tanto, cuanto más antiguo es el servicio, menos clara es la especificación de la interfaz de servicio o cómo se emplean los servicios de capa inferior. IP y TCP se encuentran entre los primeros, por lo que no están definidos formalmente. Sin embargo, hay muchas API estándar que brindan estos servicios que puede usar como guía (como Sockets para TCP / UDP). La interfaz entre el transporte y la red es a menudo más difícil de acceder porque a menudo está enterrada, pero apuesto a que podría encontrar API del kernel de Linux para interfaces de capa de red y enlace (por ejemplo).
Con respecto a este:
las actividades en la capa N + 1 solo pueden usar los servicios que las actividades brindan en la capa N.
Correcto, en el modelo. En realidad, olvídate de "solo". Con frecuencia, un servicio en una capa puede utilizar servicios de otro servicio en la misma capa o en una capa superior. Por ejemplo, con los túneles, usamos una capa para hacer un "enlace" que puede ser utilizado por la capa de red. Con PPTP, usamos TCP para crear un enlace en serie para ser utilizado por IP. Entonces, estamos creando un servicio de capa de enlace utilizando un servicio de capa de transporte. ¿En qué capa estamos? Esa no es la pregunta correcta. La pregunta correcta es "qué papel jugamos", que es lo que ya dije: proporcionar un servicio de capa de enlace utilizando un servicio de capa de transporte. Haz algunos dibujos divertidos. Para obtener más ejemplos, consulte ¿Por qué PPTP, L2TP, PPPOE están en OSI Layer2? .
Entonces, use el término "Capa" para la vista de alto nivel, pero use los términos "usuario de servicio" y "proveedor de servicio" siempre que las cosas no se acumulen como un pastel de capas.
el protocolo IP de la capa 3 requiere protocolos ARP, ICMP, etc. de la capa 2
ICMP vive en la capa de red junto con IP. ARP es un poco rompedor de reglas, pero vive principalmente en la capa 3 y está estrechamente acoplado con la implementación de IP. Es mejor pensar en ella como la capa 3 y aprender dónde rompe el modelo. La mayoría de nosotros no nos topamos con los contraejemplos y no puedo pensar en ellos a la ligera.
IIRC, IPV6 es mejor para separar las capas, así que considere pasar un tiempo de calidad con sus especificaciones.
Su comprensión es generalmente correcta. Los problemas que enfrenta se deben principalmente a su suposición de que las cosas están mejor definidas de lo que realmente están. Por ejemplo:
¿Qué es exactamente una capa de red?
Como muchos, muchos términos de redes, no existe una definición exacta. Solo hay dos modelos que intentan definirlos (OSI y Suite de protocolo IP), y solo uno de ellos ha ganado un uso generalizado. Entonces, prácticamente hablando, solo hay un caso de uso. La suite TCP / IP define las capas de red en su modelo. Puede leerlo en RFC 1122 .
Un modelo de red es una especificación bien definida de estas capas en una red.
Un modelo es una representación idealizada que no existe en la realidad. En la práctica, las especificaciones no siempre están bien definidas. A veces, las cosas son vagas o la implementación real de una característica o función puede variar.
He leído que el protocolo IP de la capa 3 requiere ARP, ICMP, etc. protocolos de la capa 2. Pensé que la capa N no se ocupa de los protocolos reales de la capa N-1, sino solo de los servicios proporcionados.
Aquí es donde la teoría y la práctica divergen. Tienes razón en que esa es la teoría. Pero en la práctica, los detalles de implementación se "filtran" entre capas. ARP realmente no "encaja" en el modelo TCP / IP. Otro ejemplo son los túneles (VPN o MPLS). Tampoco encaja en el modelo.