Protocolo IP
Origem: Wikipédia, a enciclopédia livre.
- Nota: Se procura a versão 6 deste protocolo, consulte IPv6.
IP é um acrónimo para a expressão inglesa "Internet Protocol" (ou Protocolo de Internet), que é um protocolo usado entre duas máquinas em rede para encaminhamento dos dados.
Os dados numa rede IP são enviados em blocos referidos como pacotes ou datagramas (os termos são basicamente sinónimos no IP, sendo usados para os dados em diferentes locais nas camadas IP). Em particular, no IP nenhuma definição é necessária antes do host tentar enviar pacotes para um host com o qual não comunicou previamente.
O IP oferece um serviço de datagramas não confiável (também chamado de melhor esforço); ou seja, o pacote vem quase sem garantias. O pacote pode chegar desordenado (comparado com outros pacotes enviados entre os mesmos hosts), também podem chegar duplicados, ou podem ser perdidos por inteiro. Se a aplicação precisa de confiabilidade, esta é adicionada na camada de transporte.
Os routers são usados para reencaminhar datagramas IP através das redes interconectadas na segunda camada. A falta de qualquer garantia de entrega significa que o desenho da troca de pacotes é feito de forma mais simplificada. (Note que se a rede cai, reordena ou de outra forma danifica um grande número de pacotes, a performance observada pelo utilizador será pobre, logo a maioria dos elementos de rede tentam arduamente não fazer este tipo de coisas - melhor esforço. Contudo, um erro ocasional não irá produzir nenhum efeito notável.)
O IP é o elemento comum encontrado na internet pública dos dias de hoje. É descrito no RFC 791 da IETF, que foi pela primeira vez publicado em Setembro de 1981. Este documento descreve o protocolo da camada de rede mais popular e actualmente em uso. Esta versão do protocolo é designada de versão 4, ou IPv4. O IPv6 tem endereçamento de origem e destino de 128 bits, oferecendo mais endereçamentos que os 32 bits do IPv4.
Índice |
[editar] Formato do Cabeçalho do IPv4
+ | 0 - 3 | 4 - 7 | 8 - 15 | 16 - 18 | 19 - 31 | |||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | Versão | Tamanho do cabeçalho |
Tipo de Serviço (ToS) (agora DiffServ e ECN) |
Comprimento (pacote) |
||||||||||||||||||||||||||||
32 | Identificador | Flags | Offset | |||||||||||||||||||||||||||||
64 | Tempo de Vida (TTL) | Protocolo | Checksum | |||||||||||||||||||||||||||||
96 | Endereço origem | |||||||||||||||||||||||||||||||
128 | Endereço destino | |||||||||||||||||||||||||||||||
160 | Opções | |||||||||||||||||||||||||||||||
192 | Dados |
- Versão: O primeiro campo do header (ou cabeçalho) de um datagrama IPv4 é o campo de version (ou versão) de 4 bits.
- IHL: O segundo campo, de 4 bits, é o IHL (acrónimo para Internet Header Length, ou seja, Comprimento do Cabeçalho da Internet) com o número de words de 32 bits no cabeçalho IPv4. Como o cabeçalho IPv4 pode conter um número variável de opções, este campo essencialmente especifica o offset para a porção de dados de um datagrama IPv4. Um cabeçalho mínimo tem 20 bytes de comprimento, logo o valor mínimo em decimal no campo IHL seria 5.
- Tipo de Serviço: No RFC 791, os 8 bits seguintes são alocados para um campo tipo de Serviço (ToS) agora DiffServ e ECN. A intenção original era para um host especificar uma preferência para como os datagramas poderiam ser manuseados assim que circulariam pela rede. Por exemplo, um host pode definir o campo de valores do seu ToS dos datagramas IPv4 para preferir pequeno desfasamento de tempo (ou "delay"), enquanto que outros podem preferir alta fiabilidade. Na prática, o campo ToS não foi largamente implementado. Contudo, trabalho experimental, de pesquisa e desenvolvimento se focou em como fazer uso destes oito bits. Estes bits têm sido redefinidos e mais recentemente através do grupo de trabalho do DiffServ na IETF e pelos pontos de código do Explicit Congestion Notification (ECN) codepoints (ver RFC 3168).
- Tamanho Total: O campo de 16 bits seguinte do IPv4 define todo o tamanho do datagrama, incluindo cabeçalho e dados, em bytes de 8 bits. O datagrama de tamanho mínimo é de 20 bytes e o máximo é 65535 (64 Kbytes). O tamanho máximo do datagrama que qualquer host requer para estar apto para manusear são 576 bytes, mas os hosts mais modernos manuseiam pacotes bem maiores.
Por vezes, as subredes impõem restrições no tamanho, em cada caso os datagramas têm que ser fragmentados. A fragmentação é manuseada quer no host quer no switch de pacotes no IPv4, e apenas no host no caso do IPv6.
- Identificador: O campo seguinte de 16 bits é um campo de identificação. Este campo é usado principalmente para identificar fragmentos identificativos do datagrama IP original. Alguns trabalhos experimentais sugerem usar o campo IP para outros propósitos, tais como adicionar pacotes para levar a informação para datagrama, de forma a que ajude a pesquisar datagramas para trás com endereços fonte falsificados.
- Flags: O campo de 3 bits que segue é usado para controlar ou identificar fragmentos.
- Offset: O campo offset do fragmento tem 13 bits, e permite que um receptor determine o sítio de um fragmento em particular no datagrama IP original.
- Tempo de Vida: Um campo de 8 bits, o TTL (time to live, ou seja, tempo para viver) ajuda a prevenir que os datagramas persistam (ex. andando aos círculos) numa rede. Historicamente, o campo TTL limita a vida de um datagrama em segundos, mas tornou-se num campo de contagem de hops. Cada switch de pacotes (ou router) que um datagrama atravessa decrementa o campo TTL em um valor. Quando o campo TTL chega a zero, o pacote não é seguido por um switch de pacotes e é descartado.
- Protocolo: Um campo de Protocolo de 8 bits segue-se. Este campo define o protocolo seguinte usado numa porção de dados de um datagrrama IP. A Internet Assigned Numbers Authority mantém uma lista de números de protocolos. Os protocolos comuns e os seus valores decimais incluem o Protocolo ICMP (Internet control message protocol, ou seja, Protocolo de controlo de mensagens da Internet) (1), o Protocolo TCP (Transmission Control Protocol, ou seja, Protocolo de controlo de transmissão) (17).
- Checksum: O campo seguinte é um campo de verificação (checksum) para o cabeçalho do datagrama IPv4. Um pacote em trânsito é alterado por cada router (hop) que atravesse. Um desses routers pode comprometer o pacote, e o checksum é uma simples forma de detectar a consistência do cabeçalho. Este valor é ajustado ao longo do caminho e verificado a cada novo hop. Envolve apenas verificação do cabeçalho (não dos dados).
- Endereço de origem/destino: A seguir ao campo de verificação, seguem-se os endereço de origem e de destino, de 32 bits cada um. Note que os endereços IPv6 de origem e destino são de 128 bits cada.
- Opções: Campos do cabeçalho adicionais (chamados de options, opções) podem seguir o campo do endereço de destino, mas estes não são normalmente usados. Os campos de opção podem ser seguidos de um campo de caminho que assegura que os dados do utilizador são são alinhados numa fronteira de words de 32 bits. (No IPv6, as opções movem-se fora do cabeçalho standard e são especificados pelo campo Next Protocol, semelhante à função do campo "Protocolo" no IPv4). A seguir, três exemplos de opções que são implementadas e aceitas na maioria dos roteadores:
Security (Especifica o nível de segurança do datagrama (usado em aplicações militares)), Timestamp (Faz com que cada roteador anexe seu endereço e seu timestamp (32 bits), que serve para depuração de algoritmos de roteamento) e Record route (Faz com que cada roteador anexe seu endereço).
[editar] Endereçamento IPv4 e routing
Talvez os aspectos mais complexos do IP sejam o endereçamento e o routing. O endereçamento define como os endereços IP dos hosts finais são atríbuidos e como as subredes dos endereços de IP dos hosts são divididos e agrupados. O routing IP é feito por todos os hosts, mas mais comumente por routers de rede, que tipicamente usam quer protocolos IGP (do inglês, Interior Gateway Protocol) ou protocolos EGP (do inglês, External Gateway Protocol) para ajudar na leitura de datagramas IP que reencaminhem decisões através de IPs em redes ligadas. Talvez o aspecto mais complexo do protocolo Internet (IP) sejam o endereçamento e routing.
[editar] Ver também
[editar] Bibliografia
- RFC 791 - Internet Protocol (inglês)
- RFC 3168 - Explicit congestion notification (inglês)
- RFC 1883 - Internet Protocol, Version 6 (inglês)
- Internet Assigned Numbers Authority (IANA) (inglês)