dhcp、http、dns、ftp、nfs、smb 等应用层协议是否是 ls、cp、chmod、rm、mv 等系统实用程序的一部分?
协议是关于如何传达信息的规则(或规则的集合)。一个应用层协议描述方案和服务如何对潜在的“下”层协议的顶部连通。这些较低的层——比如传输层——描述了通信一般是如何发生的,包括高层通信是如何打包的。
这是一个非常笼统的总结,网络的分层模型不止一个。甚至有多少层取决于人们选择使用哪种模型来描述网络如何工作。
这些层一起组成了一个套件,例如Internet 协议套件,它描述了一个工作系统(我们认为是“网络”)是如何运行的。
关键点是协议是关于某事应该如何工作的规则或描述。因此,协议不是任何通常意义上的“部分”的程序的“部分”。但是,程序可以实现应用层协议。这意味着它被编写为以符合协议的方式执行协议中指定的那种通信。
(有时程序也是不合规的,这与协议的要求不同。通常这是一个缺点——有时这是故意的,当协议不符合用户或开发人员的需求时。)
DHCP 由 DHCP 服务器和 DHCP 客户端实现。HTTP 由Web 服务器(如 Apache)、Web 浏览器、爬虫和(连同其他协议)大多数下载管理器实现。浏览器、爬虫和下载管理器都是 HTTP 客户端。Ubuntu 上的 SMB 由 Samba 实现,它具有客户端和服务器组件。
应用层协议位于提供客户端-服务器模型的较低层之上。应用层协议使用这个模型;你会注意到我已经在上面的所有例子中讨论了客户端和服务器。
有时,程序与它实现的协议具有相同的名称。例如,包括 Ubuntu 在内的大多数操作系统都有一个名为ftp
. 请注意,这只是一个 FTP 客户端;通常调用 FTP 服务器可执行文件ftpd
(d
用于“守护进程”)。守护进程是在后台运行的服务,许多服务器程序都是守护进程。实现协议“FooBar”的守护进程被调用是很常见的foobard
。例如,Web 服务器可执行文件通常被命名为httpd
.
所以,你可能会想,如果文件工具一样ls
,cp
,chmod
,rm
,和mv
实现任何应用层协议。答案是他们没有。
如果它们通过网络访问文件或目录信息,则使用这些文件实用程序中的任何一个都可能导致发生网络通信。例如,如果您安装了 NFS(或 SMB)共享,并且您ls
用来列出远程文件夹的内容,则网络通信正在发生。但是这些文件实用程序不负责网络通信。相反,NFS 客户端(或 SMB)客户端执行该通信。通常,文件实用程序类似于ls
或chmod
将与访问本地文件时完全相同。
归档时间: |
|
查看次数: |
174 次 |
最近记录: |