AFP vs SMB vs NFS: 谁是最好的数据传输协议?

news2024/9/19 10:43:32

目录

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 WINLINUXMAC
SMB1:451:452:28
AFP2:021:26
NFS1:561:31

Windows 仅原生支持 SMB(如果要使用NFS需要额外配置) 。因此,在没有任何竞争的情况下,在 Windows 中下载文件的最快数据传输协议是 SMB。

在 MAC 上下载最快的文件传输协议是 AFP。 最快的 Linux 下载是通过 SMB 实现的。

总体而言,带有 AFP 的 MAC 在下载方面表现最佳。

DOWN WINLINUXMAC
SMB22% slower 22% slower 72% slower 
AFP42% slower Fastest
NFS35% slower 6% slower 

我们还测试了上传速度。 同样,Windows 仅支持 SMB,这也非常接近整体最快速度。

UPWINLINUXMAC
SMB1:502:121:49
AFP2:141:55
NFS1:462:23

Linux 中最快的上传数据传输协议是 NFS。 MAC 上的快速上传是通过 SMB 协议。

UPWINLINUXMAC
SMB4% slower 25% slower 3% slower 
AFP26% slower 8% slower 
NFSFastest35% 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 的优点

  1. 网络文件共享成本低或无成本
  2. 配置简单可以轻松使用
  3. 访问远程的共享文件就如同访问本地共享文件,这使得其可以通过Shell命令做一些高效的操作
  4. NFS 减少了对 USB 磁盘或 DVD 等可移动媒体存储的要求并提高了安全性

NFS 的缺点

  1.  NFS 基于 RPC,不是很安全。 没有防火墙的 RPC 通信是有风险的。 它应该只允许在受信任的网络上
  2. NFS 可以在高流量负载的情况访问速度会变慢。 NFSv4 和 NFSv4.1 都有其局限性。 然而,最大带宽随着版本 NFSv4.2 有所增加

SMB的优缺点


SMB的优点

  1. SMB 可以运行在 Linux 、Windows 、Mac
  2. SMB 允许基于用户的验证,有助于多次访问和打印机共享
  3. 协议支持ACL文件共享或网络间传输
  4. 与 NFS 相比,SMB 中读取事务的速度更快。 读取速率为 4 MB

SMB的缺点

  1. 无论文件是打开还是关闭,您都无法在 SMB 中重命名文件
  2. 由于 Samba 是一个开源项目,SMB 并不总是提供与 Microsoft 实施的完美兼容性。
  3. 相较于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)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/454535.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Docker的安装和镜像容器的基本操作

Docker的安装和镜像容器的基本操作 Docker 概述Docker与虚拟机的区别namespace的六项隔离Docker核心概念 安装 DockerDocker 镜像操作搜索镜像获取镜像镜像加速下载查看镜像信息查看下载的镜像文件信息查看下载到本地的所有镜像根据镜像的唯一标识 ID 号,获取镜像详…

基于struts + spring + hibernate的题库与试卷管理系统源码

3需求分析和设计方案 3.1 题库管理 3.1.1 试题管理需求分析 试题管理是整个系统非常核心的模块,它基于知识点模块、章节模块、课程模块、题型管理模块完成的基础上的。其中核心元素是试题,通过试题将题库中的各模块连接起来。 试题管理分为题库录入和…

MyBatisPlus学习

官网:https://mp.baomidou.com/ MyBatis Plus,简化 MyBatis ! 1.概述 需要的基础:把我的MyBatis、Spring、SpringMVC就可以学习这个了! 为什么要学习它呢?MyBatisPlus可以节省我们大量工作时间&#xff0…

随机模型预测控制(SMPC)——考虑概率约束(Matlab代码实现)

目录 💥1 概述 📚2 运行结果 🎉3 参考文献 👨‍💻4 Matlab代码 💥1 概述 模型预测控制(MPC)又称为滚动时域控制和滚动时域控制,是一种强有力的工程应用技术。MPC的价…

springboot +flowable,处理 flowable 的用户和用户组(一)

一.简介 对于flowable是什么以及关于此框架的具体信息可以参看此项目的官方文档:https://www.flowable.org/docs/userguide/index.html Flowable is a light-weight business process engine written in Java.这是官网文档对此框架的完美解释:Flowable…

AIGC技术周报|清华、北邮新研究:让文生图AI更懂你

AIGC通过借鉴现有的、人类创造的内容来快速完成内容创作。ChatGPT、Bard等AI聊天机器人以及DallE 2、Stable Diffusion等文生图模型都属于AIGC的典型案例。「AIGC技术周报」将为你带来最新的paper、博客等前瞻性研究。 OpenAGI:当大模型遇见领域专家 “愿原力与大型…

ctfshow_WEB_web2 wp

前言 写这个是因为。。。我想摆烂,就去从最简单的题开始做了,想着交一道题是一道嘛,总之觉得这样做很适合欺骗安慰自己(逃 然后我发现我错了,我第二道题就做了好久还没做出来,甚至最后去点开了hint…… ps…

多数据源事务

使用 DATASOURCE 模式后,可能一个操作涉及到多个数据源。例如说:创建租户时,即需要操作主库,也需要操作租户库。 考虑到多数据的数据一致性,我们会采用事务的方式,而使用 Spring 事务时,会存在…

FTP服务--文件传输协议

FTP服务--文件传输协议 一、FTP服务端口二、FTP服务主动模式与被动模式三、FTP服务配置方法设置匿名用户访问的FTP服务(最大权限)配置文件中常见字段的含义 一、FTP服务端口 FTP服务器默认使用TCP协议的20,21端口与客户端进行通信 20端口:用于建立数据连接&#x…

GDB调试的基本使用、GDB调试多进程

1. 编译时加选项-g,生成具有调试信息的程序 gcc -g test.c -o test 2. 启动GDB (1)启动GDB: gdb test (2)设置运行时参数:(主函数中可接收运行时参数) set args //…

设计模式实现之state模式

状态模式的定义:Allow an object to alter its behavior when its internal state changes. The object will appear to change its class.(当一个对象在状态改变时允许其改变行为,这个对象看起来像其改变了其类)。 一个对象可以…

KVM Bridge 配置

目录 Bridge方式原理 网桥方式配置步骤 1、编辑修改网络设备脚本文件,增加网桥设备br0 2、编辑修改网络设备脚本文件,修改网卡设备ens33 3、重启宿主机查看配置 虚拟机配置 Bridge方式原理 如上图,网桥的基本原理就是创建一个网桥并将…

IOC使用Spring实现附实例详解

目录 一、相关导读 1. Maven系列专栏文章 2. Mybatis系列专栏文章 3. Spring系列专栏文章 二、前言 Spring简介 Spring体系结构 三、Spring实现IOC 1. 创建Maven工程,引入对应依赖 2. 创建实体类,Dao接口及实现类 3. 编写xml配置文件 4. 测试…

【翻译一下官方文档】之uniapp基础内容

目录 表单控件绑定 v-model v-model结合表单 easycom组件规范 传值 prop emit 表单控件绑定 v-model 你可以用 v-model 指令在表单 input、textarea 及 select 元素上创建双向数据绑定。它会根据控件类型自动选取正确的方法来更新元素。尽管有些神奇,但 v-mo…

如何高效提高倾斜摄影三维模型顶层合并的技术方法分析

如何高效提高倾斜摄影三维模型顶层合并的技术方法分析 1、倾斜摄影三维模型顶层合并 1.1倾斜摄影三维模型是一种基于倾斜摄影技术,通过多个角度拍摄同一区域的影像,利用计算机图像处理和三维重建技术生成的三维地理信息数据。由于一个大区域可能需要多块…

智能家居代码架构---简单工厂模式

(11条消息) 智能家居 (10) ——人脸识别祥云平台编程使用(编译libcurl库支持SSL,安装SSL依赖库libssl、libcrypto)openssl 依赖库行稳方能走远的博客-CSDN博客 看上面这个博客的往期文章 代码设计经验的总结,稳定,拓展性更强。一系列编程思…

倾斜摄影三维模型格式转换OSGB 到3Dtitles 实现的常用技术方法

倾斜摄影三维模型格式转换OSGB 到3Dtitles 实现的常用技术方法 倾斜摄影三维模型是一种用于建立真实世界三维场景的技术,常用于城市规划、土地管理、文化遗产保护等领域。在倾斜摄影模型中,OSGB格式和3Dtiles格式都是常见的数据格式。其中,OS…

IJKPLAYER源码分析-主结构

前言 本文主要分析IJKPLAYER源码软解主流程,硬解将另起一篇分析。所用IJKPLAYER版本号: #define IJKPLAYER_VERSION "f0.7.17-28-gd7040f97" 主结构 IJKPLAYER播放器的解协议、解复用、解码、音视频同步与显示播放,以及主要线程等…

智能家居项目整合(网络控制线程、语音控制线程,火灾报警线程)

mainPro.c&#xff08;主函数&#xff09; #include <stdio.h> #include <string.h> #include "contrlEquipments.h" #include "inputCommand.h" #include <pthread.h> #include <unistd.h>struct Equipment *findEquipByName(ch…

人工智能在医疗保健中的应用与创新

引言 随着科技的不断发展&#xff0c;人工智能&#xff08;AI&#xff09;逐渐在各个领域展现出巨大的潜力&#xff0c;特别是在医疗保健行业。人工智能技术的引入为医疗保健领域带来了创新的诊断和治疗方法&#xff0c;提高了病患的生活质量和医疗保健效率。本文将探讨人工智…