Zócalo (interfaz de software)

La versión actual de la página aún no ha sido revisada por colaboradores experimentados y puede diferir significativamente de la versión revisada el 2 de septiembre de 2018; las comprobaciones requieren 10 ediciones .

Socket ( inglés  socket  - conector) - el nombre de la interfaz de software para proporcionar intercambio de datos entre procesos . Los procesos en dicho intercambio pueden ejecutarse tanto en una computadora como en diferentes computadoras, interconectadas solo por una red . Un socket es un objeto abstracto que representa el punto final de una conexión.

Se debe hacer una distinción entre sockets de cliente y de servidor . Los sockets de cliente se pueden comparar aproximadamente con los dispositivos finales de la red telefónica y los sockets de servidor con switches . Una aplicación de cliente (por ejemplo, un navegador ) usa solo sockets de cliente, y una aplicación de servidor (por ejemplo, un servidor web al que el navegador envía solicitudes) usa tanto sockets de cliente como de servidor.

La interfaz de socket apareció por primera vez en BSD Unix . La API de socket se define en el estándar POSIX.1 y es compatible hasta cierto punto con todos los sistemas operativos modernos .

Principios del zócalo

Las direcciones y los puertos se utilizan para comunicarse entre máquinas mediante la pila de protocolos TCP/IP . La dirección es una estructura de 32 bits para el protocolo IPv4 , 128 bits para IPv6 . El número de puerto es un número entero en el rango de 0 a 65535 (para el protocolo TCP ).

Este par define un socket (un "socket" correspondiente a una dirección y un puerto ).

En el proceso de intercambio, por regla general, se utilizan dos sockets: el socket del remitente y el socket del destinatario. Por ejemplo, al acceder al servidor en el puerto HTTP , el socket se verá así: 194.106.118.30:80, y la respuesta será mmm.nnn.ppp.qqq:xxxxx.

Cada proceso puede crear un socket de "escucha" (socket de servidor) y vincularlo a algún puerto del sistema operativo (en UNIX , los procesos sin privilegios no pueden usar puertos inferiores a 1024).

El proceso de escucha suele estar en un bucle de espera, es decir, despertándose cuando aparece una nueva conexión. Al mismo tiempo, sigue siendo posible verificar las conexiones en este momento, establecer un tiempo de espera para la operación, etc.

Cada socket tiene su propia dirección. Los sistemas operativos de la familia UNIX pueden admitir muchos tipos de direcciones, pero se requieren la dirección INET y la dirección UNIX . Si vincula un socket a una dirección UNIX, se creará un archivo especial (archivo de socket ) en la ruta dada, a través del cual cualquier proceso local puede comunicarse leyendo/escribiendo desde él (consulte el socket de dominio de Unix ). Los sockets INET son accesibles desde la red y requieren que se les asigne un número de puerto.

Por lo general, el cliente se "adjunta" explícitamente al oyente, después de lo cual cualquier lectura o escritura en su descriptor de archivo transferirá datos entre él y el servidor.

Véase también

Notas