Usuário(a):IohanaF/Camada de aplicação
![](http://upload.wikimedia.org/wikipedia/commons/thumb/8/8f/Modelo_OSI_-_Camada_de_Aplica%C3%A7%C3%A3o.png/220px-Modelo_OSI_-_Camada_de_Aplica%C3%A7%C3%A3o.png)
Camada de aplicação é um termo utilizado em redes de computadores para designar uma camada de abstração que engloba protocolos que realizam a comunicação fim-a-fim entre aplicações. É a mais abstrata das camadas, sendo responsável por prover serviços para aplicações, de modo a separar a existência de comunicação em rede entre processos de diferentes computadores. No modelo OSI, é a sétima camada. Já no modelo TCP/IP, é a camada cinco (podendo ser a número quatro dependendo do autor), englobando também as camadas de apresentação e sessão do Modelo OSI. Ou seja, a Camada de Aplicação do modelo TCP/IP corresponde as três camadas superiores do modelo OSI (Sessão, Apresentação e Aplicação). Frequentemente, nos referimos às camadas de Sessão, Apresentação e Aplicação apenas como Camada de Aplicação, devido à implementação de suas funções de maneira integrada. Ao contrário do que o nome sugere, aplicações não ficam na camada de aplicação no modelo OSI. Mas esta camada é a mediadora de comunicação entre serviços que utilizam outras camadas.
Arquiteturas de aplicação
[editar | editar código-fonte]A camada de aplicação é a mais próxima do usuário, sendo a encarregada quando o cliente acessa o e-mail, páginas WEB, mensagens instantâneas, Login remoto, vídeo-clipes, videoconferência, etc. A arquitetura de aplicação permite que o utilizador acesse essas funções. Logo, existem três tipos de arquitetura: [1].
- Arquitetura cliente-servidor;
- Arquitetura P2P ( Peer-to-peer);
- Arquitetura híbrida de cliente-servidor e P2P;
Arquitetura cliente-servidor
[editar | editar código-fonte]Na Arquitetura cliente-servidor tem-se hospedeiros/dispositivos finais que atuam em dois papéis definidos: servidor ou cliente. O servidor, que tem por função atender requisições de diversos hosts, está sempre ligado, possui um endereço IP permanente e pode ser escalado (possibilidade de mexer na estrutura da rede, adicionando, através de alguns recursos e conforme a necessidade, outras máquinas para trabalharem em conjunto e dar suporte, ou substituir máquinas em casos de eventuais falhas, por exemplo). Enquanto que o cliente comunica-se com o servidor fazendo as requisições, podendo estar conectado intermitentemente e podendo ter endereços IP dinâmicos, além de não se comunicar diretamente com outros clientes.
Exemplo de aplicações que utilizam essa arquitetura: Web, FTP, Telnet, e-mail.
Arquitetura P2P (Peer-to-peer)
[editar | editar código-fonte]Na Arquitetura P2P não há um servidor sempre ligado, os sistemas finais arbitrários mantêm uma comunicação de forma direta. Além disso, os pares, que são os pares de hosts conectados entre si na rede, estão conectados de maneira descontínua e alteram os endereços IP. Devido ao fato de não ser centralizada, ou seja, não se tem uma máquina atuando como um servidor específico, mas várias máquina que se conectam diretamente, o gerenciamento se torna muito mais difícil.
Exemplo de aplicações baseadas nessa estrutura: BitTorrent e Skype.
Arquitetura híbrida de cliente-servidor
[editar | editar código-fonte]Na Arquitetura híbrida de cliente-servidor ocorre a união dos dois modelos acima, sendo parte cliente-servidor parte P2P. Tem-se, nesse caso, a comunicação entre pares, mas também a utilização de um servidor central. Pode-se citar dois exemplos de aplicações que usam essa arquitetura híbrida: O Napster e as Instant Messaging.
Napster
[editar | editar código-fonte]Faz a transferência de arquivos P2P.
Realiza a busca centralizada de arquivos:
- Registro de conteúdo pelos pares no servidor central.
- Consulta feita pelos pares no mesmo servidor central para localizar o conteúdo.
A partir do momento em que o conteúdo é descoberto, os pares passam a comunicar-se diretamente. Basicamente, o que ocorre é uma consulta ao servidor, que tem armazenado informações e conteúdos dos dispositivos, para descobrir quem é a máquina que possui o serviço desejado e então poder estabelecer uma comunicação direta com essa máquina para obter aquilo que deseja.
Instant messaging:
[editar | editar código-fonte]É um bate-papo entre dois usuários por um servidor, em que o usuário registra seu endereço IP com o servidor local quando fica online. O usuário contata o servidor central para encontrar endereços IP dos amigos. Então, novamente, o estabelecimento da comunicação se dá de forma direta, mas para localizar os outros dispositivos em um primeiro momento, usa-se um servidor.
Comunicação entre Processos
[editar | editar código-fonte]Uma aplicação de rede constitui-se de processos que trocam mensagens através da rede. Um processo pode ser entendido como um programa que está sendo rodado dentro de um host. Quando há a comunicação entre processos em um mesmo hospedeiro, em um mesmo dispositivo, essa comunicação entre eles é definida pelo sistema operacional (SO). Já em hosts distintos, a comunicação se dá através de troca de mensagens pela rede.
Existem dois tipos de processos:
- processo cliente: aquele que inicia a comunicação, o primeiro a contatar outro dispositivo.
- processo servidor: aquele que espera ser contatado por alguém.
Tratando-se de arquiteturas P2P, as aplicações tem tanto processos clientes como servidores, sendo que um processo pode atuar de ambas as formas ao mesmo tempo, devido à ausência de um servidor central. Então todos os nós da rede podem ser tanto clientes, quanto servidores.
Protocolos de Aplicação
[editar | editar código-fonte]Os protocolos da camada de aplicação atuam junto com os protocolos da camada de transporte (TCP/IP e UDP). Assim, os principais protocolos de aplicação são: TELNET, FTP, TFTP, SMTP, POP, IMAP, DNS, HTTP, HTTPS, RTP, MIME e TLS.[2].
Protocolo da Camada de Sessão
[editar | editar código-fonte]- RTP (Real-time Transport Protocol).
Protocolos da Camada de Apresentação
[editar | editar código-fonte]- MIMI (Multipurpose Internet Mail Extensions);
- SSL (Secure Sockets Layer);
- TLS (Transport Layer Security).
Protocolos da Camada de Aplicação
[editar | editar código-fonte]- HTTP (Hypertext Transfer Protocol) - principal protocolo de aplicações da Web.
Como nas outras camadas do modelo, os protocolos da camada de aplicação contam com os da camada inferior para realizar o transporte dos dados através da rede - os dados do protocolo de aplicação são encapsulados no protocolo da camada inferior.