正确主动关闭连接

如果服务端没有考虑到各种异常场景,很难稳定运行,本章以生产环境 MQTT服务无法提供接入服务为例,详细介绍MQTT服务和Netty在异常场景下的保护机制。

问题:

生产环境的MQTT服务运行一段时间之后,发现新的端侧设备无法接入,连接超时。分析MQTT服务端日志,没有明显的异常,但是内存占用较高, 查看连接数,发现有数十万个TCP连接处于ESTABLISHED状态,实际的MQTT连接数应该在1万个左右,显然这么多连接肯定存在问题。由于MQTT服务端的内存是按照2万个左右连接数规模配置的,因此当连接数达到数十万个的规模之后,导致了服务端大量SocketChannel积压、内存暴涨、高频率GC和较长的STW时间,对端侧设备的接入造成了很大影响,部分设备MQTT握手超时,无法接入。
通过抓包分析发现,一些端侧设备并没有按照MQTT协议规范进行处理,包括:
(1) 客户端发起CONNECT连接,SSL握手成功之后没有按照协议规范继续处理,例如发送PING命令
(2) 客户端发起TCP连接,不做SSL握手,也不做后续处理,导致TCP连接被挂起
由于服务端是严格按照MQTT 规范实现的,上述端侧设备不按规范接入,实际上消息调度不到MQTT应用协议层。MQTT服务端依赖Keep Alive机制进行超时检测,当一段时间接收不到客户端的心跳和业务消息时,就会触发心跳超时,关闭连接 针对上述两种接入场景 ,由于MQTT的连接流程没有完成,MQTT协议栈不认为这个是合法的MQTT连接,因此心跳保护机制无法对上述TCP连接进行检测。客户端和服务端都没有主动关闭这个连接,导致TCP连接一直保持

MQTT接入过程:

服务端需要做一些可靠性保护,以防止客户端非正常操作带来的无效连接暴增:

(1)端侧设备的 TCP连接接入后,启动一个链路检测定时器加入NioEventLoop。
(2)链路检测定时器一旦触发,就主动关闭TCP连接。
(3)TCP连接完成MQTT协议层的CONNECT之后,删除之前创建的链路检测定时器。
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
网络安全知识竞赛小测试 -网络攻击技术 1、通过寻找目标的安全漏洞、盗窃存放系统口令的文件、破译加密的口令,属于哪种行为( ) [单选题] * A.破解系统口令文件(正确答案) B.网络嗅探 C.键盘记录 D.中间人攻击 2、关于摆渡攻击的描述错误的是( )[单选题] * A.摆渡攻击是百度的一种攻击方式(正确答案) B.摆渡攻击是一种专门针对移动存储设备的攻击方式 C.摆渡攻击就是利用 u 盘作为"渡船" D.摆渡木马隐蔽性、针对性很强,一般只感染特定的计算机 3、以下选项中( )不属于 APT 攻击的特点。[单选题] * A.潜伏性 B.针对性 C.社会工程性 D.传染性(正确答案) 4、比特币是( )[单选题] * A.美国法定货币 B.网络通用电子货币 C.国际通用货币 D.有一定流通性和认可性的虚拟货币(正确答案) 5、使网络服务器中充斥着大量要求回复的信息,消耗带宽,导致网络或系统停止正常服务,这 属于什么攻击类型( )[单选题] * A.拒绝服务(正确答案) B.文件共享 C.BIND 漏洞 D.远程过程调用 6、关闭 WIFI 的自动连接功能可以防范( )[单选题] * A.所有恶意攻击 B.假冒热点攻击(正确答案) C.恶意代码 D.拒绝服务攻击 7、下列哪个不是 QQ 中毒的主要症状( )[单选题] * A.QQ 老是掉线,提示异地登陆 B.QQ 空间存在垃圾广告日志 C.自动给好友发送垃圾消息 D.登录时无网络连接(正确答案) 8、从网络攻击的位置来分,可以分为远程攻击和( )两种。[单选题] * A.本地攻击(正确答案) B.主动攻击 C.被动攻击 D.伪远程攻击 9、黑客在攻击中进行端口扫描可以完成( )。[单选题] * A.检测黑客自己计算机已开放哪些端口 B.口令破译 C.获知目标主机开放了哪些端口服务(正确答案) D.截获网络流量 10、许多黑客攻击都是利用软件实现中的缓冲区溢出的漏洞,对于这一威胁,最可靠的解决方 案是( )[单选题] * A.安装防火墙 B.给系统安装最新的补丁(正确答案) C.安装入侵检测系统 D.安装防病毒软件 11、Man-in-the-middle 攻击,简称 MITM,即( )[单选题] * A.重放攻击 B.拒绝服务攻击 C.中间人攻击(正确答案) D.后门漏洞攻击 12、使用漏洞库匹配的扫描方法,能发现( )[单选题] * A.未知的漏洞 B.已知的漏洞(正确答案) C.自行设计的软件中的漏洞 D.所有漏洞 13、哪一项不是防范漏洞的措施( )[单选题] * A.使用正版软件 B.关注信息安全新闻 C.利用补丁 D.使用盗版软件(正确答案) 14、以下关于黑帽子描述正确的是( )[单选题] * A.获得国际资质的黑客 B.没有获得国际资质的骇客 C.没有获得国际资质的高级程序员 D.放弃道德信念而恶意攻击的黑客(正确答案) 15、以下不能防止拖库的方法是( )[单选题] * A.重要帐号单独管理,其他的帐号无所谓 B.可以电脑允许自动"保存密码",但定期修改密码 C.分级管理密码,把密码记录在本地磁盘的某个特定的文档中 D.以上全部(正确答案) 16、摆渡攻击通常不会用以下哪个途径来窃取资料( )[单选题] * A.摄像头(正确答案) B.U 盘 C.移动硬盘 D.移动载体 17、心脏出血漏洞与以下哪个协议直接相关( )[单选题] * A.HTTP B.SSL(正确答案) C.TCP D.SMTP 18、中国工商银行的官网为 http://www.icbc.com.cn,某同学从网上获取到一个网址为 http://www.icdc.com.cn,用浏览器打开后跟官网的几乎完全相同。针对第二个网址以下说法 正确的是:( )[单选题] * A.该网站是工商银行网站的备份网站,可以放心使用。 B.该网站可能属于钓鱼网站,冒充工商银行网站进行诈骗活动。(正确答案) C.先确保防火墙已经打开,防病毒软件已正确工作,然后放心打开并使用。 D.发给同学让同学去打开,确保安全后再用 19、攻击者常用的攻击工具有(1)DoS 攻击工具,(2)木马程序,(3)分布式工具。其中 DoS 是指( )[单选题] * A.一种磁盘操作系统 B.拒绝服务(正确答案) C.一种黑客工具软件的名称 D.一种病毒的名称 20、TCP SYN 泛洪攻击的原理是利用了( )[单选题] * A.TCP 三次握手过程(正确答案) B.TCP 面向流的工作机制 C.TCP 数据传输中的窗口技术 D.TCP 连接终止时的 FIN 报文 21、以下对 TCP 协议发起连接进行三次握手的叙述错误的是( )[单选题] * A.握手第一步:客户端发送一个 SYN 和 ACK 报文到服务器(正确答案) B.握手第二步:

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

0x13

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值