Estoy haciendo un proyecto y tengo que describir el proceso de un ping de la capa 7 a la 1. Ping usa ICMP, que es la capa 3, por lo que los datos se encuentran debajo de un encabezado de capa 3. ¿Significa esto que hay capas superiores que simplemente no importan, o todavía se usan de alguna manera?
Respuesta1
Utiliza la capa de aplicación (7 o 4 según su modelo) y 3 e inferior. ICMP no es un protocolo tan flexible como TCP o UDP, por lo que proporciona un conjunto de funciones bastante limitado.ICMPsoporta hasta255 tipos de mensajes de comandoy lo hace internamente, en lugar de utilizar un protocolo de capa superior para distribuir E/S de red a los procesos.
Por lo tanto, la Aplicación impulsa el uso de Mensajes de Comando para controlar la red. por ejemplo, Ping es una aplicación que crea una estructura de datos adecuada para un paquete ICMP y lo envía al sistema operativo para enviarlo a una IP. luego espera a que IO regrese. cuando la pila de IP recibe la respuesta de eco, pasa esa IO al programa, que luego puede imprimir mensajes para el usuario.
Al igual que TCP/IP, la capa de aplicación controla y coordina todas las operaciones primitivas proporcionadas por la pila de red, para construir capacidades de valor para los usuarios modernos.
Si eres un tipo con mentalidad de código, consideraeste fragmento de códigomás en SO. escuchará un mensaje ICMP y lo imprimirá en la salida del programa. puede ver que establece un "socket sin formato" para ICMP, vincula ese socket a una interfaz IP (ambas operaciones de capa 3), establece algunas estructuras de datos y lee desde el IO del socket, buscando una respuesta. Cuando se recibe un mensaje ICMP, su región de datos aparecerá en el flujo IO del programa y se imprimirá en la pantalla. Está bastante bien.
Edite según lo solicitado:
Por lo tanto, el modelo OSI es una representación abstracta de una manera de pensar en las responsabilidades de modo que las tareas tengan requisitos previos (las características de los protocolos utilizados en las capas inferiores) y condiciones posteriores que deben cumplir. La otra cosa que hace el modelo es establecer medios para canalizar los datos a través de cada una de estas tareas.
El objetivo principal del modelo OSI es proporcionar una descripción de un medio para que las aplicaciones envíen y reciban mensajes de red fácilmente, de una manera que se abstraiga de la configuración del sistema, haciéndolo portátil entre sistemas. Al principio, las aplicaciones tenían que reescribirse para funcionar con otras plataformas y configuraciones, porque la aplicación tenía que hacerlo todo por sí misma. Al separar las responsabilidades, el programa puede centrarse simplemente en su trabajo, y eso no variará mucho entre sistemas. Además, los administradores del sistema y de la red pueden cambiar la forma en que el sistema se conecta a otros sistemas, sin afectar en absoluto la aplicación.
La parte inferior de la pila OSI tiene que ver con los estándares de red esenciales para la interconexión del sistema. Todos tienen que hacer estas cosas de la misma manera o nada funcionará. Todos los fabricantes tienen la responsabilidad vinculante de respetar estas normas para tener productos que puedan vender.
Sin embargo, los proveedores de sistemas operativos están menos interesados en reglas y estructuras rígidas que impidan que su plataforma se destaque del resto. La razón por la que nunca ha existido un sistema totalmente compatible con OSI es que ningún proveedor de sistema operativo quiere escribir uno.
Entonces, las capas OSI 1 a 4 son sólidas, predecibles y esenciales. Sin embargo, las capas 5 y 6 son completamente opcionales. Las aplicaciones escribirán el código para utilizarlas o no, dependiendo de lo que necesiten.
La mayoría de las aplicaciones modernas simplemente leen datos del segmento del protocolo de transporte. En esos casos no hay datagramas encapsulados para L5/L6. los datos en la carga útil del segmento son los datos de la aplicación, por lo que la aplicación simplemente conecta secuencias de IO al puerto L4 y lee/escribe en/desde él.
En el caso de ICMP, dado que no utiliza Layer4, la aplicación simplemente lee el socket IP sin formato. Mismo concepto.
Capa 5solo se utiliza para aplicaciones que requieren proxy de red o tunelización. La carga útil de este datagrama suele ser otra trama o paquete que se envía a través de un túnel, o un segmento que se envía a través de un proxy SOCKS. Por lo general, la aplicación no sabrá que hay un proxy en juego o hará uso del sistema operativo para manejar la capa 5 si es aplicable para ese sistema, aunque algunas aplicaciones en algunos sistemas operativos pueden controlar la decapsulación de datagramas L5. A menudo, las operaciones L5 se manejan en el kernel con el uso de un controlador (adaptador de red virtual VPN, proxy del sistema, etc.).
Es notable que la mayoría de los protocolos de capa 5 se utilizan para controlar la interacción que no tiene nada que ver con el deseo de las aplicaciones de enviar/recibir mensajes y, por lo general, tampoco tiene significado para ninguno de los sistemas involucrados en la comunicación. generalmente se usa para controlar la red para que esos dos sistemas PUEDAN hablar. De hecho, la mayoría de las veces el sistema operativo intercepta el flujo de datos de las aplicaciones y una aplicación del sistema maneja la encapsulación del datagrama externo, por lo que toma los paquetes de las aplicaciones y los coloca en otros paquetes que la aplicación ni siquiera conoce. existir. La aplicación del sistema tiene el control de los datos en ese momento.
Capa 6Realmente no se usa. En cualquier marco de programación que he usado, la codificación se maneja en la aplicación, utilizando las bibliotecas apropiadas. Es posible que las aplicaciones escriban en operaciones de capa 6 si así lo desean, utilizando los codificadores/decodificadores del sistema operativo o proporcionando los suyos propios, pero en mi experiencia esto generalmente lo maneja la aplicación y no afecta la encapsulación de datagramas.
Entonces, al final del día, todo esto tiene el propósito de brindarle a una aplicación flujos de E/S que pueda leer y escribir para enviar y recibir mensajes a través de la red, casi sin conocimiento previo de cómo funciona la red. De eso se trata el 100% del networking moderno.
Si un sistema utiliza un proxy para todo el sistema o una VPN, generalmente encapsulará automáticamente el datagrama L5, de modo que la aplicación que lo envía ni siquiera sabrá que está allí. en el extremo receptor, el encabezado L5 ya se habrá eliminado en el momento en que se reciba, porque ha sido procesado por el servidor proxy o el punto final VPN, por lo que el sistema operativo remoto simplemente canaliza los datos fuera de la carga útil de la capa 4 a la aplicación.
Por lo tanto, un paquete determinado solo tendrá tantas capas encapsuladas como sea necesario para realizar el trabajo. Hay aplicaciones de bajo nivel que operan solo en la capa 2 y no contienen componentes L3+. Hay aplicaciones de capa de red que no usan L4+, por lo que no encapsulan nada superior (como ICMP). Debes tener todas las capas debajo de aquella en la que deseas operar, pero no necesitas ninguna encima. Las aplicaciones más comunes se centran en la lectura y escritura en la capa 4 y dejan que el sistema operativo se ocupe de las capas 5 y 6 según sea necesario.
Finalmente, puedo entender por qué estás confundido y por qué es difícil encontrar buena información sobre este tema. Para comprenderlo realmente todo, es necesario tener ciertos conocimientos sobre redes, programación de aplicaciones y diseño de sistemas operativos, por lo que me ha llevado muchos años llegar a sentir que entiendo lo suficiente cómo funciona todo.
Respuesta2
ICMP es elProtocolo de mensajes de control de Internet. Como su nombre lo indica, ICMP es unprotocolo de Internet. EsnounOSIprotocolo.
La pila del Protocolo de Internet sólo tiene cuatro capas:
- Solicitud
- Transporte
- Internet
- [Enlace] (se supone que esta capa existe fuera de Internet, no está especificada por la propia pila del Protocolo de Internet)
ICMP es un protocolo de capa de Internet, que es la capa 2 de la pila de protocolos de Internet.
Existen otros modelos en capas populares para redes, por ejemplo la pila Ethernet:
- Capa de enlace
- Control de enlace lógico (LLC)
- Control de acceso a medios (MAC)
- Subcapa de reconciliación (RS)
- fisico
- Subcapa de codificación física (PCS)
- Subcapa de conexión de medio físico (PMA)
- Subcapa dependiente del medio físico (PMD)
Todas estas 8 capas y subcapas juntas corresponden a una sola capa en la pila del Protocolo de Internet, la capa de Enlace. Y corresponden a dos capas en la pila del protocolo OSI, la capa física y la capa de enlace de datos.
Como puede ver, todas estas pilas diferentes tienen diferentes capas y no hay garantía de que un protocolo de una pila, por ejemplo IEEE 802.3cd de la pila Ethernet o ICMP de la pila de Internet, pueda asignarse perfectamente a una pila diferente. .
Por ejemplo, no puede asignar ICMP a la pila Ethernet. Puedeintentarasignar IEEE 802.3cd a la pila de Internet, pero eso será realmente impreciso: todo lo que puede decir es que pertenece a la capa de Enlace, pero en la pila de Ethernet, esa capa se divide en 8 capas y subcapas, y IEEE 802.3cd Sólo pertenece a uno de ellos, no a todos.
Asimismo, si intentas mapear IEEE 802.3cd a la pila OSI, lo único que puedes decir es que pertenece a la capa Física, pero en la pila Ethernet, eso corresponde a tres subcapas diferentes, y IEEE 802.3cd solo pertenece a una de aquellos.