当前位置:首页>经验>

怎么禁用http协议(http协议被篡改无法上网)

来源:原点资讯(m.360kss.com)时间:2022-11-09 14:19:05作者:YD166手机阅读>>

问题现象

某应用在压测过程中,发现OTSClient与OTS服务端之间的TCP连接有大量处于TIME_WAIT状态。
查看与OTS服务端进行交互的不同TCP连接状态的数量:

netstat -ant | grep 10.4.170.39 | awk '/^tcp/{ state[$NF]};END{for(key in state) print key,state[key]}'

怎么禁用http协议,http协议被篡改无法上网(1)

图1 不同状态连接的数量

分析过程 TIME_WAIT

怎么禁用http协议,http协议被篡改无法上网(2)

图2 TCP四次挥手


OTSClient连接处于TIME_WAIT状态,由上图可知TCP连接是由OTSClient主动关闭的,所以OTSClient为什么要频繁的关闭TCP连接?在什么情况下关闭的?

tcpdump

通过tcpdump抓包可以清楚OTSClient与OTS服务端通讯协议及建立连接、传输数据、断开连接的过程。
OTSClient与OTS服务端通讯协议是HTTP1.1,HTTP1.1默认开启长连接,所以代码在某个地方主动断开了连接,接下来是找到代码中什么地方主动关闭的连接。

OTSClient

OTSClient构造方法中用于构造与OTS服务端通讯的代码如下:

怎么禁用http协议,http协议被篡改无法上网(3)

图3 构造方法

AsyncServiceClient构造方法如下:

怎么禁用http协议,http协议被篡改无法上网(4)

图4 定时间隔逻辑

IdleConnectionEvictor

怎么禁用http协议,http协议被篡改无法上网(5)

图5 空闲连接管理

场景回顾

应用中配置的socketTimeout=50ms,根据上面逻辑closePeriod=20ms,即当TCP连接空闲20ms的时候就主动关闭,主动关闭造成的现象是大量连接处于TIME_WAIT状态。

对系统的影响
  • 连接无法复用,每次请求OTS服务端都要新建TCP连接/关闭连接,造成客户端和服务端资源浪费
  • 频繁新建/关闭连接,更容易造成响应时间的毛刺
  • 大量连接处于TIME_WAIT状态,消耗系统内存、文件描述符等资源
QA

Q:是否可以调大socketTimeout来避免TIME_WAIT的问题?
A:不合适,该应用在线上访问OTS服务端平均响应时间是5ms,如果设置的过大,当与OTS服务端交互发生超时的时候,线程需要等待更长的时间会造成整个接口超时(业务要求该查询接口响应时间在60ms以下,线上平均响应时间是30ms)。

解决办法

查看了OTSClient 5.13.7的实现,与当前版本实现逻辑一致,所以更新OTSClient版本并不能解决这个问题。

怎么禁用http协议,http协议被篡改无法上网(6)

图6 pom依赖

已经向阿里反馈该问题,估计阿里的改动如下:

  • 将IdleConnectionEvictor定时间隔参数开放出来,让业务可以配置
  • 将IdleConnectionEvictor空闲时间参数开发出来,让业务可以配置

栏目热文

http协议如何测试(http协议是怎么实现的)

http协议如何测试(http协议是怎么实现的)

本文节选自霍格沃兹测试开发学社内部教材HTTP 协议是一种用于分布式、协作式和超媒体信息系统的应用层协议。HTTP 是万...

2022-11-09 14:27:55查看全文 >>

http 双向认证(ssl双向认证流程图)

http 双向认证(ssl双向认证流程图)

简述本文主要介绍HTTPS以及SSL单向验证和双向验证。HTTPS介绍HTTPS是一种通过计算机网络进行安全通信的传输协...

2022-11-09 14:18:05查看全文 >>

http请求数怎么消除(http请求最大处理时间)

http请求数怎么消除(http请求最大处理时间)

背景做过前端开发都知道前端的工作内容是很多的,对于HTML、CSS、Javascript、Image、Flash等各种内...

2022-11-09 14:06:53查看全文 >>

http请求怎么设置(http请求怎么操作)

http请求怎么设置(http请求怎么操作)

最近在学习做网站开发,有一个小功能需要记录并显示文章的阅读数量。我想出来的方案是,服务器接到浏览器的阅读文章的请求时,从...

2022-11-09 13:47:41查看全文 >>

什么是http认证(http请求的两种认证方式)

什么是http认证(http请求的两种认证方式)

我们现在所处的时代,是最公平的时代,也是最不公平的时代。它给予不同行业的人相同的尊重,也允许不同学历的人通过努力和勤奋获...

2022-11-09 13:59:54查看全文 >>

哪些http方法应该禁用(http协议怎么更安全)

哪些http方法应该禁用(http协议怎么更安全)

常见的62种http响应代码整理,当网站出现流量下降,索引下降,Robots检测失败,无法访问时,首先应检查HTTP响应...

2022-11-09 13:45:23查看全文 >>

2022年世俱杯城市名单(2023世俱杯主办城市)

2022年世俱杯城市名单(2023世俱杯主办城市)

新京报讯(记者 邓涵予)在今日举行的FIFA国际足联理事会新闻发布会上,国际足联主席因凡蒂诺正式宣布,2021年世俱杯落...

2022-11-09 14:15:10查看全文 >>

2022年世俱杯在哪举行(2022年世俱杯在哪里)

2022年世俱杯在哪举行(2022年世俱杯在哪里)

本报讯(记者 赵睿)昨天,中国足协发布公告,称原定于2021年在中国举行的新版世俱杯将延期进行。旧版世俱杯明年在日本举行...

2022-11-09 14:22:07查看全文 >>

世俱杯历届举办地(世俱杯历届决赛主场)

世俱杯历届举办地(世俱杯历届决赛主场)

北京时间2月13日凌晨,国际足联世俱杯赛进行了最后的决赛,英超的切尔西凭借哈弗茨在加时赛中的致胜点球,以2-1击败巴甲的...

2022-11-09 14:10:52查看全文 >>

2022年世俱杯什么时间举行(世俱杯或将延期至2022年)

2022年世俱杯什么时间举行(世俱杯或将延期至2022年)

据央视体育微博消息,据阿根廷媒体DOBLE AMARILLA报道,国际足联主席因凡蒂诺在接受采访时透露,2021年、20...

2022-11-09 14:27:32查看全文 >>

文档排行