Sockets em Redes - Transportando Informações Entre as Aplicações

Neste tutorial, iremos entender como as informações se movem entre os processos de uma aplicação, através de uma rede, que é através de sockets.

Sockets - O Que É e Para Que Serve



Ok, já entendemos que há processos no lado do cliente e processos no lado do servidor, e que estes se comunicam.

Mas como essas informações saem de um processo para chegar até o outro, ao longo da rede?
Isso é feito através de software, de uma interface muito importante e usada na internet, os sockets.

Como existem diversos tipos de processos, rodando sob os mais diversos tipos de sistemas operacionais e sistemas finais, a comunicação entre os processos precisa ser padronizada.

Ou seja, quem envia e quem recebe informações, deve fazer de uma maneira mais padrão possível, e quem cuida disso é o socket, que é uma espécie de 'intermediador' entre o processo e a rede de transporte.

Assim, os processos clientes e processos servidores apenas tem que se preocupar em enviar e receber informações para e do sockets, e este vai cuidar de todo resto. É uma interface, ela faz a 'conversa' entre os processos e o protocolo da camada de transporte.

Transporte Entre as Camadas de Aplicação

Ok, sabemos que o socket é uma interface entre o processo e o transporte de dados pela rede.
Mas, com é feito esse transporte?

Ao criar uma aplicação, você pode escolher as características de transporte, que dependem de:
  1. Confiança no Tráfego
  2. Segurança
  3. Velocidade
  4. Atraso



Você precisa ter certeza e garantia que os dados vão chegar no outro processo?
Sua aplicação deve ter nenhum ou o mínimo possível de perda de pacotes? (como no caso de e-mails e transações financeiras). Isso vai exigir protocolos mais rígidos e softwares mais elaborados, acarretando mais lentidão.

Se for uma aplicação para um banco ou loja online, por exemplo, além de ter certeza da chegada dos pacotes, você precisa garantir a segurança deles, que não vão ser espionados ou clonados.

Talvez você queira apenas que o transporte seja rápido, mesmo que perca alguns pacotes (como um serviço de streaming de vídeo, onde não há problema perder alguns pacotes) ? Então você pode 'afrouxar' a segurança dos dados, do tanto que receba uma boa vazão de pacotes, tendo uma ótima velocidade de troca de dados.




E se for um jogo online em tempo real? Aí precisa dos dois! Troca rápida de dados e com o máximo de confiança possível. Não pode ter atraso, senão foca simplesmente impossível de jogar.

Que protocolo usar? Vai depender da aplicação que você vai criar, você vai ter que balançar

Nenhum comentário:

Veja também: