¿Qué es un socket de dominio Unix®?
Un socket de dominio Unix® es un tipo de socket especial dentro del sistema operativo (OS) Unix® que transfiere datos de una aplicación a otra. A diferencia de otros sockets, que generalmente se conectan a otros sistemas, el socket de dominio Unix® es un socket de comunicación entre procesos (IPC), lo que significa que solo se conecta a otros programas en la computadora del usuario. Estructuralmente, el socket de dominio se parece más a una tubería con nombre que a un socket, aunque tiene varias características que una tubería no incluye. El uso de sockets de dominio es seguro, porque otras redes no pueden espiar el flujo de datos, y el socket ni siquiera necesita una red para funcionar.
Los sockets, en cada sistema operativo, se usan para transmitir bytes de un programa a otro en un flujo bidireccional, lo que significa que mientras los datos se van, entran otros datos. Esto normalmente se usa como un puente para otros servidores y computadoras, pero no en el caso de un socket de dominio Unix®. Estos sockets especiales se utilizan para enviar datos del sistema de archivos Unix® a otro programa en lugar de a una red externa.
Si bien el zócalo de dominio Unix® comparte muchas tareas y habilidades relacionadas con el zócalo, es más como una tubería con nombre. Una canalización con nombre es una forma para que la computadora transmita datos de una sección a otra. Se denomina canalización con nombre porque la canalización recibe un nombre, al igual que el socket del dominio Unix® tiene un nombre: el sistema de archivos Unix® funciona como el nombre. La principal diferencia entre estos dos es que las canalizaciones solo pueden ofrecer secuencias de flujo de bytes, en las que los datos se leen a medida que se envían, mientras que los zócalos de dominio ofrecen flujo de bytes y datagramas, en los que la información se lee como un paquete. El flujo de bytes es mejor en términos de seguridad, mientras que el datagrama es mejor para los sistemas que envían mensajes continuos.
Los sockets de dominio Unix® no están diseñados para integrarse con redes externas, pero ofrecen muchas funciones convenientes para redes locales, ya sea que una o varias personas estén usando la computadora. Al usar el socket de dominio Unix® en lugar de otros tipos de sockets, los programas pueden obtener autenticación o permiso, sin que el usuario tenga que ingresarlo manualmente. El socket de dominio también adopta las reglas del sistema Unix®, lo que es útil si a diferentes usuarios se les dan diferentes niveles de acceso, porque estas reglas se pueden escribir en el sistema y se les prestará atención.
Más que otros zócalos y tuberías, un zócalo de dominio Unix® es seguro. Los sockets de dominio no permitirán que una red no confiable escuche el flujo de datos, y las computadoras remotas no pueden conectarse al flujo sin acceso. Toda la información de autenticación e inicio de sesión se encuentra en el dominio Unix®, por lo que el usuario nunca tendrá que ingresar una contraseña o nombre de usuario para iniciar sesión en el servidor. Esto significa que los programas que escuchan pulsaciones de teclas no obtendrán esta información.