Referência básica: 1. Redes de Computadores e a Internet/Uma Abordagem Top-Down 5ª. Edição Kurose Ross Editora Pearson (Capítulo 4 item 4.4.1) 2. Tanenbaum Cap. 5.6.1 - O protocolo IP 1. INTRODUÇÃO : No TCP/IP, a camada Internet denomina sua unidade básica de transferência como sendo o datagrama IP, ou simplesmente datagrama. Na camada de enlace a unidade de transferência era chamada de frame ou quadro. O datagrama IP é composto de uma parte de cabeç alho, onde aparecem, por exemplo, os endereços Ips de origem e destino, e da parte de dados do datagrama. A seguir apresentamos as informações do datagrama IP. 2. Formato do Datagrama IP Formado de Cabeçalho + Dados 0 4 8 16 24 31 VERSÃO TAMCAB TIPO DE SERVIÇO PRC-DTR-00 COMPRIMENTO TOTAL IDENTIFICAÇÃO FLAGS 0-DNF-MF DESLOCAMENTO FRAGMENTO TEMPO DE VIDA PROTOCOLO VERIFICAÇÃO SOMA DO CABEÇALHO ENDEREÇO IP DE ORIGEM ENDEREÇO IP DE DESTINO OPÇÕES IP PADDING DADOS... a. Todos os campos acima serão detalhados a seguir utilizando o pacote coletado pelo Ethereal, mostradi a seguir. b. No Ethereal a janela 1 informa mostra o resumo de todos os pacotes. Na janela 2 o pacote é detalhado em seus vários níveis (enlace, rede, transporte e aplicação). Na janela 3, temos o pacote exatamente como o mesmo trafega na rede. c. Na janela 3 temos 3 colunas, a primeira coluna é a posição do datagrama, começando na posição 0, na segunda linha temos 10(hexa)=16 em decimal. Ou seja, em cada linha temos 16 bytes. Na coluna do centro temos os dados do pacote. Na coluna 3 temos o pacote em formato display. Redes TCP/IP Em 7/08/2014 Página 1
d. Pacote coletado pelo Ethereal Redes TCP/IP e. Na janela 3, os dados que aparecem são os seguintes: 0000 00 04 ac b8 95 5e e0 20 03 00 0d 1e 08 00 45 00...^....E. 0010 00 36 6c 40 40 00 80 06 78 7c 0a c8 00 40 0a c8.6l@@...x...@.. 0020 00 36 0a 76 00 15 04 6e 8d 3b 04 f6 2e 7f 50 18.6.v...n.;...P. 0030 ff a7 e4 4c 00 00 50 41 53 53 20 70 6f 6e 74 6f...L..PASS ponto 0040 31 2e 0d 0a 1... Veja que o sniffer apresenta o pacote em linhas de 16bytes enquanto o datagarama IP foi mostrado em linhas de 16 bytes. Para facilitar o entendimento dos campos vamos colocar o resultado do sniffer também em linhas de 4 bytes, ficando assim: 45 00 00 36 6c 40 40 00 80 06 78 7c 0a c8 00 40 0a c8 00 36 0 4 8 16 24 31 VERSÃO TAMCAB TIPO DE SERVIÇO COMPRIMENTO TOTAL IDENTIFICAÇÃO FLAGS DESLOCAMENTO FRAGMENTO TEMPO DE VIDA PROTOCOLO VERIFICAÇÃO SOMA DO CABEÇALHO ENDEREÇO IP DE ORIGEM ENDEREÇO IP DE DESTINO OPÇÕES IP DADOS... PADDING Redes TCP/IP Em 7/08/2014 Página 2
f. No resultado da coleta do Sniffer, os campos em azul são da camada de enlace o Sniffer detalha os mesmos. Informe o conteúdo destes campos, são 3 pela ordem: endereço Mac de destino, endereço Mac de origem e tipo de protocolo. g. Os campos da camada Internet começam pelo campo VERSÃO, que representa a versão do protocolo IP que foi usada para criar o datagrama (4bits). Ele é utilizado para verificar se o transmissor, o receptor e quaisquer roteador entre eles concordam quanto ao formato do datagrama. A versão atual do protocolo IP é quatro. h. O campo TAMCAB (Tamanho do cabeçalho), representa o comprimento do cabeçalho, medido em palavras de 32 bits (4 bytes). O cabeçalho mais comum que não contém opções mede 20 octetos e o comprimento é = a 5. No exemplo, o valor é exatamente este. i. TIPO DO SERVIÇO: i1) TOS (Type of service) Indica a qualidade do serviço que o datagrama deve ser enviado e é muito importante na priorização de tráfego de voz, vídeo e outros dados importantes. Este campo (8 bits, os 6 primeiros têm significado, os 2 últimos não são usados) especifica como o datagrama poderia ser manejado e é dividido em : Precedence: (3 bits) indica precedência de datagramas com valores desde 0 (precedência normal) até 7 (controle da rede), com estes bits permite-se ao transmissor indicar a importância de cada datagrama que ele está enviando. A maioria dos softwares ignoram esta informação. Bits D,T,R (4,5 E 6) : indicam o tipo de transporte que o datagrama deseja se ligados -Baixo Retardo(D-elay), Alta Capacidade de Processamento(T-hroughput) e Alta Confiabilidade(Reliability). É considerado como sugestão. No nosso exemplo, estes campos estão zerados. i2) Diffserv (Diferentiated Services-Serviços diferenciados) Uma alternativa que está sendo usada para os Serviços Integrados (que usam o TOS-Tipo de Serviço) são os Serviços Diferenciados que usam o campo Diffserv, formado pelo campo DSCP (Differentiated Services Code Point-6 bits) e pelo campo ECN (Early congestion Network-2 bits). O campo DSCP utiliza 5 classes (3 primeiros bits), sendo que a classe EF (abaixo) é a mais prioritária. As outras classes (AF) permitem também definir características de descarte de pacotes. Os 3 primeiros do DSCP (classe) são os bits que são repassados para uma rede MPLS, que são a tendência de plataforma das Redes das Operadoras. Classe Classe EF Classe AF4 Classe AF3 Classe AF2 Classe AF1 Altíssima prioridade(voz) Alta Prioridade(Vídeo) Serviços críticos Serviços prioritários Serviços não prioritários Descarte baixo 101110 DSCP 46 100010 AF41-DSCP 34 011010 AF31-DSCP 26 010010 AF21-DSCP 18 001010 AF11-DSCP 10 Descarte médio 100100 AF42-DSCP 36 011100 AF32-DSCP 28 010100 AF22-DSCP 20 001100 AF12-DSCP 12 Descarte Alto 100110 AF43-DSCP 38 011110 AF33-DSCP 30 010110 AF23-DSCP 22 001110 AF13-DSCP 14 Redes TCP/IP Em 7/08/2014 Página 3
j. TOTAL-LENGTH (Comprimento Total) : Este campo proporciona o comprimento do datagrama medido em bytes, incluindo cabeçalho e dados. Possui 16 bits, logo o maior tamanho é 2 16, ou 65.535 bytes. No nosso exemplo, ele está com o valor=0036(hexa)=54(decimal) k. IDENTIFICAÇÃO, FLAGS e DESLOCAMENTO FRAGMENTO: Estes três campos controlam a fragmentação e a união dos datagramas. O campo de identificação contém um único inteiro que identifica o datagrama, é um campo muito importante porque quando um roteador fragmenta um datagrama, ele copia a maioria dos campos do cabeçalho do datagrama em cada fragmento, então a identificação também deve ser copiada, com o propósito de que o destino saiba quais fragmentos pertencem a quais datagramas. Cada fragmento tem o mesmo formato que um datagrama completo. Nas próximas aulas o processo de fragmentação será detalhado. No exemplo o valor da identificação é 6c-40 (H). l. FLAGS (3 bits) - o primeiro bit não é usado, o segundo um bit (DNF - Do Not Fragment= Não fragmente ) informa aos roteadores no caminho se o datagrama pode ser fragmentado ou não. O terceiro bit (MF - Mais Fragments) identifica se este datagrama é o último fragmento de um pacote IP ou se há mais fragmentos. Todos os fragmentos, com exceção do último, devem possuir este bit ligado. No nosso exemplo, o único flag ligado é de de DON T FRAGMENT, ou seja, o datagrama não pode ser fragmentado. m. OFFSET FRAGMENT (DESLOCAMENTO): especifica o posicionamento em relação ao início do datagrama original dos dados que estão sendo transportados no fragmento. Seu tamanho é de 13 bits. É medido em palavras de 64bits, ou seja para tamanho=185, implica em tamanho real de 1480 bytes (185x8), No exemplo o deslocamento está zerado. n.tempo DE VIDA (Time To Live): É um contador de saltos utilizado para limitar a vida dos pacotes. Este valor é decrementado de 1 a cada roteador pelo qual ele passa. Quando seu valor chega a zero, o pacote é descartado. O objetivo é evitar que um pacote seja roteado eternamente na Internet como resultado de um loop de roteamento. No exemplo está igual a 80(hexa)=128(decimal) o.protocolo: Informa o protocolo de mais alto-nível. Exemplo : UDP (17), TCP (6) e ICMP(1). No nosso exemplo está com o valor igual a 6. p. VERIFICAÇÃO DE SOMA DE CABEÇALHO (HEADER-CHECKSUM) : Faz o controle de erros do cabeçalho (não é do datagrama completo). No exemplo o valor está igual a 78-7c. É modificado a cada salto (hop), pois pelo menos o TTL se altera. q. Source e Destination (ENDEREÇOS DE ORIGEM E DESTINO) : especificam o endereço IP de 32 bits do remetente e receptor. No exemplo os endereços são 0A-c8-00-40 E 0Ac8-00-36, que representam em decimal 10.200.0.64 e 10.200.0.54 r. Options: é utilizado, opcionalmente, para controle controle de segurança, relatório de erros, depuração, informação de hora, etc. No nosso exemplo, este campo não está sendo usado. Redes TCP/IP Em 7/08/2014 Página 4
s. Padding (preenchimento): Campo usado para completar o datagrama, pois o mesmo tem tamanho múltiplo de 4 bytes. Exemplo: Caso o datagrama ficasse com 23 bytes, devido ao uso do campo options, o padding seria de 1 byte. Redes TCP/IP Em 7/08/2014 Página 5
3. Resumo 0000 00 04 ac b8 95 5e e0 20 03 00 0d 1e 08 00 45 00...^....E. 0010 00 36 6c 40 40 00 80 06 78 7c 0a c8 00 40 0a c8.6l@@...x...@.. 0020 00 36 0a 76 00 15 04 6e 8d 3b 04 f6 2e 7f 50 18.6.v...n.;...P. 0030 ff a7 e4 4c 00 00 50 41 53 53 20 70 6f 6e 74 6f...L..PASS ponto 0040 31 2e 0d 0a 1... Destino Origem Tamanho Dados FCS /Tipo 6 bytes 6 bytes 2 bytes 46 a 1500 bytes 4 bytes Pacote TCP/IP Origem Destino Protocolo Dados a) Os primeiros 12 bytes representam endereços de enlace de destino e origem, cada um com 6 bytes. A seguir aparece o tipo de protocolo com 2 bytes.logo : Placa de rede de destino =00 04 AC B8 95 5E Placa de rede de origem =E0 20 03 00 0D 1E Tipo protocolo =08 00 (IP) b) Datagrama IP Informação Tamanho Conteúdo Significado Versão 4 bits 4 Versão do protocolo protocolo Hlen(tamanho do cabeçalho) 4 bits 5 Como o tamanho é medido em palavras de 32 bits (4 bytes), o tamanho do cabeçalho IP é de 20 bytes. Tipo serviço 8 bits 00 Informações de nível de serviço Comprimento total 16 bits 0036 Tamanho total datagrama=36 em decimal é 54. Confira o tamanho Identificação 16 bits 6C40 Identificação do datagrama Flags 3 bits 010 É necessário analisar bit a bit 0-Não usado,1-não fragmentar,0-ultimo fragmento Deslocamento fragmento 13 bits 000 Deslocamento em relação ao início do datagrama quando há fragmentação Tempo de vida 8 bits 80 Qtde.de roteadores que o datagrama pode saltar na Internet (128 em decimal) Protocolo 8 bits 06 Protocolo de alto nível: 06-TCP, 1-ICMP, 17-UDP Checksum 16 bits 787C Checksum Endereço de origem 4 bytes 0AC80040 A=10,C8=200,00,40=64 Convertendo para decimal=10.200.0.64 Endereço de destino 4 bytes 0AC80036 A=10,C8=200,00,36=54== 10.200.0.54 Redes TCP/IP Em 7/08/2014 Página 6