测试目的
验证DUT(被测设备)作为发送方,在接收方窗口长期为零时,能否在等待一个RTO(重传超时)周期后,主动发送第一个零窗口探测包(Zero Window Probe),以检测连接状态
UT测试方法
Precondition :
DUT正常通信,UT正常运行,DUT处于ESTABLISHED状态
Step to reproduce:
Step1,UT使DUT进入ESTABLISHED状态
Step2,DUT向测试端发送240字节数据
Step3,测试端通告窗口为0(win=0,关闭接收窗口)
Step4,测试端监听DUT是否发送零窗口探测报文
Expected results:
At Step4,DUT应启动持续定时器(Persist Timer),定期发送含1字节数据的零窗口探测报文,检查接收窗口是否恢复
(RFC 793: 窗口归零后发送方必须启动零窗口探测)
需求出处:
RFC 793 s3.4 p40~41 Flow Control (MUST)
非UT测试方法
Precondition:
一台Ubuntu电脑,T1转RJ45转换器,Ubuntu电脑可与DUT正常通信
Step to reproduce:
1、在Ubuntu系统配置vlan2网卡,ip=172.16.2.97

2、在Ubuntu系统中解压博文底部资源《TC8测试TCP-PROBING-WINDOWS-05》,并将service.cpp重新编译,作为server端
3、在DUT系统中编译EthUnitTest,作为client端
4、在Ubuntu系统中执行 sudo sysctl -w net.ipv4.tcp_rmem="6000 6000 6000" 来减小接收队列长度
5、在Ubuntu系统中运行server,在DUT系统中运行EthUnitTest。
6、打开Ubuntu系统的wireshark软件实时监控报文现象