2019/05/04(周六)
使用JPerf带宽测试工具,测试TCP固件不通,通过wireshark工具进行分析。目前对客户端和服务端的报文交互不懂,wireshark工具的使用不熟悉。
要学wireshark、TCP报文交互、服务端每次发报文都是两帧,分析为什么。
2019/05/05(周日)
采用仿真调试模式,来观察为何服务端每次发报文都会发两帧。暂未找到原因。明天学习下《互联网身份证--网际协议IP》
2019/05/09(周四)
看381页API大显身手,暂不头绪。需要对照收发的报文深入了解下TCP的格式。
2019/05/11(周六)
使用网络调试助手发送单次报文,查看交互报文。67为客户端IP,30为服务器IP。
67-->30[PSH,ACK],30-->67[ACK],30-->67[PSH,ACK],67-->30[ACK]
客户端主动断开连接:
67-->30[FIN,ACK],30-->67[ACK]
客户端建立连接:
67-->30[SYN],30-->67[SYN,ACK],67-->30[ACK]
要搞清楚30的ACK应答是谁发的?因为在使用JPerf侧带宽出问题发现,30的ACK应答中含有PSH。
是TCPIP_APIMSG()函数发的,具体为netconn_recv_data()函数和netconn_write_partly()函数。现在需要查为何netconn_recv_data()函数异常时会发[PSH,ACK]而不是[ACK]。
搞清楚什么时候会TCP_PSH。在仿真模式下调试JPerf发现这次没有出现PSH问题,但是错误处依然判定Len=6,继续查原因。
2019/05/12(周日)
源码恢复到最开始的ECHO,容易出现TCP_WINDOW_FULL提示,已保存报文,待分析。参考https://blog.csdn.net/jhcsdb/article/details/44086565。
2019/05/14(周二)
尝试阅读wireshark报文。
2019/05/18(周六)
今天在看一篇文章:https://coolshell.cn/articles/11564.html
明天继续看,感觉挺有用的文章。
2019/05/21(周二)
https://coolshell.cn/articles/11609.html
2019/05/22(周三)
终于调通了JPerf与程序间的交互,原来是需要将程序中的回显部分屏蔽掉。明天需要写一篇日志出来作为记录。涉及到哪些参数的改动及测试截图,源码的上传和说明。
2019/05/23(周四)
已写日志,待补充源码的路径。开始分析TCP性能测试的wireshark报文。
2019/05/25(周五)
已发日志,关于TCP Window Full是wireshark判定的,还是报文中就有提示的,需要确认下。还有就是ECHO不能通过带宽测试的原因有待分析。
明天继续13.4.4 并发服务器的源码测试。coolshell的文章有空还要读一读。朱升林的书也要看看。wireshark的用法说明书。
2019/05/26(周日)
重看了TCP的那些事儿(上),明天在看下部。
2019/05/28(周二)
重看了TCP的那些事儿(下),开始看朱升林的书,要了解各个层的具体工作。
2019/06/05(周三)
书籍看了ARP、IP、ICMP、UDP、TCP,大致了解了概念。明天“14.2.1 智能的TCP客户端”编程。还有以后要了解http、xml协议。
2019/06/06(周四)
“14.2.1 智能的TCP客户端”移植中,明天继续调试。
2019/06/08(周六)
“14.2.1 智能的TCP客户端”移植并调试成功,需要设置正确的任务名称(字符串)和堆栈大小。明天需要继续对比下两个程序,因为我发现原程序是可以创建4个任务的,另外也要优化新程序,将UDP显示部分屏蔽。上传到CSDN。
2019/06/12(周三)
智能的TCP客户端源码已做了分析,了解到通过socket函数可选择tcp和udp模式,通过setsockopt设置超时时间。明天看14.2.2 UDP时间服务器。也要多了解socket api接口函数使用。
2019/06/13(周四)
完成14.2.2 UDP时间服务器的开发板调试及源码上传。明天14.2.3 Winsock客户端设计。
2019/06/19(周三)
完成对14.2.3 Winsock客户端设计的理解并实践。明天14.3.3 Selecct实战--并发服务器的学习。
2019/06/22(周六)
完成对14.3.3 Selecct实战--并发服务器的学习。了解到改变MEMP_NUM_NETCONN的值即是改变最大连接数。
2019/07/06(周六)
本阶段结束。已完成书本测试用例的调试。