CN101383878B - 用于协调对服务器的连接尝试的排队方法 - Google Patents
用于协调对服务器的连接尝试的排队方法 Download PDFInfo
- Publication number
- CN101383878B CN101383878B CN2007101453297A CN200710145329A CN101383878B CN 101383878 B CN101383878 B CN 101383878B CN 2007101453297 A CN2007101453297 A CN 2007101453297A CN 200710145329 A CN200710145329 A CN 200710145329A CN 101383878 B CN101383878 B CN 101383878B
- Authority
- CN
- China
- Prior art keywords
- phone
- devices
- tabulation
- central server
- server
- 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.)
- Expired - Fee Related
Links
Images
Abstract
本发明公开了一种用于协调对服务器的连接尝试的排队方法。客户端/服务器网络包括多个与中心服务器通信的IP设备。所述多个IP设备彼此通信以将它们自身排队到链表中。所述多个IP设备然后以由链表所确定的顺序连接到中心服务器。在尝试连接到中心服务器之前,所述多个设备中的每一个都验证当前尝试连接到中心服务器的IP设备的数目不等于最大数目。
Description
技术领域
本发明涉及客户端/服务器网络,尤其涉及用于协调激励(stimulus)IP电话对服务器的连接尝试的排队方法。
背景技术
在典型的客户端/服务器语音通信网络中,多个IP电话利用传输控制协议(TCP)连接与PBX通信。IP电话利用3级过程连接到PBX。该过程一般包括获取到PBX的TCP链路、进行安全连接以及创建与PBX的控制链路或者登记到PBX。依赖于激励消息传递的IP电话一般需要到它们的PBX的持续TCP控制链路。建立TCP连接一般需要三次握手(three-way handshake)。
例如,在某些事件(例如从电源故障中恢复)期间,当大量IP电话同时尝试建立连接时,PBX可能变得超负荷。队列中的大量SYN分组与其他消息一起导致请求的IP电话在与PBX建立连接之前要等待很长时间。
由于增加诸如安全套接字层(SSL)之类的安全协议,所有IP电话的PBX连接延迟被加重。由于在创建具有IP电话所要求的最高安全级别的密钥时所需要的大量计算,使得处理SSL连接非常费时。这样,PBX一般限制能够同时尝试SSL连接的IP电话数目,并且一旦达到PBX的限额就拒绝进一步的SSL尝试。在这样的情形下,IP电话通常被拒绝进入、被强制断开它们的TCP连接并且在PBX的不安全的明文端口上尝试三次握手。
一旦IP电话连接到安全或不安全端口,其就向PBX登记并且在登记请求中提供其设备能力。如果IP电话在不安全的端口上却通告其支持SSL,则PBX可以拒绝其登记请求并且强制IP电话断开连接以重试SSL连接。如果PBX接受登记,则其将向IP电话发送大量的激励命令,以配置IP电话使其能够发出和接受电话呼叫。与针对大量突发IP电话的配置相关联的大量内部消息传递流可能导致PBX性能的显著恶化。
允许大量的IP电话以随机方式连接到PBX是低效率且冗长的过程。一种解决方案是优化每个电话所发出的TCP SYN分组的数目。将IP电话尝试连接到PBX的时间量限制为例如10秒使得SYN分组的传输集中在较短时段内。如果允许电话用更长的时段尝试连接,则由于TCP所采用的随机补偿(backoff)方案将使得SYN分组被很长的延迟隔开。
电信产业的趋势是提供每个PBX能够支持越来越多的电话的客户端/服务器网络。这样,连接所有的IP电话所需要的总时间不断增加。希望最小化每个IP电话与PBX建立连接所需要的时间量并且从而最小化总的连接时间。
发明内容
在本发明的一个技术方案中,提供了一种客户端/服务器网络,其包括多个与中心服务器通信的IP设备。所述多个IP设备彼此通信以将它们自身排队到链表(linked list)中,用于以一定顺序连接到中心服务器。所述多个IP设备中的每个IP设备都包括验证装置以在尝试连接到中心服务器之前验证当前尝试连接到中心服务器的IP设备的数目不超过最大数目。
附图说明
参照附图,将会更好地理解本发明,其中相似的标号表示相似的部件并且其中:
图1是现有技术IP电话子网的示意图;
图2是示出IP电话获取到PBX的TCP链路的消息流图;
图3是示出IP电话进行与PBX的安全连接的消息流图;
图4是示出IP电话创建与PBX的控制链路的消息流图;
图5是示出根据本发明实施例的IP电话的操作的状态图;
图6是属于双重链表的三个IP电话的示意图;
图7是示出电话之间用于提供双重链表的消息流的示意图;
图8是示出在尝试连接到PBX时双重链表中的电话之间的消息流的示意图;
图9是来自双重链表的电话所尝试的PBX连接的时间线;
图10是示出接收多于一个连接请求的IP电话的操作的状态图;以及
图11、图12和图13是示出两个双重链表之间的合并操作的示意图。
具体实施方式
在本发明的实施例中,激励IP电话1的子网5与中心服务器或PBX 3通信以提供客户端/服务器网络,如图1所示。IP电话还彼此通信以控制同时尝试连接到PBX 3的IP电话1的数目。图1中示出四个IP电话1,但是,子网5可以包括任意数目的IP电话1。
为了建立到PBX 3的控制链路,IP电话1执行连接过程,该连接过程一般包括:初始化延迟、通告IP电话出现在子网5上、加入或创建双重链表以及最后连接到PBX 3。最后连接到PBX 3的步骤包括TCP连接阶段、安全套接字层(SSL)阶段和登记阶段,这些阶段分别在图2、图3和图4中示出。
参照图5,当IP电话1初始化时或者由于任何其他原因而没有连接到PBX时,其在子网5上发送多播“要求连接”的宣告之前进入补偿状态12并持续随机的时间量。该随机的时间量被利用合适的技术优选地确定在10ms的间隔(granularity)内,所述技术例如是基于媒体访问控制(MAC)的伪随机补偿。子网5中的所有IP电话1与PBX 3连接的最大时间量与子网5中的电话的最大数目乘以10ms有关。例如,具有256个电话的子网将具有间隔为10ms的2.56秒的最大补偿范围,具有2048个电话的子网将具有间隔为10ms的20.48秒的最大补偿范围。
随机补偿的目的是要在子网5中散布IP电话1的多播“要求连接”宣告以减少冲突。例如当多个IP电话1被同时初始化或者丢失了它们到PBX的连接并且随后同时发送多播“要求连接”宣告时,发生冲突。
如果IP电话1在处于补偿状态12时接收到来自另一IP电话的多播“要求连接”宣告,则它们复位它们的补偿定时器并且保持在补偿状态12中更长的时间段。当IP电话1从补偿状态12出来并且未接收到来自另一IP电话的多播“要求连接”宣告时,IP电话进入等待连接请求状态14并且发送其自己的多播“要求连接”宣告以通告其存在于子网5上。该通告向当前存在的IP电话的双重链表通知IP电话正在寻找链表。
作为双重链表成员的IP电话1具有两个连接:“前一”连接IP地址和“下一”连接IP地址,如图6所示。双重链表上的第一IP电话1被称为“头”,并且具有空的“前一”连接。类似地,双重链表末端处的IP电话1被称为“末端点”,其具有空的“下一”连接。在图6的示例中,电话A是双重链表的头,电话C是双重链表的末端点。
已发送了“要求连接”宣告的IP电话1将加入当前存在的双重链表中或者在当前不存在双重链表的情况下创建新的双重链表。涉及加入双重链表的连接过程部分一般在图7中示出。响应于新的“要求连接”宣告,作为双重链表的末端点的IP电话1(例如电话4)将向发出宣告的IP电话发送单播“连接请求”消息。发出宣告的IP电话(在图7的示例中是电话5)将利用“连接答复”消息来答复,并且将变成双重链表的新的末端点,如图所示。如果IP电话1在其多播通告后的预定时间量之后还未接收到“连接请求”,则其将利用其自身作为头来创建新的双重链表。
一旦IP电话1在新的双重链表的头处,或者变成当前存在的双重链表的末端点成员,其就进入等待宣告或开始消息状态16,如图5所示。在这种状态下,IP电话1可以利用“连接请求”消息对来自另一发出宣告的IP电话的多播“要求连接”宣告做出响应。如果IP电话1是当前存在的列表的末端点,则其在发起到PBX 3的连接尝试之前在状态16中等待以从其“前一”IP电话接收开始消息。
如果IP电话1是链表头,则其进入开始到PBX的连接序列状态18,并且在补偿时段之后发起到PBX 3的连接尝试。补偿时段一般等于针对子网大小的最大补偿。另外的IP电话1此时仍然可以排队到双重链表上,但是双重链表的头可以自由地开始连接到PBX 3。一旦头进入被连接到PBX的状态20并且当成功登记时接收到适当的激励响应(即,确认消息),则头就利用单播开始消息通知其“下一”连接。然后,“下一”连接变成新的双重链表头。
经过链表的开始消息序列的示例一般在图8中示出。前一双重链表头(在图8中是电话1)利用计数值、以毫秒表示的完成时间和以毫秒表示的延迟时间来填充开始消息。计数值被给定为缺省值5,这是被允许同时尝试与PBX的连接的电话数。计数值随着每个电话接收到开始消息而递减,并且如果计数值大于零则递减后的计数值被传送到“下一”连接。完成时间是前一双重链表头完成IP电话-PBX登记所花费的实际时间量。在图8的示例中,完成时间是340ms。接收到“开始”消息的每个电话在进入开始到PBX的连接序列状态18之前延迟所计算的时间段。所计算的时间段等于延迟种子(被优选地给定为10ms的缺省时间)乘以缺省计数值与接收到的计数值的差。缺省计数值也可以是大于或小于5的数。类似地,缺省时间不局限于10ms,因此可以是不同的值。
“下一”IP电话(在图8中是电话2)接收开始消息A并且一旦接收到消息就递减计数值。大于零的递减后计数值表示当前尝试PBX连接的电话数小于缺省值,因此另一IP电话可以尝试PBX连接。为了允许另一IP电话1尝试PBX连接,电话2将开始消息B传送给电话3(电话3是电话2的“下一”连接)并且在进入开始到PBX的连接序列状态18之前延迟所计算的时间段。计算延迟时间段的方法确保出现在双重链表的更下方的IP电话与早出现在列表中的IP电话相比,延迟逐渐增加。例如,在图8中,从电话1接收开始消息的电话2延迟10ms*(5-5)=0ms,从电话2接收开始消息的电话3延迟10ms*(5-4)=10ms。
如果开始消息的接收者递减计数值并且计数值变为零,则这表示已达到了被允许同时尝试到PBX的连接的IP电话最大数目。因此,在向其“下一”连接发送包括缺省计数值的开始消息之前,IP电话等待,直到其完全登记到PBX为止。在图8的示例中,电话6接收到等于1的计数值,因此在发送其自己的开始消息W到电话7之前,电话6等待,直到其进入了被连接到PBX的状态20为止。开始消息W包括缺省计数值5、电话6连接到PBX的完成时间(即,380ms)和新的延迟种子。新的延迟种子是通过计算电话1和电话6的完成时间的差别加上前一批电话的延迟种子而确定的。在图8的示例中,新的延迟种子=(380-340)+10ms=50ms。新的完成时间和延迟种子通过用于新一批电话的开始消息被传送,并且计数值被如前所述地递减。
参照图9,连接到PBX 3的IP电话1的序列被一般地示出。通过将同时连接尝试的数目限制为缺省计数值,PBX 3不用负担同时尝试连接的大量IP电话1。
如前所述,在一些情况下,会发生多播“要求连接”宣告冲突。这些冲突可能导致IP电话的多个双重链表被创建。这样,许多IP电话1可以利用“连接请求”消息对发出宣告的IP电话1做出响应。参照图10,显示接收两个连接请求的IP电话1的操作的状态图被一般地示出。类似于仅接收单个“连接请求”消息的IP电话1,IP电话1存在补偿状态(未示出)并且在向子网5上的其他IP电话1发送多播“要求连接”宣告之后处于等待连接请求状态14。发出宣告的IP电话1从第一IP电话1接收到单播“连接请求”并且进入等待宣告状态16。在处于等待宣告或开始消息状态16中时,发出宣告的IP电话从第二IP电话接收单播“连接请求”。
如图11所示,发出宣告的IP电话仅接受单个连接请求,并且因而向第一IP电话发送单播“连接答复、成功”消息。发出宣告的IP电话通过向第二IP电话发送单播“连接答复,失败”消息来拒绝来自第二IP电话的连接请求。
发出宣告的IP电话随后发送“队列合并请求”消息到第二IP电话,以将第二IP电话的双重链表合并到其自己的双重链表中。一旦“队列合并答复”消息被发送到第二IP电话,发出宣告的IP电话就进入等待来自第二链表头的连接请求的状态22,并且从第二IP电话接收“队列合并答复”消息。还参照图12,由于第二IP电话的链表的头(而不是末端点)是正在宣告的电话的“下一”连接,因此第二IP电话使“队列合并请求”穿过其链表,直到该消息到达链表的头为止。当头接收到“队列合并请求”消息时,其发送“连接请求”消息到发出宣告的IP电话并且接收来自发出宣告的IP电话的“连接答复、成功”消息以提供合并的双重链表,如图12所示。然后,宣告IP电话进入等待来自前一已连接电话的开始的状态24。状态24类似于图4的状态16,但是,宣告IP电话不是末端点,因此不等待“要求连接”宣告。
为了维持新的双重链表的完整性,所有的IP电话都将优选地每5秒发起一次与其“前一”连接的单播“保持活跃”消息交换。在IP电话的“前一”连接在优选的1秒内没有响应的情况下,认为双重链表被破坏并且该IP电话变成其双重链表的新头。
在另一实施例中,IP电话通知其对等方来执行特定动作。例如,IP电话可以使其消息传递被增强以包括尝试到特定端口的TCP连接多少次的特定指令,或者IP电话可以通知其对等方尝试连接到特定范围的TCP端口。此外,如果IP电话不能在特定时间量内连接到第一PBX,则它们可以彼此通知以连接到不同的PBX。
本领域技术人员将会知道,本发明不局限于IP电话。可以使用任何连接到中心服务器的IP设备,例如包括计算机或其他网络设备。
在这里示出并描述了本发明的具体实施例。但是,本领域技术人员可以想到修改和变形。认为所有这样的修改和变形都在本发明的领域和范围内。
Claims (8)
1.一种客户端/服务器网络,包括:
通过子网与中心服务器通信的多个IP设备,所述多个IP设备彼此发送单播消息以将它们自身排队到列表中以连接到所述中心服务器;
其中,所述多个IP设备中的每一个IP设备包括验证装置以在尝试连接到所述中心服务器之前验证尝试连接到所述中心服务器的IP设备的数目不超过最大数目,并且其中,所述验证装置包括用于从所述列表中的所述多个IP设备中的前一IP设备接收单播消息的装置,所述单播消息包括所述尝试连接到所述中心服务器的IP设备的最大数目。
2.如权利要求1所述的客户端/服务器网络,其中,所述多个IP设备中的每一个IP设备包括用于递减计数值的装置,所述计数值被接收自所述列表中的所述多个IP设备中的所述前一IP设备,并且递减后的计数值被传递给所述列表中的所述多个IP设备中的下一IP设备。
3.如权利要求1所述的客户端/服务器网络,其中,所述单播消息是开始消息,所述开始消息用于提示所述多个IP设备中的每一个IP设备尝试连接到所述中心服务器,服务器连接尝试按由所述列表确定的顺序发生。
4.如权利要求1所述的客户端/服务器网络,其中,所述IP设备是IP电话。
5.一种用于多个IP设备连接到中心服务器的方法,所述方法包括:
将所述多个IP设备排队到列表中;
按由所述列表确定的顺序,所述多个IP设备中的各个设备尝试到所述中心服务器的连接;
其中,所述多个IP设备中的每一个IP设备在尝试连接到所述中心服务器之前验证尝试连接到所述中心服务器的IP设备的数目小于最大数目;
其中,所述列表中的所述多个IP设备中的每一个IP设备维护所述列表中的所述多个IP设备中的前一IP设备和所述列表中的所述多个IP设备中的下一IP设备的IP地址;并且
其中,所述多个IP设备中的每一个IP设备从所述列表中的所述多个IP设备中的所述前一IP设备得知所述尝试连接到所述中心服务器的IP设备的数目。
6.如权利要求5所述的方法,其中,所述多个IP设备中的每一个IP设备递增所述尝试连接到所述中心服务器的IP设备的数目,并且将该新数目传递到所述列表中的所述多个IP设备中的所述下一IP设备。
7.如权利要求5所述的方法,其中,所述多个IP设备按由所述列表确定的顺序尝试连接到所述中心服务器。
8.如权利要求5所述的方法,其中,所述多个IP设备是IP电话。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2007101453297A CN101383878B (zh) | 2007-09-07 | 2007-09-07 | 用于协调对服务器的连接尝试的排队方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2007101453297A CN101383878B (zh) | 2007-09-07 | 2007-09-07 | 用于协调对服务器的连接尝试的排队方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101383878A CN101383878A (zh) | 2009-03-11 |
CN101383878B true CN101383878B (zh) | 2011-11-16 |
Family
ID=40463491
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2007101453297A Expired - Fee Related CN101383878B (zh) | 2007-09-07 | 2007-09-07 | 用于协调对服务器的连接尝试的排队方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101383878B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108156253A (zh) * | 2018-01-05 | 2018-06-12 | 中汇信息技术(上海)有限公司 | 一种数据传输方法、装置及系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0932282A2 (en) * | 1998-01-27 | 1999-07-28 | Nortel Networks Corporation | TCP admission control |
CN1477506A (zh) * | 2002-07-23 | 2004-02-25 | �Ҵ���˾ | 动态恢复客户机/服务器会话的方法和系统 |
-
2007
- 2007-09-07 CN CN2007101453297A patent/CN101383878B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0932282A2 (en) * | 1998-01-27 | 1999-07-28 | Nortel Networks Corporation | TCP admission control |
CN1477506A (zh) * | 2002-07-23 | 2004-02-25 | �Ҵ���˾ | 动态恢复客户机/服务器会话的方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
CN101383878A (zh) | 2009-03-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103312807B (zh) | 数据传输方法、装置及系统 | |
CN101183961B (zh) | 一种实现多用户语音会话的方法及系统 | |
CN102469064B (zh) | 通信实现方法及通信设备 | |
CN101253781A (zh) | 媒体访问控制架构 | |
JP5626818B2 (ja) | 一時ブロックフローの遅延解放方法および装置 | |
CN101873710A (zh) | 基于ieee802.15.4标准的非槽道方式csma-ca算法的优化方法 | |
JP3544302B2 (ja) | コンテンションベース通信ネットワーク | |
CN101383878B (zh) | 用于协调对服务器的连接尝试的排队方法 | |
CN106027599B (zh) | 一种数据传输通道建立方法、系统和服务器 | |
CN104580209A (zh) | 实现多平台消息处理的装置及方法 | |
CN107949004A (zh) | 用于载人航天器的数据处理系统及方法 | |
CN106487817A (zh) | 一种tcp连接的关闭方法及装置 | |
CN112291180A (zh) | 一种消息负载均衡的方法 | |
EP1833220B1 (en) | Queuing method to coordinate connection attempts to a server | |
WO2008121248A1 (en) | Shared communication capabilities of mobile stations for high bandwidth communications | |
CN108270523B (zh) | 带内密钥协商传输方法及传输系统 | |
CN101383879B (zh) | 用于分配对服务器的连接尝试的方法 | |
CN101299710B (zh) | 内存数据库数据同步的方法 | |
Smith | Ascend's Multilink Protocol Plus (MP+) | |
CN113784005B (zh) | 一种语音通话转接方法、装置、存储介质及设备 | |
CN105323721B (zh) | 话权申请的处理方法及装置 | |
EP4027745A1 (en) | Inter-device communication method, related device, and system | |
EP1833206B1 (en) | Method for distributing connection attempts to a server | |
JPH0442656A (ja) | Isdn呼制御方式 | |
US20120170567A1 (en) | Transmission Method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20111116 Termination date: 20170907 |