2、服务器接收窗口为什么会出现win=0? 从TCP三次握手可以看出客户端发送的syn包没有窗口缩放因子选项(窗口缩放因子决定能够接收的数据多少)即ws选项,导致服务器也同样的不回应ws选项。从负载上抓到的前端数据包可以看到客户端发送的syn包win=14600,没有ws选项,服务器回应的syn+ack包win=8192,同样没有ws选项。
3、同时前端数据包中看到PC终端给服务器POST上传了一个1.4M的文件,而服务器的接收窗口win=8192,所以出现上面的零窗口卡住现象。从User-Agent字段可以看出,该POST请求为WebOffice插件发起的。
4、继续查看在异常终端上抓到的数据包,可以看到终端实际发出的包win=8192,并且有携带窗口缩放因子ws=4。
5、对比异常终端上和负载上抓的前端数据包,可以发现,PC终端发出的syn包和AD实际接收的syn包根本不是一个包,说明终端和负载之间有代理代理了这条连接。
6、对比终端直接访问服务器不过负载的包,同样可以看到服务器和客户端都有ws选项,服务器ws=256,所以也不会卡住。