《CIFS协议文档》由会员分享,可在线阅读,更多相关《CIFS协议文档(17页珍藏版)》请在金锄头文库上搜索。
1、目录1CIFS协议 31.1CIFS协议概述 31.2CIFS协议头格式 31.2.1头域 31.2.2命令域 31.2.3错误类域 51.2.4错误代码域 51.2.5flags域 51.2.6flags2域 61.2.7填充或安全签名域 81.2.8TID域 81.2.9PID域 81.2.10UID域 81.2.11MID域 81.2.12 Wordcount和Parameterwords(参数域) 81.2.13Bytecount和buffer域(缓冲) 91.3CIFS协议的安全机制 91.3.1用户级安全 91.3.2共享级安全 91.3.3加密 91.4CIFS协议的完整性 10
2、1.4.1机会锁 101.5CIFS协议包交换流程 101.5.1包交换的第一部分协商和参数传递 101.5.1.1建立NetBIOS会话 111.5.1.2CIFS协议版本协商 111.5.1.3用户登录 121.5.1.4连接特定资源 121.5.2包交换的第二部分数据交换 131.5.2.1属性、操作等参数传递 131.5.2.2数据交换 142NetBIOS协议 152.1NetBIOS概述 152.2NetBIOS名称服务 152.2.1NetBIOS名称 152.2.2NetBIOS名称属性和格式 152.2.3NetBIOS名称解析方式 152.2.4NetBIOS名称识别策略
3、162.2.5NetBIOS名称管理 162.3NetBIOS会话服务 162.3.1概述 162.3.2NetBIOS会话原语 172.4NetBIOS数据报服务 171、CIFS协议1.1 CIFS协议概述通用网际文件系统(CIFS)是微软服务器消息块协议(SMB)的增强版本,是计算机用户在企业内部网和因特网上共享文件的标准方法。CIFS 通过定义一种与应用程序在本地磁盘和网络文件服务器上共享数据的方式相兼容的远程文件访问协议使之能够在因特网上进行协作。定义了客户端向服务器端的请求和服务器端得应答报文。CIFS数据包格式为标准头部+2个可变长区域。CIFS协议有很多版本,每个协议的版本称为
4、一种方言,并分配一个唯一的字符串来识别。当客户端希望访问远程服务器上的文件时,第一次发送的CIFS数据包是一个协商版本的数据包。在这个数据包中,客户端列出了自己可以提供的版本字符串。服务器在响应数据包中选择其中一种版本字符串发送给客户端。这样两者就协商出一个CIFS协议的版本。1.2CIFS协议头格式012345670123456701234567012345670xFFSMBCommandError classMust be zeroError codeError code(continued)FlagsFlags2填充或者安全签名,通常标准的填充是0树ID(TID)进程ID(PID)用户I
5、D(UID)多重识别码(MID)wordcountParameterwordswordcountBytecountBufferbytecount1.2.1头域每个CIFS数据包的开始包含4个字节的头。第一个字节是0xFF,第二个字节是字母S的ASCII表示,第三个字节和第四个字节分别为M和B。1.2.2命令域命令域为1个字节,用来表示CIFS数据包的类型。其各种命令对应的数值见下:SMB_COM_CREATE_DIRECTORY 0x00SMB_COM_DELETE_DIRECTORY 0x01SMB_COM_OPEN 0x02SMB_COM_CREATE 0x03SMB_COM_CLOSE
6、0x04SMB_COM_FLUSH 0x05SMB_COM_DELETE 0x06SMB_COM_RENAME 0x07SMB_COM_QUERY_INFORMATION 0x08SMB_COM_SET_INFORMATION 0x09SMB_COM_READ 0x0ASMB_COM_WRITE 0x0BSMB_COM_LOCK_BYTE_RANGE 0x0CSMB_COM_UNLOCK_BYTE_RANGE 0x0DSMB_COM_CREATE_TEMPORARY 0x0ESMB_COM_CREATE_NEW 0x0FSMB_COM_CHECK_DIRECTORY 0x10SMB_COM_P
7、ROCESS_EXIT 0x11SMB_COM_SEEK 0x12SMB_COM_LOCK_AND_READ 0x13SMB_COM_WRITE_AND_UNLOCK 0x14SMB_COM_READ_RAW 0x1ASMB_COM_READ_MPX 0x1BSMB_COM_READ_MPX_SECONDARY 0x1CSMB_COM_WRITE_RAW 0x1DSMB_COM_WRITE_MPX 0x1ESMB_COM_WRITE_COMPLETE 0x20SMB_COM_SET_INFORMATION2 0x22SMB_COM_QUERY_INFORMATION2 0x23SMB_COM_LOCKING_ANDX 0x24SMB_COM_TRANSACTION 0x25SMB_COM_TRANSACTION_SECONDARY 0x26SMB_COM_IOCTL 0x27SMB_COM_IOCTL_SECONDARY 0x28S