发明内容
有鉴于此,本公开实施例的目的在于提供一种数据传输方法、装置、设备及存储介质。
第一方面,本公开提供一种数据传输方法,应用于第一网络设备中,包括:
接收用户终端发送的用于请求服务的第一数据包;
确定与所述第一数据包中请求的服务相匹配的应用服务器的目标地址信息;
利用隧道封装参数对所述第一数据包进行封装,得到封装后的第一数据包;其中,所述隧道封装参数包括所述第一网络设备的处理性能参数和所述目标地址信息;
向第二网络设备发送所述封装后的第一数据包;所述第二网络设备用于从所述封装后的第一数据包中解析所述隧道封装参数和所述第一数据包。
一种可能的实施方式中,所述第一网络设备配置有多个第一地址信息;所述第一数据包的目的地址信息为所述多个第一地址信息中的任意一个;
所述在利用隧道封装参数对所述第一数据包进行封装,,得到封装后的第一数据包之前,还包括:
确定所述第一数据包为根据抽样条件选择出的数据包;所述抽样条件表示从所述用户终端发送的N个第一地址信息数据包中选择M个第一地址信息;
利用隧道封装参数对目的地址信息为选择的M个第一地址信息中任一第一地址信息的数据包进行封装数据包;N大于或等于M,N和M为正整数。
一种可能的实施方式中,所述处理性能参数包括所述第一网络设备处理所述第一数据包的时延参数;
根据以下方式得到所述时延参数:
确定接收到来自所述用户终端的所述第一数据包的第一时间戳;
确定向所述第二网络设备发送所述封装后的第一数据包的第二时间戳;
根据所述第一时间戳和所述第二时间戳,确定所述时延参数。
一种可能的实施方式中,所述确定与所述第一数据包中请求的服务相匹配的应用服务器的目标地址信息,包括:
确定与所述第一地址信息匹配的映射地址列表,所述映射地址列表中包括至少一个应用服务器的地址信息;
从所述映射地址列表中选择相匹配的应用服务器的目标地址信息。
一种可能的实施方式中,所述第一网络设备还配置有用于与所述第二网络设备建立连接的第二地址信息;
所述封装后的第一数据包的源地址信息为所述第二地址信息。
第二方面,本公开提供一种数据传输方法,应用于第二网络设备中,包括:
接收第一网络设备发送的封装后的第一数据包;
从所述封装后的第一数据包中解析出隧道封装参数和第一数据包;其中,所述隧道封装参数包括所述第一网络设备的处理性能参数、与所述第一数据包请求的服务相匹配的应用服务器的目标地址信息;
基于所述处理性能参数对所述第一网络设备进行监控;
将所述第一数据包的目的地址信息更新为所述目标地址信息、源地址信息更新为所述第二网络设备的地址信息,并发送给所述应用服务器。
一种可能的实施方式中,所述方法还包括:
获取所述第一数据包的五元组信息;所述五元组信息中源地址信息为用户终端的地址信息;
接收所述应用服务器发送的用于响应服务的第二数据包;
基于所述第一数据包的五元组信息,将所述第二数据包转发给所述用户终端。
一种可能的实施方式中,所述处理性能参数包括所述第一网络设备处理所述第一数据包的时延参数。
第三方面,本公开实施例提供了一种数据传输方法,应用于应用服务器中,包括:
接收第二网络设备发送的源地址信息为所述第二网络设备的地址信息的第一数据包;
基于所述第二网络设备的地址信息,向所述第二网络设备发送用于响应所述第一数据包请求的服务的第二数据包。
第四方面,本公开提供一种数据传输装置,部署于第一网络设备中,包括:
第一接收模块,用于接收用户终端发送的用于请求服务的第一数据包,并将所述第一数据包传输给第一确定模块和封装模块;
第一确定模块,用于确定与所述第一接收模块传输的第一数据包中请求的服务相匹配的应用服务器的目标地址信息,并将所述目标地址信息传输给封装模块;
封装模块,用于利用隧道封装参数对所述第一接收模块传输的第一数据包进行封装,得到封装后的第一数据包,并将所述封装后的第一数据包发送给第一发送模块;其中,所述隧道封装参数包括所述第一网络设备的处理性能参数和所述第一确定模块传输的目标地址信息;
第一发送模块,用于向第二网络设备发送所述封装模块传输的封装后的第一数据包;所述第二网络设备用于从所述封装后的第一数据包中解析所述隧道封装参数和所述第一数据包。
一种可能的实施方式中,所述第一网络设备配置有多个第一地址信息;所述第一数据包的目的地址信息为所述多个第一地址信息中的任意一个;
所述封装模块,在利用隧道封装参数对所述第一接收模块传输的第一数据包进行封装时,具体用于:
确定所述第一数据包为根据抽样条件选择出的数据包;所述抽样条件表示从所述用户终端发送的N个第一地址信息数据包中选择M个第一地址信息;
利用隧道封装参数对目的地址信息为选择的M个第一地址信息中任一第一地址信息的数据包进行封装数据包;N大于或等于M,N和M为正整数。
一种可能的实施方式中,所述处理性能参数包括所述第一网络设备处理所述第一数据包的时延参数;
所述封装模块,还用于根据以下方式得到所述时延参数:
确定接收到来自所述用户终端的所述第一数据包的第一时间戳;
确定向所述第二网络设备发送所述封装后的第一数据包的第二时间戳;
根据所述第一时间戳和所述第二时间戳,确定所述时延参数。
一种可能的实施方式中,所述第一确定模块,在确定与所述第一接收模块传输的第一数据包中请求的服务相匹配的应用服务器的目标地址信息时,具体用于:
确定与所述第一地址信息匹配的映射地址列表,所述映射地址列表中包括至少一个应用服务器的地址信息;
从所述映射地址列表中选择相匹配的应用服务器的目标地址信息。
一种可能的实施方式中,所述第一网络设备还配置有用于与所述第二网络设备建立连接的第二地址信息;
所述封装后的第一数据包的源地址信息为所述第二地址信息。
第五方面,本公开提供一种数据传输装置,部署于第二网络设备中,包括:
第二接收模块,用于接收第一网络设备发送的封装后的第一数据包,并将所述封装后的第一数据包传输至解封装模块;
解封装模块,用于从所述第二接收模块传输的封装后的第一数据包中解析出隧道封装参数和第一数据包,并将所述隧道封装参数传输至监控模块,将解析出的所述第一数据包传输至第二发送模块;其中,所述隧道封装参数包括所述第一网络设备的处理性能参数、与所述第一数据包请求的服务相匹配的应用服务器的目标地址信息;
监控模块,用于基于所述解封装模块传输的处理性能参数对所述第一网络设备进行监控;
第二发送模块,用于将所述解封装模块传输的第一数据包的目的地址信息更新为所述目标地址信息、源地址信息更新为所述第二网络设备的地址信息,并发送给所述应用服务器。
一种可能的实施方式中,所述装置还包括:
获取模块,用于获取所述第一数据包的五元组信息,并将所述第一数据包的五元组信息传输至第二发送模块;所述五元组信息中源地址信息为用户终端的地址信息;
所述第二接收模块,还用于接收所述应用服务器发送的用于响应服务的第二数据包,并将所述第二数据包传输至所述第二发送模块;
所述第二发送模块,还用于基于所述获取模块传输的所述第一数据包的五元组信息,将所述第二接收模块传输的所述第二数据包转发给所述用户终端。
一种可能的实施方式中,所述处理性能参数包括所述第一网络设备处理所述第一数据包的时延参数。
第六方面,本公开提供一种数据传输装置,部署于应用服务器中,包括:
第三接收模块,用于接收第二网络设备发送的源地址信息为所述第二网络设备的地址信息的第一数据包;
第三发送模块,用于基于所述第二网络设备的地址信息,向所述第二网络设备发送用于响应所述第一数据包请求的服务的第二数据包。
第七方面,本公开提供一种电子设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行如上述第一方面或任一实施方式所述的数据传输方法的步骤,或者,执行如上述第二方面或任一实施方式所述的数据传输方法的步骤,或者,执行如上述第三方面所述的数据传输方法的步骤。
第八方面,本公开提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如上述第一方面或任一实施方式所述的数据传输方法的步骤,或者,执行如上述第二方面或任一实施方式所述的数据传输方法的步骤,或者,执行如上述第三方面所述的数据传输方法的步骤。
本公开提供的数据传输方法,第一网络设备在接收到用户终端发送的第一数据包时,可以利用包括第一网络设备的处理性能参数、以及与用户终端请求的服务相匹配的应用服务器的目标地址信息的隧道封装参数,对第一数据包进行封装,然后将封装后的第一数据包发送给第二网络设备,第二网络设备可以对封装的第一数据包进行解析,得到处理性能参数,并基于处理性能参数对第一网络设备进行监控,基于目标地址信息,将第一数据包进行地址信息更新后发送到应用服务器。上述方法中,将处理性能参数与第一数据包一起进行封装,然后传输给第二网络设备,节省了数据传输资源,且第二网络设备可以根据解析得到的处理性能参数实现对第一网络设备的处理性能的监控;另一方面,当需要拦截查看数据包内容时,本公开中可以将数据包封装发送给第二网络设备,由第二网络设备对数据包进行解析,无需第一网络设备对数据包的内容进行解析,降低了第一网络设备的服务压力。
为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本公开实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本公开的实施例的详细描述并非旨在限制要求保护的本公开的范围,而是仅仅表示本公开的选定实施例。基于本公开的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
相关技术中,可以通过负载均衡网元直接探测并上报自身处理性能相关的参数的方法,来实现对于负载均衡网元处理性能的检测,但是这就导致负载均衡网元除了需要对用户终端发送数据包进行分发之外,还需要额外分配部分传输资源来传输负载均衡网元处理性能的相关参数,从而导致负载均衡网元的传输资源的浪费,也增加了负载均衡网元的处理压力,可能影响正常数据包的传输质量。
一般来说,能够反映处理性能的参数包括但不限于处理数据包的时延参数等,本公开所提供的数据传输方法、装置、设备及存储介质,通过隧道封装参数对用户终端发送的第一数据包进行封装,隧道封装参数中携带了第一网络设备(例如为上述负载均衡网元)的处理性能参数,因此在传输第一数据包时,可以直接将第一数据包和处理性能参数一起进行传输,无需浪费额外的传输资源。
另外,当需要拦截查看数据包的内容时,相关技术中一般是通过负载均衡网络直接进行抓包操作,实现对数据包的抓取和分析,这样也会占用负载均衡网元的部分处理资源。本公开中将第一数据包进行封装发送给第二网络设备,从而由第二网络设备来执行数据包的抓取和分析步骤,降低了第一网络设备的服务压力。
为便于对本实施例进行理解,首先对本公开实施例所公开的一种数据传输方法进行详细介绍。
参见图1所示,为本公开实施例所提供的一种数据传输方法的流程示意图,应用于第一网络设备中,第一网络设备可以为数据传输网络中负责分发数据包的设备,例如,第一网络设备可以为负载均衡网元。
图1所示的数据传输方法包括以下几个步骤:
步骤101、接收用户终端发送的用于请求服务的第一数据包。
实际应用中,用户终端发送的用于请求服务的第一数据包可以是用户通过用户终端上的客户端请求服务时所发送的第一数据包,用户终端在接收到用户输入的服务请求指令后,基于服务请求指令生成第一数据包,并将第一数据包发送到对应的第一网络设备中。
第一数据包中可以携带有用户终端的地址信息以及第一网络设备的第一地址信息,第一数据包的源地址信息为用户终端的地址信息,目的地址信息为第一网络设备的第一地址信息,用户终端根据第一数据包中携带的第一网络设备的第一地址信息,将第一数据包发送到对应的第一网络设备。
步骤102、确定与所述第一数据包中请求的服务相匹配的应用服务器的目标地址信息。
一种可能的实施方式中,第一网络设备在确定与第一数据包中请求的服务相匹配的应用服务器的目标地址信息时,可以先确定与第一地址信息匹配的映射地址列表,映射地址列表中包括至少一个应用服务器的地址信息,然后从映射地址列表中选择相匹配的应用服务器的目标地址信息。
其中,映射地址列表也可以是预先存储在第一网络设备中的。第一网络设备可以有多个第一地址信息,第一地址信息可以是第一网络设备的虚拟IP地址信息,每一个虚拟IP地址信息都会对应多个应用服务器的地址信息,同一映射地址列表中的应用服务器至少具备提供相同服务的能力。第一网络设备在接收到第一数据包之后,可以根据第一数据包中的第一地址信息,在该第一地址信息对应的映射地址列表中查找对应的应用服务器的目标地址信息。
示例性的,因为映射地址列表中包括至少一个应用服务器的地址信息,所以在选择应用服务器的目标地址信息时可以采用平均分配的方法,以避免单个应用服务器过度使用以及部分应用服务器闲置的问题。
示例性地,若映射地址列表如下表1所示,第一地址信息10.0.0.A对应的应用服务器的地址信息为10.0.0.B、10.0.0.C、10.0.0.D,其中,A、B、C、D均为正整数。若接收到的三个目的地址信息为10.0.0.A的第一数据包时,则将三个第一数据包分别发送至地址信息为10.0.0.B、10.0.0.C、10.0.0.D的应用服务器,若接收到一个目的地址信息为10.0.0.A的第一数据包时,则从地址信息为10.0.0.B、10.0.0.C、10.0.0.D中随机选择一个应用服务器,将第一数据包发送至该应用服务器,当再次接收到一个目的地址信息为10.0.0.A的第一数据包时,则从未被选择的两个应用服务器中随机选择一个,并发送到随机选择的应用服务器,以此类推,从而实现数据包的平均分配。
表1
步骤103、利用隧道封装参数对所述第一数据包进行封装,得到封装后的第一数据包;其中,所述隧道封装参数包括所述第一网络设备的处理性能参数和所述目标地址信息。
第一网络设备在利用隧道封装参数对第一数据包进行封装时,一种可能的实施方式中,可以利用第一网络设备对接收到的所有第一数据包进行封装,在另外一种可能的实施方式中,为了降低第二网络设备的服务压力,第一网络设备可以仅仅对部分第一数据包进行封装。
具体的,第一网络设备配置有多个第一地址信息,每一个第一地址信息对应一种服务;对于第一网络设备的第一地址信息A,可能有多个第一数据包的目的地址信息为第一地址信息A。示例性的,第一网络设备在对部分第一数据包进行封装时,可以从N个第一地址信息中选择M个第一地址信息,然后利用隧道封装参数对目的地址信息为选择的M个第一地址信息中任一个第一地址信息的数据包进行封装;N大于或等于M,N和M为正整数。
其中,在从N个第一地址信息中选择M个第一地址信息时,可以是随机选取。在一种可能的应用场景中,也可以根据每一个第一地址信息对应的服务的标识信息进行选取。
示例性的,可以若要对服务P的数据包的内容进行抓取和分析,则可以先确定服务P对应的第一地址信息,然后将所有目的地址信息为该第一地址信息的第一数据包进行封装。
一种可能的实施方式中,处理性能参数包括第一网络设备处理第一数据包的时延参数。在确定时延参数时,可以参照如图2所示的时延参数确定方法,包括以下几个步骤:
步骤201、确定接收到来自用户终端的第一数据包的第一时间戳。
步骤201、确定向第二网络设备发送封装后的第一数据包的第二时间戳。
步骤203、根据第一时间戳和第二时间戳,确定时延参数。
具体的,可以计算第一时间戳与第二时间戳之间的时间差,并将计算出的时间差确定为时延参数。
需要说明的是,该时延参数表示第一网络设备在接收到第一数据包到将该第一数据包发送出去之间的时延,时延越短,表示第一网络设备的处理性能越高。
在一种可能的实施方式中,第一网络设备还可以配置有用于第二网络设备建立连接的第二地址信息,在将第一数据包进行封装后,封装后的第一数据包源地址信息为第一网络设备的第二地址信息,目的地址信息为第二网络设备的地址信息。
一种可能的应用场景中,可以通过网络虚拟化封装(Generic NetworkVirtualization Encapsulation,GENEVE)的方式对第一数据包进行封装。
具体的,可以分别将处理性能参数和目标地址信息封装到不同的隧道选项TunnelOption中,然后再将Tunnel Option封装到GENEVE数据包的包头中,将第一数据包封装进GENEVE数据包中,将第一网络设备的第二地址信息作为GENEVE数据包的源地址信息,将第二网络设备的地址信息作为GENEVE数据包的目的地址信息,从而实现对第一数据包的封装,即GENEVE数据包为封装后的第一数据包。
其中,在将处理性能参数和目标地址信息封装到不同的隧道选项Tunnel Option中时,Tunnel Option的数据格式可以如图3所示,可选类型为团队标识,用户可以通过申请来获取唯一的团队标识,如1标识A公司,2标识B公司;类型标识数据格式;保留位为选项控制标记位,使用时可全部置零;长度标识数据的长度;可变数据选项用于存储数据,在本公开中可以用来存储处理性能参数或目标地址信息。
步骤104、向第二网络设备发送所述封装后的第一数据包;所述第二网络设备用于从所述封装后的第一数据包中解析所述隧道封装参数和所述第一数据包。
本公开实施例还提供了一种数据传输方法,应用于第二网络设备中,其中,第二网络设备可以是对数据包进行分析处理的设备,例如可以为服务器,参见图4所示,为本申请实施例所提供的一种数据传输方法的流程示意图,包括以下几个步骤:
步骤401、接收第一网络设备发送的封装后的第一数据包。
步骤402、从封装后的第一数据包中解析出隧道封装参数和第一数据包;其中,隧道封装参数包括第一网络设备的处理性能参数、与第一数据包请求的服务相匹配的应用服务器的目标地址信息。
需要说明的是,第二网络设备从第一数据包中解析出的第一数据包和用户终端发送给第一网络设备的数据包完全相同。
一种可能的实施方式中,在解析分装后的第一数据包之后,还可以获取第一数据包的五元组信息,其中,五元组信息包括源地址信息、源端口号、目的地址信息、目的端口号、以及传输层协议,在本公开中,五元组信息中的源地址信息为用户终端的地址信息,目的地址信息为第一网络设备的地址信息。
步骤403、基于处理性能参数对第一网络设备进行监控。
本申请一示例中,处理性能参数包括第一网络设备处理第一数据包的时延参数,当时延参数超过预设时延值时,可以向预先绑定的设备发送警示信息,该警示信息中包含有该第一数据包中携带的处理性能参数、源地址信息、以及目的地址信息。
步骤404、将第一数据包的目的地址信息更新为目标地址信息、源地址信息更新为第二网络设备的地址信息,并发送给应用服务器。
其中,步骤403和步骤404的执行不分先后顺序。
应用服务器在接收到第一数据包之后,可以对第一数据包进行响应,生成第二数据包,并将第二数据包发送至第二网络设备。
第二网络设备在将第一数据包的目的地址信息更新为目标地址信息、源地址信息更新为第二网络设备的地址信息之后,可以将该更新信息存储在第二网络设备中。
在一种可能的实施方式中,第二数据包的源地址信息为应用服务器的地址信息,目的地址信息为第二网络设备的地址信息,第二网络设备在接收到第二数据包之后,可以根据第二数据包中的源地址信息和目的地址信息,查找对应的用户终端信息。
示例性的,第二网络设备中存储的信息可以如下表2所示:
表2
第二网络设备在接收到第二数据包之后,根据上表2,查找更新后的源地址信息为第二数据包的目的地址信息、更新后的目的地址信息为第二数据包的源地址信息所对应的表项,然后在表项中查找源地址信息,和目的地址信息,将第二数据包中的源地址信息更新为查找到的目的地址信息,即更新为第一网络设备的第一地址信息,将第二数据包中的目的地址信息更新为查找到的源地址信息,即更新为用户终端的地址信息。
对于用户终端而言,用户终端发送的第一数据包中,源地址信息为用户终端的地址信息,目的地址信息为第一网络设备的第一地址信息,用户终端接收到的第二数据包中,源地址信息为第一网络设备的第一地址信息,目的地址信息为用户终端的地址信息,在数据传输的过程中,用户终端感知不到地址信息的变化,也即在用户终端所能感知的范围内,处理第一数据包的设备为第一网络设备。
本公开还提供了另外一种数据传输方法,应用于应用服务器中,参见图5所示,为本申请实施例所提供的另一种数据传输方法的流程示意图,包括以下几个步骤:
步骤501、接收第二网络设备发送的源地址信息为第二网络设备的地址信息的第一数据包。
步骤502、基于第二网络设备的地址信息,向第二网络设备发送用于响应第一数据包请求的服务的第二数据包。
其中,第二数据包中源地址信息为应用服务器的地址信息,目的地址信息为第二网络设备的地址信息。
本公开还提供了一种数据传输方法,该数据传输方法应用于用户终端、第一网络设备、第二网络设备、以及应用服务器,参见图6所示,为本申请实施例所提供的数据传输方法的流程示意图,包括以下几个步骤:
步骤601、第一网络设备接收用户终端发送的用户请求服务的第一数据包;
步骤602、第一网络设备确定与第一数据包中请求的服务相匹配的应用服务器的目标地址信息。
步骤603、第一网络设备利用隧道封装参数对第一数据包进行封装,得到封装后的第一数据包。
步骤604、第一网络设备将封装后的第一数据包发送至第二网络设备。
步骤605、第二网络设备接收第一网络设备发送的封装后的第一数据包。
步骤606、第二网络设备从封装后的第一数据包中解析出隧道封装参数和第一数据包。
步骤607、第二网络设备基于隧道封装参数中的处理性能参数对第一网络设备进行监控。
步骤608、第二网络设备将第一数据包的目的地址信息更新为目标地址信息、源地址信息更新为所述第二网络设备的地址信息,并发送给应用服务器。
步骤609、应用服务器接收第二网络设备发送的源地址信息为第二网络设备的地址信息的第一数据包,并确定响应第一数据包请求的服务的第二数据包。
步骤610、应用服务器将第二数据包发送至第二网络设备。
步骤611、第二网络设备接收第二数据包,并查找第二网络设备中存储的第二数据包对应的用户终端的地址信息和第一网络设备的第一地址信息。
步骤612、第二网络设备将第二数据包中的源地址信息更新为第一网络设备的第一地址信息,将第二数据包中的目的地址信息更新为用户终端的地址信息,并将更新后的第二数据包发送至用户终端。
在另外一种可能的实施方式中,第二网络设备在对封装后的第一数据包进行解封装得到第一数据包之后,还可以不执行步骤608-步骤609的步骤,即不将第一数据包的源地址信息和目的地址信息进行更新。
具体的,第二网络设备还可以对第一数据包进行重新封装,即在第一数据包的外层重新封装一层源地址信息和目的地址信息,源地址信息为第二网络设备的地址信息,目的地址信息为应用服务器的地址信息,然后将重新封装的第一数据包发送给应用服务器;应用服务器在接收重新封装的第一数据包之后,对重新封装的第一数据包进行解封装,得到第一数据包,然后根据第一数据包确定响应第一数据包请求的服务的第二数据包,第二数据包中源地址信息为重新封装的第一数据包的目的地址信息,目的地址信息为重新封装的第一数据包的源地址信息,也即第二数据包的源地址信息为应用服务器的地址信息,目的地址信息为第二网络设备的地址信息。
参见图7所示,本公开实施例还提供了一种数据传输过程中地址信息更新示意图。
用户终端向第一网络设备发送的第一数据包中,源地址信息为用户终端的地址信息,目的地址信息为第一网络设备的第一地址信息。
第一网络设备向第二网络设备发送的为封装的第一数据包,封装的第一数据包的源地址信息为第一网络设备的第二地址信息,目的地址信息为第二网络设备的地址信息,其中,封装后的第一数据包中还封装有用户终端发送给第一网络设备的第一数据包,也即封装后的第一数据包中外层源地址信息为第一网络设备的第二地址信息,外层目的地址信息为第二网络设备的地址信息,内层源地址信息为用户终端的地址信息,内层目的地址信息为第一网络设备的第一地址信息,封装后的第一数据包中还携带有应用服务器的地址信息。
第二网络设备向应用服务器发送的为地址更新后的第一数据包,地址更新后的第一数据包中源地址信息为第二网络设备的地址信息,目的地址信息为应用服务器的地址信息。
应用服务器向第二网络设备发送的第二数据包的源地址信息为应用服务器的地址信息,目的地址信息为第二网络设备的地址信息。
第二网络设备向用户终端发送的为地址更新后的第二数据包,地址更新后的第二数据包的源地址信息为第一网络设备的第一地址信息,目的地址信息为用户终端的地址信息。
本公开提供的数据传输方法,第一网络设备在接收到用户终端发送的第一数据包时,可以利用包括第一网络设备的处理性能参数、以及与用户终端请求的服务相匹配的应用服务器的目标地址信息的隧道封装参数,对第一数据包进行封装,然后将封装后的第一数据包发送给第二网络设备,第二网络设备可以对封装的第一数据包进行解析,得到处理性能参数,并基于处理性能参数对第一网络设备进行监控,基于目标地址信息,将第一数据包进行地址信息更新后发送到应用服务器。上述方法中,将处理性能参数与第一数据包一起进行封装,然后传输给第二网络设备,节省了数据传输资源,且第二网络设备可以根据解析得到的处理性能参数实现对第一网络设备的处理性能的监控;另一方面,当需要拦截查看数据包内容时,本公开中可以将数据包封装发送给第二网络设备,由第二网络设备对数据包进行解析,无需第一网络设备对数据包的内容进行解析,降低了第一网络设备的服务压力。
基于相同的构思,本公开实施例还提供了一种数据传输装置,部署于第一网络设备中,参见图8所示,为本公开实施例提供的数据传输装置的架构示意图,包括第一接收模块801、第一确定模块802、封装模块803、第一发送模块804,具体的:
第一接收模块801,用于接收用户终端发送的用于请求服务的第一数据包,并将所述第一数据包传输给第一确定模块802和封装模块803;
第一确定模块802,用于确定与所述第一接收模块801传输的第一数据包中请求的服务相匹配的应用服务器的目标地址信息,并将所述目标地址信息传输给封装模块803;
封装模块803,用于利用隧道封装参数对所述第一接收模块801传输的第一数据包进行封装,得到封装后的第一数据包,并将所述封装后的第一数据包发送给第一发送模块804;其中,所述隧道封装参数包括所述第一网络设备的处理性能参数和所述第一确定模块802传输的目标地址信息;
第一发送模块804,用于向第二网络设备发送所述封装模块803传输的封装后的第一数据包;所述第二网络设备用于从所述封装后的第一数据包中解析所述隧道封装参数和所述第一数据包。
一种可能的实施方式中,所述第一网络设备配置有多个第一地址信息;所述第一数据包的目的地址信息为所述多个第一地址信息中的任意一个;
所述封装模块803,在利用隧道封装参数对所述第一接收模块801传输的第一数据包进行封装时,具体用于:
确定所述第一数据包为根据抽样条件选择出的数据包;所述抽样条件表示从所述用户终端发送的N个第一地址信息数据包中选择M个第一地址信息;
利用隧道封装参数对目的地址信息为选择的M个第一地址信息中任一第一地址信息的数据包进行封装数据包;N大于或等于M,N和M为正整数。
一种可能的实施方式中,所述处理性能参数包括所述第一网络设备处理所述第一数据包的时延参数;
所述封装模块803,还用于根据以下方式得到所述时延参数:
确定接收到来自所述用户终端的所述第一数据包的第一时间戳;
确定向所述第二网络设备发送所述封装后的第一数据包的第二时间戳;
根据所述第一时间戳和所述第二时间戳,确定所述时延参数。
一种可能的实施方式中,所述第一确定模块802,在确定与所述第一接收模块801传输的第一数据包中请求的服务相匹配的应用服务器的目标地址信息时,具体用于:
确定与所述第一地址信息匹配的映射地址列表,所述映射地址列表中包括至少一个应用服务器的地址信息;
从所述映射地址列表中选择相匹配的应用服务器的目标地址信息。
一种可能的实施方式中,所述第一网络设备还配置有用于与所述第二网络设备建立连接的第二地址信息;
所述封装后的第一数据包的源地址信息为所述第二地址信息。
本公开实施例还提供了另外一种数据传输装置,部署于第二网络设备中,参见图9所示,为本公开实施例所提供的数据传输装置的架构示意图,包括第二接收模块901、解封装模块902、监控模块903、第二发送模块904、以及获取模块905,具体的:
第二接收模块901,用于接收第一网络设备发送的封装后的第一数据包,并将所述封装后的第一数据包传输至解封装模块902;
解封装模块902,用于从所述第二接收模块901传输的封装后的第一数据包中解析出隧道封装参数和第一数据包,并将所述隧道封装参数传输至监控模块903,将解析出的所述第一数据包传输至第二发送模块904;其中,所述隧道封装参数包括所述第一网络设备的处理性能参数、与所述第一数据包请求的服务相匹配的应用服务器的目标地址信息;
监控模块903,用于基于所述解封装模块902传输的处理性能参数对所述第一网络设备进行监控;
第二发送模块904,用于将所述解封装模块902传输的第一数据包的目的地址信息更新为所述目标地址信息、源地址信息更新为所述第二网络设备的地址信息,并发送给所述应用服务器。
一种可能的实施方式中,所述装置还包括:
获取模块905,用于获取所述第一数据包的五元组信息,并将所述第一数据包的五元组信息传输至第二发送模块904;所述五元组信息中源地址信息为用户终端的地址信息;
所述第二接收模块901,还用于接收所述应用服务器发送的用于响应服务的第二数据包,并将所述第二数据包传输至所述第二发送模块904;
所述第二发送模块904,还用于基于所述获取模块905传输的所述第一数据包的五元组信息,将所述第二接收模块901传输的所述第二数据包转发给所述用户终端。
一种可能的实施方式中,所述处理性能参数包括所述第一网络设备处理所述第一数据包的时延参数。
本公开实施例还提供了另外一种数据传输装置,部署于应用服务器中,参见图10所示,为本公开实施例所提供的数据传输装置的架构示意图,包括第三接收模块1001、以及第三发送模块1002,具体的:
第三接收模块1001,用于接收第二网络设备发送的源地址信息为所述第二网络设备的地址信息的第一数据包;
第三发送模块1002,用于基于所述第二网络设备的地址信息,向所述第二网络设备发送用于响应所述第一数据包请求的服务的第二数据包。
基于同一技术构思,本公开实施例还提供了一种电子设备。参照图11所示,为本公开实施例提供的电子设备1100的结构示意图,包括处理器1101、存储器1102、和总线1103。其中,存储器1102用于存储执行指令,包括内存11021和外部存储器11022;这里的内存11021也称内存储器,用于暂时存放处理器1101中的运算数据,以及与硬盘等外部存储器11022交换的数据,处理器1101通过内存11021与外部存储器11022进行数据交换,当电子设备1100运行时,处理器1101与存储器1102之间通过总线1103通信,使得处理器1101在执行以下指令:
接收用户终端发送的用于请求服务的第一数据包;
确定与所述第一数据包中请求的服务相匹配的应用服务器的目标地址信息;
利用隧道封装参数对所述第一数据包进行封装,得到封装后的第一数据包;其中,所述隧道封装参数包括所述第一网络设备的处理性能参数和所述目标地址信息;
向第二网络设备发送所述封装后的第一数据包;所述第二网络设备用于从所述封装后的第一数据包中解析所述隧道封装参数和所述第一数据包。
一种可能的实施方式中,处理器1101执行的指令中,所述第一网络设备配置有多个第一地址信息;所述第一数据包的目的地址信息为所述多个第一地址信息中的任意一个;
所述利用隧道封装参数对所述第一数据包进行封装,包括:
从N个第一地址信息中选择M个第一地址信息;
利用隧道封装参数对目的地址信息为选择的M个第一地址信息中任一第一地址信息的数据包进行封装;N大于或等于M,N和M为正整数。
一种可能的实施方式中,处理器1101执行的指令中,所述处理性能参数包括所述第一网络设备处理所述第一数据包的时延参数;
根据以下方式得到所述时延参数:
确定接收到来自所述用户终端的所述第一数据包的第一时间戳;
确定向所述第二网络设备发送所述封装后的第一数据包的第二时间戳;
根据所述第一时间戳和所述第二时间戳,确定所述时延参数。
一种可能的实施方式中,处理器1101执行的指令中,所述确定与所述第一数据包中请求的服务相匹配的应用服务器的目标地址信息,包括:
确定与所述第一地址信息匹配的映射地址列表,所述映射地址列表中包括至少一个应用服务器的地址信息;
从所述映射地址列表中选择相匹配的应用服务器的目标地址信息。
一种可能的实施方式中,处理器1101执行的指令中,所述第一网络设备还配置有用于与所述第二网络设备建立连接的第二地址信息;
所述封装后的第一数据包的源地址信息为所述第二地址信息。
基于同一技术构思,本公开实施例还提供了一种电子设备。参照图12所示,为本公开实施例提供的电子设备1200的结构示意图,包括处理器1201、存储器1202、和总线1203。其中,存储器1202用于存储执行指令,包括内存12021和外部存储器12022;这里的内存12021也称内存储器,用于暂时存放处理器1201中的运算数据,以及与硬盘等外部存储器12022交换的数据,处理器1201通过内存12021与外部存储器12022进行数据交换,当电子设备1200运行时,处理器1201与存储器1202之间通过总线1203通信,使得处理器1201在执行以下指令:
接收第一网络设备发送的封装后的第一数据包;
从所述封装后的第一数据包中解析出隧道封装参数和第一数据包;其中,所述隧道封装参数包括所述第一网络设备的处理性能参数、与所述第一数据包请求的服务相匹配的应用服务器的目标地址信息;
基于所述处理性能参数对所述第一网络设备进行监控;
将所述第一数据包的目的地址信息更新为所述目标地址信息、源地址信息更新为所述第二网络设备的地址信息,并发送给所述应用服务器。
一种可能的设计中,处理器1201执行的指令中,还包括:
获取所述第一数据包的五元组信息;所述五元组信息中源地址信息为用户终端的地址信息;
接收所述应用服务器发送的用于响应服务的第二数据包;
基于所述第一数据包的五元组信息,将所述第二数据包转发给所述用户终端。
一种可能的设计中,处理器1201执行的指令中,所述处理性能参数包括所述第一网络设备处理所述第一数据包的时延参数。
基于同一技术构思,本公开实施例还提供了一种电子设备。参照图13所示,为本公开实施例提供的电子设备1300的结构示意图,包括处理器1301、存储器1302、和总线1303。其中,存储器1302用于存储执行指令,包括内存13021和外部存储器13022;这里的内存13021也称内存储器,用于暂时存放处理器1301中的运算数据,以及与硬盘等外部存储器13022交换的数据,处理器1301通过内存13021与外部存储器13022进行数据交换,当电子设备1300运行时,处理器1301与存储器1302之间通过总线1303通信,使得处理器1301在执行以下指令:
接收第二网络设备发送的源地址信息为所述第二网络设备的地址信息的第一数据包;
基于所述第二网络设备的地址信息,向所述第二网络设备发送用于响应所述第一数据包请求的服务的第二数据包。
此外,本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述方法实施例中所述的数据传输方法的步骤。
本公开实施例所提供的数据传输方法的计算机程序产品,包括存储了程序代码的计算机可读存储介质,所述程序代码包括的指令可用于执行上述方法实施例中所述的数据传输方法的步骤,具体可参见上述方法实施例,在此不再赘述。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本公开所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上仅为本公开的具体实施方式,但本公开的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应以权利要求的保护范围为准。