应用层协议是系统实用程序的一部分吗?

应用层协议是系统实用程序的一部分吗?

应用层协议(例如 dhcp、http、dns、ftp、nfs、smb 等)是否是系统实用程序(例如 ls、cp、chmod、rm、mv 等)的一部分?

答案1

协议意味着什么

协议是有关信息传递方式的规则(或规则集合)。应用层协议描述了程序和服务如何在“较低”层的底层协议之上进行通信。这些较低层(例如传输层——描述一般的通信是如何发生的,包括高层通信是如何打包的。

这是非常笼统的总结,网络的分层模型不止一种。至于有多少层,则取决于选择使用哪种模型来描述网络的工作原理。

这些层共同构成一个套件,例如互联网协议套件,描述了一个工作系统(我们称之为“网络”)如何运行。

关键点在于,协议是某事物应该如何运作的规则或描述。因此,协议不是程序的“部分”,不是通常意义上的“部分”。但是,程序可以实施应用层协议。这意味着它被编写为以符合协议的方式执行协议中指定的通信类型。

(有时程序也不符合协议的要求。这通常是一个缺点——有时是故意的,当协议不符合用户或开发人员的需求时。)

实现应用层协议的程序

DHCP 由 DHCP 服务器和 DHCP 客户端实现。HTTP 由网络服务器(例如 Apache)、Web 浏览器、爬虫以及(与其他协议一起)大多数下载管理器。浏览器、爬虫和下载管理器都是HTTP客户端。Ubuntu上的SMB由Samba实现,它有客户端和服务器组件。

应用层协议位于提供客户端-服务器模型的较低层之上。应用层协议使用此模型;您会注意到,我在上面的所有示例中都讨论了客户端和服务器。

有时程序的名称与它实现的协议相同。例如,包括 Ubuntu 在内的大多数操作系统都有一个名为 的 FTP 客户端ftp。请注意,这只是一个 FTP 客户端;FTP 服务器可执行文件通常称为ftpdd例如“守护进程”)。守护进程是在后台运行的服务,许多服务器程序都是守护进程。实现协议“FooBar”的守护进程通常被称为foobard。例如,Web 服务器可执行文件通常命名为httpd

核心文件实用程序本身不实现应用层协议

所以你可能想知道文件实用程序比如ls,,,,和cp​​chmodrmmv 实施任何应用层协议。答案是他们不。

如果使用任何这些文件实用程序访问网络上的文件或目录信息,则可能会导致发生网络通信。例如,如果您已安装 NFS(或 SMB)共享,并且您使用它来ls列出远程文件夹的内容,则会发生网络通信。但这些文件实用程序并不处理该网络通信。相反,NFS 客户端(或 SMB)客户端会执行该通信。通常,像ls或 这样的文件实用程序chmod的工作方式与访问本地文件时完全相同。

相关内容