目录
SMB: 什么是SMB 协议?
NFS: 什么是NFS协议?
AFP: 设么是AFP协议?
如何选择合适的传输协议?
场景1: 大型企业
场景2: 小型网站设计公司
场景3: Linux软件开发组
可以在互联网上使用这些协议吗?
AFP vs SMB vs NFS 传输速率对比
NFS vs SMB 传输速率对比
总结:
参考文档:
SMB: 什么是SMB 协议?
SMB (Server Message Block) 协议是1983年由IBM公司提出的,为了DOS系统(Windows基于DOS开发)开发的一种用于在计算机间共享文件、打印机、串口的协议。截止今天,SMB已经发展到3.1.1版本,主要与Microsoft Windows操作系统捆绑在一起,并且Linux、Mac现在都已经支持SMB
SMB 使用服务器客户端架构。 要通过网络共享的文件在计算机上配置,然后客户端计算机通过输入主机的 IP 地址或主机名来访问这些 SMB 共享文件。但是,SMB 不会将网络安装的目录视为本地目录。 SMB下,网络文件和本地文件有很大区别。
NFS: 什么是NFS协议?
Network File System (NFS) 是一种分布式文件系统协议,最初由 Sun Microsystems 于 1984 年开发。它最初是为运行 UNIX 操作系统的电脑而创建的,但因为它基于 IETF(Internet Engineering Task Force)标准开发,所以NFS适合大多数常见操作系统(Mac、Linux、Windows)。 NFS 目前已经从第 3 版发展到第 4 版,具有许多改进和新功能。
NFS 不提供打印服务或共享串行端口服务(而SMB提供),因为 UNIX 操作系统通常已经通过其他方法满足了这些需求。 也许正是因为它专注于文件共享服务,NFS 比 SMB 具有一些效率优势。 对于小型随机读取和写入,它始终优于 SMB。 但是,NFS(至少在 NFSv4 之前)的安全性低于 SMB。 NFSv4.1 中的一个重要特性是会话中继机制(Session trunking mechanism),当服务器和客户端上有多个网络接口可用时,它提供了更多的访问容错性。
NFS最好在局域网(LAN)上使用,虽然从技术上来说,NFS可以跑在广域网(WAN)上,但NFS 并不擅长处理复杂的网络地址转换和路由配置,所以文件访问的效率会非常低。
AFP: 设么是AFP协议?
Apple Filing Protocol(AFP)是由Apple公司开发的,最初称为“AppleTalk Filing Protocol”,因为当时它运行在AppleTalk网络上。 它于 1988 年在 Macintosh System 6 中首次向公众发布。当时的 AppleTalk 网络是只受用与 Apple网络,因此 AFP 仅限于 Apple 产品。 即便如此,它还是很受欢迎,因为当时 Apple Mac上其他的文件共享软件很贵。
Apple 对 AppleTalk 做出了一些明智的设计选择,这提高了 AFP 的采用率。 其一是 AppleTalk 网络堆栈遵循 OSI 模型开发,该模型目前已经是绝对的主流,在 AppleTalk 在被淘汰后,还是可以继续使用 AFP,就是因为其基于OSI。 除此之外,Mac OS 中的网络几乎无需维护,而且对于非技术用户来说也非常容易设置。
随着计算机网络在以太网上变得更加标准化,并且随着各种操作系统变得更加异构,对异构软件连通性的渴望,使得 AFP 与其他操作系统甚至某些 NAS 系统一起使用成为可能,目前Mac OS 上也支持使用 SMB 和 NFS 。
如何选择合适的传输协议?
如何选择合适的传输协议,要看具体使用场景,我们看下以下场景如何选择
场景1: 大型企业
在这种情况下,公司有一个本地数据中心、一个相对快速的 LAN,并且主要是 Microsoft Windows 服务器和个人计算机,这个选择很明确。
你需要使用的协议: SMB
使用SMB的理由: 关于支持哪个或哪些版本的 SMB 可能会有疑问,但选择它是没错的。 如果有一小群 Mac 或 Linux 用户,则由 IT 组织或高层管理人员决定是否为他们支持 NFS 或 AFP。 该决定可能更多地基于安全风险而不是性能或易用性。 虽然支持所有三种协议是可能的,但更多的复杂性可能会使得IT部门维护工作变得艰巨
场景2: 小型网站设计公司
在这种情况下,很有可能在此环境中有很多 Mac 用户(但不是100%)。 因此,AFP 很可能成为主要受支持的文件共享协议。 它与 Mac OS 操作系统完美集成,性能良好,并且Mac上使用AFP具备更好的保密性(得益于Mac系统出色的网络安全架构)
你需要使用的协议: AFP and SMB
使用 AFP and SMB 的理由: 一家公司全部为Mac 电脑的可能性比较小(Apple 电脑比大多数基本的 Windows 兼容电脑都贵)例如,会计部门可能正在使用仅在 Windows 上运行的软件,不需要高效的视频性能、CPU 或内存。 因此,需要为这组用户支持 SMB,因为没有适用于 Windows 的 AFP 客户端。 这两个组很可能会访问不同的共享,因此将 SMB 添加到组合中可能不会增加太多复杂性。 SMB 受 Mac OS 支持,即使是 Mac 用户,公司也可以决定只支持 SMB,但 AFP 是 Mac 用户的首选协议。
场景3: Linux软件开发组
NFS 多年来一直是 UNIX/Linux 世界的一部分,对于那些主要使用这些操作系统的人来说是最熟悉的协议。 它运行良好,Linux 管理员它的部署工作
你应该使用的协议: NFS
使用NFS的理由: 使用和运行 Linux 操作系统的群体可能会选择使用 NFS 来满足他们的文件共享需求。 但是,与前面两个示例一样,具有相同操作系统的同构系统网络很少见。 即使是一小部分 Windows 或 Mac 用户,在这种情况下,也可以加入 SMB ,或者可能同时支持 SMB 和 AFP,但是考虑到NFS的通用性,只NFS是不会错的
可以在互联网上使用这些协议吗?
这些协议都没有提供 Internet 上安全工作的机制。 事实上,大多数 Internet 服务提供商 (ISP) 可能会阻止此类流量。 如果他们确实允许流量,安全是一个主要问题。 如果强烈需要在 Internet 上共享文件,则可以使用其他方法,虽然不太方便,但更能保护数据。
大多数企业使用专用广域网 (WAN) 来连接他们的各种设施。 这些包括租用安全电路。 对于较小的办公室和个人远程工作者,使用虚拟专用网络 (VPN) 连接到公司 LAN,它可以在 Internet 上运行,为流量(包括文件共享协议)运行提供安全的加密“隧道”。 在这种情况下,限制因素是互联网连接的速度、延迟和可靠性。 多年来,所有这些因素都有了巨大的改进,在家中通过VPN连接 Internet 并且使用文件共享协议的速度现在也是非常快的。
AFP vs SMB vs NFS 传输速率对比
我们通过下面的测试来对比NFS、AFP、SMB作用在Linux、Windows、Mac系统上的传输速率如何
我们接下来会测试上传和下载的速度,实验对象是4个9GB的视频.
所以这是我们下载这 4 个视频文件的第一个测试。 结果可能会因文件数量和文件大小而异。 小文档文件可能会导致非常不同的性能。
DOWN | WIN | LINUX | MAC |
SMB | 1:45 | 1:45 | 2:28 |
AFP | 2:02 | 1:26 | |
NFS | 1:56 | 1:31 |
Windows 仅原生支持 SMB(如果要使用NFS需要额外配置) 。因此,在没有任何竞争的情况下,在 Windows 中下载文件的最快数据传输协议是 SMB。
在 MAC 上下载最快的文件传输协议是 AFP。 最快的 Linux 下载是通过 SMB 实现的。
总体而言,带有 AFP 的 MAC 在下载方面表现最佳。
DOWN | WIN | LINUX | MAC |
SMB | 22% slower | 22% slower | 72% slower |
AFP | 42% slower | Fastest | |
NFS | 35% slower | 6% slower |
我们还测试了上传速度。 同样,Windows 仅支持 SMB,这也非常接近整体最快速度。
UP | WIN | LINUX | MAC |
SMB | 1:50 | 2:12 | 1:49 |
AFP | 2:14 | 1:55 | |
NFS | 1:46 | 2:23 |
Linux 中最快的上传数据传输协议是 NFS。 MAC 上的快速上传是通过 SMB 协议。
UP | WIN | LINUX | MAC |
SMB | 4% slower | 25% slower | 3% slower |
AFP | 26% slower | 8% slower | |
NFS | Fastest | 35% slower |
NFS vs SMB 传输速率对比
上传(或写)
Files: 7000 files of 10 KB each
NFS write time: 37 seconds
SMB write time: 101 seconds
Files: 245 files of 1 MB each
NFS write time: 23 seconds
SMB write time: 27 seconds
Files: 1 file of 500 MB
NFS write time: 45 seconds
SMB write time: 45 seconds
Files: 1 file of 3.5 GB
NFS write time: 323 seconds
SMB write time: 324 seconds
下载(或读)
Files: 7000 files of 10 KB each
NFS read time: 26 seconds
SMB read time: 58 seconds
Files: 245 files of 1 MB each
NFS read time: 24 seconds
SMB read time: 28 seconds
Files: 1 file of 500 MB
NFS read time: 45 seconds
SMB read time: 48 seconds
Files: 1 file of 3.5 GB
NFS read time: 330 seconds
SMB read time: 347 seconds
结果证明:
对于中型或小型文件,NFS 是极佳的。 对于较大的文件,两种协议的性能相似。
NFS 和 SMB 在顺序读取情况下的性能在使用纯文本时是相似的。 但是在加密方面,NFS 稍微领先于 SMB。
在随机读取中,NFS 和 SMB 在纯文本方面的表现不相上下。 但是,NFS 具有更好的加密功能。
在随机写入的情况下,无论是明文还是加密,NFS都优于SMB。
如果使用 rsync 进行文件传输,NFS 在明文和加密方面是更好的选择。
总结:
NFS 的优点和缺点
NFS 的优点
- 网络文件共享成本低或无成本
- 配置简单可以轻松使用
- 访问远程的共享文件就如同访问本地共享文件,这使得其可以通过Shell命令做一些高效的操作
- NFS 减少了对 USB 磁盘或 DVD 等可移动媒体存储的要求并提高了安全性
NFS 的缺点
- NFS 基于 RPC,不是很安全。 没有防火墙的 RPC 通信是有风险的。 它应该只允许在受信任的网络上
- NFS 可以在高流量负载的情况访问速度会变慢。 NFSv4 和 NFSv4.1 都有其局限性。 然而,最大带宽随着版本 NFSv4.2 有所增加
SMB的优缺点
SMB的优点
- SMB 可以运行在 Linux 、Windows 、Mac
- SMB 允许基于用户的验证,有助于多次访问和打印机共享
- 协议支持ACL文件共享或网络间传输
- 与 NFS 相比,SMB 中读取事务的速度更快。 读取速率为 4 MB
SMB的缺点
- 无论文件是打开还是关闭,您都无法在 SMB 中重命名文件
- 由于 Samba 是一个开源项目,SMB 并不总是提供与 Microsoft 实施的完美兼容性。
- 相较于NFS,SMB处理小文件的速率明显较慢
参考文档:
AFP vs SMB vs NFS: Which Is the Best Data Transfer Protocol?
AFP Vs SMB Vs NFS: Which Is The Best Data Transfer Protocol?
NFS vs SMB – What’s the Difference (Pros and Cons)