Modelo TCP/IP
O TCP/IP é uma arquitetura de protocolos utilizada para permitir a comunicação entre dispositivos em uma rede, como computadores, servidores, roteadores, smartphones e outros equipamentos. Ele define um conjunto de regras que determina como os dados devem ser organizados, endereçados, transmitidos e recebidos para que diferentes dispositivos e sistemas consigam se comunicar.
Apesar de ser conhecido como “TCP/IP”, ele não é um único protocolo. O nome representa um conjunto de protocolos que trabalham em conjunto, sendo o TCP (Transmission Control Protocol) e o IP (Internet Protocol) alguns dos principais.
A arquitetura TCP/IP é a base da comunicação na Internet e também é utilizada em redes locais e corporativas.
Como funciona o TCP/IP?
Quando um dispositivo precisa enviar informações para outro, os dados passam por diferentes etapas. Cada camada da arquitetura TCP/IP possui uma função específica no processo de comunicação.
De forma simplificada:
Aplicação → Transporte → Internet → Acesso à Rede
Cada camada utiliza protocolos próprios para realizar suas funções, que veremos em breve.
O que é o TCP?
O TCP (Transmission Control Protocol), ou Protocolo de Controle de Transmissão, é um protocolo da camada de Transporte da arquitetura TCP/IP.
Sua principal função é fornecer uma comunicação confiável entre aplicações que estão em dispositivos diferentes.
Antes de transmitir os dados, o TCP estabelece uma conexão entre origem e destino. Durante a comunicação, ele utiliza mecanismos para controlar a transmissão e verificar se os dados chegaram corretamente.
Entre suas principais características estão:
- Estabelecimento de conexão;
- Confirmação de recebimento (ACK);
- Ordenação dos dados;
- Retransmissão de dados perdidos;
- Controle de fluxo;
- Controle de congestionamento;
- Verificação da integridade dos dados.
Por isso, o TCP é utilizado por diversos protocolos de aplicação que precisam de uma comunicação confiável.
Exemplos incluem HTTP/HTTPS tradicional, FTP, SSH, Telnet, SMTP, POP3 e IMAP.
Importante: isso não significa que esses protocolos sejam parte do TCP. Eles são protocolos de camadas superiores que podem utilizar o TCP como protocolo de transporte.
TCP x UDP
O UDP também pertence à camada de Transporte, mas funciona de maneira diferente do TCP.
Comparação entre TCP e UDP:
| TCP | UDP |
|---|---|
| Orientado à conexão | Não orientado à conexão |
| Possui confirmação de recebimento | Não possui confirmação de recebimento |
| Pode retransmitir dados perdidos | Não realiza retransmissão por conta própria |
| Garante a ordenação dos dados | Não garante a ordem |
| Possui controle de fluxo | Não possui os mesmos mecanismos do TCP |
| Maior sobrecarga | Menor sobrecarga |
| Mais confiável | Menos confiável |
| Indicado quando a entrega correta é prioridade | Indicado quando baixa latência e rapidez são importantes |
O UDP pode ser utilizado em situações como DNS, VoIP, streaming e aplicações em tempo real. Porém, é importante lembrar que aplicações modernas podem utilizar mecanismos próprios para fornecer confiabilidade sobre UDP. Um exemplo é o QUIC, utilizado pelo HTTP/3.
Resumindo:
O TCP/IP é uma arquitetura de protocolos que permite a comunicação entre dispositivos em redes.
Dentro dessa arquitetura, cada camada possui uma responsabilidade:
Aplicação → fornece serviços e protocolos utilizados pelas aplicações.
Transporte → realiza a comunicação entre aplicações, utilizando TCP ou UDP.
Internet → realiza o endereçamento e encaminhamento dos pacotes, principalmente por meio do IP.
Acesso à Rede → permite a comunicação através da tecnologia de rede utilizada.
O TCP é apenas um dos protocolos que fazem parte dessa arquitetura. Ele atua na camada de Transporte e tem como objetivo fornecer uma transmissão confiável e organizada dos dados.
Já o IP atua na camada de Internet, sendo responsável pelo endereçamento e encaminhamento dos pacotes entre as redes.
TCP e IP trabalham juntos, mas possuem funções diferentes: o IP ajuda a levar os pacotes até o destino, enquanto o TCP ajuda a garantir que os dados sejam entregues de forma confiável e organizada à aplicação.