O tcp-ip (Protocolo
de controle de transmissão) é o mais utilizado nos dias de hoje e neste
tutorial eu vou explicar como ele trabalha de uma forma simples e
compreensível. Ao final você vai entender porque os dados precisam ser
organizados para então ser transmitidos e como isso é feito no protocolo
tcp-ip.
Então, o que é protocolo tcp-ip ? O protocolo é como uma linguagem utilizada para fazer dois computadores ou um computador e um dispositivo (como o CLP)
conversarem entre si. Antes de ir mais afundo neste tutorial, é
recomendado que você saiba como funciona o modelo OSI, que é fundamental
para entender como o protocolo tcp-ip funciona.
tcp-ip
não é propriamente um protocolo, mas um conjunto deles ou uma pilha de
protocolos como usualmente é chamado e o próprio nome já se refere a
dois protocolos diferentes: TCP (Transmission Control Protocol) e IP
(Internet Protocol). Existem vários outros protocolos relacionados ao TCP-IP em que podemos citar alguns: FTP, HTTP, SMTP e UDP e neste artigo explicaremos como funciona cada um deles.
Arquitetura do TCP-IP:

Como podemos observar na Figura acima, o TCP-IP possui 4 camadas
sendo que o início se dá com o programa conversando na camada de
aplicação. Nesta camada você vai encontrar protocolos como o SMTP (para
e-mail), FTP (para transferência de arquivos) e HTTP (para navegar na
internet) e cada tipo de programa fala para um protocolo diferente da
camada de Aplicação, dependendo do propósito do programa.
Depois
de processar a requisição, o protocolo na camada de Aplicação vai falar
com outro protocolo na camada de Transporte, usualmente o TCP. Esta
camada é responsável por pegar o dado enviado pela camada de Aplicação,
dividindo este dado em pacotes a fim de enviar ele para a camada
inferior, a da Internet. Também, durante o recebimento do dados, a
camada de Transporte é responsável por colocar os pacotes de dados
recebidos da camada de Internet em ordem (os dados podem ser recebidos
fora de ordem) e também checar se o conteúdo dos pacotes estão intactos.
Na
camada da Internet, nós temos o IP (Internet Protocol), que pega os
pacotes recebidos da camada de Transporte e adiciona uma informação de
endereço virtual. Exemplo: adiciona o endereço do computador que está
enviando dados e o endereço do computador que vai receber estes dados.
Estes endereços virtual são chamados de endereços IP. Então o pacote é
enviado para a camada inferior, Interface de Rede e quando dos dados
chegam nesta camada, eles são chamados de datagramas.
A Interface
de Rede vai pegar os pacotes enviados pela camada de Internet e enviar
através da rede (ou receber da rede, se o computador estiver recebendo
dados). O que vai ter dentro desta camada vai depender do tipo de rede
que o computador estiver inserido. Hoje em dia, o tipo de rede mais
utilizado para comunicação entre computadores é a Ethernet (que é
avaliada em diferentes faixas de velocidade) e pode ser cabeada (cabo de
par trançado CAT5 ou CAT6) ou WI-FI (sem fio). Ainda dentro da camada
de Interface de Rede Ethernet, você deve encontrar camadas Ethernet como
a LLC (Logic Link Control), MAC (Media Access Control) e a Física que é
o meio físico (cabo por exemplo). Os pacotes transmitidos através da
rede são chamados de quadros.
1 – Camada de Aplicação
Esta
camada faz a comunicação entre os programas e os protocolos de
transporte no TCP-IP. Existem diferentes protocolos que trabalham na
camada de aplicação e os mais conhecidos são o HTTP (HyperText Transfer
Protocol), SMTP (Simple Mail Transfer Protocol), FTP (File Transfer
Protocol), SNTP (Simple Network Protocol), DNS (Domain Name System) e
Telnet. Abaixo mostramos uma lista dos que podem ser encontrados com uma
pequena descrição de cada um:
- FTP – File Transfer Protocol: Permite a transferência de arquivos entre dois computadores através de login e senha.
- TFTP – Trivial File Transfer Protocol: Permite a transferência de arquivos entre dois computadores sem a necessidade de login e senha. É mais limitado e pouco utilizado.
- NFS – Network File System é um protocolo que permite que os sistemas UNIX e Linux montem remotamente sistemas de arquivos entre um e outro.
- SNMP – Simple Network Management Protocol é utilizado para gerenciar todos os tipos de elementos de rede baseando no envio e recebimento de vários dados.
- SMTP – Simple Mail Transfer Protocol é utilizado para transporte de e-mail, sendo que o SMTP é uma aplicação utilizada para transporte e não um meio de transporte. Por isso se localiza na camada de Aplicação.
- HTTP – Hypertext Transfer Protocol é utilizado para transportar páginas HTML de servidores web para navegadores. O protocolo é utilizado para realizar a comunicação entre servidores WEB e Navegadores instalados em computadores clientes.
- BOOTP – O protocolo Bootstrap é utilizado para designar um endereço IP para computadores que não possuem disco rígido, onde o servidor fornece um arquivo juntamente com o sistema operacional para executá-lo.
- DHCP – Dynamic host configuration protocol é um método de designar endereços IPs para os computadores conectados na rede e ele é um serviço baseado no servidor que designa automaticamente endereços IPs para cada computador que entra na rede. Este método não exige que você tenha que entrar em cada computador e informar o IP, facilitando mudanças de redes. O DHCP pode executar todas as funções do BOOTP.
- BGP – Border Gateway Protocol. Quando dois sistemas estão utilizando BGP, eles estabelecem uma conexão TCP, e então enviam um para outro suas tabelas BGP. O BGP utiliza método de vetorização de distância sendo que ele detecta falhas, enviando mensagens de atividade aos seus vizinhos a cada 30 segundos. Ele troca informações sobre redes alcançáveis com outros sistemas BGP, incluindo o caminho completo dos sistemas que estão entre eles.
- EGP – Exterior Gateway Protocol é utilizado entre roteadores de diferentes sistemas.
- IGP – Interior Gateway Protocol. O nome é utilizado para descrever o fato de que cada sistema na internet pode escolher seu próprio protocolo de roteamento. RIP e OSPF são exemplos de protocolos de gateway interior.
- RIP – Routing Information Protocol é utilizado para atualizar dinamicamente tabelas de roteamento em WANs e na internet. O algoritmo vetor distância é utilizado para calcular a melhor rota para o pacote.
- OSPF – Open Shortest Path First roteamento dinâmico de protocolo. Aqui é aplicado um protocolo de estado de link ao invés de um protocolo de vetor de distância em que ele testa o estado da sua ligação com cada um dos seus vizinhos e envia as informações adquiridas para eles.
- POP3 – Post Office Protocol version 3 é utilizado por usuários clientes para acessar uma conta de email em um servidor e pegar o e-mail. Como no SMTP, esta não é uma camada de transporte.
- IMAP4 – Internet Mail Access Protocol version 4 é um substituto para o POP3.
- Telnet é utilizado para abrir uma sessão remota em outro computador. Ele se baseia em TCP para o transporte e é definido pela RFC854.
Quando
você solicita ao seu programa de e-mail para fazer o download dos
e-mails que estão armazenados no servidor, você está fazendo uma
solicitação na camada de aplicação do TCP-IP, que neste caso é servido
pelo protocolo SMTP. Por outro lado, quando você digita www no navegador
a fim de abir uma página, o navegador vai requerer o TCP-IP na camada
de aplicação servido pelo protocolo HTTP e é pos isso que as páginas
iniciam-se com http://.
A camada de Aplicação fala com a camada de
transporte através de portas que são numeradas seguindo um padrão para
diferentes aplicações. Por exemplo, o protocolo SMTP sempre utiliza a
porta 25 e o HTTP sempre utiliza a porta 80. Por outro lado o FTP
utiliza a porta 20 (para transmissão de dados) e 21 (para controle).
A
utilização do número da porta permite ao protocolo de Tranporte
(tipicamente TCP) saber qual o tipo de conteúdo está dentro do pacote
(por exemplo, saber que o dado sendo transportado é um e-mail), fazendo
com que o lado que está recebendo o dado saiba para qual aplicação esta
dado vai. Então, quando um pacote chegar na porta 25, o protocolo TCP
vai saber que deve entregar o dado ao protocolo conectado a porta, o
SMTP, que por sua vez entrega o dado à aplicação que o requisitou (o
programa de e-mail).
Na Figura abaixo podemos ver uma representação de requisições utilizando o TCP-IP:

2 – A Camada de Transporte
Quando
há a transmissão de dados no TCP-IP, a camada de transporte é
responsável por pegar este dado da camada de Aplicação e dividir ele em
vários pacotes menores. O TCP (Transmission Control Protocol) é o
protocolo mais utilizado na camada de Transporte e como falado
anteriormente, ele pode tanto quebrar a informação em pacotes quanto
organizar de forma a colocar em ordem a mensagem. Assim, quando ele está
recebendo dados, o mesmo tem a função de organizar eles para que a
mensagem possa ser interpretada pela camada de Aplicação.
Enquanto
o TCP organiza os pacotes, ele também utiliza o sistema de
reconhecimento da informação para verificar se os dados estão íntegros.
Outro protocolo presente nesta camada é o UDP (User Datagram Protocol)
que é utilizado quando dados menos importantes são transmitidos,
tipicamente em requisições DNS. Isto porque o UDP não possui as
funcionalidades de reorganização das informações nem de verificação da
integridade dos dados.
No entanto, ele é bem mais ráPIDo do que o TCP.
Quando
o UDP é utilizado, a aplicação que estiver solicitando os dados que
será a responsável por verificar a integridade dos dados e reordenar os
pacotes, fazendo a função que o TCP faria.
Ambos os protocolos UDP
e TCP vão buscar o dado da camada de Aplicação e acrescentam um
endereço virtual (cabeçaho) a cada pacote que por sua vez é removido
quando chega no receptor da informação. Neste cabeçalho existem
infomações importantes como o número da porta de entrada, a sequência do
dado e a soma para verificação da integridade (checksum). Por ter menos
funcionalidades, o cabeçalho UDP possui somente 8 bytes enquanto que o
cabeçalho TCP possui 20 ou 24 bytes. Abaixo citamos alguns protocolos
desta camada que compõem o TCP-IP:
- TCP – Conexão confiável utilizada para controlar o gerenciamento das aplicações a nível de serviços entre computadores. Faz tanto o transporte em sequência do dado quanto a checagem da integridade dos mesmos.
- UDP – Conexão não confiável utilizada para controlar o gerenciamento das aplicações a nível de serviços entre computadores e é utilizado para o transporte de algum dados onde a própria aplicação faz a verificação da integridade dos dados;
- ICMP – Internet control message protocol (ICMP) fornece o gerenciamento e o relatório de erros para ajudar no gerenciamento de dados durante a comunicação entre computadores. Esta conexão é utilizada para reportar o status do computador que está sendo conectado ao computador que está tentando conectar como por exemplo reportar que o computador de destino não está acessível.
- IGMP – Internet Group Management Protocol utilizado para suportar mensagens multicasting e rastrear grupos de usuários na rede de computadores.
Na
Figura abaixo, podemos ver de forma genérica como funciona a camada de
Transporte no TCP-IP, tanto transmitindo quanto recebendo dados.

3 – A Camada de Internet
No
TCP-IP, cada computador na rede é identificado com um único endereço
virtual, chamado de endereço IP. A camada de Rede ou Internet é a
responsável por adicionar o cabeçalho no pacote de dado recebido da
camada de Transporte onde, onde além de outros dados de controle, será
adicionado o endereço IP fonte e o endereço IP de destino, ou melhor, o
endereço IP do computador que está enviado o dado e o endereço IP do
computador que vai receber o dado.
Se não estiver sendo utilizado
nenhum endereço virtual, você deve saber o endereço MAC do computador de
destino, que além de ser uma tarefa difícil, não ajuda no roteamento
dos pacotes, devido ao fato de que não utilizar a estrutura de
nomenclatura tipo árvore. Em outras palavras, com o endereço IP, os
computadores de uma mesma rede pertencerão a endereços IPs sequenciais
(Ex.: 192.168.1.10 e 192.168.1.12). Já com endereços MAC, como cada
máquina conectada na rede tem um único endereço físico, não podemos
identificar sequencialmente (Ex.: 00-14-22-01-23-45
e 01-24-10-12-14-54).
O roteamento é o caminho que o pacote de
dado deve utilizar para chegar ao seu destino e quando há uma requisição
de dado para um servidor, este dado, antes de chegar no seu computador,
passa por vários locais (chamados roteadores). Você quer ver como
funciona? Basta clicar no menu iniciar do Windows –> Acessórios
–> CMD. Depois que abrir o prompt de comando, tente ver qual o
caminho percorrido pelo dado quando você tenta acessar o google
digitando o comando tracert www.google.com. Veja Figura abaixo:

Em
todas as redes que estão conectadas na internet, existe um dispositivo
chamado roteador, que faz a ponte entre os computadores da sua rede
local e a internet. Todos os roteadores possuem uma tabela com redes
conhecidas e também uma configuração chamada gateway padrão apontando
para outro roteador na internet. Quando um computador envia um pacote de
dados pela internet, o roteador conectado na sua rede primeiro tenta
verificar se o computador de destino é conhecido, em outras palavras, se
o outro computador está na mesma rede ou em uma rede que o roteador
conhece o caminho. Se não conhece, envia um pacote de dados para o
gateway padrão (outro roteador) e o processo se repete até que o pacote
de dado chegue no seu destino e foi isso que aconteceu no exemplo acima.
Existem vários protocolos que trabalham na camada da Internet e podemos citar os seguintes:
- ARP – Address Resolution Protocol habilita o empacotamento do dado do IP em pacotes ethernet e é o sistema e protocolo de mensagem que é usado para encontrar a ethernet (hardware) através de um número específico de IP. Sem este protocolo, o pacote de ethernet pode não ser gerado do pacote de IP porque o endereço ethernet pode não ser determinado
- IP – Internet Protocol. Exceto para ARP e RARP todos os pacotes de dados de todos os protocolos serão empacotados em um pacote de dados IP sendo que o IP fornece o mecanismo para usar o software para endereçar e gerenciar pacotes de dados sendo enviados por computadores.
- RARP – Reverse address resolution. Este protocolo é utilizado a fim de permitir que um computador sem um armazenamento de dado permanente tenha um endereço IP a partir do seu endereço ethernet.
Como o IP
é o mais utilizado, vamos falar um pouquinho sobre ele. O IP é o
responsável por pegar o pacote de dados recebido pela camada de
Transporte e dividir este pacote em datagramas, que é definido como um
pacote sem nenhum sistema de verificação de integridade de dados, ou
seja, um protocolo não confiável. Devemos frisar aqui que quando o dado
vai ser transferido, o TCP sim implementa este reconhecimento de
integridade (acknowledge), fazendo com que mesmo que o IP não seja capaz
de reconhecer erros, o TCP o faz, tornando a conexão confiável.
Cada
datagrama IP pode ter no máximo 65.535 bytes, incluindo o cabeçalho,
que pode utilizar 20 ou 24 bytes dependendo se o campo do cabeçalho
denominado opções for utilizado ou não. Assim, datagramas IP podem
possuir 65.515 ou 65.511 bytes de dado e caso o pacote recebido pela
camada de Transporte for maior do que isto, o protocolo IP vai dividir o
pacote em vários datagramas o quanto for necessário.

Na Figura 4, nós podemos visualizar o datagrama gerado na camada de
Internet pelo protocolo IP e é interessante frisar que o que a camada de
Internet enxerga como dado é o pacote todo pego da camada de
Transporte, incluindo o cabeçalho TCP ou UDP. Este datagrama vai estar
sendo enviado para a camada de Interface de Rede (se estamos
transmitindo o dado) ou vai ser pego pela camada de Interface de Rede
(se estivermos recebendo o dado).
4 – A Camada de Interface de Rede
No
TCP-IP, os datagramas gerados na camada de internet vão ser enviados
para a camada inferior, a camada de Interface de Rede, se estivermos
enviando dados, ou a camada de Interface de Rede estará recebendo dados
da rede e enviando para a camada de Internet, se estivermos recebendo
dados.
Esta camada é definida por qual o tipo de rede física seu
computador está conectado. Sabemos que quase sempre seu computador
estará conectado a rede Ethernet (lembrando sempre que wireless também
são redes Ethernet).
Como já sabemos, TCP-IP é um conjunto de
protocolos que trabalham nas camadas 3 a 7 do modelo OSI e a Ethernet é
um conjunto de protocolos que pertencem às camadas 1 e 2 do modelo OSI.
Isso significa que a Ethernet lida com o aspecto físico da rede,
complementando o TCP-IP que lida com os dados especificamente.
A
Ethernet possui três camadas a citar: Logic Link Control (LLC), Media
Access Control (MAC) e Physical. As camadas LLC e MAC correspondem
juntas a segunda camada do modelo OSI e você pode ver a arquitetura
Ethernet na Figura 6.
A camada LLC é responsável por adicionar
informação sobre qual o protocolo na camada de Internet vai entregar
dados para ser transmitido e por este motivo, quando esta camada receber
um pacote da rede, ela deve saber para qual protocolo da camada de
Internet deve ser entregue o dado.
A camada Media Access Control
(MAC) é responsável por montar o quadro que vai ser enviado pela rede e
adiciona tanto o endereço fonte MAC quanto o endereço destino MAC. Como
explicado anteriormente o endereço MAC é um endereço físico da placa de
rede do computador.
Já a camada física é responsável por converter
o quadro gerado pela camada MAC em eletricidade (se for uma rede
cabeada) ou em ondas eletromagnéticas (se for uma rede wireless). Tanto a
camada LCC quanto a MAC acrescentam seu próprio cabeçalho ao datagrama
vindo da camada de Internet. Assim, uma estrutura completa de quadros
gerados por estas duas camadas podem ser vistas na Figura 7. Veja que os
cabeçalhos adicionados pela camada superior podem ser visto como dado
pela camada LLC e a mesma coisa ocorre com o cabeçalho adicionado pela
LLC que pode ser visto pela camada MAC como um dado.
A camada LLC
adiciona cabeçalhos de 3 ou 5 bytes e este datagrama possui um tamanho
máximo de 1500 bytes, formando um máximo de 1.497 ou 1.492 bytes por
dado. A camada MAC adiciona um cabeçalho de 22 bytes e 4 bytes CRC
(correção de dado) no final do datagrama rebebido da camada LLC,
formando o quadro Ethernet. Assim, o tamanho máximo de um quadro
Ethernet é de 1.526 bytes.

Os protocolos que fazem parte da camada de Interface de Rede do TCP-IP são:
- SLIP – Serial Line Internet Protocol. Este protocolo coloca pacotes de dados em quadros em preparação para o transporte através do hardware de rede, sendo utilizado para enviar dados por linhas seriais. Aqui, não há correções de erros, endereçamento ou identificação de pacotes e também não temos autenticação sendo que o SLIP suporta apenas o transporte de pacotes IP.
- CSLIP – Compressed SLIP é a compressão de dados essencial para o protocolo SLIP que utiliza a compressão Van Jacobson capaz de reduzir drasticamente o tamanho do pacote também podendo ser utilizado com o PPP sendo chamado de CPPP.
- PPP – Point to Point Protocol é uma forma de encapsulamento de dados serial que representa uma melhoria com relação ao SLIP capaz de prover uma comunicação serial bidirecional e é bem parecido com o SLIP, se diferenciando por suportar AppleTalk, IPX, TCP/IP e NetBEUI junto com o TCP/IP.
- Ethernet – Como vimos Ethernet é um conjunto de camadas e provem o encapsulamento de quadros antes de serem enviados para computadores.
Nenhum comentário:
Postar um comentário
Precisamos da Sua Opnião