¿Qué es un Socket?

Autor: | Última modificación: 14 de marzo de 2022 | Tiempo de Lectura: 3 minutos
Temas en este post:

Un Socket o enchufe es el punto final en una conexión, es decir, un dispositivo o elemento electrónico que se genera gracias al sistema operativo y que permite el envío e información de otros procesos que también hagan uso de estos. Puede definirse también como un mecanismo ideado para la comunicación entre un programa del servidor y un programa del cliente en una red.

Además, se caracteriza por su interconectividad, es decir, que permite enviar y recibir información entre procesos, incluso cuando estos se encuentran ubicados en diferentes máquinas.

Su origen puede remontarse hacia principios de la década de los 80, cuando el sistema Unix de Berkeley buscaba diseñar un mecanismo que permitiera la comunicación entre procesos que contara con las mismas funcionalidades que la comunicación por correo o por teléfono.

Funcionamiento

Dentro de los principios básicos que rigen el funcionamiento de un socket, se puede encontrar que para que ocurra el proceso de comunicación entre dos programas, es necesario que uno de los programas pueda localizar o ubicar al otro; igualmente, ambos programas deben contar con la capacidad de intercambiar entre sí, cualquier secuencia de octetos o de datos que resulten relevantes para sus objetivos.

Además de esto, permite la implementación de una arquitectura basada en el modelo cliente-servidor, donde la comunicación debe iniciarse por parte de uno de los programas «cliente»; mientras tanto, el programa servidor se encuentra a la espera de que el programa cliente inicie la comunicación. Por lo tanto, su función será la de permitir la lectura y escritura de información de los programas servidores y clientes, que posteriormente será transmitida por las diferentes capas de red del sistema.

De manera que, el socket aparece cuando un programa cliente establece conexión con un programa servidor. Así pues, el servidor puede continuar a la espera de conexiones en el socket principal, al tiempo que se comunica con el programa cliente con el que se conectó.

Tipos de socket

Usualmente los sockets son asociados a algún tipo de protocolo, como es el caso de los sockets SOCK_STREAM y SOCK_DGRAM. De modo que:

SOCK_STREAM

🔴 ¿Quieres entrar de lleno al mundo DevOps & Cloud Computing? 🔴

Descubre el DevOps & Cloud Computing Full Stack Bootcamp de KeepCoding. La formación más completa del mercado y con empleabilidad garantizada

👉 Prueba gratis el Bootcamp en DevOps & Cloud Computing por una semana

En el caso del SOCK_STREAM o socket de flujo, se asocia al Transmission Control Protocol (TCP) o Protocolo de Transmisión de informaciones. Este tipo de sockets establece conexión antes de la comunicación y garantiza la consistencia en los bytes de los datos que se reciben y en la secuencia de envío. Además, asegura la recepción sin errores de los datos, así como seguridad a la transmisión y recepción de la información.

SOCK_DGRAM

El Datagram Socket por su lado, se encuentra asociado al Protocolo de Datagramas de Usuario (UDP). El SOCK_DGRAM se encargará del viaje de los paquetes en formato de datagrama. Los paquetes enviados por este tipo de sockets pueden llegar a extraviarse si que el receptor se entere que ocurrió esa pérdida. Es recomendable para la transmisión de datos como video y audio.

Sockets de placa base

Así mismo, es posible establecer ciertos tipos de sockets respecto a la placa base, como por ejemplo PGA Pin Grid Array, LGA Land Grid Array Y BGA Ball Grid Array.

En los sockets de placa base PGA los pines están distribuidos en el propio procesador, lo que lo hace más resistente a cambiar el procesador utilizado con la placa. Por otro lado, en los LGA los pines se encuentran en la placa base y en el procesador solo se encuentran contactos eléctricos. Finalmente, los BGA son usados para soldar el procesador a la placa base.

¿Cuál es el siguiente paso?

Ahora que ya conoces qué es un socket o enchufe, cuáles son sus principales características y cuáles son los tipos de socket que existen, no dudes en continuar tu formación a través de nuestro DevOps & Cloud Computing Full Stack Bootcamp, donde en poco tiempo podrás aprender acerca de esta y otras herramientas y metodologías que te permitirán mejorar y acelerar tus procesos de desarrollo tecnológico y así obtener una ventaja sobre tus competidores del sector IT.

[email protected]