Articulo de referencia

socket de dominio Unix

Un socket de dominio Unix ( UDS ), también llamado socket local o socket de comunicación entre procesos ( IPC ) , es un punto final de comunicación utilizado para el intercambio...

Un socket de dominio Unix ( UDS ), también llamado socket local o socket de comunicación entre procesos ( IPC ) , es un punto final de comunicación utilizado para el intercambio de datos entre procesos que se ejecutan en el mismo sistema operativo Unix o similar a Unix .

El término socket de dominio Unix se refiere al domainvalor del argumento AF_UNIXque se pasa a la llamada al sistema que crea el socket. El mismo dominio de comunicación también se puede seleccionar con AF_LOCAL. [ 1 ]

Los valores de argumento válidos typepara un UDS son: [ 1 ]

  • SOCK_STREAM(comparar con TCP ) – un socket orientado a flujo
  • SOCK_DGRAM(comparar con UDP ) – un socket orientado a datagramas que conserva los límites de los mensajes; en la mayoría de las implementaciones de Unix, los sockets de datagramas de dominio Unix son fiables y no reordenan los datagramas.
  • SOCK_SEQPACKET(comparar con SCTP ) – un socket de paquetes secuenciados orientado a la conexión que conserva los límites de los mensajes y los entrega en el orden en que se envían.

La función UDS es un componente estándar de un sistema operativo POSIX .

La API de un UDS es similar a la de un socket de Internet , pero en lugar de usar un protocolo de red subyacente, la comunicación se realiza completamente dentro del núcleo del sistema operativo . Un UDS puede usar el sistema de archivos como su espacio de nombres de direcciones . Algunos sistemas operativos, como Linux , proporcionan espacios de nombres adicionales. Los procesos se refieren a un UDS a través de un inodo del sistema de archivos , lo que permite que dos procesos se comuniquen abriendo el mismo socket.

Además de enviar datos, los procesos pueden pasar descriptores de archivo a través de una conexión UDS mediante las llamadas sendmsg()al recvmsg()sistema. Esto permite que un proceso otorgue a otro acceso a un descriptor de archivo que de otro modo no podría usar. [ 2 ] [ 3 ] Esto puede utilizarse para implementar una forma rudimentaria de seguridad basada en capacidades . [ 4 ]

Véase también

  • Socket de red : punto final basado en software para comunicaciones de red. 
  • Sockets de Berkeley : API de comunicación entre procesos 
  • Tubería (Unix) – Mecanismo para la comunicación entre procesos mediante paso de mensajes 
  • Netlink : interfaz del kernel de Linux para la comunicación entre procesos. 

Referencias

  1. 1 2 "Manual del programador de Linux (unix - sockets para comunicación local entre procesos)" . 30 de abril de 2018. Consultado el 22 de febrero de 2019 .
  2. "Archivo de la lista de correo "Postfix Discussions"" . 30 de septiembre de 2000. Archivado del original el 18 de mayo de 2013. Consultado el 29 de septiembre de 2014 .
  3. "Página man de Linux - cmsg(3): acceso a datos auxiliares" . Consultado el 9 de octubre de 2018 .
  4. ""Programación segura para Linux y Unix: Guía práctica", Sección 3.4 "Sockets y conexiones de red"" . dwheeler.com . David A. Wheeler. 22 de agosto de 2004 . Consultado el 29 de septiembre de 2014 .