A camada de aplicação é a camada mais alta no modelo TCP/IP (e uma camada correspondente no modelo OSI, embora as funcionalidades diferam ligeiramente). Não é um componente monolítico único, mas uma coleção de protocolos e aplicativos que fornecem serviços aos usuários finais. Esses componentes são melhor categorizados por *função *, em vez de uma lista fixa de "componentes" nomeados. Os principais componentes funcionais incluem:
*
Interfaces de programação de aplicativos (APIs): Essas são as interfaces que permitem que os aplicativos acessem os serviços de rede. Eles abstraem as complexidades dos protocolos de rede de nível inferior. Os exemplos incluem Sockets APIs (como `Socket ()` em C) e APIs de nível superior oferecidas por bibliotecas e estruturas (como as usadas para solicitações HTTP).
*
Protocolos de aplicação específicos: Essas são as regras e formatos usados para comunicação entre aplicativos. Alguns exemplos importantes incluem:
*
http (protocolo de transferência de hipertexto): Usado para navegação na web.
*
https (protocolo de transferência de hipertexto seguro): A versão segura do HTTP, usando a criptografia SSL/TLS.
*
ftp (protocolo de transferência de arquivo): Usado para transferir arquivos entre computadores.
*
smtp (protocolo de transferência de correio simples): Usado para enviar e -mails.
*
POP3 (Protocolo de Correios Versão 3) e IMAP (Internet Message Access Protocol): Usado para receber e -mails.
*
dns (sistema de nome de domínio): Traduz nomes de domínio (como `google.com`) em endereços IP.
*
ssh (shell seguro): Fornece uma maneira segura de acessar computadores remotos.
*
SNMP (protocolo simples de gerenciamento de rede): Usado para monitoramento e gerenciamento de rede.
*
DHCP (protocolo de configuração do host dinâmico): Atribui automaticamente endereços IP aos dispositivos em uma rede.
*
Lógica de apresentação (às vezes considerada parte da camada de apresentação no OSI): Embora não seja estritamente um "componente", a camada de aplicativo geralmente lida com aspectos da apresentação de dados, como a codificação (por exemplo, converter texto em unicode) e formatação de dados. Isso pode estar implícito nos protocolos de aplicação ou manuseado explicitamente pelo próprio aplicativo.
*
Dados do aplicativo: Isso abrange os dados reais transmitidos entre aplicativos, como páginas da web, e -mails, arquivos e outros tipos de informações.
É importante observar que os limites entre esses componentes funcionais são frequentemente borrados. Por exemplo, o HTTP é um protocolo, mas também usa APIs e lida com alguma lógica de apresentação. O principal argumento é que a camada de aplicativo é uma categoria ampla que abrange o software e os protocolos que interagem diretamente com os usuários finais e seus aplicativos.