Unha visión xeral da programación Socket para redes de computadoras

Un socket é unha das tecnoloxías máis fundamentais da programación da rede informática. Os sockets permiten que as aplicacións de software de rede se comuniquen utilizando mecanismos estándar integrados no hardware e sistemas operativos da rede.

Aínda que poida parecer só outra característica do desenvolvemento de software de Internet, a tecnoloxía de toma existiu moito antes da web. E, moitas das aplicacións de software de rede máis populares de hoxe confían nos soquetes.

Que sockets pode facer para a súa rede

Un socket representa unha única conexión entre exactamente dúas pezas de software (unha chamada conexión punto a punto ). Máis de dúas pezas de software poden comunicarse con clientes / servidor ou sistemas distribuídos mediante múltiples tomas. Por exemplo, moitos navegadores web poden comunicarse simultaneamente cun único servidor web a través dun grupo de sockets feitos no servidor.

O software baseado en socket adoita funcionar en dúas computadoras distintas da rede, pero os sockets tamén se poden usar para comunicarse localmente ( interproceso ) nunha única computadora. Os sockets son bidireccionales , o que significa que calquera lado da conexión é capaz de enviar e recibir datos. Ás veces, a única aplicación que inicia a comunicación chámase "cliente" ea outra aplicación do "servidor", pero esta terminoloxía provoca confusión na rede entre iguales e normalmente debería evitarse.

Socket APIs e bibliotecas

Existen varias bibliotecas que implementan interfaces estándar de programación de aplicacións (API) en Internet. O primeiro paquete principal: a Biblioteca de Socket de Berkeley aínda está en uso nos sistemas UNIX. Outra API moi común é a biblioteca de Windows Sockets (WinSock) para os sistemas operativos de Microsoft. En relación a outras tecnoloxías informáticas, as API de socket son bastante maduras: WinSock estivo en uso desde 1993 e tomas Berkeley desde 1982.

As API de socket son relativamente pequenas e simples. Moitas das funcións son similares ás usadas nas rutinas de entrada e saída do ficheiro como read () , write () e close () . As chamadas de función reais dependen do idioma de programación e da biblioteca de sockets escollidos.

Tipos de interface do socket

As interfaces de sockets poden dividirse en tres categorías:

  • Os enchufes de corrente, o tipo máis común, requiren que as dúas partes comunicantes establezan por primeira vez unha conexión de socket, despois de que se garantirá que os datos pasados ​​por esa conexión chegan ao mesmo orden en que foi enviado - a chamada programación orientada á conexión modelo.
  • Os sockets Datagram ofrecen semántica "sen conexión". Con datagramas, as conexións están implícitas en vez de explícitas como con fluxos. Calquera das partes simplemente envía datagramas segundo o necesario e espera que o outro responda; as mensaxes poden perderse en transmisión ou recibidas sen orde, pero é a responsabilidade da aplicación e non os sockets para tratar con estes problemas. A implementación de sockets de datagramas pode dar a algunhas aplicacións un aumento de rendemento e unha flexibilidade adicional en comparación co uso de sockets de transmisión, xustificando o seu uso nalgunhas situacións.
  • O terceiro tipo de socket -the raw socket- ignora o soporte integrado da biblioteca para protocolos estándar como TCP e UDP . Os sockets crus utilízanse para o desenvolvemento personalizado de baixo nivel de protocolo.

Soporte de socket en protocolos de rede

Os enchufes de rede modernos úsanse habitualmente en conxunto cos protocolos de Internet: IP, TCP e UDP. As bibliotecas que implementan sockets para o protocolo de Internet usan TCP para fluxos, UDP para datagramas e IP en si mesmos para tomas en bruto.

Para comunicarse a través de Internet, as bibliotecas de sockets IP utilizan o enderezo IP para identificar computadoras específicas. Moitas partes de Internet funcionan con servizos de nomeamento, de maneira que os usuarios e programadores de socket poden traballar con computadoras por nome ( por exemplo , "thiscomputer.wireless.about.com") no canto de por enderezo ( por exemplo , 208.185.127.40). Os enchufes de transmisión e datagrama tamén usan números de porto IP para distinguir entre varias aplicacións. Por exemplo, os navegadores web en Internet saben usar o porto 80 como o predeterminado para as comunicacións de socket cos servidores web.