一种端口协议的确定方法和装置制造方法及图纸

技术编号:29878573 阅读:19 留言:0更新日期:2021-08-31 23:54
本发明专利技术公开了一种端口协议的确定方法和装置,涉及计算机技术领域。该方法的一具体实施方式包括:建立客户端与代理服务器之间的第一连接以及代理服务器与服务端之间的第二连接;对所述第一连接、所述第二连接中的数据进行监听,以根据最先监听到数据的连接,确定所述代理服务器的端口对应的协议类型;根据所述协议类型,解析从所述连接中监听到的数据,以确定所述代理服务器的端口所支持的协议;根据所确定的协议,对所述代理服务器的端口所接收的请求进行处理。该实施方式能够在对请求处理之前识别出端口所指的应用层协议,提高了代理服务器处理数据包的效率以及可靠性。

【技术实现步骤摘要】
一种端口协议的确定方法和装置
本专利技术涉及计算机
,尤其涉及一种端口协议的确定方法和装置。
技术介绍
一般而言,在使用代理服务器在客户端与服务端之间转发请求或消息时,需要使得代理服务器启动端口服务,也即需要明确针对客户端与服务端之间的连接,代理服务器端口应支持的应用层协议,如HTTP协议、SMTP协议、POP3协议、IMAP协议等。由于端口可支持的应用层协议种类繁多,而对不同应用层协议的请求的处理操作也不同,因而需要尽早识别端口应支持的协议,以根据端口应支持的协议对所接收到的客户端请求或服务端请求进行相应处理。目前,对于客户端或服务端的常用端口(例如,监听端口),可以基于该常用端口的默认配置确定其所支持的应用层协议,如端口80支持的应用层协议通常为HTTP、端口143支持的应用层协议通常为IMAP;而对于非常用端口,则只能通过抓包的方式获取代理服务器对所接收到的请求进行处理的历史数据,以确定启动的代理服务器端口应支持的应用层协议。在实现本专利技术过程中,专利技术人发现现有技术中至少存在如下问题:若不能在代理服务器端口接收到应用层请求时或者在接收到应用层请求之前,识别该端口应支持的应用层协议,并基于该应用层协议对请求进行相应处理,则有可能降低代理服务器处理数据包转发的效率,甚至影响代理服务器的可靠性——例如,使得丢包率上升。
技术实现思路
有鉴于此,本专利技术实施例提供了一种端口协议的确定方法和装置,能够在对代理服务器端口所接收到的请求进行处理之前,识别该端口应支持的应用层协议,及时完成端口配置,并基于应用层协议对请求进行相应处理,提高了代理服务器在客户端和服务端之间转发数据包的效率,并有助于提高代理服务器的可靠性。为实现上述目的,根据本专利技术实施例的一个方面,提供了一种端口协议的确定方法,包括:建立客户端与代理服务器之间的第一连接以及代理服务器与服务端之间的第二连接;对所述第一连接、所述第二连接中的数据进行监听,以根据最先监听到数据的连接,确定所述代理服务器的端口对应的协议类型;根据所述协议类型,解析从所述连接中监听到的数据,以确定所述代理服务器的端口所支持的协议;根据所确定的协议,对所述代理服务器的端口所接收的请求进行处理。可选地,所述根据最先监听到数据的连接,确定所述代理服务器的端口对应的协议类型,包括:在最先从第一连接监听到数据的情况下,尝试建立安全连接,以基于安全连接的建立结果,确定所述协议类型;在最先从第二连接监听到数据的情况下,确定所述协议类型为服务端优先。可选地,所述尝试建立安全连接,以基于安全连接的建立结果,确定所述协议类型,包括:基于所述第一连接进行第一次握手;若握手失败,则确定所述协议类型为客户端优先;若握手成功,则基于所述第二连接进行第二次握手,以建立所述安全连接,并基于所述安全连接对应的ALPN字段或NPN字段确定所述协议类型。可选地,在基于所述安全连接对应的ALPN字段或NPN字段无法确定所述协议类型的情况下,继续对所述第一连接、所述第二连接中的数据进行监听:在最先从所述第一连接监听到数据的情况下,确定所述协议类型为客户端优先;在最先从所述第二连接监听到数据的情况下,确定所述协议类型为服务端优先。可选地,所述根据所述协议类型,解析从所述连接中监听到的数据,以确定所述代理服务器的端口所支持的协议,包括:在所述协议类型为客户端优先的情况下,若所解析的数据指示了HTTP/2.0,则确定端口所支持的协议为HTTP2协议;若所解析的数据未指示HTTP/2.0,则确定端口所支持的协议为HTTP协议。可选地,所述根据所述协议类型,解析从所述连接中监听到的数据,以确定所述代理服务器的端口所支持的协议,包括:在所述协议类型为服务端优先的情况下,若所解析的数据指示了+OK,则确定端口所支持的协议为POP3协议;若所解析的数据指示了*OK,则确定端口所支持的协议为IMAP协议;若所解析的数据指示了220,则基于服务端的响应信息确定端口所支持的协议;若所解析的数据未指示+OK、*OK、220中任意一种,则确定端口所支持的协议为不可识别的协议。可选地,所述若所解析的数据指示了220,则基于服务端的响应信息确定端口所支持的协议,包括:通过所述第二连接向所述服务端发送NOOP命令;接收所述服务端基于所述NOOP命令返回的响应信息;若所述响应信息指示了250OK,则确定端口所支持的协议为SMTP协议;若所述响应信息指示了200,则确定端口所支持的协议为FTP协议。可选地,在对所述第一连接、所述第二连接中的数据进行监听的情况下,设置回调函数,以在从所述第一连接或所述第二连接中监听到数据的情况下,对应地关闭对所述第二连接或所述第一连接的监听。可选地,所述建立客户端与代理服务器之间的第一连接以及代理服务器与服务端之间的第二连接,包括:在显示代理模式下,基于所述客户端向所述代理服务器发送的连接请求建立所述第一连接、所述第二连接;在透明代理模式下,通过网络配置转发所述客户端向所述服务端发送的连接请求建立所述第一连接、所述第二连接。可选地,所述安全连接为SSL连接或TLS连接。为实现上述目的,根据本专利技术实施例的另一个方面,提供了一种端口协议的确定装置,包括:连接建立模块、连接监听模块、协议确定模块、请求处理模块;其中,所述连接建立模块,用于建立客户端与代理服务器之间的第一连接以及代理服务器与服务端之间的第二连接;所述连接监听模块,用于对所述第一连接、所述第二连接中的数据进行监听,以根据最先监听到数据的连接,确定所述代理服务器的端口对应的协议类型;所述协议确定模块,用于根据所述协议类型,解析从所述连接中监听到的数据,以确定所述代理服务器的端口所支持的协议;所述请求处理模块,用于根据所确定的协议,对所述代理服务器的端口所接收的请求进行处理。可选地,所述根据最先监听到数据的连接,确定所述代理服务器的端口对应的协议类型,包括:在最先从第一连接监听到数据的情况下,尝试建立安全连接,以基于安全连接的建立结果,确定所述协议类型;在最先从第二连接监听到数据的情况下,确定所述协议类型为服务端优先。可选地,所述尝试建立安全连接,以基于安全连接的建立结果,确定所述协议类型,包括:基于所述第一连接进行第一次握手;若握手失败,则确定所述协议类型为客户端优先;若握手成功,则基于所述第二连接进行第二次握手,以建立所述安全连接,并基于所述安全连接对应的ALPN字段或NPN字段确定所述协议类型。可选地,所述连接监听模块,还用于在基于所述安全连接对应的ALPN字段或NPN字段无法确定所述协议类型的情况下,继续对所述第一连接、所述第二连接中的数据进行监听:在最先从所述第一连接监听到数据的情况下,确定所述协议类本文档来自技高网...

【技术保护点】
1.一种端口协议的确定方法,其特征在于,包括:/n建立客户端与代理服务器之间的第一连接以及代理服务器与服务端之间的第二连接;/n对所述第一连接、所述第二连接中的数据进行监听,以根据最先监听到数据的连接,确定所述代理服务器的端口对应的协议类型;/n根据所述协议类型,解析从所述连接中监听到的数据,以确定所述代理服务器的端口所支持的协议;/n根据所确定的协议,对所述代理服务器的端口所接收的请求进行处理。/n

【技术特征摘要】
1.一种端口协议的确定方法,其特征在于,包括:
建立客户端与代理服务器之间的第一连接以及代理服务器与服务端之间的第二连接;
对所述第一连接、所述第二连接中的数据进行监听,以根据最先监听到数据的连接,确定所述代理服务器的端口对应的协议类型;
根据所述协议类型,解析从所述连接中监听到的数据,以确定所述代理服务器的端口所支持的协议;
根据所确定的协议,对所述代理服务器的端口所接收的请求进行处理。


2.根据权利要求1所述的端口协议的确定方法,其特征在于,所述根据最先监听到数据的连接,确定所述代理服务器的端口对应的协议类型,包括:
在最先从第一连接监听到数据的情况下,尝试建立安全连接,以基于安全连接的建立结果,确定所述协议类型;
在最先从第二连接监听到数据的情况下,确定所述协议类型为服务端优先。


3.根据权利要求2所述的端口协议的确定方法,其特征在于,所述尝试建立安全连接,以基于安全连接的建立结果,确定所述协议类型,包括:
基于所述第一连接进行第一次握手;
若握手失败,则确定所述协议类型为客户端优先;
若握手成功,则基于所述第二连接进行第二次握手,以建立所述安全连接,并基于所述安全连接对应的ALPN字段或NPN字段确定所述协议类型。


4.根据权利要求3所述的端口协议的确定方法,其特征在于,
在基于所述安全连接对应的ALPN字段或NPN字段无法确定所述协议类型的情况下,继续对所述第一连接、所述第二连接中的数据进行监听:
在最先从所述第一连接监听到数据的情况下,确定所述协议类型为客户端优先;
在最先从所述第二连接监听到数据的情况下,确定所述协议类型为服务端优先。


5.根据权利要求4所述的端口协议的确定方法,其特征在于,所述根据所述协议类型,解析从所述连接中监听到的数据,以确定所述代理服务器的端口所支持的协议,包括:
在所述协议类型为客户端优先的情况下,若所解析的数据指示了HTTP/2.0,则确定端口所支持的协议为HTTP2协议;
若所解析的数据未指示HTTP/2.0,则确定端口所支持的协议为HTTP协议。


6.根据权利要求4所述的端口协议的确定方法,其特征在于,所述根据所述协议类型,解析从所述连接中监听到的数据,以确定所述代理服务器的端口所支持的协议,包括:
在所述协议类型为服务端优先的情况下,若所解析的数据指示了+OK,则确定端口所支持的协议为POP3协议;
若所解析的数据指示了*OK,则确定端口所支持的协议为IMAP协议;
若所解析的数据指示了220,则基于服务端的响应信息确定端口所支持的协议;
若所解析的数据未指示+OK、*OK、220中任意一种,则确定端口所支持的协议为不可识别的协议。


7.根据权利要求6所述的端口协议的确定方法,其特征在于,所述若所解析的数据指示了220,则基于服务端的响应信息确定端口所支持的协议,包括:
通过所述第二连接向所述服务端发送NOOP命令;
接收所述服务端基于所述NOOP命令返回的响应信息;
若所述响应信息指示了250OK,则确定端口所支持的协议为SMTP协议;
若所述响应信息指示了200,则确定端口所支持的协议为FTP协议。


8.根据权利要求1或4所述的端口协议的确定方法,其特征在于,
在对所述第一连接、所述第二连接中的数据进行监听的情况下,设置回调函数,以在从所述第一连接或所述第二连接中监听到数据的情况下,对应地关闭对所述第二连接或所述第一连接的监听。


9.根据权利要求1所述的端口协议的确定方法,其特征在于,所述建立客户端与代理服务器之间的第一连接以及代理服务器与服务端之间的第二连接,包括:
在显示代理模式下,基于所述客户端向所述代理服务器发送的连接请求建立所述第一连接、所述第二连接;
在透明代理模式下,通过网络配置转发所述客户端向所述服务端发送的连接请求建立所述第一连接、所述第二连接。


10.根据权利要求2所述的端口协议的确定方法,其特征在于,
所述安全连接为SSL连接或TLS连接。


11.一种端口协议的确定装置,其特征在于,包括:连接建立模块、连接监听模块、协议确定模块、请求处理模块;其中,
所述连接建立模块,用于建立客户端与代理服务器之间的第一连接以及代理服务器与服务端之间的第二连接;
所述连接监听模块,用于对所述第一连接、所述第二连接中的数据进行监听,以根据最先监听到数据的...

【专利技术属性】
技术研发人员:杨建柴社荣徐超
申请(专利权)人:北京天空卫士网络安全技术有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1