应用层协议是库例程的一部分吗?

应用层协议是库例程的一部分吗?

应用层协议驻留在哪里?它们是 C、C++、Java 等语言的库例程的一部分吗?

作为金发姑娘他在回答中说,这是关于应用层协议的实现。

答案1

应用层协议驻留在哪里?

协议是一种抽象,因此它们并不真正“驻留在”规范和其他文档之外的任何地方。

如果你的意思是,他们在哪里实施的,有一些常见的模式:

  • 它们可以首先在本机 C 中实现为库,可以包装该库以在其他语言中使用(因为大多数其他语言本身是在 C 中实现并具有 C 接口)。例如,加密协议一般是这样的。

  • 它们可以从头开始实现为在特定语言中使用的库或模块,仅使用该语言(和/或实现它的语言)。例如,高级网络协议。

  • 它们可以由给定的应用程序从头开始实现。

这些都是纯粹的用户态实现,但是一些协议——例如低级网络——可以在内核中实现。这可能包括相应的本机 C 用户层库(与网络和文件系统一样),或者内核(包括独立的内核模块)可以通过 procfs/dev等提供与语言无关的接口。

相关内容