TrabalhosGratuitos.com - Trabalhos, Monografias, Artigos, Exames, Resumos de livros, Dissertações
Pesquisar

Comunicação Pela Rede Através de Sockets

Por:   •  13/11/2018  •  Artigo  •  1.333 Palavras (6 Páginas)  •  439 Visualizações

Página 1 de 6

Comunicação pela rede através de sockets

  1. Introdução

Quem gosta de tecnologia, certamente já se questionou como determinados sistemas funcionam e se comunicam. Atualmente existem algumas tecnologias que permitem a comunicação entre máquinas. Uma das tecnologias/mecanismos mais comuns para comunicação entre elas são os chamados sockets, um mecanismo de comunicação normalmente utilizado para implementar um modelo cliente/servidor, que permite a troca de mensagens entre os processos de uma máquina/aplicação servidor e de uma máquina/aplicação cliente.

  1. Desenvolvimento

O que são sockets?

Os soquetes fornecem ao programador uma facilidade para permitir que seus aplicativos se comuniquem através de uma rede. Eles fornecem um canal bidirecional de comunicação para duas máquinas ligadas em rede, onde uma será o servidor, atendendo conexões e a outra, o cliente, tentando estabelecer uma conexão com o servidor. São uma abstração para endereços de comunicação através dos quais os processos se comunicam.

Um exemplo disso seria quando você busca uma página da web. Seu navegador da web (cliente) tenta fazer uma conexão com o servidor da web. O servidor da Web, atendendo aos clientes, aceitará a conexão e, em seguida, continuará a manipular a solicitação dos clientes. Aqui, o navegador solicitará a página do servidor da Web, antes que o servidor da Web responda com os dados da página.

Os servidores são acessados ​​através de endereços de socket, uma combinação do endereço IP do servidor (ou nome de domínio) e um número de porta, como demonstra o trecho de código Java abaixo:

[pic 1]

Socket meuSocket= new Socket(“IP_Servidor”, 6789);

Cada endereço tem um identificador único composto pelo endereço da máquina e o identificador local da porta usado pelo processo. Este identificador de porta é usado para mapear dados recebidos pela máquina para processos (aplicações) específicos.

A porta pode ser pensada como um ponto de conexão no servidor, como portas USB, por exemplo, com cada porta atendendo a uma finalidade específica. Por exemplo, as páginas da web são servidas na porta 80 (HTTP), os e-mails são enviados pela porta 25 (SMTP).

Uma vez que duas máquinas estão conectadas, elas podem comunicar fluxos de bytes entre si. Cabe ao cliente e ao servidor formatar esses fluxos de bytes em blocos de dados estruturados. 

Exemplo de uma aplicação Cliente

A aplicação cliente utiliza a porta ‘portC’ da máquina ‘hostC’ para enviar solicitações de serviços e para receber retornos a suas solicitações. A aplicação servidora visualiza constantemente a porta ‘portS’ da máquina ‘hostS’, aguardando a chegada de solicitações de serviço. Quando alguma solicitação é recebida, a aplicação servidora executa o serviço e utiliza a conexão para enviar o retorno com os resultados do serviço. Observe esquema abaixo:

[pic 2]

Socket: uma analogia

[pic 3]

Como funciona o mecanismo de sockets?

Imagine, por exemplo, que precisa desenvolver uma aplicação servidor que funcione como uma “sala” de chat. Na prática essa aplicação irá receber ligações dos clientes (num determinado porto) e, posteriormente, se um cliente enviar uma mensagem, o servidor envia essa mensagem para todos os outros clientes.

[pic 4]

Ou, imagine, por exemplo, que uma determinada máquina tem instalado um sensor de temperatura e uma aplicação servidor que controla esse sensor, dando informações sobre o estado do tempo. A aplicação cliente, poderá se ligar remotamente à aplicação servidor e obter também essa informação.

Tipos de sockets

Vários tipos de socket de Internet estão disponíveis:

Sockets de datagrama, também conhecidos como sockets sem ligação, que utilizam o User Datagram Protocol (UDP). É um tipo de soquete de rede que fornece um ponto sem conexão para enviar ou receber pacotes de dados. Cada pacote enviado ou recebido em um socket de datagrama é endereçado e roteado individualmente. A ordem e a confiabilidade não são garantidas com soquetes de datagrama, portanto, vários pacotes enviados de uma máquina ou processo para outro podem chegar em qualquer ordem ou podem não chegar a todos.

O envio de difusões UDP em uma rede é sempre ativado em um soquete de datagrama. Para receber pacotes de transmissão, um socket de datagrama deve estar vinculado ao endereço curinga. Os pacotes de transmissão também podem ser recebidos quando um socket de datagrama é vinculado a um endereço mais específico.

Sockets de fluxo, também conhecidos como soquetes orientados a conexão, que usam TCP (Transmission Control Protocol), SCTP ( Transmission Control Transmission Protocol) ou DCCP ( Datagram Congestion Control Protocol). É um tipo de soquete de rede que fornece um fluxo de dados orientado a conexão, sequenciado e exclusivo, sem limites de registro, com mecanismos bem definidos para criar e destruir conexões e para detectar erros. Um soquete de fluxo transmite dados de forma confiável, em ordem e com recursos fora de banda. Na Internet, os soquetes de fluxo geralmente são implementados na parte superior do TCP para que os aplicativos possam ser executados em qualquer rede usando o protocolo TCP/IP. O SCTP também pode ser usado para soquetes de fluxo.

Sockets brutos (ou soquetes IP brutos), normalmente disponíveis em roteadores e outros equipamentos de rede. Aqui, a camada de transporte é ignorada e os cabeçalhos de pacote são disponibilizados para o aplicativo, e não há nenhum número de porta no endereço, apenas o endereço IP. É um socket de rede que permite o envio direto e o recebimento de pacotes IP sem qualquer formatação de camada de transporte específica do protocolo.

Com outros tipos de sockets, a carga é automaticamente encapsulada de acordo com o protocolo da camada de transporte escolhido (por exemplo, TCP, UDP), e o usuário do socket não sabe da existência de cabeçalhos de protocolo que são transmitidos com a carga útil. Ao ler de um socket bruto, os cabeçalhos são geralmente incluídos. Ao transmitir pacotes de um socket bruto, a adição automática de um cabeçalho é opcional.

...

Baixar como (para membros premium)  txt (9.2 Kb)   pdf (240 Kb)   docx (600.5 Kb)  
Continuar por mais 5 páginas »
Disponível apenas no TrabalhosGratuitos.com