IP
O Internet Protocol (IP) é considerado o principal protocolo quando falamos de interligação de redes, localizado na camada de internet a segunda camada do modelo de referência TCP/IP, este protocolo armazena a informação de quem enviou o pacote e para quem o pacote foi enviado, facilitando assim a entrega do pacote, ou seja, o roteamento do mesmo. (KUROSE, 2010)
IPV4
Este protocolo tem sua estrutura chamada de pacote e como dito anteriormente uma de suas funções é informar a origem e destino do pacote, para tal ele possui dois campos de 32 bits cada, armazenados em sua estrutura que além dessas informações possui informações que o ajudam a controlar a qualidade de entrega de serviço como o TOS (“Type of Service”) que recentemente passou a ser chamado de DSCP (“Differentiated Services Code point”) e ECN (“Explicit Congestion Notification”). (TANENBAUM, 2003)
Este campo tem o objetivo de melhorar a qualidade de entrega de serviço classificando os serviços mais importantes e dando devida importância a eles quando existir a necessidade de descarte de pacote ou de tratamento de congestionamento. (TANENBAUM, 2003)
“O campo Type of service é um dos poucos campos que tiveram seu significado (ligeiramente) modificado ao longo dos anos. Ele foi e ainda é destinado a distinguir entre diferentes classes de serviço. São possíveis várias combinações de confiabilidade e velocidade. Em se tratando de voz digitalizada, a entrega rápida vence a entrega segura. Para a transferência de arquivos, uma transmissão sem erros é mais importante do que uma transmissão rápida.
Originalmente, o campo de 6 bits continha (da esquerda para a direita) um campo Precedence de três bits e três flags, D, T e R. O campo Precedence tinha uma prioridade que variava de 0 (normal) a 7 (pacote de controle de rede). Os três bits de flags permitiam que o host especificasse o que era mais importante no conjunto {Retardo, “Throughput”, Confiabilidade}. Teoricamente, esses campos permitem que os roteadores optem, por exemplo, entre um enlace de satélite com alto “throughput”, mas com grande retardo ou uma linha dedicada com baixo “throughput” e baixo retardo.[…]” (TANENBAUM, 2003:335)
Este campo tem o objetivo de melhorar a qualidade de entrega de serviço classificando os serviços mais importantes e dando devida importância a eles quando existir a necessidade de descarte de pacote ou de tratamento de congestionamento. (TANENBAUM, 2003)
Além destas características ele possui campos de controle de fragmentação, um contador para que o pacote não seja eterno, conhecido como TTL (“Time To Live”), um campo que informa qual o protocolo da terceira camada do modelo TCP/IP ele está encapsulando, um campo opcional e seus dados que quando não estão zerados, representam exatamente o protocolo da camada superior, tendo também campos como “Checksum” que confere a integridade do cabeçalho do pacote IP, e o Identificador que serve para identificar o pacote. ” (TANENBAUM, 2003)
[..]há um bit não utilizado e dois campos de 1 bit. DF significa Don’t Fragment (não fragmentar). Trata-se de uma ordem para os roteadores não fragmentarem o datagrama, porque a máquina de destino é incapaz de juntar os fragmentos novamente. Por exemplo, qu ando um computador é reinicializado, sua ROM solicita que uma imagem de memória seja enviada a ela como um único datagrama. Marcando-se o datagrama com o bit DF, o transmissor sabe que ele chegará em um único fragmento, mesmo que isso signifique que o datagrama deve evitar uma rede de pacotes pequenos que esteja no melhor caminho, e seguir por uma rota menos adequada. Todas as máquinas são obrigadas a aceitar fragmentos de 576 bytes ou menos. MF significa More Fragments (mais fragme ntos). Todos os fragmentos, exceto o último, têm esse conjunto de bits, necessário para se saber quando chegaram todos os fragmentos de um datagrama.
O campo Fragment offset informa a que ponto do datagrama atual o fragmento pertence. Todos os fragmentos de um datagrama, com exceção do último, devem ser múltiplos de 8 bytes, a unidade elementar de fragmento. Como são fornecidos 13 bits, existem no máximo 8192 fragmentos por datagrama, resultando em um tamanho máximo de datagrama igual a 65.536 bytes, um a mais que o campo Total length.
O campo Time to live é um contador usado para limitar a vida útil dos pacotes. Esse campo conta o tempo em segundos, permitindo uma vida útil máxima de 255 s. Esse contador deve ser decrementado a cada hop e supõem-se que ele seja decrementado diversas vezes quando estiver enfileirado durante um longo tempo em um roteador. Na prática, ele simplesmente conta os hops. Quando o6 contador chega a zero, o pacote é descartado e um pacote de advertência é enviado ao host de origem. Esse recurso evita que os datagramas fiquem vagando indefinidamente, algo que aconteceria se as tabelas de roteamento fossem danificadas.(TANENBAUM, 2003:335)
Representação de um pacote de IPv4
IPv6
Este protocolo foi criado para substituir o IPv4, que possui uma limitação causada pelo tamanho do campo dos endereços de origem e de destino, pois o campos possuem apenas 32bits disponíveis e os endereços públicos controlados pela IANA (“Internet Assigned Numbers Authority”), estão se esgotando devido a está limitação. Como solução na estrutura do IPv6 foi reservado um campo 128bits para o endereço de origem e mais 128bits para o endereço de destino.
Além da mudança mencionada no paragrafo anterior, houve mudanças na estrutura como por exemplo, um conceito de cabeçalhos de expansão no lugar do campo de opção e dos controles de fragmentação, também foi substituído o campo de tamanho do cabeçalho pelo campo de tamanho do “payload” que informa o tamanho dos dados incluindo os cabeçalhos de extensão.(TANENBAUM, 2003)
Representação do cabeçalho IPv6