新手920702 发表于 2021-1-12 11:04
  
感谢楼主的精彩分享,学习了!
新手285063 发表于 2021-1-17 21:09
  
感谢作者分享,步骤写的很详细
心已搬到你那 发表于 2021-1-19 18:30
  
感谢作者分享,步骤写的很详细
ytfqyjj 发表于 2021-1-26 15:15
  
感谢楼主的精彩分享,学习了!
小明偷学 发表于 2024-6-30 10:26
  
每天坚持打卡学习签到!!
新手370587 发表于 2024-7-16 11:45
  
打卡学习,感谢大佬分享!
FuJun 发表于 2024-7-24 11:05
  
每天坚持打卡学习签到!!
AD自动保持长连接导致无法正常关闭http连接
  

ipluto 11031

{{ttag.title}}
本帖最后由 ipluto 于 2019-5-16 10:03 编辑

问题描述:
    客户连接我司服务经常出现超时。

排查过程:
    在客户端抓包发现大量端口复用的包,由于客户业务复杂,既是服务端也是客户端。导致端口占用严重。2分钟左右会复用端口。
    在ad抓包有收到客户端的复用端口连接的syn请求。但ad不回应请求。由某公司工程师分析发现复用端口的的原连接在ad并未释放,依然处于ESTABLISHED状态,导致同样五元组的报文到达后,ad认定为异常包,不处理。

    分析报文发现客户通知ad关闭连接,但ad不回应。工程师给出原因是由于客户端同时发送ssl close notfiy与tcp fin。导致ad不能正常处理关闭流程,而客户端在发送请求后进入fin wait,在fin wait超时(客户端为20秒)后释放链接。
    工程师给出两个解决方案:
    1、修改七层虚拟服务TCP策略,将超时时间修改成1分钟。到达超时时间后ad发送keepalive包,如客户端不回应,ad关闭连接。
    2、打补丁包。使ad回应关闭消息。
    与开发一起分析发现服务端发送的connection: close报文被ad改写为S-Cnection: close。导致数据传输完成后服务端无法通知到客户端关闭连接。
    AD改写后的报头:
Content-Type: application/octet-stream;charset=utf-8
Content-Language: zh-CN
Content-Length: 188
Date: Mon, 06 May 2019 06:21:05 GMT
S-Cnection: close
Server: nginx


    在后台关闭服务自动保持长连接后客户端可收到服务端的关闭通知。正常关闭会话。
修改参数后:
修改参数前:

原因:
    1、ad不回应客户端关闭连接消息
    2、ad主动改写http关闭请求

解决方案:
    1、打补丁,使ad回应关闭消息。
    2、关闭服务自动保持长连接。

建议:
    ad默认对http进行优化。对浏览器类需要长连接的应用保持友好。对高并发短连接确是灾难。希望下个版本可显示的在界面对默认优化参数增加开关(全局开关、单服务开关)。

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

打赏
10人已打赏

发表新帖
热门标签
全部标签>
西北区每日一问
安全效果
高手请过招
【 社区to talk】
纪元平台
每日一问
新版本体验
产品连连看
社区新周刊
干货满满
GIF动图学习
技术咨询
标准化排查
自助服务平台操作指引
功能体验
每周精选
社区帮助指南
VPN 对接
技术笔记
秒懂零信任
技术盲盒
信服课堂视频
畅聊IT
答题自测
专家问答
技术圆桌
在线直播
MVP
网络基础知识
安装部署配置
升级
安全攻防
上网策略
测试报告
日志审计
问题分析处理
流量管理
每日一记
运维工具
云计算知识
用户认证
原创分享
解决方案
sangfor周刊
项目案例
SANGFOR资讯
专家分享
技术顾问
信服故事
SDP百科
功能咨询
终端接入
授权
设备维护
资源访问
地址转换
虚拟机
存储
迁移
加速技术
排障笔记本
产品预警公告
玩转零信任
信服圈儿
S豆商城资讯
技术争霸赛
「智能机器人」
追光者计划
深信服技术支持平台
答题榜单公布
2023技术争霸赛专题
通用技术
卧龙计划
华北区拉练
天逸直播
以战代练
技术晨报
山东区技术晨报
文档捉虫活动
齐鲁TV
华北区交付直播
2024年技术争霸赛
北京区每日一练
场景专题
故障笔记
排障那些事
升级&主动服务
高频问题集锦
POC测试案例
全能先锋系列
云化安全能力

本版达人

新手61940...

本周建议达人

zhao_HN

本周分享达人

ZSFKF

本周提问达人