Estructuras de Datos para los Sockets.
El camino más fácil para entender en profundidad la abstracción socket es visualizar las estructuras de datos manejadas por el sistema operativo. Cuando una aplicación invoca la llamada socket, el sistema operativo aloja una nueva estructura de datos que contiene la información necesaria para comunicar, y rellena la nueva entrada de la tabla de descriptores con un puntero que apunta a la estructura de datos recién creada. La siguiente figura muestra lo que ocurre después de que un proceso de usuario invoca a la llamada al sistema socket :

El camino más fácil para entender en profundidad la abstracción socket es visualizar las estructuras de datos manejadas por el sistema operativo. Cuando una aplicación invoca la llamada socket, el sistema operativo aloja una nueva estructura de datos que contiene la información necesaria para comunicar, y rellena la nueva entrada de la tabla de descriptores con un puntero que apunta a la estructura de datos recién creada. La siguiente figura muestra lo que ocurre después de que un proceso de usuario invoca a la llamada al sistema socket :

En el ejemplo anterior, en los argumentos de la llamada al sistema socket se ha especificado la familia de protocolos PF_INET y el tipo de servicio SOCK_STREAM.
Aunque la estructura de datos para el socket contiene muchos campos, el sistema operativo deja muchos de ellos en blanco cuando se crea el socket. Como veremos a continuación, la aplicación que creó el socket debe realizar llamadas al sistema adicionales para rellenar la información contenida en la estructura de datos socket antes de que el socket pueda ser utilizado.
Empleo de Sockets.
Una vez el socket ha sido creado, puede ser utilizado para esperar conexiones o para iniciar una conexión. Al socket empleado por un servidor para esperar conexiones entrantes se le conoce como socket pasivo, mientras que al socket empleado por un cliente para iniciar una conexión se le conoce como socket activo. La única diferencia entre los sockets activos y pasivos radica en como son utilizados por la aplicación que los ha creado ; ya que estos se crean del mismo modo.