这是我学习TFTP协议时的一些笔记,做备忘用。
1 TFTP(Trivial File Transfer Protocal)即简单文件传输协议,最初用于无盘系统(比如X终端)的引导。TFTP设计的主要目标是简单短小,能够在只读存储器上存储。TFTP的正式规范是RFC 1350 [1992]。
2 TFTP是基于UDP实现的,不过似乎也有TCP上的实现。TFTP支持五种类型的包,包括:
1) Read request (RRQ) ,包格式为:[2bytes操作码][文件名]['?'][模式]['?']
其中操作码为 0001h,文件名和模式是8bit ASCII码串,模式只能取 netascii 或 octet。
2) Write request (WRQ),包格式和RRQ一样,但操作码为 0002h。
3) Data (DATA),包格式为:[2bytes操作码][2bytes块编号][数据0-512bytes]
其中操作码为 0003h,块编号从1到65,535,数据段长度为0到512字节。
4) Acknowledgment (ACK),包格式为:[2bytes操作码][2bytes块编号]
其中操作码为 0004h
5) Error (ERROR) ,包格式为:[2bytes操作码][2bytes错误代码][错误信息]['?']
其中操作码为 0005h,错误代码、错误信息和实现有关,RFC 1350建议了一些错误码。
1 TFTP(Trivial File Transfer Protocal)即简单文件传输协议,最初用于无盘系统(比如X终端)的引导。TFTP设计的主要目标是简单短小,能够在只读存储器上存储。TFTP的正式规范是RFC 1350 [1992]。
2 TFTP是基于UDP实现的,不过似乎也有TCP上的实现。TFTP支持五种类型的包,包括:
1) Read request (RRQ) ,包格式为:[2bytes操作码][文件名]['?'][模式]['?']
其中操作码为 0001h,文件名和模式是8bit ASCII码串,模式只能取 netascii 或 octet。
2) Write request (WRQ),包格式和RRQ一样,但操作码为 0002h。
3) Data (DATA),包格式为:[2bytes操作码][2bytes块编号][数据0-512bytes]
其中操作码为 0003h,块编号从1到65,535,数据段长度为0到512字节。
4) Acknowledgment (ACK),包格式为:[2bytes操作码][2bytes块编号]
其中操作码为 0004h
5) Error (ERROR) ,包格式为:[2bytes操作码][2bytes错误代码][错误信息]['?']
其中操作码为 0005h,错误代码、错误信息和实现有关,RFC 1350建议了一些错误码。