Arquitetura Internet: mudanças entre as edições

De Wiki Cursos IFPR Foz
Ir para navegaçãoIr para pesquisar
Linha 17: Linha 17:
Dois tipos comuns de serviço solicitado pelas aplicações à rede são:
Dois tipos comuns de serviço solicitado pelas aplicações à rede são:
*Serviço tipo '''pedido/resposta''' (''request/reply'');
*Serviço tipo '''pedido/resposta''' (''request/reply'');
*Serviço tipo '''fluxo de dados tempo real''' (''audio/video streaming'').
*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.
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 dados em tempo real''', 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.
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, muitas redes de computadores dispõem de dois tipos de serviços de transporte:
Para estes dois tipos de requisições de serviços a '''Internet''' dispõem de dois '''protocolos de transporte''':
*'''Serviço orientado a conexão''', com transmissão de dados garantida;
*'''TCP''' (''Transmission Control Protocol''), que oferece serviço orientado a conexão e com transmissão de dados garantida;
*'''Serviço não orientado a conexão''', com transmissão de dados tipo '''melhor esforço''' (''best effort'').  
*'''UDP''' (''User Datagram Protocol''), que oferece serviço sem conexão tipo '''melhor esforço''' (''best effort'').  


Quando uma aplicação usa o serviço orientado a conexão 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.  
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.


No serviço não orientado a conexão 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.  
[[Arquivo:ArquiteturaInternet.jpeg]] -> [[Arquivo:CamadasInternet2.jpeg]]


[[Arquivo:ArquiteturaInternet.jpeg]] -> [[Arquivo:CamadasInternet2.jpeg]]
Quando uma aplicação usa o serviço orientado a conexão 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.  


Na Internet, o serviço orientado a conexão é implementado pelo protocolo '''TCP''' (''Transmission Control Protocol'') e o serviço não orientado a conexão é implementado pelo protocolo '''UDP''' (''User Datagram Protocol''). 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.
No serviço não orientado a conexão 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.


==Funções das camadas da arquitetura Internet<ref name="KUROSE">KUROSE, J.F; ROSS K. W. Redes de Computadores e a Internet: Uma abordagem ''top-down'', São Paulo: Pearson, 2010.</ref>==
==Funções das camadas da arquitetura Internet<ref name="KUROSE">KUROSE, J.F; ROSS K. W. Redes de Computadores e a Internet: Uma abordagem ''top-down'', São Paulo: Pearson, 2010.</ref>==

Edição das 12h58min de 17 de abril de 2015

Arquitetura Internet

A arquitetura Internet organiza os protocolos de rede da Internet em quatro camadas:

Camada aplicação
É a camada superior, a qual define as regras para a troca de mensagens entre os processos de aplicação específicos.
Camada transporte
É responsável por implementar um canal de comunicação lógico fim a fim entre os processos de aplicação, oferecendo um serviço apropriado para que os processos de aplicação troquem mensagens.
Camada rede
É a responsável pela comutação de pacotes na Internet, na qual estão agrupados os protocolos para realizar o encaminhamento de pacotes entre dois computadores remotos, passando pelos roteadores intermediários, permitindo a conectividade computador a computador.
Camada enlace/física
É a camada inferior da arquitetura, onde estão os protocolos relacionados relacionados à comunicação entre nós vizinhos e à transmissão de bits sobre os enlaces físicos;

->

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.

->

Quando uma aplicação usa o serviço orientado a conexão 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.

No serviço não orientado a conexão 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.

Funções das camadas da arquitetura Internet[1]

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 (RFC 1945, 1996), o Correio Eletrônico o SMTP (RFC 788, 1981), a Transferência de Arquivos o FTP (RFC 114, 1971), 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 organiza a multiplexação de aplicações entre os diversos processos, utilizando as chamadas portas.

Os dois Protocolos de Transporte da Internet são:

  • TCP (RFC 793, 1981), que implementa uma transferência de dados garantida para aplicações tipo pedido/resposta;
  • UDP (RFC 768, 1980), que implementa um serviço tipo melhor esforço para aplicações tipo fluxo de dados tempo real.

Camada de Rede

Trata da comunicação host a host na Internet, envolvendo cada roteador do caminho entre o computador origem e o destino.

O formato dos pacotes trocados entre hosts é definido pelo Protocolo IP (Internet Protocol) (RFC 791, 1981) e utilizam um esquema de endereçamento global, conhecido como Endereçamento IP. Além disto, a camada rede é responsável por realizar o roteamento dos pacotes pela malha de roteadores da Internet.

Camada de 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.

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:

  1. 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;
  2. 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;
  3. 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;
  4. 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

  1. 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)