CN103533065A - 利用相同ip端口在应用的多个实例之间分派接收的会话的方法和系统 - Google Patents
利用相同ip端口在应用的多个实例之间分派接收的会话的方法和系统 Download PDFInfo
- Publication number
- CN103533065A CN103533065A CN201310493324.9A CN201310493324A CN103533065A CN 103533065 A CN103533065 A CN 103533065A CN 201310493324 A CN201310493324 A CN 201310493324A CN 103533065 A CN103533065 A CN 103533065A
- Authority
- CN
- China
- Prior art keywords
- sip
- socket
- load balancing
- balancing module
- protocol stack
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 95
- 230000008569 process Effects 0.000 claims abstract description 43
- 230000011664 signaling Effects 0.000 claims abstract description 11
- 238000012545 processing Methods 0.000 claims description 18
- 230000004044 response Effects 0.000 claims description 16
- 230000007246 mechanism Effects 0.000 claims description 11
- 230000000977 initiatory effect Effects 0.000 claims description 5
- 241001269238 Data Species 0.000 claims 1
- 238000004891 communication Methods 0.000 abstract description 33
- 230000005540 biological transmission Effects 0.000 description 31
- 239000003795 chemical substances by application Substances 0.000 description 21
- 238000010586 diagram Methods 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 4
- 238000007726 management method Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 239000011159 matrix material Substances 0.000 description 2
- 230000006855 networking Effects 0.000 description 2
- XUIMIQQOPSSXEZ-UHFFFAOYSA-N Silicon Chemical compound [Si] XUIMIQQOPSSXEZ-UHFFFAOYSA-N 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 230000001276 controlling effect Effects 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 229910052710 silicon Inorganic materials 0.000 description 1
- 239000010703 silicon Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/40—Support for services or applications
- H04L65/403—Arrangements for multi-party communication, e.g. for conferences
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
- H04L47/125—Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/1066—Session management
- H04L65/1083—In-session procedures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/1066—Session management
- H04L65/1101—Session protocols
- H04L65/1104—Session initiation protocol [SIP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/1066—Session management
- H04L65/1101—Session protocols
- H04L65/1106—Call signalling protocols; H.323 and related
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/80—Responding to QoS
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1008—Server selection for load balancing based on parameters of servers, e.g. available memory or workload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1014—Server selection for load balancing based on the content of a request
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1029—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers using data related to the state of servers by a load balancer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1031—Controlling of the operation of servers by a load balancer, e.g. adding or removing servers that serve requests
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/141—Setup of application sessions
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Business, Economics & Management (AREA)
- General Business, Economics & Management (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Telephonic Communication Services (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
- Computer And Data Communications (AREA)
Abstract
本发明涉及利用相同IP端口在应用的多个实例之间分派接收的会话的方法和系统。公开一种称为负载均衡器模块(LBM)的逻辑模块,LBM侦听某一普通的预定端口号。这些公知的用于接收通信视频会议信令和控制协议的端口之后被负载均衡和多路复用到协议栈应用程序的许多实例。通过在许多应用程序实例间均衡多媒体数据流,多个多媒体数据流可由单个网际协议主机处理器服务和处理。于是,多点控制单元(MCU)可处理包含多媒体视频会议信息的多个输入数据流。
Description
本申请是申请日为2009年11月3日、申请号为200910174937.X、发明名称为“利用相同IP端口在应用的多个实例之间分派接收的会话的方法和系统”的发明专利申请的分案申请。
相关申请的交叉引用
本申请要求2008年11月25日提交的Kirill Tsym的美国临时专利申请No.61/117619,标题为“Method and System for Dispatching Received Sessions Between a Plurality of Instances of an Application Using the Same IP Port”的优先权,该申请在此引入作为参考。
技术领域
本发明涉及运行于相同IP主机之上并同时通过因特网通信的多个应用程序的领域,更具体地说,涉及使相同应用程序的多个实例能够同时在相同IP端口上侦听的系统和方法的需要。
背景技术
随着网络流量继续快速增长,以及越来越多的开发人员提出网络产品和解决方案,使用预先确定的公知网络端口的应用程序(进程)的数目日益增多。例如,这些应用程序中的一些需要在一个公知的预定传输控制协议(TCP)和/或传输层安全(TLS)和/或用户数据报协议(UDP)端口号上侦听。会话发起协议(SIP)和H.323协议是需要在这样的公知TCP或UDP端口号上侦听的所述应用程序(进程)的例子。例如,H.323协议应用程序在TCP端口号1720上侦听,而SIP应用能够侦听TCP或UDP端口号5060,或者通过端口5061侦听基于 TLS/TCP传输协议的加密视频和/或音频会议会话。在视频会议网络的常见体系结构中,SIP客户端经SIP代理与多点控制单元(MCU)连接。SIP代理和MCU之间的传输协议可由管理人员配置。一些情况下在SIP代理和MCU之间可以使用一种以上的传输协议。
不同种类的网络设备能够实现更好的可缩放性、鲁棒性和负载均衡,如果它们具有适合于应用程序(进程)的两个或更多实例利用相同的特定端口号同时运行的能力的话。这种网络设备的一个例子是MCU。MCU是位于网络的一个节点中,或者位于一个终端中的会议控制实体。MCU按照一定的标准接收和处理来自接入端口的多个媒体,信令和控制信道,并把它们分配给连接的信道。MCU的例子包括MGC-100和RMX 2000(Polycom Inc.)。MCU可由两个逻辑单元构成:媒体控制器(MC)和媒体处理器(MP)。在国际电信联盟(“ITU”)标准,比如(但不限于)H.320、H.324和H.323标准中可找到端点(终端)和MCU的更全面定义。MCU被要求同时处理多个用户(客户端)之间的多个会话。从而,MCU可能要求同时把相同应用程序,例如H.323的一个以上实例用于不同的会话。不幸的是,操作系统(OS)具有端口侦听限制,因为在相同IP主机的特定端口号上,只有一个应用/应用实例(进程)能够侦听。在本说明书中,可交换地使用术语“应用”、“应用程序”和“进程”。
H.323是一种国际电信联盟(ITU)标准,提供适合于通过分组网络的多媒体通信的计算机、设备和服务的规范,所述规范定义实时音频、视频和数据信息是如何传输的。H.323通常用在VoIP、因特网电话和IP视频会议中。用户可通过因特网与其它用户连接,和使用多样化的支持H.323的产品。该标准包括因特网工程任务组(IETF)实时协议(RTP)和实时控制协议(RTCP),以及用于呼叫信令、和数据通信与视听通信的辅助协议。
IETF SIP是一种应用层控制协议,用于因特网电话的信令协议。SIP能够为将通过IP网络部署的诸如音频/视频会议、互动游戏和呼叫转移之类特征建立会话,从而使服务提供商能够把基本的IP电话 服务与因特网、电子邮件和聊天服务结合起来。除了鉴别、重定向和注册服务之外,SIP服务器支持传统的电话功能,比如个人移动性、路由和基于被叫人员的地理位置的呼叫转移。
存在多种为应用程序提供在多个端口上侦听来电的能力的技术。但是这种系统要求在操作系统(OS)中增加传输组件和网络组件(并不总是可行)。这种系统还要求预先确定为了与所述应用程序连接,用户(客户端)需要传输的字符串。不知道预先确定的字符串的用户(客户端)将不能访问和连接这样的应用程序。此外,这种系统不能使相同应用的多个实例在相同端口上侦听。其它技术提供分派连接服务(多个不同的应用实例)在单一静态端口上侦听的能力。这些方法要求预先为每个应用/实例确定唯一的ID,并把这些唯一的ID通知客户端,否则客户端将不能被服务。在本说明书中,可交换使用术语“用户”和“客户端”。
于是,需要一种使多个应用实例能够利用相同的侦听端口同时工作的方法和系统。理想的是这种方法和系统不需要把待提供的预定唯一ID或特殊字符串通知客户端。另外可取的是不需要OS层面的任何变化。
发明内容
利用公开的方法和设备\系统满足了上述要求,通过利用负载均衡方案,所述方法和设备\系统使多个应用实例能够同时使用相同的侦听端口。所述方法和设备不需要操作系统方面的任何变化。
称为负载均衡器模块(LBM)的逻辑模块侦听某一普通的预定端口号。例如,端口号1720是接收基于H.323协议的通信的公知端口。例证的H.323 LBM可被配置成侦听用于接收对所有H.323实例(任务)的H.323连接请求的端口号1720。另一例证LBM可被配置成侦听用于基于SIP协议的通信的公知端口号5060和/或5061(SIP LBM)。H.323通信基于TCP,而SIP通信可以基于TCP、TLS/TCP或UDP。在视频会议网络的一种例证体系结构中,可经SIP代理使SIP客户端与实现这里公开的例证技术的MCU连接。例如,SIP代理和MCU 之间的传输协议可由管理人员配置。在一些情况下,在SIP代理和MCU之间可以使用一种以上的传输协议。
H.323 LBM与H.323栈的多个实例(任务)连接。SIP LBM与SIP栈的多个实例(任务)连接。在一个实施例中,每个LBM和其关联的实例之间的内部连接可以经由利用文件描述符传递机制,比如(但不限于)Unix域套接字,由LBM建立的连接。在其它实施例中,例如,LBM和实例之间的连接可以经由共用存储器。不同实例,比如(但不限于)SIP和H.323与LBM之间的连接可在例如通电时建立。
例证的LBM可请求侦听相关的端口。作为响应,OS定义侦听套接字。一旦经相关端口,比如端口1720接收到关于新的TCP连接的请求,操作系统(OS)就把该请求传给H.323LBM。从而,只有H.323LBM接收到H.323连接请求。作为响应,为了接受新的TCP连接,OS选择一个随机选择的套接字编号与新接收的TCP连接关联。新的套接字被传递给H.323 LBM。接下来,H.323 LBM能够找到可用于处理该呼叫的H.323实例(任务)。
每个H.323实例的一个有效呼叫计数器能够帮助H.323 LBM确定把呼叫传递给哪个H.323实例。有效呼叫计数器可以是计数特定的H.323实例正在处理的有效呼叫的数量的计数器。每次结束一个有效呼叫或者对于特定实例接收到新呼叫时,有效呼叫计数器就被更新。例如,H.323 LBM能够确定按照具有最小有效呼叫计数器值的H.323实例传递新的连接请求。在一些实施例中,如果应用的任何实例(任务)都不可用,那么LBM能够启动一个实例(任务)。
H.323 LBM能够利用描述符共用机制,比如(但不限于)UNIX域套接字,转发相关的套接字编号,其中报头指示套接字被传递。作为响应,选择的实例将经接收和发送数据的相同IP端口,接收用于处理呼叫的新的套接字编号。按照其中使用plug-in Silicon Operating System(pSOS)的另一例证实施例,共用套接字系统调用,“shr_socket”可被用作套接字共用机制。另外,两个或者更多的应用可以使用其它方法来共用相同的描述符。
鉴于附图和详细说明,本发明的这些和其它方面将是明显的。上面的概述并不意图总结本公开的每种可能实施例或者每个方面,当阅读实施例的下述说明以及附图和附加权利要求时,本公开的其它特征和优点将变得明显。
此外,尽管详细说明了具体的例证实施例,以便向本领域的技术人员举例说明本发明的原理,不过,这样的实施例容许各种修改和备选形式。因此,附图和书面说明并不意图以任何方式限制本发明原理的范围。
附图说明
结合附图,根据下面的详细说明,将更充分地理解本发明的例证实施例,其中:
图1是图解说明例证MCU的一部分的简化方框图。
图2a和2b是图解说明通过TCP的H.323呼叫建立处理的例证流程的时间图。
图3a和3b是图解说明通过TCP的H.323呼叫建立处理的例证方法的流程图。
图4是基于UDP传输协议呼叫建立处理的SIP的例证流程的时间图。
图5a和5b是图解说明基于UDP传输协议的SIP呼叫建立处理的例证方法的流程图。
具体实施方式
现在参见附图,其中相同的附图标记表示相同的元件,附图中说明了公开的方法、系统和设备的例证实施例、各个方面和特征。为了方便起见,只用附图标记标注了相同组中的一些元件。附图的目的是描述例证实施例,而不是对本发明的限制。时间图中不同事件之间的时间间隔不必按比例表示。
图1是图解说明例证的多点控制单元(MCU)100的一部分的简化 方框图。MCU 100的所描述部分包含并说明MCU的能够根据H.323或SIP处理控制和信令的相关元件。例如,未描述普通MCU的其它部分,比如媒体(音频、视频、数据)处理部分。除其它元件外,MCU100可包括:一个或多个插塞110、一个或多个网络接口卡115、和操作系统120。在其应用层,MCU 100可包括:H.323负载均衡器模块(LBM)130、多个H.323实例140a-c、SIP负载均衡器模块(LBM)150、和多个SIP实例160a-c。本领域的技术人员会认识到取决于其配置和系统的需要,每个MCU可具有每种协议三个以上实例的数目。不过,为了便于理解,示出的是每种协议三个实例。
MCU 100可以是在IP网络上工作的网络设备/应用服务器。MCU100仅仅是能够实现本发明的教导的许多不同网络设备/应用服务器之一。
插塞110经适当的链路连接MCU 100和基于以太网的LAN(局域网)。例如,网络接口卡115处理通信的OSI(开放系统互连)物理层和数据链路层。除其它功能之外,操作系统(OS)120按照适当的协议、IP协议、TCP、UDP等,处理通信的网络层和传输层。
OS 120可包括网络模块121、TCP传输模块122a和UDP传输模块122b。除其它对象之外,网络模块121例如可包括IP网络栈。网络模块121从NIC 115接收其通信,处理OSI的网络层。网络模块121解析分组的IP报头。除其它之外,IP报头可包括目的地IP地址、目的地端口号、源IP地址、源端口号和传输协议的种类。OS 120按照上述四个参数:目的地IP地址、目的地端口号、源IP地址和源端口号,为接收的通信随机定义套接字编号127a-c和/或129。网络模块121可按照在报头中提及的协议(例如TCP或UDP),把通信转到TCP传输模块122a,或者转到UDP传输模块122b。通过端口1720,传送H.323呼叫请求的TCP通信。通过端口5060,传送SIP会话的未加密UDP或TCP通信。通过端口5061,传送SIP会话的加密TLS通信。用于SIP会话的传输协议可变化,并且可由管理人员定期配置。在一些情况下,只有UDP和端口号5060一起使用。在其它情况下, TCP与端口5060一起使用,或者与用于TLS加密会话的端口5061一起使用。在备选实施例中,可以使用所有这三种选项。
TCP传输模块122a处理OSI的传输层,并且除其它对象之外,可包含TCP传输栈。TCP传输模块122a处理来自端口1720、5060和5061的通信。TCP传输模块122a能够按照从其接收数据的侦听端口和使用的传输协议,把通信请求传送给H.323侦听套接字126,或者传给SIP侦听套接字128a或128b或128c。
UDP传输模块122b处理OSI的传输层,除其它元件之外,可包含UDP传输栈。UDP传输模块122b处理从端口5060接收的通信,并且能够把通信请求传给侦听套接字128c。下面公开了有关OS 120的操作的更多信息。
MCU 100应用层可包含两个负载均衡器模块-H.323 LBM 130和SIP LBM 150。每个负载均衡器包括分别与H.323实例140a-c或SIP实例160a-c通信的AIP(应用编程接口)138或158。例证的API命令可以是增加、删除、清除等等。在启动时,每个LBM可向OS 120请求侦听套接字。H.323 LBM 130可与在端口1720上进行TCP通信的侦听套接字126关联。SIP LBM 150可与三个侦听套接字128a-c关联,即,用于经端口5061接收的加密TLS/TCP通信的侦听套接字128a,用于经端口5060接收的未加密TCP通信的侦听套接字128b,和用于经端口5060接收的未加密UDP通信的侦听套接字128c。SIP代理和MCU 100之间的传输协议可由管理人员配置。存在其中在SIP代理和MCU 100之间的连接上可以使用一种以上传输协议的一些情况。
在另一例子中,可以使用三个LBM:一个用于H.323、一个用于未加密的SIP、一个用于基于TLS协议的加密SIP。另一方面,可以使用单一LBM来处理三种通信(经端口5060接收的TCP通信,经端口5060接收的未加密的UDP和TCP通信,和经端口5061接收的基于TLS/TCP的加密通信)。
每个SIP呼叫与一个Call-ID(呼叫ID)关联。Call-ID(CID)表 示关于特定SIP客户端的特定SIP呼叫。于是,SIP LBM150可包括部分解析接收的通信从而确定CID并把CID传给处理与该客户端的通信的适当SIP实例160a-c的解析器152。SIP LBM 150还可包括解密器和TLS栈154,以对经端口5061从TCP传输模块122a接收的TLS通信解密,从而能够实现通信的解析和确定CID。
可以创建和端接多个套接字127a-c和/或129aa-cc,从而能够分别实现不同的H.323实例140a-c或SIP实例160a-c与H.323客户端或SIP客户端之间的通信。如上所述,OS120按照四个参数:目的地IP地址、目的地端口号、源IP地址和源端口号,随机定义通信用套接字编号127a-c和/或129aa-cc。用于SIP实例的套接字编号129aa-cc代表侦听套接字128a-c和实例160a-c。第一个字母代表侦听套接字128a-c,第二个字母代表实例编号160a-c。因此,例如,例证的套接字129bc代表侦听套接字128b和SIP实例160c。从而存在其中SIP实例160a-c使用的套接字的数目是侦听套接字的数目(传输协议和端口的函数)和SIP实例的数目的乘积的配置。在图1的例子中,可以是9个套接字。
另外,在另一例证实施例中,在MCU 100和SIP代理之间可以使用传输协议的其它组合。一些实施例只使用TLS/SIP。在这样的实施例中,例如,MCU 100可包含一个传输协议模块、TCP传输模块122a,一个侦听套接字128a、和三个实例的套接字129aa、129ab和129ac。
在MCU 100应用层,用套接字编号更新两个套接字表。H.323套接字表135与H.323通信关联,SIP Call-ID(CID)表153与SIP通信关联。H.323套接字表135由H.323 LBM 130管理。SIP CID表156由SIP LBM 150管理。H.323套接字表135中的每个条目包括与H.323会话相关的信息,例如(但不限于)条目ID、相关的套接字编号127a-c和分配用于处理该会话的相关H.323实例140a-c。SIP CID表153中的每个条目包含与SIP会话相关的信息,比如(但不限于)SIP会话的CID、分配用于处理该会话的相关SIP实例160a-c,和从其接收呼叫 的侦听套接字128a-c等等。所述套接字表由适当的LBM创建和管理,并由相关的LBM用于把呼叫路由到适当的实例。
每个LBM,H.323 LBM 130和SIP LBM 150,可包括多个有效呼叫计数器H.323 LBM 130可包括用于每个H.323实例140a-c的有效呼叫计数器。对于关于特定H.323实例140a-c的每个新来电,有效呼叫计数器被加1,对于在特定H.323实例140a-c结束的每个有效呼叫,有效呼叫计数器被减1。SIP LBM 150可包括用于每个SIP实例160a-c的有效呼叫计数器,对于每个SIP实例160a-c,该有效呼叫计数器按照和H.323有效呼叫计数器相同的方式工作。按照每个有效呼叫计数器的值,能够均衡实例间的通信负载。
例证的H.323实例140a-c可包括处理与已和有关实例关联的多个与会者的H.323信令和控制通信的H.323栈。另外,每个H.323实例140a-c可包括与H.323 LBM 130通信的API模块142。例证的SIP实例160a-c可包括SIP栈和API模块162。SIP栈处理与已和有关实例关联的多个与会者的SIP信令和控制通信。API模块162能够与SIP LBM 150通信。在其中根据TLS/TCP对通信加密的SIP实例160a-c的例证实施例中,例证的SIP实例160a-c可包括TLS加密器模块。TLS加密器模块可被用于在把SIP信令和控制数据发送给有关与会者之前,对SIP信令和控制数据加密。
图2a和2b是图解说明通过TCP的H.323呼叫处理的例证流程中的有关事件的时间图。考虑到表现的便利和清楚,只图解说明了具有很少事件的单个呼叫。不过,本领域的技术人员会认识到可按照类似的方式处理具有多个事件的多个呼叫。在开始期间T0-T0c,H.323LBM 130(图1)借助Unix域套接字(Unix Domain Socket(UDS))与每个H.323实例140a-c建立连接。新的连接可被用于传送在API模块138和位于每个实例的API模块142(图1)之间传递的API命令。其它例证实施例可以使用应用之间的其它通信方法,比如(但不限于)pSoS中的共用套接字机制。
在T1,H.323 LBM 130向OS 120(图1)请求侦听经端口1720接 收的TCP连接请求。作为回应,在T2,OS 120(图1)向H.323 LBM 130发送套接字编号126(图1),作为在端口1720的侦听套接字。随后,在端口1720从客户端接收请求建立新的TCP连接的TCP SYN(T10)。通过在T11发送TCP SYN ACK(确认),OS 120作出响应。一旦收到TCP SYN ACK,客户端在T12发送TCP ACK,作为建立H.323通信会话的指示请求。
接下来,在T13,OS 120借助侦听套接字126,把建立与客户端的H.323连接的请求发送给H.323 LBM 130。作为回应,H.323 LBM130在T14发送H.323接受连接。OS 120在T15返回已接受和新的套接字127a,会话将通过该套接字127a来处理。当接收到新的套接字时,LBM能够确定哪个H.323实例140a-c将处理该呼叫。该选择可以与每个实例关联的有效呼叫计数器的值为基础。在选择某一实例之后,用新的套接字编号127a和所选实例,例如140a(图1)的标识更新H.323套接字表。
在T16,H.323 LBM 130向选择的H.323实例140a发送′增加′(ADD)经套接字127a接收的新会话的API命令。该ADD命令是经Unix域套接字传递的,其中报头指示套接字被传递并且套接字编号127a作为有效负载被传递。作为响应,能够随机选择的第二套接字编号127a′例如被传送给选择的实例140a。每个编号127a和127a′可被不同的应用(LBM H.323 130和选择的实例140a)分别用于访问相同的文件描述符。从而,为会话127a′分配一个新的套接字编号,在该新的套接字编号,选择的实例能够执行该会话。从而,创建了用于会话的一对套接字(127a;127a′)。127a由H.323 LBM使用,127a′由选择的实例使用。与客户端的H.323会话的剩余部分由利用套接字编号127a′的所选H.323实例140a进行。按照类似的方式,可为由H.323实例140b处理的会话分配套接字127b和127b′,可为由H.323实例140c处理的会话分配套接字127c和127c′。
在T18,H.323客户端发送可包括H.323呼叫建立信息的H.323数据,以便建立H.323会话。在T19,H.323数据可在套接字127a和 127a′被传递。不过,只有选择的H.323实例,例如140a才读取H.323数据和响应请求。
现在参见图2b,图2b是相同H.323会话的时间表的延续,在T20,选择的H.323实例,例如140a利用套接字编号127a′发送H.323数据。在T21,OS 120把H.323数据发送给客户端。在T22,客户端发送数据(H.323分组)。在T23,OS 120经套接字127a′把H.323数据的分组传送给选择的H.323实例(140a)。会话可借助套接字127a′继续进行,直到会话结束为止。
在会话结束时T30,客户端可发送H.323会话结束指示。可在T32,从OS120(图1)经套接字127a′向选择的实例140a发送会话结束指示。在T34,经套接字127a′发送关闭套接字127a′的释放呼叫指示。在T38,经在T0开放的连接,利用UDS从H.323实例140a向H.323LBM 130发送API命令DELETE(删除)。一旦接收到API DELETE命令,在T39,H.323 LBM 130向OS 120发送关闭套接字127a命令。随后在T40,OS 120通过使用TCP FIN(完成)命令向客户端发送关闭TCP连接。要认识到通过利用其它套接字,对于与其它实例的其它H.323会话,可同时执行类似的过程。
图3a和3b图解说明处理通过TCP连接的H.323呼叫建立的例证方法300。方法300可由H.323 LBM 130(图1)的例证实施例实现。可在MCU 100(图1)的通电期间启动方法300(步骤302),并且只要MCU处于使用中,方法300就可运行。当启动时(步骤304),H.323LBM 130可被引入有关模块中,或者能够启动与H.323 LBM 130的操作有关的模块。例证模块可以是H.323套接字表135、一组H.323实例140a-c(图1)、一组有效呼叫计数器(每个H.323实例140a-c一个有效呼叫计数器),等等。
在启动过程302和304之后,建立H.323 LBM 130和每个H.323实例140a-c之间的内部连接(步骤305)。内部连接可基于文件描述符传递和/或文件描述符共享机制,比如(但不限于)Unix域套接字。
此时,H.323 LBM 130能够请求OS 120(图1)在TCP端口1720 上侦听(步骤306)。如果未接收到侦听套接字编号,那么可向OS 120发送错误消息(步骤316),并终止方法300(步骤318)。
当接收到侦听套接字编号时(步骤310),方法300开始步骤320和342(图3b)之间的循环,以处理H.323通信会话。在步骤320和322,方法300等待接收事件。事件可以接收自OS 120(图1)或者接收自H.323实例140a-c(图1)之一。如果接收的事件是经在步骤305中建立的连接之一,来自实例140a-c之一的DELETE API命令(步骤323),那么可取回并解析H.323套接字表的有关条目。所述有关条目是根据能够与API DELETE命令关联的条目ID号取回的。按照该条目的内容,发出关闭分配给LBM的用于处理有关会话的套接字的关闭套接字请求(步骤323)。分配给有关实例的有效呼叫计数器被减1,H.323套接字表135中的有关条目被释放。响应关闭套接字命令,OS 120向有关客户端发送关闭TCP连接的TCP FIN。
如果在步骤322经侦听套接字126接收到指示新的H.323连接请求的事件,那么LBM 130可接受经侦听套接字126(图1)接收到的新的呼叫。作为响应,接收新的套接字编号,用于携带新的H.323会话(步骤326),方法300延续到在图3b中图解说明的步骤(步骤330)。新的套接字可以是套接字127a-c(图1)之一,例如127a。
在步骤322(图3b),方法300可确定哪个H.323实例140a-c可用于处理呼叫。该确定例如可基于检查每个实例的有效呼叫计数器,并选择会话数目最少的那个实例。如果在步骤334,找到可用的H.323实例,例如140a,那么其关联的有效呼叫计数器被递增。为该会话分配H.323套接字表135(图1)中的一个条目(步骤340),用条目ID、分配的套接字(例如127a)和选择的实例(例如140a)更新该条目。随后经Unix域套接字连接把API ADD命令发送给选择的实例。Unix域套接字消息的报头可指示它是套接字传送消息。该消息的内容例如可包括新的套接字编号127a,和条目ID号。作为响应,选择的实例,例如140a将获得用于该会话的另一套接字编号127a′。另一方面,可以使用另一种文件描述符共用机制。在步骤342,方法300返回步骤320(图 3a),等待下一个事件。
如果在步骤334,没有可用的H.323实例,那么LBM 130可创建新的实例140d(图中未示出)(步骤336),如同上面的步骤305中那样建立与新实例140d的内部连接,并转到步骤340。在一个备选实施例中,如果未找到可用实例,那么可拒绝该呼叫。
图4图解说明SIP呼叫处理中的事件的例证流程的时间图。在图4的例子中,SIP呼叫以UDP传输协议为基础,并且是通过UDP端口5060接收的。考虑到表现的便利和清楚,只图解说明了经UDP端口5060的具有很少事件的单一呼叫。不过,本领域的技术人员会认识到可按照类似的方式处理具有多个事件的多个呼叫。此外,图4图解说明其中经SIP代理使客户端与MCU 100(图1)连接的例证实施例的流程。在一个备选实施例中,可以使用两个或者更多的SIP代理,或者另一方面,可使客户端直接与MCU连接。在这些情况下,可按照连接的类型修改时序图。
在图解说明的流程图的起点,在T100a-T100c,SIP LBM 150(图1)建立与每个SIP实例160a-c(图1)的连接。与实例的连接可由文件描述符传递机制,比如(但不限于)Unix域套接字(UDS)完成。在建立与每个实例160a-c的连接之后,在T102,SIP LBM150能够通过UDP端口5060向OS 120(图1)请求开放SIP传输套接字。作为响应,在T103,OS 120(图1)向SIP LBM 150发送套接字编号128c(图1),套接字编号128c将在UDP端口5060充当用于输入的SIP数据的SIP传输套接字(STS)。
在T104a-104c,套接字编号128c经之前在T100a-100c建立的Unix域套接字连接被传递给每个SIP实例160a-c。Unix域套接字消息的报头可指示它是套接字传递消息。该消息的内容可包括SIP传输套接字编号,例如128c。从而,每个SIP实例160a-c接收将被用作STS的另一编号129aa-cc(图1),通过该STS,每个SIP实例将经UDP端口5060和SIP代理向有关客户端发送SIP数据。
在T110,SIP客户端能够向UDP端口号5060发送具有SIP数 据或SIP邀请请求的SIP分组。SIP数据与发起SIP呼叫的客户端分配的某一Call-ID(CID)关联。在T111,SIP代理把SIP分组传递给MCU 100(图1)。在处理IP报头和UDP报头之后,OS 120(图1)在T112经SIP传输套接字128c把SIP数据传递给SIP LBM 150。SIP LBM 150能够借助解析器152(图1)解析SIP数据,并确定该数据是新的SIP会话的邀请请求还是现有SIP会话的SIP数据。如果是现有SIP会话,那么根据会话的CID,在SIP CID表153(图1)中搜索条目。解析该条目,以识别处理该会话的所分配SIP实例160a-c,例如实例160a。随后,在T113,经例如在T100a期间建立的连接,以Unix域套接字消息的形式传递该SIP数据。
如果SIP数据包括SIP邀请请求,那么SIP LBM 150能够确定哪个SIP实例可用,比如160a。随后在SIP CID表153为该会话分配一个条目,并且选择的实例及会话的CID被保存在该条目中。与选择的SIP实例160a相关的有效呼叫计数器被加1。在T113,经在T100a期间与选择的实例建立的连接,以Unix域套接字消息的形式传递该SIP邀请请求。随后在T113,经在T100a期间与选择的实例,比如160a建立的连接,以Unix域套接字消息的形式传递SIP数据。
选择的SIP实例160a可进一步处理SIP数据,在T114,适当的SIP实例(例如,160a)借助套接字129ca(′c′表示它是经SIP传输套接字128c接收的UDP会话,′a′表示SIP实例160a)经OS 120向客户端发送SIP响应。在T116,在增加适当的UDP和IP报头之后,该分组被发给SIP代理,并在T118,从SIP代理被传递给客户端。会话可按照类似的方式继续下去,直到选择的实例160a确定接收到的SIP数据是结束呼叫的请求,或者SIP实例确定结束SIP会话为止。随后,在T120,选择的SIP实例160a把带有会话的CID的API DELETE命令发送给SIP LBM 150。该命令是经在T100a期间与选择的实例,例如160a建立的连接,以Unix域套接字消息的形式发送的。当接收到带有被结束呼叫的CID的DELETE命令时,在SIP CID表153中搜索有关的条目并释放该条目。与选择的SIP实例160a关联的有效 呼叫计数器被减1。由于SIP代理被卷入,因此一个呼叫的结束不会影响与代理的连接。与代理的连接仍然保持有效,以便服务其它客户端。
对于通过TCP传送的SIP会话,可以图解说明类似的流程图。对基于TCP的SIP会话来说,TCP传输模块122a将替换UDP传输模块122b(图1),SIP传输套接字128b将替换SIP传输套接字128c,以及套接字129ba将替换套接字129ca。对基于TCP和TLS的SIP会话来说,TCP传输模块122将替换UDP传输模块122b(图1),SIP传输套接字128a将替换SIP传输套接字128c,以及套接字129aa将替换套接字129ca。另外,在T113将增加解密过程,以理在解析SIP数据之前,解密SIP数据。
负责通过TCP/IP(端口5060)或TLS/TCP/IP(端口5061)传送的SIP会话的例证实施例需要首先在MCU和SIP代理之间建立TCP连接。在这样的实施例中,为了经端口5060或5061开放通过TCP连接传送SIP数据的SIP传输套接字,首先可在SIP LBM 150和端口5060或5061之间开放侦听套接字,以建立MCU和SIP代理之间的TCP连接。在建立TCP连接之后,可分配用于处理SIP数据的SIP传输套接字128a和128b,并传递给SIP LBM 150。开放MCU和SIP代理之间的TCP连接,并分配SIP传输套接字的例证过程可以和在图2a中公开的从T1-T14(用于建立TCP连接)和T15(用于分配SIP传输套接字)的过程类似。在基于TCP的SIP会话中,只要MCU处于使用中,TCP连接就可保持开放状态。
图5图解说明同时通过三种可能的传输协议选项处理SIP呼叫的例证方法500:通过TCP连接和端口5060,UDP和端口5060,或用于加密TLS会话的端口5061上的TCP。方法500可由SIP LBM150(图1)的例证实施例实现。另一个例证实施例可被配置成和单一类型的SIP会话(UDP;或TCP;或TLS/TCP)一起工作。另一例证实施例可被配置以两种SIP会话的组合。在这些实施例中,可修改方法500以匹配所使用的传输协议。
可在MCU 100(图1)的通电期间启动方法500(步骤502),并且只要MCU处于使用中,方法500就可运行。当启动时(步骤504),SIP LBM 150可被引入MCU 100的相关模块中,并且能够启动与SIP LBM 150的操作有关的模块。例证模块可以是SIP CID表153、一组SIP实例160a-c(图1)、一组有效呼叫计数器(每个SIP实例160a-c一个有效呼叫计数器),等等。
在启动过程502和504之后,建立SIP LBM 150和每个SIP实例160a-c之间的内部连接(步骤506)。内部连接可基于文件描述符传递和/或文件描述符共享机制,比如(但不限于)Unix域套接字。
在建立与每个SIP实例160a-c的连接之后(步骤506),取决于配置,SIP LBM 150能够通过一个或多个端口请求开放SIP传输套接字(步骤508)。所述端口可以是:TCP端口5060、UDP端口5060和TCP端口5061。随后,SIP LBM能够等待接收每一对的传输协议和端口的SIP传输套接字编号(步骤510)。如果未接收到套接字编号之一,那么可向OS 120发送错误消息(步骤516),并终止方法500(步骤518)。使用TCP传输协议传送SIP通信的例证实施例需要首先通过经适当的端口(5060或用于TLS/TCP的5061)开放侦听套接字,在MCU和SIP代理之间建立TCP连接,只有在建立了该TCP连接之后,SIP传输套接字才能够被传递。
当接收到恰当数目的SIP传输套接字时(步骤510),取决于SIP代理和MCU的配置(例如,端口5061上用于TLS/TCP的套接字128a;和/或端口5060上用于TCP的套接字128b;和/或端口5060上用于UDP的套接字128c),每个套接字编号(128a-c)被传递给每个SIP实例160a-c(步骤520)。可通过在步骤506中与每个SIP实例建立的连接,以Unix域套接字消息的形式完成向每个SIP实例发送SIP传输套接字。Unix域套接字消息的报头可指示它是套接字传递消息。该消息的内容可包括传递的套接字编号128a或128b或128c。从而,在每个实例的接收套接字编号将是129a,a-c;129b,a-c;或129c,a-c,其中第一个字母表示SIP传输套接字,第二个字母表示实例编号。于是,套接 字129c,a-c表示三个套接字:用于经实例160a的套接字128c接收的会话的129ca;用于经实例160b的套接字128c接收的会话的129cb;以及用于经实例160c的套接字128c接收的会话的129cc(图1)。
在把一个或多个SP传输套接字传送给SIP实例之后,SIP LBM150能够从实例获得响应及其接收的套接字编号。所述响应是经在步骤506中建立的连接,以Unix域套接字消息的形式发送的。SIP LBM150把该对套接字编号保存在SIP套接字表中。例证的SIP套接字表例如可包括其中各行与SIP传输套接字128a-c关联,各列与SIP实例160a-c关联的矩阵。在该例子中,矩阵中的每个单元包括将由适当的实例160a-c使用的套接字129aa-cc。
在步骤520和522,方法500等待接收事件。事件可以接收自OS120(图1)或者接收自SIP实例160a-c(图1)之一。如果事件是接收自实例160a-c之一(步骤530),那么确定该事件是否是DELETE API命令(步骤536)。在步骤536,如果接收的事件是经在步骤506中建立的连接之一接收的DELETE API命令,那么API DELETE命令可指出会话的CID。根据会话CID,从SIP CID表153(图1)取回并释放有关条目(步骤538)。与有关SIP实例关联的有效呼叫计数器被减1,方法500返回步骤522。在步骤536,如果接收的事件不是DELETE API命令,那么方法返回步骤522,等待下一个事件。
在步骤530,如果接收的事件是经SIP传输套接字128a-c(图1)之一从OS 120(图1)接收的,那么确定会话是否基于TLS(步骤540)。该确定可以SIP传输套接字为基础。如果SIP消息是经套接字128a接收的,那么会话是基于TLS的加密会话。于是,消息由TLS DEC154(图1)解密(步骤542),解密后的消息被传递给解析器152(图1)以便进一步分析(步骤544)。在步骤540,如果SIP消息并不基于TLS,那么该消息是经套接字128b或128c接收的,那么消息被传递给解析器152(图1)以便进一步分析(步骤544),方法500进入图5b中的步骤552。
现在参见图5b,在步骤552,确定分析的SIP消息是否是来自 客户端的INVITE(邀请)请求。INVITE请求可以发送自希望开始新的SIP会话的客户端。在步骤552,如果确定结果为“是”,那么方法500可搜索可用于处理该呼叫的SIP实例160a-c(图1)(步骤554)。该选择可以每个实例的有效呼叫计数器为基础,寻找会话数最少的那个实例,例如160a。在步骤560,如果找到可用的SIP实例,例如160a,那么在SIP CID表153(图1)中为新会话分配一个条目(步骤564)。用会话的CID、选择的实例(例如,160a)和将由选择的实例(例如160a)使用的有关套接字129a-c,a更新该条目。有关套接字取自SIP套接字表中,位于从其接收会话的SIP传输套接字128a-c和所选实例(例如160a)的交叉点的单元。该实例的有效呼叫计数器被加1,并且接收的SIP消息经在步骤506(图5a)或如下所述的步骤562中建立的适当Unix域套接字连接被发送给选择的实例。会话的CID是从解析的SIP中取回的。备选实施例可以使用其它文件描述符共用机制,而不是Unix域套接字。在步骤570,方法500返回步骤522(图5a),等待下一个事件。
在步骤560,如果未找到可用的SIP实例,那么在步骤562,例证方法500可创建新的实例。可按照上面结合步骤506(图5a)公开的类似方式建立SIP LBM和新的SIP实例之间的连接。在建立与新实例的连接之后,如上结合步骤520(图5a)公开的那样,SIP LBM 150能够把每一个SIP传输套接字128a-c发送给新的SIP实例。此外,SIP LBM能够获得和保存该实例接收的套接字编号,按照和步骤520的描述类似的方式更新SIP套接字表,并转到步骤564。
现在返回步骤552,如果SIP数据不是INVITE请求,那么搜索SIP CID(步骤556),寻找与解析的CID关联的条目。取回并解析该条目,以确定哪个SIP实例与该会话关联。随后,经在步骤506建立的连接,以UNIX域套接字消息的形式把SIP数据传递给关联的SIP会话,在步骤570,方法500返回图5a中的步骤522。
上面利用本发明的作为例子提供的,并不意图限制本公开范围的实施例的详细说明,描述了所公开的方法和系统。所描述的实施例包 含不同的特征,在所有实施例中并不要求全部的不同特征。一些实施例只利用了一些特征,或者特征的可能组合。对于本领域的技术人员来说,所描述实施例的变形,及包含在所描述实施例中提及的特征的不同组合的实施例是显而易见的。
在本申请中,可交换地使用了用语“单元”和“模块”。指定为单元或模块的可以是独立单元或专用模块。单元或模块可以是模块化的,或者具有使其能够容易地被除去或者用另一个类似的单元或模块替换的模块化特征。每个单元或模块可以是软件、硬件和/或固件任意之一,或者它们的任意组合。逻辑模块的软件可以包含在诸如读/写硬盘、CDROM、闪速存储器、ROM等之类计算机可读介质上。为了执行某一任务,可根据需要把软件程序加载到适当的处理器上。
图解说明的操作方法的细节方面的各种变化都是可能的,而不脱离下述权利要求的范围。例如,图解说明的处理过程300和500可按照和这里公开的顺序不同的顺序执行所识别的各个步骤。另一方面,一些实施例可以结合这里被描述成独立步骤的活动。类似地,取决于实现本发明的方法的具体操作环境,可以省略一个或多个所述步骤。另外,按照图1-5的动作可由执行组织成一个或多个程序模块的指令的可编程控制设备进行。可编程控制设备可以是单个计算机处理器,专用处理器(例如,数字信号处理器,“DSP”),由通信链路耦接的多个处理器,或者客户设计的状态机。客户设计的状态机可用诸如集成电路之类的硬件设备具体体现,所述集成电路包括(但不限于)专用集成电路(“ASIC”)或现场可编程门阵列(“FPGA”)。适合于有形包含程序指令的存储设备(有时称为计算机可读介质)包括(但不限于):磁盘(硬盘、软盘和可拆卸磁盘)和磁带;光盘,比如CD-ROM和数字视频盘(“DVD”);和半导体存储器件,比如电可编程只读存储器(“EPROM”),电可擦可编程只读存储器(“EEPROM”),可编程门阵列和闪速设备。
本领域的技术人员会认识到本发明不受上面详细显示和说明的内容限制。相反,本发明的范围由下面的权利要求限定。
Claims (16)
1.一种使支持网际协议网络上的多个多媒体会议的进程的多个实例负载均衡的方法,包括:
初始化主机处理单元上的负载均衡模块;
初始化主机处理单元上的协议栈的多个实例,其中响应于来自负载均衡模块的请求,初始化所述协议栈的每个实例;
连接负载均衡模块和控制主机处理单元的操作系统的侦听端口;
在所述协议栈的多个实例中的每个实例和负载均衡模块之间传递至少一个套接字描述符;
在侦听端口接收来自参与多个多媒体会议的多个端点的入站多媒体数据分组;
利用负载均衡模块从所述协议栈的多个实例中选择一个实例,以处理从所述多个端点中的一个端点接收的每个入站多媒体数据分组;
在多媒体会议的持续时间内,利用负载均衡模块将所述端点与所选实例相关联;和
使用所传递的所述至少一个套接字描述符,将接收的入站多媒体数据分组发送到相关联的实例;
其中多媒体数据包含选自由遵守协议栈的控制和信令组成的群组的至少一种数据类型。
2.按照权利要求1所述的方法,其中负载均衡模块服务利用H.323协议的多媒体会议。
3.按照权利要求2所述的方法,其中来自端点的入站和出站多媒体数据分组借助所述至少一个套接字描述符由协议栈中在多媒体会议的持续时间内与该端点相关联的所选实例直接处理。
4.按照权利要求1所述的方法,其中负载均衡模块服务会话发起协议SIP消息。
5.按照权利要求1所述的方法,其中在一个或多个实例中的每一个和负载均衡模块之间传递的套接字描述符是借助UNIX域套接字传递的。
6.按照权利要求4所述的方法,其中用于传送SIP数据的传输协议是用户数据报协议UDP。
7.按照权利要求1所述的方法,其中主机处理单元是多点控制单元。
8.按照权利要求1所述的方法,还包括:
利用负载均衡模块接收之前没有与协议栈的实例相关联的所有的入站多媒体数据分组;
在负载均衡模块的请求下,初始化协议栈的新实例;和
利用文件描述符传递机制,把检查的入站多媒体数据分组传递给初始化的新实例。
9.一种使支持网际协议网络上的多个多媒体会议的进程的多个实例负载均衡的设备,包括:
用于初始化主机处理单元上的负载均衡模块的装置;
用于初始化主机处理单元上的协议栈的多个实例的装置,其中响应于来自负载均衡模块的请求,初始化所述协议栈的每个实例;
用于连接负载均衡模块和控制主机处理单元的操作系统的侦听端口的装置;
用于在所述协议栈的多个实例中的每个实例和负载均衡模块之间传递至少一个套接字描述符的装置;
用于在侦听端口接收来自参与多个多媒体会议的多个端点的入站多媒体数据分组的装置;
用于利用负载均衡模块从所述协议栈的多个实例中选择一个实例,以处理从所述多个端点中的一个端点接收的每个入站多媒体数据分组的装置;
用于在多媒体会议的持续时间内,利用负载均衡模块将所述端点与所选实例相关联的装置;和
用于使用所传递的所述至少一个套接字描述符,将接收的入站多媒体数据分组发送到相关联的实例的装置;
其中多媒体数据包含选自由遵守协议栈的控制和信令组成的群组的至少一种数据类型。
10.按照权利要求9所述的设备,其中负载均衡模块服务利用H.323协议的多媒体会议。
11.按照权利要求10所述的设备,其中来自端点的入站和出站多媒体数据分组借助所述至少一个套接字描述符由协议栈中在多媒体会议的持续时间内与所述端点相关联的所选实例直接处理。
12.按照权利要求9所述的设备,其中在一个或多个实例中的每一个和负载均衡模块之间传递的套接字描述符是借助UNIX域套接字传递的。
13.按照权利要求9所述的设备,其中负载均衡模块服务会话发起协议SIP消息。
14.按照权利要求13所述的设备,其中用于传送SIP数据的传输协议是用户数据报协议UDP。
15.按照权利要求9所述的设备,其中主机处理单元是多点控制单元。
16.按照权利要求9所述的设备,还包括:
用于利用负载均衡模块接收之前没有与协议栈的实例相关联的所有的入站多媒体数据分组的装置;
用于在负载均衡模块的请求下,初始化协议栈的新实例的装置;和
用于利用文件描述符传递机制,把检查的入站多媒体数据分组传递给初始化的新实例的装置。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11761908P | 2008-11-25 | 2008-11-25 | |
US61/117,619 | 2008-11-25 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200910174937XA Division CN101741832B (zh) | 2008-11-25 | 2009-11-03 | 利用相同ip端口在应用的多个实例之间分派接收的会话的方法和系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN103533065A true CN103533065A (zh) | 2014-01-22 |
Family
ID=42173165
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200910174937XA Expired - Fee Related CN101741832B (zh) | 2008-11-25 | 2009-11-03 | 利用相同ip端口在应用的多个实例之间分派接收的会话的方法和系统 |
CN201310493324.9A Pending CN103533065A (zh) | 2008-11-25 | 2009-11-03 | 利用相同ip端口在应用的多个实例之间分派接收的会话的方法和系统 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200910174937XA Expired - Fee Related CN101741832B (zh) | 2008-11-25 | 2009-11-03 | 利用相同ip端口在应用的多个实例之间分派接收的会话的方法和系统 |
Country Status (6)
Country | Link |
---|---|
US (4) | US8849972B2 (zh) |
EP (1) | EP2202946A3 (zh) |
JP (1) | JP5629086B2 (zh) |
CN (2) | CN101741832B (zh) |
DE (1) | DE09013668T1 (zh) |
TW (1) | TWI419518B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018121295A1 (zh) * | 2016-12-30 | 2018-07-05 | 华为技术有限公司 | 一种异构多协议栈方法、装置及系统 |
CN114866521A (zh) * | 2017-02-15 | 2022-08-05 | 微软技术许可有限责任公司 | 会议服务器 |
Families Citing this family (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8406744B2 (en) * | 2009-11-19 | 2013-03-26 | At&T Mobility Ii Llc | Client management of visual voicemail data communications |
US8978042B2 (en) * | 2012-02-15 | 2015-03-10 | Google Inc. | Method and system for maintaining game functionality for a plurality of game instances running on a computer system |
GB2520451B (en) | 2012-03-20 | 2015-09-30 | Media Network Services As | Data distribution system |
CN102843289B (zh) * | 2012-08-08 | 2015-05-27 | 苏州阔地网络科技有限公司 | 一种会议漂移方法及系统 |
US9282124B2 (en) * | 2013-03-14 | 2016-03-08 | Twilio, Inc. | System and method for integrating session initiation protocol communication in a telecommunications platform |
CN104580124B (zh) * | 2013-10-29 | 2019-04-05 | 华为技术有限公司 | 协议栈选择方法、装置及设备 |
CN104639578B (zh) * | 2013-11-08 | 2018-05-11 | 华为技术有限公司 | 多协议栈负载均衡方法及装置 |
CN104811432A (zh) | 2014-01-29 | 2015-07-29 | 华为技术有限公司 | 基于并行协议栈实例的数据包处理方法和装置 |
CN104811431B (zh) | 2014-01-29 | 2018-01-16 | 华为技术有限公司 | 基于并行协议栈实例的数据包处理方法和装置 |
CN104951357B (zh) * | 2014-03-28 | 2018-06-26 | 华为技术有限公司 | 并行用户态协议栈的管理方法和协议栈系统 |
US9614853B2 (en) | 2015-01-20 | 2017-04-04 | Enzoo, Inc. | Session security splitting and application profiler |
US10257123B2 (en) * | 2015-05-05 | 2019-04-09 | Dell Products Lp | Software-defined-networking (SDN) enabling operating-system containers for real-time application traffic flow improvement |
CN105120204B (zh) * | 2015-08-06 | 2018-08-28 | 苏州科达科技股份有限公司 | 兼容多协议的会议中分享双流音频的方法、装置及系统 |
CN105426253A (zh) * | 2015-12-18 | 2016-03-23 | 广州广电运通金融电子股份有限公司 | 一种自助设备硬件管理方法和装置 |
NO20160593A1 (en) * | 2016-04-12 | 2017-10-13 | Pexip AS | Improvements in multimedia conferencing |
US10341855B2 (en) * | 2016-04-28 | 2019-07-02 | Polycom, Inc. | Detection of unsecure calls by communications device |
GB2554069B (en) | 2016-09-14 | 2019-12-25 | Starleaf Ltd | A system for managing software versions in multitenant cloud IP video-telephony services |
CN109344058B (zh) * | 2018-09-18 | 2021-06-15 | 北京云测信息技术有限公司 | 一种小程序自动化测试方法 |
US10749900B2 (en) * | 2018-09-28 | 2020-08-18 | The Mitre Corporation | Deploying session initiation protocol application network security |
US10785271B1 (en) * | 2019-06-04 | 2020-09-22 | Microsoft Technology Licensing, Llc | Multipoint conferencing sessions multiplexed through port |
WO2021111710A1 (ja) * | 2019-12-06 | 2021-06-10 | 株式会社ソニー・インタラクティブエンタテインメント | 配送制御装置、配送制御方法及び配送制御プログラム |
JP7100331B1 (ja) | 2022-02-12 | 2022-07-13 | 国立大学法人 東京大学 | 折り構造 |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6295549B1 (en) | 1996-05-08 | 2001-09-25 | Apple Computer, Inc. | Method and apparatus for listening for incoming calls on multiple port/socket combinations |
US6192389B1 (en) | 1997-03-28 | 2001-02-20 | International Business Machines Corporation | Method and apparatus for transferring file descriptors in a multiprocess, multithreaded client/server system |
US6363081B1 (en) | 1998-03-04 | 2002-03-26 | Hewlett-Packard Company | System and method for sharing a network port among multiple applications |
US20020065919A1 (en) * | 2000-11-30 | 2002-05-30 | Taylor Ian Lance | Peer-to-peer caching network for user data |
US6831971B2 (en) * | 2001-05-15 | 2004-12-14 | Spiderphone.Com, Inc. | Fault-tolerant load balancing of conference call bridges |
US20040186918A1 (en) * | 2003-03-21 | 2004-09-23 | Lonnfors Mikko Aleksi | Method and apparatus for dispatching incoming data in a multi-application terminal |
US7953860B2 (en) * | 2003-08-14 | 2011-05-31 | Oracle International Corporation | Fast reorganization of connections in response to an event in a clustered computing system |
US7562145B2 (en) * | 2003-08-28 | 2009-07-14 | International Business Machines Corporation | Application instance level workload distribution affinities |
CN1323533C (zh) * | 2003-09-29 | 2007-06-27 | 王生安 | Ip网多媒体会议系统中分布式多点控制单元的部署方法 |
US7376129B2 (en) * | 2003-10-29 | 2008-05-20 | International Business Machines Corporation | Enabling collaborative applications using Session Initiation Protocol (SIP) based Voice over Internet protocol Networks (VoIP) |
US7734829B2 (en) * | 2004-06-09 | 2010-06-08 | Emc Corporation | Methods, systems, and computer program products for transparently controlling communications between network applications and a plurality of network communications protocol stacks using deferred protocol stack association |
US8166175B2 (en) * | 2005-09-12 | 2012-04-24 | Microsoft Corporation | Sharing a port with multiple processes |
US20080119165A1 (en) | 2005-10-03 | 2008-05-22 | Ajay Mittal | Call routing via recipient authentication |
CN101047531B (zh) * | 2006-03-31 | 2012-12-05 | 联想(北京)有限公司 | 分布式会议系统 |
CN100558109C (zh) * | 2006-05-16 | 2009-11-04 | 华为技术有限公司 | 基于会话初始协议的负载均衡实现方法及系统 |
US8817668B2 (en) | 2006-09-15 | 2014-08-26 | Microsoft Corporation | Distributable, scalable, pluggable conferencing architecture |
US8788620B2 (en) * | 2007-04-04 | 2014-07-22 | International Business Machines Corporation | Web service support for a multimodal client processing a multimodal application |
US7979645B2 (en) * | 2007-09-14 | 2011-07-12 | Ricoh Company, Limited | Multiprocessor system for memory mapping of processing nodes |
-
2009
- 2009-01-21 US US12/357,001 patent/US8849972B2/en active Active
- 2009-10-02 TW TW098133653A patent/TWI419518B/zh not_active IP Right Cessation
- 2009-10-30 EP EP09013668.0A patent/EP2202946A3/en not_active Withdrawn
- 2009-10-30 DE DE09013668T patent/DE09013668T1/de active Pending
- 2009-11-03 CN CN200910174937XA patent/CN101741832B/zh not_active Expired - Fee Related
- 2009-11-03 CN CN201310493324.9A patent/CN103533065A/zh active Pending
- 2009-11-20 JP JP2009265736A patent/JP5629086B2/ja not_active Expired - Fee Related
-
2014
- 2014-08-14 US US14/459,987 patent/US9379984B2/en active Active
-
2016
- 2016-06-27 US US15/193,873 patent/US9992247B2/en active Active
-
2018
- 2018-04-25 US US15/962,666 patent/US10609096B2/en active Active
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018121295A1 (zh) * | 2016-12-30 | 2018-07-05 | 华为技术有限公司 | 一种异构多协议栈方法、装置及系统 |
US11196677B2 (en) | 2016-12-30 | 2021-12-07 | Huawei Technologies Co., Ltd. | Heterogeneous multi-protocol stack method, apparatus, and system |
CN114866521A (zh) * | 2017-02-15 | 2022-08-05 | 微软技术许可有限责任公司 | 会议服务器 |
CN114866521B (zh) * | 2017-02-15 | 2024-04-30 | 微软技术许可有限责任公司 | 会议服务器 |
Also Published As
Publication number | Publication date |
---|---|
CN101741832B (zh) | 2013-11-06 |
US20160308921A1 (en) | 2016-10-20 |
TWI419518B (zh) | 2013-12-11 |
US8849972B2 (en) | 2014-09-30 |
JP5629086B2 (ja) | 2014-11-19 |
CN101741832A (zh) | 2010-06-16 |
US20150026328A1 (en) | 2015-01-22 |
US20180248921A1 (en) | 2018-08-30 |
DE09013668T1 (de) | 2011-01-20 |
US20100131656A1 (en) | 2010-05-27 |
JP2010154518A (ja) | 2010-07-08 |
US10609096B2 (en) | 2020-03-31 |
US9992247B2 (en) | 2018-06-05 |
US9379984B2 (en) | 2016-06-28 |
TW201023565A (en) | 2010-06-16 |
EP2202946A3 (en) | 2014-11-19 |
EP2202946A2 (en) | 2010-06-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101741832B (zh) | 利用相同ip端口在应用的多个实例之间分派接收的会话的方法和系统 | |
US9641802B2 (en) | Video session manager and method for enabling and managing video calling and telepresence communications sessions across multiple domains | |
US6674758B2 (en) | Mechanism for implementing voice over IP telephony behind network firewalls | |
CN100464532C (zh) | 一种多媒体通信的方法和系统 | |
US8300772B2 (en) | Method and apparatus for emergency call processing | |
EP1142267B1 (en) | Announced session description | |
EP2186290B1 (en) | System and method for identifying encrypted conference media traffic | |
EP2403204B1 (en) | Method and system for handling security in an IP multimedia gateway | |
US8149741B2 (en) | Apparatus and method for asymmetrical conferencing between local and external transceivers | |
US8898317B1 (en) | Communications system and related method of distributing media | |
JP2011182212A (ja) | 通信制御装置および通信品質測定方法 | |
US8767944B1 (en) | Mechanism for status and control communication over SIP using CODEC tunneling | |
Lennox et al. | RTP Considerations for Endpoints Sending Multiple Media Streams draft-lennox-avtcore-rtp-multi-stream-02 | |
KR20050030454A (ko) | 교환 시스템의 다자간 통화 서비스 제공 장치 및 그 제공방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20140122 |