上传文件指的是客户端将本地上的文件上传到 FTP 服务器上。下面介绍客户端如何进行文件上传,以及上传时所涉及的各类型数据包。
客户端会向 FTP 服务器发送请求写入(WRQ)数据包,指明要写入的文件。如果 FTP 服务器允许该文件的写入,就返回一个 ACK 确认包,该包的编号为 0。客户端收到服务器的确认包以后,就开始向服务器写入文件。
IIS7服务器管理工具可以批量管理、定时上传下载、同步操作、数据备份、到期提醒、自动更新。IIS7服务器管理工具适用于Windows操作系统和liunx操作系统;支持Ftp客户端批量操作。
下载地址:IIS7服务器管理工具
使用 netwox 工具将该文件上传到 FTP 服务器上的方法
- 上传文件,上传后的文件命名为 keep.txt,执行命令如下:
root@daxueba:~# netwox 166 -i 192.168.59.135 -f Test-keep.txt -F keep.txt
执行命令后没有任何输出信息,但是会成功将文件上传到 TFTP 服务器上。
- 抓包,并查看上传文件整个过程产生的数据包,如图所示。
上图中,第 4~11 个数据包为上传文件整个过程的数据包。第 4 个数据包为客户端构建的 WRQ 请求包。通
过包的基本信息可以看到,源 IP 地址为 192.168.59.133,目标 IP 地址为 192.168.59.135,Info 列中的信息为 Write Request。
在 Trivial File Transfer Protocol 部分显示了报文格式,含义如下:
Trivial File Transfer Protocol
Opcode: Write Request (2) #操作码, 这里值为2, 表示是一个WRQ请求
DESTINATION File: keep.txt #上传后的文件名
Type: octet #数据格式为octet
- 第 5 个数据包是服务器返回的确认(ACK)包,如图所示。
通过包的基本信息可以看到,源 IP 地址为 192.168.59.135,目标 IP 地址为 192.168.59.133,Info 列中的信息为 Acknowledgement。
在报文字段信息中可以看到,Block 值为 0,表示该确认包的数据编码为 0。
- 第 6 个数据包为客户端向服务器上传文件时,发送数据信息的第一个 DATA 包,如图所示。
通过包的基本信息可以看到,源 IP 地址为 192.168.59.133,目标 IP 地址为 192.168.59.135,Info 列中的信息为 Data Packet。
在报文字段信息中可以看到,此时数据编码为 1,传输的数据大小为 512 字节。
- 第 7 个数据包为服务器返回给客户端的确认包,是对客户端发来的 DATA 包的确认,如图所示。
通过包的基本信息可以看到,源 IP 地址为 192.168.59.135,目标 IP 地址为 192.168.59.133,Info 列中的信息为 Acknowledgement。
在报文字段中可以看到,数据编码为 1,表示该包是第 1 个 DATA 包的确认包。
- 第 8 个数据包为客户端第 2 次给服务器发送的 DATA 包,如图所示。
通过包的基本信息可以看到,源 IP 地址为 192.168.59.133,目标 IP 地址为 192.168.59.135,Info 列中的信息为 Data Packet。
在报文字段信息中,数据编码为 2,说明这是发送的第 2 个 DATA 包,数据大小为 512 字节。第 9 个数据包为服务器返回的确认包。
- 第 10 个数据包为客户端向服务器发送的最后一个 DATA 包,如图所示。
该包的 Info 信息中可以看到(last)字样,表示这是上传文件时发送文件信息的最后一个 DATA 包,在报文字段中可以看到,该 DATA 包的大小为 202。
第 11 个数据包为服务器对客户端发送的最后一个 DATA 包的确认包。此时完成了上传文件的整个过程。