Entiendo que los datos pasan a través del modelo OSI y luego en la capa física se transportan como bits a través de los cables de red. Pero estoy confundido sobre exactamente dónde están sucediendo las capas (en la PC, en el enrutador, etc.). ¿Los procesos en las capas 7-2 suceden en una PC antes de que los datos salgan en los cables según la capa 1? Eso no suena bien, ya que sé que los conmutadores operan en la capa 2 y los enrutadores en la capa 3. ¿Pero entonces los datos ya no tendrían que salir en los cables para llegar al conmutador o enrutador? Gracias :-)
tl; dr Muchos dispositivos diferentes pueden encontrar múltiples niveles de OSI. Cualquiera que sea el punto final que solicite algo de un protocolo de capa 7 (como HTTP), usará las 7 capas antes de colocarlo en el cable. Los nodos intermedios, como enrutadores y conmutadores, solo pueden usar hasta las primeras 3 capas, los firewalls o los aceleradores WAN pueden afectar la capa 4, los equilibradores de carga también hacen cosas interesantes.
Si está interesado en una respuesta más detallada, mire a continuación: intenté (?) Mantenerlo bastante simple y usar un ejemplo del mundo real.
Las capas que encapsulan los datos dependen de lo que genera los datos. En general, la desencapsulación solo ocurrirá para lo que sea relevante para el lugar actual de los datos en la red (en un enrutador, en un host, etc.)
Con esto quiero decir, si soy un enrutador, no me importa que haya una solicitud HTTP enterrada en este paquete si todo lo que estoy tratando de hacer es enrutar el tráfico a través de la Capa 3: solo quitaré suficientes encabezados para obtener lo que necesito, hacer mi trabajo y pasar al siguiente paquete.
Todos usamos Internet todos los días de alguna manera, así que así es como se verá una solicitud HTTP típica, teniendo en cuenta el modelo OSI. Por simplicidad, podemos suponer que la red está disponible y que no hay ningún problema.
[Capa 7] Su PC / Servidor generará una solicitud HTTP GET para enviar a su servidor web especificado, en este caso estamos hablando de google.com. Entonces, si mira arriba, tenemos esa solicitud GET, que se considera "datos". HTTP es un protocolo de capa 7, vamos a agregar ese encabezado. Debido a que no hay nada más que hacer en esta capa, pasemos a la capa 6.
[Capa 6] Podemos pensar en la capa 6 como cómo deberían formatearse los datos, para un sitio web realmente no va a pasar nada aquí, pero un administrador / desarrollador / ingeniero podría hacer algo con esto si así lo desea. Nuestra PC / Servidor seguirá agregando un encabezado en la parte superior del encabezado de la capa 7 (HTTP) y lo enviará a la capa 5.
[Capa 5] En este punto debido a que nuestra PC / Servidor sabe que estamos tratando de contactar a un servidor web, necesitamos hacer esta solicitud en un formato que la aplicación en su conjunto pueda entender, para esto utilizamos una Interfaz de Programa de Aplicación (API) . Esto es lo que gestiona la sesión de aplicaciones , esto es para que el servidor web sepa de qué "flujo" forman parte los datos. Agreguemos nuestro encabezado de capa 5 y pasémoslo a la Capa 4.
[Capa 4] Los ingenieros de redes se preocupan por todos los datos, pero aquí es donde comienzan a ser muy específicos para nosotros. La capa 4 es nuestra capa de transporte, aquí es donde decidimos cómo llegan allí nuestros datos, no la ruta, sino cómo, es decir, TCP o UDP. En este caso, nuestra PC / Servidor necesita establecer una conexión con el servidor web. Voy a omitir algunas cosas por simplicidad, pero aquí es donde sucedería el típico protocolo de enlace TCP de 3 vías. Encapsulamos lo que tenemos actualmente en un encabezado TCP, que contiene cosas como números de puerto de origen y destino, números de secuencia y reconocimiento e información de ventanas TCP.
[Capa 3]Aquí está la otra capa que realmente nos interesa como ingenieros, la capa de red. Aquí es donde los paquetes se dirigen a sus destinos, necesitamos direcciones IP para llegar a lugares en una red. Nuestra PC / Servidor agregará su dirección IP de origen y destino. Los paquetes no solo llegarán al destino correcto, sino que ese punto final utilizará nuestra dirección IP de origen para enviárnoslo cuando necesite enviarnos datos de cualquier tipo. Ahora, algo a tener en cuenta aquí es que incluso las PC / Servidores pueden tener múltiples interfaces, por lo que debemos enviar los datos al lugar correcto. Nuestra PC / Servidor tendrá una tabla de enrutamiento al igual que los enrutadores, generalmente si es un host de algún tipo, sus paquetes se enrutarán a su puerta de enlace predeterminada con la esperanza de que sepa cómo llevar el paquete a su destino. Vamos a agregar ese encabezado IP y pasarlo a la capa de enlace de datos.
[Capa 2] La tarjeta de interfaz de red (NIC) de nuestra PC / Servidor no sabe hablar IP por sí misma, por lo que utiliza direcciones de control de acceso a medios (MAC) para mover esos datos. Su PC / Servidor tendrá entradas ARP para cada IP que pueda alcanzar, por lo que en este caso tendrá una entrada para su puerta de enlace predeterminada. Su dirección IP de puertas de enlace se correlacionará con una dirección MAC de destino. Así que agreguemos nuestro encabezado L2 a esa dirección MAC de destino, este encabezado también contiene la dirección MAC de nuestra NIC de PC / Servidor como fuente. Ahora tenemos todo lo que necesitamos para poner esos datos en el cable como bits.
[Capa 1] Como mencionó en su pregunta, aquí es donde los datos fluyen a través del cable, es donde vemos los 1 y 0 sin procesar. Ahora no hay un encabezado de capa 1 per se, si miras el diagrama en la capa 2 lo verás. Los datos que están hasta ahora y que tienen todos los encabezados desde L7 hasta L2, se convertirán a esos 1 y 0.
Ahora tenemos bits en el cable, en camino a su enrutador de puerta de enlace. Hasta este momento, su PC / Servidor ha realizado TODO el trabajo encapsulando los datos vinculados al servidor web de google.com.
[Capa 1] Ahora su enrutador de puerta de enlace recibe los 1 y 0. La NIC (interfaz) en el enrutador obtiene esos datos y básicamente dice "¡No tengo idea de cómo leer esto!" y lo lleva a la capa 2 para que pueda leer los datos.
[Capa 2] El enrutador de la puerta de enlace ahora inspecciona el marco L2, dice "está bien que viniste de este MAC, ordenado. Veo que tu MAC de destino se configuró en mi dirección MAC, así que puedo seguir haciendo el trabajo. Desencapsule el encabezado L2 para que pueda ver el encabezado IP (capa 3).
[Capa 3] Su enrutador de puerta de enlace va a mirar la dirección IP de origen y destino ahora. Dice "Está bien, viniste de esta fuente, genial. Tu destino es esta dirección IP. Hmm, no tengo esta dirección IP, pero sé quién la tiene". Buscará una ruta para la dirección IP de destino (google.com) en su tabla de enrutamiento y usará esa entrada.
Después de todo esto, se repite el mismo proceso general. Verificará qué interfaz necesita para enviar el paquete, usará la dirección MAC de esa interfaz, lo convertirá en bits y lo enviará. El próximo enrutador hará lo mismo, y así sucesivamente. En general, estos paquetes solo se eliminarán de nuevo a la capa 7 cuando lleguen a su destino final. Como mencioné antes, los enrutadores solo se preocupan por llevar los paquetes a su destino, por lo que solo se preocupará por la Capa 3, por lo que no tendrá una razón para mirar otra cosa además de lo que necesita para obtener a esa información. Entonces verá información L1 / L2 / L3, pero nada más.
Eventualmente, los datos llegarán al servidor web de destino y en ese punto los datos tendrán sus capas externas despojadas hasta el encabezado HTTP para que el servidor web las lea y haga lo que sea necesario para procesar esa solicitud.
NOTA: Es justo mencionar que otras cosas pueden interferir con el comportamiento típico (firewalls, NAT / PAT, ACL, etc.) Pero es mejor tener una comprensión muy sólida de dónde se está llevando a cabo toda la encapsulación y desencapsulación para comprender cómo afectan a la red y al tráfico.
Con respecto a la capa 1, ¿los preámbulos, las secuencias de inicio de trama, los encabezados de detección de colisión y similares no se considerarían un "encabezado" de nivel 1?
nanofarad
Esto también es muy, muy útil. ¡Gracias por todos esos problemas!
Fibie
Esto es lo glorioso que quería que fuera mi respuesta. ¡Estoy dirigiendo a mi gente de HellDesk a eso!
Smithers
3
Las capas pueden ocurrir en múltiples dispositivos, en múltiples niveles. Cuando golpea mi cortafuegos, por ejemplo, el cortafuegos se despega hasta la Capa 4 para verificar los puertos TCP en mis ACL. Luego vuelve a envolver los datos en la Capa 1, y si estoy haciendo NAT / PAT, incluso (¡jadea) modifica esos datos!) Y los martilla en el cable al siguiente dispositivo, lo que puede profundizar más o no tan profundo.
Las capas del Modelo OSI son más para pensar en las cosas. Puede, o no, necesariamente estar sucediendo con precisión. Algunas cosas suceden en múltiples capas. Un tipo de "pensar en las cosas" es la programación. En términos generales y vagos, cada capa se maneja de forma independiente y se supone que las capas debajo / encima funcionan correctamente.
Pero tan útil como es para pensar en las cosas, por mucho que se use para programar y procesar datos, no olvide que al final, en palabras de Monty Python, "es solo un modelo".
Muchas gracias! Excelente explicación; muy claro. Eso es lo que tenía en mi cabeza ... cosas que subían y bajaban por las capas, emitiendo una imagen visual como la pantalla de un monitor de frecuencia cardíaca que ves en esos programas médicos ;-)
Las capas pueden ocurrir en múltiples dispositivos, en múltiples niveles. Cuando golpea mi cortafuegos, por ejemplo, el cortafuegos se despega hasta la Capa 4 para verificar los puertos TCP en mis ACL. Luego vuelve a envolver los datos en la Capa 1, y si estoy haciendo NAT / PAT, incluso (¡jadea) modifica esos datos!) Y los martilla en el cable al siguiente dispositivo, lo que puede profundizar más o no tan profundo.
Las capas del Modelo OSI son más para pensar en las cosas. Puede, o no, necesariamente estar sucediendo con precisión. Algunas cosas suceden en múltiples capas. Un tipo de "pensar en las cosas" es la programación. En términos generales y vagos, cada capa se maneja de forma independiente y se supone que las capas debajo / encima funcionan correctamente.
Pero tan útil como es para pensar en las cosas, por mucho que se use para programar y procesar datos, no olvide que al final, en palabras de Monty Python, "es solo un modelo".
fuente