SMB协议详解之-SMB/CIFS/SMB2/NFS/Samba/Netbios/NTLM/Kerberos关系和区别

本文介绍了SMB协议及其与CIFS、SMB1、SMB2、SMB3、Samba、NFS等概念的关系。SMB最初由IBM开发,广泛应用于Windows环境中的文件共享。CIFS是SMB的早期版本,主要在早期Windows系统中使用。SMB1、SMB2和SMB3是SMB协议的发展和改进版。Samba是SMB协议在Linux、Unix和MacOS上的实现。NFS是另一种文件共享协议,主要用于Linux/Unix系统。SMB协议可以在NetBIOS和TCP协议之上运行,并能集成NTLM、Kerberos等身份验证协议。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SMB协议是在windows环境中非常常见的一中协议,在学习SMB协议的过程中经常出现SMB2,CIFS,Samba,Netbios,NTLM,kerberos等概念,如下下图1,那么SMB和这些观念之间的关系是什么呢。 在详细介绍SMB协议的细节之前,本文尝试阐述SMB协议与这些概念之间的关系,理清楚这些关系后,将有助于SMB协议的学习,同时后续专栏《计算机网络协议快速入门教程》章节将会对各种概念和协议进行详细介绍。作为专栏《计算机网络协议快速入门教程》中的一篇。
在这里插入图片描述
图1

什么是SMB

  • SMB是Server Message Block的缩写。
  • SMB最初由IBM开发设计,后续微软尔等公司对该协议进行了增强和完善。
  • SMB协议设计的初衷是在局域网中(例如域环境,域环境通常是局域网环境)进行文件共享,打印机服务调用等。
  • 由于微软将SMB协议的实现默认集成到了各个版本的windows系统中,使得SMB协议成为windows域环境中最为常见的基础协议。
  • SMB仅仅表示的是一种协议的统称,由于SMB协议自从诞生之日开始也是处于不断地发展之中,因此SMB协议发展出出了不同的版本例如CIFS,SMB1,SMB2,SMB3等等。

什么是CIFS

  • CIFS是common internet file system的缩写,是微软针对SMB协议的早期版本的实现。
  • CIFS系统在早期随着微软的windows版本进行发布,主要是windowsNT以及windows95等系统。
  • CIFS是针对SMB协议正式实现的一个版本,并且集成到windows之中,从而得到一定范围的应用,因此很多人认为CIFS就是SMB1的别名。如下图2所示,详细链接见这里
    在这里插入图片描述
    图2
  • 由于在后续的windows版本中,不在使用CIFS,而是改用SMB(SMB1)表示对于CIFS的扩展,因此CIFS只存在于特定几个版本的windows系统中。

什么是SMB1,SMB2,SMB3

  • SMB1的实现其实是要早于CIFS的,但是由于早期SMB1不是正式的版本(CIFS是正式版本),因此早期的SMB1可以忽略。
  • 在后续的windows版本中,微软在CIFS基础上继续完善SMB协议,但是并没有使用CIFS的名称,而是改用了SMB,更为准确的叫法应该是正式版本的SMB1。可以认为这个时候的SMB1是对于早起非正式SMB1以及CIFS的统一以及加强。
  • 由于微软把此时的版本默认称之为SMB(而非SMB1),导致很多人认为SMB协议是windows专有,事实上SMB协议还有其他系统的实现,见后续。
  • 在windowsXP等系统中,均使用SMB1 ,关于正式SMB1的详细链接见这里,如下图3:
    在这里插入图片描述
    图3
  • 同样的SMB2和SMB3即微软针对SMB协议的进一步改进演进的版本,关于SMB2,SMB3的详细链接见这里
  • 除了SMB2,SMB3等大版本之外,SMB协议还有很多小的版本,每个版本针对安全性以及性能进行了改进,实现特定的功能。这些不同的版本被称之为SMB的dialects,见下图4和图5:
    在这里插入图片描述

图4
在这里插入图片描述

图5

  • 由于微软针对SMB开发了诸多不同的版本,每个版本可能只适用于某些windows操作系统,各个不同的SMB实现版本和windows系统的对应关系如下图6:
    在这里插入图片描述
    图6
    对于CIFS主要针对windowsNT和windows95,SMB1主要针对windowsXP和 Server 2003。

什么是samba

  • Samba和CIFS以及SMB1,SMB2,SMB3一样,都是SMB协议的一种实现。
  • 不同的是Samba针对的是Linux,Unix以及MacOS的实现,而CIFS,SMB1等版本针对是windows系统的实现。
  • 和TCP等协议一样,SMB协议本身只是定义了要实现的能力方向,但是其软件的实现会因操作系统,网络环境等出现不同的版本。
  • 在Linux等系统中可以查看Samba的版本信息,如下图7:
    在这里插入图片描述

图7

什么是NFS

  • 通常来说,描述同一中事务的方式往往不止一种,针对文件共享的协议也不例外。
  • NFS是Network File System的缩写,也是用来描述文件共享的协议,是有Sun公司设计开发
  • 由于历史的一些原因,NFS只在Linux/Unix系统中流行。就像SMB由微软主导开发,主要在windows中流行一样
  • NFS的资料介绍可以参考RFC文档,见这里

SMB 和TCP,Netbios,NTLM等协议关系

SMB是一个承上启下的协议,向上可以承载RFC等协议,同时可以集成NTLM,Kerberos等身份认证协议,向下可以运行在NetBios以及TCP协议之上,关于这些协议之间的关系在微软的官方也有给出描述,如下图8,图9:
在这里插入图片描述
图8
在这里插入图片描述
图9

上图说明了SMB,SMB2和TCP,Netbios,CIFS,RPC等协议的关系,其中图中的SPNG是 Simple and Protected GSS-API Negotiation Mechanism (SPNEGO) Extension的缩写,其中就包含可NTLM以及Kerberos协议,在后续专栏中会进行详细的说明。

本文为优快云村中少年原创文章,未经允许不得转载,博主链接这里

CIFS(Common Internet File System) 协议 CIFS 是一个新提出的协议,它使程序可以访问远程Internet计算机上的文件并要求此计算机的服务。CIFS 使用客户/服务器模式。客户程序请求远在服务器上的服务器程序为它提供服务。服务器获得请求并返回响应。CIFS是公共的或开放的SMB协议版本,并由Microsoft使用。SMB协议现在是局域网上用于服务器文件访问打印的协议。象SMB协议一样,CIFS在高层运行,而不象TCP/IP协议那样运行在底层。CIFS可以看做是应用程序协议如文件传输协议超文本传输协议的一个实现。 SMB协议是基于TCP-NETBIOS下的,一般端口使用为139,445。 服务器信息块(SMB协议是一种IBM协议,用于在计算机间共享文件、打印机、串口等。SMB 协议可以用在因特网的TCP/IP协议之上,也可以用在其它网络协议如IPXNetBEUI 之上。   SMB 一种客户机/服务器、请求/响应协议。通过 SMB 协议,客户端应用程序可以在各种网络环境下读、写服务器上的文件,以及对服务器程序提出服务请求。此外通过 SMB 协议,应用程序可以访问远程服务器端的文件、以及打印机、邮件槽(mailslot)、命名管道(named pipe)等资源。   在 TCP/IP 环境下,客户机通过 NetBIOS over TCP/IP(或 NetBEUI/TCP 或 SPX/IPX)连接服务器。一旦连接成功,客户机可发送 SMB 命令到服务器上,从而客户机能够访问共享目录、打开文件、读写文件,以及一切在文件系统上能做的所有事情。   从 Windows 95 开始,Microsoft Windows 操作系统(operating system)都包括了客户机服务器 SMB 协议支持。Microsoft 为 Internet 提供了 SMB 的开源版本,即通用 Internet 文件系统 (CIFS)。与现有 Internet 应用程序如文件传输协议(FTP)相比, CIFS 灵活性更大。对于 UNIX 系统,可使用一种称为 Samba 的共享软件。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

村中少年

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值