CN111935017B - 跨网络的应用调用方法、装置及路由设备 - Google Patents
跨网络的应用调用方法、装置及路由设备 Download PDFInfo
- Publication number
- CN111935017B CN111935017B CN202011098664.8A CN202011098664A CN111935017B CN 111935017 B CN111935017 B CN 111935017B CN 202011098664 A CN202011098664 A CN 202011098664A CN 111935017 B CN111935017 B CN 111935017B
- Authority
- CN
- China
- Prior art keywords
- data
- application
- gateway
- packet
- segmentation
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/30—Routing of multiclass traffic
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9057—Arrangements for supporting packet reassembly or resequencing
Abstract
本申请提供了一种跨网络的应用调用方法、装置、路由设备及计算机可读存储介质;涉及云技术领域中的网络和路由技术;方法包括:通过路由设备中的第一网关接收第一网络中多个第一应用的数据包;对多个第一应用的数据包进行多轮发送,在每一轮发送的过程中,对待发送的多个数据包进行切分处理,并将得到的切分数据进行拼接处理以得到重组包,并通过第一网关与第二网关之间的数据传输通道,将重组包发送至第二网关;通过第二网关,将第二网关累计接收到的多个重组包还原为多个第一应用的数据包,并将每个第一应用的数据包发送至第二网络中待调用的第二应用。通过本申请,能够实现准确、及时的应用调用,提升应用的承载设备的带宽利用率。
Description
技术领域
本申请涉及网络技术,尤其涉及一种跨网络的应用调用方法、装置、路由设备及计算机可读存储介质。
背景技术
在现今的数字化时代,机构(如企业或事业单位)内部往往会部署多个应用,并通过云技术中的网络技术,将这些应用部署至不同的网络中的承载设备,来保证应用本身的安全性。在应用提供数据服务的过程中,往往会涉及到不同网络中应用之间的相互调用,针对该情况,会通过特定的路由设备(如路由器)来实现不同网络之间的数据传输。
但是,对于不同网络之间的连接,往往会因路由设备的硬件限制,而设置一个最大并发连接数,即路由设备在同一时间维持的数据传输通道的最大数量。若当前的连接数达到了最大并发连接数(如正在使用应用的人数较多),则很可能会出现数据丢包、传输卡顿的情况,无法实现准确、及时的应用调用,应用的承载设备的带宽利用率也较低。
针对于此,相关技术尚未提供有效的解决方案。
发明内容
本申请实施例提供一种跨网络的应用调用方法、装置、路由设备及计算机可读存储介质,能够实现准确、及时的应用调用,提升承载设备的带宽利用率。
本申请实施例的技术方案是这样实现的:
本申请实施例提供一种跨网络的应用调用方法,包括:
通过路由设备中的第一网关接收第一网络中多个第一应用的数据包;
对所述多个第一应用的数据包进行多轮发送,在每一轮发送的过程中,对待发送的多个数据包进行切分处理,将得到的切分数据进行拼接处理以得到重组包,将切分处理后剩余的数据包作为下一轮的待发送的数据包,并通过所述路由设备中的所述第一网关与第二网关之间的数据传输通道,将所述重组包发送至所述路由设备中的第二网关;
通过所述路由设备中的第二网关,将所述第二网关累计接收到的多个所述重组包还原为所述多个第一应用的数据包,并将每个所述第一应用的数据包发送至第二网络中待调用的第二应用。
本申请实施例提供一种跨网络的应用调用装置,包括:
数据接收模块,用于通过路由设备中的第一网关接收第一网络中多个第一应用的数据包;
数据切分模块,用于对所述多个第一应用的数据包进行多轮发送,在每一轮发送的过程中,对待发送的多个数据包进行切分处理,将得到的切分数据进行拼接处理以得到重组包,将切分处理后剩余的数据包作为下一轮的待发送的数据包,并通过所述路由设备中的所述第一网关与第二网关之间的数据传输通道,将所述重组包发送至所述路由设备中的第二网关;
数据还原模块,用于通过所述路由设备中的第二网关,将所述第二网关累计接收到的多个所述重组包还原为所述多个第一应用的数据包,并将每个所述第一应用的数据包发送至第二网络中待调用的第二应用。
本申请实施例提供一种路由设备,包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,实现本申请实施例提供的跨网络的应用调用方法。
本申请实施例提供一种计算机可读存储介质,存储有可执行指令,用于引起处理器执行时,实现本申请实施例提供的跨网络的应用调用方法。
本申请实施例具有以下有益效果:
通过路由设备中针对于第一网络的第一网关,接收第一网络中多个第一应用的数据包,对数据包进行切分处理及拼接处理后,将得到的重组包通过数据传输通道发送至路由设备中针对于第二网络的第二网关,由第二网关将还原出的数据包发送至待调用的第二应用。如此,实现了对多个第一应用的数据的同时传输,使得数据传输的过程不再限制于最大并发连接数,应用之间的调用能够准确、及时地完成,同时也提升了应用的承载设备的带宽利用率。
附图说明
图1是本申请实施例提供的跨网络的应用调用系统的一个架构示意图;
图2是本申请实施例提供的路由设备的一个架构示意图;
图3A是本申请实施例提供的跨网络的应用调用方法的一个流程示意图;
图3B是本申请实施例提供的跨网络的应用调用方法的一个流程示意图;
图3C是本申请实施例提供的跨网络的应用调用方法的一个流程示意图;
图3D是本申请实施例提供的跨网络的应用调用方法的一个流程示意图;
图3E是本申请实施例提供的跨网络的应用调用方法的一个流程示意图;
图4是本申请实施例提供的跨网络的应用调用系统的一个架构示意图;
图5是本申请实施例提供的边界网关的一个架构示意图;
图6是本申请实施例提供的通道切换的一个流程示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,所描述的实施例不应视为对本申请的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解, “一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
在以下的描述中,所涉及的术语“第一\第二\第三”仅仅是是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一\第二\第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。在以下的描述中,所涉及的术语“多个”是指至少两个。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
对本申请实施例进行进一步详细说明之前,对本申请实施例中涉及的名词和术语进行说明,本申请实施例中涉及的名词和术语适用于如下的解释。
1)路由设备:连接两个或多个网络,是读取接收到的每一个数据包中的地址,然后决定如何传送的专用智能性的网络设备,路由设备如路由器。在将数据从一个网络传输到另一个网络时,可以通过路由设备的路由功能进行转发。
2)网关:路由设备中的模块,支持跨网络的安全访问和数据调用,实现跨层级的信任传递和服务路由,即用于实现路由功能。其中,网关可以通过软件形式实现,也可以通过硬件形式实现。
3)最大并发连接数:路由设备能够同时处理的点对点连接(应用与应用之间的连接)的最大数量,即同一时间能够维持的数据传输通道的最大数量,通常根据路由设备的硬件参数来决定,即受到路由设备的硬件限制。
4)数据传输通道:用于进行数据传输的连接通道,数据传输通道的类型根据采用的通信协议而定,例如可以是基于传输控制协议(Transmission Control Protocol,TCP)的数据传输通道。
5)公用网络:指由网络服务提供商建设,供公共用户使用的通信网络,如互联网。
6)专用网络:使用私有IP地址空间的网络,私有IP无法直接连接公用网络,需要通过公网IP进行转发,专用网络如机构内部的局域网。
7)承载设备:指根据自身的计算资源和存储资源,来支持应用运行的设备,本申请实施例对承载设备的类型不做限定,例如可为终端设备或服务器。
8)云技术(Cloud Technology):指在广域网或局域网内将硬件、软件、网络等系列资源统一起来,实现数据的计算、储存、处理和共享的一种托管技术。
本申请实施例提供一种跨网络的应用调用方法、装置、路由设备及计算机可读存储介质,能够实现准确、及时的应用调用,提升应用的承载设备的带宽利用率。下面说明本申请实施例提供的路由设备的示例性应用,本申请实施例提供的路由设备可以实施为路由器。
参见图1,图1是本申请实施例提供的跨网络的应用调用系统100的一个可选的架构示意图,服务器200和服务器300位于第一网络中,服务器400和服务器500位于第二网络中,第一网络中的服务器(即服务器200和服务器300)与第二网络中的服务器(即服务器400和服务器500)通过路由设备600进行数据传输,其中,路由设备600部署有针对于第一网络的第一网关、以及针对于第二网络的第二网关。终端设备700通过第一网络连接服务器200,终端设备800通过第一网络连接服务器300。
为了便于理解,图1中以第一网络为公用网络,第二网络为专用网络,服务器200提供的第一应用为公积金应用,服务器300提供的第一应用为复工应用(例如疫情后企业复工的应用),服务器400提供的第二应用为账号应用,服务器500提供的第二应用为复工审批应用的情况,进行举例说明。对于服务器200来说,终端设备700可以根据服务器200提供的公积金应用,查询公积金余额,服务器200在执行查询公积金余额的操作时,将终端设备700输入的身份信息以数据包形式发送至路由设备600,以调用服务器400中的账号应用。其中,对身份信息的内容不做限定,例如可以包括用户名和密码。
对于服务器300来说,终端设备800可以在服务器300提供的复工应用中输入企业数据,企业数据可包括企业名称及企业地址等。服务器300将终端设备800输入的企业数据以数据包形式发送至路由设备600,以调用服务器500的复工审批应用。
路由设备600中的第一网关在接收到公积金应用的数据包以及复工应用的数据包时,对这两个应用的数据包进行多轮发送,在每一轮发送的过程中,对待发送的数据包进行切分处理,并将得到的切分数据进行拼接处理以得到重组包,然后,通过第一网关与第二网关之间的数据传输通道,将重组包发送至第二网关。第二网关将累计接收到的多个重组包还原为公积金应用的数据包和复工应用的数据包,并将公积金应用的数据包发送至服务器400中的账号应用,将复工应用的数据包发送至服务器500中的复工审批应用。
账号应用用于对公积金应用的数据包进行响应处理,即对身份信息进行验证得到响应数据包,并将包括验证结果的响应数据包发送至第二网关,以使第二网关将该响应数据包发送至公积金应用。本申请实施例对验证身份信息的方式不做限定,例如当公积金应用发送的身份信息与账号应用对应的数据库中存储的某个身份信息相同时,确定验证结果为验证成功;当公积金应用发送的身份信息与账号应用对应的数据库中存储的每个身份信息均不同时,确定验证结果为验证失败。
同理,复工审批应用用于对复工应用的数据包进行响应处理,得到包括审批结果的响应数据包,并将包括审批结果的响应数据包发送至第二网关,以使第二网关将该响应数据包发送至复工应用。其中,本申请实施例对复工审批应用的审批方式不做限定,例如可以是人工审批,或者按照设定的规则进行审批。
路由设备600中的第二网关在接收到账号应用的响应数据包以及复工审批应用的响应数据包时,同样对这两个应用的响应数据包进行多轮发送,在每一轮发送中通过数据传输通道将得到的响应重组包发送至第一网关。第一网关将累计接收到的多个响应重组包还原为账号应用的响应数据包以及复工审批应用的响应数据包,并分别发送至公积金应用及复工应用。如此,公积金应用便可根据账号应用通过验证得到的验证结果,确定是否根据终端设备700输入的身份信息进行公积金查询;使用复工应用的企业用户,也可根据复工审批应用的审批结果,确定是否能进行复工。
终端设备700和终端设备800用于在各自的图形界面中,显示使用应用的过程中得到的各种结果,在图1中,以公积金应用接收到的验证结果是验证成功为例,在终端设备700的图形界面710中(图形界面710中显示的即为公积金应用的界面),示出了与输入的身份信息对应的公积金余额;以复工应用接收到的审批结果是审批成功为例,在终端设备800的图形界面810中(图形界面810中显示的即为复工应用的界面),示出了审批成功的提示消息。
在一些实施例中,第一网络和第二网络内的服务器(如图1示出的服务器200、300、400、500)可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器,其中,云服务可以是基于应用的云服务,供终端设备或其他服务器进行调用。终端设备(如图1示出的终端设备700和800)可以是智能手机、平板电脑、笔记本电脑、台式计算机、智能音箱、智能手表、智能电视等,但并不局限于此。终端设备以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请实施例中不做限制,另外,不同网络的服务器之间可以通过路由设备进行数据传输。
参见图2,图2是本申请实施例提供的路由设备600(例如,可以是图1所示的路由设备600)的架构示意图,图2所示的路由设备600包括:至少一个处理器610、存储器640和至少一个网络接口620。路由设备600中的各个组件通过总线系统630耦合在一起。可理解,总线系统630用于实现这些组件之间的连接通信。总线系统630除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图2中将各种总线都标为总线系统630。
处理器610可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器(DSP,Digital Signal Processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。
存储器640可以是可移除的,不可移除的或其组合。示例性的硬件设备包括固态存储器,硬盘驱动器,光盘驱动器等。存储器640可选地包括在物理位置上远离处理器 610的一个或多个存储设备。
存储器640包括易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。非易失性存储器可以是只读存储器(ROM,Read Only Memory),易失性存储器可以是随机存取存储器(RAM,Random Access Memory)。本申请实施例描述的存储器640旨在包括任意适合类型的存储器。
在一些实施例中,存储器640能够存储数据以支持各种操作,这些数据的示例包括程序、模块和数据结构或者其子集或超集,下面示例性说明。
操作系统641,包括用于处理各种基本系统服务和执行硬件相关任务的系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;
网络通信模块642,用于经由一个或多个(有线或无线)网络接口620到达其他计算设备,示例性的网络接口620包括:蓝牙、无线相容性认证(WiFi)、和通用串行总线(USB,Universal Serial Bus)等。
在一些实施例中,本申请实施例提供的跨网络的应用调用装置可以采用软件方式实现,图2示出了存储在存储器640中的跨网络的应用调用装置643,其可以是程序和插件等形式的软件,包括以下软件模块:数据接收模块6431、数据切分模块6432及数据还原模块6433,这些模块是逻辑上的,因此根据所实现的功能可以进行任意的组合或进一步拆分。将在下文中说明各个模块的功能。
在另一些实施例中,本申请实施例提供的跨网络的应用调用装置可以采用硬件方式实现,作为示例,本申请实施例提供的跨网络的应用调用装置可以是采用硬件译码处理器形式的处理器,其被编程以执行本申请实施例提供的跨网络的应用调用方法,例如,硬件译码处理器形式的处理器可以采用一个或多个应用专用集成电路(ASIC,ApplicationSpecific Integrated Circuit)、DSP、可编程逻辑器件(PLD,Programmable LogicDevice)、复杂可编程逻辑器件(CPLD,Complex Programmable Logic Device)、现场可编程门阵列(FPGA,Field-Programmable Gate Array)或其他电子元件。即,路由设备中的第一网关和第二网关可以通过硬件形式实现。
将结合本申请实施例提供的路由设备的示例性应用和实施,说明本申请实施例提供的跨网络的应用调用方法。
参见图3A,图3A是本申请实施例提供的跨网络的应用调用方法的一个可选的流程示意图,将结合图3A示出的步骤进行说明。
在步骤101中,通过路由设备中的第一网关接收第一网络中多个第一应用的数据包。
在本申请实施例中,第一网络与第二网络通过路由设备实现通信,路由设备中部署有第一网关和第二网关,其中,第一网关用于与第一网络中的应用进行通信,第二网关用于与第二网络中的应用进行通信,为了便于区分,将第一网络中的应用命名为第一应用,将第二网络中的应用命名为第二应用。在实际业务场景中,第一网络和第二网络中的应用往往会相互调用,例如,在政务机构中,公用网络中的公积金应用在执行查询公积金余额的操作时,会调用政务机构的专用网络中的账号应用,以核实身份信息。
这里,以第一应用调用第二应用为例进行说明,首先,由第一网关接收多个第一应用发送的数据包,例如接收公积金应用发送的数据包以及复工应用发送的数据包。在此之前,需要建立第一网关与第一应用的承载设备之间的连接,例如,第一网关通过套接字的方式,监听位于第一网络的承载设备中与第一应用对应的某个端口,第一网关通过监听该端口获取到的数据包,即为该第一应用在运行过程中产生的数据包。同理,第二网关也需要预先与第二应用的承载设备建立连接,此处不再赘述。
值得说明的是,对于同一个第一应用来说,第一网关收到的数据包的数量可能为多个。其原因可能是由于业务的特殊性,导致第一应用在运行过程中会持续性地产生多个数据包,例如某些涉及到统计性质的第一应用,会在进行统计时持续地生成多个数据包,每个数据包都包括一个身份信息。又或者,第一应用某次生成的数据的数据量过大,一个数据包无法容纳,故会拆分出多个数据包,并发送至第一网关。
在步骤102中,对多个第一应用的数据包进行多轮发送,在每一轮发送的过程中,对待发送的多个数据包进行切分处理,将得到的切分数据进行拼接处理以得到重组包,将切分处理后剩余的数据包作为下一轮的待发送的数据包,并通过路由设备中的第一网关与第二网关之间的数据传输通道,将重组包发送至路由设备中的第二网关。
在路由设备中,往往会根据路由设备的硬件参数设定数据量阈值,以保证发送的数据包不会过大,避免路由设备的硬件性能无法支持数据包的转发。在路由设备的第一网关接收到多个第一应用的数据包时,可以进行多轮发送。在每一轮发送的过程中,根据数据量阈值对待发送的多个数据包(在第一轮发送中,待发送的多个数据包即为多个第一应用的数据包)进行切分处理,将得到的切分数据进行拼接处理以得到重组包,同时将切分处理后剩余的数据包作为下一轮的待发送的数据包,其中,重组包的数据量小于或等于数据量阈值。如此,可以将不同的第一应用的数据放在同一个重组包内进行发送,可以突破路由设备的最大并发连接数的限制,同时,可以保证路由设备的硬件性能能够支持重组包的顺利转发。值得说明的是,在第一轮之后的每一轮中,待发送的数据包包括上一轮中未进行切分处理也未发送的数据包,还包括上一轮中进行切分处理后剩余的数据包。
在每一轮发送的过程中,得到重组包后,通过第一网关与第二网关之间的数据传输通道,将重组包发送至第二网关,其中,数据传输通道可以是基于TCP连接进行建立,但这并不构成对本申请实施例的限定。
在一些实施例中,对待发送的多个数据包进行切分处理之后,还包括:在针对每个数据包进行切分处理得到的切分数据以及剩余的数据包中,分别添加相同的标识信息,以使第二网关在接收到多个重组包时,将多个重组包中具有相同标识信息的数据进行组合,得到还原出的数据包。
为了使第二网关能够正确地还原出数据包,在本申请实施例中,可以在针对每个数据包进行切分处理得到的切分数据以及剩余的数据包中,分别添加相同的标识信息(Identity Document,ID)。如此,第一网关在将切分数据以及剩余的数据包在不同轮次发送(以重组包的形式分批发送)至第二网关后,第二网关将多个重组包中具有相同标识信息的数据进行组合,便可得到还原出的数据包。通过上述方式,能够准确地还原出数据包。
在一些实施例中,在每一轮发送的过程中,还包括:当待发送的多个数据包的总数据量小于或等于数据量阈值时,将待发送的多个数据包进行拼接处理以得到重组包。
这里,若待发送的多个数据包的总数据量小于或等于设定的数据量阈值,则无需进行切分处理,直接将待发送的多个数据包进行拼接处理以得到重组包。
在一些实施例中,将重组包发送至路由设备中的第二网关之后,还包括:当第一应用的任一数据包已全部发送至第二网关时,通过数据传输通道,向第二网关发送第一应用对应的发送完成消息;当第一网关接收到继续发送消息时,通过数据传输通道,向第二网关发送第一应用的下一个数据包;其中,继续发送消息是第二网关在接收到发送完成消息时,向第一网关发送的。
在本申请实施例中,同一个第一应用可能会向第一网关发送多个数据包,第一网关可以根据从先到后的接收顺序,对这些数据包进行依次发送,从而可以保证数据传输的有序性,符合实际的业务需求。例如,当第一应用的任一数据包已全部发送至第二网关时,第一网关通过数据传输通道,向第二网关发送第一应用对应的发送完成消息。第二网关在接收到发送完成消息时,生成与第一应用对应的继续发送消息,并将继续发送消息通过数据传输通道发送至第一网关。
当第一网关接收到继续发送消息时,通过数据传输通道,向第二网关发送第一应用的下一个数据包,即针对同一个第一应用的多个数据包,第一网关在发送完成一个数据包之后,再去发送下一个数据包,保证对同一个第一应用的多个数据包的发送过程彼此隔离,互不干扰。其中,第一网关对同一个第一应用的每个数据包的发送过程参见步骤102,在此不做赘述。
举例来说,第一网关接收到同一个第一应用发送的数据包A1和A2,以及另一个第一应用发送的数据包B,其中,第一网关接收到数据包A1的时间先于数据包A2。则第一网关可以先将数据包A1和B发送至第二网关(其中可能涉及到多轮发送),在接收到第二网关发送的与第一应用(这里指生成数据包A1的第一应用)对应的继续发送消息时,再将数据包A2发送至第二网关。
当然,针对同一个第一应用的多个数据包,第一网关也可以统一发送,例如,第一网关可以对数据包A1、A2和B统一执行步骤102,以将数据包A1、A2和B发送至第二网关。
在步骤103中,通过路由设备中的第二网关,将第二网关累计接收到的多个重组包还原为多个第一应用的数据包,并将每个第一应用的数据包发送至第二网络中待调用的第二应用。
这里,第二网关根据累计接收到的多个重组包,还原出多个第一应用的数据包,并根据第一应用与第二应用之间的调用关系,将每个第一应用的数据包发送至待调用的第二应用。其中,调用关系可以根据实际应用场景进行设定,例如,第二网关可能将多个第一应用的数据包分别发送至不同的第二应用,也可能将多个第一应用的数据包发送至同一个第二应用。
在一些实施例中,第一网络为公用网络,第二网络为专用网络;或者,第一网络为专用网络,第二网络为公用网络。
本申请实施例可适用于以下两种网络架构模式,一种网络架构模式是,第一网络为公用网络,如互联网,第二网络为专用网络,如机构内部架设的局域网,仅能通过特定的路由设备进行访问;另一种网络架构模式是,第一网络为专用网络,第二网络为公用网络。由此,本申请实施例中的应用调用过程可以是公用网络中的应用调用专用网络中的应用,也可以是专用网络中的应用调用公用网络中的应用。通过上述方式,提升了本申请实施例对于不同网络架构模式的适用性,当然,以上的两种网络架构模式并不构成对本申请实施例的限定,即本申请实施例还可适用于其他可行的网络架构模式。
如图3A所示,本申请实施例将不同第一应用的数据拼接在同一个重组包中发送,能够突破路由设备的最大并发连接数的限制,保证应用之间的调用能够被准确、及时地执行,同时,也可提升应用的承载设备的带宽利用率,使得承载设备的资源能够被高效利用。
在一些实施例中,参见图3B,图3B是本申请实施例提供的跨网络的应用调用方法的一个可选的流程示意图,图3A示出的步骤102可以通过步骤201至步骤205实现,将结合各步骤进行说明。
在步骤201中,在对多个第一应用的数据包进行的第i轮发送的过程中,按照从先到后的接收顺序,对待发送的多个数据包进行排序得到数据包序列。
在本申请实施例中,可以按照先进先出的原则来进行数据包的发送。为了便于理解,以第i轮的发送过程进行说明,首先,第一网关按照从先到后的接收顺序,对第i轮中待发送的多个数据包进行排序得到数据包序列,其中,i为大于0的整数。
在步骤202中,当数据包序列中的第一个数据包的数据量小于数据量阈值、且第一个数据包和数据包序列中后续的数据包的总数据量大于数据量阈值时,将数据量阈值减去第一个数据包的数据量,得到切分数据量。
这里,当数据包序列中的第一个数据包的数据量小于设定的数据量阈值、且第一个数据包和数据包序列中后续的数据包的总数据量大于数据量阈值时,证明在第i轮的发送过程中,除了发送第一个数据包外,还可以发送更多的数据,但是无法发送完整的后续的数据包。因此,将数据量阈值减去第一个数据包的数据量,得到切分数据量,该切分数据量是针对于后续的数据包而言的。
在一些实施例中,步骤201之后,还包括:当数据包序列中的第一个数据包的数据量大于数据量阈值时,将数据量阈值作为切分数据量,对第一个数据包进行切分处理,得到切分数据;根据切分数据构建重组包。
这里,当数据包序列中的第一个数据包的数据量大于数据量阈值时,证明在第i轮的发送过程中,无法发送完整的第一个数据包。因此,将数据量阈值作为切分数据量,对第一个数据包进行切分处理,得到数据量与数据量阈值相同的切分数据。然后,直接根据该切分数据,构建本次发送过程中的重组包。
此外,当数据包序列中的第一个数据包的数据量等于数据量阈值时,无需进行切分处理,直接将第一个数据包作为第i轮发送过程中的重组包即可。通过上述方式,提升了对不同情况的适用性,使得得到的重组包能够顺利地到达第二网关。
在步骤203中,根据切分数据量对后续的数据包进行切分处理,得到符合切分数据量的切分数据,将切分处理后剩余的数据包作为下一轮的待发送的数据包。
这里,根据步骤202中得到的切分数据量,对后续的数据包进行切分处理,得到符合切分数据量的切分数据,其中,同样是按照从先到后的接收顺序,对后续的数据包进行切分处理。同时,将切分处理后剩余的数据包作为下一轮(即第i+1轮)的待发送的数据包。
举例来说,数据包序列中依次包括数据包A、数据包B和数据包C,其数据量分别为800字节、200字节和700字节,数据量阈值为1500字节,则可以得到切分数据量为700字节。在根据切分数据量对数据包B和数据包C进行切分处理时,首先判断是否对数据包B进行切分,由于数据包B的数据量小于切分数据量,故不需进行切分,切分数据量更新为500字节。然后,根据更新后的切分数据量,对数据包C进行切分处理,即是将数据包C中前500字节的数据作为切分数据。最终得到的重组包中,包括完整的数据包A和数据包B,还包括数据包C中前500字节的数据。
在步骤204中,将第一个数据包及切分数据进行拼接处理以得到第i轮的重组包。
这里,将第一个数据包及切分数据进行拼接处理以得到第i轮的重组包,如此,重组包的数据量等于数据量阈值,能够在一次发送的过程中发送尽量多的数据。
在步骤205中,通过路由设备中的第一网关与第二网关之间的数据传输通道,将第i轮的重组包发送至路由设备中的第二网关。
如图3B所示,本申请实施例通过先进先出的原则来进行切分处理及拼接处理,保证最先接收到的数据包能够以最快速度完整地到达第二网关,适用于对时效性要求较高的场景。
在一些实施例中,参见图3C,图3C是本申请实施例提供的跨网络的应用调用方法的一个可选的流程示意图,图3A示出的步骤102可以通过步骤301至步骤304实现,将结合各步骤进行说明。
在步骤301中,在对多个第一应用的数据包进行的第i轮发送的过程中,当待发送的多个数据包的总数据量大于数据量阈值时,对待发送的多个数据包中的每个数据包进行切分处理,以使得到的多个切分数据的总数据量等于数据量阈值。
除了先进先出的原则外,本申请实施例也可以采用同步传输的原则,进行切分处理。为了便于理解,以第i轮的发送过程说明,当第i轮中待发送的多个数据包的总数据量大于数据量阈值时,对待发送的每个数据包进行切分处理,以使得到的多个切分数据的总数据量等于数据量阈值。
在一些实施例中,对待发送的多个数据包中的每个数据包进行切分处理之前,还包括:执行以下任意一种处理,以确定每个数据包的切分数据量:将数据量阈值与数据包的数量进行相除处理,得到每个数据包的切分数据量;获取每个数据包对应的第一应用的优先级,并根据优先级确定每个数据包的切分数据量;其中,切分数据量与优先级正相关;按照从先到后的接收顺序,对待发送的多个数据包进行排序得到数据包序列,并根据数据包在数据包序列中的靠前程度,确定数据包的切分数据量;其中,切分数据量与靠前程度正相关。
本申请实施例提供了三种确定数据包的切分数据量的方式,其中,切分数据量用于对数据包进行切分处理,以得到数据量与切分数据量相同的切分数据。第一种方式是平均分配,即是将数据量阈值与数据包的总数量进行相除处理,得到每个数据包的切分数据量。第二种方式是,获取每个数据包对应的第一应用的优先级,并根据优先级确定每个数据包的切分数据量,其中,第一应用的优先级可以预先设定,优先级越高,则对应的数据包的切分数据量越大,切分数据量与优先级之间的正相关关系的具体形式可以根据实际应用场景进行设定。第三种方式同时结合了先进先出和同步传输的原则,首先,按照从先到后的接收顺序,对待发送的多个数据包进行排序得到数据包序列,然后,根据数据包在数据包序列中的靠前程度,确定数据包的切分数据量,数据包在数据包序列中越靠前,则该数据包的切分数据量越大,切分数据量与靠前程度之间的正相关关系的具体形式可以根据实际应用场景进行设定。通过上述方式,提升了确定切分数据量的灵活性,可以根据实际应用场景选用任一种方式。
在步骤302中,将切分处理后剩余的数据包作为下一轮的待发送的数据包。
在对待发送的每个数据包进行切分处理后,将剩余的数据包作为下一轮(即第i+1轮)的待发送的数据包。
在步骤303中,将待发送的多个数据包对应的切分数据进行拼接处理以得到重组包。
这里,对待发送的多个数据包进行切分处理后,将得到的所有切分数据进行拼接处理以得到重组包,该重组包的数据量等于数据量阈值。
在步骤304中,通过路由设备中的第一网关与第二网关之间的数据传输通道,将第i轮的重组包发送至路由设备中的第二网关。
如图3C所示,本申请实施例提供了另一种同步传输的方式,提升了第一网关发送数据包的灵活性。
在一些实施例中,参见图3D,图3D是本申请实施例提供的跨网络的应用调用方法的一个可选的流程示意图,在图3A示出的任意步骤之间(图3D以步骤103之后作为示例),还可以在步骤401中,当路由设备中已创建的数据传输通道满足切换条件时,创建第一网关与第二网关之间的新的数据传输通道。
这里,当路由设备中已创建的数据传输通道满足切换条件时,可以创建第一网关与第二网关之间的新的数据传输通道,从而实现数据传输通道的更新。
在一些实施例中,步骤401之前还包括:执行以下至少一种处理:当已创建的数据传输通道的维持时长达到第一时长阈值时,确定已创建的数据传输通道满足切换条件;当已创建的数据传输通道中已传输的数据量达到切换数据量阈值时,确定已创建的数据传输通道满足切换条件。
本申请实施例提供了以下两种切换条件,第一种切换条件是,已创建的数据传输通道的维持时长达到时长阈值,通常来说,一些对于安全性和机密性要求较高的机构(如公检法机构),会限制所有经过承载设备的连接是短连接,即限制数据传输通道的维持时长不能超过时长阈值,本申请实施例通过进行通道切换,可以使应用保持长连接的状态,保证使用应用的用户的体验。
第二种切换条件是,已创建的数据传输通道中已传输的数据量达到切换数据量阈值,该切换条件通过已传输的数据量进行约束,防止在一个数据传输通道中传输过多数据,从而提升安全性。其中,上述的时长阈值和切换数据量阈值可以根据实际应用场景进行设定。通过上述方式,提升了通道切换的灵活性,即可选用两种切换条件中的至少一种。
在一些实施例中,在任意步骤之间,还包括:当路由设备中已创建的数据传输通道满足关闭条件时,对已创建的数据传输通道进行关闭处理。
例如,关闭条件可以是,已创建的数据传输通道中未传输数据的持续时长达到关闭时长阈值,关闭时长阈值可进行自由设定。若满足关闭条件,则证明已创建的数据传输通道的必要性较低,为了节省维护数据传输通道所消耗的计算资源,可以对已创建的数据传输通道进行关闭处理。当然,关闭条件并不限于此,可以根据实际应用场景进行设定。
在步骤402中,通过新的数据传输通道,将第一网关生成的重组包发送至第二网关。
这里,第一网关通过新的数据传输通道,将生成的重组包发送至第二网关。
在步骤403中,通过已创建的数据传输通道,将第一网关生成的通道切换消息发送至第二网关,以使第二网关从新的数据传输通道中接收重组包。
这里,第一网关通知第二网关进行通道切换,例如,第一网关通过已创建的数据传输通道,将生成的通道切换消息发送至第二网关,以使第二网关从新的数据传输通道中接收重组包。即,第二网关在接收到通道切换消息之前,是从已创建的数据传输通道中接收重组包;第二网关在接收到通道切换消息时,停止从已创建的数据传输通道中接收重组包,并开始从新的数据传输通道中接收重组包。
值得说明的是,与步骤402和步骤403类似地,第二网关也可以通过新的数据传输通道,将第二网关生成的数据(如响应重组包)发送至第一网关,并通过已创建的数据传输通道,将第二网关生成的通道切换消息发送至第一网关,以使第一网关从新的数据传输通道中接收数据。另外,本申请实施例对步骤402和步骤403的执行顺序不做限定。
如图3D所示,本申请实施例通过通道切换的方式,将发送数据的工作转移至新的数据传输通道,适用于对数据传输通道的维持时长或对已传输的数据量存在限制的场景。
在一些实施例中,参见图3E,图3E是本申请实施例提供的跨网络的应用调用方法的一个可选的流程示意图,图3A示出的步骤103可以通过步骤501至步骤502实现,将结合各步骤进行说明。
在步骤501中,通过路由设备中的第二网关,将第二网关累计接收到的多个重组包还原为多个第一应用的数据包。
在步骤502中,将每个第一应用的数据包,发送至与第一应用存在调用关系的第二应用,以使第二应用对第一应用的数据包进行响应处理,得到响应数据包。
在本申请实施例中,将每个第一应用的数据包,发送至与第一应用存在调用关系的第二应用后,第二应用可以直接将第一应用的数据包进行存储,也可以对第一应用的数据包进行响应处理,得到响应数据包。例如,作为公积金应用的第一应用与作为账号应用的第二应用存在调用关系,第二应用在得到第一应用的数据包时,可以对数据包中的身份信息进行验证处理,并将验证结果以数据包的形式进行包装,得到响应数据包。
在图3E中,步骤502之后,还可以在步骤503中,通过第二网关接收第二网络中多个第二应用的响应数据包。
同样地,第二网关可以通过监听端口的方式,来接收第二网络中多个第二应用的响应数据包。
在步骤504中,对多个第二应用的响应数据包进行多轮发送,在每一轮发送的过程中,对待发送的多个响应数据包进行切分处理,将得到的切分数据进行拼接处理以得到响应重组包,将切分处理后剩余的响应数据包作为下一轮的待发送的响应数据包,并通过数据传输通道,将响应重组包发送至第一网关。
这里,第二网关对多个第二应用的响应数据包进行多轮发送,这里的过程与步骤102类似,在此不做赘述。
在步骤505中,通过第一网关,将第一网关累计接收到的多个响应重组包还原为多个第二应用的响应数据包,并将每个第二应用的响应数据包,发送至与第二应用存在调用关系的第一应用。
这里,第一网关可以根据累计接收到的多个响应重组包,还原出多个第二应用的响应数据包,并针对每个第二应用的响应数据包,将其发送至与第二应用存在调用关系的第一应用,完成整个调用过程。例如,作为公积金应用的第一应用,可以根据作为账号应用的第二应用返回的验证结果,判断是否查询与身份信息对应的公积金余额。
如图3E所示,本申请实施例提供了第二网关返回响应数据包的一种示例,实现了数据的双向传输,适用于应用客户端/服务器架构的场景。
下面,将说明本申请实施例在一个实际的应用场景中的示例性应用。本申请实施例可以在机构内部的路由设备两侧部署边界网关,本申请实施例提供了如图4所示的跨网络的应用调用系统的架构示意图,在图4中,路由设备用于实现第一网络和第二网络之间的通信,其中,业务系统A、业务系统B和业务系统C位于第一网络中,业务系统A’、业务系统B’和业务系统C’位于第二网络中,每个业务系统中运行有应用。边界网关可以基于TCP来建立连接,为了便于区分,将建立的两个边界网关分别命名为TCP BridgeA(对应上文的第一网关)和TCP BridgeB(对应上文的第二网关),图4中为了便于表示,将TCP BridgeA和TCPBridgeB表示在了路由设备外部,在实际应用场景中,TCP BridgeA和TCP BridgeB可以通过软件或硬件的方式,集成在路由设备内。
同时,在路由设备中配置双向服务的监听端口,用以监听通过端口发送和接收的数据,由TCP BridgeA和TCP BridgeB建立有限的连接通道(对应上文的数据传输通道),并接管所有需要通过路由设备的连接和数据,完成数据的交换。
在本申请实施例中,可以通过配置项来适配不同的路由设备,如是否可以支持并发以及最大连接时长(对应上文的时长阈值)。TCP BridgeA和TCP BridgeB会在最大连接时长到达时,建立新的连接通道,将托管服务切换到新的连接通道,从而使得连接可以长时间持续,达到业务侧长连接的效果。其中,配置项包括但不限于:
1)套接字模块(Sockman)监听的端口数组(publicPorts array of number),示例如“publicPorts”:[8000,8001]。
2)调试变量(debug bool):该配置项用于表示是否记录调试信息(高度信息包括所有接收到的指令头),示例如“debug”:true,表示记录调试信息。
3)最大传输单元大小(Maximum Transmission Unit number,MTU number):对应上文的数据量阈值,表示在连接通道中进行传输的数据包的数据量上限,对于某些对请求大小有限制的超文本传输协议(HyperText Transfer Protocol,HTTP)和文件交换边界有意义。
4)最大发送队列(maxSendQueue number):发送数据包的队列的长度,默认值为1,可以根据实际应用场景进行设定,若增大该数值,则可以提高并发度,提升高延时边界的吞吐能力。
5)端口映射(peerPortMap object):处理远程TCP连接时的端口映射,对应上文的调用关系,示例如“peerPortMap”:{“8000”:[{“host”:“127.0.0.1”,“port”:12345}],“8001”:[{“host”:“127.0.0.1”,“port”:12346}]},其中,host是指IP地址,port是指端口号。结合图4进行举例说明,在“peerPortMap”的示例中,第一个“127.0.0.1”可以是图4中业务系统A在第一网络中的IP地址,12345可以是该业务系统A的端口号,第二个“127.0.0.1”可以是图4中业务系统A’在第二网络中的IP地址,12346可以是该业务系统A’的端口号。
本申请实施例提供了如图5所示的边界网关的架构示意图,可以在边界网关的两端,分别登记业务的服务器和/或客户端的转发和监听端口,用以响应数据传输的请求。例如,图4中的业务系统A可以作为客户端,去调用作为服务器的业务系统A’,即业务系统A中的应用调用业务系统A’中的应用;业务系统A’也可以作为客户端,去调用作为服务器的业务系统A,具体的调用关系根据实际的业务场景而定。
边界网关包括多个模块,这里进行分别说明:
1)桥接模块(Bridge):负责边界网关之间的连接通道的创建和维持,根据流量进行数据的切片(对应上文的切分处理)和数据重组,即负责进行数据的收发和重发。
2)套接字模块(Sockman):负责维护从外部(客户端和/或服务器)连接到边界网关的TCP连接,将收到的数据放入边界网关的命令处理器。
3)命令处理器:负责用户指令(数据)缓存,命令处理器中的命令队列用于在Bridge和Sockman之间进行指令传递,因此命令处理器负责指令的优先级和完整性传递调度。
4)定时器(Timer):用于对边界网关之间的连接通道进行计时,在到达最大连接时长时,通知进行通道切换。
5)数据存储模块(Data Buffer):用于缓存从对端发送过来的数据。
基于边界网关包括的上述模块,可以实现应用托管连接和长连接通道维持,以下进行分别说明。
在应用托管连接中,可以突破路由设备的最大并发连接数的限制,增加应用接入数,主要步骤如下:
步骤1:TCP BridgeA和TCP BridgeB在启动时,创建连接通道C1,以通过连接通道C1来收发数据。
步骤2:TCP BridgeA接收到应用X发送的数据包DX、以及应用Y发送的数据包DY,这里,以TCP BridgeA先接收到数据包DX,再接收到数据包DY为例进行说明。
步骤3:以路由设备的MTU为F,最大并发连接数为1进行说明,则可以采用先进先出原则(对应下面的步骤3.1)及同步传输原则(对应下面的步骤3.2)中的任意一种进行数据发送。
步骤3.1:发送端先进先出原则。首先,TCP BridgeA判断数据包DX的大小(即数据量)是否大于F。
步骤3.1.1:若数据包DX的数据量大于F,则取数据包DX的前F部分DX’(即切分数据),通过连接通道C1发送至TCP BridgeB,若数据包DX剩余的部分(即剩余的数据包)的数据量仍大于F,则在下一次发送时,继续在剩余的部分中取前F部分DX’’,以发送至TCPBridgeB,如此循环,直至数据包DX全部发送完毕。
步骤3.1.2:若数据包DX的数据量等于F,则直接将数据包DX通过连接通道C1发送至TCP BridgeB。
步骤3.1.3:若数据包DX的数据量小于F、且数据包DX和数据包DY的总数据量小于或等于F,则在此次发送中,通过连接通道C1将数据包DX和数据包DY共同发送至TCPBridgeB;若数据包DX的数据量小于F、且数据包DX和数据包DY的总数据量大于F,则取数据包DY的前DY’部分,并通过连接通道C1,将数据包DX和DY’共同发送至TCP BridgeB,然后进行下一轮循环,以发送数据包DY中剩余的部分,其中,数据包DX和DY’的总数据量等于F。
步骤3.2:发送端同步传输原则。首先,TCP BridgeA判断是否接收到新的数据包。
步骤3.2.1:若未接收到新的数据包,则取数据包DX中的前DX’部分,以及数据包DY中的前DY’部分,通过连接通道C1将DX’和DY’共同发送至TCP BridgeB,然后进行下一轮循环,其中,DX’和DY’的总数据量等于F。
步骤3.2.2:若接收到新的数据包DZ,则同时取数据包DX中的前DX’部分、数据包DY中的前DY’部分、以及数据包DZ中的前DZ’部分,通过连接通道C1将DX’、DY’和DZ’共同发送至TCP BridgeB,然后进行下一轮循环,其中,DX’、DY’和DZ’的总数据量等于F。
步骤4:TCP BridgeB根据设定的调用关系,从连接通道C1中接收TCP BridgeA发送的数据包,若收到数据包DX的结束标志(对应上文的发送完成消息),则向TCP BridgeA发送数据包DX对应的请求(对应上文的继续发送消息),以请求数据包DX对应的应用所发送的下一个数据包。
步骤5:不断循环步骤3,直到TCP BridgeA接收到的所有数据包都发送完毕。
当TCP BridgeA与TCP BridgeB之间建立有多个连接通道时,对于每个连接通道的处理与上述步骤类似,此处不再赘述。
在长连接通道维持中,可以自动切换短连接,使得应用和应用之间得以维持长连接,作为示例,本申请实施例提供了如图6所示的通道切换的流程示意图,图6中以TCPBridgeA的角度示出了通道切换过程中的各个步骤,其中,边界网关中的命令处理器包括发送处理器和接收处理器。将结合图6说明各个步骤:
步骤1:TCP BridgeA和TCP BridgeB在启动时,创建连接通道C1,以通过连接通道C1来收发数据。
步骤2:TCP BridgeA的发送处理器通过桥接模块,向定时器询问连接通道C1的维持时长是否达到最大连接时长。
步骤2.1:若未达到最大连接时长,则执行步骤2.1.1和步骤2.1.2。
步骤2.1.1:TCP BridgeA执行步骤2.1.1.1、步骤2.1.1.2及步骤2.1.1.3。
步骤2.1.1.1:TCP BridgeA的发送处理器继续使用连接通道C1来发送数据。
步骤2.1.1.2:TCP BridgeA发送的数据通过连接通道C1进入TCP BridgeB中的、与连接通道C1对应的缓存库,为了便于区分,将与连接通道C1对应的缓存库命名为C1缓存库。
步骤2.1.1.3:TCP BridgeA的接收处理器从TCP BridgeA中的C1缓存库中,读取TCP BridgeB发送的数据。
步骤2.1.2:TCP BridgeB执行步骤2.1.2.1、步骤2.1.2.2及步骤2.1.2.3。
步骤2.1.2.1:TCP BridgeB的接收处理器从TCP BridgeB中的C1缓存库中,读取TCP BridgeA发送的数据。
步骤2.1.2.2:TCP BridgeB的发送处理器使用连接通道C1来发送数据。
步骤2.1.2.3:TCP BridgeB发送的数据通过连接通道C1进入TCP BridgeA中的C1缓存库。
步骤2.2:若达到最大连接时长,则执行步骤3。
步骤3:TCP BridgeA和TCP BridgeB建立新的连接通道C2,并通知双方,具体可包括步骤3.1、步骤3.2及步骤3.3。
步骤3.1:TCP BridgeA执行步骤3.1.1、步骤3.1.2、步骤3.1.3及步骤3.1.4。
步骤3.1.1:TCP BridgeA建立连接通道C2对应的定时器。
步骤3.1.2:TCP BridgeA的发送处理器将切换指令(对应上文的通道切换消息)通过连接通道C1发送至TCP BridgeB。
步骤3.1.3:TCP BridgeA的发送处理器开始将新的数据通过连接通道C2发送至TCP BridgeB;其中,对步骤3.1.1、步骤3.1.2及步骤3.1.3的执行顺序不做限定。
步骤3.1.4:TCP BridgeA的接收处理器从TCP BridgeA中的C1缓存库接收数据,并判断是否接收到TCP BridgeB发送的切换指令。
步骤3.1.4.1:若接收到TCP BridgeB发送的切换指令,则关闭连接通道C1,即停止从连接通道C1接收数据,开始从连接通道C2接收数据。
步骤3.1.4.2:若未收到TCP BridgeB发送的切换指令,则继续使用连接通道C1接收数据,即进入步骤3.1.4。
步骤3.2:TCP BridgeB执行步骤3.2.1、步骤3.2.2、步骤3.2.3及步骤3.2.4。
步骤3.2.1:TCP BridgeB建立连接通道C2对应的定时器。
步骤3.2.2:TCP BridgeB的发送处理器将切换指令通过连接通道C1发送至TCPBridgeA。
步骤3.2.3:TCP BridgeB的发送处理器开始将新的数据通过连接通道C2发送至TCP BridgeA;其中,对步骤3.2.1、步骤3.2.2及步骤3.2.3的执行顺序不做限定。
步骤3.2.4:TCP BridgeB的接收处理器从TCP BridgeB中的C1缓存库接收数据,并判断是否接收到TCP BridgeA发送的切换指令。
步骤3.2.4.1:若接收到TCP BridgeA发送的切换指令,则关闭连接通道C1,即停止从连接通道C1接收数据,开始从连接通道C2接收数据。
步骤3.2.4.2:若未收到TCP BridgeA发送的切换指令,则继续使用连接通道C1接收数据,即进入步骤3.2.4。
步骤3.3:通道切换完成。
本申请实施例通过在路由设备中部署边界网关,能够实现以下技术效果:1)通过上述的应用托管连接的方式,支持接管所有的应用连接,即便应用有多人在线,也能突破路由设备对于最大并发连接数的限制,有效提升应用的承载设备的带宽利用率;2)通过上述的长连接通道维持的方式,在机构要求路由设备仅支持短连接时,通过切换连接通道,使得应用保持长连接的状态,能够提升用户侧的体验。
下面继续说明本申请实施例提供的跨网络的应用调用装置643实施为软件模块的示例性结构,在一些实施例中,如图2所示,存储在存储器640的跨网络的应用调用装置643中的软件模块可以包括:数据接收模块6431,用于通过路由设备中的第一网关接收第一网络中多个第一应用的数据包;数据切分模块6432,用于对多个第一应用的数据包进行多轮发送,在每一轮发送的过程中,对待发送的多个数据包进行切分处理,将得到的切分数据进行拼接处理以得到重组包,将切分处理后剩余的数据包作为下一轮的待发送的数据包,并通过路由设备中的第一网关与第二网关之间的数据传输通道,将重组包发送至路由设备中的第二网关;数据还原模块6433,用于通过路由设备中的第二网关,将第二网关累计接收到的多个重组包还原为多个第一应用的数据包,并将每个第一应用的数据包发送至第二网络中待调用的第二应用。
在一些实施例中,数据切分模块6432,还用于:按照从先到后的接收顺序,对待发送的多个数据包进行排序得到数据包序列;当数据包序列中的第一个数据包的数据量小于数据量阈值、且第一个数据包和数据包序列中后续的数据包的总数据量大于数据量阈值时,将数据量阈值减去第一个数据包的数据量,得到切分数据量;根据切分数据量对后续的数据包进行切分处理,得到符合切分数据量的切分数据;将第一个数据包及切分数据进行拼接处理以得到重组包。
在一些实施例中,数据切分模块6432,还用于:当数据包序列中的第一个数据包的数据量大于数据量阈值时,将数据量阈值作为切分数据量,对第一个数据包进行切分处理,得到切分数据;根据切分数据构建重组包。
在一些实施例中,数据切分模块6432,还用于:当待发送的多个数据包的总数据量大于数据量阈值时,对待发送的多个数据包中的每个数据包进行切分处理,以使得到的多个切分数据的总数据量等于数据量阈值;将待发送的多个数据包对应的切分数据进行拼接处理以得到重组包。
在一些实施例中,数据切分模块6432,还用于:执行以下任意一种处理,以确定每个数据包的切分数据量:将数据量阈值与数据包的数量进行相除处理,得到每个数据包的切分数据量;获取每个数据包对应的第一应用的优先级,并根据优先级确定每个数据包的切分数据量;其中,切分数据量与优先级正相关;按照从先到后的接收顺序,对待发送的多个数据包进行排序得到数据包序列,并根据数据包在数据包序列中的靠前程度,确定数据包的切分数据量;其中,切分数据量与靠前程度正相关。
在一些实施例中,跨网络的应用调用装置643还包括:拼接模块,用于当待发送的多个数据包的总数据量小于或等于数据量阈值时,将待发送的多个数据包进行拼接处理以得到重组包。
在一些实施例中,跨网络的应用调用装置643还包括:创建模块,用于当路由设备中已创建的数据传输通道满足切换条件时,创建第一网关与第二网关之间的新的数据传输通道;重组包发送模块,用于通过新的数据传输通道,将第一网关生成的重组包发送至第二网关;切换消息发送模块,用于通过已创建的数据传输通道,将第一网关生成的通道切换消息发送至第二网关,以使第二网关从新的数据传输通道中接收重组包。
在一些实施例中,创建模块还用于:执行以下至少一种处理:当已创建的数据传输通道的维持时长达到时长阈值时,确定已创建的数据传输通道满足切换条件;当已创建的数据传输通道中已传输的数据量达到切换数据量阈值时,确定已创建的数据传输通道满足切换条件。
在一些实施例中,跨网络的应用调用装置643还包括:发送完成模块,用于当第一应用的任一数据包已全部发送至第二网关时,通过数据传输通道,向第二网关发送第一应用对应的发送完成消息;继续发送模块,用于当第一网关接收到继续发送消息时,通过数据传输通道,向第二网关发送第一应用的下一个数据包;其中,继续发送消息是第二网关在接收到发送完成消息时,向第一网关发送的。
在一些实施例中,跨网络的应用调用装置643还包括:标识添加模块,用于在针对每个数据包进行切分处理得到的切分数据以及剩余的数据包中,分别添加相同的标识信息,以使第二网关在接收到多个重组包时,将多个重组包中具有相同标识信息的数据进行组合,得到还原出的数据包。
在一些实施例中,数据还原模块6433,还用于:将每个第一应用的数据包,发送至与第一应用存在调用关系的第二应用,以使第二应用对第一应用的数据包进行响应处理,得到响应数据包;跨网络的应用调用装置643还包括:响应数据包接收模块,用于通过第二网关接收第二网络中多个第二应用的响应数据包;响应重组包生成模块,用于对多个第二应用的响应数据包进行多轮发送,在每一轮发送的过程中,对待发送的多个响应数据包进行切分处理,将得到的切分数据进行拼接处理以得到响应重组包,将切分处理后剩余的响应数据包作为下一轮的待发送的响应数据包,并通过数据传输通道,将响应重组包发送至第一网关;响应数据包还原模块,用于通过第一网关,将第一网关累计接收到的多个响应重组包还原为多个第二应用的响应数据包,并将每个第二应用的响应数据包,发送至与第二应用存在调用关系的第一应用。
在一些实施例中,第一网络为公用网络,第二网络为专用网络;或者,第一网络为专用网络,第二网络为公用网络。
本申请实施例提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行本申请实施例上述的跨网络的应用调用方法。
本申请实施例提供一种存储有可执行指令的计算机可读存储介质,其中存储有可执行指令,当可执行指令被处理器执行时,将引起处理器执行本申请实施例提供的方法,例如,如图3A、图3B、图3C、图3D或图3E示出的跨网络的应用调用方法。值得说明的是,计算机包括终端设备和服务器在内的各种计算设备。
在一些实施例中,计算机可读存储介质可以是FRAM、ROM、PROM、EPROM、EEPROM、闪存、磁表面存储器、光盘、或CD-ROM等存储器;也可以是包括上述存储器之一或任意组合的各种设备。
在一些实施例中,可执行指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。
作为示例,可执行指令可以但不一定对应于文件系统中的文件,可以可被存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(HTML,Hyper TextMarkup Language)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。
作为示例,可执行指令可被部署为在一个计算设备上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备上执行。
综上,通过本申请实施例能够实现以下技术效果:
1)将不同第一应用的数据拼接在同一个重组包中发送,能够突破路由设备的最大并发连接数的限制,保证应用之间的调用能够被准确、及时地执行,避免数据丢包、卡顿的情况出现,同时,也可提升应用的承载设备的带宽利用率,使得承载设备的资源能够被高效利用。
2)适用于多种包括第一网络和第二网络的网络架构模式,部署的灵活性强。
3)可以通过先进先出或者同步传输的原则来发送数据,提升了灵活性,对于前者,可以保证最先接收到的数据包能够以最快速度完整地到达第二网关,适用于对时效性要求较高的场景;对于后者,可以通过三种方式来确定每个数据包的切分数据量,进一步提升其灵活性。
4)通过通道切换的方式,将发送数据的工作转移至新的数据传输通道,适用于对数据传输通道的维持时长或对已传输的数据量存在限制的场景,例如对安全性和保密性要求较高的公检法机构。
以上,仅为本申请的实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和范围之内所作的任何修改、等同替换和改进等,均包含在本申请的保护范围之内。
Claims (15)
1.一种跨网络的应用调用方法,其特征在于,所述方法包括:
通过路由设备中的第一网关,接收第一网络中多个第一应用分别对应的数据包;
对所述多个第一应用分别对应的数据包进行多轮发送,在每一轮发送的过程中,根据所述路由设备中的所述第一网关与第二网关之间的数据传输通道的数据量阈值,对待发送的多个数据包中的一个或多个数据包进行切分处理,将得到的切分数据进行拼接处理以得到重组包,将切分处理后剩余的数据包作为下一轮的待发送的数据包,并通过所述数据传输通道将所述重组包发送至所述路由设备中的第二网关;
其中,所述切分数据为一个数据包中的部分数据;
通过所述路由设备中的第二网关,将所述第二网关累计接收到的多个所述重组包还原为所述多个第一应用分别对应的数据包,并将每个所述第一应用对应的数据包发送至第二网络中待调用的第二应用。
2.根据权利要求1所述的应用调用方法,其特征在于,
所述对待发送的多个数据包中的一个数据包进行切分处理,包括:
按照从先到后的接收顺序,对所述待发送的多个数据包进行排序得到数据包序列;
当所述数据包序列中的第一个数据包的数据量小于所述数据量阈值、且所述第一个数据包和所述数据包序列中后续的数据包的总数据量大于所述数据量阈值时,将所述数据量阈值减去所述第一个数据包的数据量,得到切分数据量;
根据所述切分数据量对所述后续的数据包中的一个数据包进行切分处理,得到切分数据;
所述将得到的切分数据进行拼接处理以得到重组包,包括:
当所述第一个数据包与进行切分处理的数据包之间不存在其他的数据包时,将所述第一个数据包及所述切分数据进行拼接处理以得到重组包,以使所述重组包的数据量等于所述数据量阈值;其中,所述切分数据的数据量等于所述切分数据量;
当所述第一个数据包与进行切分处理的数据包之间存在其他的数据包时,将所述第一个数据包、所述其他的数据包以及所述切分数据进行拼接处理以得到重组包,以使所述重组包的数据量等于所述数据量阈值;其中,所述其他的数据包及所述切分数据的总数据量等于所述切分数据量。
3.根据权利要求2所述的应用调用方法,其特征在于,所述按照从先到后的接收顺序,对所述待发送的多个数据包进行排序得到数据包序列之后,还包括:
当所述数据包序列中的第一个数据包的数据量大于所述数据量阈值时,将所述数据量阈值作为切分数据量,对所述第一个数据包进行切分处理,得到切分数据;其中,所述切分数据的数据量等于所述切分数据量;
根据所述切分数据构建重组包。
4.根据权利要求1所述的应用调用方法,其特征在于,
所述对待发送的多个数据包中的多个数据包进行切分处理,包括:
当所述待发送的多个数据包的总数据量大于所述数据量阈值时,对所述待发送的多个数据包中的每个数据包进行切分处理,以使得到的多个切分数据的总数据量等于所述数据量阈值;
所述将得到的切分数据进行拼接处理以得到重组包,包括:
将所述待发送的多个数据包分别对应的切分数据进行拼接处理以得到重组包。
5.根据权利要求4所述的应用调用方法,其特征在于,还包括:
执行以下任意一种处理,以确定每个所述数据包的切分数据量:
将所述数据量阈值与所述数据包的数量进行相除处理,得到每个所述数据包的切分数据量;
获取每个所述数据包对应的第一应用的优先级,并根据所述优先级确定每个所述数据包的切分数据量;其中,所述切分数据量与所述优先级正相关;
按照从先到后的接收顺序,对所述待发送的多个数据包进行排序得到数据包序列,并根据所述数据包在所述数据包序列中的靠前程度,确定所述数据包的切分数据量;其中,所述切分数据量与所述靠前程度正相关;
其中,对每个所述数据包进行切分处理得到的切分数据的数据量等于所述数据包的切分数据量。
6.根据权利要求1所述的应用调用方法,其特征在于,还包括:
当所述待发送的多个数据包的总数据量小于或等于所述数据量阈值时,将所述待发送的多个数据包进行拼接处理以得到重组包。
7.根据权利要求1至6任一项所述的应用调用方法,其特征在于,还包括:
当所述路由设备中已创建的数据传输通道满足切换条件时,创建所述第一网关与所述第二网关之间的新的数据传输通道;
通过所述新的数据传输通道,将所述第一网关生成的重组包发送至所述第二网关;
通过所述已创建的数据传输通道,将所述第一网关生成的通道切换消息发送至所述第二网关,以使所述第二网关从所述新的数据传输通道中接收所述重组包。
8.根据权利要求7所述的应用调用方法,其特征在于,还包括:
执行以下至少一种处理:
当所述已创建的数据传输通道的维持时长达到时长阈值时,确定所述已创建的数据传输通道满足切换条件;
当所述已创建的数据传输通道中已传输的数据量达到切换数据量阈值时,确定所述已创建的数据传输通道满足切换条件。
9.根据权利要求1至6任一项所述的应用调用方法,其特征在于,还包括:
当所述第一应用对应的任一数据包已全部发送至所述第二网关时,通过所述数据传输通道,向所述第二网关发送所述第一应用对应的发送完成消息;
当所述第一网关接收到继续发送消息时,通过所述数据传输通道,向所述第二网关发送所述第一应用对应的下一个数据包;
其中,所述继续发送消息是所述第二网关在接收到所述发送完成消息时,向所述第一网关发送的。
10.根据权利要求1至6任一项所述的应用调用方法,其特征在于,还包括:
在针对每个所述数据包进行切分处理得到的切分数据以及剩余的数据包中,分别添加相同的标识信息,以使所述第二网关在接收到多个所述重组包时,将多个所述重组包中具有相同标识信息的数据进行组合,得到还原出的所述数据包。
11.根据权利要求1至6任一项所述的应用调用方法,其特征在于,
所述将每个所述第一应用对应的数据包发送至第二网络中待调用的第二应用,包括:
将每个所述第一应用对应的数据包发送至与所述第一应用存在调用关系的第二应用,以使所述第二应用对所述第一应用对应的数据包进行响应处理,得到响应数据包;
所述方法还包括:
通过所述第二网关接收所述第二网络中多个第二应用分别对应的响应数据包;
对所述多个第二应用分别对应的响应数据包进行多轮发送,在每一轮发送的过程中,根据所述数据量阈值对待发送的多个响应数据包中的一个或多个响应数据包进行切分处理,将得到的切分数据进行拼接处理以得到响应重组包,将切分处理后剩余的响应数据包作为下一轮的待发送的响应数据包,并通过所述数据传输通道将所述响应重组包发送至所述第一网关;
通过所述第一网关,将所述第一网关累计接收到的多个所述响应重组包还原为所述多个第二应用分别对应的响应数据包,并将每个所述第二应用对应的响应数据包,发送至与所述第二应用存在调用关系的第一应用。
12.根据权利要求1至6任一项所述的应用调用方法,其特征在于,
所述第一网络为公用网络,所述第二网络为专用网络;或者,
所述第一网络为专用网络,所述第二网络为公用网络。
13.一种跨网络的应用调用装置,其特征在于,包括:
数据接收模块,用于通过路由设备中的第一网关,接收第一网络中多个第一应用分别对应的数据包;
数据切分模块,用于对所述多个第一应用分别对应的数据包进行多轮发送,在每一轮发送的过程中,根据所述路由设备中的所述第一网关与第二网关之间的数据传输通道的数据量阈值,对待发送的多个数据包中的一个或多个数据包进行切分处理,将得到的切分数据进行拼接处理以得到重组包,将切分处理后剩余的数据包作为下一轮的待发送的数据包,并通过所述数据传输通道将所述重组包发送至所述路由设备中的第二网关;
其中,所述切分数据为一个数据包中的部分数据;
数据还原模块,用于通过所述路由设备中的第二网关,将所述第二网关累计接收到的多个所述重组包还原为所述多个第一应用分别对应的数据包,并将每个所述第一应用对应的数据包发送至第二网络中待调用的第二应用。
14.一种路由设备,其特征在于,包括:
存储器,用于存储可执行指令;
处理器,用于执行所述存储器中存储的可执行指令时,实现权利要求1至12任一项所述的跨网络的应用调用方法。
15.一种计算机可读存储介质,其特征在于,存储有可执行指令,用于被处理器执行时,实现权利要求1至12任一项所述的跨网络的应用调用方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011098664.8A CN111935017B (zh) | 2020-10-14 | 2020-10-14 | 跨网络的应用调用方法、装置及路由设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011098664.8A CN111935017B (zh) | 2020-10-14 | 2020-10-14 | 跨网络的应用调用方法、装置及路由设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111935017A CN111935017A (zh) | 2020-11-13 |
CN111935017B true CN111935017B (zh) | 2021-01-15 |
Family
ID=73334800
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011098664.8A Active CN111935017B (zh) | 2020-10-14 | 2020-10-14 | 跨网络的应用调用方法、装置及路由设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111935017B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115004654A (zh) * | 2020-11-27 | 2022-09-02 | 西安诺瓦星云科技股份有限公司 | 数据传输方法、装置、通信系统、存储介质和处理器 |
CN112887192B (zh) * | 2021-01-12 | 2023-05-30 | 讯飞智元信息科技有限公司 | 跨网通信方法及其电子设备、计算机可读存储介质 |
US20230208920A1 (en) * | 2021-12-23 | 2023-06-29 | OpenFin Inc. | Bridging communications between applications in different environments |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101753530A (zh) * | 2008-12-18 | 2010-06-23 | 宝山钢铁股份有限公司 | 穿越电力网络物理单向隔离装置的数据传输方法及装置 |
CN103139222A (zh) * | 2013-03-19 | 2013-06-05 | 成都卫士通信息产业股份有限公司 | 一种ipsec隧道数据传输方法及装置 |
CN104363221A (zh) * | 2014-11-10 | 2015-02-18 | 青岛微智慧信息有限公司 | 一种网络安全隔离文件传输控制方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109274605B (zh) * | 2017-07-18 | 2021-06-08 | 中国科学院声学研究所 | 一种适用于分组交换网络的同步传输方法 |
CN111464661B (zh) * | 2020-06-17 | 2020-09-22 | 北京金迅瑞博网络技术有限公司 | 负载均衡方法、装置、代理设备、缓存设备及服务节点 |
-
2020
- 2020-10-14 CN CN202011098664.8A patent/CN111935017B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101753530A (zh) * | 2008-12-18 | 2010-06-23 | 宝山钢铁股份有限公司 | 穿越电力网络物理单向隔离装置的数据传输方法及装置 |
CN103139222A (zh) * | 2013-03-19 | 2013-06-05 | 成都卫士通信息产业股份有限公司 | 一种ipsec隧道数据传输方法及装置 |
CN104363221A (zh) * | 2014-11-10 | 2015-02-18 | 青岛微智慧信息有限公司 | 一种网络安全隔离文件传输控制方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111935017A (zh) | 2020-11-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111935017B (zh) | 跨网络的应用调用方法、装置及路由设备 | |
CN113596191B (zh) | 一种数据处理方法、网元设备以及可读存储介质 | |
CN109088820B (zh) | 一种跨设备链路聚合方法、装置、计算装置和存储介质 | |
CN105610632B (zh) | 一种虚拟网络设备及相关方法 | |
US7756990B2 (en) | Configurable protocol engine | |
CN110351342A (zh) | 业务指令处理方法、装置、计算机设备和存储介质 | |
US10148565B2 (en) | OPENFLOW communication method and system, controller, and service gateway | |
US11689646B2 (en) | Network packet processing method and apparatus and network server | |
CN114244906B (zh) | 数据流量分流方法、装置、设备及介质 | |
CN111490963B (zh) | 基于quic协议栈的数据处理方法、系统、设备及存储介质 | |
CN112291298A (zh) | 异构系统的数据传输方法、装置、计算机设备和存储介质 | |
CN110855794A (zh) | 一种基于TCP协议的数据库Socket网关实现方法及装置 | |
CN114124929A (zh) | 跨网络的数据处理方法和装置 | |
CN116633934A (zh) | 负载均衡方法、装置、节点及存储介质 | |
CN112437153A (zh) | 一种设备联动处理方法及装置 | |
CN108809549B (zh) | 一种传输数据的方法及设备 | |
CN114125983A (zh) | 移动网络用户面的路由方法、会话管理实体、系统和介质 | |
CN111356182A (zh) | 一种资源的调度、处理方法及装置 | |
CN111901395A (zh) | 多集群切换方法及装置 | |
CN109526032B (zh) | 修改网络切片实例的方法及装置 | |
CN113746851B (zh) | 一种支持实时解析grpc请求的代理系统和方法 | |
CN115529631A (zh) | 通信系统、方法、装置、第一设备及存储介质 | |
CN113641518A (zh) | 服务调用方法、装置及存储介质 | |
CN114189893A (zh) | O-ran能力开放方法、通信系统、装置及存储介质 | |
CN113535402A (zh) | 基于5g mec的负载均衡处理方法、装置及电子设备 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |