O que são Sockets
Tese: O que são Sockets. Pesquise 862.000+ trabalhos acadêmicosPor: Edersonao • 22/9/2013 • Tese • 662 Palavras (3 Páginas) • 486 Visualizações
O que são Sockets?
Socket é o elo entre os processos do servidor e do cliente. Ele é a “porta” na qual os processos enviam e recebem mensagens. De acordo com JAMES F KUROSE: “socket é a interface entre a camada de aplicação e a de transporte dentro de uma máquina”.
Temos dois tipos de serviços de transporte via socket: o confiável orientado a cadeia de bytes (byte steam) e os datagramas não confiáveis. O protocolo na qual é implementado o primeiro é o TCP, já o segundo é implementado no protocolo UDP.
Cada socket tem um endereço único na internet. Este endereço é formado por um número IP e por um número de porta. Devido às grandes dimensões da internet, não há como uma pessoa, ou mesmo uma máquina, saber o endereço de todas as outras. Para resolver este problema foi criado protocolo DNS (Domain Name Service). Este protocolo tem a função de traduzir os nomes ou endereços de alto nível das máquinas para o seu respectivo número IP. Assim, ao se passar o endereço de um socket de um servidor, não se passa diretamente seu número IP, mas sim um nome mais fácil de recordar e então o DNS traduz para o endereço real, ou endereço IP.
Os sockets podem ser usados para comunicação via qualquer um dos protocolos UDP ou TCP. Assim, é possível termos tanto comunicação orientada a conexão (via TCP), quanta não orientada a conexão (via UDP). O socket abstrai esse conceito, permitindo assim a utilização de qualquer um dos meios.
Como funcionam os Sockets?
Tem-se o servidor, que fica esperando por conexões de entrada e que fornece certos tipos de serviços à outra parte. Já o Cliente vem a ser quem solicita a conexão ao servidor para fazer alguma requisição, algum pedido. É importante dizer que não é o computador que distingue quem é servidor e quem é cliente, mas sim a forma como certo programa usa os sockets. Às vezes também se faz confusão no fato de se pensar que um servidor precisa ser um mainframe. Desktops como os que usamos em casa funcionam tanto como cliente quanto como servidor, e é o que ocorre frequentemente.
Inicialmente o cliente deve contactar o servidor. Para isso, o processo servidor já deve estar executando o programa antes de ser contactado além de já ter criado o socket (porta) que aceita o contato do cliente. O cliente contacta o servidor criando um socket TCP local e especifica o endereço IP e o número da porta do processo servidor. Quando o servidor é contactado o servidor cria um novo socket para se comunicar com o cliente, permitindo assim a liberação do socket de “boas-vindas” para que possa ser contactado por outros clientes.
A comunicação entre processos também é possível por UDP. Entretanto, UDP é um serviço sem conexão. Com isso, não há o three-way handshaking (ou apresentação de três vias)inicial, e assim não há um canal pré-estabelecido entre os processos. Para que a comunicação entre os processos seja possível, deve-se incorporar ao conjunto de bytes enviados tanto o endereço IP do destino quanto a porta do processo de destino. Este conjunto (bytes + endereço IP + porta) recebe o nome de pacote.
Com o pacote criado, ele é colocado na rede através do socket. O processo receptor deverá abrir o
...