¿Qué es un enchufe?

Los sockets permiten la comunicación entre dos procesos diferentes en la misma o diferentes máquinas. Para ser más precisos, es una forma de hablar con otras computadoras usando descriptores de archivos estándar de Unix. En Unix, cada acción de E / S se realiza escribiendo o leyendo un descriptor de archivo. Un descriptor de archivo es solo un número entero asociado con un archivo abierto y puede ser una conexión de red, un archivo de texto, una terminal u otra cosa.

Para un programador, un socket se ve y se comporta de manera muy similar a un descriptor de archivo de bajo nivel. Esto se debe a que los comandos como read () y write () funcionan con sockets de la misma manera que lo hacen con archivos y tuberías.

Los sockets se introdujeron por primera vez en 2.1BSD y posteriormente se refinaron a su forma actual con 4.2BSD. La función de sockets ahora está disponible con la mayoría de las versiones actuales del sistema UNIX.

¿Dónde se usa el zócalo?

Un Unix Socket se utiliza en un marco de aplicación cliente-servidor. Un servidor es un proceso que realiza algunas funciones a pedido de un cliente. La mayoría de los protocolos de nivel de aplicación como FTP, SMTP y POP3 utilizan sockets para establecer una conexión entre el cliente y el servidor y luego para intercambiar datos.

Tipos de enchufe

Hay cuatro tipos de enchufes disponibles para los usuarios. Los dos primeros son los más utilizados y los dos últimos rara vez.

Se presume que los procesos se comunican solo entre sockets del mismo tipo, pero no existe ninguna restricción que impida la comunicación entre sockets de diferentes tipos.

  • Stream Sockets- Se garantiza la entrega en un entorno en red. Si envía a través del conector de flujo tres elementos "A, B, C", llegarán en el mismo orden: "A, B, C". Estos sockets utilizan TCP (Protocolo de control de transmisión) para la transmisión de datos. Si la entrega es imposible, el remitente recibe un indicador de error. Los registros de datos no tienen límites.

  • Datagram Sockets- No se garantiza la entrega en un entorno de red. No tienen conexión porque no necesita tener una conexión abierta como en Stream Sockets; crea un paquete con la información de destino y lo envía. Usan UDP (Protocolo de datagramas de usuario).

  • Raw Sockets- Proporcionan a los usuarios acceso a los protocolos de comunicación subyacentes, que admiten abstracciones de socket. Estos sockets están normalmente orientados a datagramas, aunque sus características exactas dependen de la interfaz proporcionada por el protocolo. Los enchufes sin procesar no están destinados al usuario general; se han proporcionado principalmente para aquellos interesados ​​en desarrollar nuevos protocolos de comunicación o para obtener acceso a algunas de las instalaciones más crípticas de un protocolo existente.

  • Sequenced Packet Sockets- Son similares a un socket de transmisión, con la excepción de que se conservan los límites de registro. Esta interfaz se proporciona solo como parte de la abstracción de sockets de Network Systems (NS) y es muy importante en las aplicaciones NS más serias. Los sockets de paquetes secuenciados permiten al usuario manipular los encabezados del Protocolo de paquetes de secuencia (SPP) o del Protocolo de datagramas de Internet (IDP) en un paquete o grupo de paquetes, ya sea escribiendo un encabezado prototipo junto con los datos que se enviarán especifica un encabezado predeterminado que se utilizará con todos los datos salientes y permite al usuario recibir los encabezados de los paquetes entrantes.

¿Lo que sigue?

Los siguientes capítulos están destinados a fortalecer sus conceptos básicos y preparar una base antes de que pueda escribir programas de servidor y cliente utilizando socket . Si desea saltar directamente para ver cómo escribir un programa cliente y servidor, puede hacerlo, pero no se recomienda. Se recomienda encarecidamente que vaya paso a paso y complete estos capítulos iniciales para hacer su base antes de pasar a la programación.