Redes informáticas/Protocolos TCP/IP en el nivel de sesión
Para que dos equipos puedan intercambiar información entre sí, debe establecerse una sesión o conexión entre ambos.
Esta sesión hace transparente los niveles inferiores, vale decir que es independiente de los protocolos de enlace de datos o los medios físicos involucrados.
Para que esto sea posible, en cada equipo se habilita un puerto para cada protocolo de presentación utilizado.
Un puerto es un número de 2 bytes que puede asignarse arbitrariamente, si bien existe una serie de números de puerto que se asignan a protocolos determinados, aún cuando no están normalizados.
La combinación de un número de puerto con una dirección IP se denomina conector o socket.
La combinación de dos sockets, es lo que se denomina sesión o conexión.
Esto permite que un mismo equipo inicie sesiones con varios otros (multiplexado de datos).
En el caso de un servidor, para un servicio determinado tendrá habilitado un socket (IP+puerto) pero los clientes, aún cuando se conecten a traves del mismo puerto, al tener direcciones IP distintas tendrán distintos sockets, con lo que el servidor verá conexiones distintas.
En el caso de los clientes, sucede algo similar, con el agregado que para un mismo servicio se pueden habilitar diferentes puertos lo que permite, por ejemplo, navegar simultáneamente por varias páginas alojadas en el mismo servidor: el socket remoto es el mismo, pero localmente se abre un socket para cada una de ellas.