应用程序层协议(例如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客户端。FTP服务器可执行文件通常被称为ftpd
(d
为“守护”)。守护程序是在后台运行的服务,许多服务器程序都是守护程序。实现协议“ FooBar”的守护程序通常被称为foobard
。例如,Web服务器可执行文件通常被命名为httpd
。
所以,你可能会想,如果文件工具一样ls
,cp
,chmod
,rm
,和mv
实现任何应用层协议。答案是他们没有。
如果使用这些文件实用程序中的任何一种,它们会通过网络访问文件或目录信息,则可能导致网络通信发生。例如,如果您已挂载了NFS(或SMB)共享,并ls
用于列出远程文件夹的内容,则说明正在发生网络通信。但是这些文件实用程序并不会处理网络通信。而是由NFS客户端(或SMB)客户端执行该通信。通常,类似于ls
或的文件实用程序chmod
将与访问本地文件时完全相同。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句