CN116032507A - 一种数据传输方法、代理服务器和业务客户端 - Google Patents
一种数据传输方法、代理服务器和业务客户端 Download PDFInfo
- Publication number
- CN116032507A CN116032507A CN202111254750.8A CN202111254750A CN116032507A CN 116032507 A CN116032507 A CN 116032507A CN 202111254750 A CN202111254750 A CN 202111254750A CN 116032507 A CN116032507 A CN 116032507A
- Authority
- CN
- China
- Prior art keywords
- service
- identifier
- proxy server
- client
- proxy
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Computer And Data Communications (AREA)
Abstract
本申请公开了一种数据传输方法,该方法包括:获取业务客户端的第一互联网协议地址、业务客户端的第一端口号和业务客户端发送的用户信息;基于第一互联网协议地址、第一端口号和用户信息,生成业务标识;若接收到业务客户端发送的代理连接请求,响应代理连接请求,生成携带有业务标识的连接信息;其中,代理连接请求携带有业务服务器的第二互联网协议地址和第二端口号;连接信息中存储有映射关系,映射关系用于指示业务标识对应的第二互联网协议地址和第二端口号;向业务客户端反馈连接信息,以使业务客户端在接收到连接信息后,将业务标识封装在业务报文的头部,得到业务标识的隧道头部信息。本申请还公开了一种代理服务器和业务客户端。
Description
技术领域
本申请涉及但不限于计算机领域,尤其涉及一种数据传输方法、代理服务器和业务客户端。
背景技术
随着网络的不断发展和网络服务应用的越来越多样化,网络代理服务在复杂的网络环境中正扮演着越来越重要的角色。代理服务器的功能就是代理网络用户去取得网络信息。形象地说,它是网络信息的中转站。有了代理服务之后,网络中断不是直接到服务器去取回网络资源而是向代理服务器发出请求,由代理服务器来取回终端所需要的信息并传送给用户终端。而且,大部分代理服务器都具有缓冲的功能,就好像一个大容量缓存,它有很大的存储空间,不断将新取得数据储存到服务器本机的存储器上,这样就能显着提高资源获取的效率,也能够丰富获取资源的手段。更重要的是:代理服务器是因特网链路级网关所提供的一种重要的安全功能,它的工作主要在开放系统互联(Open SystemInterconnection Reference Model,OSI)模型的会话层。
现有的代理服务大体上可以分为两类:线路层代理和应用层代理。线路层代理使用最为广泛的是防火墙安全会话转换协议5(Protocol for sessions traversal acrossfirewall securely Protocol Version 5,SOCKS5)代理。SOCKS5是一种代理协议,广泛应用于业务客户端与业务服务器间无法直接通信的场景,也广泛应用于各类加速场景,例如云游戏加速场景、增强现实(Augmented Reality,AR)/虚拟现实(Virtual Reality,VR)加速场景。SOCKS5的通信系统里通常存在4个角色:业务客户端、SOCKS5客户端、SOCKS5代理服务器、业务服务器。不同的部署场景下,业务客户端与SOCKS5客户端可以分开部署,也可以部署在一个通信终端中。业务客户端、代理服务器和业务服务器的交互流程可分为两个阶段:协议握手阶段与业务代理阶段。
然而,针对业务客户端、代理服务器和业务服务器的交互流程中协议握手阶段会话与业务代理阶段会话之间相互独立,导致协议握手阶段会话中的用户信息无法与业务代理阶段的业务报文关联,使得代理服务器在业务代理阶段,无从知晓业务报文属于哪一个用户,也无法判别业务报文是否来自合法用户。
发明内容
有鉴于此,本申请提供一种数据传输方法、代理服务器和业务客户端,解决了相关技术中导致协议握手阶段会话中的用户信息无法与业务代理阶段的业务报文关联,使得代理服务器在业务代理阶段,无从知晓业务报文属于哪一个用户,也无法判别业务报文是否来自合法用户的问题。
为达到上述目的,本申请的技术方案是这样实现的:
一种数据传输方法,所述方法应用于代理服务器,包括:
获取业务客户端的第一互联网协议地址、所述业务客户端的第一端口号和所述业务客户端发送的用户信息;
基于所述第一互联网协议地址、所述第一端口号和所述用户信息,生成业务标识;
若接收到所述业务客户端发送的代理连接请求,响应所述代理连接请求,生成携带有所述业务标识的连接信息;其中,所述代理连接请求携带有业务服务器的第二互联网协议地址和第二端口号;所述连接信息中存储有映射关系,所述映射关系用于指示所述业务标识对应的所述第二互联网协议地址和所述第二端口号;
向所述业务客户端反馈所述连接信息,以使所述业务客户端在接收到所述连接信息后,将所述业务标识封装在业务报文的头部,得到所述业务标识的隧道头部信息。
一种数据传输方法,所述方法应用于业务客户端,包括:
若接收到代理服务器发送的用于表征用户信息校验通过的标识,发送代理连接请求至所述代理服务器;
若接收到所述代理服务器发送的携带有业务标识的连接信息,将所述业务标识封装在业务报文的头部,得到所述业务标识的隧道头部信息;其中,所述业务标识是所述代理服务器基于业务客户端的第一互联网协议地址、所述业务客户端的第一端口号和所述业务客户端发送的用户信息生成的;
发送封装了所述隧道头部信息的业务报文至代理服务器。
一种代理服务器,所述代理服务器包括:
第一获取单元,用于获取业务客户端的第一互联网协议地址、所述业务客户端的第一端口号和所述业务客户端发送的用户信息;
第一处理单元,用于基于所述第一互联网协议地址、所述第一端口号和所述用户信息,生成业务标识;
所述第一处理单元,还用于若接收到所述业务客户端发送的代理连接请求,响应所述代理连接请求,生成携带有所述业务标识的连接信息;其中,所述代理连接请求携带有业务服务器的第二互联网协议地址和第二端口号;所述连接信息中存储有映射关系,所述映射关系用于指示所述业务标识对应的所述第二互联网协议地址和所述第二端口号;
所述第一处理单元,还用于向所述业务客户端反馈所述连接信息,以使所述业务客户端在接收到所述连接信息后,将所述业务标识封装在业务报文的头部,得到所述业务标识的隧道头部信息。
一种业务客户端,所述业务客户端包括:
第二发送单元,用于若接收到代理服务器发送的用于表征用户信息校验通过的标识,发送代理连接请求至所述代理服务器;
第二处理单元,用于若接收到携带有业务标识的连接信息,将所述业务标识封装在业务报文的头部,得到所述业务标识的隧道头部信息;其中,所述业务标识基于业务客户端的第一互联网协议地址、所述业务客户端的第一端口号和所述业务客户端发送的用户信息生成的;
所述第二发送单元,还用于发送封装了所述隧道头部信息的业务报文至代理服务器。
一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个应用,所述一个或者多个应用可被一个或者多个处理器执行,以实现上述所述的数据传输方法的步骤。
本申请所提供的数据传输方法、代理服务器和业务客户端,该方法包括:获取业务客户端的第一互联网协议地址、业务客户端的第一端口号和业务客户端发送的用户信息;基于第一互联网协议地址、第一端口号和用户信息,生成业务标识;若接收到业务客户端发送的代理连接请求,响应代理连接请求,,生成携带有业务标识的连接信息;其中,代理连接请求携带有业务服务器的第二互联网协议地址和第二端口号;连接信息中存储有映射关系,映射关系用于指示业务标识对应的第二互联网协议地址和第二端口号;向业务客户端反馈连接信息,以使业务客户端在接收到连接信息后,将业务标识封装在业务报文的头部,得到业务标识的隧道头部信息。也就是说,本申请代理服务器与业务客户端在协商握手阶段中的,代理服务器根据代理连接请求,反馈的代理连接结果中携带有业务标识,同时,代理服务器与业务客户端在业务代理阶段中的,业务客户端发送的业务报文中携带有业务标识。明显,采用业务标识,可以建立代理服务器与业务客户端在协商握手阶段和业务代理阶段的关联,代理服务器根据业务标识快速确定出业务报文所关联的会话,知晓业务报文属于哪个用户,从而能够正确判断出业务报文的发送者是否为已在协议握手阶段做过身份校验的合法用户,避免由于不合法用户发送的业务报文,所引起的风险。同时,本申请中的业务报文可以精确的匹配上用户,即使得业务与具体的用户信息关联,能增加业务代理的安全性,并且使得相关技术人员可以对业务行为进行精确地用户画像分析,针对用户信息进行流量控制,在游戏加速场景等加速场景下,可以对用户信息的业务流量进行精确地计费。
附图说明
图1是相关技术中业务客户端、SOCKS5代理服务器和业务服务器的交互流程示意图;
图2A是相关技术中业务客户端向SOCKS5代理服务器所发送认证协商请求的格式的示意图;
图2B是相关技术中SOCKS5代理服务器向业务客户端反馈的协商结果的格式的示意图;
图2C是相关技术中业务客户端向SOCKS5代理服务器所发送认证请求的格式的示意图;
图2D是相关技术中SOCKS5代理服务器向业务客户端反馈的认证结果的格式的示意图;
图2E是相关技术中业务客户端向SOCKS5代理服务器所发送代理连接请求的格式示意图;
图2F是相关技术中SOCKS5代理服务器向业务客户端反馈的代理连接结果的格式的示意图;
图2G是相关技术中业务客户端向SOCKS5代理服务器所发送业务报文的格式的示意图;
图2H是相关技术中SOCKS5代理服务器向业务服务器发送代理后业务报文的格式的示意图;
图2I是相关技术中业务服务器向SOCKS5代理服务器所发送反馈业务回包的格式的示意图;
图2J是相关技术中SOCKS5代理服务器向业务客户端发送代理后业务回包的格式的示意图;
图3是本申请提供的实施数据传输方法的网络架构示意图;
图4是本申请提供的一种数据传输方法的流程示意图一;
图5是本申请提供的一种数据传输方法的流程示意图二;
图6是本申请提供的一种数据传输方法的流程示意图三;
图7A是本申请中代理服务器向业务客户端反馈的代理连接结果的格式的示意图;
图7B是本申请中业务客户端向代理服务器所发送业务报文的格式的示意图;
图7C是本申请中代理服务器向业务客户端反馈的封装了业务标识的处理后的业务报文的格式的示意图;
图8是本申请实施提供的一种代理服务器的结构示意图;
图9是本申请实施提供的一种业务客户端的结构示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,所描述的实施例不应视为对本申请的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。除非另有定义,本申请实施例所使用的所有的技术和科学术语与属于本申请实施例的技术领域的技术人员通常理解的含义相同。本申请实施例所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
在解释本申请之前,这里针对相关技术中的代理服务器如SOCKS5代理服务器进行简要说明:
图1是相关技术中业务客户端、代理服务器和业务服务器的交互流程示意图。需要说明的是,业务客户端在协议握手阶段采用互联网协议(Internet Protocol,IP)地址A1和端口a1,与SOCKS5代理服务器的IP地址B1和端口b1进行通信。业务客户端在业务代理阶段采用IP地址A2和端口a2,与SOCKS5代理服务器的IP地址B2和端口b2进行通信,并业务客户端和SOCKS5代理服务器采用传输控制协议(Transmission Control Protocol,TCP)套接字进行通信。SOCKS5代理服务器在业务代理阶段采用IP地址B3和端口b3,与业务服务器的IP地址C和端口c进行通信。
步骤101、业务客户端向SOCKS5代理服务器发送认证协商请求。
业务客户端向SOCKS5代理服务器发送认证方式的协商请求,业务客户端将自身支持的所有认证方式打包发送给SOCKS5代理服务器。图2A是相关技术中业务客户端向SOCKS5代理服务器所发送认证协商请求的格式的示意图。如图2A所示,IP头在网络层封装的,记载的是协商请求的源地址A1和目的地址B1。TCP头在传输层封装的,记载的是协商请求的源端口a1和目的端口b1。协商请求的协商载荷携带有业务客户端所支持的所有认证方式。其中,VER字段用于表征SOCKS版本,占1个字节,SOCKS5的版本号采用0x05表征;NMETHODS字段用于表征METHODS字段的长度,占1个字节;METHODS字段是业务客户端支持的认证方式列表,每个认证方式占1字节。
相关技术中对METHODS字段的取值:采用0x00用于表征不需要认证、采用0x01用于表征通用安全服务应用程序接口(Generic Security Services ApplicationProgramming Interface,GSSAPI)的认证方式、采用0x02用于表征用户名和密码的认证方式、0x03-0x7F由互联网地址编码分配机构(Internet Assigned Numbers Authority,IANA)分配、0x80-0xFE为私人方法保留、采用0xFF用于表征无可接受的认证方式。
步骤102、SOCKS5代理服务器响应认证协商请求,并反馈协商结果至业务客户端。
SOCKS5代理服务器从业务客户端所支持的多个认证方式中,选择最优的一种认证方式,并将选择的结果应答给业务客户端,此时业务客户端和SOCKS5代理服务器就认证方式达成一致。图2B是相关技术中SOCKS5代理服务器向业务客户端反馈的协商结果的格式的示意图。如图2B所示,IP头在网络层封装的,记载的是协商结果的源地址B1和目的地址A1。TCP头在传输层封装的,记载的是协商结果的源端口b1和目的端口a1。协商结果的协商载荷携带有SOCKS5代理服务器从多个认证方式中选择最优的一种认证方式。其中,NMETHOD字段用于表征SOCKS5代理服务器选中的认证方式,占1个字节。
相关技术中对METHOD字段的取值:采用0xFF用于表征没有一个认证方法被选中,业务客户端需要关闭连接。
步骤103、业务客户端向SOCKS5代理服务器发送认证请求。
业务客户端使用双方达成一致的认证方式,例如,采用用户名和密码的认证方式,向SOCKS5代理服务器发送认证请求。图2C是相关技术中业务客户端向SOCKS5代理服务器所发送认证请求的格式的示意图。如图2C所示,IP头在网络层封装的,记载的是认证请求的源地址A1和目的地址B1。TCP头在传输层封装的,记载的是认证请求的源端口a1和目的端口b1。认证请求的协商载荷携带有用户名和密码。其中,ULEN字段用于表征用户名长度,占1个字节;UNAME字段用于表征用户名,占1个字节;PLEN字段用于表征密码长度,占1个字节;PASSWD字段用于表征密码,占1至255个字节。
步骤104、SOCKS5代理服务器响应认证请求,并反馈认证结果至业务客户端。
SOCKS5代理服务器对业务服务器发送的用户名和密码进行认证,并反馈认证结果给业务客户端;若反馈认证结果表征认证失败,则协商中止。图2D是相关技术中SOCKS5代理服务器向业务客户端反馈的认证结果的格式的示意图。如图2D所示,IP头在网络层封装的,记载的是认证结果的源地址B1和目的地址A1。TCP头在传输层封装的,记载的是认证结果的源端口b1和目的端口a1。认证结果的协商载荷携带有SOCKS5代理服务器的认证结果。其中,STATUS字段用于表征鉴定状态,占1个字节。
相关技术中对STATUS字段的取值:采用0x00表示鉴定成功、采用0x01表示鉴定失败。
步骤105、业务客户端向SOCKS5代理服务器发送代理连接请求。
业务客户端向SOCKS5代理服务器发送代理连接请求。图2E是相关技术中业务客户端向SOCKS5代理服务器所发送代理连接请求的格式示意图。如图2E所示,IP头在网络层封装的,记载的是代理连接请求的源地址A1和目的地址B1。TCP头在传输层封装的,记载的是代理连接请求的源端口a1和目的端口b1。代理连接请求的协商载荷携带有业务服务器的目的地址和目的端口。其中,CMD字段用于指示出业务客户端请求代理的业务连接类型,占1个字节;RSV字段是保留字节,采用0x00表示,占1个字节;ATYP字段用于表征DST.ADDR字段的类型;DST.ADDR字段用于表征业务服务器的目的地址;DST.PORT字段用于表征业务服务器的目的端口。
相关技术中对CMD字段的取值:采用0x01表示CONNECT请求;采用0x02表示绑定(BIND)请求;采用0x03表示用户数据报协议(User Datagram Protocol,UDP)转发。
相关技术中对ATYP字段的取值:采用0x01表示网际协议版本4(InternetProtocol version 4,IPv4)地址、采用0x03表示域名,DST.ADDR字段第一个字节为域名长度,DST.ADDR字段剩余的字节为域名,没有\0结尾。采用0x04表示网际协议版本6(InternetProtocol version 6,IPv6)地址。
步骤106、SOCKS5代理服务器响应代理连接请求,并反馈代理连接结果至业务客户端。
SOCKS5代理服务器使用代理连接请求中的信息向业务服务器发起连接,并将代理连接结果反馈给业务客户端。图2F是相关技术中SOCKS5代理服务器向业务客户端反馈的代理连接结果的格式的示意图。如图2F所示,IP头在网络层封装的,记载的是代理连接结果的源地址B1和目的地址A1。TCP头在传输层封装的,记载的是代理连接结果的源端口b1和目的端口a1。针对代理连接结果的协商载荷,REP字段用于表征应答字段;RSV字段是保留字节,采用0x00表示,占1个字节;ATYP字段用于表征BND.ADDR的类型;BND.ADDR字段用于表征SOCKS5代理服务器绑定的地址;BND.PORT字段用于表征SOCKS5代理服务器绑定的端口;BND.ADDR字段与BND.PORT字段会明确指示出SOCKS5代理服务器提供给业务客户端做代理连接的UDP套接字(SOCKET)侦听地址与侦听端口。
相关技术中对REP字段的取值:采用0x00表示连接成功;采用0x01表示连接普通SOCKS代理服务器连接失败;采用0x02表示现有规则不允许连接;采用0x03表示网络不可达;采用0x04表示主机不可达;采用0x05表示连接被拒;采用0x06表示生存时间值(Time ToLive,TTL)超时;采用0x07表示不支持的命令;采用0x08表示不支持的地址类型。
需要说明的是,执行步骤101至步骤106之后,业务客户端与SOCKS5代理服务器间完成SOCKS5协议握手结束,建立起SOCKS5协商会话,之后进入业务代理阶段。
步骤107、业务客户端向SOCKS5代理服务器发送业务报文。
对于UDP业务的代理,SOCKS5协议有明确规定需要在UDP头与UDP业务载荷间封装一个SOCKS5隧道头。
业务客户端向SOCKS5代理服务器发送业务报文,即业务客户端实际传输的业务报文。图2G是相关技术中业务客户端向SOCKS5代理服务器所发送业务报文的格式的示意图。如图2G所示,IP头在网络层封装的,记载的是发送业务报文的源地址A2和目的地址B2。UDP头在传输层封装的,记载的是发送业务报文的源端口a2和目的端口b2。SOCKS5隧道头中的FRAG字段用于指示业务报文数据量;DST.ADDR字段用于表征业务服务器的目的地址;DST.PORT字段用于表征业务服务器的目的端口。
步骤108、SOCKS5代理服务器发送代理后业务报文至业务服务器。
SOCKS5代理服务器接收到业务客户端发送的业务报文后,将业务报文中的筛掉SOCKS5隧道头,并将筛掉SOCKS5隧道头的业务报文,即代理后业务报文,发送给业务服务器。图2H是相关技术中SOCKS5代理服务器向业务服务器发送代理后业务报文的格式的示意图。如图2H所示,IP头在网络层封装的,记载的是代理连接结果的源地址B3和目的地址C。UDP头在传输层封装的,记载的是代理连接结果的源端口b3和目的端口c。
步骤109、业务服务器向SOCKS5代理服务器反馈业务回包。
业务服务器对筛掉SOCKS5隧道头的业务报文进行处理,得到处理后的业务回包。图2I是相关技术中业务服务器向SOCKS5代理服务器所发送反馈业务回包的格式的示意图。如图2I所示,IP头在网络层封装的,记载的是发送业务回包的源地址C和目的地址B3。UDP头在传输层封装的,记载的是发送业务回包的源端口c和目的端口b3。
步骤110、SOCKS5代理服务器向业务服务器反馈代理后业务回包。
SOCKS5代理服务器接收到业务服务器发送的业务回包后,将业务回包添加至SOCKS5隧道头,并将添加了SOCKS5隧道头的业务报文的回包,即代理后业务回包,发送给业务客户端。图2J是相关技术中SOCKS5代理服务器向业务客户端发送代理后业务回包的格式的示意图。如图2J所示,IP头在网络层封装的,记载的是代理连接结果的源地址B2和目的地址A2。UDP头在传输层封装的,记载的是代理连接结果的源端口b2和目的端口a2。
业务客户端的业务报文流经SOCKS5代理服务器后,SOCKS5代理服务器会代理业务客户端的业务,代替业务客户端与业务服务器通信。
业务客户端将原本要发送给真正业务服务器的业务请求发送给SOCKS5代理服务器,SOCKS5代理服务器收到业务客户端的报文后,使用相同的传输层协议与后端真正的业务服务器间进行通信。SOCKS5代理设备收到业务服务器的回包后,再转送给业务客户端。
参见图3,图3是本申请提供的实施数据传输方法的网络架构示意图,该网络架构包括业务客户端301、代理服务器302和业务服务器303;其中,业务客户端301和代理服务器302通过网络1连接;代理服务器302和业务服务器303通过网络2连接。示例性的,业务客户端301部署在电子设备上,为客户提供本地服务的程序。电子设备包括但不限于智能手机、平板电脑、个人数字助理(Personal Digital Assistant,PDA)、可穿戴设备、智能电视、智能摄像机、智能投影机、膝上型便携计算机和台式计算机等。代理服务器302能够接收业务客户端301发送的业务报文,并将业务报文发送给相应的业务服务器303处理。代理服务器302可以是单个的服务器,也可以是由多各服务器构成的服务器集群、云计算中心等。业务服务器303能够对代理服务器302发送来的业务报文进行处理,并将处理结果反馈给代理服务器302。业务服务器303可以是单个的服务器,也可以是由多各服务器构成的服务器集群、云计算中心等。网络1包括但不限于局域网、城域网和广域网。网络2包括但不限于局域网、城域网和广域网。需要说明的是,采用网络1和网络2仅用于表征两个无法直接进行通信的网络。
参见图4,图4是本申请实施例提供的数据传输方法的一个实现流程示意图,该数据传输方法可以应用于图3所示的代理服务器302;该数据传输方法包括如下步骤:
步骤401、获取业务客户端的第一互联网协议地址、业务客户端的第一端口号和业务客户端发送的用户信息。
本申请实施例中,业务客户端先将自身支持的所有认证方式打包发送给代理服务器,即业务客户端向代理服务器发送认证方式的协商握手报文,代理服务器从业务客户端所支持的多个认证方式中,选择最优的一种认证方式,并将选择的结果应答给业务客户端。这里,代理服务器从业务客户端发送的认证方式的协商握手报文中记录下收到的业务客户端的第一互联网协议地址与第一端口号。然后,业务客户端根据双方达成一致的认证方式,向代理服务器发送携带用户信息的认证请求,代理服务器对业务服务器发送的用户信息进行认证,并反馈认证结果给业务客户端。当代理服务器确定认证成功后,从携带用户信息的认证请求中记录下业务客户端发送的用户信息。
需要说明的是,代理服务器也可以从业务客户端发送的携带用户信息的认证请求对应的握手报文中记录下收到的业务客户端的第一互联网协议地址与第一端口号。
本申请实施例中,第一互联网协议地址包括但不限于IPv4地址、域名和IPv6地址。
本申请实施例中,第一端口号可以是业务客户端上预设的端口号,也可以是相关技术人员根据实际需求设置的,对此,本申请不进行任何限定。
本申请实施例中,用户信息包括但不限于用户名,密码,用户名长度,密码长度。
步骤402、基于第一互联网协议地址、第一端口号和用户信息,生成业务标识。
本申请实施例中,代理服务器对第一互联网协议地址、第一端口号和用户信息进行处理,得到用于表征目标业务的业务标识。
在一些实施例中,代理服务器可以将第一互联网协议地址、第一端口号和用户信息转换为三元组,得到业务标识。示例性的,第一互联网协议地址为A1,第一端口号为a1和用户信息为admin,那么业务标识可以为(A1,a1,admin)或业务标识可以为(admin,A1,a1)。
步骤403、若接收到业务客户端发送的代理连接请求,响应代理连接请求,生成携带有业务标识的连接信息。
其中,代理连接请求携带有业务服务器的第二互联网协议地址和第二端口号;连接信息中存储有映射关系,映射关系用于指示业务标识对应的第二互联网协议地址和第二端口号。
步骤404、向业务客户端反馈连接信息,以使业务客户端在接收到连接信息后,将业务标识封装在业务报文的头部,得到业务标识的隧道头部信息。
本申请实施例中,若接收到业务客户端发送的代理连接请求,代理服务器响应代理连接请求,并向客户端反馈携带有业务标识的连接信息。结合图2F,代理服务器可以在代理连接结果的协商载荷中附加一个业务标识字段,用于携带业务标识。例如,在BND.PORT字段添加业务标识字段,即代理连接结果的协商载荷还包括业务标识字段。
本申请实施例中,代理服务器向业务客户端反馈携带有业务标识的连接信息,以使业务客户端在接收到连接信息后,将业务标识封装在业务报文的头部,得到业务标识的隧道头部信息。结合图2G,业务客户端可以在SOCKS5隧道头添加业务标识字段,用于携带业务标识,例如,在DST.PORT字段添加业务标识字段,得到业务标识的隧道头部信息。业务客户端也可以采用业务标识字段替换SOCKS5隧道头DST.PORT字段和DST.ADDR字段,得到业务标识的隧道头部信息。
本申请实施例中,业务客户端可以通过接入网络(Access Network)向代理服务器发送代理连接请求。
本申请公开了一种数据传输方法,该方法包括:获取业务客户端的第一互联网协议地址、业务客户端的第一端口号和业务客户端发送的用户信息;基于第一互联网协议地址、第一端口号和用户信息,生成业务标识;若接收到业务客户端发送的代理连接请求,响应代理连接请求,生成携带有业务标识的连接信息;其中,代理连接请求携带有业务服务器的第二互联网协议地址和第二端口号;连接信息中存储有映射关系,映射关系用于指示业务标识对应的第二互联网协议地址和第二端口号;向业务客户端反馈连接信息,以使业务客户端在接收到连接信息后,将业务标识封装在业务报文的头部,得到业务标识的隧道头部信息。需要说明的是,本申请代理服务器与业务客户端在协商握手阶段中的,代理服务器根据代理连接请求,反馈的代理连接结果中携带有业务标识,同时,代理服务器与业务客户端在业务代理阶段中的,业务客户端发送的业务报文中携带有业务标识。明显,采用业务标识,可以建立代理服务器与业务客户端在协商握手阶段和业务代理阶段的关联,代理服务器根据业务标识快速确定出业务报文所关联的会话,知晓业务报文属于哪个用户,从而能够正确判断出业务报文的发送者是否为已在协议握手阶段做过身份校验的合法用户,避免由于不合法用户发送的业务报文,所引起的风险。同时,本申请中的业务报文可以精确的匹配上用户,即使得业务与具体的用户信息关联,能增加业务代理的安全性,并且使得相关技术人员可以对业务行为进行精确地用户画像分析,针对用户信息进行流量控制,在游戏加速场景等加速场景下,可以对用户信息的业务流量进行精确地计费。
参见图5,图5是本申请实施例提供的数据传输方法的一个实现流程示意图,该数据传输方法可以应用于图3所示的业务客户端301;该数据传输方法包括如下步骤:
步骤501、若接收到代理服务器发送的用于表征用户信息校验通过的标识,发送代理连接请求至代理服务器。
本申请实施例中,若代理服务器反馈认证结果用于表征用户信息校验通过,业务客户端向代理服务器发送代理连接请求。
本申请实施例中,若代理服务器反馈认证结果用于表征用户信息校验不通过,业务中止。
步骤502、若接收到代理服务器发送的携带有业务标识的连接信息,将业务标识封装在业务报文的头部,得到业务标识的隧道头部信息。
其中,业务标识是代理服务器基于业务客户端的第一互联网协议地址、业务客户端的第一端口号和业务客户端发送的用户信息生成的。
本申请实施例中,代理服务器向业务客户端反馈携带有业务标识的连接信息后,业务客户端在接收到该连接信息后,将业务标识封装在业务报文的头部,得到业务标识的隧道头部信息。结合图2G,业务客户端可以在SOCKS5隧道头添加业务标识字段,用于携带业务标识,例如,在DST.PORT字段添加业务标识字段,得到业务标识的隧道头部信息。业务客户端也可以采用业务标识字段替换SOCKS5隧道头DST.PORT字段和DST.ADDR字段,得到业务标识的隧道头部信息。
步骤503、发送封装了隧道头部信息的业务报文至代理服务器。
本申请实施例中,代理服务器在获取到封装了隧道头部信息的业务报文后,解析隧道头部信息,得到业务标识,从而根据连接信息存储的用于指示业务标识对应的第二互联网协议地址和第二端口号映射关系,和业务标识,迅速定位到待处理业务报文的业务服务器的第二互联网协议地址和第二端口号。
本申请公开了一种数据传输方法,该方法包括:若接收到代理服务器发送的用于表征用户信息校验通过的标识,发送代理连接请求至代理服务器;若接收到代理服务器发送的携带有业务标识的连接信息,将业务标识封装在业务报文的头部,得到业务标识的隧道头部信息;其中,业务标识是代理服务器基于业务客户端的第一互联网协议地址、业务客户端的第一端口号和业务客户端发送的用户信息生成的;发送封装了隧道头部信息的业务报文至代理服务器。需要说明的是,本申请代理服务器与业务客户端在协商握手阶段中的,代理服务器根据代理连接请求,反馈的代理连接结果中携带有业务标识;同时,代理服务器与业务客户端在业务代理阶段中的,业务客户端发送的业务报文中携带有业务标识。明显,采用业务标识,可以建立代理服务器与业务客户端在协商握手阶段和业务代理阶段的关联,代理服务器根据业务标识快速确定出业务报文所关联的会话,知晓业务报文属于哪个用户,从而能够正确判断出业务报文的发送者是否为已在协议握手阶段做过身份校验的合法用户,避免由于不合法用户发送的业务报文,所引起的风险。同时,业务报文精确地匹配上用户,使得相关技术人员可以对业务行为进行精确地用户画像分析,针对用户进行流量控制,在游戏加速场景等加速场景下,可以对用户的业务流量进行精确地计费。
参见图6,图6是本申请实施例提供的数据传输方法的一个实现流程示意图,该数据传输方法可以应用于图3所示的网络架构;该方法包括如下步骤:
步骤601、代理服务器获取业务客户端的第一互联网协议地址和业务客户端的第一端口号。
本申请实施例中,业务客户端将自身支持的所有认证方式打包发送给代理服务器,即业务客户端向代理服务器发送认证方式的协商握手报文,代理服务器从业务客户端所支持的多个认证方式中,选择最优的一种认证方式,并将选择的结果应答给业务客户端。这里,代理服务器从业务客户端发送的认证方式的协商握手报文中,记录下收到的业务客户端的第一互联网协议地址与第一端口号。
本申请实施例中,若业务客户端与代理服务器间不存在网络地址转换(NetworkAddress Translation,NAT)的场景下,代理服务器从业务客户端发送的认证方式的协商握手报文中,记录下收到的业务客户端的第一互联网协议地址与第一端口号。若业务客户端与代理服务器间存在NAT的场景下,那么代理服务器从业务客户端发送的认证方式的协商握手报文中,记录下收到的业务客户端的第一互联网协议地址与第一端口号是经过NAT转换后的第一互联网协议地址与第一端口号。
步骤602、代理服务器获取业务客户端发送的用户信息。
本申请实施例中,业务客户端根据双方达成一致的认证方式,向代理服务器发送携带用户信息的认证请求,代理服务器对业务服务器发送的用户信息进行认证,并反馈认证结果给业务客户端。当代理服务器确定认证成功后,从携带用户信息的认证请求中记录下业务客户端发送的用户信息。
步骤603、代理服务器基于第一互联网协议地址、第一端口号和用户信息,生成业务标识。
本申请实施例中,步骤603基于第一互联网协议地址、第一端口号和用户信息,生成业务标识,可以通过以下步骤实现:
步骤6031、对用户信息进行处理,得到未被其他用户占用的第一子标识。
其中,所述第一子标识用于唯一表征所述用户信息。
本申请实施例中,代理服务器对用户信息进行随机加密处理,得到未被其他用户占用的第一子标识,这里,其他用户为不同于所述用户信息对应的用户。未被其他用户占用指的是其他用户的第一子标识均不同于所述用户信息对应的第一子标识。
本申请实施例中,步骤6031对用户信息进行处理,得到未被其他用户占用的第一子标识,可以通过以下步骤实现:
步骤A1、对用户信息进行哈希变换,得到用户信息对应的第一哈希值。
本申请实施例中,对用户信息进行哈希变换,进而以第一哈希值为基础,从而得到第一子标识,有助于代理服务器快速定位不同用户,使得代理服务器做会话匹配时做两层查询,先命中用户,再命中该用户名下具体的会话,时间复杂度由O(n)降为
步骤A2、提取第一哈希值的部分字节对应的第一数值作为用户标识。
本申请实施例中,提取第一哈希值的部分字节对应的第一数值作为用户标识。示例性的,代理服务器可以提取第一哈希值中前4个字节对应的第一数值作为用户标识;代理服务器也可以提取第一哈希值中最后5个字节对应的第一数值作为用户标识;代理服务器也可以提取第一哈希值中间任取4个字节对应的第一数值作为用户标识。
需要说明的是,所提取第一哈希值的部分字节长度与位置与每一字节重要性的权重占比有关,例如,第一哈希值是对用户信息1:A村庄、B公司、C部门的组长admin的进行哈希变化得到的,业务客户端、代理服务器和业务服务器所包含的用户信息均为A村庄、B公司、C部门所有成员的信息,明显,用户信息1中组长admin对应的字节权重占比更高,那么,针对用户信息1,提取的第一哈希值中部分字节对应的第一数值,为哈希变换组长admin对应的数值。
步骤A3、若用户标识未被其他用户占用,确定用户标识为第一子标识。
步骤A4、若用户标识被其他用户占用,从第一数值所属的数值范围中确定未被其他用户占用的第一子标识。
本申请实施例中,若用户标识被其他用户占用,确定部分字节的字节数;基于部分字节的字节数,确定参考范围;从参考范围中确定未被其他用户占用的第一子标识。例如,部分字节是4位字节,4位字节的参考范围为0x00000001至0xffffffff,从0x00000001开始顺序遍历,直至找到一个未被其他用户占用的第一子标识。
本申请实施例中,若用户标识被其他用户占用,确定第一数值所属的数值范围,基于数值范围从参考范围中确定未被其他用户占用的第一子标识。例如,第一数值为0x00000011,那么,数值范围可以为0x00000011至0xffffffff,或数值范围可以为0x00000001至0x00000010,代理服务器依次遍历上述数值范围,直至找到一个未被其他用户占用的第一子标识。
步骤6032、对第一互联网协议地址和第一端口号进行处理,得到未被用户信息关联的其他业务占用的第二子标识。
其中,第二子标识用于区分同一用户对应的不同业务。
本申请实施例中,同一用户信息下的不同业务对应的第二子标识不同。
本申请实施例中,代理服务器对第一互联网协议地址和第一端口号进行随机加密处理,得到未被用户信息关联的其他业务占用的第二子标识。未被用户信息关联的其他业务占用指的是用户信息关联的其他业务的第二子标识均不同于第一互联网协议地址和第一端口号对应的目标业务的第二子标识。
本申请实施例中,步骤6032对第一互联网协议地址和第一端口号进行处理,得到未被其他业务占用的第二子标识,可以通过以下步骤实现:
步骤B1、将第一互联网协议地址和第一端口号转换为二元组,得到会话标识。
示例性的,将第一互联网协议地址A1、第一端口号a1转换为二元组,得到会话标识(A1,a1)。
步骤B2、对会话标识进行哈希变换,得到会话标识对应的第二哈希值。
本申请实施例中,对话标识进行哈希变换,进而以第二哈希值为基础,从而得到第二子标识,有助于代理服务器定位同一用户不同的业务代理会话。代理服务器可以借助于业务客户端本地TCP SOCKET端口分配的唯一性,保障同一个用户每条会话第二子标识(SESSION-ID)的唯一性,大大减小代理服务器维护SESSION-ID的复杂度。
需要说明的是,在NAT环境的环境下,可以借助NAT地址结合端口映射的确保业务客户端本地TCP SOCKET端口分配的唯一性。
步骤B3、提取第二哈希值的部分字节对应的第二数值作为目标业务的会话标识。
本申请实施例中,提取第二哈希值的部分字节对应的第二数值作为目标业务的会话标识。示例性的,代理服务器可以提取第二哈希值中前4个字节对应的第二数值作为目标业务的会话标识;代理服务器也可以提取第二哈希值中最后5个字节对应的第二数值作为目标业务的会话标识;代理服务器也可以提取第二哈希值中间任取4个字节对应的第二数值作为目标业务的会话标识。
需要说明的是,所提取第二哈希值的部分字节长度与位置与每一字节重要性的权重占比有关。
步骤B4、若目标业务的会话标识未被其他业务占用,确定目标业务的会话标识为第二子标识。
步骤B5、若目标业务的会话标识被其他业务占用,从第二数值所属的数值范围中确定未被其他业务占用的第二子标识。
本申请实施例中,若目标业务的会话标识被其他业务占用,确定部分字节的字节数;基于部分字节的字节数,确定参考范围;从参考范围中确定未被其他业务占用的第二子标识。例如,部分字节是4位字节,4位字节的参考范围为0x00000001至0xffffffff,从0x00000001开始顺序遍历,直至找到一个未被其他业务占用的第二子标识。
本申请实施例中,若目标业务的会话标识被其他业务占用,确定第二数值所属的数值范围,基于数值范围从参考范围中确定未被其他业务占用的第二子标识。例如,第二数值为0x00000011,那么,数值范围可以为0x00000011至0xffffffff,或数值范围可以为0x00000001至0x00000010,代理服务器依次遍历上述数值范围,直至找到一个未被其他业务占用的第二子标识。
步骤6033、拼接第一子标识和第二子标识,得到业务标识。
本申请实施例中,代理服务器拼接第一子标识和第二子标识,得到未被其他业务占用的业务标识。也就是说,本申请采用唯一表征的用户信息的第一子标识结合用于区分同一用户对应的不同业务的第二子标识,组成唯一标识当前业务的业务标识。
示例性的,第一子标识为0x00000034,第二子标识为0x00000043,拼接得到的业务标识可以为(0x00000034,0x00000043),或拼接得到的业务标识也可以为0x00000034:0x00000043,或拼接得到的业务标识也可以为0x00000043-0x00000034。需要说明的是,本申请对第一子标识和第二子标识的拼接方式和拼接顺序不进行任何限定。
步骤604、代理服务器发送用于表征用户信息校验通过的标识至业务客户端。
步骤605、业务客户端接收到代理服务器发送的用于表征用户信息校验通过的标识。
步骤606、业务客户端发送代理连接请求至代理服务器。
步骤607、代理服务器接收到业务客户端发送的代理连接请求,响应代理连接请求,生成携带有业务标识的连接信息。
其中,代理连接请求携带有业务服务器的第二互联网协议地址和第二端口号;连接信息中存储有映射关系,映射关系用于指示业务标识对应的第二互联网协议地址和所述第二端口号。
步骤608、代理服务器发送携带有业务标识的连接信息至业务客户端。
本申请实施例中,代理服务器接收到业务客户端发送的代理连接请求,将业务标识封装在代理连接结果中,并将封装了业务标识的代理连接结果反馈给业务客户端。图7A是本申请中代理服务器向业务客户端反馈的代理连接结果的格式的示意图。如图7A所示,IP头在网络层封装的,记载的是代理连接结果的源地址B1和目的地址A1。TCP头在传输层封装的,记载的是代理连接结果的源端口b1和目的端口a1。针对代理连接结果的协商载荷,REP字段用于表征应答字段;RSV字段是保留字节,采用0x00表示,占1个字节;ATYP字段用于表征BND.ADDR的类型;BND.ADDR字段用于表征代理服务器绑定的地址;BND.PORT字段用于表征代理服务器绑定的端口;BND.ADDR字段与BND.PORT字段会明确指示出代理服务器提供给业务客户端做代理连接的UDP套接字(SOCKET)侦听地址与侦听端口。TOKEN字段用于表征业务标识。
示例性的,TOKEN字段由4字节的第一子标识(USER-ID)与4字节的第二子标识(SESSION-ID)拼接组成。需要说明的是,TOKEN字段为8字节仅是一种示例,当然TOKEN字段也可以为9字节,对此,本申请不进行任何限定。
步骤609、业务客户端接收到代理服务器发送的携带有业务标识的连接信息,将业务标识封装在业务报文的头部,得到业务标识的隧道头部信息。
本申请实施例中,隧道头部信息由业务标识、保留字节和用于指示业务报文数据量的字节组成。
本申请实施例中,业务客户端将业务标识封装在业务报文的头部,得到业务标识的隧道头部信息,并向代理服务器发送封装了隧道头部信息的业务报文,即业务客户端实际传输的业务报文。图7B是本申请中业务客户端向代理服务器所发送业务报文的格式的示意图。如图7B所示,SOCKS5隧道头中的FRAG字段用于指示业务报文数据量。结合图2G,本申请采用TOKEN字段替换DST.ADDR字段、DST.PORT字段、VER字段,需要说明的是,若DST.ADDR字段以IPv4表示,可摘除掉7个字节数据;若DST.ADDR字段以IPv6表示,可摘除掉19个字节数据;若DST.ADDR字段以域名表示,则摘取长度不定。以TOKEN字段为8字节表示,针对最典型的DST.ADDR字段为IPv6表示的场景计算,本申请相比相关技术中的SOCKS5隧道头节约了11个字节的开销。
步骤610、业务客户端发送封装了隧道头部信息的业务报文至代理服务器。
步骤611、代理服务器接收到业务客户端发送的封装了隧道头部信息的业务报文,解析隧道头部信息,得到业务标识。
步骤612、代理服务器基于业务标识和映射关系,确定第二互联网协议地址和第二端口号。
本申请实施例中,代理服务器基于业务标识,以及连接信息中携带的映射关系,确定代理服务器与业务客户端在协商捂手阶段中,业务客户端发送至代理服务器的代理连接请求携带的业务服务器的目的地址和目的端口号,即第二互联网协议地址和第二端口号。
步骤613、代理服务器发送业务报文至第二互联网协议地址和第二端口号至第二互联网协议地址和第二端口号对应的业务服务器。
本申请实施例中,代理服务器确认第二互联网协议地址和第二端口号对应的业务服务器,并将删减SOCKS5隧道头的业务报文发送至业务服务器。
步骤614、业务服务器接收业务报文,并对业务报文进行处理。
步骤615、业务服务器反馈处理后的业务报文至代理服务器。
步骤617、代理服务器接收到业务服务器发送的处理后的业务报文,将业务标识封装在处理后的业务报文的头部,得到隧道头部信息。
本申请实施例中,代理服务器接收到业务服务器反馈的处理后的业务报文,将封装了业务标识的处理后的业务报文反馈给业务客户端。图7C是本申请中代理服务器向业务客户端反馈的封装了业务标识的处理后的业务报文的格式的示意图。如图7C所示,SOCKS5隧道头中的TOKEN字段用于指示业务标识。结合图2G,本申请采用TOKEN字段替换DST.ADDR字段、DST.PORT字段、VER字段,需要说明的是,若DST.ADDR字段以IPv4表示,可摘除掉7个字节数据;若DST.ADDR字段以IPv6表示,可摘除掉19个字节数据;若DST.ADDR字段以域名表示,则摘取长度不定。以TOKEN字段为8字节表示,针对最典型的DST.ADDR字段为IPv6表示的场景计算,本申请相比相关技术中的SOCKS5隧道头节约了11个字节的开销。
步骤618、代理服务器发送封装了隧道头部信息的处理后的业务报文至业务客户端。
步骤619、业务客户端接收代理服务器发送的,封装了隧道头部信息的处理后的业务报文。
本申请实施例中,本申请采用业务标识关联业务会话和用户信息,同时,基于业务标识,代理服务器无需为不同的业务代理会话分配不同的代理侦听IP与端口,每个代理服务器只侦听一对IP地址和端口即可达到通信需求,不仅大大减轻了代理服务器的SOCKRT管理压力,还不会有侦听端口数量的限制,提高整个又业务客户端、代理服务器和业务服务器组成的系统的并发和吞吐能力。
需要说明的是,本实施例中与其它实施例中相同步骤和相同内容的说明,可以参照其它实施例中的描述,此处不再赘述。
本申请的实施例提供一种代理服务器,该代理服务器可以应用于图4、图6对应的实施例提供的一种数据传输方法中,参照图8所示,该代理服务器302(图8中的代理服务器302与图3中的代理服务器302对应)包括:
第一获取单元802,用于获取业务客户端的第一互联网协议地址、业务客户端的第一端口号和业务客户端发送的用户信息;
第一处理单元801,用于基于第一互联网协议地址、第一端口号和用户信息,生成业务标识;
第一处理单元801,还用于若接收到业务客户端发送的代理连接请求,响应代理连接请求,生成携带有所述业务标识的连接信息;其中,所述代理连接请求携带有业务服务器的第二互联网协议地址和第二端口号;所述连接信息中存储有映射关系,所述映射关系用于指示所述业务标识对应的所述第二互联网协议地址和所述第二端口号。
第一处理单元801,还用于向业务客户端反馈连接信息,以使业务客户端在接收到连接信息后,将业务标识封装在业务报文的头部,得到业务标识的隧道头部信息。
本申请的其他实施例中,第一处理单元801,用于若接收到业务客户端发送的封装了隧道头部信息的业务报文,解析隧道头部信息,得到业务标识;
第一处理单元801,还用于基于业务标识和映射关系,确定第二互联网协议地址和第二端口号;
第一发送单元803,用于发送业务报文至第二互联网协议地址和第二端口号对应的业务服务器,以使业务服务器对业务报文进行处理,并将处理后的业务报文反馈至代理服务器;
第一处理单元801,还用于若接收到业务服务器发送的处理后的业务报文,将业务标识封装在处理后的业务报文的头部,得到隧道头部信息;
第一发送单元803,还用于发送封装了隧道头部信息的处理后的业务报文至业务客户端。
本申请的其他实施例中,第一处理单元801,用于对用户信息进行处理,得到未被其他用户占用的第一子标识;对第一互联网协议地址和第一端口号进行处理,得到未被用户信息关联的其他业务占用的第二子标识;拼接第一子标识和第二子标识,得到业务标识。
本申请的其他实施例中,隧道头部信息由业务标识、保留字节和用于指示业务报文数据量的字节组成。
本申请的其他实施例中,第一处理单元801,用于对用户信息进行哈希变换,得到用户信息对应的第一哈希值;提取第一哈希值的部分字节对应的第一数值作为用户标识;若用户标识未被其他用户占用,确定用户标识为第一子标识;若用户标识被其他用户占用,从第一数值所属的数值范围中确定未被其他用户占用的第一子标识。
本申请的其他实施例中,第一处理单元801,用于将第一互联网协议地址和第一端口号转换为二元组,得到会话标识;对会话标识进行哈希变换,得到会话标识对应的第二哈希值;提取第二哈希值的部分字节对应的第二数值作为目标业务的会话标识;若目标业务的会话标识未被其他业务占用,确定目标业务的会话标识为第二子标识;若目标业务的会话标识被其他业务占用,从第二数值所属的数值范围中确定未被其他业务占用的第二子标识。
需要说明的是,本实施例中第一处理单元801、第一获取单元802和第一发送单元803所执行的步骤的具体实现过程,可以参照图4、图6对应的实施例提供的数据传输方法中的实现过程,此处不再赘述。
本申请的实施例提供一种业务客户端,该业务客户端可以应用于图5、图6对应的实施例提供的一种数据传输方法中,参照图9所示,该业务客户端301(图9中的业务客户端301与图3中的业务客户端301对应)包括:
第二发送单元902,用于若接收到代理服务器发送的用于表征用户信息校验通过的标识,发送代理连接请求至代理服务器;
第二处理单元901,用于若接收到携带有业务标识的连接信息,将业务标识封装在业务报文的头部,得到业务标识的隧道头部信息;其中,业务标识基于业务客户端的第一互联网协议地址、业务客户端的第一端口号和业务客户端发送的用户信息生成的;
第二发送单元902,还用于发送封装了隧道头部信息的业务报文至代理服务器。
本申请的其他实施例中,第二接收单元903,用于接收代理服务器发送的,封装了隧道头部信息的处理后的业务报文。
需要说明的是,本实施例中第二处理单元901、第二发送单元902和第二接收单元903所执行的步骤的具体实现过程,可以参照图5、图6对应的实施例提供的数据传输方法中的实现过程,此处不再赘述。
本申请实施例提供一种计算机可读存储介质,该计算机可读存储介质存储有一个或者多个程序,该一个或者多个程序可被一个或者多个处理器执行,以实现如图4至图6对应的实施例提供的数据传输方法中的实现过程,此处不再赘述。
需要说明的是,上述计算机可读存储介质可以是只读存储器(Read Only Memory,ROM)、可编程只读存储器(Programmable Read-Only Memory,PROM)、可擦除可编程只读存储器(Erasable Programmable Read-Only Memory,EPROM)、电可擦除可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)、磁性随机存取存储器(Ferromagnetic Random Access Memory,FRAM)、快闪存储器(Flash Memory)、磁表面存储器、光盘、或只读光盘(Compact Disc Read-Only Memory,CD-ROM)等存储器;也可以是包括上述存储器之一或任意组合的各种电子设备,如移动电话、计算机、平板设备、个人数字助理等。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本申请各个实施例所描述的方法。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机应用产品的流程图和/或方框图来描述的。应理解可由计算机应用指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机应用指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机应用指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机应用指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。
Claims (10)
1.一种数据传输方法,其特征在于,所述方法包括:
获取业务客户端的第一互联网协议地址、所述业务客户端的第一端口号和所述业务客户端发送的用户信息;
基于所述第一互联网协议地址、所述第一端口号和所述用户信息,生成业务标识;
若接收到所述业务客户端发送的代理连接请求,响应所述代理连接请求,生成携带有所述业务标识的连接信息;其中,所述代理连接请求携带有业务服务器的第二互联网协议地址和第二端口号;所述连接信息中存储有映射关系,所述映射关系用于指示所述业务标识对应的所述第二互联网协议地址和所述第二端口号;
向所述业务客户端反馈所述连接信息,以使所述业务客户端在接收到所述连接信息后,将所述业务标识封装在业务报文的头部,得到所述业务标识的隧道头部信息。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若接收到所述业务客户端发送的封装了所述隧道头部信息的业务报文,解析所述隧道头部信息,得到所述业务标识;
基于所述业务标识和所述映射关系,确定所述第二互联网协议地址和所述第二端口号;
发送所述业务报文至所述第二互联网协议地址和第二端口号对应的业务服务器,以使所述业务服务器对所述业务报文进行处理,并将处理后的业务报文反馈至代理服务器;
若接收到所述业务服务器发送的处理后的业务报文,将所述业务标识封装在所述处理后的业务报文的头部,得到所述隧道头部信息;
发送封装了所述隧道头部信息的处理后的业务报文至所述业务客户端。
3.根据权利要求1所述的方法,其特征在于,所述基于所述第一互联网协议地址、所述第一端口号和所述用户信息,生成业务标识,包括:
对所述用户信息进行处理,得到未被其他用户占用的第一子标识;
对所述第一互联网协议地址和所述第一端口号进行处理,得到未被所述用户信息关联的其他业务占用的第二子标识;
拼接所述第一子标识和所述第二子标识,得到所述业务标识。
4.根据权利要求1所述的方法,其特征在于,所述隧道头部信息由所述业务标识、保留字节和用于指示所述业务报文数据量的字节组成。
5.根据权利要求3所述的方法,其特征在于,所述对所述用户信息进行处理,得到未被其他用户占用的第一子标识,包括:
对所述用户信息进行哈希变换,得到所述用户信息对应的第一哈希值;
提取所述第一哈希值的部分字节对应的第一数值作为用户标识;
若所述用户标识未被所述其他用户占用,确定所述用户标识为所述第一子标识;
若所述用户标识被所述其他用户占用,从所述第一数值所属的数值范围中确定未被所述其他用户占用的所述第一子标识。
6.根据权利要求3所述的方法,其特征在于,所述对所述第一互联网协议地址和所述第一端口号进行处理,得到未被其他业务占用的第二子标识,包括:
将所述第一互联网协议地址和所述第一端口号转换为二元组,得到会话标识;
对所述会话标识进行哈希变换,得到所述会话标识对应的第二哈希值;
提取所述第二哈希值的部分字节对应的第二数值作为目标业务的会话标识;
若所述目标业务的会话标识未被所述其他业务占用,确定所述目标业务的会话标识为所述第二子标识;
若所述目标业务的会话标识被所述其他业务占用,从所述第二数值所属的数值范围中确定未被所述其他业务占用的所述第二子标识。
7.一种数据传输方法,其特征在于,所述方法包括:
若接收到代理服务器发送的用于表征用户信息校验通过的标识,发送代理连接请求至所述代理服务器;
若接收到所述代理服务器发送的携带有业务标识的连接信息,将所述业务标识封装在业务报文的头部,得到所述业务标识的隧道头部信息;其中,所述业务标识是所述代理服务器基于业务客户端的第一互联网协议地址、所述业务客户端的第一端口号和所述业务客户端发送的用户信息生成的;
发送封装了所述隧道头部信息的业务报文至代理服务器。
8.根据权利要求7所述的方法,其特征在于,所述方法还包括:
接收所述代理服务器发送的,封装了所述隧道头部信息的处理后的业务报文。
9.一种代理服务器,其特征在于,所述代理服务器包括:
第一获取单元,用于获取业务客户端的第一互联网协议地址、所述业务客户端的第一端口号和所述业务客户端发送的用户信息;
第一处理单元,用于基于所述第一互联网协议地址、所述第一端口号和所述用户信息,生成业务标识;
所述第一处理单元,还用于若接收到所述业务客户端发送的代理连接请求,响应所述代理连接请求,生成携带有所述业务标识的连接信息;其中,所述代理连接请求携带有业务服务器的第二互联网协议地址和第二端口号;所述连接信息中存储有映射关系,所述映射关系用于指示所述业务标识对应的所述第二互联网协议地址和所述第二端口号;
所述第一处理单元,还用于向所述业务客户端反馈所述连接信息,以使所述业务客户端在接收到所述连接信息后,将所述业务标识封装在业务报文的头部,得到所述业务标识的隧道头部信息。
10.一种业务客户端,其特征在于,所述业务客户端包括:
第二发送单元,用于若接收到代理服务器发送的用于表征用户信息校验通过的标识,发送代理连接请求至所述代理服务器;
第二处理单元,用于若接收到携带有业务标识的连接信息,将所述业务标识封装在业务报文的头部,得到所述业务标识的隧道头部信息;其中,所述业务标识基于业务客户端的第一互联网协议地址、所述业务客户端的第一端口号和所述业务客户端发送的用户信息生成的;
所述第二发送单元,还用于发送封装了所述隧道头部信息的业务报文至代理服务器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111254750.8A CN116032507A (zh) | 2021-10-27 | 2021-10-27 | 一种数据传输方法、代理服务器和业务客户端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111254750.8A CN116032507A (zh) | 2021-10-27 | 2021-10-27 | 一种数据传输方法、代理服务器和业务客户端 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116032507A true CN116032507A (zh) | 2023-04-28 |
Family
ID=86080103
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111254750.8A Pending CN116032507A (zh) | 2021-10-27 | 2021-10-27 | 一种数据传输方法、代理服务器和业务客户端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116032507A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116647538A (zh) * | 2023-06-06 | 2023-08-25 | 深圳市捷讯云联科技有限公司 | 一种能够访问不同内网服务的连接装置 |
-
2021
- 2021-10-27 CN CN202111254750.8A patent/CN116032507A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116647538A (zh) * | 2023-06-06 | 2023-08-25 | 深圳市捷讯云联科技有限公司 | 一种能够访问不同内网服务的连接装置 |
CN116647538B (zh) * | 2023-06-06 | 2024-05-28 | 深圳市捷讯云联科技有限公司 | 一种能够访问不同内网服务的连接装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11438267B2 (en) | Method and system for service switching using service tags | |
US8996657B2 (en) | Systems and methods for multiplexing network channels | |
US20190007316A1 (en) | Controller for software defined network | |
US9246819B1 (en) | System and method for performing message-based load balancing | |
US20170230467A1 (en) | Adding cloud service provider, could service, and cloud tenant awareness to network service chains | |
US20140226664A1 (en) | Method, apparatus, and system for implementing private network traversal | |
US20120166593A1 (en) | Data transmission system and method using relay server | |
JP2020005256A (ja) | Vxlan実装方法、ネットワークデバイス、および通信システム | |
CN107547213B (zh) | 一种业务规则的识别方法及装置 | |
CN110417632B (zh) | 一种网络通信方法、系统及服务器 | |
CN111343083B (zh) | 即时通信方法、装置、电子设备及可读存储介质 | |
WO2023116165A1 (zh) | 网络负载均衡方法、装置、电子设备、介质和程序产品 | |
CN113037761A (zh) | 登录请求的验证方法及装置、存储介质、电子设备 | |
CN113364660A (zh) | Lvs负载均衡中的数据包处理方法及装置 | |
CN116032507A (zh) | 一种数据传输方法、代理服务器和业务客户端 | |
CN107733765B (zh) | 映射方法、系统和相关设备 | |
CN104065688B (zh) | 一种调用底层服务的方法及装置 | |
CN109246016B (zh) | 跨vxlan的报文处理方法和装置 | |
CN111464879A (zh) | 一种数据通信的方法及装置 | |
CN113114643B (zh) | 一种运维审计系统的运维接入方法及系统 | |
CN115225292B (zh) | 一种内网访问方法、装置、设备及计算机可读存储介质 | |
CN108064441B (zh) | 一种加速网络传输优化方法以及系统 | |
CN114205185B (zh) | 一种控制报文的代理方法及装置 | |
CN113595848B (zh) | 一种通信隧道建立方法、装置、设备及存储介质 | |
CN110809033B (zh) | 报文转发方法、装置及交换服务器 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |