SMB(全称是
Server Message Block)是一个
网络协议名,它能被用于
Web连接和客户端与服务器之间的
信息沟通。SMB最初是
IBM的贝瑞·费根鲍姆(Barry Feigenbaum)研制的,其目的是将
DOS操作系统中的本地文件接口“中断13”改造为
网络文件系统。
研究背景
随着网络通信技术和网络
资源共享机制的不断发展,针对网络间支持
数据共享的协议和机制等技术的研究受到了研究人员的广泛关注。其中,网络文件共享
传输过程的安全性研究更是成为该领域的热点问题。其中,SMB(Server Message Block)协议作为一种局域网文件共享
传输协议,常被用来作为共享
文件安全传输研究的平台。但是,
SMB协议中采用
控制文件安全传输的机制是使用客户
身份验证的方式,该方式通过客户端向服务器端发送验证密码来获取文件传输的权限,不过针对该机制的
网络攻击相对严重,
攻击程序通过对验证密码的截获来窃取文件的
访问权限,局域网下文件传输的安全性得不到保障。
发展历程
SMB协议可以为
局域网用户提供相关的功能和机制,来保证传输的可靠性。局域网中90%的
数据包以及95%的字节是通过SMB协议进行传输,这是为了解决网络的稳定性和
数据流在共享带宽时的
公平性、
拥塞控制及效率等问题。由于SMB传输应用的
普遍性和重要性,关于SMB传输这一课题计算机领域中很多学者致力于这一方面潜心研究,就SMB协议及其多个版本在各类网络下的
传输效率问题做了大量的研究和实验。在局域网发展之初该网内的
文件共享是通过
FTP协议进行传输。用户必须首先从服务器下载该文件的数据到本地(客户端),然后对
数据文件进行修改操作,之后,用户重新将客户端的文件上传到
FTP服务器中,但是用户不能直接对FTP上的数据信息等进行修改操作。如果用户在该过程中对文件进行了修改操作,但并没有将修改后的文件上传到FTP服务器,那么之后申请读取该文件的用户就无法下载最新的文件。
1984年,安德鲁Tridgwell曾遇到这样的问题,他用三台
个人电脑都运行
DOS系统,通过电脑计算机DEC的Unix
数字系统以及Sun公司的Unix系统进行试验。当时,安德鲁Tridgwell写了一个程序,以检测
通信协议在DEC的Unix系统下计算机处理哪些信息,在信息
传输过程中,对程序中的
相关参数进行更改,便可读取来自不同计算机的
信息文件等内容,进而实现了计算之间的信息数据的互通。通过这种方式他们发现了一种可以进行操作系统之间信息通信的协议,并在此协议的基础上进行改进,将改进后的协议命名为SMB协议,该协议的文件
传输系统可以实现不同操作系统间文件和信息的共享。在这之后,安德鲁Tridgwell开始应用SMB服务器作为软件的
注册商标。这是SMB的由来。为了能够在不同的Windows主机设备之间实现共享文件数据的目的,便出现了更高版本的SMB协议。但最常见的(在Windows98,WindowsNT中,
Windows2000和XP)是
NTLM0.12版本。SMB协议可以实现相邻网络中间的计算机中文件的共享功能,该协议包含两部分分别是服务器端和客户端,它通过网络中的TCP、NetBEUI等通信协议建立会话连接,然后用户可以通过该协议的客户端发起文件共享请求,并通过服务器接收到的请求将文件发送给用户来实现文件的共享。
SMB1.0协议由于在文件共享传输过程中存在的传输效率低以及传输空间小等缺陷被人们所摒弃。为了更好的实现网络中文件的共享过程,在SMB1.0的基础上开发了新的网络文件传输协议,并将其命名为SMB2.0。该协议在实现了文件共享传输的
基本功能的基础上对文件传输的效率、文件缓存的空间以及文件并发传输等问题进行改进,使得在局域网或更高配置的网络环境下,文件传输过程的速度和效率等得到了很大的提升。并且,由于对于SMB研究领域已经出现了可以对该文件共享过程进行信息截取等恶意攻击方法,故而在SMB版本更新的过程中加入了对文件传输过程的安全性
保障机制。在对SMB协议的研究过程中,很多文献均选择对文件传输效率等问题进行改进,但是对该协议的本质内容并没有做改变,其主要原因是SMB协议自身的复杂性和其对操作系统的
依赖性。但是,正是由于SMB依赖于操作系统等底层的架构,所以对于文件的传输等过程的控制和性能提升等操作可以通过它所依赖的底层系统来进行修改,进而达到对文件传输过程的控制和优化。
SMB协议
后来
微软对这个发展进行了重大更改,这个更改后的版本也是最常见的版本。微软将
SMB协议与它和3Com一起发展的网络
管理程序结合在一起,并在
Windows for Workgroups和后来的Windows版本中不断加入新的功能。
SMB一开始的设计是在
NetBIOS协议上运行的(而NetBIOS本身则运行在
NetBEUI、
IPX/SPX或
TCP/IP协议上),
Windows 2000引入了SMB直接在TCP/IP上运行的功能。在这里我们必须区分SMB协议和运行在这个协议上的SMB业务,以及NetBIOS和使用SMB作为认证隧道的DCE/RPC业务。此外我们还要区分主要(但不仅仅)直接使用NetBIOS
数据报的“网络邻居”协议。
1996年,Sun推出Web
NFS的同时,微软提出将SMB改称为Common Internet File System。此外微软还加入了许多新的功能,比如
符号链接、
硬链接、提高文件的大小。微软还试图支持
直接联系,不依靠NetBIOS,不过这个试图依然处于尝试阶段,并需要继续完善。微软向
互联网工程工作小组提出了
部分定义作为互联网草案。不过这些提案
均已过期。
由于SMB协议对于与占主要地位的
Microsoft Windows平台通讯时的重要性,而该平台使用的SMB协议与初始的版本相比有巨大的改变,因此Samba项目就是被创立来
逆向工程来提供一个与SMB
软件兼容的
自由软件,使得非
微软操作系统也能够使用它。
SMB3.0
服务器信息块(SMB)是一个网络
文件共享协议,它允许应用程序和
终端用户从远端的
文件服务器访问文件资源。
微软最初将SMB定位为
Windows Server 2008和Vista系统中通用互联网文件系统(CIFS)的后续产品。最新版本的SMB 3.0在
Windows Server 2012操作系统中出现,并且与
Windows 8客户端
共同工作。
SMB 3.0极大的提升了性能、可靠性和安全性。具体来说,当它与Windows Storage Spaces(Windows Server 2012的一个功能,将普通的硬盘虚拟化为高性能、
高可用性的存储)结合时,SMB 3.0可以使用廉价的直连存储(
DAS)、
JBOD或RBOD,创建一个特定的
NAS设备(或
SAN存储阵列)。IT组织可以因此在不购买昂贵的SAN存储的情况下得到企业级存储的特性,而且管理也变得更加简单。此外,SMB 3.0支持一些以前只在
块存储环境下才可以使用的应用程序,如SQL Server。
SMB3.1.1被引入到Windows Server 2016和
Windows 10。
IBM SMB
(
IBM SMB:Server Message Block protocol)
服务器信息块(SMB)协议是一种IBM协议,用于在计算机间
共享文件、打印机、串口等。SMB协议可以用在因特网的
TCP/IP协议之上,也可以用在其它
网络协议如
IPX和
NetBEUI之上。
SMB一种
客户机/服务器、请求/响应协议。通过SMB协议,客户端
应用程序可以在各种
网络环境下读、写服务器上的文件,以及对服务器程序提出服务请求。此外通过SMB协议,应用程序可以访问远程
服务器端的文件、以及打印机、邮件槽(mail
slot)、
命名管道(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的
共享软件。
SMB业务
随着
企业规模的扩大,员工数量越来越多,相应的IT
设备管理也就越来越烦琐,所需投入的成本和精力也越来越多。专业的
外包服务将从您IT的整体环境和业务需求考虑,不仅可以完成
日常维护、
故障检测和维修等“救火”工作,而且可以帮您分析并解决IT
运营管理中的问题、提升IT应用水平、防患于未然。
该服务是一种以响应方式为主的
技术支持服务。用户通过联系
服务台(Help Desk)获得直接的技术支持、咨询,以及获取快速现场支持响应。当用户遇到任何与IT相关的使用问题,包括软件及硬件,可以通过热线寻求技术支持,Helpdesk工程师通过
远程诊断,并解决可以远程解决的问题,对于不能远程解决,需要
上门服务的问题统一转到驻场服务工程师或者主要负责该客户的IT工程师在客户现场进行解决。这一过程由Helpdesk工程师统一协调安排。它适用于已有IT环境,想实现
规范化管理,并充分利用现有
IT系统发挥更大价值并
降低成本的公司。