Baixe o app para aproveitar ainda mais
Prévia do material em texto
1 Redes de Computadores Aula 7 e 8 Camada de Rede Obionor Nóbrega Internet Protocol RFC 791 Fonte da RFC: www.ietf.org Objetivo desta aula � Conhecer o Protocolo IP � Aprofundar o conhecimento do IP header � Entender o endereçamento IP � Fragmentação e remontagem � Sub-rede (RFC 950) � ARP (RFC 826) Pilha dos Protocolos Motivação � Criado para interconectar computadores através de sistemas de redes comutadas por pacotes. � Transmitindo datagramas de um host origem até um host destino através de um endereço lógico de tamanho fixo. � Permitindo fragmentação e remontagem Operação � O Internet Protocol implementa basicamente duas funções: � Endereçamento � Roteamento (interpretação do endereço Internet) � Fragmentação � É necessário quando mudar o tamanho do pacote (para um menor) para chegar a um host destino. 2 Internetworking � Redes são interligadas entre si de modo a criar internets: � A interligação de redes levanta essencialmente 2 problemas: � heterogeneidade; � escala. � O Internet Protocol (IP) foi concebido para resolver estes problemas em escala global Internetworking com IP: exemplo � Exemplo de uma internet: Internetworking com IP: exemplo � Pilha de protocolos usado na comunicação entre H1 e H8 : � Todos os nós executam IP e têm um endereço IP único Modelo de Serviço IP � Baseado em datagramas (sem conexão) � Não há conexão ou circuito lógico � Serviço do tipo best-effort � Perda/duplicação de pacotes � Ordem dos pacotes não é preservada � Atraso arbitrário Modelo de Serviço IP � A simplicidade do serviço IP é essencial para o seu sucesso: � Todos os nós têm que implementar IP. � Não há controle de erros de dados � Apenas do cabeçalho � Não há retransmissão ou controle de fluxo � Erros detectados podem ser reportados via ICMP (RFC 792) Cabeçalho IP DF Do not Fragment (Não usa fragmentos) MF More Fragments (mais de um fragmento) 0 0 4 8 16 31 3 Cabeçalho IP Version (4bits): é o primeiro campo, permite que cada versão do protocolo use um formato diferente para o header. (ex: este header descreve o IPv4) IHL Cabeçalho IP IHL (4bits): especifica o tamanho do header em palavras de 32-bits (tipicamente, o header tem 20 bytes: sem opções – valor 5) IHL Cabeçalho IP TOS (8bits): permite um serviço diferenciado no tratamento de um datagrama ao passar por uma rede. Utiliza parâmetros de atraso, velocidade e confiabilidade; IHL Cabeçalho IP 111- Network control 110 – Internetwork control 101 – CRITIC/ECP 100 – Flash Override 011 – Flash 010 – Immediate 001 – Priority 000 - Routine 0 1 2 3 4 5 6 7 Type of Service : 8 bits � Bits 0-2 : Precedence (controle usado por gateways) Cabeçalho IP � Type of Service : 8 bits � Bit 3: � 0 = Normal delay 1 = Low Delay � Bit 4: � 0 = Normal throughput 1= High throughput � Bit 5: � 0 = Normal relibility 1= High relibility � Bit 6 – 7 : reserved 0 1 2 3 4 5 6 7 Cabeçalho IP Length (16bits): é o comprimento do datagrama em bytes. No máximo um datagrama IP pode ter 65535 bytes (incluindo o header). Valor impraticável na maioria dos hosts e redes ( padrão 576 bytes). IHL 4 Cabeçalho IP Length (16bits): 576 bytes = 512 bytes de dados + 64 bytes de cabeçalho. (tamanho mínimo do cabeçalho é 20 bytes) IHL Cabeçalho IP Identification (16bits): Usado para fragmentação e remontagem do datagrama IHL Cabeçalho IP Flags (3 bits):Usado para controle de fragmentação IHL Cabeçalho IP Flags Bit 0: reservado, deve ter o valor 0 Bit 1: (DF) 0= May Fragment 1= Don´t Fragment Bit 2: (MF) 0= Last Fragment 1= More Fragments 0 D M M F IHL Cabeçalho IP Offset (13bits): Usado para fragmentação. Indica ao receptor a posição do fragmento no datagrama original. O primeiro fragmento sempre recebe o valor 0. (medido em unidades de 8 bytes) IHL Cabeçalho IP TTL (Time to live – 8bits): é usado para evitar que os datagramas circulem indefinidamente consumindo recursos. Este campo é modificado no processamento do cabeçalho. IHL 5 Cabeçalho IP Protocol (8bits): indica o protocolo da camada que enviou o datagrama. ex: UDP é 17 e TCP é 6 IHL Cabeçalho IP Checksum (16bits): é um checksum apenas para o cabeçalho, devido a mudança de campos no processamento do cabeçalho. (TTL) IHL Cabeçalho IP SourceAddr (32bits) e DestinationAddr (32bits): são os endereços IP da fonte e do destino do datagrama. IHL Cabeçalho IP Options+pad (tamanho variável): Utilizado em situações de teste e detecção de erros. Define traceroute e timestamp.. IHL Fragmentação: justificativa � Cada rede especifica o comprimento máximo dos seus quadros (Maximum Transmission Unit - MTU): � Ethernet especifica 1500 bytes; � FDDI especifica 4500 bytes; Fragmentação: justificativa � Duas alternativas: � Especificar o tamanho máximo de um datagrama IP igual ao mínimo dos MTUs das redes usadas por IP: � Impossibilita o uso de IP com novas tecnologias. � Evita a degradação do desempenho em redes que suportam MTUs maiores do que esse mínimo: cada datagrama representa um overhead. � Suportar fragmentação de datagramas (e posterior reconstrução). 6 Fragmentação e Reconstrução de Datagramas � Estratégia: � Fragmentar só quando necessário (MTU < datagrama); � Permitir “re-fragmentação”; � Reconstrução é realizada apenas pelo destino; � Não recuperar da perda de fragmentos. Fragmentação e Reconstrução de Datagramas (cont.) � Fragmentos são também datagramas IP. � IP usa os seguintes campos para permitir fragmentação e reconstrução de datagramas: � Ident identifica o datagrama a que o fragmento pertence (para não misturar com outros); � Offset do fragmento em blocos de 8-bytes; � Flags campo com 3 bits, incluindo don’t- fragment e more-fragments; � Fragmentação é considerado um mal necessário a evitar: Hosts são encorajados a realizar path MTU discovery. Cabeçalho IP � FLAGs � Um datagrama pode ser marcado como “Don´t Fragment” , porém se não puder ser entregue (por não poder fragmentar), será descartado. Fragmentação e Reconstrução: Exemplo Exemplos Datagrama de tamanho mínimo Ver=4 IHL=5 Type of service Total length = 21 Identification = 111 Flg=0 Fragment Offset = 0 Time = 123 Protocol = 1 Header checksum Source Address Destination Address DATA Exemplos Datagrama de tamanho 452 bytes de dados Ver=4 IHL=5 Type of service Total length = 472 Identification = 111 Flg=0 Fragment Offset = 0 Time = 123 Protocol = 6 Header checksum Source Address Destination Address DATA ... DATA 7 Exemplos Datagrama fragmentado (tamanho máximo permitido = 280 bytes –> 1º fragmento) Ver=4 IHL=5 Type of service Total length = 276 Identification = 111 Flg=1 Fragment Offset = 0 Time = 119 Protocol = 6 Header checksum Source Address Destination Address DATA ... DATA 32bytes Exemplos Datagrama fragmentado (tamanho máximo permitido = 280 bytes –> 2º fragmento) Ver=4 IHL=5 Type of service Total length = 216 Identification = 111 Flg=0 Fragment Offset = 32 Time = 119 Protocol = 6 Header checksum Source Address Destination Address DATA ... DATA Endereçamento IP � Endereços são usados para identificar os hosts numa rede. � Classes � Notação decimal ex: 192.34.50.36 (embora o cálculo seja me binário: 11000000.00100010.00110010.00100100 Classes de Endereçamento IP Classes de Endereçamento IP Endereços especiais � Reservados � Endereços com todos os bits 0 (rede) � Endereço com todos os bits 1 (broadcast) � A rede 127 é reservada para teste de loopback (127.0.0.1 = próprio host)8 Endereçamento IP � Perguntas (para cada classe): � Qual o menor endereço IP possível ? � E qual o maior? Resumo Classe da rede: A B C Valores para o primeiro byte 1 a 126 128 a 191 192 a 223 Mascara de rede (HEX) FF.00.00.00 FF.FF.00.00 FF.FF.FF.00 Número de bits para rede 7 14 21 Primeira rede 1 128.1 192.0.1 Última rede 126 191.254 254.255.254 Número de redes possíveis 126 16382 2097150 Número de bits para host 24 16 8 Primeiro host de cada rede 0.0.1 0.1 1 Último host de cada rede 255.255.254 255.254 254 Número de hosts por rede 16777214 65534 254 Encaminhamento de datagrama � Estratégia � Cada pacote contém endereço do destino � Se conectado diretamente à rede destino então encaminhar para host � Se não conectado diretamente à rede destino então encaminhar para algum roteador � Tabela de encaminhamento mapea número de rede no próximo nó � Cada host tem um roteador default � Cada roteador mantém uma tabela de encaminhamento Tabela de Encaminhamento para o roteador R2 Número da rede 1 2 3 4 Próximo nó R3 R1 interface 1 interface 0 Algoritmo de transmissão de um Pacote IP 1. Datagrama pronto para ser transmitido 2. Caso: 2.1 Endereço Destino == Endereço Transmissor 2.1.1 Entrega datagrama pela interface loopback (127.0.0.1) 2.2.2 Fim 2.2 Endereço de rede do destino == endereço de rede local 2.2.1 Descobre o endereço físico do destino (ARP) 2.2.1 Transmite datagrama pela interface correta 2.2.2 Fim 2.3 Endereço de rede do destino != endereço de rede local 2.3.1 Verifica tabela de rotas 2.3.2 Descobre rota que se encaixa com a rede destino 2.3.3 Descobre o endereço físico do gateway (ARP) 2.3.4 Transmite o datagrama para o gateway 2.3.5 Fim 3. Fim Algoritmo de recepção de um Pacote IP 1. Datagrama recebido da camada intra-rede, desfragmentado e testado 2. Caso: 2.1 Endereço Destino = Endereço do Host, ou E.D. = outras interfaces do Host, ou E.D. = Broadcast 2.1.1 Passa datagrama para níveis superiores -> FIM 2.2 Caso: 2.2.1 Máquina que recebeu não é roteador 2.2.1.1 Descarta datagrama -> FIM 9 Algoritmo de recepção de um Pacote IP 2.2.2 Máquina é roteador (possui mais de uma interface IP) 2.2.2 Caso: 2.2.2.1 Endereço IP destino = Rede IP com interface direta 2.2.2.1.1 Descobre o endereço físico do destino (ARP) 2.2.2.1.2 Transmite datagrama pela interface respectiva -> FIM 2.2.2.2 Caso Endereço de rede do destino!= endereço de rede local 2.2.2.2.1 Verifica tabela de rotas 2.2.2.2.2 Descobre o endereço físico do gateway (ARP) 2.2.2.2.3 Transmite o datagrama para o gateway -> FIM 3. Fim Internet Standard Subnetting Procedure RFC 950 Fonte da RFC: www.ietf.org Baseado na RFC-917 Máscara de Sub-Rede � Motivação: � Quando há necessidade de segmentação da rede; � Diferentes tecnologias � Limites da tecnologia � Congestionamento da rede Máscara de Sub-Rede � Motivação: � Melhor adaptação à realidade das organizações � Na prática verifica-se que três classes são insuficientes para todo o tipo de situações. Sub-redes IP - Subnetting � Sub-redes visíveis apenas dentro da rede � Máscara de sub-rede (subnet mask): define partições variáveis da parte do host � Adiciona outro nível à hierarquia de endereçamento/roteamento 111111111.1111111.11111111 00000000 Número de Rede Número do host Endereço Classe B Máscara de Subrede Número de Rede N. de Subrede ID do host Endereço com subrede Máscara de Sub-Rede � É formada por 32 bits. � A máscara é usada fora de seu padrão, quando há necessidade de segmentação da rede; Classe A 255.0.0.0 Classe B 255.255.0.0 Classe C 255.255.255.0 10 Algumas Sub-Redes de Classe C Bits para sub-rede 2 3 4 5 Mascara de rede FF.FF.FF.C0 FF.FF.FF.E0 FF.FF.FF.F0 FF.FF.FF.F8 Número de sub-redes 2 6 14 30 Hosts por sub-rede 62 30 14 6 Exemplos de Subredes Máscara de subrede 255.255.255.128 255.255.255.128 255.255.255.0 Próximo nó interface 0 interface 1 R2 Número de subrede 128.96.34.0 128.96.34.128 128.96.33.0 Exemplo de segmentação de rede Address Resolution Protocol - ARP RFC 826 Fonte da RFC: www.ietf.org Motivação � Redes baseadas no protocolo TCP/IP baseiam-se inteiramente em um endereço virtual IP; � Estes endereços são totalmente independentes dos níveis inferiores; � Alguns problemas... Motivação � Problemas: � Para enviar um "datagrama" a uma dada máquina é necessário fornecer à camada LLC o respectivo endereço físico que não está disponível diretamente no endereço IP. � Máquina na mesma rede � ??? � Máquina em outra rede � Entrega ao roteador padrão 11 Motivação � Solução para máquinas na mesma rede: � O protocolo ARP � permite obter, sempre que necessário, o endereço físico de uma máquina mediante o conhecimento do seu endereço IP; � protocolo ARP é responsável por fazer a conversão entre os endereços IPs e os endereços MAC da rede; Funcionamento � Quando uma máquina pretende enviar um "datagrama" IP a outra máquina cujo endereço IP conhece, usa o protocolo ARP para enviar em “broadcast” um pedido no qual consta o endereço IP de destino. Todas as máquinas escutam o pedido e aquela que possui o endereço IP indicado responde enviando o seu endereço físico. Funcionamento do Protocolo ARP Solução para congestionamento � Para evitar o congestionamento na rede, o dispositivo transmissor tem cache de endereços IP recentemente acessados e seus respectivos MACs. Solução para congestionamento � Mapeamento podem mudar � Entradas na cache sofre timeout periodicamente e são removidas � A cada 15 minutos � Broadcast de consulta � Todos aprendem seu MAC e “atualiza” a entrada na tabela ARP � Zera � Senão for alvo e não tiver entradas para atualizar, não é inserido nenhuma informação Implementação � É implementado diretamente sobre o nível de ligação lógica (LLC) e a informação é colocada diretamente sobre “quadros". 12 Formato do pacote ARP Hardware type (16bits): especifica o tipo de rede física ( ex: Ethernet) Hardware type = 1 Protocol Type = 0x0800 HLen=48 PLen = 32 Source HardwareAddr (bytes 0-3) Target HardwareAddr (bytes 2-5) TargetProtocolAddr (0-3) Operation Source HardwareAddr (bytes 4-5) Source ProtocolAddr (bytes 0-1) Source ProtocolAddr (bytes 2-3) Target HardwareAddr (bytes 0-1) Formato do pacote ARP Protocol type (16bits): especifica o protocolo de nível mais alto ( ex: IP) Hardware type = 1 Protocol Type = 0x0800 HLen=48 PLen = 32 Source HardwareAddr (bytes 0-3) Target HardwareAddr (bytes 2-5) TargetProtocolAddr (0-3) Operation Source HardwareAddr (bytes 4-5) Source ProtocolAddr (bytes 0-1) Source ProtocolAddr (bytes 2-3) Target HardwareAddr (bytes 0-1) Formato do pacote ARP HLen (8bits): especifica o tamanho do endereço (de hardware) do nível de enlace. Hardware type = 1 Protocol Type = 0x0800 HLen=48 PLen = 32 Source HardwareAddr (bytes 0-3) Target HardwareAddr (bytes 2-5) TargetProtocolAddr (0-3) Operation Source HardwareAddr (bytes 4-5) Source ProtocolAddr (bytes 0-1) Source ProtocolAddr (bytes 2-3) Target HardwareAddr (bytes 0-1) Formato do pacote ARP HLen (8bits): especifica o tamanho do endereço (do “ protocolo”) do nível mais alto. Hardware type = 1 Protocol Type = 0x0800 HLen=48 PLen = 32 Source HardwareAddr (bytes 0-3) Target HardwareAddr (bytes 2-5) TargetProtocolAddr (0-3) Operation Source HardwareAddr (bytes 4-5) Source ProtocolAddr (bytes 0-1) Source ProtocolAddr (bytes 2-3) Target HardwareAddr (bytes 0-1) Formato do pacote ARP Operation (16bits): especifica é um pedido ou uma resposta (request/reply)Hardware type = 1 Protocol Type = 0x0800 HLen=48 PLen = 32 Source HardwareAddr (bytes 0-3) Target HardwareAddr (bytes 2-5) TargetProtocolAddr (0-3) Operation Source HardwareAddr (bytes 4-5) Source ProtocolAddr (bytes 0-1) Source ProtocolAddr (bytes 2-3) Target HardwareAddr (bytes 0-1) Formato do pacote ARP Source HardwareAddr (48bits): especifica é um endereço fonte de hardware Hardware type = 1 Protocol Type = 0x0800 HLen=48 PLen = 32 Source HardwareAddr (bytes 0-3) Target HardwareAddr (bytes 2-5) TargetProtocolAddr (0-3) Operation Source HardwareAddr (bytes 4-5) Source ProtocolAddr (bytes 0-1) Source ProtocolAddr (bytes 2-3) Target HardwareAddr (bytes 0-1) 13 Formato do pacote ARP Source ProtocolAddr (32bits): especifica é um endereço fonte IP Hardware type = 1 Protocol Type = 0x0800 HLen=48 PLen = 32 Source HardwareAddr (bytes 0-3) Target HardwareAddr (bytes 2-5) TargetProtocolAddr (0-3) Operation Source HardwareAddr (bytes 4-5) Source ProtocolAddr (bytes 0-1) Source ProtocolAddr (bytes 2-3) Target HardwareAddr (bytes 0-1) Formato do pacote ARP Target HardwareAddr (48bits): especifica é um endereço destino de hardware. Hardware type = 1 Protocol Type = 0x0800 HLen=48 PLen = 32 Source HardwareAddr (bytes 0-3) Target HardwareAddr (bytes 2-5) TargetProtocolAddr (0-3) Operation Source HardwareAddr (bytes 4-5) Source ProtocolAddr (bytes 0-1) Source ProtocolAddr (bytes 2-3) Target HardwareAddr (bytes 0-1) Formato do pacote ARP Target ProtocolAddr (32bits): especifica é um endereço destino IP Hardware type = 1 Protocol Type = 0x0800 HLen=48 PLen = 32 Source HardwareAddr (bytes 0-3) Target HardwareAddr (bytes 2-5) TargetProtocolAddr (0-3) Operation Source HardwareAddr (bytes 4-5) Source ProtocolAddr (bytes 0-1) Source ProtocolAddr (bytes 2-3) Target HardwareAddr (bytes 0-1) Reverse Address Resolution Protocol - RARP RFC 903 Fonte da RFC: www.ietf.org Função � Faz praticamente o contrario do protocolo ARP. � Requisita o endereço de IP. � Para se obter o endereço de IP da máquina, o protocolo RARP envia um broadcast solicitando-o. � Isso é muito usado pelos computadores que não tem HD Formato do pacote RARP O que diferencia é o valor do campo Operation (RARP Request e RARP Reply) Hardware type = 1 Protocol Type = 0x0800 HLen=48 PLen = 32 Source HardwareAddr (bytes 0-3) Target HardwareAddr (bytes 2-5) TargetProtocolAddr (0-3) Operation Source HardwareAddr (bytes 4-5) Source ProtocolAddr (bytes 0-1) Source ProtocolAddr (bytes 2-3) Target HardwareAddr (bytes 0-1)
Compartilhar