Baixe o app para aproveitar ainda mais
Prévia do material em texto
Qual é o objetivo da camada de rede? A camada de rede tem como objetivo transportar o segmento do hospedeiro emissor para o hospedeiro receptor. Do lado do emissor, a camada de rede encapsula segmentos, formando datagramas. Já do lado do receptor, a camada de rede desencapsula os datagramas e entrega os segmentos para a camada de transporte. Os protocolos da camada de rede estão presentes em todos os hospedeiros e roteadores. Quais são as principais funções da camada de rede? Nós temos o repasse (forwarding) e o roteamento. O repasse encaminha pacotes que chegam ao roteador para a saída apropriada desse roteador. Já o roteamento determina a rota (da fonte ao destino) a ser tomada pelos pacotes. Podemos pensar no roteamento como um planejamento de uma viagem, saindo da cidade A e chegando na cidade B, e o repasse como o processo de escala durante a viagem aérea (estou indo de A para B mas fiz escala no aeroporto em C. Cheguei nesse aeroporto pela entrada x, para qual entrada vou agora para pegar o próximo voo? O forwarding vai indicar você para a entrada y correspondente) Fale sobre o algoritmo de roteamento Cada roteador tem uma tabela de repasse. Um roteador repassa um pacote examinando o valor de um campo no cabeçalho do pacote que está chegando e então utiliza esse valor para indexar sua tabela de repasse. O resultado da tabela de repasse indica para qual das interfaces de enlace do roteador o pacote deve ser repassado. Dependendo do protocolo de camada de rede, o valor no cabeçalho do pacote pode ser o endereço de destino do pacote ou uma Fale sobre o estabelecimento de conexão na camada de rede A depender da arquitetura de rede (ATM, frame relay, X.25), a camada de rede pode oferecer uma conexão virtual, assim como estudamos no TCP, que abre uma conexão antes de trocar dados. No caso da camada de rede, antes de iniciar o fluxo de datagramas, os dois hosts podem estabelecer essa conexão virtual com auxílio dos roteadores intermediários, que participam explicitamente do processo. O serviço de conexão da camada de rede é entre dois hospedeiros, enquanto a conexão da camada de transporte é entre dois processos (rede = conectar dois prédios, transporte = conectar dois apartamentos em prédios distintos). Detalhe os serviços que podem ser oferecidos na camada de rede ● Entrega garantida: Esse serviço assegura que o pacote mais cedo ou mais tarde chegará a seu destino; ● Entrega garantida com atraso limitado: Não somente assegura a entrega de um pacote, mas também a entrega com um atraso hospedeiro a hospedeiro limitado e especificado (por exemplo, dentro de 100 ms. Além disso, há outros serviços que podem ser providos a um fluxo de pacotes entre uma origem e um destino determinados, como os seguintes: ● Entrega de pacotes na ordem: Garante que pacotes chegarão ao destino na ordem em que foram enviados; ● Largura de banda mínima garantida: Esse serviço de camada de rede emula o comportamento de um enlace de transmissão com uma taxa de bits especificada (por exemplo, 1 bit/s) entre hospedeiros remetentes e destinatários. Contanto que o hospedeiro remetente transmita bits (como parte de pacotes) a uma taxa abaixo da taxa de bits especificada, nenhum pacote será perdido e cada um chegará dentro de um atraso hospedeiro a hospedeiro previamente especificado (por exemplo, dentro de 40 ms); ● Jitter máximo garantido: Assegura que a quantidade de tempo entre a transmissão de dois pacotes sucessivos no remetente seja igual à quantidade de tempo entre o recebimento dos dois pacotes no destino (ou que esse espaçamento não mude mais do que algum valor especificado); ● Serviços de segurança: Utilizando uma chave de sessão secreta conhecida somente por um hospedeiro de origem e de destino, a camada de rede no computador de origem pode codificar a carga útil de todos os datagramas que estão sendo enviados ao computador de destino. A camada de rede no computador de destino, então, seria responsável por decodificar as cargas úteis. Com esse serviço, o sigilo seria fornecido para todos os segmentos da camada de transporte (TCP e UDP) entre os computadores de origem e de destino. Além do sigilo, a camada de rede poderia prover integridade dos dados e serviços de autenticação na origem. Fale sobre as arquiteturas e modelos de serviço da camada de rede Internet: ❖ Modelo de serviço: best effort ❖ Garantias ➢ Banda passante: não ➢ Não haverá perdas: não ➢ Ordenação: não ➢ Prazo de entrega: não ➢ Feedback de congestionamento: não, apenas é inferido por perdas e tratado apenas na camada de transporte se estiver usando TCP, ou tratado apenas na camada de aplicação se estiver usando UDP. ATM ❖ Modelo de serviço ➢ CBR (constant bit rate). Garantias: ■ Banda passante: taxa constante ■ Não haverá perdas: sim ■ Ordenação: sim ■ Prazo de entrega: sim ■ Feedback de congestionamento: não existe congestionamento. ➢ VBR (variable bit rate). Garantias: ■ Banda passante: taxa constante ■ Não haverá perdas: sim ■ Ordenação: sim ■ Prazo de entrega: sim ■ Feedback de congestionamento: não existe congestionamento. ➢ ABR (available bit rate). Garantias: ■ Banda passante: mínimo garantido ■ Não haverá perdas: não ■ Ordenação: sim ■ Prazo de entrega: não ■ Feedback de congestionamento: sim, através de células de gerenciamento. ➢ UBR (nonspecific bit rate). Garantias: ■ Banda passante: não ■ Não haverá perdas: não ■ Ordenação: sim ■ Prazo de entrega: não ■ Feedback de congestionamento: não. Por que o modelo de arquitetura da rede Internet é o “vencedor”, apesar de não dar muitas garantias? O modelo de arquitetura de rede internet é um modelo de serviço best effort, não garante banda passante, garantia contra perdas, ordenação, temporização ou feedback de congestionamento. Apesar disso, ele acaba sendo mais usado, pois não garantir nada acaba sendo melhor e mais escalável do que tentar garantir um monte de coisa. Fale sobre redes de circuitos virtuais (CV) e datagramas As redes de datagrama provêm serviço de camada de rede não orientado a conexão, enquanto as redes de circuitos virtuais são orientadas à conexão. As redes de datagramas são usadas pelo protocolo Internet, enquanto as redes de circuitos virtuais são usadas pelo protocolo ATM. O serviço é de host para host, não se tem escolha em querer ou não querer conexão na camada de rede, pois a rede ou fornece um ou fornece outro, não ambos. Toda a implementação é no núcleo da rede, e quando precisamos mexer no núcleo da rede, se torna algo bem custoso: os roteadores processam mais (e queremos justamente o contrário, para enviar o mais rápido possível os pacotes), além de toda mudança no núcleo da rede ser lenta. Por isso, é melhor dar preferência a aplicações que só envolvem os sistemas finais. Como funcionam as redes de circuitos virtuais (CV)? Um circuito virtual consiste em um caminho (isto é, uma série de enlaces e roteadores) entre hospedeiros de origem e de destino, números de CVs, um número para cada enlace ao longo do caminho e registros na tabela de repasse em cada roteador ao longo do caminho. Um pacote que pertence a um circuito virtual portará um número de CV em seu cabeçalho. Como um circuito virtual pode ter um número de CV diferente em cada enlace, cada roteador interveniente deve substituir esse número de cada pacote em trânsito por um novo número. Esse número novo do CV é obtido da tabela de repasse. Para um pacote que passa por ele, o roteador determina o novo número de CV via tradução contida na tabela de repasse de cada roteador. Sempre que um novo CV é estabelecido através de um roteador, um registro é adicionado à tabela de repasse. De maneira semelhante, sempre que um CV termina, são removidos os registros apropriados em cada tabela ao longo de seu caminho Em uma rede de circuitos virtuais, os roteadores da rede devem manter informaçãode estado de conexão para as conexões em curso. Especificamente, cada vez que uma nova conexão for estabelecida através de um roteador, um novo registro de conexão deve ser adicionado à tabela de repasse do roteador. E, sempre que uma conexão for desativada, um registro deve ser removido da tabela. Por que o pacote não conserva o mesmo número de CV em cada um dos enlaces ao longo da rota? Porque substituir o número de enlace em enlace reduz o comprimento do campo do CV no cabeçalho do capote, além de que o estabelecimento de um CV é consideravelmente simplificado se for permitido um número diferente de CV em cada enlace no caminho do circuito virtual. Quais fases existem em um circuito virtual? ● Estabelecimento de CV: Durante a fase de estabelecimento, a camada de transporte remetente contata a camada de rede, especifica o endereço do receptor e espera até a rede estabelecer o CV. A camada de rede determina o caminho entre remetente e destinatário, ou seja, a série de enlaces e roteadores pelos quais todos os pacotes do CV trafegarão. A camada de rede também determina o número de CV para cada enlace ao longo do caminho e, por fim, adiciona um registro na tabela de repasse em cada roteador no caminho. Durante o estabelecimento do CV, a camada de rede pode também reservar recursos (por exemplo, largura de banda) no caminho; ● Transferência de dados: tão logo estabelecido o CV, os pacotes podem começar a fluir ao longo dele; ● Encerramento do CV: O encerramento começa quando o remetente (ou o destinatário) informa à camada de rede seu desejo de desativar o CV. A camada de rede então informará o sistema final do outro lado da rede do término de conexão e atualizará as tabelas de repasse em cada um dos roteadores de pacotes no caminho para indicar que o CV não existe mais. Qual a diferença entre o estabelecimento de Circuitos Virtuais na camada de rede e estabelecimento de conexão na camada de transporte? Estabelecer conexão na camada de transporte envolve apenas os dois sistemas finais. Durante o estabelecimento da conexão na camada de transporte, os dois sistemas finais determinam os parâmetros (por exemplo, número de sequência inicial e tamanho da janela de controle de fluxo) de sua conexão de camada de transporte. Embora os dois sistemas finais fiquem cientes da conexão de camada de transporte, os roteadores dentro da rede ficam completamente alheios a ela. Por outro lado, com uma camada de rede de CV, os roteadores do caminho entre os dois sistemas finais estão envolvidos no estabelecimento de CV e cada roteador fica totalmente ciente de todos os CVs que passam por ele. Como funcionam as redes de datagramas? ● Não há estabelecimento de conexão/chamada na camada de rede; ● Os roteadores não guardam estado sobre conexões fim a fim (pois não existe o conceito de conexão na camada de rede); ● Pacotes são encaminhados com base no endereço de destino. Ao ser transmitido da origem ao destino, um pacote passa por uma série de roteadores. Cada um desses roteadores usa o endereço de destino do pacote para repassá-lo. Especificamente, cada roteador tem uma tabela de repasse que mapeia endereços de destino para interfaces de enlaces; quando um pacote chega ao roteador, este usa o endereço de destino do pacote para procurar a interface de enlace de saída apropriada na tabela de repasse. Então, o roteador transmite o pacote para aquela interface de enlace de saída. Com esse tipo de tabela de repasse, o roteador compara um prefixo do endereço de destino do pacote com os registros na tabela; se houver uma concordância de prefixos, o roteador transmite o pacote para o enlace associado àquele prefixo correspondente. Quando há várias concordâncias de prefixos, o roteador usa a regra da concordância do prefixo mais longo, isto é, encontra o registro cujo prefixo tem mais bits correspondentes aos bits do endereço do pacote e envia o pacote à interface de enlace associada com esse prefixo mais longo que tenha correspondência. Redes de datagramas ou VCs: Por que? ✧ Internet (Datagramas) ● Dados trocados entre computadores ○ Serviço “elástico”, nenhum requisito de tempo estrito. ● End systems “inteligentes” (computadores) ○ Pode se adaptar, realizar controle, recuperação de erros... ○ Simplicidade dentro da rede, complexidade nas “bordas”, pois é a abordagem mais escalável. Mexer no núcleo da rede custa dinheiro. ● Diferentes tipos de enlace ○ Características diferentes. ○ Serviço uniforme difícil. ✧ ATM (VC) ● Evolução do telefone. ● Conversação humana: ○ Tempo estrito, requisitos de confiabilidade. ○ Necessário para serviços garantidos. ● End systems “burros” ○ Telefones ○ Complexidade dentro da rede, escalabilidade baixa. Fale um pouco sobre roteadores Os roteadores têm como principais funções a execução de algoritmos e/ou protocolos de roteamento (RIP, OSPF, BGP) e encaminhamento/repasse de datagramas do enlace de entrada para o enlace de saída. O processamento de entrada é feito via comutação descentralizada, onde dado o destino do datagrama, procura-se a respectiva porta de saída usando a tabela de encaminhamento na memória da porta de entrada. O objetivo é completar o processamento na porta de entrada na “velocidade da linha”. Além disso, o esquema de fila (queuing) é implementado caso o datagrama chegue mais rápido que a taxa de encaminhamento no elemento de comutação. Cite os três tipos de tecnologia de comutação ✦ Comutação via Memória ● Roteadores de 1ª geração: ○ Eram computadores tradicionais nos quais a comutação entre as portas de entrada e de saída era realizada sob o controle direto da CPU (processador de roteamento). ○ Pacote copiado para a memória do processador. O processador de roteamento então extraía o endereço de destino do cabeçalho, consultava a porta de saída apropriada na tabela de repasse e copiava o pacote para os buffers da porta de saída. ○ Velocidade limitada pela banda passante da memória (cada datagrama cruza dois barramentos). ✦ Comutação via Barramento ● As portas de entrada transferem um pacote diretamente para a porta de saída por um barramento compartilhado sem a intervenção do processador de roteamento. ● Para isso, um rótulo é inserido antes do pacote indicando a porta de saída e o pacote é transmitido para o barramento. Ele é recebido por todas as portas de saída, mas somente a porta correta manterá o pacote. O rótulo é então removido na porta de saída, pois só é usado dentro do comutador para atravessar o barramento. ● Bus contention: velocidade de comutação limitada pela banda passante do barramento, pois cada pacote precisa atravessar o único barramento. ● Barramento de 1 Gbps, Cisco 1900: velocidade suficiente para roteadores de acesso e de empresas (inadequado para acesso regional e para o backbone) ✦ Comutação via uma rede de Interconexão (interna ao roteador) ● “Vencer” limitações de banda do barramento. ● Complexa, cara, porém rápida. ● Redes Banyan, redes de interconexão inicialmente desenvolvidas para conectar processadores em sistemas multiprocessados. ● Design avançado: fragmentação de datagramas em células de tamanho fixo, comuta células através do equipamento. ● Cisco 12000: comuta Gbps através de rede de interconexão. Detalhe o processamento de saída e as filas da porta de entrada e saída ❖ Processamento de saída ➢ Buffering (fila) requerido quando datagramas chegam do elemento de comutação (switch fabric) mas rápido que a taxa de transmissão; ➢ Por ter múltiplas entradas, é necessária uma disciplina de escalonamento, que escolhe os datagramas da fila a serem transmitidos. Pode ser baseado em algum tipo de prioridade. ❖ Fila da porta de saída ➢ “Buferização” quando a taxa de chegada através do comutador excede a velocidade da linha de saída. ➢ Queueing/enfileiramento (atraso) e perda devido ao transbordamento (overflow)do buffer da porta de saída. ❖ Fila da porta de entrada ➢ Fabric mais lenta que as portas de entrada combinadas ⇢ enfileiramento pode ocorrer nas portas de entrada. ➢ Head-of-the-Line (HOL) blocking: datagrama enfileirado na frente da fila previne outros de serem encaminhados. ➢ Atraso de fila e perda devido ao transbordamento (overflow) do buffer da porta de entrada. Quais são os três componentes mais importantes da camada de rede? ❖ Protocolo IP ➢ Convenção de endereçamento; ➢ Formato do datagrama; ➢ Convenção de manuseamento de pacotes. ❖ Protocolo de roteamento ➢ Seleção de Caminhos; ➢ Pode ser RIP, OSPF ou BGP. ❖ Protocolo ICMP ➢ Informe de erros; ➢ Atende requisições de certas informações da camada de rede. Qual o formato do datagrama IP? Considerando o IPv4, temos: ● Número da versão: 4 bits que especificam a versão do protocolo IP do datagrama. Com isso o roteador sabe como tratar o restante do datagrama. ● Comprimento do cabeçalho: 4 bits que informam o tamanho do cabeçalho (em bytes). No geral o tamanho do cabeçalho é de 20 bytes, porém pode ser adicionado um número variável de opções (no cabeçalho do datagrama IPv4). ● Tipo de serviço: Usados para diferenciar alguns tipos de datagramas IP, como aqueles que requerem baixo atraso, alta vazão, etc. ● Comprimento do datagrama: Comprimento total do datagrama (cabeçalho + dados) medido em bytes. Tem 16 bits de comprimento, gerando até 65.535 bytes de tamanho, mas dificilmente passa de 1500 bytes. ● Identificador (16 bits), flags (3 bits), deslocamento de fragmentação (13 bits): Campos relacionados com a fragmentação do IP. ● Tempo de vida (TTL: Time to Live): é incluído para garantir que os datagramas não fiquem circulando infinitamente pela rede. Esse campo é decrementado de uma unidade cada vez que o datagrama é processado por um roteador. Se o campo TTL chegar a 0, o datagrama deve ser descartado. Também é usado para o funcionamento adequado do traceroute. ● Protocolo (upper layer): Usado quando o datagrama chega ao destino final. Ele serve para informar a camada de transporte qual o protocolo de transporte que esse datagrama será destinado. ● Soma de verificação de cabeçalho (Checksum) : Usada para identificar erros de bits no datagrama IP recebido. Após fazer o processo de comparar se o valor calculado é igual ao valor recebido, o resultado é armazenado no campo de soma de verificação, caso não, normalmente se descarta esse pacote. ● Endereço IP de origem e destino: Quando uma origem cria um datagrama, insere-se seu endereço IP no campo de endereço de origem e insere o endereço de destino no campo de endereço de destino. ● Opções: Campo que permite que o cabeçalho IP seja estendido, adicionando por exemplo: timestamp, rota a ser tomada, lista de roteadores a serem visitados, etc. Por variar o tamanho do datagrama, não há como saber a priori onde os dados começam, além de variar o tempo de processamento dos roteadores. ● Dados(carga útil): Contém o segmento da camada de transporte (TCP ou UDP) a ser entregue ao destino ou outro tipos de dados como mensagens ICMP. Qual é o overhead com TCP/IP? 20 bytes do TCP + 20 bytes do IP = 40 bytes + overhead da camada de aplicação Como funciona a fragmentação e remontagem IP? Se o datagrama for grande demais, o roteador IPv4 fragmenta (quebra) o pacote para que ele possa passar pelo enlace de saída do roteador que antes não tinha capacidade de encaminhar o datagrama por completo. Os fragmentos são enviados de forma independente, e cabe ao destinatário remontar o datagrama original. O enlace da rede possui um MTU (tamanho máximo de transferência, maior do que o enlace consegue aguentar. Dessa forma, o datagrama IP é fragmentado dentro da rede, tornando- se vários datagramas. O datagrama não é fragmentado por inteiro, apenas a parte de dados. Serão remontados no destino final, com auxílio dos bits do cabeçalho IP, que serão usados para identificar e ordenar fragmentos relacionados. Considerando um datagrama de 4000 bytes (total) e um MTU de 1500 bytes, nota-se que a fragmentação será necessária. Sabemos que o cabeçalho do datagrama possui 20 bytes Tamanho do fragmento = ( ) ç ( ) ç ( ) = = 2,69 fragmentos = 3 fragmentos (sempre arredonda para cima = função teto) A partir daí, a construção do fragmento é determinada pelos campos length (tamanho), ID (que é o mesmo do datagrama original), fragFlag (se for 1, indica que é fragmento que existirão mais fragmentos do mesmo datagrama), e offset (que sempre é a quantidade de bytes nos fragmentos anteriores dividido por 8, indicando a partir de qual byte os dados devem ser inseridos). No último fragmento, o fragFrag é zero, pois além de ser o último, o campo offset já indica que é um fragmento (o datagrama original sempre tem flagFrag = 0 e offset = 0. Como se dá a hierarquia de endereçamento IP? A hierarquia de endereçamento IP: ● Por questões de eficiência, o endereço IP é definido por duas partes, prefixo e sufixo: ○ O prefixo é responsável por determinar a rede que o computador está acoplado. ○ O sufixo é responsável por identificar um computador acoplado em cada rede. ● Endereço IP: identificador de 32 bits para interface do host/roteador ● Interface: conexão entre host/roteador e enlace físico ○ Roteadores tipicamente possuem múltiplas interfaces. ○ Host tipicamente possui uma única interface. ○ 1 endereço IP por interface. O que é uma subrede e como elas funcionam? Podemos definir sub-rede como uma rede que interconecta três interfaces de hospedeiros e uma interface de roteador. Na literatura da Internet, uma sub-rede também é denominada uma rede IP ou simplesmente uma rede. O endereçamento IP designa um endereço a essa sub-rede, exemplo: 223.1.1.0/24, no qual a notação /24, às vezes conhecida como uma máscara de sub-rede, indica que os 24 bits mais à esquerda do conjunto de 32 bits definem o endereço da sub-rede. Assim, a sub-rede 223.1.1.0/24 consiste em três interfaces de hospedeiros (223.1.1.1, 223.1.1.2 e 223.1.1.3) e uma interface de roteador (223.1.1.4). Quaisquer hospedeiros adicionais ligados à sub-rede 223.1.1.0/24 seriam obrigados a ter um endereço na forma 223.1.1.xxx. A definição IP de uma sub-rede não está restrita a segmentos Ethernet que conectam múltiplos hospedeiros a uma interface de roteador. Podemos determinar as sub-redes retirando cada interface do seu host ou roteador, criando ilhas de redes isoladas. Cada uma dessas redes isoladas é uma sub-rede. O que é CIDR (Classless InterDomain Routing)? Explique. É a estratégia de atribuição de endereços da Internet, e generaliza a noção de endereçamento de sub-rede. Como acontece com o endereçamento de sub-redes, o endereço IP de 32 bits é dividido em duas partes e, mais uma vez, tem a forma decimal com pontos de separação a.b.c.d/x, em que x indica o número de bits da primeira parte do endereço. Os x bits mais significativos de um endereço na forma a.b.c.d/x constituem a parcela da rede do endereço IP e costumam ser denominados prefixo (ou prefixo de rede). Os restantes (32 – x) bits de um endereço podem ser considerados os bits que distinguem os equipamentos e dispositivos dentro da organização e todos eles têm o mesmo prefixo de rede. Eles serão os bits considerados no repasse de pacotes em roteadores dentro da organização. Esses bits de ordem mais baixa podem (ou não) ter uma estrutura adicional de sub-rede. Antes da adoção do CIDR, os tamanhos das parcelas de um endereço IP estavam limitados a 8, 16 ou 24 bits, um esquema de endereçamento conhecido como endereçamento com classes, já que sub-redes com endereços de sub-rede de 8, 16 e 24 eram conhecidas como redes de classe A, B e C, respectivamente ● Exemplos ○ 192.168.0.0/24 representa os 256 endereços IPv4 de 192.168.0.0 até 192.168.0.255 (este último é o endereço de broadcast da rede) ○ 192.168.0.0/22representa 1024 endereços IPv4 de 192.168.0.0 até 192.168.3.255 (este último é o endereço de broadcast da rede) ● Representação alternativa na forma decimal com pontos ○ 192.168.0.0/24 pode ser escrito como 192.168.0.0/255.255.255.0 ○ 192.168.0.0/22 pode ser escrito como 192.168.0.0/255.255.252.0 Fale sobre DHCP Dynamic Host Configuration Protocol é o protocolo que permite que um hospedeiro obtenha um endereço IP de maneira automática (plug and play, que o torna muito atraente para o administrador de rede que, caso contrário, teria que executar essas tarefas manualmente). O endereço é obtido dinamicamente através de um servidor, e esse endereço pode ser fixo ou temporário. A rede obtém a parte de sub-rede do endereço IP pegando a porção alocada do espaço de endereço do seu ISP. O DHCP é um protocolo cliente-servidor. Em geral o cliente é um hospedeiro recém-chegado que quer obter informações sobre configuração da rede, incluindo endereço IP, para si mesmo. Em um caso mais simples, cada sub-rede terá um servidor DHCP. Se não houver um servidor na sub-rede, é necessário um agente relé DHCP (normalmente um roteador) que sabe o endereço de um servidor DHCP para tal rede. Exemplo: Bloco do ISP 11001000 00010111 00010000 00000000 200.23.16.0/20 Organização 0 11001000 00010111 00010000 00000000 200.23.16.0/23 Organização 1 11001000 00010111 00010010 00000000 200.23.18.0/23 Organização 2 11001000 00010111 00010100 00000000 200.23.20.0/23 ... ….. …. …. Organização 7 11001000 00010111 00011110 00000000 200.23.30.0/23 Quais são as quatro etapas do DHCP? ● Descoberta do servidor DHCP: A primeira tarefa de um hospedeiro recém-chegado é encontrar um servidor DHCP com quem interagir. Isso é feito utilizando uma mensagem de descoberta DHCP, a qual o cliente envia dentro de um pacote UDP para a porta 67; ● Oferta(s) dos servidores DHCP: Um servidor DHCP que recebe uma mensagem de descoberta DHCP responde ao cliente com uma mensagem de oferta DHCP, transmitida por difusão a todos os nós presentes na sub-rede. Como diversos servidores DHCP podem estar presentes na sub-rede, o cliente pode se dar ao luxo de escolher dentre as muitas ofertas. Cada mensagem de oferta do servidor contém o ID de transação da mensagem de descoberta recebida, o endereço IP proposto para o cliente, a máscara da rede e o tempo de concessão do endereço IP — o tempo pelo qual o endereço IP será válido. É comum o servidor definir o tempo de concessão para várias horas ou dias; ● Solicitação DHCP: O cliente recém-chegado escolherá dentre uma ou mais ofertas do servidor e responderá à sua oferta selecionada com uma mensagem de solicitação DHCP, repetindo os parâmetros de configuração; ● DHCP ACK: O servidor responde a mensagem de requisição DHCP com uma mensagem DHCP ACK, confirmando os parâmetros requisitados. Uma vez que o cliente recebe o DHCP ACK, a interação é concluída e ele pode usar o endereço IP alocado pelo DHCP pelo tempo de concessão. Caso queira usar seu endereço após a expiração da concessão, o DHCP também fornece um mecanismo que permite ao cliente renovar sua concessão sobre um endereço IP. Como um ISP consegue um bloco de endereços? Existem alguns métodos para obter um bloco de endereços IP e utilizá-lo dentro da subrede de uma organização. Um administrador de rede poderia, por exemplo, contatar seu provedor, que forneceria endereços a partir de um bloco maior de endereços que já estão alocados ao provedor. O provedor então divide esse bloco em oito, de tamanhos iguais, e os distribuiria para oito organizações. Mas, para o próprio provedor obter um bloco de endereços, existe uma autoridade global que tem como responsabilidade final o gerenciamento de espaço de endereços e IP e alocação de blocos a ISPs e outras organizações, que é a ICANN (Internet Corporation for Assigned Names and Numbers). Além dessa responsabilidade, o ICANN também administra servidores DNS raiz, e possui a tarefa de atribuir nomes de domínios e resolver suas possíveis disputas. O ICANN aloca endereços a serviços regionais de registro de internet, serviços esses que são responsáveis pela alocação e administração de endereços dentro de suas regiões. Porque o NAT é controverso? Primeiro que a finalidade dos números de portas é endereçar processos, e não hospedeiros. Como esse princípio é violado, podem surgir problemas para servidores que rodam em redes residenciais, pois processos servidores esperam pela chegada de requisições em números de portas bem conhecidos. Além disso, alguns especialistas alegam que os roteadores devem processar pacotes apenas até a camada 3. Também discutem que o protocolo NAT viola o argumento denominado fim a fim: isto é, os hospedeiros devem falar diretamente uns com os outros, sem a interferência de nós. Por fim, argumenta-se que deveríamos usar o IPv6 para resolver a escassez de endereços IP, e não tentar resolver o problema imprudentemente com uma solução temporária como a NAT. Mas, mesmo assim, a NAT tornou-se um componente importante da Internet. Fale sobre o roteador NAT O roteador que usa NAT não parece um roteador para o mundo externo, pois se comporta como um equipamento único com um único endereço IP. Na essência, o roteador que usa NAT está ocultando do mundo exterior os detalhes da rede residencial. Um roteador NAT deve: ● Datagramas saindo para o mundo externo: ○ substituir [endereço IP fonte, número de porta] de todo datagrama sendo enviado para o mundo externo por [endereço IP NAT, novo número de porta] ● Clientes/servidores remotos responderão usando [endereço IP NAT, novo número de porta] como endereço de destino. ● Recordar (na tabela de tradução NAT) os pares de equivalência [endereço IP fonte, número de porta] ≡ [endereço IP NAT, novo número de porta] ● Datagramas chegando do mundo externo: ○ substituir [endereço IP NAT, novo número de porta] no campo “destino” de todos os pacotes provenientes do mundo externo com a informação correspondente [endereço IP fonte, número de porta] armazenada na tabela NAT ● Campo “número de porta” de 16 bits: ● +60.000 conexões simultâneas com um único endereço IP externo! 1. Host 10.0.0.1, 3345 Envia datagrama para 128.119.40.186, 80 2. Roteador NAT muda endereço de origem do datagrama de 10.0.0.1, 3345 para 138.76.29.7, 5001, e atualiza tabela 3. Resposta chega com endereço de destino: 138.76.29.7, 5001 4. Roteador NAT muda endereço de destino do datagrama de 138.76.29.7, 5001 para 10.0.0.1, 3345 Porque NAT é mais seguro? Como não há mapeamento na tabela de tradução NAT, não tem como alguém do “mundo externo” invadir um computador da rede interna. O roteador vai descartar o pacote que qualquer “estranho” tentar enviar. Como uma ferramenta que troca os números de IP, o NAT esconde os endereços originais da rede interna. Isto é uma grande vantagem do ponto de vista de segurança. Essa é uma das razões que quase todos os firewalls usam NAT. A rede externa sempre irá ver o IP público, e nunca será capaz de ver o IP privado. Na área do firewall, as pessoas enxergam o NAT mais como um método de segurança do que de economia de endereço IP. Fale sobre ICMP ICMP (Internet Control Message Protocol) é um protocolo que permite, entre outras funções, gerenciar as informações relativas aos erros nas máquinas conectadas. Devido aos poucos controles que o protocolo IP realiza, ele não corrige esses erros mas os mostra para os protocolos das camadas vizinhas. Assim, o protocolo ICMP é usado por todos os roteadores para assinalar um erro, chamado de Delivery Problem. O ICMP é com frequência considerado parte do IP, mas em termos de arquitetura está logo acima, pois mensagens ICMP são carregadas dentro de datagramas IP. As mensagens ICMP têm um campo de tipo e um campo de código. Além disso, contém o cabeçalho e os primeiros 8 bytes do datagrama IP quecausou a criação da mensagem ICMP em primeiro lugar (de modo que o remetente pode determinar o datagrama que causou o erro). É importante ressaltar que mensagens ICMP não são usadas somente para sinalizar condições de erro. Exemplos de mensagens: 8 0 solicitação de eco (ping), resposta 0 0 resposta de eco (ping) Fale sobre a relação Traceroute e ICMP O traceroute é executado com mensagens ICMP. Para determinar os nomes e endereços de roteadores entre a origem e o destino, o Traceroute da origem envia uma série de datagramas comuns ao destino. O primeiro deles tem um TTL (time to live) = 1, o segundo TTL = 2, o terceiro TTL = 3, assim por diante. A origem também aciona temporizadores para cada datagrama. Quando o enésimo datagrama chega ao enésimo roteador, o roteador observa que o TTL do datagrama acabou de expirar. Segundo as regras do protocolo IP, o roteador descarta o datagrama e envia uma mensagem de aviso à origem (ICMP tipo 11 código 0). Essa mensagem de aviso inclui o nome do roteador e seu endereço IP. Quando chega à origem, a mensagem obtém do temporizador o RTT e, da mensagem ICMP, o nome e o endereço IP do enésimo roteador. O critério de parada da operação acontece da seguinte forma: o segmento UDP eventualmente chegará ao host de destino, que retornará a mensagem ICMP tipo 3 código 3 (porta de destino inalcançável), e quando a fonte receber esta mensagem, a operação é finalizada Qual foi a motivação inicial do IPv6? O IPv4 possui 32 bits de espaço de endereçamento, mas era previsível que essa faixa de endereçamento iria se esgotar. Na prática, isso significa que não teríamos como alocar endereços IP para novas redes que surgissem na internet. Adiante, vieram motivações adicionais: O formato do cabeçalho ajuda a fazer o processamento/encaminhamento mais rápido, portanto propor mudanças neste cabeçalho seria uma forma de facilitar a qualidade do serviço. Quais foram as mudanças mais evidentes no formato do datagrama IPv6? ● Capacidade de endereçamento expandida: O IPv6 aumenta o tamanho do endereço IP de 32 bits para 128 bits. Isso garante que o mundo não ficará sem endereços IP. Agora, cada grão de areia do planeta pode ter um endereço IP. Além dos endereços para um grupo de indivíduos, o IPv6 introduziu um novo tipo de endereço, denominado endereço para qualquer membro do grupo (anycast), que permite que um datagrama seja entregue a qualquer hospedeiro de um grupo; ● Cabeçalho aprimorado de 40 bytes: O cabeçalho de comprimento fixo de 40 bytes resultante permite processamento mais veloz do datagrama IP. Uma nova codificação de opções permite um processamento de opções mais flexível; ● Rotulação de fluxo e prioridade: Os projetistas do IPv6 pensaram na possível necessidade de conseguir diferenciar usuários de alta prioridade. O cabeçalho IPv6 tem um campo de 8 bits que indica a classe de tráfego, e ele pode ser usado para dar prioridade a certos datagramas em um fluxo ou a datagramas de certas aplicações (por exemplo, pacotes ICMP) em relação aos de outras (por exemplo, notícias pela rede); ● O ICMP agora é ICMPv6, com tipos adicionais de mensagens e funções de gerenciamento de grupos multicasts. Fale sobre os campos do datagrama IPv6 ● Versão: esse campo de 4 bits identifica o número da versão do IP; ● Classe de tráfego: esse campo de 8 bits tem como função diferenciar usuários de acordo com sua prioridade; ● Rótulo de fluxo: esse campo de 20 bits é usado para identificar um fluxo de datagramas; ● Comprimento da carga útil: esse valor de 16 bits é tratado como um número inteiro sem sinal que dá o número de bytes no datagrama IPv6 que se segue ao pacote do cabeçalho, que tem tamanho fixo de 40 bytes; ● Próximo cabeçalho: esse campo identifica o protocolo ao qual o conteúdo (campo de dados) desse datagrama será entregue (por exemplo, TCP ou UDP). Usa os mesmos valores do campo de protocolo no cabeçalho IPv4; ● Limite de saltos: semelhante ao TTL do IPv4, o conteúdo desse campo é decrementado em um para cada roteador que repassa o datagrama. Se a contagem do limite de saltos chegar a zero, o datagrama será descartado; ● Endereços de origem e de destino. 128 bits = 3,4𝑥10 endereços únicos, “cada grão de areia do planeta pode ter um endereço IP”; ● Dados: esta é a parte da carga útil do datagrama IPv6. Quando este alcança seu destino, a carga útil pode ser extraída do datagrama IP e passada adiante para o protocolo especificado no campo de próximo cabeçalho. Quais campos no cabeçalho IP se tornaram obsoletos na transição do IPv4 para o IPv6? Porque? ● Fragmentação/remontagem: O IPv6 não permite fragmentação e remontagem em roteadores intermediários; essas operações podem ser realizadas apenas pela origem e pelo destino. Se um datagrama IPv6 recebido por um roteador for muito grande para ser repassado pelo enlace de saída, o roteador apenas descartará o datagrama e devolverá ao remetente uma mensagem de erro ICMP “Pacote muito grande”. O remetente pode então reenviar os dados usando um datagrama IP de tamanho menor. Fragmentação e remontagem são operações que tomam muito tempo; retirar essas funcionalidades dos roteadores e colocá-las nos sistemas finais acelera consideravelmente o repasse IP para dentro da rede; ● Soma de verificação do cabeçalho: Como os protocolos de camada de transporte e de enlace de dados nas camadas da internet realizam soma de verificação, chegou- se à conclusão de que o campo era redundante, e por isso foi retirado. Mais uma vez, o processamento rápido de pacotes IP era uma preocupação principal; ● Opções: Esse campo agora se tornou um opcional, sendo inserido no campo “próximos cabeçalhos” caso necessário. A remoção do campo de opções resulta em um cabeçalho IP de tamanho fixo de 40 bytes. Descreva a notação do endereçamento IPv6 (creio eu que essa aqui é mais pra prova teórica) ★ Cada um formado por 8 grupos com 4 dígitos hexadecimais ○ 2001:0db8:85a3:08d3:1319:8a2e:0370:7334 ★ 4 zeros em um grupo podem ser omitidos e substituídos por :: ○ 2001:0db8:85a3:0000:1319:8a2e:0370:7334 equivale à 2001:0db8:85a3::1319:8a2e:0370:7334 ★ Exemplo de endereços válidos e equivalentes ○ 2001:0db8:0000:0000:0000:0000:1428:57ab (end. original) ○ 2001:0db8:0000:0000:0000::1428:57ab (grupo de 4 zeros subst.) ○ 2001:0db8:0:0:0:0:1428:57ab (“0000” por “0”) ○ 2001:0db8:0:0::1428:57ab (:: são equivalentes a 0000:0000) ○ 2001:0db8::1428:57ab (:: são equivalentes a 0000:0000:0000:0000) ○ 2001:db8::1428:57ab (zero à esquerda pode ser retirado) ★ As simplificações não podem gerar ambiguidades ! ○ Exemplo: 2001:C00:0:0:5400:0:0:9 → 2001:C00::5400::9 ■ Pode significar: ■ 2001:C00:0:0:5400:0:0:9 ■ 2001:C00:0:0:0:5400:0:9 ■ 2001:C00:0:5400:0:0:0:9 ★ Em uma URL devemos fazer como segue ○ http://[2001:0db8:85a3:08d3:1319:8a2e:0370:7344]/ ■ Qual a razão do uso de colchetes na URL ? http://[2001:0db8:85a3:08d3:1319:8a2e:0370:7344]:443/ ○ Rede ■ Segue notação CIDR 2001:0db8:1234::/48 significa que rede possui faixa de endereços de 2001:0db8:1234:0000:0000:0000:0000:0000 até 2001:0db8:1234:FFFF:FFFF:FFFF:FFFF:FFFF Como foi/está sendo a transição do IPv4 para o IPv6? Como todos os roteadores não podem se atualizar ao mesmo tempo, precisou-se pensar numa abordagem que permitisse a coexistência entre roteadores IPv4 e IPv6, com os roteadores que “falam” IPv6 também “fluentes” em IPv4. Como é mais fácil atualizar os roteadores da borda da rede do que do núcleo, a maioria dos cenários serão de roteadores IPv6 nas bordas e IPv4 no núcleo. Com isso, surgiu o tunelamento, onde o IPv6 é transportado como “payload” em datagramas IPv4 entre roteadores IPv4. O tunelamento consiste em se construir uma visão lógica de túnel entre dois roteadores que falam IPv6 (que também fala IPv4). Quando chegamos na “ponta” do túnel,em um roteador IPv6 que será seguido de um IPv4, o datagrama IPv6 é encapsulado dentro de um datagrama IPv4, setando a origem como o roteador IPv6 na ponta do túnel e o destino como o próximo roteador IPv6 que for encontrado no caminhar do túnel. Como podem existir outros roteadores IPv4 no caminho, eles apenas repetem o processo de encapsulamento. Ao chegar no próximo roteador IPv6 no túnel, o datagrama IPv6 é desencapsulado e repassado normalmente para os próximos roteadores IPv6. Esses “túneis” precisam ser mediados por acordos administrativos.
Compartilhar