Arquitetura Internet
Arquitetura Internet
Camadas de Protocolos
A arquitetura Internet organiza os protocolos de rede da Internet em quatro camadas:
- Camada de Aplicação
- Define as regras para a troca de mensagens entre os processos de aplicação rodando em cada host.
- Cada aplicação da Internet utiliza um protocolo de aplicação próprio, por exemplo, a Aplicação Web usa o HTTP, o Correio Eletrônico o SMTP, a Transferência de Arquivos o FTP, etc.
- Camada de Transporte
- Trata da comunicação processo a processo, cada qual rodando em um host da Internet. Como em cada host podem haver mais de um processo rodando, a camada transporte implementa a multiplexação de aplicações entre os diversos processos, utilizando as chamadas portas. Há dois tipos de protocolos de transporte na Internet, o TCP e o UDP, conforme detalhado abaixo.
- Camada de Rede
- A camada rede é responsável pela comunicação host a host na Internet. Isto é realizado pelo protocolo IP, usando um esquema de endereçamento global e implementando o roteamento dos pacotes pela malha de roteadores da Internet.
- Camada Enlace/Física
- Trata da comunicação entre nós vizinhos diretamente conectados por enlaces de comunicação.
- A camada enlace/física é responsável por transferir pacotes de dados entre computadores ou roteadores conectados em uma rede local, como uma rede local Ethernet (IEEE802.3) ou uma rede local sem fio (IEEE802.11), bem como entre computadores ou roteadores conectados por um enlace ponto a ponto.
Suporte a serviços comuns para as aplicações
O objetivo das redes de pacotes é oferecer um suporte de comunicação para que as aplicações rodando em dois computadores remotos possam trocar informações.
Intuitivamente, podemos ver a rede como provendo um canal lógico de comunicação para que os processos de aplicação cliente e servidor possam se comunicar. Para usar este canal de comunicação, os programas de aplicação cliente enviam seus pedidos através de uma porta, que conecta o cliente ao servidor, e através da qual ele espera a resposta do serviço é requisitado.
Dois tipos comuns de serviço solicitado pelas aplicações à rede são:
- Serviço tipo pedido/resposta (request/reply);
- Serviço tipo fluxo de áudio/vídeo (audio/video streaming).
A paginação na Web é um exemplo de serviço tipo pedido/resposta, onde um processo cliente solicita uma informação e um processo servidor fornece a informação solicitada. Não há restrições de tempo entre o pedido e a resposta, entretanto, é necessário que a informação transmitida seja livre de erros.
Uma conversa telefônica via Internet é um exemplo de fluxo de áudio, neste caso há restrições temporais na transmissão, por outro lado, um pequeno silêncio ocasionado por um erro ou ruído pode não ser um problema grave para o entendimento geral da conversa.
Para estes dois tipos de requisições de serviços a Internet dispõem de dois protocolos de transporte:
- TCP (Transmission Control Protocol), que oferece serviço orientado a conexão e com transmissão de dados garantida;
- UDP (User Datagram Protocol), que oferece serviço sem conexão tipo melhor esforço (best effort).
As aplicações conhecidas como o telnet, correio eletrônico, transferência de arquivos e WWW usam o TCP. Outras aplicações usam o UDP, como o DNS (Domain Name System) e aplicações multimídia como voz sobre Internet e aplicações de áudio e vídeo[1].
Quando uma aplicação usa TCP o cliente e o servidor trocam pacotes de controle entre si antes de enviarem os pacotes de dados. Isto é chamado de procedimento de estabelecimento de conexão (handshaking), onde se estabelecem os parâmetros para a comunicação. Uma vez concluído o handshaking a conexão é dita estabelecida e os dois sistemas terminais podem trocar dados. O serviço de transferência garantida, que assegura que os dados trocados são livres de erro, o que é conseguido a partir de temporizações, mensagens de reconhecimento e retransmissão de pacotes. Por exemplo, quando um sistema terminal B recebe um pacote de A, ele envia um reconhecimento; quando o sistema terminal A recebe o reconhecimento ele sabe que o pacote que ele enviou foi corretamente recebido; caso A não recebe confirmação, ele assume que o pacote não foi recebido por B e retransmite o pacote.
Com o UDP não há handshaking. Quando um lado de uma aplicação quer enviar pacotes ao outro lado ele simplesmente envia os pacotes. Como o serviço é não garantido, também não há reconhecimento, de forma que a fonte nunca tem certeza que o pacote foi recebido pelo destinatário. Como o serviço é mais simples, os dados podem ser enviados mais rapidamente.
Encapsulamento de protocolos
Toda comunicação fim a fim na Internet é iniciada na camada aplicação, a qual conta com os serviços das camadas inferiores para realizar sua comunicação.
Por exemplo, suponha que uma aplicação cliente deseja enviar uma mensagem para o lado servidor da aplicação:
- A aplicação cliente prepara a mensagem para enviar e indica o endereço IP e a porta do servidor que irá receber a mensagem e passa os dados a camada inferior;
- A camada transporte, logo abaixo da aplicação, agrega à mensagem as informações da porta, e outras informações dependendo do tipo de serviço requerido, montando um novo pacote chamado segmento, e passa a camada inferior para que envie ao IP destino;
- A camada rede, recebe o segmento e acrescenta novas informações, entre elas o IP fonte e destino, e monta um novo pacote, chamado datagrama. O datagrama é então passado para a camada enlace/física para ser entregue ao roteador de saída da rede;
- A camada enlace/física encapsula então o datagrama em um quadro do enlace local, acrescentando novas informações, como o endereço físico (MAC) do roteador e envia ao barramento da rede local para que o roteador de prosseguimento ao envio do pacote.
Uma vez recebido o quadro pela placa de rede do roteador, o mesmo retira o datagrama, verifica o IP destino, consulta a tabela de roteameto, e encaminha o datagrama para o enlace destino, encapsulando novamente o datagrama em um quadro do próximo enlace.
Uma vez no host destino o processo é invertido para recuperar a mensagem para ser entregue ao lado servidor da aplicação.
Referências
- ↑ KUROSE, J.F; ROSS K. W. Redes de Computadores e a Internet: Uma abordagem top-down, São Paulo: Pearson, 2010.
--Evandro.cantu (discussão) 17h07min de 6 de março de 2015 (BRT)