#原创分享#非典型的TCP 0 窗口数据包案例分析
  

KYLE_K 2232

{{ttag.title}}
“当前已有100+用户参与分享,共计发放奖励50000+“



案例总结:
       一般出现0窗口数据包的情况,是由客户端或者服务器性能不足引起的,但这次的案例引发的0窗口情况,是由应用系统层面导致的,需要通过优化应用层面的资源调用来处理。

一.问题情况描述
      1.通过业务性能分析系统)对“eps.haxxx.com.cn”进行业务性能监控,发现UPM上每隔5至10分钟,就会有警报显示“eps.haxxx.com.cn”出现主机性能不足的情况;
      2.通过进行一步数据挖掘,发现是IP为“10.16.20.2”有发送TCP 0窗口报文的情况;
      3.需要对“10.16.20.2”进行解包分析,确认是否出现性能不足的问题,分析情况如下:

二.TCP发送0窗口的问题分析   
    2.1 服务器发送TCP 0窗口的报文说明
       根据TCP滑动窗口机制:某些情况下,可能是由于服务器内存不足,处理能力不够,或应用窗口限制的原因,服务器端无法继续处理从客户端接收的数据。为避免造成数据被丢弃以及传输中断,服务器端会发送窗口为0的报文。当客户端接收到此报文时,它会暂停所有数据传输,客户端会传输探测(keep-alive)报文的方式,保持与服务器的连接。探测报文在客户端与服务器之间发送,以检测服务器端窗口状态。一旦服务器端能够再次处理数据,将会返回非零值窗口到客户端,恢复数据传输。

    2.2 数据包解包分析
       1. 通过对其中一个触发警报的数据包进行解包,确认数据包报文里面有TCP 0窗口报文,排除系统误报,解包情况见下图:
118355f4a5ac06f07e.png

       2. 服务器发送TCP 0窗口时,在下一个数据包就会进行窗口释放(发送非0窗口报文),释放报文发送时间短(相隔0.000007秒),并且客户端没有出现发送传输探测(keep-alive)报文的情况,表示服务器方面并无出现明显的卡顿情况,相关情况见下图:
78985f4a5bc24c4f7.png
(服务器发送0窗口数据包报文)

774915f4a5c05d4bcf.png
(服务器释放窗口报文)

3. 与服务器管理人员确认,在服务器发送TCP 0窗口报文的时段,在服务器资源监控系统上并未发现有服务器性能不足的警报,下一步需要对窗口报文进行深挖掘,确认是否存在应用系统方面的问题。


4. 对比10.16.20.2分别与10.150.97.201(TCP 0窗口警报)、10.16.21.1(TCP 0 窗口警报)、10.16.20.1(TCP 0 窗口警报)的数据包交付情况,发现服务器接收10.150.97.201发送数据的载荷长度,远大于接收10.16.21.1和 10.16.20.1发送的数据包载荷长度,并且服务器并无出现CPU和内存占用率高的情况,判断是应用系统限制了相关的数据包处理能力,或者是客户端发送的数据载荷长度过大,导致出现TCP 0窗口警报的情况,详情见下图:

844775f4a5d38ed426.png

(有TCP 0窗口)


652125f4a5d74656a9.png

(有TCP 0窗口)


490585f4a5db8679ce.png

(无TCP 0窗口)


735255f4a5de143e9e.png

(无TCP 0窗口)


三.分析结论及处理建议

3.1 分析结论

      1. 从服务器性能监控情况看,发送TCP 0 窗口的情况与服务器性能不足无关;
      2. 从接收数据包的对比情况看,判断是应用程序限制了相关的数据包处理能力;
      3. 从现时TCP 窗口的释放情况看,窗口释放的时间很短(小于0.001秒),客户端不会感知到有访问卡顿的情况。但是,当访问量变得越来越大,出现TCP 0窗口的警报只会越加频繁,卡顿的情况可能会越发明显。

3.2 问题处理建议

      1. 通过优化数据包传输,缩短客户端发送数据包的载荷长度,使应用有足够的时间和性能来处理项相关的数据;
      2. 因为服务器并未出现CPU或内存资源不足的情况,可以通过增大应用系统的TCP窗口,调用更多的计算资源来处理相关的数据。

打赏鼓励作者,期待更多好文!

打赏
7人已打赏

sxfusr 发表于 2020-8-29 22:55
  
打卡学习
一一氵 发表于 2020-8-30 18:19
  

打卡学习
一个无趣的人 发表于 2020-8-30 22:29
  
多谢楼主的抓包案例分析。很强势啊。
gqce 发表于 2020-8-31 09:08
  
感谢分享
Sangfor_闪电回_朱丽 发表于 2020-8-31 11:38
  
您好,您的文章已被收录到计划中,交由专家评审小组评审,奖励将在下周安排发放!发文越多,奖励越多,期待您更多的精彩文章哦!:感恩:
点击查看本季原创内容要求及奖励规则:http://bbs.sangfor.com.cn/forum.php?mod=viewthread&tid=117259
新手780102 发表于 2020-8-31 15:14
  
感谢分享
新手780102 发表于 2020-8-31 15:14
  
感谢分享
新手031815 发表于 2020-8-31 15:30
  
多谢分享
新手741261 发表于 2020-8-31 15:51
  
感谢分享
发表新帖
热门标签
全部标签>
每日一问
技术盲盒
技术笔记
干货满满
信服课堂视频
功能体验
GIF动图学习
标准化排查
产品连连看
新版本体验
每周精选
2023技术争霸赛专题
自助服务平台操作指引
秒懂零信任
技术晨报
技术咨询
安装部署配置
答题自测
通用技术
排障笔记本
社区帮助指南
在线直播
网络基础知识
玩转零信任
深信服技术支持平台
畅聊IT
专家问答
技术圆桌
MVP
升级
安全攻防
上网策略
测试报告
日志审计
问题分析处理
流量管理
每日一记
运维工具
云计算知识
用户认证
原创分享
解决方案
sangfor周刊
VPN 对接
项目案例
SANGFOR资讯
专家分享
技术顾问
信服故事
SDP百科
功能咨询
终端接入
授权
设备维护
资源访问
地址转换
虚拟机
存储
迁移
加速技术
产品预警公告
信服圈儿
S豆商城资讯
技术争霸赛
「智能机器人」
追光者计划
答题榜单公布
纪元平台
卧龙计划
华北区拉练
天逸直播
以战代练
山东区技术晨报
文档捉虫活动
齐鲁TV
华北区交付直播

本版版主

12
185
6

发帖

粉丝

关注

本版达人

LoveTec...

本周分享达人

新手24116...

本周提问达人