C# tcp 连接出现Fin,ack问题,导致ZeroWindow

yuezj 2015-08-25 09:18:29
大家好,我现在遇到一个问题.用c#编程的Client (Ip地址192.168.1.102) 给下位机Servo(IP地址192.168.1.220) 发TCP 信号.
使用wireshark 抓包后,数据如下

经过3次握手后,建立TCP 连接.然后发数据.
由于Servo端口不能及时反馈Psh,ack,这个信号.在0.1ms后,Client 发送Fin,ack 信号.随后出现ZeroWindow报警.
(Servo是个下位机,反馈信号慢)


另外,同样的程序,发送给另外一台电脑,ip地址为192.168.1.110则顺利通过.图片如下:

...全文
917 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
yuezj 2015-08-25
  • 打赏
  • 举报
回复
引用 2 楼 Forty2 的回复:
0.1ms就不耐烦了啊。 FIN+ACK说明客户(192.168.1.102)要断开连接了,我认为这时候服务端回复ACK同意断开,并说明Window=0没有太大问题。 因为服务端已经不想接收任何东西了,Window(你可以理解为接收缓存)是多少已经没有关系了。
我不明白我写的客服端,为什么0.1ms 没有接收到答复,就要主动断开连接.这不合理.
Forty2 2015-08-25
  • 打赏
  • 举报
回复
0.1ms就不耐烦了啊。 FIN+ACK说明客户(192.168.1.102)要断开连接了,我认为这时候服务端回复ACK同意断开,并说明Window=0没有太大问题。 因为服务端已经不想接收任何东西了,Window(你可以理解为接收缓存)是多少已经没有关系了。
yuezj 2015-08-25
  • 打赏
  • 举报
回复

111,077

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧