Esse texto é um convite para uma longa viagem que busca entender de forma simples, mas bem enriquecedora, todo o trajeto dos dados trocados diariamente entre diversos dispositivos eletrônicos. protocolos de rede entendendo como funciona a internet
Para entender de forma clara como dois dispositivos finais se comunicam, faz-se necessário passar por bases fundamentais. Novamente, a intenção do texto é trazer uma introdução mais didática possível dos principais critérios que fundamentam a comunicação de máquinas, que são: a internet, protocolos e programas (não é uma verdade absoluta, apenas uma visão do autor).
INTERNET
Afinal de contas, o que é a internet ?
A internet pode ser descrita como uma rede de redes, ou seja, diversas redes diferentes que são conectadas entre si. Assim como nós possuímos um identificador único em nossos documentos, determinados dispositivos de rede possuem tais identificadores para torná-los únicos na rede e permitir a localização e organização do fluxo de mensagens. Afinal, é mais fácil fazer uma entrega quando se sabe onde deve entregar. Esses identificadores são chamados de IP e existem duas versões deles na internet, a versão 4 (IPv4) e a versão 6 (IPv6) . O objetivo e papel deles é o mesmo, então não será necessário discutir a diferença entre eles aqui.
IMAGEM 1
Além dessa perspectiva do que é a internet em si, é importante sabermos que existem órgãos reguladores (IANA - mundial, CGI.br - Brasil) e "camadas" de distribuição desses IPs. Esses IPs são distribuídos até nossos lares pelos ISPs (Internet Service Providers), que são os provedores de serviços de internet. Tais provedores são empresas como a Vivo, NET, ou um provedor local de sua região. Assim que você contrata um serviço e recebe um roteador na sua casa, um IP público e válido na internet é atribuído a ele, e com isso você já pode se comunicar com diversos serviços distribuídos na rede mundial de computadores .
Com isso em mente, imagine que outras pessoas e serviços podem ter provedores diferentes, ou seja, estarem usando diferentes infraestruturas de rede, então como podemos nos comunicar ? Como minhas mensagens chegam até o Japão ? A resposta: é que esses diferentes provedores também estão conectados entre si, isso permite a sua conexão com serviços que estão localizados em várias partes do globo terrestre. Para fins didáticos, você pode entender como "camadas de ISPs". Cada empresa provedora de IPs e de infraestrutura conectam fisicamente seus roteadores para que haja um caminho entre eles, permitindo que pessoas de diferentes provedores possam entrar em contato (observe a imagem 2.1 e 2.2).
IMAGEM 2.1
IMAGEM 2.2
Gostaria de deixar o mais claro possível que para possamos nos conectar é necessário toda uma infraestrutura de cabos e mais cabos espalhados pelas ruas, ligando sua rede, a rede do seu vizinho e a rede de servidores entre si. Esses cabos possuem finais em dispositivos (como roteadores e seu computador) capazes de lidar com esse tráfego de dados com determinados protocolos .
PROTOCOLOS
O que são protocolos de rede?
São regras estabelecidas que visam a padronização e formatação de mensagens na comunicação de dispositivos eletrônicos. Você já deve saber que computadores "entendem" apenas zeros e uns, mas sabe como os computadores sabem exatamente o que fazer com cada bloco desses amontoados de binários ?
A resposta está nos protocolos.
Para simplificar, vamos imaginar que exista um protocolo chamado CBMP (CiberBox Menssager Protocol) , esse protocolo funciona transmitindo mensagens simples de texto entre duas máquinas em uma mesma rede. Vamos abstrair e ignorar completamente os demais protocolos, todas as camadas de rede e suas interações.
Primeiro devemos delimitar os campos do cabeçalho do protocolo. Um adendo, cabeçalhos de protocolos de rede são informações que acompanham os dados enviados entre dispositivos em uma rede para que possam chegar até seu destino. No nosso protocolo existirão 3 campos que deverão ser preenchidos no momento do envio da mensagem e 56 bytes de limite de dados:
IPv4 de origem (4 bytes);
IPv4 de destino (4 bytes);
Dados da mensagem (até 48 bytes) ;
IMAGEM 3
Esses espaços organizados são apenas representações para facilitar nossa compreensão, mas os computadores recebem e enviam tudo isso como uma sequência linear de bits.
Assim que enviarmos a mensagem ao nosso destinatário através da rede, a placa de rede de nosso computador enviará uma sequência de bits até o computador receptor. Os primeiros 8 bytes , que são os endereços de IPv4, serão descartados pela camada de aplicação e a mensagem que enviamos, que fica alocada no campo de dados do cabeçalho, será traduzida através de uma tabela que transforma bytes em caracteres. Um exemplo (32 primeiros dígitos) poderá ser visto na imagem 4, que trata-se de uma tabela ASCII ( American Standard Code for Information Interchange) .
IMAGEM 4
Não vamos entrar nesse critério, mas é importantíssimo saber sobre a existência das camadas de rede, onde cada camada de rede é responsável explicitamente por uma função, e utilizam protocolos diferentes para cumpri-lá (observe a imagem 5). Esse é um assunto bem complexo e valeria facilmente outros textos apenas para as camadas de rede, mas saber que nossas mensagens possuem informações que são passadas em diante para direcionar o restante do tráfego já é o suficiente para a proposta do texto.
IMAGEM 5
PROGRAMAS
Programas de computadores podem ser definidos como um conjunto de instruções. Essa definição resume bem o que são, mas gostaria de chamar a atenção à comparação com a definição que temos de protocolos. São bem parecidas pois são praticamente a mesma coisa. Protocolos são programas bem específicos que atuam em todas as diferentes camadas de rede para encapsular informações, adicionar dados no cabeçalhos, processar e desencapsular informações.
Quando programamos determinada aplicação, é necessário fazer duas versões dela: uma que atuará sendo o servidor e a outra o cliente. Uma dentre as várias coisas que precisamos fazer é criar o que pode ser chamado de uma interface entre os dados que chegam aos dispositivos finais (computadores, celulares e etc) e a rede. O nome dessa interface é "socket" e necessitam primordialmente de apenas duas informações, o IP de destino e um número de porta (observe a imagem 6).
IMAGEM 6
Um programa de computador é dividido em vários "pedaços" pelo sistema operacional,e esses "pedaços" são chamados de processos, que ficam em uma pilha de processos sendo processados conforme necessário. Cada processo recebe um identificador que será ligado ao número da porta anteriormente citada. Essa etapa é necessária para que os dados que chegam no nosso computador possam ser direcionados aos programas adequados e assim fazer o tratamento e processamento correto dos dados.
CONCLUSÃO
Em resumo, podemos identificar agora cada etapa crucial que ocorre na comunicação de máquinas. Partindo de uma solicitação, por exemplo: a mensagem é codificada, empacotada, transmitida através de cabos elétricos e ópticos, são tratadas pelos mais diversos protocolos em diferentes camadas e assim que chegam até o seu destino são desempacotadas, decodificadas e apresentadas na sua tela (observe as imagens 7.1 e 7.2). Se na ida ela passa pelas camadas de rede em um sentido do top-down (adicionando cabeçalhos) , na volta (em perspectiva) ela passa pelas camadas em um sentido contrário, "down-top" (removendo cabeçalhos) .
IMAGEM 7.1
IMAGEM 7.2
Bom, nossa viagem chegou ao fim . Espero que tenha deixado o mais claro possível todo o trajeto que os dados percorrem de ponta a ponta. Agradeço a você que leu até aqui e se achou legal, peço para que compartilhe a quem achar que será útil. Qualquer dúvida pode ser deixada no fórum que outros usuários ou a equipe CiberBox responderá. Até a próxima ;)
REFERÊNCIAS
Redes de computadores e a internet - James Kurose | Keith Ross
Sistemas Operacionais Modernos - Andrew Tanenbaum
Ótimo texto!
😎