SMB协议分析,详细分析了局域网中访问共享文件夹的数据连接过程。
### SMB协议分析:详细解析局域网中访问共享文件夹的数据连接过程 #### 一、SMB协议概述 SMB(Session Message Block)协议,又称作会话消息块协议,是一种广泛应用于不同计算机之间共享文件、打印机、串行口及通讯对象(如命名管道、邮件插槽等)的标准协议。SMB协议最初设计用于Microsoft Windows系统,以实现磁盘和打印机的共享功能。为了保持与其他系统的兼容性,即使是较新的Windows版本如Windows 2000,仍然保留了SMB协议的支持。 除了Windows操作系统外,SMB还可以在其他平台如UNIX上实现。通过安装相应的SMB软件,UNIX系统可以与Windows系统进行资源共享,反之亦然。这极大地扩展了不同操作系统的互操作性,并使得跨平台的数据交换变得更加容易。 #### 二、SMB协议的工作原理 SMB协议基于客户机/服务器模型,并采用了请求/响应机制。其主要实现包括客户端和服务端两个部分。客户端通常由Windows操作系统家族提供支持,同时还有一些第三方工具如smbclient、smbfs和smblib等。服务端实现主要包括Samba服务器、微软的操作系统家族、Digital的PATHWORKS服务器家族、OS/2的LAN Manager以及AT&T UNIX的高端服务器等。 #### 三、SMB会话的建立过程 SMB协议使用了三个端口:137端口用于NetBIOS名称服务(UDP),138端口用于NetBIOS数据报服务(UDP),而139端口则用于SMB会话的TCP连接。下面详细介绍SMB会话建立的具体步骤: 1. **客户端向服务器请求一个NETBIOS会话**:客户端首先向服务器发送自己的NETBIOS名称,服务器监听139端口接收此请求,并回复一个确认会话的数据报,以建立连接。 2. **协商协议版本**:客户端发送一个包含其支持的所有SMB协议版本的negprot请求数据报,双方通过协商确定使用的协议版本。 3. **用户或共享认证**:客户端发送一个SesssetupX请求数据报,其中包含登录凭证(用户名/密码或简码)。服务器根据这些信息验证用户身份,并通过发送SesssetupX响应数据报来表明是否接受或拒绝该连接。 4. **树连接**:一旦认证成功,客户端将发送一个TconX数据报,指定想要访问的特定网络资源。服务器随后会发送一个TconX响应数据报,确认是否接受该连接。 #### 四、SMB数据包格式分析 SMB数据包封装在TCP包内,主要由以下几部分组成: - **NETBIOS头部**:由8位类型字段(Type)、8位标志字段(Flag)以及16位长度字段(Length)组成。其中,标志字段的值始终为0,长度字段表示SMB基础头部、SMB命令头部以及数据部分的总长度,不包括NETBIOS头部本身的长度。 - **SMB基础头部**:包含了控制SMB会话所需的基本信息。 - **SMB命令头部**:根据具体的SMB命令,包含不同的参数和数据。 #### 五、SMB协议会话过程分析 通过对SMB协议的会话过程进行深入分析,可以更好地理解其工作原理和技术细节。例如,利用协议分析工具Ethereal等,可以捕获并解析SMB数据包,进一步了解会话建立、文件传输等过程中的具体实现细节。 SMB协议是实现不同操作系统间资源共享的重要手段之一。通过对SMB协议及其工作原理的深入探讨,不仅有助于加深对该协议的理解,还能为实际应用中的问题解决提供指导和支持。
- 洞风见2011-09-19上传这个资源的人非常不负责任,从网上下载的论文简介,竟然放在这里供人下载,强烈鄙视!!!
- qq_311233552022-02-08还不错,可以下载学习学习。
- pscxj2012-06-18下载看了,和网上下的其他的基本同出一辙,没得到帮助
- 粉丝: 3
- 资源: 5
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助