Entendendo os Protocolos de Rede: Um Guia Completo
Um protocolo de rede é essencialmente um conjunto de diretrizes que os dispositivos usam para se comunicar entre si em uma rede. Imagine-o como um conjunto de regras que as pessoas seguem ao conversar, garantindo que todos entendam o que está sendo dito.
Esses protocolos detalham como os dados são estruturados em pacotes, como os dispositivos se identificam e como quaisquer erros ou conflitos são resolvidos. Eles são a base para uma comunicação eficaz em qualquer rede.
Os protocolos de rede podem ser categorizados em três tipos principais: comunicação, segurança e gerenciamento.
1. Protocolos de Comunicação
Estes protocolos são a base da troca de dados entre dispositivos em uma rede. Eles ditam como os dados são formatados, transmitidos e recebidos, garantindo uma comunicação eficiente e sem erros. Exemplos notáveis incluem HTTP/HTTPS, FTP, TCP e UDP.
2. Protocolos de Segurança
Os protocolos de segurança são criados para proteger a privacidade e a autenticidade dos dados enquanto eles viajam por uma rede. Eles estabelecem canais de comunicação seguros, garantindo que informações confidenciais não sejam suscetíveis a interceptação ou adulteração.
Alguns exemplos cruciais incluem SSL/TLS para criptografia, SSH para acesso remoto seguro e versões seguras de protocolos de e-mail como SMTPS e POP3S.
3. Protocolos de Gerenciamento
Protocolos de gerenciamento são ferramentas para administração, monitoramento e controle de dispositivos e recursos de rede. Eles ajudam os administradores de rede a configurar e solucionar problemas de componentes de rede com eficácia.
Exemplos notáveis são DHCP para alocação dinâmica de endereços IP, SNMP para gestão de dispositivos de rede, ICMP para fins de diagnóstico e BGP para informações de roteamento e acessibilidade.
Vamos agora analisar alguns protocolos comuns em cada uma dessas categorias.
Protocolos de Comunicação
HTTP
HTTP, ou Protocolo de Transferência de Hipertexto, é um protocolo essencial para a comunicação entre um navegador da web e um servidor.
Ele opera na camada de aplicação do modelo OSI.
Quando você digita um URL no seu navegador e pressiona Enter, uma solicitação HTTP é enviada para um servidor web. O servidor processa essa solicitação e envia uma resposta HTTP contendo as informações solicitadas, seja uma página da web, uma imagem, um vídeo ou outro recurso hospedado.
O HTTP é um protocolo sem estado, o que significa que cada solicitação de um cliente para um servidor é tratada como uma transação única e isolada. O servidor não mantém informações sobre solicitações anteriores do mesmo cliente. Essa simplicidade é uma das razões para sua ampla adoção.
O HTTP define vários métodos de solicitação, como GET (para obter dados), POST (para enviar dados), PUT (para atualizar recursos) e DELETE (para remover recursos). Esses métodos especificam a ação que o cliente deseja realizar no servidor.
As respostas HTTP geralmente incluem um código de status que indica o resultado da solicitação. Por exemplo, um código 200 indica uma solicitação bem-sucedida, enquanto 404 significa que o recurso solicitado não foi encontrado.
O HTTP evoluiu ao longo dos anos, com HTTP/1.1 sendo amplamente utilizado por um longo tempo, e as versões mais recentes, HTTP/2 e HTTP/3 (QUIC), introduzindo melhorias de desempenho.
HTTPS
HTTPS, ou Protocolo de Transferência de Hipertexto Seguro, é uma extensão do HTTP que fornece comunicação segura em redes de computadores.
Ele adiciona uma camada de segurança ao HTTP padrão, criptografando os dados trocados entre um navegador e um servidor web usando protocolos criptográficos como SSL/TLS. Isso impede que terceiros interceptem ou decifrem dados confidenciais.
O HTTPS também inclui uma forma de autenticação de servidor. Quando um navegador se conecta a um site via HTTPS, o site apresenta um certificado digital emitido por uma Autoridade de Certificação (CA) confiável. Esse certificado garante a identidade do site e verifica que o cliente está se conectando ao servidor correto, não a um servidor malicioso.
Sites que usam HTTPS são identificados pelo prefixo “https://” no início de suas URLs. O uso deste prefixo indica que o site está utilizando uma conexão segura.
O HTTPS geralmente usa a porta 443 para comunicação, enquanto o HTTP usa a porta 80. Servidores web podem diferenciar facilmente entre conexões seguras e não seguras por meio dessa distinção.
Motores de busca como o Google priorizam sites que usam HTTPS em seus rankings de pesquisa.
Navegadores podem alertar os usuários quando uma página HTTPS segura contém elementos (como imagens ou scripts) que são servidos por uma conexão HTTP não segura. Isso é chamado de “conteúdo misto” e pode comprometer a segurança.
Para mais detalhes sobre como obter um certificado SSL para um site, consulte nosso artigo dedicado sobre o assunto.
FTP
O Protocolo de Transferência de Arquivos (FTP) é um protocolo de rede padrão para transferir arquivos entre um cliente e um servidor em uma rede de computadores.
O FTP opera em um modelo cliente-servidor. O cliente inicia uma conexão com o servidor para solicitar e transferir arquivos.
O FTP usa duas portas para comunicação e pode operar em dois modos: ativo e passivo.
A porta 21 é usada para a conexão de controle, onde comandos e respostas são enviados entre o cliente e o servidor.
No modo ativo, uma porta adicional (geralmente na faixa 1024-65535) é aberta para a transferência de dados. Este é o modo tradicional que segue o modelo cliente-servidor.
O modo passivo, por outro lado, é usado quando o cliente está protegido por um firewall ou dispositivo NAT. Neste modo, o servidor abre uma porta aleatória de número alto para a transferência de dados.
O FTP geralmente requer autenticação para acessar arquivos no servidor. Os usuários devem fornecer um nome de usuário e senha para fazer login. Alguns servidores FTP também suportam acesso anônimo, onde os usuários podem fazer login com um nome de usuário genérico, como “anônimo” ou “FTP”, e usar seu endereço de e-mail como senha.
O FTP suporta dois modos de transferência de dados: ASCII e binário. O modo ASCII é usado para arquivos de texto, enquanto o modo binário é usado para arquivos não textuais, como imagens e executáveis. O modo é selecionado com base no tipo de arquivo que está sendo transferido.
O FTP tradicional não é um protocolo seguro, pois transmite dados, incluindo nomes de usuário e senhas, em texto simples. Alternativas mais seguras, como FTP Seguro (SFTP) e FTP sobre SSL/TLS (FTPS), criptografam a transferência de dados para proteger informações confidenciais.
Para entender melhor a diferença entre SFTP e FTPS e qual protocolo usar, consulte nosso artigo detalhado.
TCP
O Protocolo de Controle de Transmissão (TCP) é um dos principais protocolos da camada de transporte no conjunto IP. Ele é fundamental para fornecer uma transmissão de dados confiável e ordenada entre dispositivos em redes IP.
O TCP estabelece uma conexão entre o remetente e o destinatário antes do início da transferência de dados. Esse processo envolve um handshake de três vias (SYN, SYN-ACK, ACK) e um processo de encerramento da conexão quando a troca de dados é concluída.
O TCP também suporta comunicação full-duplex, permitindo que os dados sejam enviados e recebidos simultaneamente em ambas as direções dentro da conexão estabelecida.
O TCP monitora as condições da rede e ajusta sua taxa de transmissão para evitar congestionamento da rede. Ele também inclui mecanismos de verificação de erros para detectar e corrigir corrupção de dados durante a transmissão. Se um segmento de dados estiver corrompido, o receptor solicitará uma retransmissão.
O TCP usa números de porta para identificar serviços ou aplicativos específicos em um dispositivo. Os números de porta ajudam a rotear os dados recebidos para o aplicativo correto.
O receptor em uma conexão TCP envia confirmações (ACKs) para confirmar o recebimento dos segmentos de dados. Se o remetente não receber um ACK dentro de um determinado período de tempo, ele retransmite o segmento de dados.
O TCP mantém informações sobre o estado da conexão tanto do lado do remetente quanto do destinatário. Essas informações ajudam a rastrear a sequência de segmentos de dados e gerenciar a conexão.
IP
IP, ou Protocolo de Internet, é um protocolo central que permite a comunicação e a troca de dados em redes de computadores, incluindo a Internet global.
O IP usa um sistema de endereçamento numérico para identificar dispositivos em uma rede. Esses endereços numéricos são chamados de endereços IP, que podem ser IPv4 ou IPv6.
Os endereços IPv4 são normalmente na forma de quatro conjuntos de números decimais (por exemplo, 192.168.1.1), enquanto os endereços IPv6 são mais longos e usam notação hexadecimal.
O IP é responsável por rotear pacotes de dados entre dispositivos em redes diferentes. Roteadores e switches desempenham um papel fundamental ao direcionar esses pacotes para seus destinos com base em seus endereços IP.
O IP usa uma metodologia de comutação de pacotes. Os dados são divididos em pacotes menores para transmissão pela rede. Cada pacote contém um endereço IP de origem e destino, permitindo que os roteadores tomem decisões de encaminhamento.
O IP é considerado um protocolo sem conexão. Ele não estabelece uma conexão dedicada entre o remetente e o destinatário antes da transmissão dos dados. Cada pacote é tratado de forma independente e pode seguir rotas diferentes para chegar ao seu destino.
UDP
UDP, ou Protocolo de Datagrama do Usuário, é um protocolo leve e sem conexão que fornece uma maneira de enviar dados por uma rede sem estabelecer uma conexão formal.
Diferente do TCP, o UDP não estabelece uma conexão antes de enviar os dados. Ele simplesmente empacota os dados em datagramas e os envia para o destino.
O UDP não garante a entrega de dados e não implementa mecanismos de detecção e correção de erros. Se um pacote for perdido ou chegar fora de ordem, é responsabilidade da camada de aplicação lidar com isso.
O UDP tem menos sobrecarga do que o TCP, pois não inclui recursos como controle de fluxo, correção de erros ou confirmações. Isso o torna mais rápido, mas menos confiável.
Ele também não possui mecanismos integrados de controle de congestionamento, o que pode levar a inundações de tráfego UDP e causar congestionamento na rede.
O UDP é comumente usado em situações em que a baixa latência e a transmissão de dados em alta velocidade são mais importantes do que a entrega garantida. Exemplos comuns incluem streaming de áudio e vídeo em tempo real, jogos online, DNS e alguns aplicativos IoT.
O UDP também oferece suporte a multiplexação, permitindo que vários aplicativos no mesmo dispositivo usem a mesma porta UDP, o que diferencia fluxos de dados usando números de porta.
Para entender o UDP com um exemplo, imagine que você deseja enviar uma mensagem para um amigo em um playground barulhento usando uma bola saltitante. O UDP é como jogar a bola sem qualquer conversa formal:
- Você escreve a mensagem em um pedaço de papel, o enrola em uma bola e a joga na direção do seu amigo. Você não espera que ele a pegue ou reconheça o recebimento.
- A bola pode quicar ou se perder, e seu amigo pode ou não pegar a mensagem com sucesso. Se ele a pegar, ele entenderá a mensagem. Caso contrário, ele a perderá e você não terá como verificar.
Neste exemplo, a bola representa o protocolo UDP. O ato de jogar a bola sem esperar uma resposta mostra a natureza sem conexão do UDP. A possibilidade de a bola se perder simboliza a falta de confiabilidade do UDP. Seu amigo que lê a mensagem representa a camada de aplicação que lida com os dados recebidos via UDP, possivelmente lidando com dados perdidos.
Protocolos de Segurança
SSH
SSH, ou Secure Shell, é um protocolo de rede usado para comunicação segura entre um cliente e um servidor em uma rede não segura. Ele oferece acesso e gerenciamento remoto de dispositivos por meio de uma interface de linha de comando com alto nível de segurança.
O SSH usa técnicas criptográficas para autenticar o cliente e o servidor, garantindo que você esteja se conectando ao servidor correto e que o servidor verifique sua identidade antes de permitir o acesso. Todos os dados transmitidos por uma conexão SSH são criptografados, protegendo a comunicação contra interceptação.
Fonte da imagem: Stackoverflow
O SSH usa um par de chaves para autenticação, consistindo em uma chave pública (compartilhada com o servidor) e uma chave privada (mantida em segredo). Para mais detalhes sobre como funciona, consulte o artigo sobre login sem senha SSH.
Quando você se conecta a um servidor SSH, seu cliente usa sua chave privada para provar sua identidade. O SSH também suporta a autenticação tradicional de nome de usuário e senha, embora isso seja menos seguro e geralmente desencorajado.
O SSH usa a porta 22 por padrão, mas isso pode ser alterado para melhorar a segurança, já que alterar o número da porta pode ajudar a reduzir ataques automatizados.
O SSH é usado para administração remota de servidores, transferência de arquivos com ferramentas como SCP e SFTP e acesso seguro a interfaces de linha de comando remotas. Ele é amplamente usado na administração de sistemas operacionais do tipo Unix e também está disponível no Windows por meio de várias soluções de software.
SMTP
SMTP, ou Protocolo Simples de Transferência de Correio, é um protocolo padrão responsável pelo envio de mensagens de e-mail de saída de um cliente ou servidor de e-mail para um servidor de e-mail do destinatário.
O SMTP é fundamental para a comunicação por e-mail, funcionando em conjunto com outros protocolos de e-mail, como IMAP/POP3, para permitir todo o ciclo de vida do e-mail, incluindo envio, recebimento e armazenamento de mensagens.
Quando você cria um e-mail e clica em “enviar” em seu cliente de e-mail, o SMTP é usado para encaminhar a mensagem para o servidor do seu provedor de e-mail.
O SMTP usa a porta 25 para comunicação não criptografada e a porta 587 para comunicação criptografada (usando STARTTLS). A porta 465 também foi usada para comunicação SMTP criptografada, mas é menos comum.
Muitos servidores SMTP exigem autenticação para enviar e-mails e evitar uso não autorizado. Métodos de autenticação como nome de usuário e senha ou métodos mais seguros, como OAuth, são usados.
Servidores SMTP são frequentemente usados como retransmissores, aceitando e-mails enviados de clientes e encaminhando-os para o servidor de e-mail do destinatário, roteando e-mails pela Internet. A comunicação pode ser protegida por criptografia via TLS ou SSL, especialmente ao enviar informações confidenciais.
Protocolos de Gerenciamento
POP3
POP3, ou Protocolo de Correio Postal versão 3, é um protocolo comum para recuperação de e-mail usado para buscar mensagens de e-mail de um servidor de e-mail para um aplicativo cliente de e-mail.
O POP3 foi projetado para funcionar de forma “armazenar e encaminhar”. Ele recupera e-mails do servidor e geralmente os exclui do servidor após salvar uma cópia no dispositivo do cliente. Alguns clientes de e-mail oferecem a opção de deixar uma cópia do e-mail no servidor, mas esse não é o comportamento padrão.
O POP3 usa a porta 110 para comunicação não criptografada. A porta 995 é usada para comunicação POP3 segura com TLS/SSL.
O POP3 é um protocolo sem estado, ou seja, não rastreia os e-mails que você já baixou. Toda vez que você se conecta ao servidor, ele recupera todas as mensagens não lidas. Isso pode causar problemas de sincronização se você acessar seu e-mail em vários dispositivos.
O POP3 foi projetado para recuperar e-mails da caixa de entrada. Ele pode não suportar a recuperação de e-mails de outras pastas no servidor, como itens enviados ou rascunhos. Como o POP3 não sincroniza pastas de e-mail entre o servidor e o cliente, as ações executadas em um dispositivo (como excluir um e-mail) não serão refletidas em outros dispositivos.
É recomendável usar a versão segura do POP3 (POP3S ou POP3 sobre SSL/TLS), que criptografa a comunicação entre o cliente e o servidor de e-mail para maior segurança.
O POP3 é menos usado hoje em comparação com o IMAP (Protocolo de Acesso a Mensagens da Internet), que oferece recursos mais avançados, como sincronização de pastas, e permite que vários dispositivos gerenciem a mesma caixa de correio de forma mais eficiente.
BGP
BGP, ou Protocolo de Gateway de Fronteira, é um protocolo de gateway externo usado para trocar informações de roteamento e acessibilidade entre sistemas autônomos (ASes).
Um sistema autônomo é um grupo de redes IP e roteadores sob o controle de uma única organização que apresenta uma política de roteamento comum para a Internet.
O BGP é um protocolo de vetor de caminho, rastreando o caminho (lista de sistemas autônomos) que os pacotes de dados percorrem para chegar ao seu destino. Essas informações ajudam os roteadores BGP a tomar decisões de roteamento com base em políticas e atributos de caminho.
O BGP é usado para determinar o melhor caminho para os dados ao passar por várias redes operadas por diferentes organizações ou ISPs.
Ele também suporta agregação de rotas, o que ajuda a reduzir o tamanho da tabela de roteamento global, resumindo vários prefixos IP em um único anúncio de rota.
O protocolo BGP usa mecanismos para evitar loops de roteamento, incluindo o uso do atributo de caminho AS e a regra de horizonte dividido. Para mais informações sobre essa regra, você pode consultar um artigo dedicado da Cisco.
O BGP é usado tanto na Internet pública quanto em redes privadas. Na Internet pública, ele é usado para trocar informações de roteamento entre ISPs e grandes redes. Em redes privadas, é usado para roteamento interno e conexão com a Internet por meio de um roteador de borda.
DHCP
DHCP, ou Protocolo de Configuração Dinâmica de Host, é usado para atribuir automaticamente endereços IP e outras configurações de rede para dispositivos em uma rede TCP/IP.
O processo DHCP geralmente envolve quatro etapas principais:
Descoberta DHCP
Quando um dispositivo entra em uma rede, ele envia uma mensagem de difusão DHCP Discover para encontrar servidores DHCP disponíveis.
Oferta DHCP
Servidores DHCP na rede respondem à mensagem DHCP Discover com uma oferta DHCP, fornecendo um endereço IP e outras opções de configuração.
Solicitação DHCP
O dispositivo seleciona uma oferta DHCP e envia uma mensagem de solicitação DHCP para o servidor escolhido para solicitar o endereço IP oferecido.
Reconhecimento DHCP
O servidor DHCP reconhece a solicitação, enviando uma mensagem de reconhecimento DHCP que confirma a atribuição do endereço IP.
Para entender como o DHCP funciona, imagine que você tem uma rede Wi-Fi doméstica e quer que seus dispositivos se conectem a ela sem precisar configurar manualmente as configurações de rede em cada dispositivo. É aí que o DHCP entra em ação:
- Seu smartphone entra na sua rede Wi-Fi doméstica.
- Ele envia uma mensagem dizendo: “Olá, sou novo aqui. Alguém pode me fornecer um endereço IP e outros detalhes da rede?”
- Seu roteador Wi-Fi, atuando como um servidor DHCP, ouve a solicitação e diz: “Claro, tenho um endereço IP disponível, bem como as configurações de rede de que você precisa, como máscara de sub-rede, gateway padrão e servidor DNS.”
- O smartphone recebe essas informações e se configura automaticamente com o endereço IP e as configurações de rede fornecidas.
Agora o smartphone pode usar a Internet e se comunicar com outros dispositivos na sua rede doméstica.
ICMP
O Protocolo de Mensagem de Controle da Internet (ICMP) é um protocolo da camada de rede no conjunto IP que permite a comunicação e fornece feedback sobre o status das operações de rede.
O ICMP é usado principalmente para relatar erros e fornecer informações de diagnóstico relacionadas ao processamento de pacotes IP. Por exemplo, se um roteador encontrar um problema ao encaminhar um pacote IP, ele gera uma mensagem de erro ICMP e a envia de volta para a origem do pacote.
As mensagens de erro ICMP comuns incluem “Destino inacessível”, “Tempo excedido” e “Problema de parâmetro”.
Um dos usos mais conhecidos do ICMP é o comando “ping”, usado para verificar a acessibilidade de um host. Esse comando envia mensagens de solicitação de eco ICMP para um host de destino. Se o host estiver acessível, ele responderá com uma mensagem de resposta de eco ICMP, permitindo que você teste a conectividade da rede.
O ICMP também é usado para a descoberta de Path Maximum Transmission Unit (PMTU). O PMTU é o tamanho máximo de um pacote IP que pode ser transmitido sem fragmentação em um caminho. Mensagens ICMP como “Fragmentação Necessária” e “Pacote Muito Grande” são usadas para determinar o MTU apropriado para um determinado caminho, ajudando a evitar a fragmentação e otimizar a transferência de dados.
Além disso, as mensagens ICMP podem ser usadas para rastrear o tempo que os pacotes levam para viajar da origem ao destino e vice-versa. A mensagem “Tempo Excedido” é usada para essa finalidade.
SNMP
SNMP, ou Protocolo Simples de Gerenciamento de Rede, é um protocolo da camada de aplicação para gerenciar e monitorar dispositivos e sistemas de rede.
O SNMP opera em um modelo de gerente-agente. Os dois componentes principais são:
Gerenciador SNMP
O gerente é responsável por fazer solicitações e coletar informações dos agentes SNMP, e também pode definir parâmetros de configuração nos agentes.
Agente SNMP
O agente é um módulo de software ou processo executado em dispositivos de rede que armazena informações sobre a configuração e o desempenho do dispositivo. O agente responde às solicitações dos gerentes SNMP.
A MIB (Base de Informações de Gerenciamento) é um banco de dados hierárquico que define a estrutura e a organização de objetos gerenciados em um dispositivo de rede. Ela serve como referência para gerentes e agentes SNMP, garantindo que eles entendam os dados um do outro.
Existem três versões do SNMP amplamente utilizadas:
SNMPv1: A versão original do SNMP que usa strings de comunidade para autenticação. Ela não possui recursos de segurança e é considerada menos segura.
SNMPv2c: Uma melhoria em relação ao SNMPv1, com suporte para tipos de dados adicionais e tratamento de erros aprimorado.
SNMPv3: A versão mais segura do SNMP, que oferece criptografia, autenticação e controle de acesso. Ela aborda muitos problemas de segurança das versões anteriores.
O SNMP é usado para várias tarefas de gerenciamento de rede, como monitoramento da utilização da largura de banda, rastreamento do tempo de atividade do dispositivo, configuração remota de dispositivos de rede e recebimento de alertas quando ocorrem eventos específicos (por exemplo, falhas do sistema ou violações de limites).
Conclusão ✍️
Espero que este artigo tenha sido útil para aprender sobre os vários protocolos de rede. Você também pode se interessar por aprender sobre segmentação de rede e como implementá-la.