CN114175589A - 用于管理连接的设备和方法 - Google Patents
用于管理连接的设备和方法 Download PDFInfo
- Publication number
- CN114175589A CN114175589A CN201980097970.9A CN201980097970A CN114175589A CN 114175589 A CN114175589 A CN 114175589A CN 201980097970 A CN201980097970 A CN 201980097970A CN 114175589 A CN114175589 A CN 114175589A
- Authority
- CN
- China
- Prior art keywords
- connection
- entity
- holder
- communication device
- host communication
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W76/00—Connection management
- H04W76/10—Connection setup
- H04W76/15—Setup of multiple wireless link connections
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W76/00—Connection management
- H04W76/10—Connection setup
- H04W76/11—Allocation or use of connection identifiers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W76/00—Connection management
- H04W76/20—Manipulation of established connections
- H04W76/25—Maintenance of established connections
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer And Data Communications (AREA)
Abstract
公开了一种用于管理连接的设备。所述设备包括:端点实体,用于利用主机通信设备建立一个或多个连接;保持器实体,用于通过存储关于至少一个已建立连接中的每个连接的相应连接对象,从所述一个或多个连接中保留所述至少一个已建立连接;应用实体,用于从所述保持器实体获取确定连接,并使用所述确定连接的相应连接对象通过所述主机通信设备进行通信。
Description
技术领域
本发明通常涉及管理一种或多种网络通信中的连接的领域,更具体地,涉及用于回收已建立的连接的设备和方法。为此,本发明提供一种设备,该设备使用主机通信设备建立连接,并进一步保留已建立的连接。此外,该设备复用保留的连接与另一设备进行通信。
背景技术
通常,对于某些应用,网络连接的建立时长对其性能至关重要。例如,一些应用是基于短寿命连接(即,经常创建和破坏)。在这类情况下,所述时长实际上可能比那些连接的使用时间更长。此外,另一个示例是并行应用,其中,总共N个进程可能发起多达(N2-N)个并发连接请求,使得连接建立阶段不必要地过长。
传统的网络连接建立通常包括以下元素:
·资源分配;
·目的名称或地址解析;
·路由决策;
·访问控制;
·协议协调。
其中一些元素可能是多余的,例如,当从同一源或同一目的地建立多个连接时。此外,每个元素都有时间和资源成本,有时两者都是可以避免的。需要建立连接的一些常见协议如下:
·传输控制协议(Transmission Control Protocol,TCP):进行“三次握手”,在最新的硬件上持续大约5毫秒(参见图4,“客户端”与“服务器”连接),
·不可靠数据报协议(Unreliable Datagram Protocol,UDP):不交换任何消息,但套接字分配持续约1毫秒,
·远程直接内存访问(Remote Direct Memory Access,RDMA):依赖队列对(QueuePair,QP)类型:可靠连接(Reliable Connection,RC)类似于TCP,不可靠数据报(UnreliableDatagram,UD)类似于UDP。
下面简要讨论三种传统方法,其中,每种方法都以不同的方式处理问题:
a.现行应用套接字管理:该方法只关注单个应用内的TCP连接,只处理连接建立的资源分配元素。这种技术描述了应用级别而非传统使用的操作系统级别上复用的资源池。
b.使Linux内核能够支持套接字重用:该方法提出对操作系统(即,Linux内核)进行修改,以重用过去的资源分配(呈“套接字”形式,为新的连接分配其中一种资源)。它们的机制是上文在(a)项讨论的技术之一的替代方案,通过以资源分配时间为目标帮助提高连接建立的性能。
c.TCP会话的快速恢复:该方法提出在应用执行期间恢复两个相同端点之间的过去TCP连接。这意味着在连接期间,例如可以通过对中断之前最后发送的消息进行重传以将连接保持开放并稍后恢复连接。该方法关注无线无线电通信以及多个路由器的情况,其中,端点从一个路由器移动到另一个。
此外,还提出了几种替代的传统方法,这些方法可以减少连接建立开销,如下:
d.“代理”进程:联网中的常见技术是创建“代理”实体,将作为连接的源与目的之间的“中间人”。采用这种代理的两个示例是网络地址转换(Network AddressTranslation,NAT)和负载均衡器,其中,分离服务于除建立连接性能之外的目的。当源不存在时,这种代理可以保持与目的的开放连接,但尚不了解为此目的(减少连接建立开销)设计的代理的现有实现方式。
e.无状态连接:有可能设计出一种连接,其需要的连接建立的工作最小,即,没有请求或响应,不需要操作系统资源,创建时间最短。这种连接在任何常见的实现方式中都不受支持,并且可能会受到许多限制,但是可能实现相同的目标。
f.集中式连接管理:对于并行应用的应用案例,有可能通过形成单个集中实体来处理连接建立开销,该实体将用于在每个端点上建立开销很小的连接。如今,软件包“PMI-X”使用类似的方法,它促进了连接信息的交换(节省了地址解析时间),但是仍然需要考虑给定的信息针对每个连接频繁地建立连接。
此外,还提出了另一种替代的传统方法,可能能够在没有指定目的的情况下建立连接,如下:
g.广播/组播:建立广播或组播通信通常涉及中心实体(例如,InfiniBand子网管理),类似于上述替代方案(c)或非集中式方法(例如,IGMP协议)。这两种情况都可以将新端点连接到包括其他端点的组,这可以看作加入了与这些其他端点的现有连接。这可以实现本发明的某些方面,例如,在没有指定其他端点的地址(仅组播组地址)的情况下建立连接,即使为空,也可以保留组播组。然而,在这种情况下,这种连接建立的开销仍然很大(而且也存在其他限制)。
然而,传统设备和方法的缺点在于只能实现一小部分连接建立的方面。例如,传统设备和方法关注特定的协议(主要是TCP),并且只解决一部分一般问题。更具体而言,在(a)和(b)项下讨论的技术仅公开了套接字分配的问题,而没有公开在所分配的套接字上建立连接的问题。此外,所讨论的技术项(c)更加相关,但它也关注了狭义的应用案例,即,在路由中断或更改之后,恢复两个端点之间的过去连接。上文讨论的技术不包括其他概述的连接建立元素,例如地址解析。此外,传统设备和方法不能实现大多数的连接建立方面。
发明内容
鉴于上述问题和缺点,本发明旨在改进传统设备和方法。因此,本发明的目的是提供一种用于管理连接的设备和方法,例如,作为传统连接建立方案的替代方案,其中,在传统方案中,每个新连接都是通过对通信相关的过程单独建立的。本发明的设备和方法管理所述连接,使得可以创建一次所述连接,并且可以进一步复用(例如,无限使用)所述连接,例如,由与创建所述连接的应用不同的应用复用。
本发明的目的通过所附独立权利要求中提供的解决方案来实现。本发明的有利实现方式在从属权利要求中进一步定义。
本发明的第一方面提供一种用于管理连接的设备,其中,所述设备包括:端点实体,用于利用主机通信设备建立一个或多个连接;保持器实体,用于通过存储关于至少一个已建立连接中的每个连接的相应连接对象,从所述一个或多个连接中保留所述至少一个已建立连接;应用实体,用于从所述保持器实体获取确定连接,并使用所述确定连接的相应连接对象通过所述主机通信设备进行通信。
所述第一方面的设备管理连接。所述设备可以位于或可以包括在诸如客户端设备、服务器设备等主机通信设备中。例如,在一些实施例中,所述设备可以是客户端设备,即包括发起所述连接的所述端点实体的设备(在某些连接类型中)。例如,所述设备可以是个人计算机、移动设备(可以是智能手机)、平板电脑等。在一些实施例中,所述设备可以是服务器设备,即包括所述端点实体的设备,所述端点实体从所述客户端接收所述连接(在某些连接类型中)。所述设备可以具有可以包括硬件和软件的电路。所述硬件可包括模拟电路或数字电路,或模拟电路和数字电路两者。在一些实施例中,所述电路包括一个或多个处理器和连接到所述一个或多个处理器的非易失性存储器。所述非易失性内存可携带可执行程序代码,当所述可执行程序代码由所述一个或多个处理器执行时,使所述设备执行本文描述的操作或方法。
所述端点实体可以是在所述设备上执行进程的实体,以便与另一设备(例如,主机通信设备)通信。
所述连接可以是当至少一个端点可以向一个或多个其他端点发送消息,而不对目标端点执行任何动作时的连接状态。端点需要目的地址以向其发送消息。所述连接可以是所述设备与主机通信设备(例如,服务器设备)之间的连接。
连接建立可以是使得端点实体关于另一个端点实体达到连接状态的一系列动作。
所述连接对象可以是成功建立连接的结果,是进行通信所需的。
所述设备包括所述保持器实体。例如,所述保持器实体可以是存储连接并保持其可用的中心实体。此外,例如,所述应用实体(例如,在同一设备上)可以查询现有连接的列表,获取连接(以独占或共享方式),还可以将连接存放回所述保持器实体。
所述第一方面的设备可以允许新应用实体从由所述保持器实体拥有的预先存在的已建立连接组中进行选择,获得确定连接,立即使用所述确定连接(即,无需建立连接),还可以将其存放回保持器实体,以便存储、将来使用等。
所述第一方面的设备可以具有减少连接建立开销的优点,提供新的可用功能。例如,应用实体可以在不知道其目的的情况下(从保持器实体)获取连接(即,匿名连接)。
在一些实施例中,所述设备可能能够复用预先存在的连接作为所述传统连接建立的替代方案。
在一些实施例中,所述设备可以将连接的“维持”(保持其可用)与所述应用实体使用所述连接分开。
在一些实施例中,所述设备可以使得应用实体能够在没有指定目的地地址的情况下进行连接(通过复用来自所述保持器实体的预先存在的连接,基于其标识(identifier,ID)或最后使用的连接等)。
在所述第一方面的一种实现方式中,所述应用实体还用于在进行所述通信之后将所述相应连接对象存放到所述保持器实体。
在所述第一方面的另一种实现方式中,所述保持器实体包括两个接口,所述两个接口包括面向所述端点实体的第一接口和面向所述应用实体的第二接口。
具体地,所述第二接口可以是面向网络的接口。
在所述第一方面的另一种实现方式中,所述第二接口用于从所述应用实体接收关于所述确定连接的请求;为所述应用实体提供所述确定连接的所述相应连接对象。
这是有益的,因为它可以(明显地)缩短连接建立时间,例如,从数毫秒缩短到数微秒(取决于所述保持器实体的实现方式)。
在一些实施例中,有可能实现基于软件的新连接建立工具,其中,专用应用实体只为所述保持器实体创建连接。之后,另一个应用实体可能仅选择与一个或多个目标(即,主机通信设备)的现有连接。
在所述第一方面的另一种实现方式中,所述第二接口还用于从所述应用实体接收连接对象。
在所述第一方面的另一种实现方式中,所述保持器实体还用于基于所述至少一个已建立连接的相应连接类型,维持-开放与所述主机通信设备的所述至少一个已建立连接。
特别地,所述设备(例如,其保持器实体)可以使用几种不同的机制来维持-开放连接。可以基于连接类型确定使用的机制。
在所述第一方面的另一种实现方式中,通过经由所述端点实体周期性发送保活消息并利用所述主机通信设备来执行所述维持-开放操作。
特别地,“保活”可以是在某些连接类型(例如,TCP)中用于维持-开放连接的机制的一个示例。在该机制中,所述保持器实体的作用包括发起关于该连接的周期性保活消息和响应另一个(远程)终端发起的其他保活消息。
在所述第一方面的另一种实现方式中,所述保持器实体还用于经由所述端点实体从所述主机通信设备接收后续保活消息,其中,所述保活消息指示所述主机通信设备服务于所述至少一个已建立连接。
在所述第一方面的另一种实现方式中,所述保持器实体还用于确定所述主机通信设备维持-开放还是终止连接。
在所述第一方面的另一种实现方式中,所述保持器实体还用于如果终止与所述主机通信设备的连接,则通过删除与所述连接对应的所述相应连接对象来放弃所述连接。
在所述第一方面的另一种实现方式中,所述保持器实体还用于为每个保留的连接分配标识ID。
在所述第一方面的另一种实现方式中,所述端点实体还用于从所述主机通信设备接收确认消息,其中所述确认消息指示建立连接。
在所述第一方面的另一种实现方式中,所述应用实体还用于执行以下一项或多项:
·向所述保持器实体请求连接列表;
·请求满足预定义标准的确定连接;
·将确定连接的连接对象存放到所述保持器实体,其中,所述确定连接为新建立的连接;
·将确定连接的连接对象存放到所述保持器实体,其中,所述确定连接是从所述保持器实体获取的已使用连接。
特别地,所述应用实体可以将所述连接返回到所述保持器实体,例如,一旦该应用实体完成使用所述连接进行通信。换言之,所述保持器实体可以从所述端点实体获取“新”连接和/或从所述应用实体获取“已使用”连接(例如,通常在所述应用实体终止之前)。所述保持器实体可以类似地处理这两种连接,即,可以将这些连接保“活”,直到另一个应用实体获取这些连接。
在所述第一方面的另一种实现方式中,所述保持器实体还用于维持-开放所述存放的新建立连接和/或所述存放的已使用连接,直到应用实体获取。
在所述第一方面的另一种实现方式中,所述预定义标准是基于以下一项或多项确定的:
·通信的目的;
·主机通信设备的地址;
·主机通信设备上服务的名称;
·连接ID;
·最近最少使用(LRU)连接;
·最近使用(MRU)连接。
本发明的第二方面提供一种用于管理连接的方法,其中,所述方法包括:端点实体利用主机通信设备建立一个或多个连接;保持器实体通过存储关于至少一个已建立连接中的每个连接的相应连接对象,从所述一个或多个连接中保留所述至少一个已建立连接;应用实体从所述保持器实体获取确定连接,并使用所述确定连接的相应连接对象通过所述主机通信设备进行通信。
在所述第二方面的一种实现方式中,所述方法还包括:所述应用实体在进行所述通信之后,将所述相应连接对象存放到所述保持器实体。
在所述第二方面的另一种实现方式中,所述保持器实体包括两个接口,所述两个接口包括面向所述端点实体的第一接口和面向所述应用实体的第二接口。
在所述第二方面的另一种实现方式中,所述方法还包括:所述第二接口从所述应用实体接收关于所述确定连接的请求;所述第二接口为所述应用实体提供所述确定连接的所述相应连接对象。
在所述第二方面的另一种实现方式中,所述方法还包括:所述第二接口从所述应用实体接收连接对象。
在所述第二方面的另一种实现方式中,所述方法还包括:基于所述至少一个已建立连接的相应连接类型,所述保持器实体维持-开放与所述主机通信设备的所述至少一个已建立连接。
在所述第二方面的另一种实现方式中,通过经由所述端点实体周期性发送保活消息并利用所述主机通信设备来执行所述维持-开放操作。
在所述第二方面的另一种实现方式中,所述方法还包括:所述保持器实体经由所述端点实体从所述主机通信设备接收后续保活消息,其中,所述保活消息指示所述主机通信设备服务于所述至少一个已建立连接。
在所述第二方面的另一种实现方式中,所述方法还包括:所述保持器实体确定所述主机通信设备维持-开放还是终止连接。
在所述第二方面的另一种实现方式中,所述方法还包括:如果终止与所述主机通信设备的连接,则所述保持器实体通过删除与所述连接对应的所述相应连接对象来放弃所述连接。
在所述第二方面的另一种实现方式中,所述方法还包括:所述保持器实体为每个保留的连接分配标识ID。
在所述第二方面的另一种实现方式中,所述方法还包括:所述端点实体从所述主机通信设备接收确认消息,其中所述确认消息指示建立连接。
在所述第二方面的另一种实现方式中,所述方法还包括:所述应用实体执行以下一项或多项:
·向所述保持器实体请求连接列表;
·请求满足预定义标准的确定连接;
·将确定连接的连接对象存放到所述保持器实体,其中,所述确定连接为新建立的连接;
·将确定连接的连接对象存放到所述保持器实体,其中,所述确定连接是从所述保持器实体获取的已使用连接。
在所述第二方面的另一种实现方式中,所述方法还包括:所述保持器实体维持-开放所述存放的新建立连接和/或所述存放的已使用连接,直到应用实体获取。
在所述第二方面的另一种实现方式中,所述方法还包括:基于以下一项或多项确定预定义标准:
·通信的目的;
·主机通信设备的地址;
·主机通信设备上服务的名称;
·连接ID;
·最近最少使用(LRU)连接;
·最近使用(MRU)连接。
本发明的第三方面提供一种包括计算机程序代码的计算机程序产品,其中,当所述计算机程序代码由处理器执行时,使得根据所述第二方面或所述第二方面的实现方式所述的方法被执行。
本发明的第四方面提供一种计算机可读存储介质,包括可由计算机执行的计算机程序代码指令,其中,当所述计算机程序代码指令在计算机上运行时,用于执行根据所述第二方面或所述第二方面的实现方式所述的方法。
应注意,本申请中所描述的所有设备、元件、单元和构件都可以在软件或硬件元件或其任何种类的组合中实施。本申请中描述的各种实体执行的所有步骤和所描述的将由各种实体执行的功能旨在表明各个实体适于或用于执行各自的步骤和功能。即使,在以下具体实施例的描述中,待由外部实体执行的特定功能或步骤未反映在执行该特定步骤或功能的该实体的具体详细元件的描述中,技术人员也应该清楚,这些方法和功能可以在相应的软件或硬件元件,或其任何种类的组合中实施。
附图说明
结合所附附图,下面具体实施例的描述将阐述上述本发明的各方面及其实现形式,其中:
图1是根据本发明实施例的用于管理连接的设备的示意图;
图2a是在两个传统设备之间执行的传统连接建立程序的示意图;
图2b是根据本发明的在设备与主机通信设备之间执行的回收连接建立程序的示意图;
图3是根据本发明实施例的用于管理连接的方法的示意图;
图4示意性地示出了客户端设备与服务器设备之间的传统连接建立程序;
图5示意性地示出了传统的PMI-X方法。
具体实施方式
图4示意性地示出了客户端设备与服务器设备之间的传统连接建立程序。
传统连接建立程序400是基于TCP的。初始时,客户端设备400向服务器设备410发送连接请求。此外,服务器设备410向客户端设备400发送连接确认消息,应用数据(例如,在客户端设备400上)可以与服务器设备410进行通信。
此外,传统分布式连接建立是广义连接建立的实例,其中,同时存在多个端点尝试连接到同一目的。在极端情况下,每个实体都与所有其他实体建立连接,这使得连接数量随实体数量呈指数增长。存在一些软件在一定程度上解决了这个问题,即,Mellanox的可扩展子网管理以及开源项目E级进程管理接口(Process Management Interface,PMI)“PMI-X”(在图5中描述)。
图5示意性地示出了传统的PMI-X技术500。传统的PMI-X技术500有所有尝试建立连接的实体的地址(并有效地分配这些地址)。
传统的PMI-X技术500包括若干模式:“Full-modex”模式501;、“Direct-modex” 502、“Instant-on”模式503,其可在N个并行进程(例如,分散在不同的主机上)之间建立连 接。每一种模式描述如下:
·“Full-modex”模式501:在这种情况下,每个进程都将其地址发送给网络中PMIx 504的代表,并等待其他进程也发送地址。此外,一旦全部提交N个地址,则广播,使得每个进 程都获取其他N–1个进程的地址。
·“Direct-modex”模式502:在这种情况下,每个进程也将其地址发送给网络中 PMIx504的代表。然而,在这种情况下,进程不等待其他N–1个地址继续运行。此外,例如,只 有准备将地址发送给其他进程时,进程X才会从中心实体请求X的地址,并使用该地址建立 连接(从这里开始,使用传统方式建立连接,例如,TCP的3次握手,如图4所示)。
·“Instant-on”模式503:在这种情况下,地址本身没有交换。这适用于如下情况: 可以直接从目的描述推导地址,而建立连接所需的地址查找很简单。例如,地址是固定前缀 和目标进程的ID的组合(可用于连接)。
在上文讨论的所有三种模式中,最坏地情况下将产生N2-N连接。此外,PMIx 504仅 仅是集中式地址查找目录(即,备用进程需要自行解决地址)。然而,传统的PMI-X技术500的缺点在于它仅涵盖连接建立的某些方面:PMIx仅涵盖地址查找(通过交换)。
除了普通的“一对一”(单播)连接外,还存在一对多连接的情况。更具体地说,广播和多播是单个源与多个目的进行通信的通信类型。这类连接通常需要额外的协调和工作来建立。本发明的技术教示也可以应用于这些类型的连接。
此外,由于连接建立是网络通信的关键组成部分,因此有很多关于技术方面的材料,其中大多数适用于连接建立的单一“隔离”实例。本发明以及相关现有技术涉及针对多个连接建立请求的情况进行优化,与简单地重复单个连接建立流程相比,可以改进这些优化。
结合附图描述了用于管理通信系统中的连接的方法、装置和程序产品的说明性实施例。尽管该描述提供了可能实现方式的详细示例,但应注意,这些细节旨在是示例性的,并且不会限制本申请的范围。
此外,一实施例/示例可以指其他多个实施例/示例。例如,一个实施例/示例中提及的任何描述,包括但不限于术语、元件、过程、解释和/或技术优势均适用于其他多个实施例/示例。
图1是根据本发明实施例的用于管理连接111、112的设备100的示意图。
设备100包括端点实体101,用于利用主机通信设备110建立一个或多个连接111、112。
例如,设备100可以是个人计算机、智能手机、平板电脑等。
在图1的实施例中,作为示例,在设备100(经由其端点实体101)与主机通信设备110之间建立两个连接111和112。
设备100还包括保持器实体102,用于通过存储关于至少一个已建立连接111中的每个连接的相应连接对象121,从所述一个或多个连接111、112中保留所述至少一个已建立连接111。
例如,连接111(用实线示出)是已建立连接。保持器实体102通过将连接111的相应连接对象121存储在保持器实体102中来该连接。此外,已建立连接112(用虚线示出)是未由保持器实体102保留的连接,但不对本发明构成限制。
设备100还包括应用实体103,用于从保持器实体102获取确定连接111,并使用确定连接111的相应连接对象121通过主机通信设备110进行通信。
设备100可包括电路。所述电路可以包括硬件和软件。例如,所述保持器实体和/或所述应用实体可以是或可以并入所述硬件和/或软件。所述硬件可包括模拟电路或数字电路,或模拟电路和数字电路两者。在一些实施例中,所述电路包括一个或多个处理器和连接到所述一个或多个处理器的非易失性存储器。所述非易失性内存可携带可执行程序代码,当所述可执行程序代码由所述一个或多个处理器执行时,使所述设备执行本文描述的操作或方法。
设备100可以缩短建立新连接所需的持续时间(例如,消除该时间)。例如,复用连接不需要通信,因此不需要分配新资源。此外,对于并行应用,有可能一次性创建所有连接(例如,作为应用安装的一部分),并在每次运行中复用每个连接,从而避免连接建立开销。
参见图2a,图2a是在两个传统设备200与210(例如,传统客户端设备200与传统服务器设备210)之间执行的传统连接建立程序200A的示意图。此外,图2b是根据本发明的在设备100与主机通信设备110之间执行的回收连接建立程序200B的示意图。
在传统的连接建立程序200A中,端点实体201建立第一连接211。例如,它可以发送连接请求,获得连接响应,然后传输数据。此外,端点实体201可以终止连接211。
此外,端点实体201还建立第二连接212。在传统的连接建立程序200A中,建立连接211、212的程序相同(工作也相同)。
在传统的连接建立程序200A中,第二连接建立212与第一已建立连接211相同。传统的连接建立程序200A存在开销问题(例如,这种开销问题可以通过设备100和/或本发明的方法解决)。
在图2a和图2b中,在时间轴上进行不同的连接建立步骤,以便比较两种情况(即,传统程序200A和根据本发明的程序200B)。
此外,根据本发明,在设备100与主机通信设备110之间执行回收连接建立程序200B。
在回收连接建立程序200B中,设备100的端点实体101利用主机通信设备110建立第一连接111。例如,它可以发送连接请求,获得连接响应,然后传输数据。此外,一旦完成通信,端点实体101将已建立连接111的连接对象121存放到保持器实体102(并且可能不再将该连接对象用于同一应用实体)。
另外,例如,当下一次需要与同一目的连接时,可以回收(保持器实体102保留的已建立连接111的)同一连接对象121,而非建立另一个连接。
应注意,对于第一连接建立(即,建立连接111),不会发生回收,因为通过查询保持器实体102没有找到合适连接对象。
在回收连接建立程序200B中,保持器实体102保留连接111,因此,当建立第二连接时可以复用连接111,从而由于已经建立连接而不需要开销(类似于TCP中的连接请求和响应)。
例如,保持器实体102可以作为用户空间应用、操作系统的一部分、某种网络相关硬件的一部分等实现,这取决于它需要保持的连接类型。例如,TCP和UDP资源是Linux内核的一部分,因此该内核是保持器实体实现TCP和UDP连接的适当框架。相比之下,用户空间网络连接,例如RDMA,可能强制用户空间应用(可能是守护进程)用于保持器实体,并且未来的网络接口卡(Network Interface Card,NIC)可以包括硬件或固件中的部分实现。
保持器实体102包括两个接口:面向端点实体101的第一接口和面向应用实体103的第二接口。面向所述应用实体的所述第二接口可以允许应用查询可用(保持的)连接,并将此类连接的“归属”从保持器实体102传输到应用并传回。面向网络的接口(即第一接口)负责保持连接可用。例如,TCP连接涉及在连接的两个终端之间发送周期性“保活”消息,如果没有该消息,则连接在一段时间(“连接超时”)之后就会关闭或断开。保持器实体102可负责维持-开放连接,例如,通过发送“保活”消息并响应另一方发送的消息。远端可能不知道保持器的存在。
此外,当应用实体103需要新连接时,它可以将保持器实体102作为传统连接建立的替代方案。如果保持器实体102在同一主机上运行,则应用实体103可以请求现有连接的列表,或者请求满足特定标准(例如,确定的目的地或者通过某种其他标识等)的连接。
例如,主机“A”(例如,设备100)上的应用实体103可以请求通过以下一个或多个程序复用与主机“B”上某个已知服务的连接:
(a)指定主机“B”的地址和服务名称;
(b)指定某个连接ID(可能由同一应用的过去运行创建);
(c)请求连接列表以及关于每个连接的一些信息。
应用实体103还可以自行选择连接。
保持器实体102可以考虑权限和访问控制方面,以便任何应用实体103都无法发现或访问当前保持的任何连接。它还可以管理其保持的连接的资源消耗,从而可能维持每个应用、每个用户或一些其他标准的配额。此外,在应用完成之前,该保持器实体可以选择将连接存放到保持器实体102或永久关闭该连接。所述连接最初可以由应用实体(例如,应用实体103)创建,并且可以进一步存放到保持器实体102,或者可能由保持器实体102本身创建。
图3示出了根据本发明实施例的用于管理连接的方法300。如上所述,方法300可以由设备100执行。
方法300包括步骤301:端点实体101利用主机通信设备建立一个或多个连接111、112。
方法300还包括步骤302:保持器实体102通过存储关于至少一个已建立连接111中的每个连接的相应连接对象121,从一个或多个连接111、112中保留至少一个已建立连接111。
方法300还包括步骤303:应用实体103从保持器实体102获取确定连接111,并使用确定连接111的相应连接对象121通过主机通信设备110进行通信。
已经结合作为实例的不同实施例以及实现方式描述了本发明。然而,根据对附图、本发明和独立权利要求的研究,本领域技术人员在实践所要求保护的发明时,能够理解和实现其他变化。在权利要求书以及说明书中,词语“包括”不排除其他元件或步骤,且不定冠词“一”或者“一个”不排除多个。单个元件或其他单元可满足权利要求书中所叙述的若干实体或项目的功能。仅仅在相互不同的从属权利要求中叙述某些措施这一事实并不意味着这些措施的组合不能在有利的实现方式中使用。
尽管一些方面已经在方法的上下文中描述,但是很明显这些方面还表示适合于执行这种方法的对应装置的描述。在这种装置中,(功能或有形)块或设备可对应于一个或多个方法步骤或方法步骤的特征。类似地,在对应装置的对应块或项目或特征的上下文中描述的方面也可以对应于对应方法的各个方法步骤。
此外,本文描述的方法还可以通过(或使用)诸如处理器、微处理器、可编程计算机或电子电路等硬件装置来执行。一个或多个最重要的方法步骤可由这种装置执行。如果装置在本文中已根据功能元件(例如,保持器实体、端点实体和应用实体等)进行描述,则还应理解,装置的这些元件可以在硬件元件/电路中全部或部分实现。各个硬件,如处理器或微处理器、发射器电路、接收器电路等,可用于实现所述装置的一个或多个元件的功能。
此外,在实施硬件中装置的功能元件的方法步骤的过程中要存储信息或数据时,所述装置可包括存储器或存储介质,其可通信式地耦合至装置的一个或多个硬件元件/电路。
还考虑在硬件或软件或其组合中实现本发明的各方面。这可以使用数字存储介质,例如DVD、CD、ROM、PROM、EPROM、EEPROM或FLASH存储器,其上存储有电子可读控制信号或指令,这些信号或指令与可编程计算机系统协作(或能够与其配合)使得相应方法得以执行。可提供数据载体,其具有电子方式可读的控制信号或指令,这些信号或指令能够与可编程计算机系统协作以执行本文所述的方法。
还考虑采用一种具有程序代码的计算机程序产品的形式实施本发明的各个方面,当在计算机上运行计算机程序产品时,可操作所述程序代码以执行所述方法。所述程序代码可存储在计算机可读介质中。
以上描述仅是说明性的,应理解,本文描述的布置和细节的修改和变化对于本领域的其他技术人员来说将是显而易见的。因此,意图是仅受待决权利要求的范围限制,而不受通过上文描述和解释呈现的具体细节限制。
缩略语和术语的定义:
端点 主机上的进程,能够与其他进程通信。
地址 端点位置的二进制表示。每个端点都有(至少)一个唯一的地址。
连接 当至少一个端点可以向一个或多个其他端点发送消息,而不对目标端点执行任何动作时的状态。端点需要目的地地址以向其发送消息。
连接建立 使得端点相对于另一个端点达到连接状态的一系列动作。
连接对象 成功建立连接的结果,是通信所需的。
客户端 发起连接的端点(在某些连接类型中)。
服务器 从客户端接收连接的端点(在某些连接类型中)。
TCP 传输控制协议(连接类型示例)。
UDP 不可靠数据报协议(连接类型示例)。
IGMP 因特网组管理协议(针对多端点连接的示例)。
RDMA 远程直接内存访问(连接类型示例)。
Claims (18)
1.一种用于管理连接的设备(100),其特征在于,所述设备(100)包括:
端点实体(101),用于利用主机通信设备(110)建立一个或多个连接(111、112);
保持器实体(102),用于通过存储关于至少一个已建立连接(111)中的每个连接的相应连接对象(121),从所述一个或多个连接(111、112)中保留所述至少一个已建立连接(111);
应用实体(103),用于从所述保持器实体(102)获取确定连接(111),并使用所述确定连接(111)的相应连接对象(121)通过所述主机通信设备(110)进行通信。
2.根据权利要求1所述的设备(100),其特征在于:
所述应用实体(103)还用于在进行所述通信之后,将所述相应连接对象(121)存放到所述保持器实体(102)。
3.根据权利要求1或2所述的设备(100),其特征在于:
所述保持器实体(102)包括两个接口,所述两个接口包括面向所述端点实体(101)的第一接口和面向所述应用实体(103)的第二接口。
4.根据权利要求3所述的设备(100),其特征在于,所述第二接口用于:
从所述应用实体(103)接收关于所述确定连接(111)的请求;
为所述应用实体(103)提供所述确定连接(111)的所述相应连接对象(121)。
5.根据权利要求3或4所述的设备(100),其特征在于:
所述第二接口还用于从所述应用实体(103)接收连接对象(121)。
6.根据权利要求1至5中任一项所述的设备(100),其特征在于:
所述保持器实体(102)还用于基于所述至少一个已建立连接(111)的相应连接类型,维持-开放与所述主机通信设备(110)的所述至少一个已建立连接(111)。
7.根据权利要求6所述的设备(100),其特征在于:
通过经由所述端点实体(101)周期性发送保活消息并利用所述主机通信设备(110)来执行所述维持-开放操作。
8.根据权利要求6或7所述的设备(100),其特征在于:
所述保持器实体(102)还用于经由所述端点实体(101)从所述主机通信设备(110)接收后续保活消息,其中,所述保活消息指示所述主机通信设备(110)服务于所述至少一个已建立连接(111)。
9.根据权利要求1至8中任一项所述的设备(100),其特征在于:
所述保持器实体(102)还用于确定所述主机通信设备(110)维持-开放还是终止连接。
10.根据权利要求1至9中任一项所述的设备(100),其特征在于:
所述保持器实体(102)还用于如果终止与所述主机通信设备(110)的连接,则通过删除与所述连接对应的所述相应连接对象来放弃所述连接。
11.根据权利要求1至10中任一项所述的设备(100),其特征在于:
所述保持器实体(102)还用于为每个保留的连接分配标识ID。
12.根据权利要求1至11中任一项所述的设备(100),其特征在于:
所述端点实体(101)还用于从所述主机通信设备(110)接收确认消息,其中,所述确认消息指示建立连接(111、112)。
13.根据权利要求1至12中任一项所述的设备(100),其特征在于,所述应用实体(103)还用于执行以下一项或多项:
向所述保持器实体(102)请求连接列表;
请求满足预定义标准的确定连接;
将确定连接的连接对象存放到所述保持器实体(102),其中,所述确定连接为新建立的连接;
将确定连接的连接对象存放到所述保持器实体(102),其中,所述确定连接是从所述保持器实体(102)获取的已使用连接。
14.根据权利要求13所述的设备(100),其特征在于
所述保持器实体(102)还用于维持-开放所述存放的新建立连接和/或所述存放的已使用连接,直到应用实体(103)获取。
15.根据权利要求13或14所述的设备(100),其特征在于,所述预定义标准是基于以下一项或多项确定的:
通信的目的;
主机通信设备(110)的地址;
主机通信设备(110)上服务的名称;
连接ID;
最近最少使用(LRU)连接;
最近使用(MRU)连接。
16.一种用于管理连接的方法(300),其特征在于,所述方法(300)包括:
端点实体(101)利用主机通信设备(110)建立(301)一个或多个连接(111、112);
保持器实体(102)通过存储关于至少一个已建立连接(111)中的每个连接的相应连接对象(121),从所述一个或多个连接(111、112)中保留(302)所述至少一个已建立连接(111);
应用实体(103)从所述保持器实体(102)获取(303)确定连接(111),并使用所述确定连接(111)的相应连接对象(121)通过所述主机通信设备(110)进行通信。
17.一种包括计算机程序代码的计算机程序产品,其特征在于,当所述计算机程序代码由处理器执行时,使得根据权利要求16所述的方法(300)被执行。
18.一种计算机可读存储介质,其特征在于,包括可由计算机执行的计算机程序代码指令,其中,当所述计算机程序代码指令在计算机上运行时,用于执行根据权利要求16所述的方法(300)。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/EP2019/069356 WO2021008709A1 (en) | 2019-07-18 | 2019-07-18 | Device and method for managing connections |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114175589A true CN114175589A (zh) | 2022-03-11 |
CN114175589B CN114175589B (zh) | 2023-07-18 |
Family
ID=67396932
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980097970.9A Active CN114175589B (zh) | 2019-07-18 | 2019-07-18 | 用于管理连接的设备和方法 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN114175589B (zh) |
WO (1) | WO2021008709A1 (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040221031A1 (en) * | 2003-04-29 | 2004-11-04 | Oracle International Corporation | Method and apparatus using connection pools in communication networks |
US20160127414A1 (en) * | 2014-10-29 | 2016-05-05 | International Business Machines Corporation | TLS connection abandoning |
CN106095341A (zh) * | 2016-06-14 | 2016-11-09 | 乐视控股(北京)有限公司 | 对象管理方法和对象管理系统 |
US20190059119A1 (en) * | 2015-11-05 | 2019-02-21 | Ntt Docomo, Inc. | User equipment, base station, connection establishment method, and context information retrieval method |
-
2019
- 2019-07-18 CN CN201980097970.9A patent/CN114175589B/zh active Active
- 2019-07-18 WO PCT/EP2019/069356 patent/WO2021008709A1/en active Application Filing
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040221031A1 (en) * | 2003-04-29 | 2004-11-04 | Oracle International Corporation | Method and apparatus using connection pools in communication networks |
US20160127414A1 (en) * | 2014-10-29 | 2016-05-05 | International Business Machines Corporation | TLS connection abandoning |
US20190059119A1 (en) * | 2015-11-05 | 2019-02-21 | Ntt Docomo, Inc. | User equipment, base station, connection establishment method, and context information retrieval method |
CN106095341A (zh) * | 2016-06-14 | 2016-11-09 | 乐视控股(北京)有限公司 | 对象管理方法和对象管理系统 |
Also Published As
Publication number | Publication date |
---|---|
CN114175589B (zh) | 2023-07-18 |
WO2021008709A1 (en) | 2021-01-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7196282B2 (ja) | 通信方法および通信装置 | |
CN101330531B (zh) | Dhcp地址分配处理方法和dhcp中继 | |
KR100636186B1 (ko) | 양방향 터널 설정 방법 및 시스템 | |
US20210064281A1 (en) | Fabric driven non-volatile memory express subsystem zoning | |
JP7207827B2 (ja) | リソース取得方法および装置 | |
US20120221700A1 (en) | System, Method and Program for Telecom Infrastructure Virtualization and Management | |
EP2611107B1 (en) | Verification of cryptographically generated address | |
CN102685270A (zh) | 动态地址分配方法和设备 | |
US7912958B2 (en) | Method and apparatus for automatic IP allocation bootstrapping of embedded network management cards used in networked uninterruptible power supplies and other supported devices | |
US9294548B2 (en) | Mobility handling in a communication network | |
CN111935335B (zh) | 一种dhcp地址分配方法及装置 | |
KR20110036573A (ko) | 서버 애플리케이션 프로그램으로 ip 네트워크를 통한 엑세스를 제공하는 방법 | |
US11178230B1 (en) | Dynamically managing keepalive status for client-server connections | |
US20040010624A1 (en) | Shared resource support for internet protocol | |
CN107707689B (zh) | 一种dhcp报文处理方法、dhcp服务器及网关设备 | |
CN106878481B (zh) | 一种网络互连协议ip地址获取方法、装置和系统 | |
CN107370647B (zh) | 一种局域内部控制器系统间互联的方法及一种局域网系统 | |
EP2087710B1 (en) | Method for efficiently generating privacy addresses | |
CN114175589B (zh) | 用于管理连接的设备和方法 | |
CN113037882B (zh) | 一种获取主机附加信息的方法和代理设备 | |
CN101557336B (zh) | 一种建立网络隧道的方法,数据处理方法及相关设备 | |
CN115499414A (zh) | 地址分配方法及装置 | |
EP2975828B1 (en) | Method for configuring a network connection, telecommunications network, program and computer program product | |
CN107770070B (zh) | 一种信息传输的方法、设备和系统 | |
CN114465953B (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 |