二者的联系:
协议和接口常常放在一起或者混淆使用,本质上都是抽象的规则集合,在不同的场合有不同的含义 。例如,在计算机网络语境下,我们使用协议往往指网络协议/通信协议,网络模型中的每层都有对应的不同协议 。在编程场景中,我们往往具体指某种接口,可以狭义地理解为交互点(类似于去政务大厅的办事窗口)、函数/方法 。但在具体场景的使用中,有时会默认背景,比如将API简称为接口(实际上是包含关系,而不是等价关系) 。
广义上讲,接口和协议可以一起使用,它们都是高度抽象的概念 。狭义上,协议有各种具体的协议,接口有各种具体的接口(如JAVA中有可定义的interface,常用来与抽象类比较),这时两者是不同 。
一句话概括:
协议是多个通信实体之间互通的规则和范式 。接口是按照协议规定规则的具体实现 。
二者的联系:协议是接口的既定规则,接口是协议的具体实现 。
二者的区别:不需要过分区分协议和接口,他们的联系更加紧密 。
协议介绍
NFS协议
1.定义:NFS?.NETwork File System,网络文件系统)是由SUN公司研制的UNIX表示层协议(presentation layer protocol)文件共享协议,能使使用者访问网络上别处的文件就像在使用自己的计算机一样 。
2.NFS 差异化特点
a.NFS只提供基本的文件处理功能,而不提供任何四层TCP/IP与OSI七层数据传输功能,需要借助 RPC 协议才能实现 TCP/IP 数据传输功能;
b.NFS 默认没有加密,对客户端来说是完全透明的,且仅依靠 IP 地址或主机名来决定是否允许客户端挂载指定的共享目录【明文传输】,需要可通过 Kerberos 进行认证及加密 。
3.NFS与其他文件共享协议共同点:使用C/S 架构 。
4.NFS实现原理:共享资源的属主、属组和权限 。
a.NFS 服务器和客户端通过 UID 和 GID 来识别共享资源的所有者信息 。当客户端挂载 NFS 共享目录时,共享目录中资源的 UID 和 GID 将与服务器上面的保持一致;而客户端会将 UID 和 GID 映射到客户端上所对应的用户名和组名 。NFS 服务器与客户端上共享资源的权限及 ACL 信息(若支持)将保持一致 。
SMB协议
1.定义:SMB网络文件共享系统协议,全名服务器消息块(Server Message Block),允许应用程序和终端用户从远端的文件服务器访问文件资源,CIFS(通用互联网文件系统 Common Internet File System)是SMB的衍生协议 。
2.SMB与NFS的区别:操作系统OS不同,NFS适配linux操作系统,SMB适配windows/linux,但是兼容linux时相关存储性能会收到影响 。
3.SMB协议运用过程:SMB协议协商(Negotiate)> 建立SMB会话(Session Setup)> 连接一个文件分享(Tree Connect)> 文件系统操作 > 断开文件分享连接(Tree Disconnect)> 终止SMB会话(Logoff) 。
iSCSI协议
1.定义:iSCSI(Internet Small Computer System Interface),Internet小型计算机系统接口,又称为IP-SAN,是一种基于因特网及SCSI-3协议下的存储技术,由IETF提出,并于2003年2月11日成为正式的标准 。
2.实现原理:iSCSI利用了TCP/IP的port 860 和 3260 作为沟通的渠道 。透过两部计算机之间利用iSCSI的协议来交换SCSI命令,让计算机可以透过高速的局域网集线来把SAN模拟成为本地的储存装置 。
3.应用场景/功能:可以与任意类型的 SCSI 设备进行通信,总是使用它来连接服务器计算机 (例如,数据库服务器) 和磁盘卷上存储阵列 。
a.使用iSCSI SAN 的目的通常有以下两个:
i.存储集成公司希望将不同的存储资源从分散在网络上的服务器移动到统一的位置(常常是数据中心);这可以让存储的分配变得更为有效 。SAN 环境中的服务器无需任何更改硬件或电缆连接就可以得到新分配的磁盘卷 。
ii.灾难恢复公司希望把存储资源从一个数据中心镜像到另一个远程的数据中心上,后者在出现长时间停电的情况下可以用作热备份 。特别是,iSCSI SAN 使我们只需要用最小的配置更改就可以在 WAN 上面迁移整个磁盘阵列,实质上就是,把存储变成了“可路由的”,就像普通的网络通信一样 。
POSIX协议
1.定义:可移植操作系统接口POSIX(Portable Operating System Interface)是IEEE为要在各种UNIX操作系统上运行软件,而定义API的一系列互相关联的标准的总称 。
2.原理应用程序通过应用编程接口(API)而不是直接通过系统调用来编程(即并不需要和内核提供的系统调用来编程) 。
a.一个API定义了一组应用程序使用的编程接口 。它们可以实现成调用一个系统,也可以通过调用多个系统来实现,而完全不使用任何系统调用也不存在问题 。
推荐阅读
- 5G黄金和千足金的区别是什么?一文全了解!
- 最高7000元!特斯拉最新引荐购车奖励规则公布,一图读懂!涉Model 3/Y、Model S/X
- 冻9颗卵子,放弃百万退休金,翁帆的野心,藏在读懂杨振宁的梦
- 一文看懂基础模型的定义和工作原理
- 一文带您快速入门Kafka
- 北京高温红色预警!一图读懂如何预防热射病
- 玻璃种翡翠,透明如水,你能读懂这份清凉吗?
- 翡翠中的纹、裂、棉,一文搞懂
- 小S复工!与型男贴身拍照,膝盖淤青、眼眶红肿,背后boss疑曝光
- 一文搞懂CSS line-height和vertical-align