- 论坛徽章:
- 0
|
2010.3.8日完成任务:
一.分析tftp协议工作模式:
1,简单文件传输协议(tftp)数据报分4种模式,read requst/write requst(RRQ/WRQ), data, ack, error,数据长度小于等于512byte
2,操作码不同决定其数据包格式区别,1/2(RRQ/WRQ), 3(data), 4(ack), 5(error)
3,操作码为1/2时操作码后跟文件名和格式,都以0结尾
4,data报文时操作码后跟block编号,从1开始,依次递增。
5,ACK回应与收到data报文block相同。
6,注意写请求时需收到服务器端的block编号为0的ACK相应后发送block编号为1的data报文。
二.tftp client:
1,PC机上调用socket API实现tftp client端。使用了socket(),close(),sendto(),recvfrom()函数,struct sockaddr_in结构体。并对其参数和成员
进行了分析。实现make_tftp_pck()函数实现了tftp RRQ, ACK包的封装。
2,实现tftp_client下载文件的基本功能。
3,出错处理,其他功能完善和代码优化还未完成。
4,编写代码时注意PC机和数据报中的大小端转换。
三.明日计划完成任务:
1.完整认真分析g-bios中所有网络部分代码,包括tcp/ip协议栈,socket.c, net.
2.仔细分析udp socket 部分API和在g-bios中如何改进与实现,并尝试之。 |
|