Modelo TCP/IP

O modelo TCP/IP foi criado a partir da necessidade da ARPANET de se adaptar às conexões via rádio e satélite.
Pode-se dizer que o modelo TCP/IP é uma descrição dos protocolos existentes, o que gera uma dependência entre o modelo e os protocolos.

Camadas: Alguns Protocolos:
4- Aplicação (DHCP, DNS, FTP, HTTP, SMTP, TELNET, IRC)
3- Transporte (TCP, UDP)
2- Internet* (IP - IPv4, IPv6)
1- Host-to-network**

*Também conhecida por Camada Netowork
Subdividida por alguns autores em: Data Link e Física

Camada Host-to-Network:

União das camadas Enlace (Data Link Layer) e Física (Physical Layer) do modelo OSI.

Camada Internet (Internet Layer ou Network Layer):

Trata o problema de enviar pacotes entre um único network e entre vários networks distintos (network de networks).
Define um formato oficial de pacote e um protoloco chamado IP.
É responsável pela entrega do pacote IP ao destino e por estabelecer a melhor rota, evitando congestionamento.

O Protocolo IP:

Datagrama IP:
Cabeçalho + Texto

Cabeçalho: quarda informações importantes sobre o pacote trocado (20 bytes fixos mais parte opcional variável).
O cabeçalho é subdividido nos seguintes campos (da esquerda pra direita):
->Versão: informa a versão do protocolo utlizado pelo datagrama.
->IHL: informa o tamanho do cabeçalho em palavras de 32 bits (no min 5 e no max 15 palavras).
->Tipo de Serviço: 3 bits de Precedência que variam de 0 a 7 e informam a prioridade (0 = normal, 7 = network control packet). E 3 bits para flag que informam ao host com o que se "preocupar" mais: D (Delay), T (Throughput) ou R (Reliability).
->Tamanho Total: informa o tamanho total do cabeçalho e dos dados (texto).
->Identificação: permite que o host saiba a qual datagrama um fragmento pertence. Todos os fragmentos de um datagrama tem a mesma identificação.
->Flag DF (Dont Fragment) - avisa para que nao haja fragmentação do datagrama - ou MF (More Fragment) - informa se seguem-se mais fragmentos após o datagrama.
->Offset do Fragmento: informa a qual parte no atual datagrama o fragmento pertence.
->Time to Live (TTL - tempo de vida): contador utilizado para limitar o tempo de vida do pacote. Tal contador é decrementado a cada salto e quando chega a zero o pacote é descartado e um pacote de aviso é enviado para o host.
->Protocolo: informa sob qual protocolo será tratado o datagrama após a chegada de todos os dados. Ex: TCP ou UDP.
->Header Checksum: detecta erros no cabeçalho.
->Endereço do Source: network number (endereço IP).
->Endereço de Destino: host number (endereço IP).
->Parte opcional para dados extras sobre o datagrama.

Endereço IP:
Um endereço IP é um número de 32 bits que identifica um hosts e seu network.
Os endereços IPs são divididos em 5 classes:
A- 0|7 bits que indicam o Network|24 bits que indicam o Host
B- 10|14 bits que indicam o Network|16 bits que indicam o Host
C- 110|21 bits que indicam o Network|8 bits que indicam o Host
D- 1110|28 bits que indicam o endereço de Multicast
E- 1111|28 bits reservados para uso futuro

Endereços IPs especiais:
0.0.0.0: Refere-se ao host local (this host)
0...0|Host Number: Refere-se a um host no network local (Assim não é necessário saber o seu Network Number, apenas a classe a que ele pertence
1111....111: Broadcast no network local
Network Number|11....111: Broadcast em todos os hosts de um determinado network
127.xxx.xxx.xxx : Loopback teste

Subnet:
Um network pode ser subdividido em partes menores que internamente funcionam como hosts (originando subnets), mas externamente são vistos como um único host. Normalmente, tem-se um roteador principal que está conectado aos roteadores "locais" que formam cada subnet.
Para identificar cada host de uma subnet, subdivide-se o Host Number em 2 partes: x bits representarão o Host Number de cada subnet e y bits representarão cada host interno a uma subnet. Sendo x+y igual ao número de bits reservados para representar o Host Number segundo a classe do endereço IP em questão.
Assim, gera-se uma máscara de subnet (subnet mask) para determinar os valores de x e y mencionados acima. A subnet mask é formada colocando 0s nos bits reservados para os hosts de cada subnet e 1s no resto. Assim, se cada subnet tem 10 bits reservados para hosts a subnet mask será 255.255.252.0 ou 255.255.252.0/22 que indicam que 22 bits (dos 32 que correspondem ao endereço IP) representam o network + subnet. Conclui-se entao que os 10 (32-22) bits finais representam o host de cada subnet.
A partir de um IP com network number "correto", para determinar a qual subnet o endereço IP corresponde, o roteador principal faz um AND entre o endereço IP dado e a subnet mask. Assim ele terá zerado o host number e terá apenas o Network Number + Subnet Number. Com esses dados, ele consulta na tabela qual roteador corresponde ao subnet number encontrado e envia o pacote.

NAT: Network Address Translation
A idéia básica da NAT é "economizar endereços IP" fornecendo um único endereço IP para um empresa, por exemplo, e internamente a empresa, cada máquina possui um IP próprio. Assim, ao enviar um pacote para "fora" da empresa, ele passa pela NAT Box onde o endereço interno da máquina que enviou o pacote é substituido pelo endereço IP da empresa. Além disso, para poder identificar qual máquina dentro da empresa fez o envio, o campo do cabeçalho TCP Source port é substituido por um índice na NAT Box que relaciona uma porta a cada IP interno.
Quando um pacote chega a NAT Box a Source port no cabeçalho TCP é extraido e usado como índice na tabela que mapeia envios no NAT Box. O endereço IP interno e a Source Port do TCP são inseridas no pacote. Então, refaz-se a checksum do endereço IP e do TCP e repassa-se o pacote para que o roteador da empresa entregue-o à máquina correspondente ao IP interno.

DHCP: Dynamic Host Configuration Protocol
//falta

Camada Transporte (Transport layer):

É responsável pelo "custo-benefício" do transporte do dado de uma máquina para outra, independente da parte física e do network em uso.
E também pelo controle de fluxo, fragmentação e controle de erro.

O Protocolo TCP:
É um protocolo de conexão orientada (connection-oriented). O que quer dizer que ele atua como uma "conexão via telefone":
1) É estabelecida uma conexão
2) Usa-se esta conexão
3) Finaliza-se a conexão
Tal protocolo também se responsabiliza pela ordem correta de chegada dos dados, corretude dos dados recebidos, reenvio de dados errados ou perdidos,
controle de fluxo e descarta dados duplicados.

O Protocolo UDP:
É um protocolo de conectividade (connectionless). Esse tipo de protocolo atua como um serviço de correio, onde cada mensagem possui os dados do destinatário
e trafega independente de outras mensagens.Não se preocupa com o sequenciamento da informação ou com o controle de fluxo.
Tal protocolo é mais utilizados em casos em que a chegada dos dados no tempo correto é mais importante do que a segurança do envio (ex: audio, video, voz por ip).

Camada Aplicação (Application layer):

A camada Aplicação trata de protocolos de alto nível tais como:
->FTP: File Transfer Protocol - Utilizado para transferir dados de um computador para outro em um network.
->SMTP: Simple Mail Transfer Protocol - Utilizado em tranferencia de e-mails.
->TELNET: TELecommunication NETwork - Permite que usuários de uma máquina "loggen" remotamente em uma outra.
->HTTP: Hypertext Transfer Protocol - Utilizado para tranferir informações pela internet.
->DNS:Domain Name System - Será explicado detalhadamente no final deste tópico.

Como o modelo TCP/IP nao trabalha com mais camadas entre a camada de transporte e a camada aplicação, usam-se (a partir de bibliotecas)
mais protocolos que atuam como as camadas de Apresentação e Sessão do Modelo OSI (OSI's presentation and session layer).

DNS: Domain Name System
DNS é um sistema de gerenciamento de nomes hierárquico e distribuído operando segundo duas definições:
->Examinar e atualizar seu banco de dados.
->Resolver nomes de servidores em endereços de rede (IPs).

Domain Name Space:
É uma árvore com os nomes dos domínios existentes. No nó raiz da árvore estão os domínios "top-level" (com, edu, gov, jp, br, us etc). E nos nós filhos
estao as subdivisões do "domínios pai" e assim vai até chegar nos nós folhas onde estão os domínios sem subdomínios.

Traduzindo um domínio em um endereço IP:
Conceitos necessários:
TTL (Time To Live): quanto tempo a resposta do DNS permanece válida para o "resolver" (cliente).
Caching Time: período de tempo que começa qundo ocorre uma modificação no arquivo DNS e termina após a quantidade máxima de tempo espicificada pelo TTL.

Quando uma aplicação necessita de um endereço IP ela envia um pedido ao DNS resolver que encontra-se no sistema operacional local. O resolver terá uma "cache" com as últimas consultas. Se o domínio procurado estiver na cache, ela responde ao aplicativo. Caso contrário, o resolver envia o pedido a um ou mais DNS Servers.
No caso da maioria dos usuários domésticos, o serviço de Internet determina a qual máguina se conectar (DNS Server). O usuário pode configurar o endereço do servidor manualmente ou permitir que o DHCP faça isso.

LDAP (Light-weight Directory Access Protocol)
//FALTA

Last edited Aug 11, 2008 at 2:48 PM by allinekobayashi, version 5

Comments

ledson Apr 10, 2009 at 4:43 PM 
òtimo resumo, vai facilitar meus estudos para próximos concursos , rs rs
;)