Pilha de Protocolos TCP/IP
No artigo de hoje vamos falar sobre a estrutura do modelo TCP/IP. Como vimos no artigo Básico de Redes: Overview, o modelo OSI tem sete camadas: camada física, enlace de dados, camada de rede, de transporte, camada de sessão, camada de apresentação e camada de aplicação. Por outro lado, nossa pilha de protocolos TCP/IP combina a camada de aplicação, a camada de apresentação e a camada de sessão em uma camada. Já vimos essa imagem no artigo anterior, vamos apenas revisar para reforçar esse entendimento inicial e buscar que não fiquem dúvidas, pois este é um assunto muito explorado em exames de certificações relacionados a redes de computadores e extrema relevancia prática, em especial em troubleshootings de rede:
Modelo de 5 camadas TCP/IP
Cada camada independe da outra. Cada camada possui diferentes componentes e diferentes funções. Irei explorar cada uma das camadas mais a fundo na sequência dessa série. Por hora, o que preciso que você perceba é que, além do TCP/IP ser mais simples, este é hoje o padrão que mais utilizamos no mercado.
Não deixe de conferir também nosso canal no Youtube
Camada por camada da pilha de Protocolos TCP/IP
Resumo das camadas da pilha de protocolos:
- A camada de aplicação fornece a interface do aplicativo. Por exemplo, HTTP, Telnet, FTP e TFTP, são exemplos de protocolos que trabalham nessa camada.
- Usamos a camada de transporte para estabelecer uma conexão fim-a-fim. Quando falamos dos protocolos TCP ou UDP, é nessa camada que estamos trabalhando.
- Na camada de rede trabalhamos nosso roteamento e endereçamento IP.
- Já na camada de enlace de dados, temos acesso de mídia física, como o protocolo Ethernet, 802.3 e PPP
- Por fim, mas não menos importante, nossa camada física é responsável pela transmissão de fluxo de dados binários. Definimos portas, cabos e interfaces físicas nessa camada.
Em suma, quando o PC 1 precisa se comunicar com o PC 2, os dados serão encapsulados da camada de aplicação do modelo TCP/IP, para a camada física. Em seguida, enviamos os os dados para o roteador e para o switch da rede LAN que encaminhará os dados para seu destino.
O roteador no que lhe concerne vai trabalhar na camada 3 e só pode lidar com mensagens da camada de rede, ou seja, vai conversar com a rede pelo endereço IP.
Já um switch L2, irá se comunicar apenas na camada de enlace de dados, falando com outros dispositivos através do seu endereço físico (mac address).
Então, encaminhamos nosso frame Ethernet para o destino que desencapsulará esta mensagem. O PC pode então receber os dados originais.
Então, basicamente este é o fluxo da pilha TCP/IP: o encapsulamento e desencapsulamento.
Encapsulamento e Desencapsulamento no modelo TCP/IP
Agora vamos ver passo a passo do processo de encapsulamento e desencapsulamento no modelo TCP/IP.
Encapsulamento:
- Primeiro, digamos que o host A deseja enviar dados para o host B. Nesse contexto chamaremos nossos dados de PDU.
- Então, o cabeçalho TCP será adicionado aos dados. Neste pontos chamamos de segmento.
- Depois disso, o cabeçalho IP será adicionado. Aqui, nós o chamamos de pacote IP.
- Em seguida, o cabeçalho Ethernet será adicionado (LCC e MAC). Nós o chamamos de Frame Ethernet.
- Neste ponto, a camada de enlace de dados inclui o cabeçalho LLC e o cabeçalho de endereço MAC.
- Desse modo, o cabeçalho LLC faz a conexão entre a camada de enlace de dados e a camada de rede, enquanto o cabeçalho MAC faz a conexão entre a camada de enlace de dados e a camada física.
- Em seguida, nosso dado será convertido em binários. Então será transportado pelo meio físico.
Desencapsulamento:
- Depois disso, o host B receberá esses binários pela sua camada física.
- Em seguida, ele irá verificar o cabeçalho MAC e o cabeçalho LLC. Lembrando que os cabeçalhos LLC e MAC fazem parte do nosso cabeçalho Ethernet.
- Subindo na cama TCP, também irá verificar o cabeçalho IP e o cabeçalho TCP.
- Então ele irá descartar os cabeçalhos para enfim receber os dados originais.
Encapsulamento de pacotes TCP/IP
Vamos ver mais detalhes de como funciona o processo de encapsulamento da pilha de protocolos TCP/IP.
Conforme podemos notar na figura acima, serão adicionados ao dados do usuário: o cabeçalho do aplicativo e o cabeçalho TCP. Chamamos isso de PDU, e depois que o cabeçalho TCP é adicionado, ele é chamado de segmento.
Em seguida, ele adicionará o cabeçalho IP e o chamaremos de pacote IP.
Depois disso, ele adicionará o cabeçalho Ethernet. Então temos o que chamamos de Standard Ethernet Frame.
Portanto, um standard Ethernet frame inclui um cabeçalho Ethernet, cabeçalho IP, cabeçalho TCP e dados.
Por fim, podemos ver um cabeçalho de verificação de erro de bits, chamamos de Ethernet Tail.
Também precisamos observar no quadro acima que o comprimento de um cabeçalho Ethernet é de 14 bytes, enquanto o comprimento de um cabeçalho IP é de 20 a 60 bytes. Por outro lado, o comprimento de um cabeçalho TCP é de 20 a 60 bytes.
Então o tamanho mínimo de um frame Ethernet é de 64 bytes enquanto o comprimento máximo de um frame Ethernet é de 1518 bytes.
Na sequência veremos um por um.
Cabeçalho TCP
O cabeçalho TCP inclui a porta de origem, a porta de destino, o número de sequência e o número de confirmação.
Os dois dispositivos precisam negociar os parâmetros por meio da porta de origem e da porta de destino.
A porta de origem é de 16 bits e a porta de destino é de 16 bits.
Cabeçalho IP v4
O pacote IP é muito importante, logo é importante que você conheça a estrutura do pacote IP.
No cabeçalho IP, podemos ver a versão. Perceba que iremos falar aqui apenas do cabeçalho IP versão 4.
Também temos o tamanho da mensagem, que indica o comprimento do cabeçalho.
Depois vemos o tipo de serviço, usado para QoS e o tamanho total, que indica o tamanho total do pacote. Importante ressaltar que ele também inclui o cabeçalho e o campo de dados. Assim, entenda que o tamanho total indica o tamanho do pacote IP.
A identificação é para o datagrama IP e identifica o pacote por meio de numeração sequencial.
Flag e chip offset também são para fragmentação de pacotes.
Tempo de vida, também chamado TTL, define o valor máximo que o datagrama poderá trafegar, tendo tempo de vida máximo de 255 saltos.
Protocolo indica o protocolo da parte seguinte, por exemplo, se é TCP ou UDP.
O Checksum verifica erros no cabeçalho e por fim incluímos os endereços IP de origem e destino.
O campo IP Option, como o nome sugere, contém items opcionais.
Portanto, esta é a estrutura do pacote IP.
Pacote IP Fragmentado
Fragmento IP: A camada IP compara o comprimento dos dados com o MTU.
Se o comprimento dos dados for maior que o MTU, a camada IP fragmentará os dados.
Como podemos ver na imagem acima, princípio do fragmento do pacote IP basicamente se resume ao seguinte processo:
A camada IP compara o comprimento dos dados com a MTU (unidade máxima de transmissão).
Se o tamanho dos dados for maior que o MTU, a camada IP fragmentará os dados.
Por exemplo, o pacote IP tem o tamanho de 65535 e passa pelo Host A. O Host A tem seu valor de MTU definido, logo o tamanho do pacote será comparado ao tamanho do MTU.
O comprimento do pacote IP é maior que o MTU, portanto, esse pacote IP será fragmentado.
Então o pacote é enviado ao roteador em pacotes menores que no que lhe concerne repassará os pacotes para o outro roteador para verificação e retransmissão ao Host B.
Depois que o Host B receber os fragmentos, ele verificará qual é o primeiro, o segundo e os demais pacotes na sequência correta para combiná-los e formar assim novamente o pacote original de 65535.
Assim, perceba que os fragmentos do pacote estarão presentes no PC e também nos roteadores por onde o dado está sendo trafegado.
Princípios do Fragmento de IP
- A camada IP compara o comprimento dos dados com o MTU. Se o comprimento dos dados for maior que o MTU, a camada IP fragmentará os dados.
- O fragmento pode ser gerado no host do remetente ou em um roteador intermediário.
- Depois que um pacote IP é fragmentado, ele só pode ser remontado quando chegar ao destino.
- Todo o pacote de dados é retransmitido mesmo se um único dado for perdido. Nesse ínterim, precisamos evitar a fragmentação, porque os fragmentos desperdiçarão a largura de banda.
- Qualquer cabeçalho da camada de transporte aparece apenas no primeiro dado.
Os campos no cabeçalho IP usados no fragmento são os de identificação, flag e chip offset:
Ethernet Frame
Para o frame Ethernet, temos o cabeçalho Ethernet.
Podemos ver o comprimento do cabeçalho Ethernet com tamanho de 14 bytes.
Ele Inclui o endereço MAC de destino, o endereço MAC de origem e o tamanho/tipo.
O endereço MAC de destino é de 6 bytes, o endereço MAC de origem é de 6 bytes e o tamanho/tipo é de 2 bytes.
Se o valor do tamanho/tipo for maior que 1500, significa que a terceira parte do cabeçalho é um “tipo”, como o pacote IP. Por outro lado, se o tamanho/tipo for menor que 1500, indica que é um “tamanho”.
Não se preocupe com isso agora, hoje, o que você precisa saber é que o endereço MAC de destino, o endereço MAC de origem e o tamanho/tipo estão no cabeçalho Ethernet.
Conclusão
Por fim, vimos que temos usado o modelo TCP/IP amplamente no mercado. Isso se dá devido à sua abertura e facilidade de uso. Então, a pilha de protocolos TCP/IP tornou-se o principal protocolo da Internet. O modelo TCP/IP também usa uma estrutura hierárquica e suas camadas são independentes umas das outras. Apesar de independentes, as camadas do modelo têm relações de cooperação estreitas entre si.
Vimos também que a diferença entre o modelo TCP/IP vs o modelo de referência OSI.
Dividimos o modelo TCP/IP em cinco camadas de baixo para cima: camada física, camada de enlace de dados, camada de rede, camada de transporte e camada de aplicação. No entanto é importante observar que algumas bibliografias dão conta de um modelo TCP/IP de 4 camadas. Nesse ínterim chamamos a camada de Rede, de Internet. Do mesmo modo, chamamos as camadas de enlace e física como uma única camada de acesso.
Como nossa referência é o treinamento oficial da Huawei e nosso objetivo é também prepará-lo para a certificação HCIA-Access, vamos utilizar o modelo de 5 camadas referenciado no material oficial.
Vimos o processo de encapsulamento do protocolo TCP/IP, entrando em cada ítem de frame e cabeçalhos do pacote IPV4, além de aprender como funciona a fragmentação de pacotes com base no MTU dos equipamentos de Rede.
No próximo artigo estarei abordando com mais profundidade cada camada da pilha de protocolos TCP/IP. Continue conosco, até a próxima.