TCP归零窗口后的TCP重置
多年来,我们的定制软件使用打印机命令语言(PCL)在不同的打印机上打印 现在我们有一个新的,leightweight打印机,我们正在努力支持。一个简单的打印是完美的工作。但是,如果打印作业增大,我们会遇到打印作业中断 环境:TCP归零窗口后的TCP重置,c,sockets,printing,tcp,C,Sockets,Printing,Tcp,多年来,我们的定制软件使用打印机命令语言(PCL)在不同的打印机上打印 现在我们有一个新的,leightweight打印机,我们正在努力支持。一个简单的打印是完美的工作。但是,如果打印作业增大,我们会遇到打印作业中断 环境: 中间没有活动的网络硬件(如包检查防火墙) 工作站(这是我们的软件运行的地方)位于Linux内核版本3.0.101上。这里发生了下面描述的TCP重置 使用Wireshark,我们发现了以下情况: 我们看到打印机的TCP接收窗口大小每2-3秒变为零。这表明打印机硬件速度太
- 中间没有活动的网络硬件(如包检查防火墙)
- 工作站(这是我们的软件运行的地方)位于Linux内核版本3.0.101上。这里发生了下面描述的TCP重置
- 我们看到打印机的TCP接收窗口大小每2-3秒变为零。这表明打印机硬件速度太慢,无法实时处理传入数据
- 此零窗口超时通常需要1-2秒李>
- 打印机向工作站发送“零窗口”确认数据包后,工作站尝试通过定期发送TCP保持活动数据包来保持与打印机的连接
- 打印机正在应答这个保持活动状态的数据包
- 打印机准备再次处理数据时,会向工作站发送一个“TCP窗口更新”数据包。此数据包包含打印机的新接收窗口大小。一旦工作站收到此数据包,它就开始再次向打印机发送数据