Escolar Documentos
Profissional Documentos
Cultura Documentos
TRABALHO
Fragmentao de Datagramas TCP/IP
A internet trabalha com vrios tipos de protocolos na camada de enlace (logo abaixo da
camada de rede) onde os comprimentos dos datagramas variam. A capacidade de receber o datagrama de
um determinado tamanho se chama Maximum Transfer Unit (MTU). Quando um roteador recebe um
datagrama e percebe que o roteador de destino tem um MTU menor que o comprimento do datagrama
(cabealho + dados), ele tem que fragment-lo em vrios datagramas menores, chamados de fragmentos,
para poder transmit-lo.
A figura abaixo representa um datagrama IP com todos os seus campos especificados em bits:
O tamanho do cabealho ocupa 20 bytes e a rea dos dados deve possuir no mximo 65.534
bytes.
Quando um fragmento criado ele recebe um nmero de identificao (ID), este nmero ser
utilizado para identificar todos os fragmentos que pertenam a um mesmo datagrama. O campo flag
identifica se o fragmento o ltimo a ser transmitido (0) ou no (1). O campo deslocamento (offset) indica a
poro de dados enviado neste fragmento em relao ao datagrama original. Todos os fragmentos possuem
o cabealho igual ao do datagrama original (de 20 bytes).
Flag: ser 0 (zero) somente no ltimo fragmento, nos demais ser sempre 1.
Offset: deve-se primeiro calcular seu valor atravs da frmula (TAM_AREA_DADOS/8). O valor
obtido dever ser utilizado para calcular o offset de cada fragmento, atravs da frmula:
[VALOR_OFFSET * (NUMERO_FRAGMENTO 1)]. No exemplo, o valor obtido foi 185 (1480/8),
dai calcula-se o offset de cada fragmento.
Desenvolva um programa em C++ que represente, atravs de uma estrutura de dados
Tamanho do datagrama com valor maior que 30 e menor que 2 16 - 1 (65.535) bytes, j
incluindo os 20 bytes do cabealho;
MTU da rede.
Sada:
Para cada fragmento devero ser exibidas as seguintes informaes:
nmero do fragmento;
Identificao (ID)
Offset
Flag