CN111327718A - 一种服务调用方法、装置、设备及计算机可读存储介质 - Google Patents

一种服务调用方法、装置、设备及计算机可读存储介质 Download PDF

Info

Publication number
CN111327718A
CN111327718A CN202010082648.3A CN202010082648A CN111327718A CN 111327718 A CN111327718 A CN 111327718A CN 202010082648 A CN202010082648 A CN 202010082648A CN 111327718 A CN111327718 A CN 111327718A
Authority
CN
China
Prior art keywords
application
floating
port
address
mapping relation
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.)
Granted
Application number
CN202010082648.3A
Other languages
English (en)
Other versions
CN111327718B (zh
Inventor
吉敏
马亮亮
鲁岩
曾飞宇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Lenovo Beijing Ltd
Original Assignee
Lenovo Beijing Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Lenovo Beijing Ltd filed Critical Lenovo Beijing Ltd
Priority to CN202010082648.3A priority Critical patent/CN111327718B/zh
Publication of CN111327718A publication Critical patent/CN111327718A/zh
Application granted granted Critical
Publication of CN111327718B publication Critical patent/CN111327718B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/2517Translation of Internet protocol [IP] addresses using port numbers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/2514Translation of Internet protocol [IP] addresses between local and global IP addresses
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/255Maintenance or indexing of mapping tables

Abstract

本申请实施例提供一种服务调用方法、装置、设备及计算机可读存储介质,其中,方法包括:当第二应用调用第一应用的服务实现服务调用时,获取所述第一应用的协议地址和端口;从预设的映射关系列表中查找与所述协议地址具有映射关系的浮动地址、和与所述端口具有映射关系的浮动端口;采用查找出的所述浮动地址和浮动端口,建立第一应用与第二应用之间的网络连接,实现所述第二应用与所述第一应用之间的服务调用。

Description

一种服务调用方法、装置、设备及计算机可读存储介质
技术领域
本申请涉及通信技术领域,涉及但不限于一种服务调用方法、装置、设备及计算机可读存储介质。
背景技术
当前,由于互联网技术的高速发展,网际互联协议(Internet Protocol,IP)地址资源急剧短缺,因此,许多应用在防火墙之后以内网的地址工作。当应用需要对外提供服务时,网关会给应用分配一个浮动IP(Floating IP)和浮动端口(Floating port),以便外部设备的访问;并且,网关会对应用的内部IP、内部端口、浮动IP和浮动端口做网络地址转换(Network Address Translation,NAT)。然而,有的应用在报文的有效负载(Payload)内会携带其内部IP和内部端口,这种报文在经过网关的NAT转换时只会转换报头的IP和端口,payload内部的IP和端口不会被转换,这将导致通信故障,影响应用的正常运行。
相关技术中,通常使用应用层地址网关(Application Level Gateway,ALG),针对不同的应用,解析对应的报文,对报文payload内部中的IP和端口进行地址转换。但是,该方案针对不同的应用协议,需要提前设置不同的应用层地址网关,每出现一种新的协议,就需要针对性的开发其对应的报文解析规则;并且,应用层地址网关对报文需要做深层解析,增加了服务的响应时间。更重要的是,对于报文payload格式不固定或是报文payload经过编码或加密的应用(比如说区块链、点对点P2P)来说,上述应用网关无法工作。
发明内容
有鉴于此,本申请实施例提供一种服务调用方法、装置、设备及计算机可读存储介质。
本申请的技术方案是这样实现的:
第一方面,本申请提供一种服务调用方法,包括:
当第二应用调用第一应用实现服务调用时,获取所述第一应用的协议地址和端口;
从预设的映射关系列表中查找与所述协议地址具有映射关系的浮动地址、和与所述端口具有映射关系的浮动端口;
采用查找出的所述浮动地址和所述浮动端口,建立所述第一应用与所述第二应用之间的网络连接,实现所述第二应用与所述第一应用之间的服务调用。
第二方面,本申请提供一种服务调用装置,包括:
第一获取模块,当第二应用调用第一应用实现服务调用时,获取所述第一应用的协议地址和端口;
查找模块,用于从预设的映射关系列表中查找与所述协议地址具有映射关系的浮动地址、和与所述端口具有映射关系的浮动端口;
网络连接模块,用于采用查找出的所述浮动地址和所述浮动端口,建立所述第一应用与所述第二应用之间的网络连接,实现所述第二应用与所述第一应用之间的服务调用。
第三方面,本申请提供一种服务调用设备,包括:
存储器,用于存储可执行指令;处理器,用于执行所述存储器中存储的可执行指令时,实现上述的方法。
第四方面,本申请提供一种计算机可读存储介质,其特征在于,存储有可执行指令,用于引起处理器执行时,实现上述的方法。
本申请实施例提供的服务调用方法、装置、设备及计算机可读存储介质,当第二应用调用第一应用的服务实现服务调用时,由于可以从预设的映射关系列表中查找与第一应用的协议地址具有映射关系的浮动地址、和与第一应用的端口具有映射关系的浮动端口,如此,便可采用查找出的浮动地址和浮动端口,建立第一应用与第二应用之间的网络连接,这样,既可以实现所述第二应用与所述第一应用之间的服务调用,又可以缩短整个应用的服务响应时间。
附图说明
在附图(其不一定是按比例绘制的)中,相似的附图标记可在不同的视图中描述相似的部件。具有不同字母后缀的相似附图标记可表示相似部件的不同示例。附图以示例而非限制的方式大体示出了本文中所讨论的各个实施例。
图1A为本申请实施例提供的服务调用方法可选的流程示意图;
图1B为本申请实施例提供的服务调用方法可选的应用场景示意图;
图2为本申请实施例提供的服务调用方法可选的流程示意图;
图3为本申请实施例提供的服务调用方法可选的流程示意图;
图4为本申请实施例提供的服务调用方法可选的流程示意图;
图5为本申请实施例提供的服务调用装置的一个可选的示意图;
图6为本申请实施例提供的服务调用设备的一个可选的组成结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
实施例一:
本申请实施例提供一种服务调用方法,本实施例的服务调用方法所实现的功能可以通过服务调用设备中的处理器调用程序代码来实现,当然程序代码可以保存在计算机可读存储介质中,可见,该服务调用设备至少包括处理器和计算机可读存储介质。
图1A为本申请实施例提供的服务调用方法可选的流程示意图,如图1A所示,所述方法包括以下步骤:
步骤S101、当第二应用调用第一应用实现服务调用时,获取所述第一应用的协议地址和端口。
这里,第二应用和第一应用可以是终端上的任意一种应用,例如:浏览器、地图、游戏等应用软件。所述当第二应用调用第一应用实现服务调用,指的是第二应用可以访问第一应用,以实现第一应用或第二应用的某些功能。
当第二应用调用第一应用实现服务调用时,首先,获取所述第一应用的协议地址和端口,第一应用的协议地址是指承载第一应用的终端的IP地址。
值得注意的是,本实施例并不限定第二应用访问第一应用,第一应用也可以访问第二应用;当实现第一应用调用第二应用实现服务调用时,则首先应该获取第二应用的协议地址和端口,也就是说,第一应用与第二应用之间的服务调用可以使相互的。
步骤S102、从预设的映射关系列表中查找与所述协议地址具有映射关系的浮动地址、和与所述端口具有映射关系的浮动端口。
这里,与所述协议地址具有映射关系的浮动地址是指可以与局域网外部建立连接的网络地址;与所述端口具有映射关系的浮动端口是指可以与局域网外部建立连接的端口。
值得注意的是,协议地址和浮动地址的映射关系可以是一对一、多对一或者一对多;端口和浮动端口的映射关系也可以是一对一、多对一或者一对多;其中,协议地址和浮动地址的映射关系存储在映射关系列表中,端口和浮动端口的映射关系也存储在映射关系列表中。
步骤S103、采用查找出的所述浮动地址和所述浮动端口,建立所述第一应用与所述第二应用之间的网络连接,实现所述第二应用与所述第一应用之间的服务调用。
本申请实施例中,在查找出浮动地址和浮动端口之后,采用所述浮动地址和浮动端口可以实现第一应用在局域网外部的网络连接,进而可以实现第二应用对第一应用的访问,从而实现了第二应用与第一应用之间的服务调用。
图1B为本申请实施例提供的服务调用方法的应用场景示意图,如图1B所示,服务调用系统10中包括第一终端、第二终端、网络和服务器,其中,第一终端上运行有第一应用(图1B中以第一浏览器110-1为例进行说明),第二终端上运行有第二应用(图1B中以第二浏览器110-2为例进行说明)。当第一终端100-1上的第一浏览器110-1想要访问第二终端100-2上的第二浏览器110-2时,则可以采用本申请实施例提供的方法,服务器300通过网络200获取第二浏览器110-2的协议地址和端口;在预设的预设关系列表中,查找出与第二浏览器110-2的协议地址具有映射关系的浮动地址和与第二浏览器110-2的端口具有映射关系的浮动端口;采用查找出的浮动地址和浮动端口,建立所述第一浏览器110-1与第二浏览器110-2之间的网络连接,实现所述第一浏览器110-1与第二浏览器110-2之间的服务调用,例如,在第一浏览器110-1中实现打开第二浏览器110-2的页面加载服务,或者在第一浏览器110-1中实现对第二浏览器110-2中的文本的编辑服务。
本申请实施例提供的服务调用方法、装置、设备及计算机可读存储介质,当第二应用调用第一应用的服务实现服务调用时,由于可以从预设的映射关系列表中查找与第一应用的协议地址具有映射关系的浮动地址、和与第一应用的端口具有映射关系的浮动端口,如此,便可采用查找出的浮动地址和浮动端口,建立第一应用与第二应用之间的网络连接,这样,既可以实现所述第二应用与所述第一应用之间的服务调用,又可以缩短整个应用的服务响应时间。
实施例二
本申请实施例提供一种服务调用方法,本实施例的服务调用方法所实现的功能可以通过服务调用设备中的处理器调用程序代码来实现,当然程序代码可以保存在计算机可读存储介质中,可见,该服务调用设备至少包括处理器和计算机可读存储介质。
图2为本申请实施例提供的服务调用方法可选的流程示意图,如图2所示,所述方法包括以下步骤:
步骤S201、获取应用的协议地址、应用的浮动地址、应用的端口和应用的浮动端口。
本申请实施例中,获取应用的协议地址、应用的浮动地址、应用的端口和应用的浮动端口中的应用是指终端上的所用应用软件,例如:浏览器、地图、支付宝等软件,本实施例不做具体限定。
步骤S202、确定所述应用的协议地址与所述应用的浮动地址之间的第一映射关系。
本申请实施例中,所述应用的浮动地址由网关分配。
步骤S203、确定所述应用的端口与所述应用的浮动端口之间的第二映射关系。
本申请实施例中,所述应用的浮动端口由网关分配。
步骤S204、将所述第一映射关系和所述第二映射关系,存储至预设的映射关系列表中。
本申请实施例中,预设的映射关系列表存储在应用网关内部,预设的映射关系列表中保存着网关内所有应用的协议地址、应用的浮动地址、应用的端口和应用的浮动端口之间的映射关系。
步骤S205、当第二应用调用第一应用实现服务调用时,获取所述第一应用的协议地址和端口。
步骤S206、从预设的映射关系列表中查找与所述协议地址具有映射关系的浮动地址、和与所述端口具有映射关系的浮动端口。
步骤S205和步骤S206与上述实施例中的步骤S101和步骤S102所实现的过程和实现的功能相同。
步骤S207、获取所述第一应用与所述第二应用建立网络连接时的报文。
本申请实施例中,当第一应用与第二应用建立网络连接时,会产生一系列包含源地址、源端口、数据、版本、用户协议、标志、目标地址、目标端口等信息,这里所有的信息封装起来的就是报文。
步骤S208、将所述报文中的协议地址和端口替换为所述浮动地址和浮动端口,得到替换后的报文。
这里,所述报文中的协议地址和端口指的是报文中的源地址和源端口,将所述报文中的协议地址和端口替换为所述浮动地址和浮动端口指的是将所述报文中的源地址和源端口替换为浮动地址和浮动端口。
步骤S209、根据所述替换后的报文,建立所述第二应用与所述第一应用之间的网络连接。
由于替换后的报文中的源地址和源端口已经被替换成为浮动端口和浮动地址,因此,该报文可以实现应用之间的数据传输和信息交流。
本申请实施例提供的服务调用方法,可以通过获取应用的协议地址、应用的浮动地址、应用的端口和应用的浮动端口,并将应用的协议地址与浮动地址之间的第一映射关系、应用的端口与浮动端口之间的第二映射关系别存储至预设的映射关系列表中,从而,在第二应用调用第一应用实现服务调用时,由于可以从预设的映射关系列表中查找出与第一应用的协议地址和端口对应的浮动地址和浮动端口,并替换报文中的源地址和源端口,如此,便可以根据替换后的报文实现第一应用与第二应用的网络连接,这样,既实现了第一应用与第二应用之间的服务调用,又节省了整个应用的服务响应时间。
实施例三
本申请实施例提供一种服务调用方法,本实施例的服务调用方法所实现的功能可以通过服务调用设备中的处理器调用程序代码来实现,当然程序代码可以保存在计算机可读存储介质中,可见,该服务调用设备至少包括处理器和计算机可读存储介质。
图3为本申请实施例提供的服务调用方法可选的流程示意图,如图3所示,所述方法包括以下步骤:
步骤S301,当第二应用调用第一应用实现服务调用时,获取所述第一应用的协议地址和端口。
步骤S302,从预设的映射关系列表中查找与所述协议地址和端口具有映射关系的浮动地址和浮动端口。
步骤S303,判断所述预设的映射关系列表中是否存在与所述协议地址和端口具有映射关系的浮动地址和浮动端口。
当判断结果为是时,执行步骤S304,当判断结果为否时,执行步骤S305。
步骤S304,采用查找出的所述浮动地址和所述浮动端口,建立所述第一应用与所述第二应用之间的网络连接,实现所述第二应用与所述第一应用之间的服务调用。
步骤S301至步骤S304与上述实施例中的步骤S101至步骤S103所实现的过程和实现的功能相同。
步骤S305,当所述预设的映射关系列表中不存在与所述第一应用的协议地址具有映射关系的浮动地址,和/或,当所述预设的映射关系列表中不存在与所述第一应用的端口具有映射关系的浮动端口时,获取所述第一应用的临时浮动地址和临时浮动端口。
这里,当所述预设的映射关系列表中不存在与所述第一应用的协议地址和端口具有映射关系的浮动地址和浮动端口包含以下三种情况:
第一种:预设的映射关系列表中不存在与所述第一应用的协议地址对应的浮动地址。
第二种:预设的映射关系列表中不存在与所述第一应用的端口对应的浮动端口。
第三种:预设的映射关系列表中既不存在与所述第一应用的协议地址对应的浮动地址,也不存在与所述第一应用的端口对应的浮动端口。
本申请实施例中,当预设的映射关系列表中不存在对应于第一应用的协议地址和端口的浮动地址和浮动端口时,网关会给应用分配一个临时的浮动地址和临时的浮动端口,这个临时的浮动地址和浮动端口与所述浮动地址和浮动端口具有完全相同的功能和作用。
步骤S306,在所述预设的映射关系列表中建立所述第一应用的协议地址与所述临时浮动地址的第一临时映射关系,并建立所述第一应用的端口与所述临时浮动端口之间的第二临时映射关系。
步骤S307,从所述预设的映射关系列表中查找与所述协议地址具有所述第一临时映射关系的临时浮动地址、和与所述端口具有第二临时映射关系的临时浮动端口。
步骤S308,采用所述临时浮动地址和所述临时浮动端口建立所述第一应用与所述第二应用之间的网络连接,实现所述第二应用与所述第一应用之间的服务调用。
这里,采用临时浮动地址和临时浮动端口建立所述第一应用与所述第二应用之间的网络连接是指,将第一应用与第二应用的建立网络连接时的报文中的源地址和源端口替换为临时浮动地址和临时浮动端口,如此,便可实现第一应用与第二应用的数据传输和信息交流。
步骤S309,当所述第一应用与所述第二应用断开网络连接时,删除所述映射关系列表中的所述第一临时映射关系和所述第二临时映射关系。
当使用临时浮动地址和临时浮动端口建立第一应用与第二应用之间的网络连接实现第二应用调用第一应用的服务后,可调用删除端口模块删除映射关系列表中的第一临时映射关系和第二临时映射关系。
本申请实施例提供的服务调用方法、装置、设备及计算机可读存储介质,当第二应用调用第一应用的服务时,从预设的映射关系列表中查找与第一应用的协议地址和端口对应的浮动地址和浮动端口,当预设的映射关系列表中不存在与第一应用的协议地址和端口对应的浮动地址和浮动端口时,可以获取临时浮动地址和临时浮动端口,由于临时浮动地址和临时浮动端口的存在,便可实现应用之间的网络连接,这样,既实现第一应用与第二应用之间的服务调用,又节省了整个应用的服务响应时间。
实施例四
本申请实施例提供一种服务调用方法,本实施例的服务调用方法所实现的功能可以通过服务调用设备中的处理器调用程序代码来实现,当然程序代码可以保存在计算机可读存储介质中,可见,该服务调用设备至少包括处理器和计算机可读存储介质。
图4为本申请实施例提供的服务调用方法可选的流程示意图,如图4所示,所述方法包括以下步骤:
步骤S401,当第二应用调用第一应用实现服务调用时,获取所述第一应用的协议地址和端口。
步骤S402,从预设的映射关系列表中查找与所述协议地址和端口具有映射关系的浮动地址和浮动端口。
步骤S403,判断所述预设的映射关系列表中是否存在与所述协议地址和端口具有映射关系的浮动地址和浮动端口。
当判断结果为是时,执行步骤S404,当判断结果为否时,执行步骤S405。
步骤S404,采用查找出的所述浮动地址和所述浮动端口,建立所述第一应用与所述第二应用之间的网络连接,实现所述第二应用与所述第一应用之间的服务调用。
步骤S401至步骤S404与上述实施例中的步骤S101至步骤S103所实现的过程和实现的功能相同。
步骤S405,当所述映射关系列表中不存在与所述第一应用的协议地址具有映射关系的浮动地址,且所述第一应用不具有临时浮动地址时,禁止建立所述第一应用与所述第二应用之间的网络连接。
本申请实施例中,当预设的映射关系列表中不存在与第一应用的协议地址具有对应关系的浮动地址,且第一应用的不具备临时浮动地址时,则网关默认该第一应用不能与其他应用进行局域网外部的网络连接,此时,服务器无法获取与第一应用协议地址和端口对应的浮动地址和浮动端口,因此,无法替换第一应用与第二应用建立网络连接时的报文中的源地址和源端口,所以,第一应用与第二应用无法建立网络连接,也就是说,第一应用不能实现与第二应用进行服务调用。
本申请实施例提供的服务调用方法,当第二应用调用第一应用实现服务调用时,从预设的映射关系列表中查找与所述协议地址具有映射关系的浮动地址、和与所述端口具有映射关系的浮动端口,当所述映射关系列表中不存在与所述第一应用的协议地址具有映射关系的浮动地址,且所述第一应用不具有临时浮动地址时,则不能实现第一应用与第二应用进行调用,如此,本申请实施例的方法既适用于需要实现服务调用功能的场景,又适用于不需要实现服务调用功能的场景,具有普适性。
实施例五:
本申请实施例提供了一种代替应用网关的方法,在应用网关上,部署一个通用的地址转换模块,通用的地址转换模块中存着网关内所有浮动IP及浮动端口与内部IP及内部端口的对应关系,并且开放获取浮动IP接口(get_floating_ip_port)、添加浮动IP接口(set_floating_port)和删除浮动IP接口(del_floating_port)。其中,接口get_floating_ip_port可以实现网关后的机器获取自己的内部IP及内部端口对应的浮动IP和浮动端口;接口set_floating_port可以实现让有权限的机器添加对内部端口的临时映射关系;接口del_floating_port)可以实现让机器删除某个端口的临时映射关系。
若机器或运行于机器上的虚拟机器或容器有使用浮动IP的可能时,则在该机器或运行于机器上的虚拟机器或容器的内核里建立套接字(socket)连接处,增加一个流程,在每次需要获取内部IP和内部端口建立socket连接时,首先通过接口get_floating_ip_port获取自身对应的浮动IP和浮动端口,并将浮动IP及浮动端口代替原本的内部IP和内部端口封入报文中。如果这个内部端口是一个临时开放的端口,网关内预先没有设置浮动IP及浮动端口与内部IP及内部端口的映射关系,则应用通过接口set_floating_port将这个临时内部端口映射为一个外部端口,当内部的临时端口关闭时通过接口del_floating_port将临时端口的映射关系删除。
若应用没有设置浮动IP,或是没有权限,则网关仍然返回内部IP及内部端口,与原流程相同。
举例来说,本申请实施例在网关处增加一个地址转换通知模块,该模块内保存着该平台上所有浮动IP与内部IP的对应关系一个IP地址转换表,如下表1所示:
表1浮动IP与内部IP地址转化表
地址转换ID 内部IP 内部端口 浮动IP 浮动port
1 172.16.0.10 all 10.0.0.10 all
2 172.16.0.11 21 10.0.0.11 10021
3 172.16.0.12 all 10.0.0.11 10022
4 …… ……
在一些实施例中,通用的地址转换模块开放的get_floating_ip_port接口逻辑如下:
get_floating_ip_port(内部IP,内部端口):
if(报文源IP==内部IP):
if映射关系存在:
return(浮动IP,浮动端口);
else:
return无映射关系;
else:
return无权限。
举例来说,一个应用提供超文本传输协议(Hyper Text Transfer Protocol,HTTP)服务,应用的内部IP为172.16.0.100,在网关上设置的浮动IP为10.0.0.100,当应用提供的网页内需要嵌入一个本机IP的链接时,原本的方案中,应用获取本机的IP是172.16.0.100,网页中的链接也为172.16.0.100,应用网关是无法修改网页内的内容的,这样用户在点击172.16.0.100后就会发现网络不可达,或者是该地址不是目标地址。采用本方案后,网关上设置浮动IP的映射关系如下表2所示:
表2浮动IP与内部IP地址转化表
地址转换ID 内部IP 内部端口 浮动IP 浮动端口
1 172.16.0.100 80 10.0.0.100 8080
如此,当http服务需要获取本机IP时,向网关请求get_floating_ip_port(172.16.0.100,80),网关返回给浮动IP(10.0.0.100,8080),应用在网页中嵌入10.0.0.100的地址。
在一些实施例中,通用的地址转换模块开放的set_floating_ip_port接口逻辑如下:
set_floating_port(内部IP,内部端口):
if(报文源IP==内部IP):
查表获取一个可用的浮动IP及浮动端口;
添加(内部IP,内部端口,浮动IP,浮动端口)到映射列表;
return(浮动IP,浮动端口);
else:
return无权限。
在一些实施例中,通用的地址转换模块开放的del_floating_ip_port接口逻辑如下:
del_floating_port(内部IP,内部端口,浮动IP,浮动端口):
if(报文源IP==内部IP&&映射关系存在):
删除映射关系;
Else:
return无权限。
举例来说,一个区块链应用部署在不同企业内网中,内网中的一个节点A的内部IP为192.168.100.100,当节点A与peer节点通信时,协商出一个临时端口50000,本申请实施方案中,当节点A需要开启socket通信时,节点A首先会调用get_floating_ip_port(192.168.100.100,50000)接口给网关,网关查询映射关系后告知节点A无映射关系,节点A调用set_floating_port(192.168.100.100,50000)接口来设置临时端口映射,网关获取一个可用的浮动IP(121.1.1.100,50000)后,返回浮动IP(121.1.1.100,50000)给节点A,节点A将这个地址写入报文中传给peer节点,然后,peer节点通过(121.1.1.100,50000)和节点A通信;当socket连接关闭时,节点A调用del_floating_port(192.168.100.100,50000,121.1.1.100,50000)接口删除临时端口的映射关系。
采用本实施例的技术方案后,一个网关处只需部署增加一个通用的地址转换通知模块,即可处理所有报文内部带有IP信息的应用协议,不需要针对每种应用开发一个对应的应用层地址网关。而且,本实施例的方案不对报文做应用层的深度解析,只在连接建立前让应用服务端发出两个简单的请求信息,不对之后的连接报文做额外的深度处理,节省了整个应用的响应时间。
需要说明的是,本申请实施例的方案可以不涉及应用层的修改,仅对网关和机器的内核代码进行修改。对于没有应用本申请实施例的网关或内核,本申请实施例同样兼容。
实施例六
本实施例提供一种服务调用装置,图5为本申请实施例提供的服务调用装置的一个可选的示意图,如图5所示,所述服务调用装置50包括:
第一获取模块51,用于当第二应用调用第一应用实现服务调用时,获取所述第一应用的协议地址和端口。
查找模块52,用于从预设的映射关系列表中查找与所述协议地址具有映射关系的浮动地址、和与所述端口具有映射关系的浮动端口。
网络连接模块53,用于采用查找出的所述浮动地址和所述浮动端口,建立所述第一应用与所述第二应用之间的网络连接,实现所述第二应用与所述第一应用之间的服务调用。
在一些实施例中,所述装置还包括:第二获取模块,用于获取应用的协议地址、应用的浮动地址、应用的端口和应用的浮动端口;第一确定模块,用于确定所述应用的协议地址与所述应用的浮动地址之间的第一映射关系;第二确定模块,用于确定所述应用的端口与所述应用的浮动端口之间的第二映射关系;存储模块,用于将所述第一映射关系和所述第二映射关系,存储至所述预设的映射关系列表中。
在一些实施例中,所述网络连接模块还用于:获取所述第一应用与所述第二应用建立网络连接时的报文;将所述报文中的协议地址和端口替换为所述浮动地址和浮动端口,得到替换后的报文;根据所述替换后的报文,建立所述第二应用与所述第一应用之间的网络连接。
在一些实施例中,所述网络连接模块还用于:当所述预设的映射关系列表中不存在与所述第一应用的协议地址具有映射关系的浮动地址,和/或,当所述预设的映射关系列表中不存在与所述第一应用的端口具有映射关系的浮动端口时,获取所述第一应用的临时浮动地址和临时浮动端口;采用所述临时浮动地址和所述临时浮动端口建立所述第一应用与所述第二应用之间的网络连接,实现所述第二应用与所述第一应用之间的服务调用。
在一些实施例中,所述装置还包括:建立模块,用于在所述预设的映射关系列表中建立所述第一应用的协议地址与所述临时浮动地址的第一临时映射关系,并建立所述第一应用的端口与所述临时浮动端口之间的第二临时映射关系;对应地,所述查找模块还用于:所述从预设的映射关系列表中查找与所述协议地址具有映射关系的浮动地址、和与所述端口具有映射关系的浮动端口,包括:从所述预设的映射关系列表中查找与所述协议地址具有所述第一临时映射关系的临时浮动地址、和与所述端口具有第二临时映射关系的临时浮动端口。
在一些实施例中,所述装置还包括:删除模块,用于当所述第一应用与所述第二应用断开网络连接时,删除所述映射关系列表中的所述第一临时映射关系和所述第二临时映射关系。
在一些实施例中,所述装置还包括:处理模块,用于当所述映射关系列表中不存在与所述第一应用的协议地址具有映射关系的浮动地址,且所述第一应用不具有临时浮动地址时,禁止建立所述第一应用与所述第二应用之间的网络连接。
需要说明的是,本申请实施例装置的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果,因此不做赘述。对于本装置实施例中未披露的技术细节,请参照本申请方法实施例的描述而理解。
实施例七
需要说明的是,本申请实施例中,如果以软件功能模块的形式实现上述的服务调用方法,并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个计算机可读存储介质中,包括若干指令用以使得一台终端执行本发明各个实施例所述方法的全部或部分。而前述的计算机可读存储介质包括:U盘、移动硬盘、只读存储器(Read Only Memory,ROM)、磁碟或者光盘等各种可以存储程序代码的介质。这样,本发明实施例不限制于任何特定的硬件和软件结合。
对应的,本申请实施例提供一种服务调用设备,通过所述服务调用设备的控制设备控制应用之间进行服务调用。图6为本申请实施例提供的服务调用设备的一个可选的组成结构示意图,如图6所示,所述服务调用设备的60至少包括:处理器61、通信接口62和配置为存储可执行指令的计算机可读存储介质63,其中:处理器61通常控制服务调用设备60的总体操作。
通信接口62可以使服务调用设备通过网络与其他终端或服务器通信。
计算机可读存储介质63配置为存储由处理器61可执行的指令和应用,还可以缓存待处理器61和服务调用设备60中各模块待处理或已处理的数据,可以通过闪存(FLASH)或随机访问存储器(Random Access Memory,RAM)实现。
应理解,说明书通篇中提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本发明的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。应理解,在本发明的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元;既可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的计算机可读存储介质包括:移动存储设备、只读存储器、磁碟或者光盘等各种可以存储程序代码的介质。或者,本发明上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个计算机可读存储介质中,包括若干指令用以使得一台终端执行本发明各个实施例所述方法的全部或部分。而前述的计算机可读存储介质包括:移动存储设备、ROM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元,即可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
另外,在本申请各实施例中的各功能单元可以全部集成在一个处理模块中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的计算机可读存储介质包括:移动存储设备、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
本申请所提供的几个方法实施例中所揭露的方法,在不冲突的情况下可以任意组合,得到新的方法实施例。
本申请所提供的几个产品实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的产品实施例。
本申请所提供的几个方法或设备实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的方法实施例或设备实施例。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

Claims (10)

1.一种服务调用方法,包括:
当第二应用调用第一应用实现服务调用时,获取所述第一应用的协议地址和端口;
从预设的映射关系列表中查找与所述协议地址具有映射关系的浮动地址、和与所述端口具有映射关系的浮动端口;
采用查找出的所述浮动地址和所述浮动端口,建立所述第一应用与所述第二应用之间的网络连接,实现所述第二应用与所述第一应用之间的服务调用。
2.根据权利要求1所述的方法,还包括:
获取应用的协议地址、应用的浮动地址、应用的端口和应用的浮动端口;
确定所述应用的协议地址与所述应用的浮动地址之间的第一映射关系;
确定所述应用的端口与所述应用的浮动端口之间的第二映射关系;
将所述第一映射关系和所述第二映射关系,存储至所述预设的映射关系列表中。
3.根据权利要求1所述的方法,其中,所述采用查找出的所述浮动地址和所述浮动端口,建立所述第二应用与所述第一应用之间的网络连接,包括:
获取所述第一应用与所述第二应用建立网络连接时的报文;
将所述报文中的协议地址和端口替换为所述浮动地址和浮动端口,得到替换后的报文;
根据所述替换后的报文,建立所述第二应用与所述第一应用之间的网络连接。
4.根据权利要求1所述的方法,所述采用查找出的所述浮动地址和所述浮动端口,建立所述第一应用与所述第二应用之间的网络连接,实现所述第二应用与所述第一应用之间的服务调用,包括:
当所述预设的映射关系列表中不存在与所述第一应用的协议地址具有映射关系的浮动地址,和/或,当所述预设的映射关系列表中不存在与所述第一应用的端口具有映射关系的浮动端口时,获取所述第一应用的临时浮动地址和临时浮动端口;
采用所述临时浮动地址和所述临时浮动端口建立所述第一应用与所述第二应用之间的网络连接,实现所述第二应用与所述第一应用之间的服务调用。
5.根据权利要求4所述的方法,还包括:
在所述预设的映射关系列表中建立所述第一应用的协议地址与所述临时浮动地址的第一临时映射关系,并建立所述第一应用的端口与所述临时浮动端口之间的第二临时映射关系;
对应地,所述从预设的映射关系列表中查找与所述协议地址具有映射关系的浮动地址、和与所述端口具有映射关系的浮动端口,包括:
从所述预设的映射关系列表中查找与所述协议地址具有所述第一临时映射关系的临时浮动地址、和与所述端口具有第二临时映射关系的临时浮动端口。
6.根据权利要求5所述的方法,还包括:
当所述第一应用与所述第二应用断开网络连接时,删除所述映射关系列表中的所述第一临时映射关系和所述第二临时映射关系。
7.根据权利要求4所述的方法,还包括:
当所述映射关系列表中不存在与所述第一应用的协议地址具有映射关系的浮动地址,且所述第一应用不具有临时浮动地址时,禁止建立所述第一应用与所述第二应用之间的网络连接。
8.一种服务调用装置,包括:
第一获取模块,用于当第二应用调用第一应用实现服务调用时,获取所述第一应用的协议地址和端口;
查找模块,用于从预设的映射关系列表中查找与所述协议地址具有映射关系的浮动地址、和与所述端口具有映射关系的浮动端口;
网络连接模块,用于采用查找出的所述浮动地址和所述浮动端口,建立所述第一应用与所述第二应用之间的网络连接,实现所述第二应用与所述第一应用之间的服务调用。
9.一种服务调用设备,包括:
存储器,用于存储可执行指令;处理器,用于执行所述存储器中存储的可执行指令时,实现权利要求1至7任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,存储有可执行指令,用于引起处理器执行时,实现权利要求1至7任一项所述的方法。
CN202010082648.3A 2020-02-07 2020-02-07 一种服务调用方法、装置、设备及计算机可读存储介质 Active CN111327718B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010082648.3A CN111327718B (zh) 2020-02-07 2020-02-07 一种服务调用方法、装置、设备及计算机可读存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010082648.3A CN111327718B (zh) 2020-02-07 2020-02-07 一种服务调用方法、装置、设备及计算机可读存储介质

Publications (2)

Publication Number Publication Date
CN111327718A true CN111327718A (zh) 2020-06-23
CN111327718B CN111327718B (zh) 2022-08-19

Family

ID=71170937

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010082648.3A Active CN111327718B (zh) 2020-02-07 2020-02-07 一种服务调用方法、装置、设备及计算机可读存储介质

Country Status (1)

Country Link
CN (1) CN111327718B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114363387A (zh) * 2021-12-31 2022-04-15 北京沃东天骏信息技术有限公司 应用拉活方法、装置、电子设备及存储介质

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101252605A (zh) * 2008-04-03 2008-08-27 杭州华三通信技术有限公司 穿越网络地址转换设备的多媒体通信方法、系统及装置
CN102204191A (zh) * 2011-05-31 2011-09-28 华为技术有限公司 一种报文转发方法和网间路由装置
US20110268117A1 (en) * 2000-12-28 2011-11-03 Davis Arlin R Lan emulation over infiniband fabric apparatus, systems, and methods
CN103581350A (zh) * 2012-07-25 2014-02-12 中国电信股份有限公司 跨越nat发布互联网服务的方法、终端、设备和系统
CN102984068B (zh) * 2012-11-23 2016-08-03 汉柏科技有限公司 实现报文穿越网络地址转换设备的方法
CN106878482A (zh) * 2017-01-03 2017-06-20 新华三技术有限公司 网络地址转换方法及装置

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110268117A1 (en) * 2000-12-28 2011-11-03 Davis Arlin R Lan emulation over infiniband fabric apparatus, systems, and methods
CN101252605A (zh) * 2008-04-03 2008-08-27 杭州华三通信技术有限公司 穿越网络地址转换设备的多媒体通信方法、系统及装置
CN102204191A (zh) * 2011-05-31 2011-09-28 华为技术有限公司 一种报文转发方法和网间路由装置
CN103581350A (zh) * 2012-07-25 2014-02-12 中国电信股份有限公司 跨越nat发布互联网服务的方法、终端、设备和系统
CN102984068B (zh) * 2012-11-23 2016-08-03 汉柏科技有限公司 实现报文穿越网络地址转换设备的方法
CN106878482A (zh) * 2017-01-03 2017-06-20 新华三技术有限公司 网络地址转换方法及装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114363387A (zh) * 2021-12-31 2022-04-15 北京沃东天骏信息技术有限公司 应用拉活方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
CN111327718B (zh) 2022-08-19

Similar Documents

Publication Publication Date Title
CN111885075A (zh) 容器通信方法、装置、网络设备及存储介质
US11153262B1 (en) System and method for enabling communication between networks with overlapping IP address ranges
CN112040030B (zh) 报文传输方法、装置、计算机设备及存储介质
CN112565484B (zh) 域名无缝漫游访问局域网设备的方法、系统及存储介质
CN103200281A (zh) 内网服务器访问方法、设备和系统
CN105577632A (zh) 一种基于网络隔离的安全连网方法及终端
WO2021063028A1 (zh) 为业务提供网络服务的方法、装置和计算设备
US20170214734A1 (en) Methods and apparatuses for information transmission
CN111049947B (zh) 报文转发方法及装置、电子设备、存储介质
CN111327718B (zh) 一种服务调用方法、装置、设备及计算机可读存储介质
CN111131448B (zh) ADSL Nat的运维管理的边缘管理方法、边缘端代理设备及计算机可读存储介质
CN109413224B (zh) 报文转发方法和装置
US8683019B1 (en) Enabling external access to a private-network host
CN115913597A (zh) 确定失陷主机的方法及装置
CN111565237B (zh) 网络参数确定方法、装置、计算机设备及存储介质
CN114257651A (zh) 请求响应方法、装置、网络设备及计算机可读存储介质
CN111800341B (zh) 一种跨路由器终端通信方法及装置
CN104426816A (zh) 一种虚拟机通信方法及装置
CN110784391B (zh) 小基站与网关通信的方法、装置、存储介质及终端
CN107493234B (zh) 一种基于虚拟网桥的报文处理方法以及装置
CN102137172A (zh) 一种dns服务器访问方法及一种访问设备
CN114070637B (zh) 基于属性标签的访问控制方法、系统、电子设备及存储介质
CN108293075B (zh) 共享终端检测方法以及为此的设备
CN105516121B (zh) 无线局域网中ac与ap通信的方法及系统
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
GR01 Patent grant
GR01 Patent grant