¿Funciona un socket de red en la capa 4 o 5 de un modelo OSI o un modelo TCP / IP? Si funciona en la capa 4, entonces qué hace realmente la capa de sesión, cuando los sockets son las conexiones reales que actúan como una interfaz entre la aplicación y las capas inferiores.

La interfaz de programación de socket, creada en BSD Unix (Sys V usa Streams) y luego copiada en Windows, generalmente opera en la capa 4 para la mayoría de las aplicaciones. La API en sí no es específica para la capa 4 y puede usarse para las capas 2, 3 y 4, sin embargo, el acceso a las capas 2 y 3 está restringido a usuarios privilegiados (por ejemplo, root) en todas las implementaciones que conozco.
El argumento familia / dominio indica el tipo de socket de la capa 3, o la capa 2 si se usa AF_RAW. Normalmente, la constante AF_INET se usa para especificar IPv4 (AF_INET6 para IPv6) para la capa 3. El parámetro tipo especifica la capa 4, generalmente SOCK_STREAM para TCP o SOCK_DGRAM para UDP. SOCK_RAW da acceso al paquete IP de nivel 3. Hay otras opciones para la familia y el tipo, pero esas tienden a no ser comunes, aunque AF_IPX y SOCK_SEQPACKET eran populares cuando los protocolos de red de Novell todavía competían con TCP / IP en el siglo anterior.

Incidentalmente, las interfaces de programación HTTP, HTTPS son protocolos de capa 5 basados ​​en sesión.
Los protocolos de codificación de datos (por ejemplo, MIME, HTML) son la capa 6
Un navegador web es la capa 7.

Un ejemplo de uso de una capa de sesión es mapear una sesión en múltiples sockets. FTP es un buen ejemplo de esto, con un socket como puerto de control (21) y otro como puerto de transferencia de datos (20). Creo que HTTP y las cookies pueden ser otro ejemplo de esto, donde se pueden usar múltiples sockets para transferir datos para una sesión web.

El uso de la terminología de capa está bien definido y es común para las capas 1-4. Las capas superiores a 4 no están tan claramente definidas ni referenciadas con tanta frecuencia.

El modelo de red OSI es solo un modelo conceptual. La pila TCP / IP se puede asignar a ella, pero solo de manera imperfecta. TCP se ajusta bastante bien a la capa 4, por lo que generalmente decimos que la API de sockets representa la interfaz en la parte superior de L4. Eso significa que la aplicación en sí más la biblioteca de sockets representa la funcionalidad de L5–7, sin estar necesariamente estructurada exactamente así en tres “capas”.

La capa 5 siempre ha sido un problema. El modelo OSI muestra que ocupa un papel entre Transporte y Presentación, que satisface un marco teórico que insiste en que todo está en capas. En la práctica, la configuración y la gestión de la sesión deben ser conscientes e interactuar con varias otras capas. La única pila que he visto con algo que parece una “capa” de sesión es el SNA de IBM; y para ser honesto, nunca penetré en la jerga arcana (¿alguien de “media sesión”) lo suficiente como para entender realmente lo que está haciendo SNA?

Aplicar el modelo OSI a la pila TCP / IP es como usar una regla para medir el peso: está comparando dos cosas muy diferentes.

Los sockets (suponiendo que se refiere al modelo BSD y un socket TCP) le dan un flujo de bits opaco. El zócalo en sí mismo es la capa 4 (transporte) y luego su aplicación se coloca encima. TCP / IP no tiene capa de sesión. Y sin capa de presentación.