Published on

Internet, Modelos e Protocolos

Authors

Introdução

O surgimento da internet mudou a forma que nos comunicamos no mundo. O que antes havia apenas interesses militares e acadêmicos, tornou-se um grande rede de dispositivos conectados. Vamos explorar um pouco dos conceitos que envolvem a internet, os seus modelos,padrões e protocolos que nos permitem manter toda essa estrutura funcionando.

Uma introdução a Internet

Se você nasceu após os anos 90, sabe o que é a Internet mundial. Algumas pessoas viram seu surgimento, aos poucos mudando a sua realidade. Outros nasceram com ela presente no seu dia-a-dia. Para termos uma ampla visão de como as grandes aplicações e serviços funcionam hoje, precisamos ententer como diabos a internet funciona.

Para chegarmos ao conceito de internet, precisamos ter claro na mente a ideia de Rede. Quero que você visualize uma grande rede, em que nessa rede, nós ligam a nós, formando uma estrutura estável. Os nós nessa rede são os dispositivos(celular, computador desktop, laptop), e as arestas, podemos chamar de Rede.

Agora vamos pensar uma visualização próxima do mundo real. Provavelmente em sua casa existe diferentes dispositivos, e eles estão conectados uns aos outros. Essa conexão entre um e outro dispositivo, podemos chamar também de Rede.

Em alto nível, é um conjunto de dispositivos que se comunicam entre si mesmos sob um pacote de protocolos padronizados. Que buscam garantir uma comunicação segura e eficiente de dados na rede.

Internet Diagram

Na visão geral, cada dispositivo nessa estrutura divide seu pacote, onde é trafegado para o roteador, no qual direciona a rota e quais pacote serão trafegados na rede.

Para garantir que toda esse estrutura funciona, foram criados conjuntos de modelos e protocolos para permitir uma comunicação padrão entre dispositivos. Alguns deles são Ip protocol(INTERNET PROTOCOL) e o TCP protocol(TRANSMITION CONTROL PROTOCOL).

Papel dos Protocolos

Seu principal papel é garantir uma forma padronizada para que empresas e sistemas desenvolvam seus produtos e consigam trafegar na internet. Ter essas estruturas padronizadas, permitem que duas empresas de manufaturas diferentes consigam se comunicar pela internet.

Resumo do funcionamento de endereços IP e Nomes de domínio

O endereço IP é o identificador na rede de cada dispositivo, geralmente sendo representado nessa estrutura: “192.168.1.1”. Os Nomes de domínio já é uma representação do endereço IP, mas de forma de linguagem natural, para que um humano consiga ler, por exemplo: "Google.com". Essa tradução de endereços de IP para nomes de domínio, acontecem por causa do protocolo DNS(Domain Name System). Em uma dupla comunicação(Duplex), o usuário requisita a página web por uma query do DNS, que é enviada ao servidor DNS, que nos retorna o endereço IP correspondente para nos conectarmos ao website. Por enquanto vamos nos limitar apenas a essa definição simplificada do DNS, em outro artigo retornaremos.

Visão Geral do HTTP(Hypertext Transfer Protocol) e HTTPS(Hypertext Transfer Protocol Secure)

Ambos são protocolos da camada de aplicação e são alguns dos mais utilizados na internet. HTTP é um protocolo no qual permite a transferência de dados entre um web-browser (client) e um servidor (server). Já o HTTPS permite criar uma comunicação segura durante essa conexão, onde ele encripta os dados sendo transferidos utilizando o SSL(Secure Sockets Layer)/TLS. Com a finalidade de proteger dados sensíveis que trafegam nessa comunicação.

Conexões Seguras na Rede

Existem alguns conceitos alinhados a SSL/TLS para manter uma comunicação segura:

  1. Certificados
  2. Processos de Three-way-handshake
  3. Criptografia

Modelo TCP/IP

Um dos modelos mais utilizados hoje nas aplicações e serviços. Ele é dividido em cinco camadas, Aplicação, Transporte, Rede, Sessão(Enlace) e Física. Esse modelo ele tem ferramentas para identificação de erros, validação de entrega dos dados entre diferentes aplicações e dispositivos.

Alguns dos conceitos envolvidos:

  1. Portas
    • Identifica a aplicação ou serviço rodando no dispositivo
  2. Soquetes
    • Uma combinação entre o endereço IP e a porta, informações para estabelecer comunicação entre os dispositivos
  3. Conexões
    • A conexão de fato, com conjunto de informações ou meta dados, do que será transmitido, quando, e quanto será transmitido de segmentos de dados
  4. Dados de transferência
    • Os dados de fato a serem transferidos pela rede

Arquitetura de Camadas

A arquitetura de redes é construída em camadas de abstração. Como se fosse pilhas de livros empilhadas umas as outras. Ter estruturas dessa forma, em que cada camada tem sua responsabilidade, nos permite ter modularidade e uma manutenção mais assertiva.

Analogia com os Correios

Vamos entender como essas camadas se comunicam por meio de uma analogia com um sistema de entrega de cartas. Temos dois comunicadores iniciais, o remetende e o destinatário.

  1. O remetende escreve a carta e coloca em envelope, depois encaminha para a caixa de postagem;
  2. O carteiro busca a carta para ser levada aos correios;
  3. Os correios recebe a carta, e endereça ao transporte;
  4. O transporte(avião, návio, van) recebe a carta leva para a base de transporte do destino;
  5. A base de transporte do destino leva a carta para os correios do destino;
  6. Os correios do destino recebe a carta, e endereça para o destinatário;
  7. O carteiro coleta a carta nos correios e leva ao destino;
  8. O destinatário recebe a carta e a lê;

Cada camada presta um serviço a camada de cima e abaixo dela. Logo, cada camada desconhece o processo de cima ou abaixo. Exemplo: nós pedimos um produto na Amazon, mas desconhecemos como ela chegará a nós. Isso é chamado de abstração. Nessa analogia, em redes, funciona de forma simular, mas as nomenclaturas e funções se diferenciam.

Camadas Verticais de Rede

As camadas verticais são totalmente abstraídas, o remetente não conhece o funcionamento do processo do carteiro, assim como vice-versa. No caso real em redes, a camada da aplicação, no caso são a interface de comunicação do Sender ou Receiver, por exemplo. Uma aplicação web, ou um servidor de e-mail. A camada subjacente, ou camada mais próxima, é a camada que atende a essa camada de aplicação. Mas ela desconhece seu funcionamento.

Camadas Horizontais na Rede

Enquanto as camadas verticais são invisíveis e desconhecidas, as camadas horizontais se comunicam diretamente. O remetente produz os dados para serem enviados, o destinatário lê esses dados.

As camadas são independentes

Cada camada são independentes e fléxiveis. Exemplo, o objeto de envio no nosso caso de uso foi uma carta, mas pode ser um produto, uma caixa. A forma de entrega, pode ser avião, navio, ônibus.

Encapsulamento e Desencapsulamento

Em cada camada temos informações sobre os dados sendo trafegados. Chamamos esses dados de cabeçalhos, eles informam como os dados devem ser tratados. Quando vamos descendo em cada estrutura estamos adicionamos informações, no qual chamamos de Encapsulamento. No caminho inverso, e quando estamos subindo as camadas, chamamos de Desencapsulamento.

Conclusão

Recaptulando, nesse artigo tivemos uma visão geral das comunicações de serviços na internet, e como esses elementos se comunicam. Abordamos como a rede tem uma estrutura de camadas, que informam os dados de como os dados serão trafegados entre serviços e aplicações. Vimos também um pouco sobre os protocolos e modelos que envolvem a internet. Em artigos futuros, vamos explorar mais os protocolos que envolvem essas camadas. Assim como a origem do modelo OSI para chegarmos ao modelo TCP-IP.

Referências