SMB/CIFS协议解析二

时间:2023-03-09 15:59:19
SMB/CIFS协议解析二

一、拷贝文件(远程-->本地)

SMB/CIFS协议解析二

1、SMB_COM_NT_CREATE_ANDX (0xa2)

     
打开文件,获取文件名,获得读取文件的  总长度。

2、SMB_COM_READ         
(0x2e)

读取文件,获得读取文件内容。

3、SMB_COM_CLOSE    
(0x04) 

    
客户端关闭代表文件的TID与FID。



读取大文件的具体过程

SMB/CIFS协议解析二

读取文件是分块进行的,每块最大为64k byte,每块都是由read request+tcp data package+read response组成,如上图。

(1)没有包含文件数据的read request,

(2)第一个tcp data package是由SMB Header+文件数据组成,

(3)紧接着是多个只包含文件数据的tcp data package,

(4)最后是只包含文件数据的read response。

  
二、拷贝文件(本地-->远程)
SMB/CIFS协议解析二

1、SMB_COM_NT_CREATE_ANDX (0xa2)

     
创建文件,获取文件名。

2、SMB_COM_WRITE
      
(0x2f)

写入文件,获得写入文件内容。

3、SMB_COM_CLOSE    
(0x04) 

    
客户端关闭代表文件的TID与FID。

SMB/CIFS协议解析二
写入文件是分块进行的,每块最大为64k byte,每块都是由tcp data package+write request+write response组成,如上图。

(1)第一个tcp data package是由SMB Header+文件数据组成,

(2)紧接着是多个只包含文件数据的tcp data package,

(3)然后是只包含文件数据的write request,

(4)最后是没有包含文件数据的write response。

from:http://blog.sina.com.cn/s/blog_705eb43a0100o5ah.html