Datagramas

O protocolo IP envia informação em forma de datagramas.

Encapsulamento

Cada bloco de bytes, o protocolo IP concatena um header, é esta concatenação que forma o IP Datagrama.

Cada IP Datagrama é entre à camada MAC de baixo para ser enviado para a rede.

Em cada rede a MAC layer frame é composta por um campo header e por um campo data.

No campo data do MAC é encapsulado o IP Datagrama.

Formato

IP Header

Tem um tamanho total de 20 bytes

Os últimos dois campos obrigatório contem o IP origem e o IP destino

Campos

  • Version (4 bits): versão do protocolo de IP

  • Header length (4 bits): tamanho do header em múltiplos de 4 bytes

  • Service type (1 byte): tipo de serviço do datagrama de IP (default é 0x00)

  • Total length (2 bytes): tamanho do datagrama de IP (header + data), o tamanho tem sempre de ser menor que o MTU do MAC layer frame onde vai ser encapsulado

  • Identificação (2 bytes): o valor atribuído ao host original do IP datagrama

  • Flags (3 bits):

    • 1 bit é reservado para uso futuro

    • 2 bit é o do not fragment bit, e está a 1 se a origem não permite que o datagrama de IP seja fragmentado

    • 3 bit é o last fragment bit, irá estar a 0 se o IP datagrama onde se encontra for o último fragmento de um IP datagrama

  • Fragment Offset (13 bits): posição (em múltiplos de 8 bytes) deste fragmento no fragmento original do IP datagrama. Este campo indica quantos bytes estão na totalidade dos fragmentos anteriores

  • Time to Live (1 byte): Representa o número de hops máximos que este pacote (IP datagrama) pode dar entre routers antes de ser descartado. Cada router por onde passa subtrai 1 a este valor

  • Protocol (1 byte): especifica a camada de protocolo mais alta a que o data field pertence

  • Header Checksum (2 bytes): resultado da soma (em words de 16 bits) dos outros campos do header, permite detetar erros há chegada

MTU - Maximum Transmission Unit - é o tamanho máximo do data field das frames do seu MAC layer

Data

Qualquer conteúdo que aqui seja transportado

Fragmentação e reassemblagem em IP

Acontece que o IP datagrama for maior que o MTU da rede, o pacote terá de ser fragmentado, isto poderá ser feito pelo host ou pelo router

  1. O campo do data é segmentado de forma a que os seus blocos mais o header não seja maior que o MTU. Cada bloco mais um header vai formar um IP datagrama

  2. O campo de identificação dos blocos será igual entre todos

  3. O campo de offset será byte a partir do inicio do primeiro pacotes

  4. A flag do ultimo pacote será 1 para identificar que é o último, todos os outros a flag será 0

Last updated