WO2018107433A1 - 信息处理方法和装置 - Google Patents

信息处理方法和装置 Download PDF

Info

Publication number
WO2018107433A1
WO2018107433A1 PCT/CN2016/110097 CN2016110097W WO2018107433A1 WO 2018107433 A1 WO2018107433 A1 WO 2018107433A1 CN 2016110097 W CN2016110097 W CN 2016110097W WO 2018107433 A1 WO2018107433 A1 WO 2018107433A1
Authority
WO
WIPO (PCT)
Prior art keywords
protocol stack
network protocol
network
destination node
application
Prior art date
Application number
PCT/CN2016/110097
Other languages
English (en)
French (fr)
Inventor
刘振华
李洪武
许志勇
Original Assignee
华为技术有限公司
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 华为技术有限公司 filed Critical 华为技术有限公司
Priority to PCT/CN2016/110097 priority Critical patent/WO2018107433A1/zh
Priority to CN201680091595.3A priority patent/CN110073644B/zh
Publication of WO2018107433A1 publication Critical patent/WO2018107433A1/zh

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/40Support for services or applications

Definitions

  • the determining, according to the indication information of the network application, the first target network protocol stack from the at least one network protocol stack comprises:
  • the information generated during the running of the network application includes information sent to the first destination node.
  • the third target network protocol stack is invoked to process information sent to the first destination node by adapting the unified interface function and the third target network protocol stack.
  • the network protocol stack to be used may be re-determined, thereby improving the adaptability of the network application.
  • different network protocol stacks can be invoked through a unified interface function. It can solve the problem that the interface existing in the network application development process is not uniform.
  • the application module is further configured to, when the network application is running, invoke, by using the interface function provided by the interface module, a network protocol stack in the at least one network protocol stack to process information generated during running the network application;
  • FIG. 11 is a schematic diagram of a network application software replacing a dynamic library according to an embodiment of the present invention.
  • the unified interface function may also be stored in advance in the information processing apparatus.
  • step 220 the specific manner in which the unified interface function and the first target network protocol stack are adapted in step 220 is not limited in the embodiment of the present invention.
  • the first target network protocol stack is determined according to a network environment of the first destination node, a network requirement of the network application software, and a characteristic of the at least one network protocol stack.
  • the newly determined target network protocol stack may be invoked by using a unified interface function. That is to say, in the embodiment of the present invention, different network protocol stacks can be invoked through a unified interface function, and different network protocol stack functions can be implemented through a unified interface function, which can solve the problem that the interfaces existing in the network application development process are not uniform. problem.
  • the network by providing a unified interface function to the network application, determining the target network protocol stack from the at least one network protocol stack, and adapting the unified interface function and the target network protocol stack, the network can be avoided.
  • the network protocol stack that the network application will adopt is determined, thereby improving the performance of the network application.
  • the network application software, the unified interface function, the adaptation module, and the network protocol stack can be layered into one image, as shown in FIG.
  • the network application software can be dynamically assembled and run with different network protocol stacks, and the network protocol stack corresponding to the application software is not required to be determined at the development stage, thereby enabling replacement of the network protocol stack and multiple instances of the network application software.

Abstract

本发明实施例提供了一种信息处理方法和装置。该信息处理方法包括:根据网络应用的指示信息从至少一个网络协议栈中确定第一目标网络协议栈;通过对统一接口函数和所述第一目标网络协议栈进行适配,调用所述第一目标网络协议栈处理在运行所述网络应用过程中生成的信息。本发明实施例能够避免在网络应用开发之初就确定该网络应用将要采用的网络协议栈,从而能够提升网络应用的性能。

Description

信息处理方法和装置 技术领域
本发明实施例涉及计算机网络领域,尤其涉及信息处理方法和装置。
背景技术
网络协议栈经过长期发展,已经成为操作系统内核的一个重要组成部分,为满足各种类型应用的需求,操作系统内核的网络协议栈已经非常庞大,各种功能应有尽有。由于运行在内核态,网络协议栈受内核软件和代码运行空间的限制,存在软件开发效率低,灵活性差等缺点。此外,由于应用软件运行在用户态空间,而操作系统的网络协议栈运行在内核空间,两个空间之间进行数据转发和搬移中,存在大量的数据复制,消耗了大量的CPU资源,进而导致采用内核网络协议栈的应用软件在高吞吐情况下提升性能优化难度大。
为了满足应用软件对网络协议栈的特殊化需求,用户态协议栈应运而生。用户态协议栈解决了内核态协议栈的不足,在软件吞吐性能、开发效率和灵活性/扩展性、软件轻量化等方面进行了改进。
现有方案中的基于用户态协议栈的应用软件的开发系统如图1所示,采用不同用户态的网络协议栈的应用软件可以通过调用不同的软件开发工具包(Software Development Kit,SDK)应用程序编程接口(Application Programming Interface,API)选择相应的网络协议栈。应用开发者需要在应用软件开发之初,就确定好要采用哪种网络协议栈,并为该应用软件提供相应的接口。
发明内容
本发明实施例提供了一种信息处理方法和装置,无需在网络应用开发之初就确定该网络应用采用的网络协议栈。
第一方面,提供了一种信息处理方法,包括:
根据网络应用的指示信息从至少一个网络协议栈中确定第一目标网络协议栈;
通过对统一接口函数和所述第一目标网络协议栈进行适配,调用所述第 一目标网络协议栈处理在运行所述网络应用过程中生成的信息。
本发明实施例中,根据网络应用的指示信息从至少一个网络协议栈中确定目标网络协议栈,并通过统一的接口函数调用确定的目标网络协议栈,能够避免在网络应用开发之初就确定该网络应用将要采用的网络协议栈,从而能够提升网络应用的性能。
本发明实施例中通过该统一接口函数还可以调用其他网络协议栈,也就是说,本发明实施例中可以通过统一的接口函数调用不同的网络协议栈。
因此,本发明实施例中的统一接口函数能够消除不同的网络协议栈之间的接口差异,从而解决网络应用开发过程中存在的接口不统一的问题。
可选地,该方法还可以包括:运行所述网络应用。
在一些实施例中,所述根据网络应用的指示信息从至少一个网络协议栈中确定第一目标网络协议栈包括:
根据第一目的节点的指示信息和所述网络应用的指示信息从所述至少一个网络协议栈中所述确定第一目标网络协议栈;
其中,所述在运行所述网络应用过程中生成的信息包括向所述第一目的节点发送的信息。
可选地,所述第一目的节点的指示信息可以为第一目的节点的地址,也可以为第一目的节点标识。网络应用的指示信息可以为网络应用的标识,也可以为本地端口号。
在一些可能的实现方式中,所述方法还包括:
在目的节点由所述第一目的节点变更为第二目的节点的情况下,根据所述第二目的节点的指示信息和所述网络应用的指示信息从所述至少一个网络协议栈中确定第二目标网络协议栈;
通过对统一接口函数和所述第二目标网络协议栈进行适配,调用所述第二目标网络协议栈处理向所述第二目的节点发送的信息。
本发明实施例中,在目的节点发生变化的情况下,可以重新确定要采用的网络协议栈,从而能够提高网络应用的适应性。
另外,本发明实施例中可以通过统一接口函数调用不同的网络协议栈,能够解决网络应用开发过程中存在的接口不统一的问题。
在一些可能的实现方式中,所述通过对统一接口函数和所述第一目标网络协议栈进行适配,调用所述第一目标网络协议栈处理在运行所述网络应用 过程中生成的信息,包括:
根据所述统一接口函数和预设的第一对应关系,得到所述第一目标网络协议栈的接口函数,所述第一对应关系用于根据所述统一接口函数确定所述第一目标网络协议栈的接口函数;
通过所述第一目标网络协议栈的接口函数调用所述第一目标网络协议栈处理在运行所述网络应用过程中生成的信息。
在一些可能的实现方式中,所述根据第一目的节点的指示信息和所述网络应用的指示信息从至少一个网络协议栈中确定所述第一目标网络协议栈,包括:
根据所述第一目的节点的指示信息、所述网络应用的指示信息以及预设的第二对应关系确定所述第一目标网络协议栈,所述第二对应关系用于根据所述网络应用的指示信息和所述第一目的节点的指示信息确定所述第一目标网络协议栈。
在一些可能的实现方式中,所述根据第一目的节点的指示信息和所述网络应用的指示信息从至少一个网络协议栈中确定所述第一目标网络协议栈,包括:
根据所述第一目的节点的指示信息,确定所述第一目的节点的网络环境;
根据所述网络应用的指示信息,确定所述网络应用的指示信息对应所述网络应用的网络需求;
根据所述第一目的节点的网络环境、所述网络应用的网络需求和所述至少一个网络协议栈的特性确定所述第一目标网络协议栈。
在一些可能的实现方式中,所述方法还包括:
在所述网络应用的网络需求发生变化的情况下,根据所述第一目的节点的网络环境、所述网络应用的新的网络需求和所述至少一个网络协议栈的特性确定第三目标网络协议栈;
通过对所述统一接口函数和所述第三目标网络协议栈进行适配,调用所述第三目标网络协议栈处理向所述第一目的节点发送的信息。
本发明实施例中,在网络应用的网络需求发生变化的情况下,可以重新确定要采用的网络协议栈,从而能够提高网络应用的适应性。
另外,本发明实施例中可以通过统一接口函数调用不同的网络协议栈, 能够解决网络应用开发过程中存在的接口不统一的问题。
在一些可能的实现方式中,所述通过对所示统一接口函数和所述第二目标网络协议栈进行适配,调用所述第二目标网络协议栈处理向所述第二目的节点发送的信息,包括:
根据所述统一接口函数和预设的第三对应关系,得到所述第二目标网络协议栈的接口函数,所述第三对应关系用于根据所述统一接口函数确定所述第二目标网络协议栈的接口函数;
通过所述第二目标网络协议栈的接口函数调用所述第二目标网络协议栈处理向所述第二目的节点发送的信息。
在一些可能的实现方式中,所述通过对统一接口函数和所述第三目标网络协议栈进行适配,调用所述第三目标网络协议栈处理向所述第一目的节点发送的信息,包括:
根据所述统一接口函数和预设的第四对应关系,得到所述第三目标网络协议栈的接口函数,所述第四对应关系用于根据所述统一接口函数确定所述第三目标网络协议栈的接口函数;
通过所述第三目标网络协议栈的接口函数调用所述第三目标网络协议栈处理向所述第一目的节点发送的信息。
在一些可能的实现方式中,所述至少一个网络协议栈为至少两个网络协议栈。
在一些可能的实现方式中,所述至少一个网络协议栈位于用户空间或内核空间。
第二方面,提供了一种信息处理装置,该装置用于实现第一方面或第一方面的任一种可能的实现方式所述的方法。
具体地,该装置可以包括用于执行第一方面或第一方面的任一种可能的实现方式中所述的方法的模块。
第三方面,提供了一种信息处理装置,包括:处理器、存储器和总线系统,处理器和存储器通过总线系统相连,存储器用于存储指令或代码,处理器用于执行该存储器存储的指令或代码,使得该装置执行如第一方面或第一方面的任一种可能的实现方式所述的方法。
第四方面,提供了一种信息处理装置,包括:
应用模块,用于运行网络应用;
协议栈模块,用于运行至少一个网络协议栈中的网络协议栈;
接口模块,用于为所述应用模块运行的网络应用提供统一的接口函数,所述统一接口函数用于调用所述协议栈模块中的所述至少一个协议栈;
所述应用模块还用于,在运行网络应用时通过所述接口模块提供的所述接口函数调用所述至少一个网络协议栈中的网络协议栈处理在运行所述网络应用过程中生成的信息;
适配模块,用于从所述协议栈模块中的所述至少一个网络协议栈中确定用于处理所述信息的目标网络协议栈,并对所述统一接口函数和所述目标网络协议栈进行适配,以使得所述应用模块通过所述统一接口函数调用所述目标网络协议栈处理所述信息。
本发明实施例中,通过向网络应用提供统一的接口函数,从至少一个网络协议栈中确定目标网络协议栈,并对该统一的接口函数和该目标网络协议栈进行适配,能够避免在网络应用开发之初就确定该网络应用将要采用的网络协议栈,从而能够提升网络应用的性能。
另外,本发明实施例中可以通过统一的接口函数调用不同的网络协议栈。
因此,本发明实施例中的统一接口函数能够消除不同的网络协议栈之间的接口差异,从而解决网络应用开发过程中存在的接口不统一的问题。
在一些可能的实现方式中,所述装置还包括:
输入输出模块,用于向所述目的节点发送所述应用模块调用所述目标网络协议栈处理所述信息之后得到的第一报文,并记录所述第一报文与所述目标网络协议栈之间的对应关系;
所述输入输出模块还用于,接收所述目的节点根据所述第一报文发送的第二报文,并根据记录的所述对应关系,将所述第二报文分发至所述目标网络协议栈进行处理。
第五方面,提供了一种信息处理装置,包括:处理器、存储器和总线系统,处理器和存储器通过总线系统相连,存储器用于存储指令或代码,处理器用于执行该存储器存储的指令或代码。
具体地,处理器用于实现第四方面或第四方面的上述任一种可能的实现方式所述的应用模块、接口模块、协议栈模块和适配模块的功能。
第六方面,提供了一种计算机可读存储介质,该计算机可读存储介质存 储有程序,该程序使得信息处理装置执行上述第一方面或第一方面的任一种可能的实现方式所述的方法。
附图说明
图1是现有的基于用户态网络协议栈的应用软件开发系统的示意图;
图2是根据本发明实施例的信息处理方法的流程示意图;
图3是根据本发明实施例的信息处理装置的结构示意图;
图4是根据本发明另一实施例的信息处理装置的结构示意图;
图5是根据本发明另一实施例的信息处理装置的结构示意图;
图6是根据本发明另一实施例的信息处理装置的结构示意图;
图7是根据本发明另一实施例的信息处理装置的结构示意图;
图8是根据本发明实施例的网络应用软件的打包示意图;
图9是根据本发明另一实施例的网络应用软件的打包示意图;
图10是根据本发明实施例的网络应用软件加载动态库的示意图;
图11是根据本发明实施例的网络应用软件替换动态库的示意图;
图12是根据本发明实施例的多个容器之间虚拟交换的示意图;
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行描述。
图2是根据本发明实施例的信息处理方法200的示意性流程图。图2所示方法可以由信息处理装置执行,该信息处理装置可以为网络中的节点。如图2所示,方法200包括如下内容。
210、根据网络应用的指示信息从至少一个网络协议栈中确定第一目标网络协议栈。
例如,可以根据网络应用的指示信息确定网络应用的网络需求,并根据该网络应用的网络需求和至少一个网络协议栈的特性确定第一目标网络协议栈。或者可以根据网络应用的指示信息和预设的对应关系,该对应关系用于根据网络应用的指示信息确定第一目标网络协议栈。
第一目标网络协议栈为至少一个网络协议栈中的一个网络协议栈。
220、通过对统一接口函数和第一目标网络协议栈进行适配,调用第一 目标网络协议栈处理在运行网络应用过程中生成的信息。
可选地,步骤210包括:根据第一目的节点的指示信息和网络应用的指示信息从至少一个网络协议栈中确定第一目标网络协议栈。相应地,该在运行网络应用过程中生成的信息包括向第一目的节点发送的信息。
也就是说,可以通过统一接口函数调用第一目标网络协议栈处理向第一目的节点发送的信息。
在一些实施例中,向第一目的节点发送的信息可以为用于与第一目的节点建立连接的连接请求。例如,在基于面向连接的传输控制协议(Transmission Control Protocol,TCP)的通信系统中,在传输数据之前,需要向第一目的节点发送连接请求,与第一目的节点建立连接。连接建立之后,后续发送数据可以直接采用在发送连接请求之前确定的目标网络协议栈。应注意,本发明实施例对此并不限定,也可以在后续发送数据时重新确定目标网络协议栈。
在一些实施例中,向第一目的节点发送的信息可以为业务信息。例如,在基于非连接的用户数据报协议(User Data Protocol,UDP)的通信系统中,传输数据之前不需要与目的节点建立连接,可以直接将要发送的信息发送出去。
本发明实施例中,根据网络应用的指示信息从至少一个网络协议栈中确定目标网络协议栈,并通过统一的接口函数调用确定的目标网络协议栈,能够避免在网络应用开发之初就确定该网络应用将要采用的网络协议栈并为该网络应用提供相应的接口函数。
而且,现有方案中分别通过不同的接口函数来调用不同的网络协议栈。而本发明实施例中可以通过统一的接口函数调用不同的网络协议栈。应理解,通过统一接口函数调用不同的网络协议栈时,需要将该统一接口函数与调用的不同网络协议栈进行适配,使得通过该统一接口函数即可实现调用不同的网络协议栈。
因此,本发明实施例中的统一接口函数能够消除不同的网络协议栈之间的接口差异,从而解决网络应用开发过程中存在的接口不统一的问题。
可选地,方法200还可以包括:运行网络应用。
可选地,在步骤220之前,方法200还可以包括:生成该统一接口函数。
可选地,还可以在信息处理装置中预先存储该统一接口函数。
可选地,还可以在信息处理装置中预先存储一个接口库,该接口库中包括用于实现不同功能的多个统一接口函数,例如用于连接的统一接口函数、用于收发数据的统一接口函数等。这种情况下,信息处理装置可以根据实现的功能采用相应的统一接口函数,并通过该统一接口函数调用目标网络协议栈。例如,在基于面向连接的TCP的通信系统中,与第一目的节点建立连接时,采用的统一接口函数可以为用于连接的统一接口函数;在基于UDP的通信系统中,采用的统一接口函数可以为用于发送业务信息的统一接口函数。
可选地,该至少一个网络协议栈可以位于用户空间或内核空间。当至少一个网络协议栈位于用户空间时,可以通过统一接口函数直接调用第一目标网络协议栈。当至少一个网络协议栈位于内核空间时,可以通过统一接口函数调用位于用户空间的系统调用库来调用第一目标网络协议栈。
在一些实施例中,可以在向第一目的节点发送的信息中携带第一目的节点的指示信息和网络应用的指示信息。
可选地,第一目的节点的指示信息可以为第一目的节点的地址,也可以为第一目的节点的标识。网络应用的指示信息可以为网络应用的标识。在一些实施例中,还可以为网络应用分配端口,因此网络应用的指示信息也可以为端口号。
在一些实施例中,向第一目的节点发送的信息中可以包括五元组,该五元组包括源IP地址、目的IP地址、源端口、目的端口和协议号。其中,源地址指示信息处理装置,目的地址指示第一目的节点,源端口指示该网络应用,目的端口指示该信息访问的第一目的节点中的网络应用,协议号用于指示向第一目的节点发送的信息采用的协议类型。可选地,一种协议类型可以对应多种网络协议栈。
需要说明的是,本发明实施例对步骤220中对统一接口函数和第一目标网络协议栈进行适配的具体方式不做限定。
在一些实施例中,可以将该统一接口函数转换为该第一目标网络协议栈的接口函数。例如,可以将统一接口函数转换为第一目标网络协议栈的一个或多个接口函数。
在另一些实施例中,还可以将该统一接口函数中的参数转换为第一目标网络协议栈的接口函数的参数。例如,可以将统一接口函数中的一个或多个 参数转换为第一目标网络协议栈的接口函数中的一个或多个参数。
在一些实例中,步骤220可以包括:
根据统一接口函数和预设的第一对应关系,得到第一目标网络协议栈的接口函数,该第一对应关系用于根据统一接口函数确定第一目标网络协议栈的接口函数;
通过该第一目标网络协议栈的接口函数调用第一目标网络协议栈处理向第一目的节点发送的信息。
可选地,若在信息处理装置中预先存储了用于实现不同功能的多个统一接口函数,则还可以在信息处理装置中预先存储该多个统一接口函数和至少一个网络协议栈的接口函数的对应关系表,该对应关系表中可以包括该多个不同的统一接口函数与至少一个网络协议栈的接口函数的对应关系,以使得能够根据采用的统一接口函数和该对应关系表得到采用的目标网络协议栈的接口函数。
在一些实施例中,步骤210可以包括:
根据第一目的节点的指示信息、网络应用软件的指示信息以及预设的第二对应关系确定第一目标网络协议栈,第二对应关系用于根据网络应用软件的指示信息和第一目的节点的指示信息确定第一目标网络协议栈。
本发明实施例中,通过根据预设的对应关系确定目标网络协议栈,实现过程更加简单。
在另一些实施例中,步骤210可以包括:
根据第一目的节点的指示信息,确定第一目的节点的网络环境;
根据网络应用的指示信息,确定网络应用的指示信息对应的网络应用的网络需求;
根据第一目的节点的网络环境、网络应用软件的网络需求和至少一个网络协议栈的特性确定第一目标网络协议栈。
可以在信息处理装置中预先存储第一目的节点的网络环境,根据第一目的节点的指示信息即可确定第一目的节点的网络环境;或者,还可以根据第一目的节点的IP地址与信息处理装置的IP地址的关系,确定第一目的节点的网络环境;或者,还可以根据第一目的节点的指示信息和来自外部系统的与该第一目的节点的网络环境相关的数据确定第一目的节点的网络环境。其中,该外部系统可以为软件定义网络(Software Defined Network,SDN)等 其他系统。例如,第一目的节点的网络环境可以包括第一目的节点与信息处理装置的位置关系,如是否位于同一个局域网内、或同一个数据中心(Data Center,DC)内等。若第一目的节点与信息处理装置位于同一个DC内,则第一目的节点能够提供较高的带宽;若第一目的节点与信息处理装置位于同一个局域网内,则第一目的节点的带宽和丢包率等都是不确定的。
可以在信息处理装置中预先存储信息处理装置安装的网络应用的网络需求。网络应用的网络需求可以包括但不限于网络应用对带宽、时延、可靠性或丢包率等的需求。不同类型的网络应用的网络需求不同。例如,交互性的即时通讯应用需要网络的时延较低,视频应用需要网络的带宽较高且时延较低。
可以在信息处理装置中预先存储至少一个网络协议栈的特性。不同的网络协议栈的特性可以不同。例如有的网络协议栈用于实现较高的传输带宽,有的网络协议栈用于实现较低的传输时延等。
综上所述,根据第一目的节点的网络环境、网络应用软件的网络需求和至少一个网络协议栈的特性即可从至少一个网络协议栈中选择一个合适的网络协议栈作为第一目标网络协议栈。
在本发明实施例中,在目的节点发生变化,或者网络应用的网络需求发生变化的情况下,还可以重新确定目标网络协议栈。因此,避免了在网络应用开发之初必须确定要采用的网络协议栈,能够增加网络应用的适应性。
可选地,方法200还可以包括:
在目的节点由第一目的节点变更为第二目的节点的情况下,根据第二目的节点的指示信息和网络应用的指示信息从至少一个网络协议栈中确定第二目标网络协议栈;
通过对统一接口函数和第二目标网络协议栈进行适配,调用第二目标网络协议栈处理向第二目的节点发送的信息。
其中,从至少一个网络协议栈中确定第二目标网络协议栈的过程与步骤210中确定第一目标网络协议栈的具体过程类似,具体可以参考上文相关描述,在此不再赘述;通过对统一接口函数和第二目标网络协议栈进行适配,调用第二目标网络协议栈处理向第二目的节点发送的信息的过程与步骤220中调用第一目标网络协议栈的具体过程类似,具体可以参考上文相关描述,在此不再赘述。
本发明实施例中,在目的节点发生变化的情况下,可以重新确定要采用的网络协议栈,从而能够提高网络应用的适应性。
可选地,方法200还可以包括:
在网络应用的网络需求发生变化的情况下,根据第一目的节点的网络环境、网络应用的新的网络需求和至少一个网络协议栈的特性确定第三目标网络协议栈;
通过对统一接口函数和第三目标网络协议栈进行适配,调用第三目标网络协议栈处理向第一目的节点发送的信息。
其中,通过对统一接口函数和第三目标网络协议栈进行适配,调用第三目标网络协议栈处理向第二目的节点发送的信息的具体过程与步骤220的具体过程类似,具体可以参考上文相关描述,在此不再赘述。
本发明实施例中,在网络应用的网络需求发生变化的情况下,可以重新确定要采用的网络协议栈,从而能够提高网络应用的适应性。
例如,在网络应用进行性能扩展或者升级之后,网络应用的网络需求可以发生变化。在网络应用的网络需求发生变化的情况下,应及时更新信息处理装置中存储的网络应用的网络需求,以便能够重新确定目标网络协议栈。
在另一些实施例中,在网络应用的网络需求发生变化的情况下,还可以及时将信息处理装置中存储的第二对应关系替换新的对应关系,该新的对应关系用于根据网络应用的指示信息和第一目的节点的指示信息确定第三目标网络协议栈。这样能够根据替换后的新的对应关系确定第三目标网络协议栈。
本发明实施例中可以采用统一接口函数调用新确定的目标网络协议栈。也就是说,本发明实施例中可以通过统一的接口函数调用不同的网络协议栈,通过统一的接口函数即可实现不同的网络协议栈功能,能够解决网络应用开发过程中存在的接口不统一的问题。
通过统一接口函数调用第一目标网络协议栈向第一目的节点发送的信息之后,得到第一报文。可选地,方法200还可以包括:记录第一报文与第一目标网络协议栈之间的对应关系,并向第一目的节点发送第一报文。例如,可以记录第一报文中的第一五元组与第一目标网络协议栈之间的对应关系。这样,信息处理装置在接收到第一目的节点发送的第二报文时,可以在本地的历史记录中查找与该第二报文中的第二五元组对应的第一五元组,然后根 据该对应关系,即可确定第二报文对应于第一目标网络协议栈,并将该第二报文分发至第一目标网络协议栈进行处理。第一目标网络协议栈处理完成后,将得到的数据发送给网络应用处理。需要说明的是,第一五元组与第二五元组相对应可以理解为,第二五元组的目的端口和目的地址分别与第一五元组的源端口和源地址相同,第二五元组的源端口和源地址分别与第一五元组中的目的端口和目的地址相同,且第二五元组的协议号与第一五元组的协议号相同。
需要说明的是,如果信息处理装置接收到一节点发送的报文,但是该信息处理装置并没有向该节点发起过通信,则信息处理装置可以根据该节点的指示信息和该报文对应的网络软件的指示信息确定采用的网络协议栈,并将该报文分发至该网络协议栈进行处理。其中,该节点的指示信息可以为报文的五元组中源IP地址,该报文对应的网络软件的指示信息可以为报文的五元组中的源端口。具体可以参考上文中确定第一目标网络协议栈的相关描述,在此不再赘述。
应理解,本发明实施例中的至少一个网络协议栈可以为至少两个网络协议栈。
在一些实施例中,网络协议栈可以位于用户空间。但本发明实施例对此并不限定,网络协议栈还可以位于内核空间。
由于网络应用运行在用户空间,当网络协议栈位于内核空间时,需要在内核空间和用户空间之间进行数据转发和搬移,存储大量的数据复制,消耗CPU资源。当网络协议栈位于用户态时,能够避免在内核空间和用户空间之间进行数据转发和搬移,能够节省CPU资源,提升CPU的性能。但是,由于内核空间的网络协议栈经过了长期发展,比用户空间的网络协议栈的功能更加的完善,因此网络协议栈位于内核空间中能够为网络应用提供更加完善的网络协议栈功能。
上文描述了根据本发明实施例的信息处理方法,下面将描述根据本发明实施例的信息处理装置。
图3是根据本发明实施例的信息处理装置300的结构示意图。如图3所示,装置300包括确定模块310和处理模块320。
确定模块310可以用于根据网络应用的指示信息从至少一个网络协议栈中确定第一目标网络协议栈。
处理模块320可以用于通过对统一接口函数和确定模块310确定的第一目标网络协议栈进行适配,调用第一目标网络协议栈处理在运行网络应用过程中生成的信息。
本发明实施例中,根据目的节点的指示信息和网络应用的指示信息从至少一个网络协议栈中确定目标网络协议栈,并通过统一的接口函数调用确定的目标网络协议栈,能够避免在网络应用开发之初就确定该网络应用将要采用的网络协议栈,从而能够提升网络应用的性能。
可选地,确定模块310用于根据第一目的节点的指示信息和网络应用的指示信息从至少一个网络协议栈中确定第一目标网络协议栈。相应地,在运行网络应用过程中生成的信息包括向第一目的节点发送的信息。
可选地,如图4所示,装置300还可以包括应用模块330和协议栈模块340。应用模块330可以用于运行网络应用,协议栈模块340可以用于运行至少一个网络协议栈。
可选地,确定模块310还可以用于,在目的节点由第一目的节点变更为第二目的节点的情况下,根据第二目的节点的指示信息和网络应用的指示信息从至少一个网络协议栈中确定第二目标网络协议栈。相应地,处理模块320还可以用于,对统一接口函数和确定模块310确定的第二目标网络协议栈进行适配,调用第二目标网络协议栈处理向第二目的节点发送的信息。
可选地,处理模块320用于:
根据统一接口函数和预设的第一对应关系,得到第一目标网络协议栈的接口函数,第一对应关系用于根据统一接口函数确定第一网络协议栈的接口函数;
通过第一网络协议栈的接口函数调用第一目标网络协议栈处理在运行网络应用过程中生成的信息。
可选地,确定模块310用于:根据第一目的节点的指示信息、网络应用软件的指示信息以及预设的第二对应关系确定第一目标网络协议栈,第二对应关系用于根据网络应用的指示信息和第一目的节点的指示信息确定第一目标网络协议栈。
可选地,确定模块310用于:
根据第一目的节点的指示信息,确定第一目的节点的网络环境;
根据网络应用的指示信息,确定网络应用的指示信息对应的网络应用软 件的网络需求;
根据第一目的节点的网络环境、网络应用的网络需求和至少一个网络协议栈的特性确定第一目标网络协议栈。
可选地,确定模块310还可以用于,在网络应用的网络需求发生变化的情况下,根据第一目的节点的网络环境、网络应用的新的网络需求和至少一个网络协议栈的特性确定第三目标网络协议栈。相应地,处理模块320还可以用于,对统一接口函数和确定模块310确定的第三目标网络协议栈进行适配,调用第三目标网络协议栈处理向第一目的节点发送的信息。
可选地,至少一个网络协议栈为至少两个网络协议栈。
可选地,至少一个网络协议栈位于用户空间或内核空间。
可选地,装置300还可以包括输入输出(Input/Output,I/O)模块350,用于接收和发送信息。
在一些实施例中,I/O模块350还可以记录向目的节点发送的会话信息与网络协议栈的对应关系。I/O模块350还可以采用软件中断或轮询模式监测是否有报文到达。当有网络报文到达时,I/O模块350还可以根据记录的会话信息将接收到的报文分发至相应的网络协议栈。
应理解,根据本发明实施例的装置300可对应于根据本发明实施例的信息处理方法200中的信息处理装置,并且装置300中的各个模块的上述和其它操作和/或功能分别为了实现图2所示方法200中信息处理装置的相应流程,为了简洁,在此不再赘述。
应注意,确定模块310、处理模块320、应用模块330和协议栈模块340可以由处理器实现,I/O模块350可以由I/O接口实现。图5所示为根据本发明另一实施例的信息处理装置500的结构示意图。如图5所示,装置500包括处理器510、存储器520和总线系统530,处理器510和存储器520通过总线系统530相连,其中,存储器520可以用于存储处理器510执行的代码等。
可选地,装置500还可以包括I/O接口540,I/O接口540、处理器510和存储器520可以通过总线系统530相连。I/O接口540可以用于在处理器510的控制下接收/发送信息。
应理解,根据本发明实施例的装置500可对应于根据本发明实施例的方法200以及根据本发明实施例的装置300,并且装置500中的各个模块的上 述和其它操作和/或功能分别为了实现图2所示方法200的相应流程,为了简洁,在此不再赘述。
图6是根据本发明另一实施例的信息处理装置600的结构示意图。如图6所示,装置600包括:应用模块610、接口模块620、协议栈模块630和适配模块640。
应用模块610用于运行网络应用。
协议栈模块630用于运行至少一个网络协议栈中的网络协议栈。
接口模块620用于为应用模块610运行的网络应用提供统一接口函数,该统一接口函数用于调用协议栈模块630中的至少一个协议栈。
应用模块610还用于,在运行网络应用时通过接口模块620提供的统一接口函数调用至少一个网络协议栈中的网络协议栈处理在运行所述网络应用过程中生成的信息。
适配模块640用于从协议栈模块630中的至少一个网络协议栈中确定用于处理所述信息的目标网络协议栈,并对该统一接口函数和目标网络协议栈进行适配,以使得应用模块610通过该统一接口函数调用目标网络协议栈处理该信息。
本发明实施例中,通过向网络应用提供统一的接口函数,从至少一个网络协议栈中确定目标网络协议栈,并对该统一的接口函数和该目标网络协议栈进行适配,能够避免在网络应用开发之初就确定该网络应用将要采用的网络协议栈,从而能够提升网络应用的性能。
另外,本发明实施例中可以通过统一的接口函数调用不同的网络协议栈。
因此,本发明实施例中的统一接口函数能够消除不同的网络协议栈之间的接口差异,从而解决网络应用开发过程中存在的接口不统一的问题。
需要说明的是,适配模块640从至少一个网络协议栈中确定目标网络协议栈的过程与图2所示方法200中确定第一目标网络协议栈的过程类似,为避免重复,在此省略相应的内容。适配模块640对接口函数和目标网络协议栈进行适配的过程与图2所示方法200的步骤220中的将统一接口函数和第一目标网络协议栈进行适配的过程类似,为避免重复,在此省略相应的内容。
可选地,如图7所示,装置600还可以包括I/O模块650。
I/O模块650用于向目的节点发送应用模块调用目标网络协议栈处理信 息之后得到的第一报文,并记录第一报文与目标网络协议栈之间的对应关系。
I/O模块650还用于接收目的节点根据第一报文发送的第二报文,并根据记录的对应关系,将第二报文分发至目标网络协议栈进行处理。
应注意,应用模块610、接口模块620、协议栈模块630和适配模块640可以由处理器实现,I/O模块650可以由I/O接口实现。
本发明另一实施例的信息处理装置可以包括处理器、存储器和总线系统。可选地,该信息处理装置还可以包括I/O接口,I/O接口通过总线系统与处理器、存储器相连。其中,存储器可以用于存储处理器执行的代码等,I/O接口可以用于在处理器的控制下接收/发送信息。该信息处理装置的结构可以参考图5所示。应理解,根据本发明实施例的装置可对应于根据本发明实施例的装置600,为了简洁,在此不再赘述。
本发明各实施例中的网络应用可以为网络应用软件。
在发布网络应用软件之前,可以将网络应用软件和该网络应用软件的依赖软件包打包,其中该网络应用软件的依赖软件包用于构建该网络应用软件的运行环境。将网络应用软件和依赖软件包打包在一个镜像进行发布时,当进行应用软件安装时,在主机中会通过容器引擎把镜像加载到主机中,生成运行时的容器。本发明实施例中,适配模块也可以采用软件功能单元的形式实现,网络应用软件的依赖软件包可以包括统一接口函数、适配模块和网络协议栈。
本发明实施例中,可以采用容器的分层打包技术,将网络应用软件、统一接口函数、适配模块和网络协议栈分层打包在一起然后发布。也就是说,可以采用容器镜像的方式发布网络应用软件。通过容器的方式,在一个主机上可以实现网络应用软件的多实例运行。应理解,还可以采用其他分层打包技术,将网络应用软件、统一接口函数、适配模块和网络协议栈分层打包在一个镜像或多个镜像中然后发布,本发明实施例对此并不限定。
在一些实施例中,可以将网络应用软件、统一接口函数、适配模块和网络协议栈分层打包到一个镜像中,如图8所示。
在一些实施例中,还可以将网络应用软件、统一接口函数和适配模块分层打包到一个镜像中,将网络协议栈打包到另一个镜像中,作为一个动态库(也可称为动态链接库),如图9所示。在这种情况下,网络协议栈可以按 照统一接口函数的要求生成对外的调用接口,直接生成网络协议栈的动态库。
在一些实施例中,信息处理装置可以根据网络应用软件的配置文件来动态加载其对应的网络协议栈的动态库。网络应用软件的配置文件指示了其对应的网络协议栈(以下称为目标网络协议栈)。例如,网络应用软件的配置文件中可以包括目标网络协议栈的标识信息。或者,网络应用软件的配置文件中可以包括目的节点的指示信息、网络应用软件的指示信息与目标网络协议栈之间的对应关系,这样信息处理装置可以根据目的节点的指示信息、网络应用软件的指示信息以及该对应关系确定目标网络协议栈。或者,网络应用软件的配置文件还可以包括第一目的节点的网络环境、网络应用软件的网络需求和至少一个网络协议栈的特性,这样信息处理装置可以根据目的节点的网络环境、网络应用软件的网络需求和至少一个网络协议栈的特性确定目标网络协议栈。然后,信息处理装置可以先在本地目录中查找目标网络协议栈的动态库,如果本地目录中无法找到该动态库,则应用软件可以去其他目录中查找该动态库。
可选地,还可以通过修改网络应用软件的配置文件来修改该网络应用软件对应的网络协议栈动态库,使得网络应用软件对应的网络协议栈可以动态地替换,这样能够满足网络应用软件采用不同网络协议栈的需求。
这样网络应用软件可以与不同的网络协议栈动态装配运行,并不需要在开发阶段就确定应用软件对应的网络协议栈,进而可以实现网络协议栈的可替换、网络应用软件的多实例。
在一些实施例中,如果网络应用软件、统一接口函数和适配模块打包在一个镜像中,网络协议栈打包在一个镜像中作为动态库,如图9所示,则在容器运行时可以追加该网络应用软件的动态库,如图10所示。具体地,可以在容器运行时增加新的卷,并在该卷中增加新的动态库。例如,需要在卷v中增加已知路径(如/lib64/aaa.so)中的aaa.so动态库,则可以通过docker run–v/lib64/aaa.so实现该功能。
在一些实施例中,如果网络应用软件、统一接口函数、适配模块和网络协议栈分层打包在一个镜像中,如图8所示,则可以将替换的网络协议栈单独打包作为动态库,在容器运行时通过动态库替换来实现网络协议栈的替换,如图11所示。例如,如果容器中的动态库/lib64/aaa.so需要被主机上的 动态库/lib64/bbb.so替换掉,则可以在运行容器的时候用run-v/lib64/bbb.so:/lib64/aaa.so来实现该替换。
本发明实施例中,网络应用软件通过统一接口函数实现了网络协议栈的动态替换,使得网络应用软件不再受限于一种网络协议栈的功能和性能,实现了网络协议栈与网络应用软件的解耦。
另外,在不同的网络环境中可以为网络应用软件配置不同的网络协议栈,能够增加网络应用软件的适应性。
可选地,统一接口函数可以包括网络协议栈的接口函数。具体地,该统一接口函数可以包括网络协议栈的二层/三层/四层的统一接口函数。应理解,该统一接口函数可以包括其他接口函数,本发明实施例对此并不限定,例如统一接口函数还可以包括网络功能服务接口函数。
可选地,可以根据标准的socket接口或类socket接口的方式定义统一接口函数。这样能够便于网络应用开发者更快捷地学习本发明实施例的统一接口函数。
例如,统一接口函数可以采用“Libsocket前缀+标准函数”的方式进行定义。这样能够与标准的socket编程兼容,以下所示为本发明实施例中的统一接口函数的例子:
Int Libsocket_select(int nfds,fd_set*fds,fd_set*wfds,fd_set*efds,struct timeval*timeout);
Int Libsocket_socket(int,int,int);
Int Libsocket_accept(int,struct sockaddr*,socklen_t*);
Int Libsocket_bind(int,const struct sockaddr*,socklen_t);
Int Libsocket_connect(int,const struct sockaddr*,socklen_t);
Int Libsocket_listen(int,int);
Int Libsocket_shutdown(int,int);
Int Libsocket_close(int);
Int Libsocket_recv(int,void*,size_t,int);
Int Libsocket_recvfrom(int,void*,size_t,int,struct sockaddr*,socklen_t*);
Int Libsocket_send(int,const void*,size_t,int);
Int Libsocket_sendto(int,const void*,size_t,int,const struct sockaddr*, socklen_t);
Int Libsocket_setsockopt(int,int,int,const void*,socklen_t);
Int Libsocket_getsockopt(int,int,int,void*,socklen_t*);
Int Libsocket_ioctl(int,int,...);
Int Libsocket_ip_input()
Int Libsocket_ip_output()
应理解,还可以采用其他方式定义统一接口函数,本发明实施例对此并不限定。
由于现有方案中不同网络协议栈通过不同的接口函数进行调用,为了兼容现有的应用软件,使得现有的应用软件也能够通过本发明实施例的统一接口函数调用不同的网络协议栈,本发明实施例中还可以通过预定义方式提供与标准可移植操作系统接口(Portable Operating System Interface,缩写为POSIX)相同的统一接口函数,如以下所示:
#define select(a,b,c,d,e)Libsocket_select(a,b,c,d,e)
#define socket(a,b,c)Libsocket_socket(a,b,c)
#define accept(a,b,c)Libsocket_accept(a,b,c)
#define bind(a,b,c)Libsocket_bind(a,b,c)
#define connect(a,b,c)Libsocket_connect(a,b,c)
#define listen(a,b)Libsocket_listen(a,b)
#define shutdown(a,b)Libsocket_shutdown(a,b)
#define close(a)Libsocket_close(a)
#define recv(a,b,c,d)Libsocket_recv(a,b,c,d)
#define recvfrom(a,b,c,d,e,f)Libsocket_recvfrom(a,b,c,d,e,f)
#define send(a,b,c)Libsocket_send(a,b,c)
#define sendto(a,b,c,d,e)Libsocket_sendto(a,b,c,d,e)
#define setsockopt(a,b,c,d,e)Libsocket_setsockopt(a,b,c,d,e)
#define getsocket(a,b,c,d,e)Libsocket_getsockopt(a,b,c,d,e)
接着,可以采用linux的LD_PRELOAD机制,在网络应用软件的运行阶段,通过LD_PRELOAD参数来加载自定义的同名的统一接口函数替换原来系统调用库的函数,即可以加载统一接口函数替换原来系统调用库的接口 函数。这样能够在不修改现有的网络应用软件的前提下也可以调用本发明实施例的统一接口函数。
本发明实施例可以应用于主机上的多个容器之间通信的场景中。如图12所示,每个网络应用软件和该网络应用软件的依赖软件包分别运行在一个容器中,容器之间的虚拟交换可以在用户空间完成,虚拟交换机通过一个数据平面开发套件(Data Plane Development Kit,DPDK)的用户态驱动与网卡(Network Interface Card,NIC)连通进行数据交互;而容器则通过一个虚拟接口驱动与虚拟交换机进行数据连接。虚拟交换机与物理网卡之间通过DPDK驱动直接存储器访问(Direct Memory Access,DMA)透传过操作系统内核,连接到虚拟交换机的上行链路口。各容器与虚拟交换机之间通过共享内存,实现虚拟网络设备接口,接入虚拟交换机。这样用户空间的容器能够透传过内核空间,直接与物理网卡传递数据。
本发明各个实施例中的总线系统除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线。为便于表示,在图中将各种总线都标为总线系统。
本发明各个实施例中的存储器可以包括易失性存储器(volatile memory),例如随机存取存储器(random-access memory,RAM);存储器也可以包括非易失性存储器(non-volatile memory),例如快闪存储器(flash memory)、硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD);存储器还可以包括上述种类的存储器的组合。
本发明各个实施例中的处理器可以是中央处理器(central processing unit,CPU)、网络处理器(network processor,NP)或者CPU和NP的组合。处理器还可以进一步包括硬件芯片。上述硬件芯片可以是专用集成电路(application-specific integrated circuit,ASIC)、可编程逻辑器件(programmable logic device,PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(complex programmable logic device,CPLD)、现场可编程逻辑门阵列(field-programmable gate array,FPGA)、通用阵列逻辑(generic array logic,GAL)或其任意组合。
本发明实施例中的“第一”、“第二”只是用于区分,不代表先后或大小的含义。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各 示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本发明实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到本发明可以用硬件实现,或固件实现,或它们的组合方式来实现。当使用软件实现时,可以将上述功能存储在计算机可读介质中或作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是计算机能够存取的任何可用介质。以此为例但不限于:计算机可读介质可以包括RAM、ROM、EEPROM、CD-ROM或其 他光盘存储、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质。此外。任何连接可以适当的成为计算机可读介质。例如,如果软件是使用同轴电缆、光纤光缆、双绞线、数字用户线(英文Digital Subscriber Line,简称DSL)或者诸如红外线、无线电和微波之类的无线技术从网站、服务器或者其他远程源传输的,那么同轴电缆、光纤光缆、双绞线、DSL或者诸如红外线、无线和微波之类的无线技术包括在所属介质的定影中。如本发明所使用的,盘(Disk)和碟(disc)包括压缩光碟(CD)、激光碟、光碟、数字通用光碟(DVD)、软盘和蓝光光碟,其中盘通常磁性的复制数据,而碟则用激光来光学的复制数据。上面的组合也应当包括在计算机可读介质的保护范围之内。
总之,以上仅为本申请技术方案的较佳实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (20)

  1. 一种信息处理方法,其特征在于,所述包括:
    根据网络应用的指示信息从至少一个网络协议栈中确定第一目标网络协议栈;
    通过对统一接口函数和所述第一目标网络协议栈进行适配,调用所述第一目标网络协议栈处理在运行所述网络应用过程中生成的信息。
  2. 根据权利要求1所述的方法,其特征在于,所述根据网络应用的指示信息从至少一个网络协议栈中确定第一目标网络协议栈包括:
    根据第一目的节点的指示信息和所述网络应用的指示信息从所述至少一个网络协议栈中确定所述第一目标网络协议栈;
    其中,所述在运行所述网络应用过程中生成的信息包括向所述第一目的节点发送的信息。
  3. 根据权利要求2所述的方法,其特征在于,所述方法还包括:
    在目的节点由所述第一目的节点变更为第二目的节点的情况下,根据所述第二目的节点的指示信息和所述网络应用的指示信息从所述至少一个网络协议栈中确定第二目标网络协议栈;
    通过对所述统一接口函数和所述第二目标网络协议栈进行适配,调用所述第二目标网络协议栈处理向所述第二目的节点发送的信息。
  4. 根据权利要求1至3中任一项所述的方法,其特征在于,所述通过对统一接口函数和所述第一目标网络协议栈进行适配,调用所述第一目标网络协议栈处理在运行所述网络应用过程中生成的信息,包括:
    根据所述统一接口函数和预设的第一对应关系,得到所述第一目标网络协议栈的接口函数,所述第一对应关系用于根据所述统一接口函数确定所述第一目标网络协议栈的接口函数;
    通过所述第一目标网络协议栈的接口函数调用所述第一目标网络协议栈处理在运行所述网络应用过程中生成的信息。
  5. 根据权利要求2或3所述的方法,其特征在于,所述根据第一目的节点的指示信息和所述网络应用的指示信息从至少一个网络协议栈中确定所述第一目标网络协议栈,包括:
    根据所述第一目的节点的指示信息、所述网络应用的指示信息以及预设 的第二对应关系确定所述第一目标网络协议栈,所述第二对应关系用于根据所述网络应用的指示信息和所述第一目的节点的指示信息确定所述第一目标网络协议栈。
  6. 根据权利要求2或3所述的方法,其特征在于,所述根据第一目的节点的指示信息和所述网络应用的指示信息从至少一个网络协议栈中确定所述第一目标网络协议栈,包括:
    根据第一目的节点的指示信息,确定所述第一目的节点的网络环境;
    根据所述网络应用的指示信息,确定所述网络应用的指示信息对应的所述网络应用的网络需求;
    根据所述第一目的节点的网络环境、所述网络应用的网络需求和所述至少一个网络协议栈的特性确定所述第一目标网络协议栈。
  7. 根据权利要求6所述的方法,其特征在于,所述方法还包括:
    在所述网络应用的网络需求发生变化的情况下,根据所述第一目的节点的网络环境、所述网络应用的新的网络需求和所述至少一个网络协议栈的特性确定第三目标网络协议栈;
    通过对所述统一接口函数和所述第三目标网络协议栈进行适配,调用所述第三目标网络协议栈处理向所述第一目的节点发送的信息。
  8. 根据权利要求1至7中任一项所述的方法,其特征在于,所述至少一个网络协议栈为至少两个网络协议栈。
  9. 根据权利要求1至8中任一项所述的方法,其特征在于,所述至少一个网络协议栈位于用户空间或内核空间。
  10. 一种信息处理装置,其特征在于,所述装置包括:
    确定模块,用于根据网络应用的指示信息从至少一个网络协议栈中确定第一目标网络协议栈;
    处理模块,用于通过对统一接口函数和所述确定模块确定的第一目标网络协议栈进行适配,调用所述第一目标网络协议栈处理在运行所述网络应用过程中生成的信息。
  11. 根据权利要求10所述的装置,其特征在于,
    所述确定模块用于,根据第一目的节点的指示信息和所述网络应用的指示信息从至少一个网络协议栈中确定所述第一目标网络协议栈;
    其中,所述在运行所述网络应用过程中生成的信息包括向所述第一目的 节点发送的信息。
  12. 根据权利要求11所述的装置,其特征在于,
    所述确定模块还用于,在目的节点由第一目的节点变更为第二目的节点的情况下,根据所述第二目的节点的指示信息和所述网络应用的指示信息从所述至少一个网络协议栈中确定第二目标网络协议栈;
    所述处理模块还用于,通过对所述统一接口函数和所述确定模块确定的所述第二目标网络协议栈进行适配,调用所述第二目标网络协议栈处理向所述第二目的节点发送的信息。
  13. 根据权利要求10至12中任一项所述的装置,其特征在于,所述处理模块用于:
    根据所述统一接口函数和预设的第一对应关系,得到所述第一目标网络协议栈的接口函数,所述第一对应关系用于根据所述统一接口函数确定所述第一网络协议栈的接口函数;
    通过所述第一网络协议栈的接口函数调用所述第一目标网络协议栈处理在运行所述网络应用过程中生成的信息。
  14. 根据权利要求11或12所述的装置,其特征在于,
    所述确定模块用于,根据所述第一目的节点的指示信息、所述网络应用的指示信息以及预设的第二对应关系确定所述第一目标网络协议栈,所述第二对应关系用于根据所述网络应用的指示信息和所述第一目的节点的指示信息确定所述第一目标网络协议栈。
  15. 根据权利要求11或12所述的装置,其特征在于,所述确定模块用于:
    根据所述第一目的节点的指示信息,确定所述第一目的节点的网络环境;
    根据所述网络应用的指示信息,确定所述网络应用的指示信息对应的所述网络应用的网络需求;
    根据所述第一目的节点的网络环境、所述网络应用的网络需求和所述至少一个网络协议栈的特性确定所述第一目标网络协议栈。
  16. 根据权利要求15所述的装置,其特征在于,
    所述确定模块还用于,在所述网络应用的网络需求发生变化的情况下,根据所述第一目的节点的网络环境、所述网络应用的新的网络需求和所述至 少一个网络协议栈的特性确定第三目标网络协议栈;
    所述处理模块还用于,通过对所述统一接口函数和所述确定模块确定的所述第三目标网络协议栈进行适配,调用所述第三目标网络协议栈处理向所述第一目的节点发送的信息。
  17. 根据权利要求10至16中任一项所述的装置,其特征在于,所述至少一个网络协议栈为至少两个网络协议栈。
  18. 根据权利要求10至17中任一项所述的装置,其特征在于,所述至少一个网络协议栈位于用户空间或内核空间。
  19. 一种信息处理装置,其特征在于,包括:
    应用模块,用于运行网络应用;
    协议栈模块,用于运行至少一个网络协议栈中的网络协议栈;
    接口模块,用于为所述应用模块运行的网络应用提供统一接口函数,所述统一接口函数用于调用所述协议栈模块中的所述至少一个协议栈;
    所述应用模块还用于,在运行网络应用时通过所述接口模块提供的所述接口函数调用所述至少一个网络协议栈中的网络协议栈处理在运行所述网络应用过程中生成的信息;
    适配模块,用于从所述协议栈模块中的所述至少一个网络协议栈中确定用于处理所述信息的目标网络协议栈,并对所述统一接口函数和所述目标网络协议栈进行适配,以使得所述应用模块通过所述统一接口函数调用所述目标网络协议栈处理所述信息。
  20. 根据权利要求19所述的装置,其特征在于,还包括:
    输入输出模块,用于向所述目的节点发送所述应用模块调用所述目标网络协议栈处理所述信息之后得到的第一报文,并记录所述第一报文与所述目标网络协议栈之间的对应关系;
    所述输入输出模块还用于,接收所述目的节点根据所述第一报文发送的第二报文,并根据记录的所述对应关系,将所述第二报文分发至所述目标网络协议栈进行处理。
PCT/CN2016/110097 2016-12-15 2016-12-15 信息处理方法和装置 WO2018107433A1 (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
PCT/CN2016/110097 WO2018107433A1 (zh) 2016-12-15 2016-12-15 信息处理方法和装置
CN201680091595.3A CN110073644B (zh) 2016-12-15 2016-12-15 信息处理方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2016/110097 WO2018107433A1 (zh) 2016-12-15 2016-12-15 信息处理方法和装置

Publications (1)

Publication Number Publication Date
WO2018107433A1 true WO2018107433A1 (zh) 2018-06-21

Family

ID=62557837

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2016/110097 WO2018107433A1 (zh) 2016-12-15 2016-12-15 信息处理方法和装置

Country Status (2)

Country Link
CN (1) CN110073644B (zh)
WO (1) WO2018107433A1 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112261031A (zh) * 2020-10-19 2021-01-22 腾讯科技(深圳)有限公司 Tcp协议栈的更新方法、装置、设备及存储介质
CN114338448A (zh) * 2021-12-29 2022-04-12 北京天融信网络安全技术有限公司 性能测试方法、装置、电子设备及存储介质
WO2022105884A1 (zh) * 2020-11-23 2022-05-27 中兴通讯股份有限公司 数据传输方法、装置、网络设备、存储介质
CN115834665A (zh) * 2023-02-08 2023-03-21 天翼云科技有限公司 一种网络通信方法和装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1829234A (zh) * 2006-04-10 2006-09-06 浙江大学 基于移动终端wap浏览器网络层的实现方法
CN101202974A (zh) * 2006-12-15 2008-06-18 华为技术有限公司 一种多制式基站互通的系统、基站及方法
US20140101337A1 (en) * 2012-10-10 2014-04-10 Honeywell Intl. Inc./Patent Services M/S Ab/2B Systems and methods for a dialog service interface switch
CN104660498A (zh) * 2015-03-17 2015-05-27 联想(北京)有限公司 网关设备和信息处理方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1829234A (zh) * 2006-04-10 2006-09-06 浙江大学 基于移动终端wap浏览器网络层的实现方法
CN101202974A (zh) * 2006-12-15 2008-06-18 华为技术有限公司 一种多制式基站互通的系统、基站及方法
US20140101337A1 (en) * 2012-10-10 2014-04-10 Honeywell Intl. Inc./Patent Services M/S Ab/2B Systems and methods for a dialog service interface switch
CN104660498A (zh) * 2015-03-17 2015-05-27 联想(北京)有限公司 网关设备和信息处理方法

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112261031A (zh) * 2020-10-19 2021-01-22 腾讯科技(深圳)有限公司 Tcp协议栈的更新方法、装置、设备及存储介质
CN112261031B (zh) * 2020-10-19 2023-08-29 腾讯科技(深圳)有限公司 Tcp协议栈的更新方法、装置、设备及存储介质
WO2022105884A1 (zh) * 2020-11-23 2022-05-27 中兴通讯股份有限公司 数据传输方法、装置、网络设备、存储介质
CN114338448A (zh) * 2021-12-29 2022-04-12 北京天融信网络安全技术有限公司 性能测试方法、装置、电子设备及存储介质
CN114338448B (zh) * 2021-12-29 2024-02-20 北京天融信网络安全技术有限公司 性能测试方法、装置、电子设备及存储介质
CN115834665A (zh) * 2023-02-08 2023-03-21 天翼云科技有限公司 一种网络通信方法和装置
CN115834665B (zh) * 2023-02-08 2023-06-23 天翼云科技有限公司 一种网络通信方法和装置

Also Published As

Publication number Publication date
CN110073644B (zh) 2021-08-31
CN110073644A (zh) 2019-07-30

Similar Documents

Publication Publication Date Title
US7257817B2 (en) Virtual network with adaptive dispatcher
US7899047B2 (en) Virtual network with adaptive dispatcher
US8830870B2 (en) Network adapter hardware state migration discovery in a stateful environment
US9588807B2 (en) Live logical partition migration with stateful offload connections using context extraction and insertion
US8739179B2 (en) Method and system for low-overhead data transfer
US7969989B2 (en) High performance ethernet networking utilizing existing fibre channel arbitrated loop HBA technology
US10574477B2 (en) Priority tagging based solutions in fc sans independent of target priority tagging capability
US8544025B2 (en) Efficient data transfer on local network connections using a pseudo socket layer
WO2023005773A1 (zh) 基于远程直接数据存储的报文转发方法、装置、网卡及设备
WO2018107433A1 (zh) 信息处理方法和装置
CN107222326B (zh) 用于设备间服务的访问方法、配置方法及装置
US8386614B2 (en) Network connection manager
CN113326101B (zh) 基于远程直接数据存储的热迁移方法、装置及设备
JP5107570B2 (ja) ネットワーク・プロトコル・スタック隔離のためのネットワーク・アーキテクチャ、方法、およびコンピュータ・プログラム
CN110389711B (zh) 帮助端点设备实现sr-iov功能的方法、设备和非瞬态计算机可读介质
US20240089352A1 (en) Udp message distribution method, udp message distribution apparatus, electronic device and computer readable storage medium
WO2020187124A1 (zh) 数据处理方法及装置
CN113765867A (zh) 一种数据传输方法、装置、设备及存储介质
US20080056263A1 (en) Efficient transport layer processing of incoming packets
WO2024001549A9 (zh) 地址配置方法和电子设备
CN113746802B (zh) 网络功能虚拟化中的方法以及本地状态和远程状态全存储的vnf装置
US11968169B1 (en) Domain name based deployment
WO2022222553A1 (zh) 一种容器间的通信方法及相关产品
WO2023246681A1 (zh) 一种通信方法及装置
WO2023202241A1 (zh) 一种通信方法及相关产品

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 16924087

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 16924087

Country of ref document: EP

Kind code of ref document: A1