TFTP协议简介

TFTP(Trival File Transfer Protocol),即简单文件传输协议.


TFTP是使用广泛,也是比较传统的文件传输协议之一.它采用C/S模式,也即分为TFTP服务器和TFTP客户端.
TFTP服务器为TFTP客户端提供文件上传、下载服务.
一般的TFTP协议使用UDP作为下层协议,但是有的TFTP也使用了其他的协议作为下层支持.
本文仅简单描述TFTP协议,若需要详细了解协议细节的朋友可以参考相应的RFC文档.
下面简单描述整个TFTP回话过程,细节请参考RFC文档.

(1) 任何会话都是由客户机启动的,客户机首先向服务器发送一个请求报文.
 报文头部的两个字节为请求的代码,1表示读(下载),2表示写(上传),紧接着是文件的名称,文件名称以null结束,
 后面跟随的是选项。目前我知道的选项有blksize,timeout,tsize,分别代表客户机期望的数据块大小(Byte),传输超时时间(s)
和文件的大小,报文以null结束.
(2) 客户机发送读写请求后,服务器会解析请求报文的选项,确认是否可以接受,若可以接受客户端的选项值,那么
服务器会OACK回显选项值,不被识别的选项将会被忽略.若已经被服务器识别出选项,但是选项的值是无效的,那么服务器
可以使用一个自认为有效的值来替换并加入OACK回显,或者回复一个错误码为8的包,然后结束传输.客户机必须使用已经被确认的选项值.
(3)客户机发送请求后,收到服务器回应的类型有3中:
   (1) OACK,选项确认.
   (2) ACK ,没有选项的确认.
   (3) ERROR,请求被拒绝.

(4) 客户机ACK后,服务器开始发送真正的文件数据,数据包以2字节的包类型,2字节的包编号,和blksize大小的数据部分
组成.
(5)服务器发来的每一个数据包都需要客户机确认后,服务器才发送下一个数据包,因此称为 lock-step.
(6)当数据包丢失时,服务器采用超时机制重传没有得到确认的数据包.
(7)当客户机收到的数据包小于blksize指定的大小时,表示数据传输完成.
(8)当服务器发送的包大小为blksize的整数倍时,即每个包都填满数据,那么服务器最后会发送一个空的数据包,以示文件传输
完成.



  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值