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 () tt>, write () tt> e close () tt> . 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.