关于TFTP传输协议

TFTP(Trivial File Transfer Protocol,简单文件传输协议):实现客户端与服务器之间简单文件传输。小文件传输,端口:69。协议简单,易于实现。

缺点:

  1. 传输效率低
  2. 对于超时机制没有明确说明
  3. 每包长度固定为512字节,不灵活

TFTP端口:指的是TFTP服务在服务器的69端口运行,客户端发送RRQ和WRQ的目的端口都是69,客户端源端口和服务器发送的端口都是随机的。

TFTP包格式

TFTP包有6种类型,包的类型由数据包前2个字节(操作码Opcode)确定,这6种类型的数据包分别是:

读文件请求包:Read request,简写为RRQ,值为1
写文件请求包:Write requst,简写为WRQ,值为2
文件数据包:Data,简写为DATA,值为3
应答包:Acknowledgement,简写为ACK,值为4
错误信息包:Error,简写为ERROR,值为5
请求响应包: Acknowledgement,简写为ACK,值为6

具体结构如下图所示:(没有指明字节数就是可变长,需要根据实际情况决定)

关于TFTP传输协议_第1张图片

块编号:包的序号

读/写文件请求包:

文件名:ASCII码表示,\0结尾

mode(传输模式):\0结尾

字符串文件 netascii
二进制文件 octet

ERROR中的错误码见下文。

请求响应包是对请求数据的响应,是可选包,视具体情况而定。
1. 操作码(2字节)
2. 可选字段(timeout、blksize、tsize等,以 \0 结尾)

TFTP协议过程分析

TFTP客户端下载过程
  

        第一步:客户端给服务器发起下载请求,数据格式为(操作码1+文件名+0+模式+0)。
  第二步:服务器接收到请求之后,回复客户端数据。如下所示:(操作码3+块编码0+数据, (IP号, 端口号))。
  第三步:客户端每接受一次数据,都要回复服务器一次ACK信号。
  第四步:服务器收到ACK,给客户端发送下一包数据。(重复3-4这个过程)
  第五步:客户端接收到的数据小于512个字节,说明服务器发送完毕。数据包小于516字节(2B操作码+2B块编码+512B数据)

关于TFTP传输协议_第2张图片

 

TFTP客户端上传过程


  第一步:客户端给服务器发送上传请求,数据格式为(操作码2+文件名+0+模式+0)。
  第二步:服务器接收到请求之后,回复客户端数据。(操作码4+块编码0, (IP号, 端口号))。
  第三步:客户端每发送一次数据,服务器都要回复一次ACK信号。
  第四步:客户端收到ACK,给服务器发送下一包数据。(重复3-4这个过程)
  第四步:直到客户端发送完数据才结束。
  

注意:
  1、当客户端接收到的数据小于512字节时,表示服务器发送数据完成
  2、块编码从0开始,每次加1,它的范围是[0,65535]

ERROR包中的错误码

0 未定义Not defined, see error message (if any).
1 文件找不到File not found.
2 拒绝访问Access violation.
3 磁盘满了或者超出了可分配空间Disk full or allocation exceeded.
4 非法TFTP操作Illegal TFTP operation.
5 传输ID未知Unknown transfer ID.
6 文件不存在File already exists.
7 没有该用户No such user.

你可能感兴趣的:(计算机网络,服务器,网络,TFTP协议)