Para compreender os Conceitos Básicos Arquitetura TCP/IP, é importante entender que a arquitetura TCP/IP é definida como um conjunto de protocolos de comunicação entre dispositivos que se comunicam em uma rede, semelhante as divisões em camadas do modelo OSI.
Arquitetura TCP/IP
O nome TCP/IP é composto por uma combinação dos protocolos: o TCP (Transmission Control Protocol) e o Internet Protocol (IP).
O protocolo IP é responsável pela parte que controla e identifica os endereços dos equipamentos dentro de uma rede, para que os dados sejam enviados entre os equipamentos. Já, o protocolo TCP é o responsável pela entrega dos dados da comunicação realizada entre os equipamentos.
O protocolo IP determina o o equipamento de destino de uma mensagem, usando: o endereço IP, que é o endereço do computador, a máscara de sub-rede, que permite ao endereço IP especificar a parte do endereço que se refere à rede e o gateway que permite ao protocolo saber qual computador receberá o datagrama, caso o equipamento de destino não estiver na rede local.
Camadas
Dentro da Arquitetura TCP/IP, são apresentadas 4 camadas: Aplicação, Transporte, Rede e Interface de rede.
- Camada de Enlace:
- É responsável pelo envio dos datagramas formados pela camada de rede, bem como, responsável pelo mapeamento entre o endereço de identificação da camada de rede e o endereço físico da placa de rede. Cada máquina tem um identificador único chamado endereço MAC (Media Access Control ou do português Controle de Acesso de Mídia) ou endereço físico que permite distinguir uma máquina da outra, permitindo que mensagens específicas sejam enviadas para cada máquina.
- Camada de Rede (ou Inter-Rede):
- É a responsável por adicionar o cabeçalho no pacote de dado recebido da camada de Transporte, onde além de outros dados de controle, será adicionado o endereço IP do computador que está enviando os dados e o endereço IP do computador que vai receber estes dados.
- Camada de Transporte:
- É responsável em dividir os dados recebidos da camada de Aplicação em pacotes menores. Já quando está recebendo dados, tem a função de organizá-los para que a mensagem possa ser interpretada pela camada de Aplicação. Assim, como verificar se os dados estão íntegros.
- Camada de Aplicação:
- Realiza a comunicação entre os programas e os protocolos de transporte no TCP-IP. Utiliza protocolos de aplicação como exemplo: TELNET (terminal virtual); HTTP (Protocolo de Transferência de Hipertexto), FTP (Protocolo de Transferência de Arquivos) e SMTP (Protocolo de Transferência de Correio).
Datagrama Arquitetura TCP/IP
Um datagrama é a maneira como os dados trafegam em uma rede na forma de pacotes de dados. Consistem em dados encapsulados, ou seja, dados com cabeçalhos anexados que correspondem às informações sobre seu transporte.
Representação do Datagrama:
32 bits | ||||
---|---|---|---|---|
Versão (4 bits) | Comprimento de cabeçalho (4 bits) | Tipo de serviço (8 bits) | Comprimento total (16 bits) | |
Identificação (16 bits) | Bandeira (3 bits) | Desfasamento de fragmento (13 bits) | ||
Duração de vida (8 bits) | Protocolo (8 bits) | Soma de controle cabeçalho (16 bits) | ||
Endereço IP de origem (32 bits) | ||||
Endereço IP de destino (32 bits) | ||||
Dados |
- Versão (4 bits):
- versão do protocolo IP utilizada, usado para verificar a validade do datagrama, no caso deste estudo IPV4.
- Comprimento de cabeçalho ou IHL (4 bits):
- trata-se do número de palavras de 32 bits que constitui o cabeçalho.
- Tipo de serviço (8 bits):
- indica o modo ao qual o datagrama deve ser tratado.
- Comprimento total (16 bits):
- indica a dimensão total do datagrama em bytes, a dimensão desse campo é de 2 bytes e a dimensão total do datagrama não pode exceder 65.536 bytes.
- Identificação, bandeiras e deslocamento de fragmento:
- são campos que permitem a fragmentação dos datagramas.
- Tempo de vida ou TTL:
- este campo indica o número máximo de switches (roteadores) através dos quais o datagrama pode passar.
- este campo é reduzido a cada passagem no roteador, quando este atinge o valor crítico de zero, o roteador destrói o datagrama para evitar o o congestionamento da rede pelos datagramas perdidos.
- Protocolo:
- em codificação decimal, permite saber de que protocolo procede o datagrama. Exemplo: ICMP (1), IGMP (2), TCP (6) e UDP (17).
- A soma de controle do cabeçalho:
- contém um valor codificado de 16 bits que permite controlar a integridade do cabeçalho a fim de determinar se ele não foi alterado durante a transmissão.
- Endereço IP de origem ou fonte:
- endereço IP do computador emissor.
- Endereço IP de destino:
- endereço IP do destinatário da mensagem.
Fragmentação Datagramas
Supondo um datagrama de tamanho de 4000 bytes, com um enlace de saída com MTU (maximum transfer unit) de 1500 bytes, com cabeçalho padrão de 20 bytes.
Utilizando a fragmentação de um datagrama, pacote será fragmentado de acordo com os parâmetros apresentados:
Fragmentado | Bytes Totais | Bytes de Cabeçalho | Bytes de Dados | Flag | Offset do Fragmento |
1 | 1500 | 20 | 1480 | 1 | 0 (zero) |
2 | 1500 | 20 | 1480 | 1 | 185 |
3 | 1060 | 20 | 1040 | 0 | 370 |
Quanto a Flag, o último fragmento é reconhecido através do flag, que é definido como 0 (zero), ficando para os demais fragmentos o flag definido como 1 (um).
O primeiro offset será igual a zero. O segundo offset será igual a 0 + (Bytes de Dados / 8) = 0 + 1480/8 = 185. O terceiro offset será igual ao segundo offset (185) + (Bytes de dados / 8) = 185 + 1480 / 8 = 185 + 185 = 370.