Arquitetura TCP/IP Parte VI Entrega de pacotes sem conexão (IP) Fabrízzio Alphonsus A. M. N. Soares
Tópicos Conceitos Pacote (ou datagrama) IP Formato Campos do cabeçalho Encapsulamento Fragmentação e remontagem Opções do IP
IP Internet Protocol Principal protocolo da pilha TCP/IP Principais objetivos Esconder a heterogeneidade da rede subjacente Fornecer a ilusão de uma única grande rede
Características do IP Fornece um serviço de entrega de pacotes sem conexão Define três itens importantes: Esquema de endereçamento Formato do pacote Encaminhamento do pacote
Pacote IP Semelhante ao quadro da camada de enlace Também conhecido como datagrama IP Layout: Cabeçalho Área de dados Cabeçalho contém (entre outros): Endereço IP de origem Endereço IP de destino Tipo do pacote (ou conteúdo da área de dados)
Formato do cabeçalho IP
Campos do cabeçalho IP VERSION (4 bits) Decimal Palavra-chave Versão 0-1 Reservado 2-3 Não atribuído 4 IP Internet Protocol (RFC791) 5 ST ST Datagram Mode (RFC1190) 6 IPv6 Internet Protocol version 6 (RFC1752) 7 TP/IX TP/IX: The Next Internet (RFC1475) 8 PIP The P Internet Protocol (RFC1621) 9 TUBA TUBA (RFC1347) 10-14 Não atribuído 15 Reservado *** De acordo com: http://www.iana.org/assignments/version-numbers (última atualização: 27 junho de 2007)
Campos do cabeçalho IP (cont.) HLEN (4 bits) indica o comprimento do cabeçalho em palavras de 32 bits (DWORD ou 4 bytes). O valor típico é 5 (ausência de opções) e o máximo é 15 (cabeçalho fica limitado em 60 bytes, sendo 40 bytes para opções) TYPE OF SERVICE - TOS (8 bits) informa ao roteador como o datagrama deve(ria) ser tratado e identifica algumas funções de QoS como prioridade, atraso, vazão e confiabilidade Bits 0 a 2: Precedence Bit 3 (D): 0 = Normal Delay, 1 = Low Delay Bit 4 (T): 0 = Normal Throughput, 1 = High Throughput Bit 5 (R): 0 = Normal Reliability, 1 = High Reliability Bits 6 e 7: Reservados
Campos do cabeçalho IP (cont.) TOTAL LENGTH (16 bits) fornece o comprimento do pacote IP, medido em bytes, incluindo o cabeçalho IDENTIFICATION (16 bits) identifica o pacote IP entre os outros transmitidos pelo equipamento. Identifica também todos os fragmentos de um pacote original FLAGS (3 bits) Bit 0 (R ou Reserved) reservado Bit 1 (DF ou Do not Fragment) determina se o pacote pode ser fragmentado (=0), ou não (=1) Bit 2 (MF ou More Fragments) indica se o fragmento é o último (=0) de um pacote ou se existem mais (=1)
Campos do cabeçalho IP (cont.) FRAGMENT OFFSET (13 bits) informa o posicionamento do fragmento em relação aos demais fragmentos. Indica a distância dos dados, desde o início, no pacote original, em unidades de 8 bytes TIME TO LIVE ou TTL (8 bits) indica o tempo de vida do pacote na rede. Atualmente, significa o número saltos (hops ou roteadores) que o pacote pode realizar antes de ser descartado PROTOCOL (8 bits) identifica o protocolo que está ocupando a área de dados. Exemplos: ICMP=1, TCP=6, UDP=17
Campos do cabeçalho IP (cont.) HEADER CHECKSUM (16 bits) assegura a integridade do cabeçalho IP (apenas). É gerado na origem e conferido a cada roteador. Após decrementar o valor do TTL o roteador gera um novo valor e reenvia o pacote SOURCE ADDRESS (32 bits) endereço IP do equipamento de origem do pacote IP DESTINATION ADDRESS (32 bits) endereço IP do equipamento de destino (final) do pacote IP OPTIONS (variável de 0 a 320 bits) se existir contém informações adicionais relacionadas a roteamento, rotas, horário ou segurança
Encapsulamento do pacote IP Pacote é encapsulado dentro de um quadro de enlace Hardware de rede trata o pacote como dados Um campo do cabeçalho do quadro deve identificar os dados como um pacote IP Exemplo: Ethernet descreve o IP pelo valor 0x0800 Cabeçalho IP Área de dados do IP Cabeçalho do quadro Área de dados do quadro
Um problema potencial Para se ter um transporte eficiente, cada pacote IP deveria caber em um único quadro (em qualquer enlace ao longo do caminho) Um pacote IP pode ter até 65535 bytes (incluindo o cabeçalho) Hardware de rede limita o tamanho do quadro a valores menores (geralmente) Ethernet transporta no máximo 1500 bytes Essa limitação é conhecida como MTU (Maximum Transmission Unit) Problema: Definir como pacote IP é encapsulado se o mesmo excede a MTU, sabendo que cada rede física pode ter uma MTU diferente
Abordagens para o encapsulamento Forçar um tamanho de pacote que seja menor que a menor MTU do caminho Ineficiente Difícil descobrir a menor MTU de um caminho Acomoda pacotes de tamanho arbitrário Fragmentação e remontagem
Pacote IP maior que o quadro de enlace O pacote IP é dividido em novos pacotes IP, fragmentos do original (fragmentação) Cada novo pacote IP cabe em um único quadro No destino final o processo é revertido (remontagem) Perda de um único fragmento leva a perda do pacote original
Exemplo da necessidade de fragmentação Hosts A e B enviam pacotes de até 1500 bytes Roteador R1 fragmenta pacotes do host A (quando necessário) antes de enviar por Net 2 Roteador R2 fragmenta pacotes do host B (quando necessário) antes de enviar por Net 2
Fragmentação do pacote Realizada pelos roteadores Divide os pacotes em outros pacotes, chamados fragmentos Fragmentos usam o mesmo formato de cabeçalho de um pacote convencional Apenas campos FLAGS e FRAGMENT OFFSET são modificados. Além passar a existir mais de um pacote com o mesmo valor em IDENTIFICATION Cada fragmento é roteado de forma independente Fragmentos podem ser divididos em fragmentos menores se encontrarem redes com MTUs ainda menores
Ilustração da fragmentação DF=0 MF=0 MF=1 MF=1 MF=0 (a) pacote IP com 1420 bytes (incluindo cabeçalho) (b) precisa passar por uma rede com MTU de 620 bytes e, portanto, é dividido em três fragmentos
Remontagem Destino final coloca os fragmentos juntos novamente Conceito fundamental para o funcionamento de uma interligação em redes sem conexão Não há necessidade montar subfragmentos antes, pois o campo FRAGMENT OFFSET informa onde cada pedaço deve ficar Espera pelos fragmentos é limitada Um temporizador é disparado quando chega o primeiro fragmento Se temporizador expirar o pacote inteiro é descartado
Opções IP Raramente usadas Usadas em depuração da rede Têm tamanho variável Campo PADDING garante que o cabeçalho será um múltiplo de 32 bits, para atender o campo HLEN Segue o formato TLV (Type Length Value), porém o type contém algumas informações adicionais De fato, torna o processamento do pacote mais complexo 1 byte OPTION CODE 1 byte LENGTH N bytes DATA
Campo OPTION CODE
Campo OPTION CODE (cont.)
Características do IP IP oferece o melhor esforço (best-effort) Faz o possível para entregar Não garante a entrega Na Internet, roteadores podem ficar sobrecarregados ou mudar rotas, o que significa que: Pacotes podem ser perdidos Pacotes podem ser duplicados Pacotes podem chegar fora de ordem ou serem embaralhados Com essas características, o IP consegue operar sobre a mais ampla variedade de redes físicas