Arquitetura Internet: mudanças entre as edições
Linha 8: | Linha 8: | ||
[[Arquivo:ArquiteturaInternet.jpeg]] -> [[Arquivo:CamadasInternet.jpeg]] | [[Arquivo:ArquiteturaInternet.jpeg]] -> [[Arquivo:CamadasInternet.jpeg]] | ||
==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 dados tempo real''' (''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 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. | |||
Para estes dois tipos de requisições de serviços, muitas redes de computadores dispõem de dois tipos de serviços de transporte: | |||
*'''Serviço orientado a conexão''', 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''). | |||
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. | |||
[[Arquivo:ArquiteturaInternet.jpeg]] -> [[Arquivo:CamadasInternet2.jpeg]] | |||
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. |
Edição das 20h01min de 6 de março de 2015
Arquitetura Internet
A arquitetura Internet organiza os protocolos de rede da Internet em quatro camadas:
- 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;
- Camada rede
- Onde estão agrupados os protocolos para tratar os problemas relativos ao encaminhamento de pacotes entre dois computadores remotos, passando pelos roteadores intermediários, permitindo a conectividade computador a computador.
- 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 aplicação
- É a camada superior, a qual define as regras para a troca de mensagens entre os processos de aplicação específicos.
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 dados tempo real (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 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.
Para estes dois tipos de requisições de serviços, muitas redes de computadores dispõem de dois tipos de serviços de transporte:
- Serviço orientado a conexão, 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).
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.
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.