Where do application layer protocols reside?
Protocolos são uma abstração, então eles não "residem" em lugar algum além de especificações e outras documentações.
Se você quer dizer onde estão implementados, existem alguns padrões comuns:
-
Eles podem ser implementados primeiro em C nativo como bibliotecas que podem ser agrupadas para uso em outras linguagens (já que a maioria das outras linguagens são implementadas em C e possuem uma interface C). Por exemplo, os protocolos de criptografia geralmente são assim.
-
Eles podem ser implementados do zero como bibliotecas ou módulos para uso em um idioma específico, usando apenas esse idioma (e / ou o idioma em que é implementado). Por exemplo, protocolos de rede de alto nível.
-
Eles podem ser implementados do zero por um determinado aplicativo.
Estas são todas implementações puras do usuário, mas alguns protocolos - por exemplo, rede de baixo nível - podem ser implementados no kernel. Isso pode incluir uma biblioteca nativa de usuário C correspondente (como rede e sistemas de arquivos) ou o kernel (incluindo módulos de kernel independentes) pode prover uma interface agnóstica de linguagem via procfs, /dev
, etc.