O Modelo TCP/IP

Além do modelo ISO OSI, existe um outro modelo de referência para a implementação das camadas de uma rede, chamado modelo TCP/IP. Alguma leitora que tenha um conhecimento de redes um pouco melhor do que o meu pode argumentar dizendo que, ora bolas, TCP e IP são dois protocolos e não o nome de um modelo. Sim, estes são dois protocolos, mas por serem os principais protocolos usados no modelo, o nome deles foi adotado como o nome mesmo. É quase o que acontece com as marcas que viram sinônimo do próprio produto - gilete, xerox, cotonete.

Assim como o modelo ISO ISO, a função do modelo TCP/IP é a de definir um padrão de camadas a serem implementadas na arquitetura de uma rede. Uma das diferenças encontradas quando comparamos os dois modelos é a quantidade de camadas, que aqui são apenas quatro. Abaixo temos uma figura que ilustra a sua organização:



A camada host/rede tem a responsabilidade de enviar pacotes IP. Esta, infelizmente, não vou saber explicar aqui, pois o próprio livro diz que não há muita documentação a respeito dela. Palavras do autor: "Esse protocolo não é definido e varia de host para host e de rede para rede. Os livros e a documentação que tratam do modelo TCP/IP raramente descrevem este protocolo".

***


A camada inter-redes é o coração de toda a arquitetura do modelo. Ela tem a função de permitir que qualquer um possa enviar informações pela rede e garantir que estas informações sejam devidamente entregues, independentemente da rede de destino, mesmo que ela seja diferente.

Pelo fato de haver a necessidade de interligar várias redes diferentes, que falam "idiomas" diferentes, a camada inter-redes dita a regra de que toda informação a ser enviada deve ser dividida em pacotes antes de partir em direção ao seu destino, pacotes estes que são padronizados na própria especificação do modelo. O protocolo que define como são os pacotes e como os aplicativos da camada inter-rede vão se comunicar se chama Internet Protocol (IP).

É importante notar que o termo "Internet" aqui não tem nada a ver com a internet em si. Uma tradução possível para Internet Protocol seria "protocolo para interligar redes", e não "protocolo da internet". Ou seja, internet aqui não é substantivo, mas sim adjetivo (tal qual internacional, intersocial e interracial).

A tarefa de entregar os pacotes inclui várias responsabilidades para a camada inter-redes. Entre elas estão a de fazer o roteamento dos pacotes IP, ou seja, definir qual será a rota que eles tomarão para chegar ao seu destino; e também evitar que ocorram congestionamentos na rede, ou seja, saber que um certo percurso já está sendo muito usado e então redirecionar os pacotes IP para outro caminho menos obstruído.

***


Estas duas primeiras camadas têm a função principal de permitir a conversação entre dois equipamentos adjacentes na rede. Já através da camada de transporte, assim como acontece no modelo ISO OSI, é que os equipamentos de origem e destino fazem a sua conversação, a chamada conexão fim-a-fim.

Como forma de garantir a comunicação entre as duas máquinas que querem se comunicar, foram definidos dois protocolos diferentes: o TCP e o UDP.

O protocolo TCP (Transmission Control Protocol - Protocolo de Controle de Transmissão), como o próprio nome diz, é usado no controle da transmissão dos dados, garantindo que esta se dê de forma confiável, pois assegura a entrega de dados sem erros: se um pacote não chega ou se chega corrompido, o protocolo toma medidas para corrigir o problema. Além disso, o protocolo TCP também é responsável pelo controle do fluxo dos dados, impedindo que um transmissor rápido sobrecarregue um receptor lento. A maioria das aplicações usa este protocolo para transmitir seus dados: desde programas de email até programas de gerenciamento de downloads.

Para fazer uma metáfora, um AR enviado pelos Correios é exatamente isso. Você envia uma carta e pede para ser avisado de que ela chegou. Se seu AR não chegou depois de um tempo, você escreve outra e manda de novo. (Tudo bem, eu sei que você não manda outra: você liga para saber o que houve, mas deu pra entender, não deu?)

Já o protocolo UDP (User Datagram Protocol - Protocolo de Datagrama de Usuário) é usado na transmissão de informações de forma não confiável, não garantindo a entrega dos dados sem erros. A leitora talvez pergunte pra que alguém vai querer usar um protocolo que não transmite os dados de forma confiável, mas saiba que isso é muito mais comum do que se pode pensar: os programas de transmissão de áudio e vídeo usam este protocolo. Se não fosse assim, seria impraticável assistir a uma transmissão ao vivo de um show ou então ouvir uma rádio pela internet: o receptor indicaria a perda de um pacote, o transmissor iria mandá-lo de novo, e outro, e outro, interrompendo o vídeo a toda hora, e quando você finalmente terminasse de assistir ao show o artista já estaria em casa descansando.

Usando uma metáfora, as transmissões de rádio convencional funcionam assim. A emissora envia as ondas de rádio e seu aparelho vai recebendo e tocando o que chegou. Se por um acaso ele não recebeu as ondas porque você entrou em um túnel, babau, já era, a rádio não vai tentar enviar de novo aquele trechinho da narração do jogo que dizia que o Romário chutou e xxssssxsxssssxs...

***


Por fim, temos a camada de aplicação, que é aquela com a qual lidamos diretamente. Bem, não tão diretamente assim: nós usamos os programas e eles usam os protocolos que fazem parte da camada de aplicação para executar o que pedimos. Estes protocolos são vários: o SMTP para envio de mensagens de email, o DNS para fazer a relação entre um endereço textual (o www-ponto-alguma-coisa) para o seu endereço numérico real, o HTTP para transferência de páginas da internet, entre muitos outros.

***


Este é, enfim, o modelo TCP/IP. Apesar de ser mais antigo do que o modelo ISO OSI - o modelo TCP/IP nasceu em 1974 - ele é hoje mais usado do que seu primo mais novo, servindo de base para a grande maioria das redes atuais, e merece toda a atenção de quem pretende entender de redes.

6 comentários:

Anônimo disse...

Olá, parabéns pelo conteúdo do seu blog,eu faço análise d sistemas e estou fazendo um trabalho sobre modelo de referência TCP/IP. E seu blog me ajudou muito. Está ótimo o seu blog.

Anônimo disse...

oi,eu faço curso tecnico em informatica e gostei mto do conteudo...me ajudou e mto nos trabalhos.continue assim.

Mário Marinato disse...

Anônimo e Elaine, que bom que meus artigos ajudaram vocês.

Podem ter certeza que sempre que puder eu vou escrever artigos assim.

Abraços

Raniere disse...

Parabéns pelo conteúdo do Blog, realmente bem específico e os exemplos usados são bem compreensíveis.
Obrigado pela informação de forma sucinta apresentada pelo seu Blog.

Mário Marinato disse...

Eu é que digo obrigado, Raniere.

Servíamos bem para servir sempre.

Anônimo disse...

Parabéns pelo conteúdo do blog! Faço o ensino médio técnico em Informática e me ajudou bastante! Obg...