sexta-feira, 24 de fevereiro de 2012

O Protocolo IPv4

O Papel do IPv4

Conforme mostra a figura, os serviços da camada de rede implementados pelo conjunto des protocolos TCP/IP constituem o Internet Protocol (IP). Atualmente, a versão 4 do IP (IPv4) é a versão mais utilizada. Este é o único protocolo da camada 3 usado para levar dados de usuários através da Internet e é o foco do CCNA. Portanto, ele será o exemplo que usaremos para os protocolos da camada de rede neste curso.

A versão 6 do IP (IPv6) foi desenvolvida e está sendo implementada em algumas áreas. O IPv6 vai operar simultaneamente com o IPv4 e poderá substituí-lo no futuro. Os serviços oferecidos pelo IP, bem como a estrutura e o conteúdo dos cabeçalhos do pacote, são especificados tanto pelo protocolo IPv4 quanto pelo IPv6. Estes serviços e estrutura de pacotes são usados para encapsular os datagramas UDP ou segmentos TCP para seu transporte através de uma conexão entre redes.

As características de cada protocolo são diferentes. O entendimento destas características permitirá que você compreenda o funcionamento dos serviços descritos por este protocolo.

O Internet Protocol foi elaborado como um protocolo com baixo overhead. Ele somente fornece as funções necessárias para enviar um pacote de uma origem a um destino por um sistema de redes. O protocolo não foi elaborado para rastrear e gerenciar o fluxo dos pacotes. Estas funções são realizadas por outros protocolos de outras camadas.

Características básicas do IPv4:
  • Sem conexão - Nenhuma conexão é estabelecida antes do envio dos pacotes de dados.
  • Melhor Esforço (não confiável) - Nenhum cabeçalho é usado para garantir a entrega dos pacotes.
  • Independente de Meios Físicos - Opera independentemente do meio que transporta os dados.

Clique na imagem para ampliar

Serviço Sem Conexão

Um exemplo de comunicação sem conexão é enviar uma carta a alguém sem notificar o destinatário com antecedência. Conforme mostra a figura, o serviço de correios ainda recebe a carta e a entrega ao destinatário. As comunicações de dados sem conexão funcionam sob o mesmo princípío. Os pacotes IP são enviados sem notificar o host final de que eles estão chegando.

Os protocolos orientados a conexão, como o TCP, requerem que sejam trocados dados de controle para estabelecer a conexão, assim como campos adicionais no cabeçalho da PDU. Em razão do IP ser sem conexão, ele não requer uma troca inicial de informações de controle para estabelecer uma conexão entre as extremidades antes do envio dos pacotes, nem requer campos adicionais no cabeçalho da PDU para manter esta conexão. Este processo reduz muito o cabeçalho IP.

Entretanto, a entrega de pacotes sem conexão pode resultar na chegada dos pacotes ao destino fora de seqüência. Se a entrega de pacotes foi feita fora de ordem ou ocorreu a falta de pacotes, isso criará problemas para a aplicação que usará os dados, os serviços das camadas superiores terão que resolver estas questões.

Clique na imagem para ampliar


Clique na imagem para ampliar

Serviço de Melhor Esforço (não confiável)

O protocolo IP não onera o serviço IP ao proporcionar confiabilidade. Em comparação com um protocolo confiável, o cabeçalho IP é menor. O transporte destes cabeçalhos menores requer menos overhead. Menos overhead significa menos atraso na entrega. Esta característica é desejável para um protocolo da camada 3.

A missão da camada 3 é transportar os pacotes entre os hosts, e ao mesmo tempo sobrecarregar a rede o menos possível. A camada 3 não tem preocupações nem ciência sobre o tipo de comunicação contida dentro de um pacote. Esta responsabilidade é papel das camadas superiores, conforme necessário. As camadas superiores podem decidir se a comunicação entre serviços precisa de confiabilidade e se esta comunicação pode tolerar os requisitos de confiabilidade do overhead.

O IP geralmente é considerado um protocolo não confiável. Neste contexto, não confiável não significa que o IP trabalhe adequadamente algumas vezes e não funcione bem outras vezes. Isso também não quer dizer que ele não seja adequado como protocolo de comunicação de dados. O significado de não confiável é simplesmente que o IP não possui a capacidade de gerenciar e recuperar pacotes não entregues ou corrompidos.

Como os protocolos de outras camadas conseguem gerenciar a confiabilidade, o IP consegue funcionar com grande eficiência na camada de rede. Se incluíssemos um cabeçalho de confiabilidade em nosso protocolo da camada 3, as comunicações que não requerem conexões ou confiabilidade seriam sobrecarregadas com o consumo de largura de banda e o atraso produzido por este cabeçalho. No conjunto TCP/IP, a camada de transporte pode escolher entre TCP ou UDP, com base nas necessidades de comunicação. Assim como com todo o isolamento de camadas proporcionado pelos modelos de rede, deixar a decisão sobre confiabilidade para a camada de transporte torna o IP mais adaptável e fácil de se acomodar com diferentes tipos de comunicação.

O cabeçalho de um pacote IP não inclui campos necessários para uma entrega de dados confiável. Não há confirmações da entrega de pacotes. Não há controle de erros para os dados. Também não exite nenhuma forma de rastreamento de pacotes, e por isso não há possibilidade de retransmissão de pacotes.

 
Clique na imagem para ampliar

Independente do Meio Físico

A camada de rede também não fica sobrecarregada com as características do meio físico em que os pacotes serão transportados. O IPv4 e o IPv6 operam independentemente do meio físico que transporta os dados nas camadas inferiores da pilha de protocolo. Conforme mostra a figura, qualquer pacote IP individual pode ser passado eletricamente por cabo, como os sinais ópticos nas fibras, ou sem fio como sinais de rádio.

É responsabilidade da camada de Enlace de Dados do OSI pegar um pacote IP e prepará-lo para transmissão pelo meio físico de comunicação. Isso quer dizer que o transporte de pacote IP não está limitado a nenhum meio físico particular.

Porém, existe uma característica de grande importância do meio físico que a camada de rede considera: o tamanho máximo da PDU que cada meio físico consegue transportar. Esta característica é chamada de Maximum Transmition Unit (MTU). Parte das comunicações de controle entre a camada de enlace de dados e a camada de rede é o estabelecimento de um tamanho máximo para o pacote. A camada de enlace de dados envia a MTU para cima para a camada de rede. A camada de rede determina então o tamanho de criação dos pacotes.

Em alguns casos, um dispositivo intermediário (geralmente um roteador) precisará dividir o pacote ao enviá-lo de um meio físico para outro com uma MTU menor. Este processo é chamado fragmentação do pacote ou fragmentação.

Links
RFC-791 http://www.ietf.org/rfc/rfc0791.txt


Clique na imagem para ampliar

Empacotando a PDU da camada de transporte

O IPv4 encapsula ou empacota o segmento ou datagrama da camada de tranpsorte para que a rede possa entregá-lo ao host de destino. Clique nas etapas da figura para visualizar este processo. O encapsulamento IPv4 permanece no lugar desde o momento em que o pacote deixa a camada de rede do host de origem até que ele chegue à camada de rede do host de destino.

O processo de encapsulamento de dados pela camada possibilita que os serviços nas diferentes camadas se desenvolvam e escalem sem afetar outras camadas. Isso signfiica que os segmentos da camada de transporte podem ser imediatamente empacotados pelos protocolos existentes na camada de rede, como o IPv4 ou o IPv6, ou por qualquer novo protocolo que venha a ser desenvolvido no futuro.

Os roteadores podem implementar estes diferentes protocolos de camada de rede para que operem simultaneamente em uma rede entre os mesmos hosts ou entre hosts diferentes. O roteamento realizado por estes dispositivos intermediários considera somente os conteúdos do cabeçalho do pacote que encapsula o segmento.

Em todos os casos, a porção de dados do pacote (ou seja, a PDU encapsulada da camada de transporte) permanece inalterada durante os processos da camada de rede.

Links: RFC-791 http://www.ietf.org/rfc/rfc0791.txt




Cabeçalho do IPv4

Conforme mostra a figura, um protocolo IPv4 define muitos campos diferentes no cabeçalho do pacote. Estes campos contêm valores binários que os serviços IPv4 usam como referência ao enviarem pacotes através da rede.

Este cursos abrangerá estes 6 campos-chave:
  • Endereço IP de Origem
  • Endereços IP de Destino
  • Tempo de Vida ou Time-to-Live (TTL)
  • Tipo de Serviço ou Type-of-Service (ToS)
  • Protocolo
  • Deslocamento de Fragmento
Endereços IP de Destino

O Endereço IP de Destino contém um valor binário de 32 bits que representa o endereço do host de destino do pacote da camada 3.

Endereço IP de Origem

O Endereço IP de Origem contém um valor binário de 32 bits que representa o endereço do host de origem do pacote da camada 3.

Tempo de Vida

O Tempo de Vida (TTL) é um valor binário de 8 bits que indica o "tempo de vida" restante do pacote. O valor TTL diminui em pelo menos um a cada vez que o pacote é processado por um roteador (ou seja, a cada salto). Quando o valor chega a zero, o roteador descarta ou abandona o pacote e ele é removido do fluxo de dados da rede. Este mecanismo evita que os pacotes que não conseguem chegar a seus destinos sejam encaminhados indefinidamente entre roteadores em um loop de roteamento. Se os loops de roteamento tivessem permissão para continuar, a rede ficaria congestionada com os pacotes de dados que nunca chegariam a seus destinos. A diminuição do valor de TTL a cada salto assegura que ele chegue a zero e que o pacote com um campo TTL expirado seja descartado.

Protocolo
O valor binário de 8 bits indica o tipo de payload de dados que o pacote está carregando. O campo Protocolo possibilita que a camada de rede passe os dados para o protocolo apropriado das camadas superiores.

Alguns exemplos de valores:
  • 01 ICMP
  • 06 TCP
  • 17 UDP
Tipo de Serviço

O campo Tipo de Serviço contém um valor binário de 8 bits que é usado para determinar a prioridade de cada pacote. Este valor permite que um mecanismo de Qualidade de Serviço (QoS) seja aplicado aos pacotes com alta prioridade, como os que carregam dados de voz para telefonia. O roteador que processa os pacotes pode ser configurado para decidir qual pacote será encaminhado com base no valor do Tipo de Serviço.

Deslocamento de Fragmento

Conforme mencionado anteriormente, um roteador pode precisar fragmentar um pacote ao encaminhá-lo de um meio físico para outro que tenha uma MTU menor. Quando ocorre a fragmentação, o pacote IPv4 usa o campo Deslocamento de Fragmento e a flag MF no cabeçalho IP para reconstruir o pacote quando ele chega ao host de destino. O campo deslocamento de fragmento identifica a ordem na qual o fragmento do pacote deve ser colocado na reconstrução.

Flag Mais Fragmentos

A flag Mais Fragmentos (MF) é um único bit no campo Flag usado com o Deslocamento de Fragmentos na fragmentação e reconstrução de pacotes. O bit da flag Mais Fragmentos é configurado, o que significa que ele não é o último fragmento de um pacote. Quando um host de destino vê um pacote chegar com MF = 1, ele examina o Deslocamento de Fragmentos para ver onde este fragmento deve ser colocado no pacote reconstruído. Quando um host de destino recebe um quadro com MF = 0 e um valor diferente de zero no Deslocamento de Fragmentos, ele designa este fragmento como a última parte do pacote reconstruído. Um pacote não fragmentado possui todas as iformações de fragmentação iguais a zero (MF = 0, deslocamento de fragmentos = 0).

Flag Não Fragmentar

A flag Não Fragmentar (DF) é um único bit no campo Flag que indica que a fragmentação do pacote não é permitida. Se o bit da flag Não Fragmentar for configurado, a fragmentação do pacote NÃO será permitida. Se um roteador precisar fragmentar um pacote para permitir que ele passe para a camada de enlace de dados e o bit DF estiver definido como 1, o roteador descartará o pacote.

Clique na imagem para ampliar

Links:
RFC791 http://www.ietf.org/rfc/rfc0791.txt 

Para uma lista completa de valores do campo Número de Protocolo IP
http://www.iana.org/assignments/protocol-numbers 

Outros Campos do Cabeçalho IPv4

Versão - Contém o número da versão IP (4).
Comprimento do Cabeçalho (IHL) - Especifica o tamanho do cabeçalho do pacote.
Comprimento do Pacote - Este campo fornece o tamanho total do pacote em bytes, incluindo o cabeçalho e os dados.
Identificação - Este campo é usado principalmente para identificar unicamente os fragmentos de um pacote IP original.
Checksum do Cabeçalho - O campo de checksum é usado para a verificação de erros no cabeçalho do pacote.
Opções - Há uma provisão para campos adicionais no cabeçalho IPv4 para oferecer outros serviços, mas eles raramente são utilizados.
Clique na imagem para ampliar

Fonte: Cisco

2 comentários: