Baixe o app para aproveitar ainda mais
Prévia do material em texto
MÓDULO 4: Camada de Rede 4.1 Introdução ● Transporta segmento do host emissor para o host receptor ● Lado emissor: encapsula segmentos em datagramas ● Lado receptor: entrega segmentos para a camada de transporte ● Protocolos da camada de rede em todos os hosts e roteadores ● Roteador examina campos do cabeçalho dos datagramas IP que passam por ele ● Principais funções dessa camada: − Forwarding (encaminhamento): objetivo de encaminhar pacotes que chegam ao roteador para a saída apropriada do roteador − Roteador: determina a rota a ser tomada por pacotes da fonte ao destino (quem faz isso: implementamos protocolos de roteamento através da execução de algoritmos de roteamento) ● Ação e reação recíproca entre roteamento e encaminhamento: − Valor do destino no cabeçalho do pacote que chega − Algoritmo de roteamento rodando em todos os roteadores − A partir da execução do algoritmo, será montada no roteador, uma tabela local de encaminhamento (para qual saída mandar cada pacote de acordo com o valor do destino no cabeçalho) ● Estabelecimento de conexão (virtual): − A depender da arquitetura da rede, a camada de rede pode oferecer uma conexão virtual (mesma ideia do TCP de abrir conexão antes de mandar efetivamente os dados) − Função importante em algumas arquiteturas (ATM, frame relay, X.25), mas não na Internet − Antes do envio do fluxo de datagrama, os dois hosts, com auxílio dos roteadores intermediários, estabelecem uma conexão virtual (roteadores participam ativamente do processo de abertura de conexão) − Serviço de conexão: o Camada de rede: entre dois hosts o Camada de transporte: entre dois processos ● Modelo de serviço de rede para transporte direcionado dos datagramas do emissor para o receptor: − Exemplos de serviço para datagramas individuais: entrega garantida ou entrega garantida com menos de 40 ms de atraso OBS.: A Internet não tem entrega garantida e nem entrega em tempo determinado − Exemplos de serviço para fluxo de datagramas: entrega de datagrama na ordem correta, banda passante mínima garantida para o fluxo, restrições sobre mudança de espaçamento entre pacotes sucessivos (jitter ou variação de atraso) OBS.: Jitter é importante para tráfego de voz. Ele não pode ser alto e deve ser tratado para evitar pausas nas conversas. OBS.: Internet não garante ordem, mas outras arquiteturas de rede sim. A internet também não garante banda passante mínima. Não garantir nada, como no modelo usado na Internet, é mais escalável do que tentar garantir muitas coisas. 4.2 Redes de Circuitos Virtuais e de Datagramas ● Serviço com e sem conexão da camada de rede: − Redes de datagrama proveem serviço de camada de rede sem conexão − Redes de circuito virtual (VC) proveem serviço de rede orientado a conexão − Análogo aos serviços da camada de transporte, mas: o Serviço: host para host o Implementação: no núcleo da rede ● Circuitos Virtuais (VC): − “Caminho da fonte para o destino se comporta de forma semelhante ao circuito da linha telefônica antiga” (performance-wise, ações da rede ao longo do caminho fonte-destino) − Estabelecimento para cada chamada antes que os dados possam ser enviados. Encerramento (teardown) para cada chamada depois que os dados foram enviados − Todos os roteadores no caminho fonte-destino mantêm “estado” para cada conexão que passa por ele OBS.: No contexto da Internet, isso não escala. Com bilhões de conexões passando por determinados enlaces, não existem roteadores capazes de manter estado para essa quantidade. − Enlace: recursos do roteador (banda, buffers) são compartilhados entre todas as conexões, porém, ficam pedaços reservados para a conexão estabelecida (alocados para o circuito virtual) ● Implementação do VC: − Um VC consiste em: o Caminho da fonte ao destino o Números de VCs, um número para cada enlace ao longo do caminho o Entradas nas tabelas de encaminhamento dos roteadores ao longo do caminho − Pacote pertencendo a um VC carrega consigo um número de VC − O número de VC deve ser mudado a cada enlace (novo número de VC obtido da tabela de encaminhamento) OBS.: Roteadores mantêm informação de estado da conexão ● Protocolos de sinalização nos VCs: − Usados para estabelecer (setar), manter ou encerrar (teardown) VC − Usados em redes ATM, frame- relay, X.25 − Não são usados na Internet − Passo a passo: o Inicia chamada – Chamada entrante – Chamada estabelecida – Aceita chamada – Fluxo de dados inicia – Recebe dados ● Redes de datagramas: − Não há estabelecimento de conexão (chamada na camada de rede) − Roteadores: não há estado sobre conexões fim a fim (não existe o conceito de “conexão” na camada de rede) − Pacotes são encaminhados com base no endereço de destino (pacotes entre mesmo par fonte-destino podem tomar caminhos diferentes) ● Tabela de encaminhamento: − Temos 4 bilhões ou mais de entradas possíveis − Para diminuir o tamanho da tabela, podemos usar faixas ou ranges (endereço de destino X até Y, mandar para a interface N) − Prefixo mais longo correspondente ● Redes de datagramas ou VCs: 1. Internet (datagramas): − Dados trocados entre computadores e serviço é elástico (usa a banda passante que tem disponível) e não há nenhum requisito de tempo estrito (não tem garantia de prazo de entrega na Internet) − End systems inteligentes (computadores): possuem todas as camadas, podem se adaptar, realizar controle, recuperação de erros o Desse modo, toda a simplicidade da Internet fica apenas dentro da rede (se quiser complicar, faça nas bordas, essa é a abordagem mais escalável pois mexer no núcleo é caro) − Diferentes tipos de enlaces que compõem a Internet (características diferentes e serviço uniforme difícil) o 4G (enlace sem fio), Ethernet (roteador), fibra óptica 2. ATM (VCs): − Evolução do telefone, dando garantias que a rede telefônica dava − Conversação humana o Tempo estrito, requisitos de confiabilidade o Necessário para serviços garantidos − End systems “burros” (telefones) e toda a complexidade foi colocada dentro da rede OBS.: Colocar complexidade dentro da rede é ruim pois qualquer atualização fica dificultada (todos terão que atualizar) e custo significativo para mexer no núcleo 4.3 O que há dentro de um roteador ● Funções principais do roteador: − Executar algoritmos e protocolos de roteamento (RIP, OSPF, BGP) − Encaminhar datagramas do enlace de entrada para o enlace de saída ● Componentes: − Portas ou interfaces de entrada − Portas ou interfaces de saída − Switching fabric (interliga entrada e saída, comuta os pacotes da entrada para a saída correta) − Processador de roteamento ● Funções da porta de entrada: − Terminação de linha: camada física para recepção dos bits − Data link processing: camada enlace para desencapsular o datagrama − Fila de entrada (comutação descentralizada): o Datagrama é colocado na fila e a partir daí, analisa o que está na fila e decide (pela tabela de encaminham.) para qual interface de saída mandar o pacote o Ela existe para o caso de datagramas chegarem mais rápido que a taxa de encaminham. da switching fabric (acomodar mais pacotes, mas se a fila estourar, os de fora são jogados no lixo) o O seu objetivo é completar o processamento na porta de entrada na “velocidade da linha”. Encaminhar o datagrama da entrada para a saída o mais rápido para que a switching fabric não se torne um gargalo interno do roteador ● Tipos de tecnologia de comunicação: − Cópia de memória − Barramento − Crossbar (contato elétrico, só liga o caminho que será usado através de uma chave liga/desliga dos transistors) ● Comutação via memória: − Abordagem usada por roteadores de primeira geração − Computadores tradicionais (convertidos pararoteadores) com comutação sob controle direto da CPU − Passo a passo: o Porta de entrada – pacote passa pelo barramento – copiado para memória – barramento – porta de saída recebe cópia do pacote − Pacote copiado para a memória do sistema − Velocidade limitada pela banda passante da memória (cada datagrama cruza dois barramentos) − Ponto de gargalo é a switching fabric do equipamento ● Comutação via barramento: − É uma evolução interessante pois podemos ter barramentos com taxa de transferência grandes (suficiente para roteadores de casa, mas não para backbone) − O barramento serve para escrever algo como um cabeçalho que informa para qual saída a entrada deve ir − Datagrama da memória da porta de entrada para a memória da porta de saída via barramento compartilhado OBS.: A saída que identificar que o datagrama é para ela, pega o pacote e tira o barramento. Nas outras saídas, o pacote não entra pois elas não identificam que são o seu destino. − Bus contention: velocidade de comutação limitada pela banda passante do barramento ● Comutação via rede de interconexão: − Interna ao roteador − Criada para vencer limitações de banda do barramento − Mesma ideia aplicada à switching fabric − Design avançado: fragmentação de datagramas em células de tamanho fixo, comuta células através do equipamento OBS.: Foi descoberto que se fragmentar e endereçar cada célula para a porta de saída (ela remonta o pacote), permite que a comutação seja mais rápida ● Portas de saída: − Componentes: o Fila (buffer) o Parte da camada de enlace (receber um datagrama e encapsular num quadro) o Terminação de linha (escrever os bits no enlace de comunicação) − Buffering (fila) requerido quando datagramas chegam do switching fabric mais rápido que a taxa de transmissão − Disciplina de escalonamento escolhe datagramas da fila a serem transmitidos (prioridades, em qual ordem atender as portas de entrada) OBS.: Roteadores podem ter múltiplas interfaces de entrada e de saída. Além disso, possuem uma fila para cada uma dessas interfaces. Porém, para cálculos, consideramos que o roteador só tem uma fila. Se falarmos de arquitetura, aí sim, podemos citar as várias filas. ● Problemas em relação ao uso da switching fabric: − Existe buffering (enfileiramento) quando a taxa de chegada através do comutador excede a velocidade da linha de saída − O problema é que enfileirar causa atraso e se houver transbordamento na entrada ou na saída, temos perda de pacotes (overflow do buffer) ● Fila da porta de entrada: − É obrigatório existir uma fila pois se a switching fabric for mais lenta que as portas de entrada combinadas, teremos enfileiramento de pacotes nas filas de entrada − Head of the Line Blocking (HOL): datagrama enfileirado na frente da fila previne outros de serem encaminhados (fenômeno observado na fila da porta de entrada) 4.4 IP: Internet Protocol (Protocolo Internet) ● Principais elementos da camada de rede da Internet: − Protocolos de roteamento: o Para fazer seleção de caminho − Tabela de encaminhamento: o A execução dos protocolos é usada para construir essa tabela − Protocolo IP: o Provê convenção de endereçamento o Dá formato específico para o datagrama o Define qual a convenção para manusear os pacotes (como lidar com as informações providas no cabeçalho) − Protocolo ICMP: o Informar sobre erros Formato do datagrama IP ● Formato do datagrama IP: − Componentes: o Número da versão do protocolo IP pelo qual o datagrama foi gerado (tratar de forma adequada) o Tamanho do cabeçalho (bytes) o Tamanho total do datagrama (bytes) o Identificador de 16 bits o Flags o Offset de fragmentação o TTL ou time to live (é decrementado a cada roteador para limitar o número de saltos que o datagrama pode fazer, detectando erros e impedindo que um loop seja gerado) o Upper layer (para qual protocolo da camada superior os dados devem ser entregues; UDP, TCP) o Internet checksum (verificar se houve erro de bits) o Endereço IP fonte (32 bits) o Endereço IP destino (32 bits) o Opções (pode ter ou não) o Dados (encapsular segmento TCP ou UDP) OBS.: Como existe o campo de opções e ele pode ou não ser preenchido, o datagrama pode ter tamanho variável. OBS.: Overhead (sobrecarga) tem impacto prático para as aplicações em relação à taxa máxima disponível no enlace. Na camada física, pode ter uma taxa máxima de transmissão de bits por segundo disponível, mas quando vai usar na camada de aplicação, isso não é revertido diretamente para a taxa de dados úteis da aplicação (isso ocorre por causa do cabeçalho). Overhead com TCP/IP = 20 bytes do TCP + 20 bytes do IP + overhead da camada aplicação ● IPv4: − Podemos ter tecnologias distintas na camada de enlace, o que gera uma limitação em relação ao tamanho do pacote (problema quando pacotes maiores não conseguem passar por algumas tecnologias) − A solução dada pelo IPv4 para esse problema é que se o datagrama for grande demais, o roteador IPv4 fragmenta-o de forma que consiga passar pelo enlace de saída do roteador que seria o problemático − Os próximos saltos não precisam checar se esses pacotes “quebrados” fazem parte de um maior, eles são tratados como independentes − No destino (camada de rede), verifica que são pedaços, remonta o original e aí sim manda os dados para a camada de transporte OBS.: Fragmentação significa processamento adicional e introduz atraso adicional (prejuízo para aplicação) ● Fragmentação e remontagem IP: − Enlace da rede possui MTU (tamanho máximo de transferência) OBS.: Diferentes enlaces possuem diferentes MCUs. − Datagrama IP grande é dividido dentro da rede (remontado somente no destino final) − Bits do cabeçalho IP usados para identificar e ordenar fragmentos relacionados − Datagrama original tem flag de fragmentação =0 e offset=0 − A quantidade de fragmentos necessários é dada por: TETO do (tamanho total (original) – cabeçalho (original) ) / ( MTU (enlace saída) – cabeçalho (fragmento) ) OBS.: O tamanho do cabeçalho do datagrama original e do fragmento são sempre iguais. OBS.: Se o cabeçalho não tiver o campo opções, ele terá 20 bytes OBS.: O resultado dessa equação, se for decimal, o tamanho do fragmento deve ser o teto desse valor (arredondar para o inteiro superior). OBS.: Essa equação enfatiza que não fragmentamos todo o datagrama (com cabeçalho e dados), mas sim, somente a sua parte de dados − Componentes dos datagramas fragmentados: o Length: igual ao tamanho máximo (MTU), ou seja, o tamanho total do datagrama (dados + cabeçalho) o ID: igual à do datagrama original o Fragflag: flag de fragmentação, 1 sinaliza que é fragmento e 0 pode ser duas coisas, dependendo do offset o Offset: posição que os dados que o fragmento está carregando são colados no datagrama original (não é a posição absoluta, são blocos de 8 bytes) OBS.: Informações dos datagramas quebrados: Offsets: Primeiro datagrama = 0 Segundo datagrama = quantidade de bytes do primeiro (length - cabeçalho)/8 ID: Todos os datagramas = igual ao original FragFlag: Primeiro até penúltimo datagrama = 1 Último datagrama = 0 Tamanho dos datagramas: Depende da quantidade de fragmentos Primeiro até penúltimo datagrama = length igual a MTU dado Último datagrama = length igual ao que falta para completar a length do datagrama original *A parte de dados é igual a length – tamanho do cabeçalho − O último fragmento tem FragFlag = 0 e diferenciamos ele do original pelo seu offset (original tem FragFlag = 0 e Offset = 0; se o offset for diferente de zero, é o último fragmento) − Somente a flag de fragmentação não permite saber se um datagrama é fragmento, pois também depende do offset − O destino não pode mandaras infos para cima até receber todos os fragmentos do datagrama para remonta-lo. Se houver perda, o roteador não faz nada a respeito, quem deve se preocupar com isso é a fonte (TCP retransmite e UDP não) Endereçamento IPv4 ● Hierarquia de endereçamento IP: − Por questões de eficiência, o endereço IP é definido por duas partes: o Prefixo: é responsável por determinar em qual rede o computador está acoplado o Sufixo: é responsável por identificar em computador acoplado em cada rede ● Endereço IP: identificador de 32 bits para a interface do host, roteador ● Interface: conexão entre host/roteador e enlace físico − Roteadores geralmente possuem múltiplas interfaces − Host tipicamente possui uma única interface − Um endereço IP por interface OBS.: Notação de endereços IP: ponto- decimal ou binárias (números de 0 a 255) ● Subredes: − Endereço IP: o Parte da subrede (bits de ordem mais elevada) o Parte do host (bits de ordem mais baixa) − O que é uma subrede: o Interfaces de dispositivos com mesma parte de subrede do endereço IP o Dispositivos podem fisicamente alcançar os outros sem ajuda de um roteador − Para determinar uma subrede, retiramos cada interface do seu host ou roteador (cortar enlace), criando ilhas de rede isoladas. Cada ilha é uma subrede. − Máscara de rede: quantos bits são usados para identificar a subrede OBS.: Na figura anterior, a rede é formada por 3 subredes e a máscara de rede é /24. OBS.: Todos os endereços de uma ilha devem corresponder a uma mesma subrede. OBS.: Um enlace sozinho também pode ser uma ilha, ou seja, uma subrede. ● Classes usadas antigamente para endereçamento IP: − A = 1 bit fixo + 7 bits (identificar rede ou subrede) + 24 bits (identificar interface do host) − B = 2 bits fixos + 14 bits (rede) + 16 bits (host) − C = 3 bits fixos + 21 bits (rede) + 8 bits (host) − D = 4 bits fixos + 28 bits (endereço multicast) − E = 4 bits fixos + 28 bits (reservados para uso futuro) − O problema dessa organização era o desperdício de endereços IP. Com isso, os endereços estavam acabando OBS.: Para organizações com até 2000 hosts, é necessário alocar um endereço de rede classe B, levando ao desperdício de mais de 63 mil endereços que não serão usados (classe C permite até 2^8 – 2 =254 hosts ou interfaces e a B permite até 2^16 – 2 = 65534) ● CIDR: Classless InterDomain Routing − A porção no endereço que representa a subrede tem tamanho arbitrário de acordo com a necessidade − Formato do endereço: a.b.c.d/x, onde x é o número de bits na porção do endereço que representa a subrede OBS.: Nesse exemplo, pode endereçar 2^9 – 2 = 510 hosts ou interfaces − Com ela, o desperdício não é tão grande quanto a anterior − Os dois extremos são sempre reservados e não podemos alocar: a.b.c.0/x (primeiro endereço) e a.b.c.255 (último endereço). O primeiro é usado para fins de roteamento e o último é o endereço de broadcast da subrede. Portanto, sobram 254 endereços para serem alocados, mas existem 256 endereços nessa faixa (0 a 255). ● Representação alternativa na forma decimal com pontos (máscara): ● Como hosts obtêm endereço IP? − Colocado em um arquivo de configuração (método usado antigamente, configurar computadores um a um) − DHCP: Dynamic Host Configuration Protocol o Permite que dispositivo obtenha dinamicamente um endereço através de um servidor DHCP (na rede residencial é o roteador) o “Plug-and-Play” ● Como a rede obtém a parte de subrede do endereço IP? − Pega porção alocada do espaço de endereço do seu ISP ● Endereçamento hierárquico: agregação de rotas − Endereçamento hierárquico permite uma eficiente divulgação de informações de roteamento − Quando temos roteadores executando protocolos de roteamento, eles precisam informar para os roteadores na internet, quem eles alcançam/enxergam − Configura o roteador estaticamente ou dinamicamente usando protocolo de roteamento para informar a faixa que ele enxerga − Compartilham isso com seus vizinhos e assim aprendem quem enxerga quem e como alcançar determinado endereços − Flight-by-night: envie tudo com endereço a partir de x (menor endereço das organizações) − ISPs-R-Us: envie tudo a partir de beggining x ou de y (prefixo mais longo que bate com endereço IP de destino) OBS.: Quando colocamos como endereço IP de destino, o endereço de broadcast da rede, quem recebe o pacote é todo mundo que está naquela rede ● Como ISP consegue um bloco de endereços? − ICANN: Internet Corporation for assigned names and numbers o Aloca endereços o Gerencia DNS o Atribui nomes de domínio e resolve disputas NAT: Network Address Translation ● Benefícios: Melhoria da segurança da rede, esgotamento de endereçamento IP, IPs não roteáveis (privados) para a Internet ● Sem o uso do NAT, pacotes enviados por redes privadas (rede local, residencial), não pode se comunicar com o mundo externo (resto da Internet) ● O NAT é uma tradução de endereços da rede. O endereço privado que não é roteável, não vai para o mundo externo, mas o pacote sim. Além disso, recebe a resposta, que chega no computador correto e no processo correto ● Você enxerga o IP do seu computador como X, mas o mundo de fora vê somente o número de IP que o provedor de acesso à internet alocou para o seu roteador Y ● A comunicação é possível pois todos os datagramas deixando a rede local possuem o mesmo endereço IP NAT de origem (Y), mas números de porta diferentes ● Datagramas com origem ou destino na rede local possuem endereço X para fonte ou destino, como usualmente ● Motivação do NAT: − Rede local usa somente um endereço IP quando há necessidade de falar com o mundo externo − Range de endereços não são necessários do ISP (apenas um endereço IP para todos os dispositivos) − Pode mudar endereço de dispositivos na rede local sem necessidade de notificar o mundo externo − Pode mudar o ISP sem mudar o endereço dos dispositivos na rede local − Dispositivos dentro da rede local não são explicitamente endereçáveis, ou seja, não são visíveis para o mundo externo (mais segurança) ● Passo a passo: − Host envia datagrama para mundo externo − Roteador recebe pacote e identifica que é para o exterior − Roteador coloca na tabela, de um lado, o endereço IP e a porta de quem gerou esse pacote (X), e do outro, o IP de saída para a internet (Y). Também abre uma porta aleatória que não está sendo utilizada − Reescreve o cabeçalho do datagrama − Resposta chega com endereço que foi mudado − Roteador olha na tabela NAT se para o IP e porta de destino existe nela um mapeamento − Reescreve o cabeçalho do datagrama IP para voltar às configurações iniciais e o computador que mandou o datagrama recebe sua resposta OBS.: Essa abordagem permite maior segurança pois, se não há mapeamento na tabela, não tem como alguém no mundo externo invadir um computador da rede interna (roteador descarta pacote não mapeado) OBS.: O roteador deve ter um bom processador para não se tornar um gargalo de processamento (trocar o cabeçalho para todo pacote é um processamento adicional) ● Campo “número de porta” de 16 bits: − 2^16 = mais de 60 mil conexões simultâneas com um único endereço IP externo (usa número de porta para criar mapeamento na tabela) ● NAT é controverso: − Em tese, os roteadores devem processar somente até a camada 3 (rede), mas no NAT eles fazem uso do número de porta, ou seja, acessam a camada 4 (transporte) − Viola argumento “fim-a-fim” por alterar o cabeçalho do datagrama. Ele devia se manter original, exceto por um campo (TTL, que decrementa a cada salto) − Esgotamento de endereços com o IPv4 devia ser resolvido pelo IPv6 ● Port forwarding: − Única forma do mundo externo contatar um computador da rede localsem que seja uma resposta − Instruir o roteador para, ao receber pacotes vindos da Internet para uma determinada porta, ele encaminhar para determinado computador e porta, ambos na sua rede local − Com isso, podemos colocar um servidor em casa, basta que, quem queira contactá-lo, saiba seu endereço IP (alocado pelo provedor) e qual a porta que está configurada para o roteador fazer o encaminhamento ICMP: Internet Control Message Protocol ● Usado por hosts e roteadores para comunicar informações/ acontecimentos a nível de rede − Reportagem de erro: host, rede, porta, protocolos inalcançáveis − Echo request/reply (usado pelo ping) ● Está na camada de rede ligeiramente acima do IP − Mensagens ICMP são transportadas dentro de datagramas IP, por isso, estão acima, mas ainda dentro da camada de rede ● Mensagem ICMP: − Possui tipo, código e carregam os 8 primeiros bytes do datagrama IP que causou o erro (pois a mensagem é retornada para a fonte, de onde saiu o pacote com problema) OBS.: Se o TTL foi expirado, manda uma mensagem ICMP ● Traceroute: − Fonte envia uma série de segmentos UDP para o destino o O primeiro possui TTL=1, o segundo, TTL=2 ... o Roteador que não responde ao Traceroute, provavelmente foi configurado para não responder mensagem usando o protocolo ICMP o Manda um segmento UDP para uma porta de destino com número improvável de ser usado, e na camada de rede, mexe no TTL para que possa controlar até que salto o pacote vai (obter resposta e fazer medição do tempo) − Quando enésimo datagrama chega ao enésimo roteador: o Roteador descarta datagrama o Envia para a fonte uma mensagem ICMP o Mensagem inclui nome do roteador e endereço o Quando a mensagem ICMP chega, fonte calcula o RTT o Traceroute faz isso 3 vezes (com 3 pacotes p/ cada etapa) − Critério de parada: o Segmento UDP eventualmente chegará ao host de destino o O destino retorna uma mensagem ICMP “host unreachable” o Quando a fonte recebe esta mensagem, para (sabe que chegou ao destino) OBS.: Asteriscos significa uma mensagem de TTL expirado (vai até um número de saltos default). IPv6: Versão 6 do Protocolo IP ● Motivação inicial: espaço de endereçamento de 32 bits (IPv4) estará completamente alocado em pouco tempo ● Motivação adicional (melhorias em relação ao IPv4): − Formato do cabeçalho ajuda a fazer processamento/encaminhame nto mais rápido − Mudanças no cabeçalho para facilitar QoS (qualidade de serviço: filas de entrada com prioridade nos roteadores ao invés de somente uma fila normal) OBS.: A fila prioritária poderia ser oferecida pelos provedores de Internet a seus clientes como uma forma de melhoria. Porém, o problema seria se, com o tempo, todos pagarem por um serviço melhor para usar essas filas prioritárias e tumultua-las, deixando as filas normais mais livres. ● Formato do datagrama IPv6: − Cabeçalho de tamanho fixo (40 bytes) − Fragmentação não é permitida (dá trabalho ao roteador) ● Cabeçalho IPv6: − Versão: permite que o outro lado saiba imediatamente se ele suporta ou não a versão do protocolo (pode carregar módulos/código necessário para tratar aquela versão) − Prioridade: identifica prioridade dos datagramas (abre as portas para provedores de acesso à Internet ofereçam novos serviços aos seus clientes) − Flow label: identifica datagramas no mesmo fluxo (pode servir para aplicar prioridade) − Payload len: tamanho da parte de dados − Next header: identifica protocolo da camada superior ao qual dados vão ser entregues (TCP, UDP) − Hop limit: TTL, número máximo de saltos que um datagrama IPv6 pode percorrer na rede antes de ser descartado − Endereço de fonte/destino: 128 bits cada (3,4.10^38 endereços únicos) OBS.: Roteadores e sistemas operacionais devem ser modificados para dar apoio ao protocolo IPv6. ● Outras mudanças em relação ao IPv4: − O campo checksum foi inteiramente removido para reduzir o tempo de processamento em cada salto (IPv6 quer encaminhar pacotes o mais rápido possível) OBS.: Antigamente, a taxa de transmissão era baixa e os enlaces não tinham imunidade adequada a interferências eletromagnéticas e os equipamentos usados estavam propensos a eventuais falhas de memória que podiam corromper o pacote. Por isso, o campo Checksum era necessário, ele detectava erros de transmissão e troca de bits. Mas, hoje, com a evolução das tecnologias de cabeamento (fibra óptica, cabos mais resistentes a ruídos), a probabilidade de haver troca de bits é muito baixa. E também, a confiabilidade dos equipamentos também aumentou muito. No entanto, se mesmo assim, acontecer um erro de bits, outras camadas o resolvem (na camada de transporte, TCP e UDP possuem checksum). − Options: informação vem fora do cabeçalho (indicado pelo campo “next header”), o que mantém o tamanho do cabeçalho fixo (está dentro da parte de dados) − ICMPv6: nova versão do ICMP o Tipos adicionais de mensagens como “pacote muito grande” (precisaria ser fragmentado, mas como isso não existe no IPv6, o roteador descarta e a fonte se vira para mandar o pacote de tamanho certo) o Funções de gerenciamento de grupos multicast ● Notação do endereçamento IPv6: − Cada IP é formado por 8 grupos com 4 dígitos hexadecimais e os grupos são separados por “:” − Exemplo: 2001:0db8:85a3:08d3:1319:8a2e :0370:7334 − 4 zeros seguidos em um grupo podem ser omitidos e substituídos por “::” ou um único zero − Zero à esquerda pode ser retirado − Se grupos de zero são consecutivos, podemos simplesmente omitir todos eles com “::” − As simplificações não podem gerar ambiguidades OBS.: Pode omitir quantos grupos de zero quiser, se forem consecutivos, pois na leitura, será percebido quantos grupos estão faltando para 8 e vai ser completado − Em uma URL: os colchetes servem para separar o número da porta, que também pode ser informado − A parte de rede (atribuir endereços) segue notação CIDR (mesma coisa do IPv4) ● Transição do IPv4 para o IPv6: − Soluções temporárias até que toda a Internet migre para IPv6 no futuro − Para que um novo protocolo seja suportado, às vezes temos que mudar o hardware − Todos os roteadores não podem ser atualizados simultaneamente (pessoas atualizam aos poucos) − IPv4 e IPv6 vão coexistir (roteadores com IPv6 entendem IPv4, mas ao contrário não é verdade) − Técnicas para fazer transição: o Pilha dupla: equipamentos suportarem IPv4 e IPv6 o Tunelamento: transportar datagramas IPv6 dentro da parte de dados dos datagramas IPv4, entre roteadores IPv4 OBS.: Sempre é mais fácil atualizar a Internet das bordas para o núcleo, então faz sentido pensar num cenário em que os roteadores das bordas falam IPv6 e os do núcleo, somente IPv4. OBS.: Passo a passo tunelamento: − Datagrama X (IPv6) vai de A para B − B percebe que é a ponta de um túnel e os roteadores que estão dentro dele não falam IPv6 (se mandar nesse formato, o próximo roteador não vai saber processar). Então, B encapsula X (IPv6) dentro de outro datagrama Y (IPv4) e encaminha para C − C encaminha para D e D para E − E está na outra extremidade do túnel, então desencapsula a informação que está na parte de dados (extrair datagrama IPv6). Retransforma Y (IPv4) em X (IPv6) e encaminha para F OBS.: Como o IP aumentou de 20 para 40 bytes, aumenta a sobrecarga, o que significa que comparando a velocidade de IPv4 e IPv6, a do 4 seria maior. Por isso, aumentar a banda passante também é importante quando migrarmos completamente para IPv6
Compartilhar