Academia de Redes
Bem-vindo à Academia de Redes, o seu portal para dominar o mundo das redes de computadores. Nossa jornada educacional abrange desde os conceitos básicos na área de redes, como o Modelo de Referência OSI, até as tecnologias mais avançadas, como a análise de pacotes com ferramentas como Wireshark e tcpdump. Nosso objetivo é preparar você para se tornar um profissional de redes altamente qualificado e competitivo no mercado de trabalho.
O Instrutor
Com 25 anos de experiencia em Redes, atua na área desde 1998, em 2003 foi um dos primeiros instrutores certificados do programa de certificação da Cisco CCNA, programa internacional de treinamento promovido por um dos maiores players do mercado, já trabalhou em empresas como Dell, Getnet, SENAI, Teletex e Banrisul. Também atuou na implementação de diversos outros fabricantes como Aruba, Sonicwall, Dell, Fortinet, HP, entre outros.
Especialista em análise de protocolos em redes TCP/IP, em análise de tráfego de redes, resolução de problemas, ampla vivencia com equipamentos como switches, roteadores, firewalls, VPN e balanceadores entre outros.
Fundamentos Básicos para análise de protocolos
Neste curso, vamos explorar os conceitos fundamentais das redes de computadores, com a finalidade de analisar os protocolos de comunicação básicos no ambiente de rede e aprender a resolver problemas com base em conhecimento da pilha de protocolos TCP/IP
Programa do Curso:
  • Entender o Modelo de Referência OSI e suas camadas
  • Explorar a Camada Física e sua função na transmissão de dados
  • Dominar a Camada de Enlace de Dados (Data Link Layer), incluindo endereçamento MAC e switches
  • Mergulhar na Camada de Rede (Network Layer)
  • Dominar a Camada de Transporte (Layer 4), incluindo TCP e UDP
  • Desvendar a Camada de Sessão, Apresentação e Aplicação
  • Apreender conceitos importantes como broadcast storm, TTL e fragmentação de pacotes
  • Analisar pacotes de rede com Wireshark e tcpdump
  • Descrever o Handshake TCP e o funcionamento do protocolo TCP
  • Entender o funcionamento do protocolo UDP e suas características
  • Realizar práticas de captura e análise de pacotes com Wireshark e tcpdump
  • Conhecer as ferramentas de análise de rede e sua aplicação
  • Desenvolver habilidades essenciais para solucionar problemas em redes
Cronograma de aulas
Aula 1 - Modelo OSI e cabeçalho da camada 2, prática com wireshark
Aula 2 - cabeçalho da camada 3, prática com wireshark
Aula 3 - cabeçalho da camada 4, prática com wireshark
Aula 1
Modelo OSI e Camada de Enlace
O Modelo de Referência OSI
O Modelo de Referência OSI (Open Systems Interconnection) é um modelo conceitual que define as diferentes camadas de uma rede de computadores, desde a camada física até a camada de aplicação. Cada camada possui funções e protocolos específicos, trabalhando em conjunto para garantir a comunicação entre dispositivos.
Entendendo o Modelo de Referência OSI
  • A camada de aplicação (Application Layer) é a camada mais alta do modelo OSI e oferece a interface com os usuários e aplicações de rede, como navegadores web, clientes de email e programas de transferência de arquivos.
  • A camada de apresentação (Presentation Layer) é responsável por padronizar os formatos de dados, garantindo que os diferentes sistemas possam se comunicar, independentemente de seus formatos internos.
  • A camada de sessão (Session Layer) lida com o estabelecimento, manutenção e sincronização de sessões entre as aplicações, permitindo que as informações sejam trocadas de forma ordenada e segura.
  • A camada de transporte (Transport Layer) é responsável por fornecer serviços de transporte confiáveis para os dados, garantindo que os dados sejam entregues na ordem correta e sem erros.
  • A camada de rede (Network Layer) lida com o roteamento de dados entre redes, definindo o caminho que os dados devem percorrer para chegar ao destino.
  • A camada de enlace de dados (Data Link Layer) é responsável pela transmissão de dados entre os nós de uma rede local, garantindo a integridade dos dados e controlando o acesso ao meio físico.
  • A camada física (Physical Layer) é a camada mais baixa do modelo OSI e define as características físicas do meio de transmissão, como o tipo de cabo, os conectores e os sinais utilizados.
Camada Física do Modelo OSI
A camada física do modelo OSI é responsável por definir as características físicas do meio de transmissão, como o tipo de cabo, os conectores e os sinais utilizados. Essa camada lida com os aspectos elétricos, mecânicos e procedimentais da transmissão de dados, garantindo que os bits de dados sejam transmitidos de forma confiável entre os dispositivos.
Alguns exemplos de elementos da camada física incluem:
  • Tipos de cabos: cabo coaxial, cabo de par trançado, fibra óptica
  • Conectores: Fibra/UTP
  • Sinais elétricos: tensão, corrente, frequência
  • Protocolos de acesso ao meio: Ethernet, Wi-Fi, Bluetooth
Camada de Enlace de Dados (Data Link Layer)
A camada de enlace de dados do modelo OSI é responsável por gerenciar a transmissão de dados entre nós em uma rede local, garantindo a integridade dos dados e controlando o acesso ao meio físico. Essa camada opera entre a camada física, que cuida da transmissão de bits brutos, e a camada de rede, que lida com o roteamento de pacotes em uma rede maior.
Algumas funções principais da camada de enlace de dados incluem:
- **Controle de acesso ao meio (MAC):** Regula o acesso ao meio físico, como um cabo ou canal sem fio, evitando colisões de dados e garantindo que apenas um nó transmita por vez.
- **Detecção e correção de erros:** Verifica a integridade dos dados transmitidos, detectando erros e, em alguns casos, corrigindo-os. Essa detecção pode ser feita através de técnicas como CRC (Cyclic Redundancy Check).
- **Enquadramento de dados:** Organiza os dados em quadros, adicionando informações de cabeçalho e rodapé para identificar os limites de cada quadro e garantir a entrega correta.
Alguns exemplos de protocolos da camada de enlace de dados incluem:
- **Ethernet:** Um dos protocolos mais comuns, usado em redes locais cabeadas.
- **Wi-Fi (IEEE 802.11):** Protocolo para redes locais sem fio.
- **Bluetooth:** Protocolo para redes locais de curto alcance.
Camada de Rede (Network Layer)
  • Roteamento de pacotes entre redes
  • Endereçamento lógico de dispositivos (endereços IP)
  • Fragmentação e reagrupamento de pacotes
  • Controle de congestionamento
Alguns exemplos de protocolos da camada de rede incluem:
- \*\*IP (Internet Protocol):\*\* Define o endereçamento lógico e o roteamento de pacotes na internet.
- \*\*ICMP (Internet Control Message Protocol):\*\* Permite a troca de mensagens de erro e controle entre dispositivos na internet.
- \*\*ARP (Address Resolution Protocol):\*\* Traduz endereços IP em endereços MAC, permitindo que dispositivos na mesma rede local se comuniquem.
Camada de Transporte (Layer 4)
A camada de transporte do modelo OSI atua como uma ponte entre as aplicações que desejam se comunicar e a rede subjacente. Ela é responsável por gerenciar as conexões entre essas aplicações, garantindo que os dados sejam entregues de forma confiável e eficiente. Essa camada lida com aspectos como confiabilidade, controle de fluxo e segmentação de dados, tornando a comunicação entre aplicações em diferentes computadores mais robusta e eficiente.
Existem dois protocolos principais que operam na camada de transporte: TCP (Transmission Control Protocol) e UDP (User Datagram Protocol). O TCP é um protocolo orientado à conexão, o que significa que estabelece uma conexão confiável entre os dispositivos antes de transmitir dados. Ele garante que os dados sejam entregues na ordem correta e sem erros, sendo ideal para aplicações que exigem alta confiabilidade, como transferência de arquivos ou navegação web. O UDP, por outro lado, é um protocolo sem conexão, que transmite dados sem estabelecer uma conexão prévia. Ele é mais rápido e menos exigente em termos de recursos, mas não garante a entrega dos dados ou sua ordem. O UDP é ideal para aplicações que priorizam a velocidade e não exigem alta confiabilidade, como streaming de áudio ou vídeo.
Camada de Sessão (Session Layer)
A Camada de Sessão do modelo OSI é responsável por estabelecer, coordenar e gerenciar as conversas entre aplicações em diferentes dispositivos. Ela fornece um mecanismo para iniciar, controlar e terminar as sessões de comunicação, garantindo que os dados sejam trocados de forma ordenada e confiável.
Algumas funções principais da camada de sessão incluem:
- **Gerenciamento de diálogos:** Controla o início, o término e a sincronização das conversões entre aplicações, como uma chamada de vídeo ou uma transferência de arquivos.
- **Controle de pontos de verificação:** Permite que as aplicações estabeleçam pontos de verificação durante a transferência de dados, garantindo que, em caso de falha na conexão, a transmissão possa ser retomada a partir do último ponto de verificação.
- **Gerenciamento de tokens:** Define regras para a troca de dados entre aplicações, garantindo que as informações fluam de forma organizada e que cada aplicação tenha sua vez de enviar dados.
Alguns exemplos de protocolos da camada de sessão incluem:
- **RPC (Remote Procedure Call):** Permite que uma aplicação em um dispositivo chame procedimentos em outro dispositivo, como se estivessem no mesmo computador.
- **NetBIOS (Network Basic Input/Output System):** Um conjunto de protocolos de rede que permitem compartilhamento de arquivos e impressoras em redes locais.
- **SQL (Structured Query Language):** Uma linguagem de consulta para bancos de dados relacionais, que pode ser usada para acessar dados de um banco de dados remoto.
Camada de Apresentação (Presentation Layer)
A Camada de Apresentação do modelo OSI é responsável por garantir que os dados trocados entre aplicações sejam compreensíveis por ambas as partes. Ela atua como um intermediário, traduzindo os dados para um formato que seja compatível com a aplicação de destino e, ao mesmo tempo, garante a segurança e a privacidade da informação.
Algumas das funções principais da camada de apresentação incluem:
- **Formatação de dados:** Convertem dados de um formato para outro, como texto simples para HTML ou um documento Word para PDF. Essa conversão garante que os dados sejam exibidos corretamente na aplicação de destino, independentemente do sistema operacional ou software usado.
- **Criptografia e Decriptografia:** Protegem os dados contra acesso não autorizado durante a transmissão. A camada de apresentação pode usar algoritmos de criptografia para codificar os dados, tornando-os ilegíveis para qualquer pessoa que não tenha a chave de decodificação.
- **Compressão de dados:** Reduz o tamanho dos dados a serem transmitidos, o que aumenta a velocidade da transmissão e economiza largura de banda. A camada de apresentação pode usar algoritmos de compressão de dados para compactar arquivos e informações, tornando a transmissão mais eficiente.
Alguns exemplos de protocolos da camada de apresentação incluem:
- **SSL (Secure Sockets Layer):** Um protocolo que garante a segurança e a privacidade de dados transmitidos pela internet. O SSL usa criptografia para proteger as informações, garantindo que apenas o remetente e o destinatário possam ler o conteúdo.
- **TLS (Transport Layer Security):** Um protocolo de segurança que oferece conexões criptografadas entre dois dispositivos, semelhante ao SSL. O TLS é uma versão mais avançada do SSL e é amplamente usado para proteger transações online, como compras e serviços bancários.
- **MIME (Multipurpose Internet Mail Extensions):** Um padrão que define como os dados são formatados para envio por e-mail. O MIME permite o envio de diferentes tipos de arquivos como anexos de e-mail, como imagens, vídeos e documentos, além de texto simples.
Camada de Aplicação (Application Layer)
A Camada de Aplicação é a camada mais alta do modelo OSI, responsável por fornecer serviços para as aplicações de usuário. Essa camada interage diretamente com as aplicações, como navegadores web, clientes de email e softwares de transferência de arquivos.
Alguns exemplos de protocolos da camada de aplicação incluem:
  • HTTP (Hypertext Transfer Protocol): Protocolo usado para transmitir páginas web e outros recursos da web.
  • FTP (File Transfer Protocol): Protocolo usado para transferir arquivos entre computadores.
  • SMTP (Simple Mail Transfer Protocol): Protocolo usado para enviar emails.
  • DNS (Domain Name System): Sistema usado para traduzir nomes de domínio em endereços IP.
  • DHCP (Dynamic Host Configuration Protocol): Protocolo usado para atribuir automaticamente endereços IP a dispositivos em uma rede.
  • TFTP (Trivial File Transfer Protocol): Protocolo simples usado para transferir arquivos entre computadores, ideal para transferências rápidas e pequenas.
O Modelo de Referência OSI vs. Modelo TCP/IP
Modelo OSI
  • Camada de Aplicação: Inclui protocolos como HTTP (World Wide Web), SMTP (email), FTP (transferência de arquivos), DNS (sistema de nomes de domínio), Telnet (acesso remoto) e outros protocolos de aplicação.
  • Camada de Apresentação: Responsável por formatar dados para que diferentes sistemas possam se comunicar, convertendo caracteres, códigos e criptografia de dados.
  • Camada de Sessão: Gerencia as conexões entre as aplicações, controla o início, a pausa e o término das sessões, além de sincronizar os fluxos de dados.
  • Camada de Transporte: Garante o transporte confiável de dados entre os processos de aplicação, utilizando protocolos como TCP (Transmission Control Protocol) para conexões orientadas à conexão e UDP (User Datagram Protocol) para conexões não orientadas à conexão.
  • Camada de Rede: Roteia dados entre diferentes redes, utilizando protocolos como IP (Internet Protocol) para endereçamento e roteamento, além de serviços de fragmentação e reassembly de pacotes.
  • Camada de Enlace de Dados: Envia dados entre nós na mesma rede local, utilizando protocolos como Ethernet para acesso ao meio físico, além de serviços de controle de acesso ao meio e detecção de erros.
  • Camada Física: Define as características físicas do meio de transmissão, como o tipo de cabo, conectores, sinais elétricos e padrões físicos para o envio de dados.
Modelo TCP/IP
  • Camada de Aplicação: Inclui os mesmos protocolos da camada de aplicação do OSI, como HTTP, SMTP, FTP, DNS, Telnet e outros, agrega funções da camada de aplicação, apresentação e sessão do modelo osi.
  • Camada de Transporte: Responsável por prover serviços de transporte, utilizando os protocolos TCP e UDP, como no modelo OSI.
  • Camada de Internet: Encapsula os dados com o cabeçalho IP, realiza o roteamento de dados entre diferentes redes, similar à camada de rede do OSI.
  • Camada de Acesso à Rede: Define o acesso ao meio físico da rede, similar à camada de enlace de dados do OSI, com protocolos como Ethernet.
A Camada de Enlace
Estrutura do Endereço MAC
O endereço MAC (Media Access Control) é um identificador exclusivo atribuído a cada dispositivo de rede, como computadores, impressoras, roteadores e switches. É fundamental para a comunicação entre dispositivos em uma rede local (LAN) e é usado para identificar os destinatários dos dados transmitidos.
Ele é composto por 48 bits, normalmente representados em notação hexadecimal, e dividido em duas partes: os 24 bits menos significativos identificam o fabricante do dispositivo (OUI - Organizational Unique Identifier), que é atribuído pelo IEEE, e os 24 bits mais significativos representam o número de série do dispositivo, atribuído pelo fabricante. Esse número de série é único para cada dispositivo, garantindo que cada dispositivo tenha um endereço MAC exclusivo em todo o mundo.
O endereço MAC é gravado na placa de rede do dispositivo e geralmente não pode ser alterado. Ele é usado na Camada 2 do modelo OSI, a Camada de Enlace de Dados, para identificar os dispositivos na rede e para controlar o acesso ao meio físico.
Em resumo, o endereço MAC é um identificador crucial para a comunicação em redes locais. Ele garante a comunicação correta entre os dispositivos e permite o gerenciamento de tráfego de rede. O endereço MAC é uma parte fundamental da estrutura de rede e é usado em vários protocolos e padrões de rede.
Tabela CAM em Switches
A tabela CAM (Content Addressable Memory) é uma estrutura de dados fundamental em switches de rede, responsável por armazenar as informações de mapeamento entre endereços MAC e portas. Quando um switch recebe um frame, ele consulta sua tabela CAM para determinar a porta de saída correspondente ao endereço MAC de destino do frame.
A tabela CAM é altamente otimizada para buscas rápidas, permitindo que os switches encaminhem frames com alta velocidade. Ela opera como um cache de informações de endereço MAC, armazenando os endereços MAC aprendidos durante o funcionamento do switch. Assim, o switch pode encaminhar frames com base nos endereços MAC aprendidos sem precisar consultar outros dispositivos na rede, otimizando o desempenho e reduzindo o tráfego de broadcast.
Broadcast na Camada2
Broadcast
Na camada 2, a transmissão de dados ocorre por meio de quadros (frames). Um quadro enviado a todos os dispositivos em um segmento de rede é chamado de broadcast. Essa forma de comunicação é utilizada quando o dispositivo de origem não sabe o endereço MAC de destino. Por exemplo, quando um dispositivo envia um quadro ARP (Address Resolution Protocol) para descobrir o endereço MAC de um dispositivo específico na rede, ele utiliza a broadcast.
Flooding (inundação)
Os switches, que operam na camada 2, são responsáveis por encaminhar quadros entre dispositivos em uma rede local. Quando um switch recebe um quadro de broadcast, ele o envia por todas as portas, exceto a porta pela qual foi recebido. Esse processo, conhecido como flooding, garante que o quadro seja recebido por todos os dispositivos na rede, exceto o dispositivo que o enviou.
Colisão
Em redes compartilhadas, como as redes Ethernet tradicionais, as colisões podem ocorrer quando dois dispositivos transmitem dados ao mesmo tempo. As colisões resultam em dados corrompidos, pois os sinais de ambos os dispositivos se sobrepõem no meio físico. Em redes Ethernet modernas, o uso de switches eliminou as colisões, pois os switches oferecem caminhos dedicados para cada dispositivo conectado, evitando que os sinais de diferentes dispositivos se sobreponham.
Como encontrar o endereço MAC
Para encontrar o endereço MAC de uma placa de rede específica no Windows, você pode utilizar o Prompt de Comando ou o PowerShell. Abra o Prompt de Comando ou o PowerShell e execute o comando "ipconfig /all". Isso exibirá uma lista detalhada de todas as placas de rede instaladas no seu sistema, incluindo seus respectivos endereços MAC. O endereço MAC, também conhecido como "Endereço Físico", é geralmente apresentado na linha "Endereço físico" dentro da descrição de cada placa de rede.
No Linux, o processo é semelhante, utilizando o comando "ifconfig". Ao executar esse comando, você obterá uma lista de todas as placas de rede presentes no seu sistema Linux, incluindo seus endereços MAC. O endereço MAC é normalmente apresentado na linha "HWaddr" dentro da descrição de cada placa de rede. Para identificar qual placa de rede corresponde a qual endereço MAC, você pode observar o nome da interface de rede, como "eth0" ou "wlan0", que são nomes comuns para placas de rede Ethernet e Wi-Fi, respectivamente.
Frame Ethernet
Formação do Cabeçalho na Camada 2 (Enlace de Dados)
a camada 2 do modelo OSI, a formação do cabeçalho varia dependendo do protocolo de enlace de dados utilizado. No entanto, geralmente contém informações essenciais para o estabelecimento e controle da comunicação entre dois dispositivos na mesma rede física.
Por exemplo, em um protocolo Ethernet, o cabeçalho da camada 2 inclui:
  • Preâmbulo: É uma sequência de 7 bytes que precede o cabeçalho da camada 2. O preâmbulo é usado para sincronizar o receptor com o transmissor e também para fornecer uma contagem de bits para a detecção de erros. Os 7 bytes consistem em uma sequência de padrões de bits alternados 10101010 e 01010101.
  • SFD (Start Frame Delimiter): É um campo de 1 byte que marca o início do cabeçalho do frame. É usado para sinalizar o receptor que um novo frame está sendo enviado. O SFD é sempre o valor hexadecimal 0x10 (decimal 16).
  • Endereço MAC de origem e destino: Esses endereços identificam de forma única os dispositivos na rede física, permitindo que os frames sejam direcionados corretamente. Cada endereço MAC tem 6 bytes (48 bits).
  • Tipo de Frame: Indica o tipo de dados sendo transmitido, como dados, controle ou gerenciamento. Em um frame Ethernet, o campo tipo é usado para indicar o protocolo da camada 3 (por exemplo, IPv4, IPv6). O campo Tipo tem 2 bytes.
  • Sequenciamento: Em alguns protocolos, o cabeçalho pode conter um número de sequência para organizar os frames em uma ordem específica. Isso pode ser usado para garantir que os frames sejam recebidos na ordem correta, mesmo que sejam transmitidos fora de ordem devido a congestionamento ou outros problemas. O tamanho do campo de sequenciamento varia dependendo do protocolo.
  • VLAN ID: É um campo opcional de 2 bytes que identifica a VLAN (Virtual Local Area Network) à qual o frame pertence. O VLAN ID permite a segmentação de uma rede física em várias sub-redes lógicas, permitindo que o tráfego seja direcionado e controlado de forma mais eficiente.
  • FCS (Frame Check Sequence): É um campo de 4 bytes que contém um CRC (Cyclic Redundancy Check) para verificar a integridade do frame. O FCS é calculado a partir de todos os bytes do frame, exceto o próprio FCS. Quando o frame é recebido, o receptor calcula o CRC do frame recebido e compara com o valor do FCS. Se os valores coincidirem, o frame é considerado válido.
É importante notar que a formação do cabeçalho da camada 2 é específica do protocolo de enlace de dados utilizado. O tamanho mínimo de um frame Ethernet é de 64 bytes, enquanto o tamanho máximo é de 1518 bytes. O tamanho do frame pode variar dependendo do tipo de frame e do protocolo de enlace de dados utilizado.
Visto no Wireshark
Em algumas redes, é possível aumentar o tamanho máximo de um frame Ethernet para além de 1518 bytes, até um tamanho de 9000 bytes. Esse tipo de frame é conhecido como jumbo frame. O uso de jumbo frames pode aumentar a eficiência da rede, reduzindo o número de frames que precisam ser transmitidos para transferir grandes quantidades de dados. No entanto, o uso de jumbo frames requer suporte de todos os dispositivos na rede, incluindo switches, roteadores e placas de rede. Para ativar o suporte a jumbo frames, você precisa configurar seus dispositivos para permitir o uso de frames maiores. Os jumbo frames são geralmente usados em redes locais e não são compatíveis com a Internet, pois a maioria dos roteadores e servidores da Internet não os suporta.
Tempestade de Broadcasts na Camada 2 (broadcast storm)
Uma tempestade de broadcasts é um problema comum em redes de computadores que ocorre quando um dispositivo na rede envia um grande número de frames de broadcast, inundando a rede com tráfego desnecessário, impactando o desempenho geral da rede. Isso pode acontecer devido a diversos fatores, incluindo:
- **Configurações incorretas de dispositivos:** Um dispositivo configurado incorretamente para enviar broadcasts em excesso pode causar uma tempestade de broadcasts. -
**Ataques maliciosos:** Atacadores podem explorar vulnerabilidades em dispositivos de rede para enviar broadcasts maliciosos com o objetivo de sobrecarregar a rede e causar interrupções. -
**Falhas de hardware:** Um dispositivo com falha de hardware pode enviar broadcasts aleatoriamente, levando a uma tempestade de broadcasts. -
**Redes mal projetadas:** Uma rede mal projetada com um grande número de dispositivos conectados pode tornar-se propensa a tempestades de broadcasts, especialmente se não houver um plano de mitigação para broadcasts excessivos.
As consequências de uma tempestade de broadcasts são significativas:
- **Redução de desempenho da rede:** O tráfego de broadcast excessivo sobrecarrega a rede, diminuindo a velocidade de transferência de dados e aumentando a latência. -
**Interrupções na rede:** A rede pode ficar instável ou até mesmo indisponível devido à sobrecarga causada por uma tempestade de broadcasts. -
**Aumento do uso de banda:** O tráfego de broadcast consome uma quantidade significativa de largura de banda da rede, o que pode afetar outros serviços e aplicações. -
**Difícil de solucionar:** As tempestades de broadcasts podem ser difíceis de diagnosticar e solucionar, exigindo análise aprofundada do tráfego de rede.
Mecanismos de Controle de Broadcast em Switches
  • **VLANs (Virtual Local Area Networks):** VLANs são sub-redes lógicas que segmentam a rede em grupos de dispositivos. Os switches podem usar VLANs para controlar broadcasts, limitando-os apenas aos dispositivos dentro da mesma VLAN. Isso ajuda a reduzir o tráfego de broadcast desnecessário e a melhorar o desempenho da rede. Por exemplo, imagine uma rede com dois departamentos, Vendas e Marketing. Com VLANs, podemos criar uma VLAN para Vendas e outra para Marketing, e os switches podem configurar regras para que broadcasts enviados por dispositivos na VLAN de Vendas não sejam propagados para dispositivos na VLAN de Marketing, e vice-versa.
  • **Port Security:** O recurso de segurança de porta limita o número de endereços MAC que podem ser aprendidos em uma porta específica. Isso ajuda a prevenir a propagação de broadcasts indesejados. Por exemplo, se uma porta em um switch está configurada para permitir apenas dois endereços MAC, se um terceiro dispositivo tentar se conectar à porta, o switch bloqueará o tráfego do dispositivo, evitando a propagação de broadcasts indesejados na rede. Isso é especialmente útil para impedir que dispositivos não autorizados se conectem à rede e enviem broadcasts.
  • **STP (Spanning Tree Protocol):** O STP é um protocolo padrão IEEE 802.1D que garante que não haja loops de rede, que podem causar broadcasts excessivos. Ele bloqueia seletivamente portas para impedir que broadcasts se propaguem em loops. Por exemplo, imagine uma rede com dois switches conectados em um loop. Se um dispositivo enviar um broadcast, o broadcast pode circular indefinidamente entre os dois switches, causando uma tempestade de broadcasts. O STP detecta esse loop e bloqueia seletivamente uma das portas nos switches, evitando que o broadcast circule e sobrecarregue a rede. Isso garante que a rede seja estável e tenha um desempenho otimizado.
  • **IEEE 802.1Q:** Este padrão define a técnica de tagging de VLANs, permitindo que switches identifiquem e segmentem o tráfego de rede com base em VLANs. Os switches podem usar a tag VLAN para controlar o tráfego de broadcast, garantindo que ele seja direcionado apenas para dispositivos dentro da mesma VLAN. Isso ajuda a reduzir a probabilidade de tempestades de broadcasts e a melhorar a segurança da rede.
Tipos de STP em Switches
  • STP (Spanning Tree Protocol) - IEEE 802.1D - é um protocolo de rede que impede loops de rede, que podem causar broadcasts excessivos. Em uma rede com vários switches conectados, o STP garante que não haja múltiplos caminhos para o mesmo destino, evitando a propagação de broadcasts em loops. O STP funciona bloqueando portas que não são necessárias para a árvore de spanning. Esse protocolo é simples e funciona bem em redes pequenas, mas pode ter alguns desafios em redes maiores com configurações complexas.
  • RSTP (Rapid Spanning Tree Protocol) - IEEE 802.1w - é uma versão aprimorada do STP, que é mais rápida e eficiente. O RSTP pode aprender e reconvergir a árvore de spanning mais rapidamente do que o STP tradicional. Isso é importante em redes complexas e dinâmicas, onde as mudanças na topologia da rede são frequentes.
  • MSTP (Multiple Spanning Tree Protocol) - IEEE 802.1s - é uma versão avançada do RSTP que permite criar múltiplas árvores de spanning em um único switch. Isso é útil em redes complexas com VLANs, onde a conectividade entre os dispositivos deve ser separada por VLAN.
Aula 2
A Camada de Rede
A camada de rede
Camada de Rede (Network Layer)
A Camada de Rede é responsável por roteamento de pacotes de dados entre redes diferentes. Para realizar esse roteamento, ela utiliza endereços lógicos, como os endereços IP (Internet Protocol), para identificar os dispositivos na rede. O cabeçalho da camada 3 contém informações essenciais para o roteamento, incluindo:
- Endereço IP de origem e destino: Esses endereços identificam os dispositivos que estão enviando e recebendo os dados.
- Protocolo de transporte: Especifica o protocolo que será usado na camada de transporte, como TCP ou UDP.
- Tempo de vida (TTL): Define o tempo máximo que um pacote pode permanecer na rede antes de ser descartado, evitando loops infinitos.
- Identificação: Um número único para identificar o pacote, usado para rastrear e gerenciar o fluxo de dados.
- Fragmentação: Informa se o pacote foi fragmentado para ser transmitido em partes menores.
- CRC: Um mecanismo para detectar erros durante a transmissão.
O cabeçalho da camada 3 é essencial para o roteamento eficiente de dados entre redes. Ele garante que os pacotes cheguem ao destino correto e com a qualidade esperada. O tamanho do cabeçalho da camada 3 varia de acordo com o protocolo utilizado, mas geralmente é pequeno para minimizar o overhead na transmissão de dados.
Campos do Cabeçalho IP
Cabeçalho IP Detalhado
O cabeçalho IP (Internet Protocol) é um componente crucial para o roteamento e entrega de pacotes na rede. Ele contém informações essenciais para garantir que os dados cheguem ao destino correto de forma eficiente.
O cabeçalho IP inclui campos como o endereço IP de origem e destino, o tamanho do pacote, o tipo de serviço, o tempo de vida (TTL) e o identificador do fragmento. Essas informações permitem que os roteadores da internet encaminhem o pacote pela rota mais adequada e que os dispositivos receptores identifiquem a origem e o destino do pacote.
O TTL, por exemplo, é um contador que diminui a cada salto do pacote na rede. Quando o TTL atinge zero, o pacote é descartado, evitando que ele circule indefinidamente na internet. A fragmentação, por sua vez, permite que pacotes grandes sejam divididos em partes menores para facilitar a transmissão em redes com limites de tamanho de pacote.
O cabeçalho IP também inclui um campo de Flags, que indica informações sobre a fragmentação do pacote. Os flags mais comuns são:
- **DF (Don't Fragment):** Indica que o pacote não pode ser fragmentado.
- **MF (More Fragments):** Indica que este pacote é um fragmento de um pacote maior.
- **Offset:** Indica a posição do fragmento no pacote original.
Os flags de fragmentação são importantes para garantir que os pacotes fragmentados sejam reconstruídos corretamente no destino.
Outro campo importante é o **DSCP (Differentiated Services Code Point)**. Este campo define a prioridade do pacote, permitindo que os roteadores priorizem o tráfego de acordo com a necessidade. O DSCP é usado para gerenciar o tráfego de rede, garantindo que o tráfego mais importante receba o tratamento necessário. Por exemplo, tráfego de voz ou vídeo pode ser priorizado em relação ao tráfego de dados normais, como downloads ou navegação na web.
Descrição Campos do Cabeçalho IPv4
O cabeçalho IPv4 contém informações essenciais para o roteamento e entrega de pacotes de dados na rede. Ele inclui campos como o endereço IP de origem e destino, o tamanho do pacote, o tipo de serviço, o tempo de vida (TTL) e o identificador do fragmento. Essas informações permitem que os roteadores da internet encaminhem o pacote pela rota mais adequada e que os dispositivos receptores identifiquem a origem e o destino do pacote.
Versão
Identifica a versão do protocolo IP. No caso do IPv4, o valor é 4.
Tamanho do Cabeçalho
Especifica o tamanho do cabeçalho IPv4 em unidades de 32 bits (4 bytes). O valor mínimo é 5 (20 bytes), e pode ser maior se campos opcionais estiverem presentes.
Tipo de Serviço
Indica as preferências de tratamento do pacote, como prioridade e confiabilidade. Por exemplo, um pacote com alta prioridade pode ser enviado primeiro, enquanto um pacote com baixa prioridade pode ser enviado depois.
Tamanho Total
Define o tamanho total do pacote, incluindo o cabeçalho e os dados. É expresso em bytes.
Identificador
Identifica o fragmento do pacote em caso de fragmentação. É usado para reassembleia dos fragmentos no destino.
Flags
Contém bits que indicam se o pacote pode ser fragmentado, se ele é o último fragmento e se é um fragmento inicial.
Offset de Fragmentação
Especifica a posição do fragmento atual dentro do pacote original. É usado para reassembleia dos fragmentos no destino.
Tempo de Vida (TTL)
Um contador que é decrementado a cada salto do pacote na rede. Quando o TTL atinge zero, o pacote é descartado, evitando que ele circule indefinidamente na internet.
Protocolo
Identifica o protocolo de camada superior que está sendo transportado pelo pacote IP (por exemplo, TCP ou UDP).
Checksum
Um valor de verificação que garante a integridade dos dados do cabeçalho.
Endereço IP de Origem
O endereço IP do dispositivo que enviou o pacote.
Endereço IP de Destino
O endereço IP do dispositivo que receberá o pacote.
Opções
Contém informações opcionais, como roteamento de segurança e informações de segurança.
Tempo de Vida (TTL)
O campo Tempo de Vida (TTL) no cabeçalho de um pacote IP (Internet Protocol) é um mecanismo crucial para a gestão eficiente de pacotes de rede. Ele age como um contador que diminui a cada "salto" que o pacote faz na rede, garantindo que os pacotes não permaneçam indefinidamente na rede, evitando loops infinitos e congestionamento.
O TTL é definido pelo dispositivo de origem no momento em que o pacote é enviado. Cada roteador ou gateway que o pacote encontra diminui o valor do TTL. Quando o valor do TTL chega a zero, o pacote é descartado e uma mensagem ICMP (Protocolo de Mensagem de Controle da Internet) "Tempo Excedido" é enviada de volta para a origem, indicando que o pacote não conseguiu atingir seu destino dentro do limite de tempo especificado.
O TTL é um parâmetro importante na Camada de Rede (Network Layer) do modelo OSI, sendo essencial para a garantia de que os pacotes não fiquem "perdidos" na rede. Ele é usado para evitar que um único pacote fique circulando por um longo tempo, o que pode levar a uma sobrecarga na rede.
O valor do TTL é configurado por padrão em cada dispositivo, mas pode ser ajustado para atender às necessidades específicas de uma rede. Engenheiros de rede podem configurar o TTL para otimizar o desempenho da rede, ajustando o tempo máximo que os pacotes podem permanecer na rede, levando em consideração o tamanho da rede, o tráfego esperado e outros fatores relevantes.
Um TTL baixo pode ajudar a evitar a sobrecarga da rede, mas também pode levar a um descarte prematuro de pacotes. Por outro lado, um TTL alto pode permitir que os pacotes permaneçam na rede por um período maior, aumentando o risco de congestionamento e de pacotes "perdidos".
Exemplo Prático:
Imagine um cenário onde um pacote precisa viajar entre diferentes redes para chegar ao seu destino final. Se o pacote encontrar um loop de roteamento, ele poderá ficar circulando infinitamente entre os roteadores, consumindo recursos da rede e causando congestionamento. O campo TTL atua como um "guarda-chuva" para esse tipo de situação, garantindo que o pacote seja descartado após um certo tempo, evitando loops infinitos e assegurando a estabilidade da rede.
Fragmentação de pacotes de rede
Em redes de computadores, os dados são transmitidos em unidades chamadas pacotes. Esses pacotes são projetados para serem pequenos o suficiente para viajar de forma eficiente pela rede, mas às vezes um pacote pode ser grande demais para caber dentro da unidade máxima de transmissão (MTU) de um segmento de rede específico. É aí que entra a fragmentação.
A fragmentação é o processo de dividir um pacote grande em pacotes menores, chamados fragmentos, que podem ser transmitidos individualmente pelo segmento de rede com uma MTU menor. Cada fragmento contém uma parte dos dados originais, juntamente com informações de cabeçalho adicionais para identificá-lo como parte de um pacote fragmentado. Essas informações de cabeçalho incluem o tamanho do pacote original e um deslocamento de fragmento, que indica a posição do fragmento dentro do pacote original.
O tamanho padrão da MTU é de 1500 bytes. No entanto, esse tamanho pode variar dependendo da rede e do dispositivo específico. Quando um dispositivo receptor recebe um pacote fragmentado, ele reassembla os fragmentos na ordem correta para reconstruir o pacote original. Esse processo é tratado automaticamente pelos protocolos de rede e é transparente para o usuário final. A fragmentação é um mecanismo crucial para garantir que pacotes grandes possam ser transmitidos de forma eficaz através de redes com diferentes MTUs, permitindo uma transmissão de dados eficiente em redes heterogêneas.
Aula 3
A Camada de Transporte
A camada de Transporte
Camada de Transporte (Layer 4) TCP
Porta de Origem
Identifica o aplicativo específico que está enviando os dados no dispositivo de origem. Por exemplo, o navegador web utiliza a porta 80 para se comunicar com um servidor web, enquanto o serviço de email utiliza a porta 25.
Porta de Destino
Identifica o aplicativo específico que está recebendo os dados no dispositivo de destino. Assim como a porta de origem, a porta de destino também é específica para cada aplicativo. Por exemplo, um servidor web espera receber conexões na porta 80, enquanto um servidor de email espera conexões na porta 25.
Número de Sequência (TCP)
Utilizado para organizar os segmentos em uma sequência específica durante a transmissão. O TCP é um protocolo orientado à conexão, então ele garante que os segmentos cheguem na ordem correta, evitando perda de dados.
Confirmação (TCP)
Utilizado para reconhecer o recebimento dos segmentos e garantir que os dados foram transmitidos corretamente. O TCP usa um mecanismo de handshake para estabelecer a conexão, confirmar o recebimento dos dados e finalizar a conexão.
Controle de Fluxo (TCP)
Permite que os dispositivos controlem a taxa de dados transmitidos para evitar congestionamento da rede. O TCP utiliza técnicas como o controle de congestionamento e o controle de fluxo para ajustar a taxa de transmissão de acordo com a capacidade da rede e do receptor.
Controle de Erros (TCP)
Utiliza mecanismos para detectar e corrigir erros durante a transmissão. O TCP usa checksums para detectar erros e retransmitir os segmentos perdidos, garantindo a integridade dos dados.
Camada de Transporte (Layer 4) - UDP
  • Porta de Origem: Identifica o aplicativo específico que está enviando os dados no dispositivo de origem. Por exemplo, o navegador web utiliza a porta 80 para se comunicar com um servidor web, enquanto o serviço de email utiliza a porta 25.
  • Porta de Destino: Identifica o aplicativo específico que está recebendo os dados no dispositivo de destino. Assim como a porta de origem, a porta de destino também é específica para cada aplicativo. Por exemplo, um servidor web espera receber conexões na porta 80, enquanto um servidor de email espera conexões na porta 25.
  • Comprimento: Indica o tamanho total do datagrama UDP, incluindo o cabeçalho e os dados. O comprimento do cabeçalho é fixo em 8 bytes, enquanto o tamanho dos dados pode variar dependendo da aplicação.
  • Checksum: É um valor de verificação de erros usado para garantir a integridade dos dados. Ele detecta erros durante a transmissão. O UDP utiliza um checksum para verificar se os dados foram corrompidos durante a transmissão. Se o checksum não corresponder, o datagrama é descartado.
Captura e Análise de Pacotes: Wireshark e tcpdump
1
Wireshark
Ferramenta gráfica para captura e análise detalhada de pacotes de rede.
2
tcpdump
Utilitário de linha de comando para captura e filtragem de pacotes de rede.
3
Entendendo o Tráfego
Identificar problemas de rede, diagnosticar falhas e monitorar o desempenho.
Protocolos de Rede: TCP e UDP
TCP (Transmission Control Protocol)
Protocolo orientado à conexão, com garantia de entrega de dados, ideal para aplicações sensíveis a erros, como navegação web e transferência de arquivos.
UDP (User Datagram Protocol)
Protocolo sem conexão, transmissão de dados sem garantia de entrega, mais rápido, ideal para aplicações em tempo real, como streaming de vídeo e jogos online.
ICMP (Internet Control Message Protocol)
Protocolo de mensagens de controle, utilizado para diagnóstico de problemas de rede e detecção de erros. Mensagens de erro e informações de status são enviadas por meio do ICMP.
Handshake TCP
1
SYN
O cliente envia um pacote SYN (sincronização) para o servidor, indicando a intenção de estabelecer uma conexão TCP. Este pacote contém informações como o número de sequência inicial do cliente e a porta de destino do servidor.
2
SYN-ACK
O servidor responde com um pacote SYN-ACK (sincronização-confirmação), reconhecendo o pedido do cliente e enviando sua própria informação de sincronização. Este pacote também contém o número de sequência inicial do servidor e a porta de origem do servidor.
3
ACK
O cliente responde com um pacote ACK (confirmação), reconhecendo a resposta do servidor e finalizando o processo de handshake. Este pacote contém o número de sequência do servidor mais 1, como forma de confirmar o recebimento do SYN-ACK. A partir deste ponto, a conexão TCP está estabelecida e os dados podem ser transmitidos entre o cliente e o servidor.
Protocolo TCP: Estabelecimento de Conexão, Transferência de Dados e Encerramento
1
Estabelecimento de Conexão
O TCP utiliza um processo de três vias, conhecido como handshake TCP, para estabelecer uma conexão confiável entre dois dispositivos. O processo começa com o dispositivo A (o cliente) enviando um pacote SYN (synchronization) para o dispositivo B (o servidor). O dispositivo B responde com um pacote SYN-ACK (synchronization-acknowledgment), que confirma o recebimento do SYN e também solicita uma conexão. Finalmente, o dispositivo A envia um pacote ACK (acknowledgment) para confirmar o recebimento do SYN-ACK, estabelecendo a conexão. Este processo garante que ambos os dispositivos estejam sincronizados e prontos para a troca de dados. Ele também fornece uma verificação de segurança básica, certificando-se de que o servidor correto está respondendo ao pedido do cliente.
2
Transferência de Dados
Após a conexão estabelecida, o TCP garante a entrega confiável de dados entre os dispositivos. O controle de fluxo é usado para evitar que o dispositivo A envie dados muito rapidamente para o dispositivo B, enquanto a detecção e correção de erros garantem que os dados cheguem ao destino sem erros. O TCP divide os dados em segmentos, numera cada segmento e usa mecanismos de retransmissão para garantir que todos os segmentos sejam recebidos em ordem. O controle de fluxo impede que o dispositivo receptor seja sobrecarregado com dados, garantindo que a conexão seja eficiente e livre de perda de dados. A detecção e correção de erros garantem que os dados cheguem ao destino sem erros, utilizando mecanismos como checksums e sequenciamento de segmentos. A retransmissão garante que todos os segmentos sejam recebidos pelo dispositivo receptor, mesmo em caso de perda de pacotes, através do reenvio de segmentos ausentes.
3
Encerramento
Para finalizar a conexão, o dispositivo A envia um pacote FIN (finish) para o dispositivo B, indicando que não há mais dados a serem enviados. O dispositivo B responde com um ACK, confirmando o recebimento do FIN. Em seguida, o dispositivo B envia seu próprio FIN, indicando que também não tem mais dados a enviar. O dispositivo A responde com um ACK final, encerrando a conexão de forma ordenada. Esse processo garante que a conexão seja encerrada de forma limpa e eficiente, liberando recursos e permitindo que ambos os dispositivos se desconectem.
Protocolo UDP: Transmissão de Dados Sem Conexão
Transmissão Rápida
O UDP é um protocolo que não exige um estabelecimento de conexão prévia, como o TCP. Isso o torna uma escolha ideal para aplicações que priorizam a velocidade, como transmissões de áudio e vídeo em tempo real, onde a latência é crucial.
Sem Garantia de Entrega
Ao contrário do TCP, o UDP não garante a entrega dos dados enviados. Se um pacote for perdido, ele não será retransmitido. Isso torna o UDP adequado para aplicações tolerantes a perdas, como jogos online e streaming de mídia, onde a perda ocasional de pacotes não afeta significativamente a experiência do usuário.
Menor Sobrecarga
O UDP possui um cabeçalho menor em comparação com o TCP. Essa característica o torna mais leve e eficiente em termos de consumo de recursos da rede, o que é benéfico para aplicações que exigem menor latência e menor uso de banda.
Prática 1: Captura de Pacotes com Wireshark
Captura de Tráfego
Aprender a configurar e iniciar a captura de pacotes de rede.
Filtragem de Pacotes
Aplicar filtros para selecionar e analisar os pacotes de interesse.
Análise de Pacotes
Interpretar e compreender o conteúdo dos pacotes capturados.
Prática 2: Análise de Pacotes com Wireshark
Prática 3: Captura e Análise com tcpdump
1
Captura de Pacotes
Utilizar o tcpdump para capturar e filtrar pacotes de rede a partir da linha de comando.
2
Interpretação de Saída
Analisar as informações de cabeçalho e conteúdo dos pacotes capturados pelo tcpdump.
3
Uso de Filtros
Aplicar filtros avançados para selecionar e isolar os pacotes de interesse.
Conclusão e Considerações Finais
Nesta apresentação, exploramos os conceitos fundamentais de redes de computadores, com foco nos principais protocolos de rede (TCP e UDP) e nas ferramentas de captura e análise de pacotes (Wireshark e tcpdump). Esperamos que você tenha adquirido uma compreensão sólida dos princípios básicos necessários para trabalhar com redes de computadores.