协议协商方法、装置、代理服务器及存储介质与流程

文档序号:26749765发布日期:2021-09-25 02:06阅读:92来源:国知局
协议协商方法、装置、代理服务器及存储介质与流程

1.本发明涉及网络传输领域,尤其涉及一种协议协商方法、装置、代理服务器及存储介质。


背景技术:

2.在一些通讯网络中,客户端与业务服务器无法直接通信,通过代理服务器进行协议协商和业务代理。代理服务器接收客户端的请求,代替客户端与业务服务器通信。代理服务器对于客户端而言,是目的端,对于业务服务器而言,是源端。目前,代理服务器在对客户端进行业务代理前,需要先进行协议协商,现有方法是先进行认证方式协商,然后进行认证,再建立代理连接,而客户端与代理服务器需要往返发送数据包,从而需要有至少六次协议报文的交互,才能成功建立客户端与代理服务器的代理关系。并且,每条业务流都会经历一次协议协商过程,这就导致现有技术存在过程繁琐的问题。


技术实现要素:

3.本发明的主要目的在于:提供一种协议协商方法、装置、代理服务器及存储介质,旨在解决现有的代理服务器在对客户端进行协议协商时,存在过程繁琐的技术问题。
4.为实现上述目的,本发明采用如下技术方案:
5.第一方面,本发明提供了一种协议协商方法,应用于代理服务器,所述方法包括:
6.接收客户端发送的报文,其中,所述报文包括代理控制信息和业务载荷信息;
7.根据所述代理控制信息,进行认证方式匹配和认证信息匹配;
8.若所述认证方式和所述认证信息均匹配成功,则根据所述代理控制信息,建立所述代理服务器与业务服务器的连接,以将所述业务载荷信息转发给所述业务服务器。
9.可选地,上述协议协商方法中,所述根据所述代理控制信息,进行认证方式匹配和认证信息匹配的步骤,具体包括:
10.判断所述代理控制信息中标记的认证方式与所述代理服务器预设认证方式是否一致;
11.若所述代理控制信息中标记的认证方式与所述代理服务器预设认证方式一致,判定认证方式匹配成功,则进一步判断所述代理控制信息中携带的认证信息是否正确;
12.若所述代理控制信息中携带的认证信息正确,判定认证信息匹配成功。
13.可选地,上述协议协商方法中,所述判断所述代理控制信息中标记的认证方式与所述代理服务器预设认证方式是否一致的步骤之后,所述方法还包括:
14.若所述代理控制信息中标记的认证方式与所述代理服务器预设认证方式不一致,判定认证方式匹配失败,则反馈认证方式协商应答报文给客户端,以中止协议协商,和/或
15.以使所述客户端更换认证方式,对所述报文进行重新封装,并发送重装后的报文到所述代理服务器。
16.可选地,上述协议协商方法中,所述进一步判断所述代理控制信息中携带的认证
信息是否正确的步骤之后,所述方法还包括:
17.若所述代理控制信息中携带的认证信息不正确,判定认证信息匹配失败,则反馈认证应答报文给客户端,以终止协议协商。
18.可选地,上述协议协商方法中,所述根据所述代理控制信息,建立所述代理服务器与业务服务器的连接,以将所述业务载荷信息转发给所述业务服务器的步骤,具体包括:
19.根据所述代理控制信息,生成代理业务连接请求发送到所述业务服务器,以建立所述代理服务器与所述业务服务器的连接;
20.若所述代理服务器与所述业务服务器建立连接成功,则发送代理报文给所述业务服务器,其中,所述代理报文包括所述业务载荷信息;
21.若所述代理服务器与所述业务服务器建立连接失败,则反馈代理连接应答报文给客户端,以终止协议协商。
22.第二方面,本发明提供了一种协议协商方法,应用于客户端,所述方法包括:
23.发送报文给代理服务器,其中,所述报文包括代理控制信息和业务载荷信息;和/或
24.在接收到代理服务器发送的认证方式协商应答报文时,更换认证方式,对所述报文进行重新封装,并发送重装后的报文到所述代理服务器。
25.第三方面,本发明提供了一种协议协商装置,应用于代理服务器,所述装置包括:
26.报文接收模块,用于接收客户端发送的报文,其中,所述报文包括代理控制信息和业务载荷信息;
27.认证匹配模块,用于根据所述代理控制信息,进行认证方式匹配和认证信息匹配;
28.建立连接模块,用于若所述认证方式和所述认证信息均匹配成功,则根据所述代理控制信息,建立所述代理服务器与业务服务器的连接,以将所述业务载荷信息转发给所述业务服务器。
29.第四方面,本发明提供了一种协议协商装置,应用于客户端,所述装置包括:
30.报文发送模块,用于发送报文给代理服务器,其中,所述报文包括代理控制信息和业务载荷信息;和/或
31.报文重装模块,用于在接收到代理服务器发送的认证方式协商应答报文时,更换认证方式,对所述报文进行重新封装,并发送重装后的报文到所述代理服务器。
32.第五方面,本发明提供了一种代理服务器,所述代理服务器包括处理器和存储器,所述存储器中存储有计算机程序,所述计算机程序被所述处理器执行时,实现如上述的协议协商方法。
33.第六方面,本发明提供了一种存储介质,其上存储有计算机程序,所述计算机程序可被一个或多个处理器执行,以实现如上述的协议协商方法。
34.本发明提供的上述一个或多个技术方案,可以具有如下优点或至少实现了如下技术效果:
35.本发明提出的一种协议协商方法、装置、代理服务器及存储介质,通过接收一条客户端发送的包括代理控制信息和业务载荷信息的报文,进行认证方式匹配和认证信息匹配,若所述认证方式和所述认证信息均匹配成功,不需要反馈任何业务回包到客户端,直接根据所述代理控制信息,建立所述代理服务器与业务服务器的连接,以将所述业务载荷信
息转发给所述业务服务器;本发明的方法简化了协议协商过程,是一种轻交互的协议协商方法,将原本的多条控制报文压缩到了一条报文中,并隐式地嵌入到业务报文交互中,实现了将代理协商过程压缩到一条报文中,直接进行协议协商和业务代理转发的效果;客户端与代理服务器间进行认证方式匹配,相比较现有的由客户端先通告能力再由代理服务器选取的方法,可以提高协商效率,降低代理关系建立的时间消耗和时延。
附图说明
36.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的这些附图获得其他的附图。
37.图1为本发明协议协商方法第一实施例的流程示意图;
38.图2为本发明涉及的代理服务器的硬件结构示意图;
39.图3为现有的socks5协议代理tcp业务的工作流程交互图;
40.图4为本发明协议协商方法第二实施例的流程示意图;
41.图5为本发明协议协商方法第二实施例的socks5协议代理udp业务常规的工作流程交互图;
42.图6为本发明协议协商方法第二实施例的socks5协议代理udp业务认证方式匹配失败的工作流程交互图;
43.图7为本发明协议协商方法第二实施例的socks5协议代理udp业务认证失败的工作流程交互图;
44.图8为本发明协议协商方法第二实施例的socks5协议代理tcp业务建立连接失败的工作流程交互图;
45.图9为本发明协议协商装置第一实施例的功能模块示意图。
46.本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
47.为使本发明的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例只是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
48.需要说明,在本发明中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括
……”
限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。另外,全文中出现的“和/或”的含义,包括三个并列的方案,以“a和/或b”为例,包括a方案、或b方案、或a和b同时满足的方案。
49.在本发明中,使用用于表示元件的诸如“模块”、“部件”或“单元”的后缀仅为了有利于本发明的说明,其本身没有特定的意义。因此,“模块”、“部件”或“单元”可以混合地使
用。对于本领域的普通技术人员而言,可以根据具体情况理解上述术语在本发明中的具体含义。另外,各个实施例的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时,应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。
50.对现有技术的分析发现,在客户端通过代理服务器访问业务服务器的通讯网络中,客户端与业务服务器无法直接通信,通过代理服务器进行协议协商和业务代理,接收客户端的请求,代替客户端与业务服务器通信。代理服务器拥有双重身份,对于客户端而言,是目的端,对于业务服务器而言,是源端,比如,socks5服务器,socks5(socks protocol version 5)是一种代理协议,广泛应用于业务客户端与业务服务器间无法直接通信的场景,例如出差员工需要访问公司内部服务器。如图3所示为现有的socks5协议代理tcp业务的工作流程交互图,可以看出,socks5工作流程可分为两个阶段:socks5协议协商过程与socks5业务代理过程。
51.代理服务器在对客户端进行业务代理前,需要先进行协议协商,即客户端在业务请求之前,首先会与socks5服务器进行socks5协议协商,建立起socks5协商会话。该socks5协议协商过程有六步:
52.1、socks5认证协商请求:客户端首先向socks5服务器发起认证方式协商请求,将其支持的所有认证方式打包发送给socks5服务器。socks5客户端发出的认证方式协商请求报文封装方式如下:
[0053][0054]
其中,socks5载荷1为:
[0055]
vernmethodsmethods111to255
[0056]
上述socks5载荷1中,ver字段指示socks协议版本,取值恒为0x5,占1字节;nmethods字段指示携带的认证方式个数,占1字节;methods字段指示具体支持的认证方式类型,占用字节数与nmethods字段取值相同。
[0057]
2、socks5认证协商应答:socks5服务器选择与客户端同时支持的认证方式中最优的一种,应答给客户端,此时双方就认证方式达成一致。如若客户端提议的所有认证方式服务器均不支持,则协商终止。socks5服务器发出的认证方式协商应答报文封装方式如下:
[0058][0059]
其中,socks5载荷2为:
[0060]
vermethods11
[0061]
上述socks5载荷2中,ver字段指示socks协议版本,取值恒为0x5,占1字节;methods字段指示选用的认证方式或告知客户端没有可接受的让认证方式,占1字节。
[0062]
3、socks5认证请求:客户端使用双方达成一致的认证方式,向socks5服务器发起认证请求。客户端发出的认证请求报文封装方式如下:
[0063][0064]
其中,socks5载荷3为:
[0065]
verulenunameplenpasswd111to25511to255
[0066]
上述socks5载荷3中,ver字段指示socks协议版本,取值恒为0x5,占1字节;ulen字段指示用户名的长度,占1字节;uname字段指示用户名,占用字节数与ulen字段取值相同;plen字段指示用户密码的长度,占1字节;passwd字段指示用户密码,占用字节数与plen字段取值相同。
[0067]
4、socks5认证应答:socks5服务器进行认证,并反馈认证结果给客户端。如若认证失败,则协商终止。socks5服务器发出的认证应答报文封装方式如下:
[0068][0069]
其中,socks5载荷4为:
[0070]
verstatus11
[0071]
上述socks5载荷4中,ver字段指示socks协议版本,取值恒为0x5,占1字节;status字段指示认证结果,占1字节。
[0072]
5、socks5代理连接请求:客户端向socks5服务器发起代理连接请求,其中携带有请求代理的业务连接类型,比如,可指示将承接tcp协议业务还是udp协议业务,以及业务请求的目的地址和目的端口。客户端发出的代理连接请求报文封装方式如下:
[0073][0074]
其中,socks5载荷5为:
[0075]
vercmdrsvatypdst.addrdst.port11x’00’1variable2
[0076]
上述socks5载荷5中,ver字段指示socks协议版本,取值恒为0x5,占1字节;cmd字段指示被代理的业务连接类型,占1字节;rsv字段为保留字段,其值恒为0x0,占1字节;atyp字段指示dst.addr字段的地址类型,占1字节;dst.addr字段指示业务请求的目的地址,字段长度为动态的(variable),即根据atyp取值不同而不同;dst.port字段指示业务请求的目的端口,占2字节。
[0077]
6、socks5代理连接应答:socks服务器使用代理请求中的信息向后端的业务服务器发起连接,并将连接信息反馈给客户端。socks5服务器发出的代理连接应答报文封装方
式如下:
[0078][0079]
其中,socks5载荷6为:
[0080]
verreprsvatypbnd.addrbnd.port11x’00’1variable2
[0081]
上述socks5载荷6中,ver字段指示socks协议版本,取值恒为0x5,占1字节;rep字段指示socks5代理连接成功与否的结果,占1字节;rsv字段为保留字段,其值恒为0x0,占1字节;atyp字段指示bnd.addr字段的地址类型,占1字节;bnd.addr字段指示代理的业务请求的目的地址,字段长度为动态的(variable),即根据atyp取值不同而不同;bnd.port字段指示代理的业务请求的目的端口,占2字节。
[0082]
协议协商完成后即步骤1

6均成功的情况下,客户端与socks5服务器的socks5协商会话结束,进入socks5业务代理过程,即代理关系已协商建立,客户端可以向业务服务器发送业务请求,该socks5业务代理过程有四步:
[0083]
7、业务报文:客户端发送给socks5服务器,客户端发出的业务报文封装方式如下:
[0084][0085]
8、代理后的业务报文:socks5服务器发送给业务服务器,socks5服务器发出的代理后的业务报文封装方式如下:
[0086][0087]
9、代理后的业务报文回包:业务服务器发送给socks5服务器,业务服务器发出的代理后的业务报文回包封装方式如下:
[0088][0089]
10、业务报文回包:socks5服务器发送给客户端,socks5服务器发出的代理后的业务报文回包封装方式如下:
[0090][0091]
客户端的业务报文流经socks5服务器后,socks5服务器会代理客户端的业务,代替客户端与业务服务器通信。socks5既可以代理tcp业务,又可代理udp业务。客户端将原本要发送给真正业务服务器的业务请求发送给socks5服务器,socks5服务器收到客户端的报文后,使用相同的传输层协议与后端真正的业务服务器间进行通信。socks5服务器收到业
务服务器的回包后,再转送给客户端。
[0092]
上述1

10为现有socks5协议代理tcp业务的工作流程。可以看出,协议协商过程先进行认证方式协商,然后进行认证,再建立代理连接,客户端与代理服务器需要往返发送数据包,从而需要有至少六个协议报文的交互,才能成功建立客户端与代理服务器的代理关系。在建立代理关系后,即在协议协商过程后才进入业务代理过程,而针对不同的业务流,每条业务流都会经历一套完整的代理建立的协议协商过程,这就导致现有技术存在过程繁琐的问题。
[0093]
鉴于现有技术中代理服务器在对客户端进行协议协商时,存在过程繁琐的技术问题,本发明提供了一种协议协商方法,总体思路如下:
[0094]
应用于代理服务器时,接收客户端发送的报文,其中,所述报文包括代理控制信息和业务载荷信息;根据所述代理控制信息,进行认证方式匹配和认证信息匹配;若所述认证方式和所述认证信息均匹配成功,则根据所述代理控制信息,建立所述代理服务器与业务服务器的连接,以将所述业务载荷信息转发给所述业务服务器。
[0095]
通过上述技术方案,简化了协议协商过程,是一种轻交互的协议协商方法,将原本的多条控制报文压缩到了一条报文中,并隐式地嵌入到业务报文交互中,实现了将代理协商过程压缩到一条报文中,直接进行协议协商和业务代理转发的效果;客户端与代理服务器间进行认证方式匹配,相比较现有的由客户端先通告能力再由代理服务器选取的方法,可以提高协商效率,降低代理关系建立的时间消耗和时延。
[0096]
实施例一
[0097]
参照图1的流程示意图,提出本发明协议协商方法的第一实施例,该协议协商方法应用于代理服务器。
[0098]
所述代理服务器是指能够实现网络连接的设备,所述代理服务器可以是服务器、云平台等网络设备,比如socks5服务器、http服务器等等。
[0099]
如图2所示,为代理服务器的硬件结构示意图。所述代理服务器可以包括:处理器1001,例如cpu(central processing unit,中央处理器),通信总线1002,用户接口1003,网络接口1004,存储器1005。
[0100]
本领域技术人员可以理解,图2中示出的硬件结构并不构成对本发明代理服务器的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
[0101]
具体的,通信总线1002用于实现这些组件之间的连接通信;
[0102]
用户接口1003用于连接管理终端,与管理终端进行数据通信,用户接口1003可以包括输出单元,如显示屏、输入单元,如键盘,可选的,用户接口1003还可以包括其他输入/输出接口,比如标准的有线接口、无线接口;
[0103]
网络接口1004用于连接后台服务器,与后台服务器进行数据通信,网络接口1004可以包括输入/输出接口,比如标准的有线接口、无线接口,如wi

fi接口;
[0104]
存储器1005用于存储各种类型的数据,这些数据例如可以包括该代理服务器中任何应用程序或方法的指令,以及应用程序相关的数据,存储器1005可以是高速ram存储器,也可以是稳定的存储器,例如磁盘存储器,可选的,存储器1005还可以是独立于所述处理器1001的存储装置;
[0105]
具体的,继续参照图2,存储器1005中可以包括操作系统、网络通信模块、用户接口
模块以及计算机程序,其中,网络通信模块主要用于连接业务服务器,与业务服务器进行数据通信;
[0106]
处理器1001用于调用存储器1005中存储的计算机程序,并执行以下操作:
[0107]
接收客户端发送的报文,其中,所述报文包括代理控制信息和业务载荷信息;
[0108]
根据所述代理控制信息,进行认证方式匹配和认证信息匹配;
[0109]
若所述认证方式和所述认证信息均匹配成功,则根据所述代理控制信息,建立所述代理服务器与业务服务器的连接,以将所述业务载荷信息转发给所述业务服务器。
[0110]
基于上述的代理服务器,下面结合图1所示的流程示意图,对本实施例的协议协商方法进行详细描述。本实施例以socks5服务器为例进行说明,所述方法可以包括以下步骤:
[0111]
步骤s110:接收客户端发送的报文,其中,所述报文包括代理控制信息和业务载荷信息。
[0112]
具体的,客户端可以包括部署在不同设备上的业务客户端和代理客户端,比如,现有的业务客户端和socks5客户端,即通过业务客户端发送业务请求至代理客户端,再由代理客户端发起协议协商,发送报文至代理服务器;也可以包括部署在同一个设备上的业务客户端和代理客户端,即可以自行生成业务请求并发起协议协商,再发送报文至代理服务器,具体根据实际场景选择,本实施例中,以部署在同一个设备上的业务客户端和代理客户端构成的客户端为例进行说明。
[0113]
报文还包括传输头信息,报文的封装方式依次为:传输头信息、代理控制信息、业务荷载信息。客户端首次发起业务通信之际,客户端在传送业务载荷的报文中,同时携带socks5协议协商请求的控制载荷,无论是udp业务还是tcp业务,均是在传输头和业务载荷间插入一个新socks5载荷,即代理控制信息。
[0114]
步骤s120:根据所述代理控制信息,进行认证方式匹配和认证信息匹配。
[0115]
具体的,先根据代理控制信息即新socks5载荷的字段内容,进行该报文的认证方式与代理服务器预设的认证方式匹配,若匹配成功,则进一步进行认证信息匹配,也是根据新socks5载荷的字段内容携带内容进行,若认证信息匹配成功,则表示客户端与代理服务器认证成功。
[0116]
步骤s130:若所述认证方式和所述认证信息均匹配成功,则根据所述代理控制信息,建立所述代理服务器与业务服务器的连接,以将所述业务载荷信息转发给所述业务服务器。
[0117]
具体的,客户端与代理服务器认证成功后,使用新socks5载荷携带的连接方式,即指示是tcp协议还是udp协议,以及携带的目的地址、目的端口向业务服务器发起代理业务连接请求。若建立连接成功,代理服务器便可将报文中携带的业务载荷转发给业务服务器,即发送代理后的报文给业务服务器,之后,业务服务器发送代理后的报文回包到代理服务器,代理服务器再发送报文回包给客户端。具体再根据和udp协议决定是否插入socks5隧道头。
[0118]
本实施例提供的协议协商方法,通过接收一条客户端发送的包括代理控制信息和业务载荷信息的报文,进行认证方式匹配和认证信息匹配,若所述认证方式和所述认证信息均匹配成功,不需要反馈任何业务回包到客户端,直接根据所述代理控制信息,建立所述代理服务器与业务服务器的连接,以将所述业务载荷信息转发给所述业务服务器;本发明
的方法简化了协议协商过程,是一种轻交互的协议协商方法,将原本的多条控制报文压缩到了一条报文中,并隐式地嵌入到业务报文交互中,实现了将代理协商过程压缩到一条报文中,直接进行协议协商和业务代理转发的效果;客户端与代理服务器间进行认证方式匹配,相比较现有的由客户端先通告能力再由代理服务器选取的方法,可以提高协商效率,降低代理关系建立的时间消耗和时延。
[0119]
实施例二
[0120]
基于同一发明构思,参照图4至图8,提出本发明协议协商方法的第二实施例,该协议协商方法应用于代理服务器,本实施例以socks5服务器为例进行说明。
[0121]
下面结合图4所示的流程示意图,对本实施例的协议协商方法进行详细描述。所述方法可以包括以下步骤:
[0122]
步骤s110:接收客户端发送的报文,其中,所述报文包括代理控制信息和业务载荷信息。
[0123]
具体的,报文还包括传输头信息。所述代理控制信息包括代理协议版本、认证方式、认证信息、业务连接类型、目的地址类型、业务服务器地址和业务服务器端口,所述认证信息包括用户名长度、用户名、用户密码长度、用户密码。
[0124]
如图5所示为socks5协议代理udp业务的工作流程交互图,本实施例以socks5服务器代理udp业务为例进行说明,客户端为部署在同一个设备上的业务客户端和代理客户端构成的客户端。
[0125]
客户端首次发起业务通信之际,客户端在传送业务载荷的报文中,同时携带socks5协议协商请求的控制载荷,在传输头和业务载荷间插入一个新socks5载荷。本实施例的报文的封装方式为:
[0126][0127]
其中,新socks5载荷1为:
[0128]
vermethodsulenunameplenpasswdcmdrsvatypdst.addrdst.port1121to25511to2551x’00’1variable2
[0129]
上述新socks5载荷1中,ver字段指示socks协议版本,取值恒为0x5,占1字节;methods字段指示选用的认证方式,占1字节;ulen字段指示用户名的长度,占1字节;uname字段指示用户名,占用字节数与ulen字段取值相同;plen字段指示用户密码的长度,占1字节;passwd字段指示用户密码,占用字节数与plen字段取值相同;cmd字段指示被代理的业务连接类型,占1字节;rsv字段为保留字段,其值恒为0x0,占1字节;atyp字段指示dst.addr字段的地址类型,占1字节;dst.addr字段指示业务请求的目的地址,字段长度根据atyp取值不同而不同;dst.port字段指示业务请求的目的端口,占2字节。
[0130]
本实施例实现了socks5代理建立的协商过程与socks5业务承载深度融合,代理建立的协商信息均包含在第一个业务报文的报文里。
[0131]
步骤s120:根据所述代理控制信息,进行认证方式匹配和认证信息匹配。
[0132]
具体的,所述步骤s120,可以包括:
[0133]
步骤s121:判断所述代理控制信息中标记的认证方式与所述代理服务器预设认证
方式是否一致。
[0134]
具体的,socks5服务器收到报文后,首先解析出报文的代理控制信息,即新socks5载荷1。根据该新socks5载荷1进行认证方法匹配,使用报文中标记的认证方式进行认证。
[0135]
步骤s122:若所述代理控制信息中标记的认证方式与所述代理服务器预设认证方式一致,判定认证方式匹配成功,则进一步判断所述代理控制信息中携带的认证信息是否正确。
[0136]
具体的,若新socks5载荷1中标记的认证方式与代理服务器预设的认证方式一致,即socks5服务器支持报文中标记的认证方式,判定认证方式匹配成功,从而进一步判断新socks5载荷1中携带的认证信息是否正确。
[0137]
步骤s123:若所述代理控制信息中标记的认证方式与所述代理服务器预设认证方式不一致,判定认证方式匹配失败,则反馈认证方式协商应答报文给客户端,以中止协议协商,和/或
[0138]
以使所述客户端更换认证方式,对所述报文进行重新封装,并发送重装后的报文到所述代理服务器。
[0139]
具体的,若新socks5载荷1中标记的认证方式与代理服务器预设的认证方式不一致,若新socks5载荷1中标记的认证方式与代理服务器预设的认证方式不支持报文中标记的认证方式,判定认证方式匹配失败,代理服务器反馈“socks5认证方式协商应答报文”给客户端,以显式告知客户端认证方式未被接受,协议协商中止,如图6所示为socks5协议代理udp业务认证方式匹配失败的工作流程交互图。
[0140]
可选地,客户端在收到了“socks5认证方式协商应答报文”后,即可知晓代理服务器不支持当前报文标记的认证方式,从而可以另选一种认证方式重新组装携带有“新socks5载荷1”的报文,并将重装后的报文发送给代理服务器,即返回步骤s110,代理服务器将继续获取报文,进行认证方式匹配,无论代理的业务是tcp业务还是udp业务,该种情况的处理方式均相同。
[0141]
步骤s124:若所述代理控制信息中携带的认证信息正确,判定认证信息匹配成功。
[0142]
具体的,进一步判断新socks5载荷1中携带的认证信息是否正确时,若新socks5载荷1中携带的认证信息正确,判定认证信息匹配成功,即客户端认证成功,此时的状态为,认证方式支持且认证通过,从而可进一步建立代理服务器与业务服务器的连接。
[0143]
步骤s125:若所述代理控制信息中携带的认证信息不正确,判定认证信息匹配失败,则反馈认证应答报文给客户端,以终止协议协商。
[0144]
具体的,进一步判断新socks5载荷1中携带的认证信息是否正确时,若新socks5载荷1中携带的认证信息错误,判定认证信息匹配失败,即客户端认证失败,此时的状态为,认证方式支持但认证不通过,代理服务器反馈“socks5认证应答报文”给客户端,以显式告知客户端认证失败,协议协商终止,无论代理的业务是tcp业务还是udp业务,该种情况的处理方式均相同,如图7所示为socks5协议代理udp业务认证失败的工作流程交互图。
[0145]
本实施例采用最优方案尝试法,取代通信双方先协商认证方式再使用达成一致认证方法。客户端直接以自身认可的最优方案发起认证,socks服务器将认证结果隐式地体现在业务承载报文是否发生代理的行为中。当客户端提出的认证方式被socks5服务器认可时,socks5服务器无需显式地反馈匹配结果,而是通过是否正常进行后续的业务代理隐式
地告知客户端认证方式已被接纳;当认证方式不被认可时,socks5服务器才发送“socks5认证方式协商应答”报文以显式告知客户端认证方式未被接受,并且,客户端可选地更换认证方式重试。当客户端的认证信息被socks5服务器认证成功时,socks5服务器无需显式地反馈认证结果,而是通过是否正常进行后续的业务代理隐式地告知客户端已认证成功;当认证失败时,socks5服务器发送“socks5认证应答”报文以显式告知客户端,本次协议协商终止。
[0146]
步骤s130:若所述认证方式和所述认证信息均匹配成功,则根据所述代理控制信息,建立所述代理服务器与业务服务器的连接,以将所述业务载荷信息转发给所述业务服务器。
[0147]
具体的,所述步骤s130,可以包括:
[0148]
步骤s131:若所述认证方式和所述认证信息均匹配成功,则根据所述代理控制信息,生成代理业务连接请求发送到所述业务服务器,以建立所述代理服务器与所述业务服务器的连接。
[0149]
具体的,认证方式支持且认证通过后,使用控制头中携带的连接方式,即指示是tcp协议还是udp协议、目的地址、目的端口向业务服务器发起代理业务连接请求。
[0150]
步骤s132:若所述代理服务器与所述业务服务器建立连接成功,则发送代理报文给所述业务服务器,其中,所述代理报文包括所述业务载荷信息。
[0151]
具体的,若连接建立成功,则可以进行业务代理,即socks5服务器将报文中的携带的业务载荷转发给后端业务服务器。
[0152]
步骤s133:若所述代理服务器与所述业务服务器建立连接失败,则反馈代理连接应答报文给客户端,以终止协议协商。
[0153]
具体的,若连接建立失败,代理服务器反馈“socks5代理连接应答报文”给客户端,以显式告知客户端建立连接失败,协议协商终止。需要说明,只有代理的业务是tcp业务时才会存在这种可能,如图8所示为socks5协议代理tcp业务建立连接失败的工作流程交互图。
[0154]
在本实施例中,假设认证方式和认证信息均匹配成功,且代理服务器与业务服务器成功建立连接,此时,socks5服务器发送代理后的报文给业务服务器。本实施例中,代理后的报文的封装方式如下:
[0155][0156]
需要说明,对udp业务代理而言,客户端向socks5服务器发送的报文中由于封装的“新socks5载荷1”中已包含后端业务服务器信息,因此无需再封装socks隧道头。
[0157]
当socks5服务器与后端业务服务器建立连接成功时,socks5服务器无需显式地反馈连接结果,而是通过是否正常进行后续的业务代理隐式地告知客户端连接成功,当连接失败时,socks5服务器发送“socks5连接请求应答”报文以显式告知客户端,本次协议协商终止。
[0158]
步骤s140:接收业务服务器反馈的代理后的报文回包。
[0159]
具体的,业务服务器接收到socks5服务器发送的代理后的报文后,对应进行业务
处理,然后反馈代理后的报文回包给socks5服务器。代理后的报文回包的封装方式如下:
[0160][0161]
步骤s150:发送报文回包给客户端。
[0162]
具体的,socks5服务器接收到代理后的报文回包后,转发给回包给客户端,即发送报文回包给客户端。
[0163]
对于udp业务的代理,socks5协议有明确规定需要在udp头与udp业务载荷间封装一层socks5隧道头,对于tcp业务而言则无需插入socks5隧道头。本实施例中,报文回包的封装方式如下:
[0164][0165]
其中,socks5隧道头为:
[0166]
rsvfragatypdst.addrdst.portdata211variable2variable
[0167]
上述socks5隧道头中,dst.addr为业务服务器的ip地址或域名,即为图5中的c;dst.port为业务服务器提供业务服务的udp端口,即为图5中的c,其他字段含义参见前述描述,此处不再赘述。
[0168]
需要说明,若是tcp业务,则socks5服务器发送报文回包给客户端时,不需要插入socks5隧道头。
[0169]
本实施例提供的协议协商方法,是一种轻交互socks5协议协商方法,对于客户端与socks5服务器间建立socks5代理的协商过程,将原本socks5协议的6条控制报文交互的信息压缩到了一条报文中,并且此条控制报文信息隐式地嵌入到了业务报文交互中,完全省去了socks5协商交互过程。客户端与socks5服务器间认证方式达成一致的方法,不再由客户端先通告能力再由socks5服务器选取,而是采用最优方案尝试法,即客户端直接以自身认可的最优方案发起认证,socks代理服务器将认证结果隐式地体现在业务承载报文是否发生代理的行为中,不仅将协议协商效率提高了6倍,还大大降低了socks5代理关系建立的时间消耗与socks5业务代理首包处理的时延。本方法是将协商报文与业务承载隧道封装报文深度整合的新的实现方案。
[0170]
实施例三
[0171]
基于同一发明构思,提出本发明协议协商方法的第三实施例,该协议协商方法应用于客户端。客户端是指能够实现网络连接的终端设备,可以是手机、电脑、平板电脑、嵌入式工控机等终端设备。所述方法可以包括以下步骤:
[0172]
步骤s210:发送报文给代理服务器,其中,所述报文包括代理控制信息和业务载荷信息。
[0173]
进一步地,所述方法还可以包括:
[0174]
步骤s220:在接收到代理服务器发送的认证方式协商应答报文时,更换认证方式,
对所述报文进行重新封装,并发送重装后的报文到所述代理服务器。
[0175]
上述方法步骤的具体实施方式中更多实施细节可参见实施例二中具体实施方式的描述,为了说明书的简洁,此处不再重复赘述。
[0176]
实施例四
[0177]
基于同一发明构思,参照图9,提出本发明协议协商装置的第一实施例,该协议协商装置可以为虚拟装置,应用于代理服务器。
[0178]
下面结合图9所示的功能模块示意图,对本实施例提供的协议协商装置进行详细描述,所述装置可以包括:
[0179]
报文接收模块,用于接收客户端发送的报文,其中,所述报文包括代理控制信息和业务载荷信息;
[0180]
认证匹配模块,用于根据所述代理控制信息,进行认证方式匹配和认证信息匹配;
[0181]
建立连接模块,用于若所述认证方式和所述认证信息均匹配成功,则根据所述代理控制信息,建立所述代理服务器与业务服务器的连接,以将所述业务载荷信息转发给所述业务服务器。
[0182]
进一步地,所述认证匹配模块,可以包括:
[0183]
认证方式匹配单元,用于判断所述代理控制信息中标记的认证方式与所述代理服务器预设认证方式是否一致;
[0184]
认证信息匹配单元,用于若所述代理控制信息中标记的认证方式与所述代理服务器预设认证方式一致,判定认证方式匹配成功,则进一步判断所述代理控制信息中携带的认证信息是否正确;
[0185]
认证方式匹配失败单元,用于若所述代理控制信息中标记的认证方式与所述代理服务器预设认证方式不一致,判定认证方式匹配失败,则反馈认证方式协商应答报文给客户端,以中止协议协商,和/或
[0186]
以使所述客户端更换认证方式,对所述报文进行重新封装,并发送重装后的报文到所述代理服务器;
[0187]
认证信息匹配成功单元,用于若所述代理控制信息中携带的认证信息正确,判定认证信息匹配成功;
[0188]
认证信息匹配失败单元,用于若所述代理控制信息中携带的认证信息不正确,判定认证信息匹配失败,则反馈认证应答报文给客户端,以终止协议协商。
[0189]
进一步地,所述建立连接模块,可以包括:
[0190]
连接请求单元,用于根据所述代理控制信息,生成代理业务连接请求发送到所述业务服务器,以建立所述代理服务器与所述业务服务器的连接;
[0191]
连接成功单元,用于若所述代理服务器与所述业务服务器建立连接成功,则发送代理报文给所述业务服务器,其中,所述代理报文包括所述业务载荷信息;
[0192]
连接失败单元,用于若所述代理服务器与所述业务服务器建立连接失败,则反馈代理连接应答报文给客户端,以终止协议协商。
[0193]
需要说明,本实施例提供的协议协商装置中各个模块可实现的功能和对应达到的技术效果可以参照本发明协议协商方法各个实施例中具体实施方式的描述,为了说明书的简洁,此处不再赘述。
[0194]
实施例五
[0195]
基于同一发明构思,提出本发明协议协商装置的第二实施例,该协议协商装置可以为虚拟装置,应用于客户端。所述装置可以包括:
[0196]
报文发送模块,用于发送报文给代理服务器,其中,所述报文包括代理控制信息和业务载荷信息;和/或
[0197]
报文重装模块,用于在接收到代理服务器发送的认证方式协商应答报文时,更换认证方式,对所述报文进行重新封装,并发送重装后的报文到所述代理服务器。
[0198]
需要说明,本实施例提供的协议协商装置中各个模块可实现的功能和对应达到的技术效果可以参照本发明协议协商方法各个实施例中具体实施方式的描述,为了说明书的简洁,此处不再赘述。
[0199]
实施例六
[0200]
基于同一发明构思,参照图2,为本发明各实施例涉及的代理服务器的硬件结构示意图。本实施例提供了一种代理服务器,所述代理服务器可以包括处理器和存储器,所述存储器中存储有计算机程序,所述计算机程序被所述处理器执行时,实现本发明协议协商方法第一或第二实施例的全部或部分步骤。
[0201]
具体的,所述代理服务器是指能够实现网络连接的设备,可以是服务器、云平台等网络设备。
[0202]
可以理解,所述代理服务器还可以包括通信总线,用户接口和网络接口。
[0203]
其中,通信总线用于实现这些组件之间的连接通信。
[0204]
用户接口用于连接管理终端,与管理终端进行数据通信,用户接口可以包括输出单元,如显示屏、输入单元,如键盘,可选的,用户接口还可以包括其他输入/输出接口,比如标准的有线接口、无线接口。
[0205]
网络接口用于连接后台服务器,与后台服务器进行数据通信,网络接口可以包括输入/输出接口,比如标准的有线接口、无线接口,如wi

fi接口。
[0206]
存储器用于存储各种类型的数据,这些数据例如可以包括该代理服务器中任何应用程序或方法的指令,以及应用程序相关的数据。存储器可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(static random access memory,简称sram),可擦除可编程只读存储器(erasable programmable read

only memory,简称eprom),可编程只读存储器(programmable read

only memory,简称prom),只读存储器(read

only memory,简称rom),磁存储器,快闪存储器,磁盘或光盘,可选的,存储器还可以是独立于所述处理器的存储装置。
[0207]
处理器用于调用存储器中存储的计算机程序,并执行如上述的协议协商方法,处理器可以是专用集成电路(application specific integrated circuit,简称asic)、数字信号处理器(digital signal processor,简称dsp)、数字信号处理设备(digital signal processing device,简称dspd)、可编程逻辑器件(programmable logic device,简称pld)、现场可编程门阵列(field programmable gate array,简称fpga)、控制器、微控制器、微处理器或其他电子元件,用于执行如上述协议协商方法第一或第二实施例的全部或部分步骤。
[0208]
实施例七
[0209]
基于同一发明构思,本实施例提供了一种客户端,所述客户端可以包括处理器和存储器,所述存储器中存储有计算机程序,所述计算机程序被所述处理器执行时,实现本发明协议协商方法第三实施例的全部或部分步骤。
[0210]
所述客户端是指能够实现网络连接的终端设备,可以是手机、电脑、平板电脑、便携计算机等终端设备。
[0211]
可以理解,所述客户端还可以包括通信总线,用户接口和网络接口。
[0212]
其中,通信总线用于实现这些组件之间的连接通信。
[0213]
用户接口用于连接其他终端,进行数据通信,用户接口可以包括输出单元,如显示屏、输入单元,如键盘,可选的,用户接口还可以包括其他输入/输出接口,比如标准的有线接口、无线接口。
[0214]
网络接口用于连接后台服务器,与后台服务器进行数据通信,网络接口可以包括输入/输出接口,比如标准的有线接口、无线接口,如wi

fi接口。
[0215]
存储器用于存储各种类型的数据,这些数据例如可以包括该客户端中任何应用程序或方法的指令,以及应用程序相关的数据。存储器可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,例如静态随机存取存储器(static random access memory,简称sram),可擦除可编程只读存储器(erasable programmable read

only memory,简称eprom),可编程只读存储器(programmable read

only memory,简称prom),只读存储器(read

only memory,简称rom),磁存储器,快闪存储器,磁盘或光盘,可选的,存储器还可以是独立于所述处理器的存储装置。
[0216]
处理器用于调用存储器中存储的计算机程序,并执行如上述的协议协商方法,处理器可以是专用集成电路(application specific integrated circuit,简称asic)、数字信号处理器(digital signal processor,简称dsp)、数字信号处理设备(digital signal processing device,简称dspd)、可编程逻辑器件(programmable logic device,简称pld)、现场可编程门阵列(field programmable gate array,简称fpga)、控制器、微控制器、微处理器或其他电子元件,用于执行如上述协议协商方法第三实施例的全部或部分步骤。
[0217]
实施例八
[0218]
基于同一发明构思,本实施例提供了一种计算机可读存储介质,如闪存、硬盘、多媒体卡、卡型存储器(例如,sd或dx存储器等)、随机访问存储器(ram)、静态随机访问存储器(sram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、可编程只读存储器(prom)、磁性存储器、磁盘、光盘、服务器、app应用商城等等,所述存储介质上存储有计算机程序,所述计算机程序可被一个或多个处理器执行,所述计算机程序被处理器执行时可以实现本发明协议协商方法各个实施例的全部或部分步骤。
[0219]
需要说明,上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
[0220]
以上所述仅为本发明的可选实施例,并非因此限制本发明的专利范围,凡是在本发明的发明构思下,利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均包括在本发明的专利保护范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1