tftp文件传输协议报文解析
先来看看tftp的五种报文格式
操作码补充说明:
读文件请求包:Read request,简写为RRQ,对应Opcode字段值为1
写文件请求包:Write requst,简写为WRQ,对应Opcode字段值为2
文件数据包:Data,简写为DATA,对应Opcode字段值为3
回应包:Acknowledgement,简写为ACK,对应Opcode字段值为4
错误信息包:Error,简写为ERROR,对应Opcode字段值为5
数据结构
//tftp #define DATA_SIZE 512 struct tftpx_packet{ ushort cmd; union{ ushort code; ushort block; // For a RRQ and WRQ TFTP packet char filename[2]; }; char data[DATA_SIZE]; };
其他的报文和bootp的ip首部+udp 首部一致,现在我们来看看报文。
1,tftp request报文。
2,数据报文:
3,ack报文:
T F T P的数据交换过程时,要注意的是这儿的客户在整个传输过程中使用T F T P的知名端口( 6 9)。
那么问题来了,TFTP 服务器如何能将一个响应直接送回 BOOTP 客户?