tftp协议全称是Trivial File Transfer Protocol,小文件传输协议。这个协议是基于UDP的,仅支持文件的上传和下载。
协议规定的发送报文的规则如下:
1.A向B请求读B中的文件,不带扩展选项
A发送一个RRQ请求给B,这个请求是发送到B的69端口。
B同意,直接开始发送DATA报文,数据包会带有一个block number,作为双方识别数据报文的标识。
A收到数据包之后,发送一个ACK报文给B表示自己已经收到数据报文,这个ACK报文也带有一个block number,这个值就是A收到的数据包中包含的block number。
B不停发DATA报文给A,A不停回复ACK报文。由于DATA报文中发送的数据固定大小为512字节,所以当B发送给A一个数据区小于512字节的DATA报文的时候,A就知道传输结束了,A收到这个报文,回复ACK,结束传输。
2.A向B写文件到B中,不带扩展选项
A发送一个WRQ请求给B,同样发送到B的69端口。
B同意,回复ACK报文给A,这个ACK报文的block number是0,用于向A表示准备好接受,可以发送报文了。
A开始发送DATA报文给B,B收到DATA报文回复ACK报文给A,规则同1中,直到结束。
3.超时的情况
A和B在传递报文的过程中,如果超过一定的时间没有收到报文,会判定为超时,如果在1的条件下,B发送的DATA报文(比如blknumber为10)A一直没有收到ÿ