Juliana Jenny Kolb
Home > Redes de Computadores > Modelos de Arquitetura de Redes > Modelo OSI > Modelo TCP/IP
Protocolo IP, IPV4 e IPV6
Veja também:
Protocolo IP
IP (Internet Protocol) é um protocolo de comunicação usado entre todas as máquinas em rede para encaminhamento dos dados.
Tanto no Modelo TCP/IP, quanto no Modelo OSI, o importante protocolo da internet IP está na camada intitulada camada de rede.
Funcionamento
Os dados em uma rede IP que são enviados em blocos referidos como ficheiros. Em particular, no IP nenhuma definição é necessária antes do nó tentar enviar ficheiros para um nó 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 nós), também podem chegar duplicados, ou podem ser perdidos por inteiro. Se a aplicação requer maior confiabilidade, esta é adicionada na camada de transporte.
Os roteadores são usados para reencaminhar datagramas IP através das redes interconectadas na segunda camada (enlace). 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, o desempenho observado 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.)
Protocolo IPV4
Existem duas versões do protocolo IP: o IPV4 é a versão atual, que utilizamos na grande maioria das situações, enquanto o IPV6 é a versão atualizada, que prevê um número maior de endereços e deve começar a se popularizar a partir do esgotamento dos endereços IPV4.
Formato Datagrama
Um pacote na camada de rede é denominado datagrama que desempenha um papel fundamental na Internet. O formato datagrama IPv4 é mostrado abaixo:
- Versão – Possui 4 bits e define a versão do protocolo IP do datagrama. Através desta informação o roteador poderá saber como tratar o restante do datagrama.
- Comprimento do cabeçalho – Possui 4 bits, como o no IPv4 possui um número variado de opções este campo permita saber onde realmente começam os dados.
- Tipo de Serviço (Type of Service TOS)- Possui 8 bits e é utilizado para diferenciar os datagramas (baixo atraso, alta vazão e confiabilidade).
- Comprimento do Datagrama – Possui 16 bits é o comprimento total do datagrama, o tamanho máximo teórico do datagrama IP é 65.535 bytes.
- Identificador, flags, deslocamento de fragmentação – Estes três campos tem a ver com a fragmentação IP.
- Tempo de Vida – Este campo serve para que o datagrama não fique circulando eternamente na rede, cada vez que passa por um roteador ele é decrementado de ume quando chegar a zero ele é descartado.
- Protocolo – este campo é utilizado somente quando chega em seu destino, ele serve para identificar qual protocolo da camada de transporte ele será encaminhado.
- Soma de verificação de Cabeçalho – Ela ajuda o roteador na detecção de erros do datagrama. A somo é tratada a cada 2 bytes e funciona da mesma forma da soma de verificação do protocolo UDP. Casa vez que o datagrama passa por um roteador a soma de verificação é calculada novamente devida a mudança de alguns campos como o Tempo de vida. Quando é detectado algum erro o datagrama é descartado pelo roteador.
- Endereço IP de 32 bits (4 blocos de 8 bits) da Fonte – Este campo armazena o endereço IP do hospedeiro que gerou o datagrama
- Endereço IP de 32 bits (4 blocos de 8 bits) do Destino – Este campo armazena o endereço IP do hospedeiro de destino do datagrama.
- Opções – O campo opções permite que o cabeçalho IP seja ampliado, ele é raramente utilizado e nem é recomendada a sua utilização.
- Dados – É o mais importante campo do datagrama é onde contém o seguimento da camada de transporte.
Fragmentação do datagrama IPV4
A internet trabalha com vários tipos de protocolos na camada de enlace (logo abaixo da camada de rede) onde os comprimentos dos datagramas variam. A capacidade de de receber o datagrama de determinado tamanho se chama Unidade Máxima de Transmissão -MTU. Quando um roteador recebe um datagrama e percebe que a o roteador de destino tem um MTU menor que o comprimento do datagrama, ele tem que fragmentá-lo em vários datagramas menores para que possa transmiti-lo, estes datagramas menores são denominados fragmentos.
Para fragmentar o datagrama o roteador utiliza os campos identificação, flag e deslocamento do cabeçalho. Quando um datagrama é criado no remetente ele recebe um número de identificação, este número será utilizado para identificar todos os fragmentos que pertençam a este datagrama, o campo flag identifica se o fragmento é o último (0) ou não (1) e o campo deslocamento mostra que parte do datagrama este fragmento começa. Todos os fragmentos possuem o restante do cabeçalho igual ao datagrama original.
Lembrando que cada novo fragmento possui um novo cabeçalho.
Se tivermos de fragmentas um datagrama de 4000 bytes para um MTU de 1500 bytes, iremos pegar os dados do datagrama que tem 3980 bytes (20bytes são do cabeçalho) e iremos gerar dois fragmento contendo 1480 bytes de dados e um fragmento contendo 1020 bytes de dados no final teremos dois fragmentos de 1500 bytes (1480 de dados e 20 de cabeçalho) e um de 1040 bytes (1020 de dados e 20 de cabeçalho). A tabela abaixo especifica o exemplo dado.
Fragmento |
Tamanho do campo de dados* | Id | Deslocamento** | flag | Tamanho do Fragmento* |
1º | 1480 | 84 | 0 | 1 | 1500 |
2º | 1480 | 84 | 185 | 1 | 1500 |
3º | 1020 | 84 | 370 | 0 | 1040 |
*unidade bytes
** haverá um deslocamento de x*8, se o deslocamento for 185 significa de a posição inicial do primeiro byte de dados será 185*8=1480.
Endereçamento IPV4
Cada protocolo de internet “IP” possui um endereço na internet com o comprimento de 32 bits possibilitando cerca de 4 bilhões de combinações de endereçamento possíveis. Estes endereços são descritos em notação decimal onde cada byte é separado por um ponto.
Quando um grupo de computadores ligados a uma mesma interface de um computado possui uma mesma faixa de IP, exemplo 255.2.1.1, 255.2.1.3, 255.2.1.47 a chamamos de sub-rede, o endereçamento IP designa um endereço a essa sub-rede: 255.2.1.0/24,onde o /24 conhecido como máscara de rede, indica que os 24 bits mais a esquerda dos 32 bits definem o endereço da sub-rede.
Sub mascara | Número Binário Sub marcara | IP possível | IP possível |
255.240.2.0/24 | 11111111.11111111.11111111.00000000 | 255.240.2.57 | 255.240.2.57 |
255.240.0.0/16 | 11111111.11111111.00000000.00000000 | 255.240.195.58 | 255.240.36.58 |
Os bits que estão com o algarismo “1” não podem ser alterados para selecionar o um possível IP, somente os bits com o algarismo “0”podem ser alterados. Se tivermos uma sub-mascara 255.240.80.0/30 teremos uma sequência binária 11111111.11111111.11111111.11111100 onde só poderemos ter 4 IPs disponíveis já que temos somente os dois últimos bits para trabalhar nossas opções para este exemplo seria 255.240.80.252, 255.240.80.253, 255.240.80.254 e 255.240.80.255.
Classes do endereçamento IP:
- Classe A: com 128 segmentos/redes, que poderiam ser atribuídos individualmente às entidades que deles necessitassem, com aproximadamente 16 milhões de endereços cada. Essa classe era classificada como /8, pois os primeiros 8 bits representavam a rede, ou segmento, enquanto os demais poderiam ser usados livremente. Ela utilizava o espaço compreendido entre os endereços 00000000.*.*.* (0.*.*.*) e 01111111.*.*.* (127.*.*.*).
- Classe B: com aproximadamente 16 mil segmentos de 64 mil endereços cada. Essa classe era classificada como /16. Ela utilizava o espaço compreendido entre os endereços 10000000.0000000.*.* (128.0.*.*) e 10111111.11111111.*.* (191.255.*.*).
- Classe C: com aproximadamente 2 milhões de segmentos de 256 endereços cada. Essa classe era classificada como /24. Ela utilizava o espaço compreendido entre os endereços 11000000.0000000.00000000.* (192.0.0.*) e 11011111.11111111.11111111.* (213.255.255.*).
Os 32 blocos /8 restantes foram reservados para Multicast e para a IANA (Internet Assigned Numbers Authority), entidade que controla a atribuição global dos números na Internet.
Para saber mais sobre o assunto, acesse:
Protocolo IPV6
IPv6 é a versão mais atual do Protocolo de Internet. Originalmente oficializada em 6 de junho de 2012, é fruto do esforço do IETF para criar a “nova geração do IP” (IPng: Internet Protocol next generation), cujas linhas mestras foram descritas por Scott Bradner e Allison Marken, em 1994, na RFC 1752. Sua principal especificação encontra-se na RFC 2460.
O protocolo está sendo implantado gradativamente na Internet e deve funcionar lado a lado com o IPv4, numa situação tecnicamente chamada de “pilha dupla” ou “dual stack“, por algum tempo.
A longo prazo, o IPv6 tem como objetivo substituir o IPv4, que suporta somente cerca de 4 bilhões(escala curta)/mil milhões(escala longa) (4×109) de endereços IP, contra cerca de 340 undecilhões(escala curta)/sextiliões(escala longa) (3,4×1038) de endereços do novo protocolo.
Novidades nas especificações do IPv6
- Espaço de Endereçamento. Os endereços IPv6 têm um tamanho de 128 bits.
- Autoconfiguração de endereço. Suporte para atribuição automática de endereços numa rede IPv6, podendo ser omitido o servidor de DHCP a que estamos habituados no IPv4.
- Endereçamento hierárquico. Simplifica as tabelas de encaminhamento dos roteadores da rede, diminuindo assim a carga de processamento dos mesmos.
- Formato do cabeçalho. Totalmente remodelados em relação ao IPv4: mais simplificado e eficiente.
- Cabeçalhos de extensão. Opção para guardar informação adicional.
- Suporte à qualidade diferenciada. Aplicações de áudio e vídeo passam a estabelecer conexões apropriadas tendo em conta as suas exigências em termos de qualidade de serviço (QoS).
- Capacidade de extensão. Permite adicionar novas especificações de forma simples.
- Encriptação. Diversas extensões no IPv6 permitem, à partida, o suporte para opções de segurança como autenticação, integridade e confidencialidade dos dados.
Tipos de endereços IPv6
Existem três tipos de endereços definidos no protocolo IPv6: Unicast, Anycast e Multicast. Diferente do protocolo IPv4 não existe não existe no IPv6 endereço Broadcast, responsável por direcionar um determinado datagrama a todos os dispositivos de um domínio, os endereços Multicast ficaram responsáveis por tal processo.
Unicast
Cada endereço corresponde a um dispositivo, são utilizados para comunicação entre dois nós por exemplo comunicação entre computadores em uma rede privada, telefones VoIPv6. Um pacote destinado a um endereço unicast é enviado diretamente para a interface associado ao endereço.
Os principais endereços de Unicast são:
- Global Unicast: Equivalente aos endereços públicos IPv4, são os endereços globalmente utilizáveis na internet, compõe-se de três partes: prefixo de roteamento global, identificação da sub-rede e a identificação da interface. Cada endereço foi criado para utilizar os primeiros 64 bits para identificar a rede e os últimos 64 para identificação da interface.
- Link local unicast: tem como característica os primeiros 10 bits (1111111010), serve para uso interno de um enlace, utiliza-se link local quando um nó se comunica com nós vizinhos, possui funções como auto-configuração de endereços e descoberta de vizinhos quando não há roteador, os roteadores não repassam pacotes cujo endereço ou destino seja deste tipo.
- Site-local unicast: tem como característica os primeiros 10 bits (1111111011), serve para uso interno de uma organização que não se comunicará com a internet, os roteadores não repassam pacotes cujo endereço ou destino seja deste tipo.
Anycast
Um pacote enviado para um endereço anycast, é enviado para a interface de menor distância do emissor, essa menor distância é calculada pelo protocolo de roteamento usado.
Os endereços anycast estão na mesma faixa de endereços do unicast e não existe diferença sintática entre eles, isto é, um endereço unicast atribuído a mais de uma interface se torna anycast. Este tipo de endereçamento é muito utilizado por serviços de rede como servidores DNS e proxies HTTP.
Multicast
Utilizados para identificar grupos de interfaces e cada interface pode pertencer a mais de um grupo. Cada pacote enviado a um endereço multicast é enviado a todas as interfaces do grupo.
Seu funcionamento é similar ao Broadcast, a única diferença é que na transmissão broadcast todos os dispositivos da rede sem exceção recebem o pacote, e na transmissão multicast apenas os dispositivos que pertencem a um grupo recebem o pacote.
Endereços multicast não devem ser usados como endereço de origem em um pacote. Esses endereços derivam de FF00::/8, o prefixo FF representa multicast, os demais 112 bits servem para identificar o grupo multicast a que pertencem.
Formato do datagrama IPv6
Um datagrama IPv6 é constituído por um cabeçalho base, ilustrado na figura que se segue, seguido de zero ou mais cabeçalhos de extensão, seguidos depois pelo bloco de dados.
O datagrama IPv6 possui uma estrutura mais simples e aprimorada do que a do IPv4, seu processamento por roteadores é mais rápido. .
Os seguintes campos são definidos no IPv6:
- Versão: Campo de 4 bits, a sequência 0110 é usada para IPv6.
- Classe de tráfego: Campo de 8 bits usado para identificar tipo de serviço.
- Rótulo de Fluxo: Campo de 20 bits que tem por objetivo marcar pacotes de um fluxo específico, com o objetivo de diferenciar esses pacotes na camada de rede.
- Comprimento de carga útil: Possui 16 bits e indica o tamanho total da área de dados do pacote.
- Próximo cabeçalho: Possui 8 bits e indica o tipo de informação que segue o cabeçalho base do IPv6. Como por exemplo o protocolo usado na camada de transporte: UDP ou TCP.
- Limite de saltos: Possui 8 bits e indica o número máximo de roteadores que um pacote pode passar até ser descartado. Em cada roteador que o pacote passa o valor é decrementado em uma unidade.