Articles

¿Qué es un Socket?

Anuncios

Sockets permiten la comunicación entre dos procesos diferentes en el mismo o en diferentes máquinas. Para ser más precisos, es una forma de hablar con otros equipos utilizando descriptores de archivos Unix estándar. En Unix, cada acción de E / S se realiza escribiendo o leyendo un descriptor de archivo. Un descriptor de archivo es solo un entero asociado a un archivo abierto y puede ser una conexión de red, un archivo de texto, un terminal u otra cosa.

Para un programador, un socket se ve y se comporta como un descriptor de archivo de bajo nivel. Esto se debe a que 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.1 BSD y posteriormente se refinaron a su forma actual con 4.2 BSD. La función sockets ahora está disponible con la mayoría de las versiones actuales del sistema UNIX.

¿Dónde se usa el Socket?

Un socket Unix se utiliza en un framework de aplicaciones cliente-servidor. Un servidor es un proceso que realiza algunas funciones a petición de un cliente. La mayoría de los protocolos de nivel de aplicación como FTP, SMTP y POP3 hacen uso de sockets para establecer la conexión entre el cliente y el servidor y luego para intercambiar datos.

Tipos de sockets

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

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

  • Sockets de transmisión: la entrega en un entorno de red está garantizada. Si envía a través del conector de corriente 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.

  • Sockets de datagramas: no se garantiza la entrega en un entorno de red. No tienen conexión porque no necesita tener una conexión abierta como en los Sockets de transmisión: crea un paquete con la información de destino y lo envía. Utilizan UDP (Protocolo de Datagramas de Usuario).

  • Sockets sin procesar: proporcionan a los usuarios acceso a los protocolos de comunicación subyacentes, que admiten abstracciones de sockets. Estos sockets normalmente están orientados a datagramas, aunque sus características exactas dependen de la interfaz proporcionada por el protocolo. Los sockets raw no están destinados al usuario en 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.

  • Sockets de paquetes secuenciados: Son similares a un socket de flujo, con la excepción de que los límites de registro se conservan. Esta interfaz se proporciona solo como parte de la abstracción de sockets de Sistemas de Red (NS), y es muy importante en la mayoría de las aplicaciones NS 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 van a enviar, o especificando un encabezado predeterminado que se utilizará con todos los datos salientes, y permite al usuario recibir los encabezados de los paquetes entrantes.

¿Qué 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 pocos capítulos iniciales para crear su base antes de continuar con la programación.

Anuncios