Aprenda Redes

  • Página Inicial
  • Contato!
  • Tudo sobre Redes Parte 1!
  • Tudo sobre Redes Parte 2!
  • Tudo sobre Redes Parte 3!
  • Tudo sobre Redes Parte 4!
  • Tudo sobre Redes Parte 5!
  • Tudo sobre Redes Parte 6!
  • Tudo sobre Redes Parte 7!
  • Tudo sobre Redes Parte 8!
  • Tudo sobre Redes Parte 9!
  • Tudo sobre Redes Parte 10!
  • Tudo sobre Redes Parte 11!
  • Tudo sobre Redes Parte 12!
  • Tudo sobre Redes Parte 13!
  • Tudo sobre Redes Parte 14!
  • Tudo sobre Redes Parte 4

    O que é o MTU

    Existe um limite de tamanho de dados de uma rede que define a quantidade de bytes que pode ser transmitidos dentro de um quadro. Pro padrão Ethernet, o limite de unidade máxima de trasmissão é de 1500 bytes (existe em outros padrões também). É uma característica da camada de enlace conhecida como MTU.

    Quando um datagrama a ser enviado em uma rede for maior do que o MTU da camada de enlace, o protocolo IP realizará a fragmentação dos dados, quebrando o datagrama em pedaços menores, chamados de fragmentos, cada um com tamanho menor do que o MTU.

    Veja abaixo uns MTUs típicos:

    Rede MTU (em bytes)
    Hyperchannel 65535
    WLAN 802.11 7981
    Quadros Jumbo Ethernet 1501 - 9198
    Tonken Ring 802.5 4464
    FDDI 4352
    Ethernet 1500
    IEEE 802.3/802.2 1492
    PPPoE 1492
    X.25 576

    Para descobrir o MTU da interface, abrimos o CMD do Windows e digitamos netsh interface ipv4 show subinterfaces.

    O Path MTU (MTU do Caminho) é sobre o maior valor de MTU que pode tragegar em uma rede sem que os pacotes sofram fragmentação (esse valor pode mudar).

    Para a máquina saber qual a MTU correta à ser utilizada, tem o Path MTU Discovery (Descoberta do MTU de Caminho), para determinar o caminho MTU ideal entre dois hosts IP para evitar a fragmentação dos datagramas IP. Uma das formas é ligar o bit DF (Don't Fragment) do cabeçalho IP dos datagramas transmitidos. Ou a mensagem ICMP (destino inalcançável, tamanho muito grande).

    Para testar o MTU, usamos o Ping (no CMD) com as opções /l tamanho-pacote, que permite ajustar o tamanho (payload) do pacote enviado pelo ping para o valor "tamanho-pacote". E o /f, que habilita o bit DF no pacote transmitido (impedindo a fragmentação do mesmo).

    Vamos exemplificar, executando no prompt o comando netsh interface ipv4 show subinterfaces. Se for o caso, coloque ipv6 no lugar.

    Agora dê um ping num site qualquer (por exemplo ping bosontreinamentos.com.br)

    Agora faça o mesmo, com a opção /l 1500, no caso, ping /l 1500 bosontreinamentos.com.br (ou outro número, esse número é a quantidade de bytes enviados, que pode ser até 65500, o padrão é 32). Se estiver em Linux, use o parâmetro -s.

    O MTU típico é de 1500, como já vimos, mas a transmissão pode ser feita com outro número maior, como 8500, nesse caso os pacotes serão fragmentados.

    Ao colocar o /f, antes do site, ele não fragmentará os pacotes, o que pode dar erro em tamanhos maiores. Como por exemplo, ping /l 1500 /f bosontreinamentos.com.br

    O Que é Um Gateway

    Pode ser traduzido como "portão de entrada". O gateway pode ser um PC com duas (ou mais) placas de rede, ou um dispositivo dedicado, utilizado para unir duas redes (como por exemplo, um roteador, ou geralmente um dispositivo que une as funções de modem e roteador podendo ter também um switch integrado e um access point). Existem vários usos possíveis, desde interligar duas redes que utilizam protocolos diferentes, até compartilhar a conexão com a internet entre várias estações.

    O endereço do gateway deve ser informado nas propriedades de rede, mas numa rede onde as estações estão configuradas para obter seus endereços automaticamente é possível configurar o servidor DHCP para enviar o endereço do gateway automaticamente. A estação enviará ao gateway qualquer requisição de endereço que não faça parte da rede local.

    A princípio, isso permitiria que apenas um micro acessasse a web, mas é possível compartilhar a conexão entre vários micros via NAT, opção disponível tanto no Windows quanto no Linux. Quando você compartilha a conexão entre vários micros, apenas o servidor que está compartilhando a conexão possui um endereço IP válido, só ele "existe" na internet. Todos os demais acessam através dele.

    O default gateway ou gateway padrão é justamente o micro da rede que tem a conexão, é ele que os outros consultarão quando precisarem acessar qualquer coisa na internet. Por exemplo, se você montar uma rede doméstica com 4 PCs, usando os endereços IP 192.168.0.1, 192.168.0.2, 192.168.0.3 e 192.168.0.4, e o PC 192.168.0.1 estiver compartilhando o acesso à internet, as outras três estações deverão ser configuradas para utilizar o endereço 192.168.0.1 como gateway padrão.

    O gateway pode ter funções específicas nas redes, dependendo do planejamento do administrador de redes. Entre elas, podemos destacar:

    Existe também um equipamento de redes chamado gateway, que une num mesmo equipamento coisas como modem/ONT, roteador, switch (geralmente de 4 portas) e ponto de acesso wi-fi. Veja a foto de um gateway:

    Gateway

    Alguns gateways podem operar no modo bridge (ponte). Nesse caso, ele só funciona como modem/ONT e converte o sinal, quem roteia é outro equipamento.

    O modo bridge faz o gateway da operadora virar basicamente uma ponte: Ele para de rotear, fazer NAT, DHCP e wi-fi, e passa a entregar o IP público diretamente para outro equipamento, normalmente um roteador próprio. Assim, o gateway deixa de atuar como roteador e apenas encaminha a conexão para que o outro equipamento gerencie a rede, agindo como um modem/ONT comum. Isso é útil pra evitar duplo NAT (técnica que converte IPs, no caso, IP público pra IP privado).

    Introdução ao Roteamento de Redes

    A internet é uma coleção de redes interconectadas, e os pontos de ligação são os roteadores. Estes, por sua vez, estão organizados de forma hierárquica, onde alguns roteadores são utilizados apenas para trocar dados entre grupos de redes controlados pela mesma autoridade administrativa, enquanto outros roteadores fazem também a comunicação entre as autoridades administrativas. A entidade que controla e administra um grupo de redes e roteadores chama se Sistema Autônomo [RFC 1930].

    O roteamento é a principal forma utilizada na Internet para a entrega de pacotes de dados entre hosts (equipamentos de rede de uma forma geral, incluindo computadores, roteadores, etc.). O modelo de roteamento utilizado é o do salto-por-salto (hop-by-hop), onde cada roteador que recebe um pacote de dados, abre-o, verifica o endereço de destino no cabeçalho IP, calcula o próximo salto que vai deixar o pacote um passo mais próximo de seu destino e entrega o pacote neste próximo salto. Este processo se repete e assim segue até a entrega do pacote ao seu destinatário. No entanto, para que este funcione, são necessários dois elementos: Tabelas de roteamento e protocolos de roteamento.

    Tabelas de roteamento são registros de endereços de destino associados ao número de saltos até ele, podendo conter várias outras informações.

    Protocolos de roteamento determinam o conteúdo das tabelas de roteamento, ou seja, são eles que ditam a forma como a tabela é montada e de quais informações ela é composta. Existem dois tipos de algoritmo atualmente em uso pelos protocolos de roteamento: O algoritmo baseado em Vetor de Distância (Distance-Vector Routing Protocols) e o algoritmo baseado no Estado de Enlace (Link State Routing Protocols).

    Esses são os tipos de roteamento:

    O comando traceroute (ou tracert no Windows), permite identificar os IPs de cada um dos roteadores que o datagrama passa até o host de destino.

    O que é o Roteamento?

    Fazendo uma analogia, o roteamento funciona como um mapa onde as rotas são definidas e o roteador, equipamento responsável por fazer o roteamento, seria como um GPS que seleciona os melhores caminhos disponíveis para que esses dados cheguem da melhor forma ao seu destino.

    Para funcionar, o roteador precisa de informações como o endereço de destino e as rotas, que são, muitas vezes, encaminhadas por outros roteadores. Porém, além das diferentes funções dos roteadores, que podem ser usados apenas para trocar dados entre uma rede local, quanto para trocar dados entre outras redes, há ainda algumas diferenças na forma como o roteador transfere um pacote de dados.

    Rotas Estáticas

    Na rota estática, as rotas são definidas manualmente por um administrador da rede, neste tipo de roteamento, as rotas mudam muito lentamente, a depender do administrador da rede.

    Rotas Dinâmicas

    Na rota dinâmica, o roteador troca informações sobre as rotas com outros roteadores. Neste tipo, os caminhos mudam de acordo com a carga do tráfego ou da topologia da rede. Esse tipo de roteamento, apesar de conseguir mudanças mais rápidas na rota, é mais suscetível a problemas com loops e oscilações.

    Rotas Diretas

    São as rotas criadas quando colocamos diretamente um IP na interface.

    Como as Rotas são Definidas

    Diferente das pontes, roteadores possuem a capacidade de escolher o melhor caminho para encaminhar o pacote caso existam muitos caminhos que levem ao mesmo destino. Essa escolha obedece a certos critérios. O roteador pode também ouvir o tráfego e determinar quando uma rota está muito congestionada, nesse caso ele escolhe uma rota alternativa para encaminhar o pacote. Considere a figura abaixo:

    Rotas

    Observe que saindo de PC1 até chegar a PC4, existem 2 caminhos ou 2 rotas. Quando o pacote chega a R1 com destino a R4, ele tanto pode ser encaminhado por R2 ou R3. Qual rota R1 irá escolher para encaminhar o pacote? O roteador toma essa decisão baseado em certos parâmetros, que constam em sua tabela de roteamento.

    Aquela rota que tiver o menor número de saltos será a escolhida. Caso o número de saltos seja igual para as duas situações, então aquela rota com o menor custo (menor distância administrativa) será a escolhida. Tendo por base a figura acima e de posse das informações da tabela, vamos ver qual será a rota escolhida, considerando que as rotas não estejam demasiadamente ocupadas.

    Observe que o número de saltos é o mesmo para as duas rotas (2). Para chegar a R4 em qualquer um dos caminhos é preciso passar por 2 roteadores a partir de R1, mas, observe que a distância administrativa indo por R3 é menor do que indo por R2.

    Logo o pacote será encaminhado através de R3 e não de R2.

    Se as distâncias administrativas fossem as mesmas, os pacotes seriam divididos entre as duas rotas.

    Tipos de Roteadores

    Os roteadores podem ser equipamentos externos dedicados com um sistema operacional proprietário como é o caso dos roteadores CISCO por exemplo, ou podem ser serviços que são adicionados a um sistema operacional de rede servidor, tal como o Windows 2000. A diferença entre um e outro está na disponibilidade de recursos, nas situações em que podem ser usados e no custo.

    Prefira sempre os roteadores externos, pois eles possuem melhor performance, um sistema operacional proprietário otimizado e uma série de recursos para configuração, monitoração e diagnóstico. O problema desses roteadores é seu custo elevado. Mas para redes pequenas em que custo é uma palavra chave, um servidor como o Windows 2000, fazendo o papel de roteador, apesar de não ter uma série de recursos disponíveis nos equipamentos de fabricantes, daria conta do recado perfeitamente.

    Veja a imagem de um roteador:

    Roteador

    PS: Esses roteadores são bem diferentes dos roteadores wi-fi que encontramos em ambientes domésticos.

    Protocolo ARP

    O protocolo ARP fornece resolução dinâmica de endereços, que é um mapeamento entre as duas formas de endereçamento distintas: endereços IP, e qualquer outro tipo de endereço usado na camada de enlace. No caso dos quadros Ethernet, a camada de enlace usa o MAC Address (Media Access Control), endereço físico da interface. Permite obter o MAC Addres de uma interface a partir do seu Endereço IP.

    Esses são os tipos de mensagens ARP:

    Esse são os formados do pacote ARP:

    O cachê ARP mantém os mapeamentos de endereços mais recentes de IPs para endereços MAC na memória do host, possuindo um tempo de expiração para dada entrada no cache de alguns minutos a partir do momento em que a entrada foi adicionada. Podemos examinar o cache ARP usando o comando arp /a.

    Para limpar o cache ARP, basta usar netsh interface ip delete arpcache ou arp /a /d (ou um IP específico usando arp /d 0.0.0.0). Depois podemos usar netsh interface ip delete destinationcache para excluir o cache de destino.

    A captura de pacotes ARP trocados entre dos hosts, é realizada por meio do comando ping, usando o software analisador de pacotes Wireshark.

    O ARP Probe são pacotes especiais ARP Request transmitidos em broadcast com o campo SPA (IP do remetente) contendo o valor 0.0.0.0. Utilizado por um host que solicitou um endereço IPv4 de um servidor DHCP, ou após a configuração manual de IP no host, para verificar se o IP atribuído já está em uso na rede.

    Existe também o protocolo RARP, que faz o inverso do ARP, associando um endereço lógico ao físico.

    Para retornar o catálogo do provedor winsock (o socket que faz o computador interagir com a rede) ao estado inicial, digite na ordem, nbtstat /R, nbtstat /RR e depois netsh winsock reset catalog.

    Protocol ICMP

    O protocolo ICMP é o protocolo de mensagens da internet, que comunica mensagens de erro, diagnóstico e outras condições que requeiram atenção em uma rede. O protocolo IP, que fornece o mecanismo para entrea de datagramas entre dispositivos, carece dessa funcionalidade, e por isso o ICMP foi criado.

    As mensagems ICMP são transmitidas em datagramas IP. Ela contém os campos tipo, código, checksum e conteúdo.

    As mensagens ICMP podem ser divididas em duas grandes classes:

    Essas são as regras específicas para mensagens, as mensagens ICMP não são geradas:

    Alguns tipo de códigos e mensagens:

    Tipo Código Descrição
    0 0 Echo Reply (Resposta de Eco, usado pelo comando Ping)
    3 Destino Inalcançável
    0 Rede de Destino Inalcançável
    1 Host de Destino Inalcançável
    2 Protocolo de Destino Inalcançável
    3 Porta de Destino Inalcançável
    4 0 Sourche Quench - Controle de Fluxo Elementar
    8 0 Echo Request (Requisição de Eco, usado pelo comando Ping)
    11 Tempo Excedido
    0 TTL Igual à 0 Durante o Trânsito
    1 TTL Igual à 0 Durante Reconstrução dos Fragmentos

    Mostramos o protocolo ICMP em ação usando os comandos ping e tracert, no prompt, seguido do IP ou domínio.

    O TTL é o tempo de vida do pacote, que existe para que ele não fique procurando eternamente um host, iniciando em 255 e vai diminuindo de 1 em 1 (decremento) até achar o host (ele vai de 255 a 0), se ele não achar antes de chegar a 0, ele dará tempo excedido e finalizará sua vida. Isso é usado no Ping e no Traceroute (sendo mais necessário neste último).

    Como Funciona o Utilitário Traceroute

    O Traceroute é uma ferramenta de diagnóstico que permite ver a rota que datagramas IP seguem quando são enviados de um host ao outro. Faz uso do protocolo ICMP e do campo TTL no cabeçalho IP do datagrama.

    O propósito do TTL é evitar que datagramas entrem em um loop de roteamento, quando um datagrama chega à um roteador, seu TTL é decrementado (-1) antes de ser encaminhado. Quando um roteador recebe um datagrama cujo TTL é igual à 0, ele o descarta e envia de volta ao host que o originou uma mensagem ICMP do tipo Tempo Excedido. Essa mensagem contém o endereço IP do roteador como endereço de origem.

    Para entendermos o funcionamento do Traceroute, precisamos saber que:

    Para trabalharmos com isso, usamos (em Windows), usamos o comando tracert.

    Vamos abrir o prompt, digitando tracert www.google.com.br (ou outro site/IP).

    Digitando tracert /? você pode ver outras opções para usar como parâmetros. Por exemplo, podemos usar o parâmetro /h para escolher o número máximo de saltos (cujo padrão é 30), por exemplo: tracert /h 15 www.google.com.br. Ou forçar o uso de IPv4 com o parâmetro /4 ou de IPv6 usando /6.

    Cada salto é um roteador (que pode não responder e aparecer tempo esgotado por estar com o firewall ou ICMP bloqueado, e aparecer apenas asteriscos, mas isso não indica problemas, geralmente).

    No Linux, o comando equivalente se chama traceroute e tem outros parâmetros. Para escolher a quantidade de máxima de saltos (como 15) use -m 15, pra forçar IPV4 use -4 e IPV6 -6. Para ajuda use --help.

    Como Funciona o Utilitário Ping

    O programa Ping é um utilitário que permite testar a conectividade entre dois hosts em uma rede. Ele funciona enviando uma mensagem ICMP do tipo Echo Request à um host, e espera o recebimento de uma mensagem ICMP do tipo Echo Reply em retorno (resumindo, ele envia uma mensagem que retornará num espaço de tempo).

    No geral, se não conseguirmos "pingar" um host, significa que não há conectivadade entre as máquinas envolvidas no processo. É um dos primeiros passos que tomamos para determinar qual o problema que afeta uma rede onde um ou mais hosts não conseguem se comunicar entre si, ou com a rede externa.

    O número de sequência se inicia em 1 e é incrementado cada vez que uma nova mensagem Echo Request é enviada. O Ping então mostra o número de sequência de cada datagrama retornado, de modo que podemos verificar se os pacotes se perderam, estão fora de ordem ou foram duplicados.

    Como sabemos, o protocolo IP é um serviço de entrega de datagramas do tipo "melhor esforço", de modo que qualquer uma dessas condições citadas pode vir à ocorrer.

    Além de mostrar o número de sequência, quando a mensagem de retorno Echo Reply é recebida, também são mostrados o TTL e o RTT calculado. O Ping calcula o RTT armazenando a hora na qual o pacote Echo Request é enviado na área de dados da mensagem ICMP. Então, quando a resposta Echo Reply é recebida, ele simplesmente subtrai esse valor de hora da hora atual (momento em que o datagrama é recebido). Erros e pacotes também são relatados pelo comando Ping.

    Para usarmos ele, usamos no prompt do Windows o comando ping www.google.com.br (substituindo pelo site/IP desejado).

    Digitando ping /? você pode ver outras opções para usar como parâmetros.

    Um exemplo de uso seria ping /n 6 www.google.com.br, para enviar seis requisições, ao invés do padrão 4. Outro exemplo seria colocar o parâmetro /t para enviar infinitas requisições no Windows, por exemplo ping /t www.google.com.br. Também podemos forçar o uso de IPv4 com o parâmetro /4 ou de IPv6 usando /6.

    No Linux, o comando ping tem outros parâmetros, e por padrão manda requisições infinitas. Para escolher a quantidade de requisições (como 6) use -c 6, pra forçar IPV4 use -4 e IPV6 -6. Para ajuda use --help.

    PS: O Ping é um comando para iniciar o teste de conectividade, apesar de algumas pessoas errarem, o Ping é apenas o comando, o tempo de milissegundos para o outro dispositivo se chama latência (o tempo máximo de latência deve ser de 45 ms, em média, no Brasil, quanto mais distante maior será a latência, como por exemplo, um servidor nos EUA).

    Protocolo TCP - Campos do Cabeçalho

    O protocolo TCP (Trasmission Control Protocol) é um protocolo da camada de transporte, que realiza um serviço de entrega de pacotes confiáveis, orientado à conexão.

    As principais funções realizadas pelo TCP são:

    Veja na ilustração abaixo como funciona o encapsulamento TCP:

    Encapsulamento

    Pode ver que o segmento TCP é composto por um cabeçalho TCP (geralmente com 20 bytes, mas pode ter mais), e a área de dados TCP, que é as informações transmitidas (que podem ou não estar vazia). Tudo isso é um segmento TCP, encapsulado num datagrama IP, que também tem seu cabeçalho, da mesma forma.

    Veja abaixo a foto da estrutura do cabeçalho TCP:

    Cabeçalho TCP

    Essa é a descrição dos campos:

    Em resumo: