CN1158615C - 对流媒体服务器实现负载均衡的方法和设备 - Google Patents
对流媒体服务器实现负载均衡的方法和设备 Download PDFInfo
- Publication number
- CN1158615C CN1158615C CNB011256893A CN01125689A CN1158615C CN 1158615 C CN1158615 C CN 1158615C CN B011256893 A CNB011256893 A CN B011256893A CN 01125689 A CN01125689 A CN 01125689A CN 1158615 C CN1158615 C CN 1158615C
- Authority
- CN
- China
- Prior art keywords
- port
- server
- client
- rule
- address
- 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 - Lifetime
Links
- 238000000034 method Methods 0.000 title claims abstract description 48
- 238000012545 processing Methods 0.000 claims abstract description 51
- 230000008569 process Effects 0.000 claims abstract description 17
- 230000008878 coupling Effects 0.000 claims description 24
- 238000010168 coupling process Methods 0.000 claims description 24
- 238000005859 coupling reaction Methods 0.000 claims description 24
- 230000000875 corresponding effect Effects 0.000 claims description 11
- 230000001360 synchronised effect Effects 0.000 claims description 5
- 230000005540 biological transmission Effects 0.000 claims description 4
- 230000009471 action Effects 0.000 description 7
- 238000006243 chemical reaction Methods 0.000 description 6
- 230000004044 response Effects 0.000 description 5
- 230000008859 change Effects 0.000 description 3
- 239000000284 extract Substances 0.000 description 3
- 239000013256 coordination polymer Substances 0.000 description 2
- 238000012217 deletion Methods 0.000 description 2
- 230000037430 deletion Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000008034 disappearance Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000013011 mating Effects 0.000 description 2
- 208000019585 progressive encephalomyelitis with rigidity and myoclonus Diseases 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- RKQKLZMMOQWTGB-HYBUGGRVSA-N diphenyl-[(1R,2S)-2-(phenylsulfanylmethyl)cyclopentyl]phosphane Chemical compound C([C@@H]1[C@@H](CCC1)P(C=1C=CC=CC=1)C=1C=CC=CC=1)SC1=CC=CC=C1 RKQKLZMMOQWTGB-HYBUGGRVSA-N 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
Images
Classifications
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/231—Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion
- H04N21/23103—Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion using load balancing strategies, e.g. by placing or distributing content on different disks, different memories or different servers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/20—Servers specifically adapted for the distribution of content, e.g. VOD servers; Operations thereof
- H04N21/23—Processing of content or additional data; Elementary server operations; Server middleware
- H04N21/231—Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion
- H04N21/23116—Content storage operation, e.g. caching movies for short term storage, replicating data over plural servers, prioritizing data for deletion involving data replication, e.g. over plural servers
Landscapes
- Engineering & Computer Science (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Multimedia (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Computer And Data Communications (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及一种对流媒体服务器实现负载均衡的方法和设备,负载均衡器放在流媒体服务器群的前面,服务器群由负载均衡器来托管,每个服务器有自己的私有IP地址,对外公开的IP地址交给了负载均衡器,其中负载均衡器包括客户端口处理模块、服务端口处理模块和主控模块。客户端口处理模块,完成对来自客户端的数据的识别与转发工作。服务端口处理模块,完成对来自于服务器侧的数据的识别与转发工作。主控模块,对要求进行高层处理的数据进行规则的匹配,来确定由哪个真实的服务器来对数据的处理,并建立客户端口处理模块与服务器端口处理模块的流规则表。
Description
技术领域:
本发明涉及一种对本地流媒体服务器实现负载均衡的方法和设备。
背景技术:
随着流媒体的广泛应用,对流媒体服务器提供服务的能力有了很高的要求,一台高性能的服务器一般只支持几千个并发连接,不能满足大量用户的访问,为了解决这个问题,考虑的是如何用多台服务器为用户服务,即将用户的访问分布到多台服务器上,使支持的用户数的能力大大增加,并且随着服务器数的扩展,支持的用户数也会相应的增长,这样对流媒体的访问过程中,流媒体服务器能力不将是瓶颈。
当前,解决上述问题一般用DNS的负载均衡办法,该方法是在对同一域名解析时,可以得到多个IP地址,即对应多台服务器,它将对同一域名的请求分给了多台具有独立IP地址的服务器,这种方法简单、易行,但是缺点是显而一见,它无法得知服务器之间的差异,它不能为较好的服务器多分配请求,也不能了解到服务器当前状态,甚至会出现客户请求会集中在某一台服务器上的情况,更重要的是它使用了过多的公有IP地址,在有限的公有IP地址下,大量的使用,是很致命的缺点。我们在这里提到的对流媒体服务器负载均衡的方法就解决上述问题。
发明内容:
本发明的目的是提供一种对流媒体服务器实现负载均衡的方法和设备,使服务器群只用一个和少量几个公用IP地址,通过不同的负载均衡策略实现客户请求的负载均衡。解决以前对流媒体访问时,单台服务器处理能力不够的问题。
根据本发明的一个方面,一种对流媒体服务器实现负载均衡的方法,其工作场景是负载均衡器放在流媒体服务器群的前面,服务器群由负载均衡器来托管,每个服务器有自己的私有IP地址,对外公开的IP地址交给了负载均衡器,其中负载均衡器包括客户端口处理模块、服务端口处理模块和主控模块,该方法包括以下步骤:客户端口处理模块用客户端口的第一类流规则拦截客户发来传输控制协议请求,送给主控模块处理,得到去往真实服务器的地址;主控模块将客户发来的同步序号包发送给真实服务器;服务器端口处理模块用服务器端口的第一类流规则拦截真实服务器的应答,将其送给主控模块,从而完成真实服务器的同步序号应答;主控模块根据真实服务器的地址和序列号信息在客户端口和服务器端口分别建立第二类流规则,从而建立两端口的实时流媒体协议的控制通道;然后,主控模块根据控制通道的一些信息,在客户端口和服务器端口分别建立第三类流规则,从而建立两端口的数据通道。
此外,客户端口的第一类流规则和服务器端口的第一类流规则分别是低优选级的默认规则。
此外,客户端口的第二类流规则和服务器端口的第二类流规则分别是实时流媒体协议RTSP分类规则,即控制通道分类规则。
此外,客户端口的第三类流规则和服务器端口的第三类流规则分别是实时传输协议/实时传输控制协议RTP/PTCP分类规则,即数据通道分类规则。
根据本发明的另一方面,提供了一种对流媒体服务器实现负载均衡的负载均衡器,
该负载均衡器放在流媒体服务器群的前面,服务器群由负载均衡器来托管,每个服务器有自己的私有IP地址,对外公开的IP地址交给了负载均衡器,该负载均衡器包括:客户端口处理模块,完成对来自客户端的数据的识别与转发工作,根据匹配的规则表的相应的动作,将数据转发给负载均衡器的主控模块部分处理或直接转发给真实服务器;服务端口处理模块,完成对来自于服务器侧的数据的识别与转发工作,根据匹配服务器侧的规则表的相应的动作,将数据转发给负载均衡器的主控模块处理部分处理或直接转发给客户;主控模块,对要求进行高层处理的数据进行规则的匹配,来确定由哪个真实的服务器来对数据的处理,并建立客户端口处理模块与服务器端口处理模块的流规则。
附图说明:
图1是负载均衡器的工作场景示意图;
图2是流媒体负载均衡器的原理图;
图3示出了PTSP控制流的建立过程。
具体实施方式:
首先说明对本发明所使用的缩略词予以说明:
TCP:Transport Control Protocal传输控制协议
UDP:User Datagram Protocal用户数据报协议
SYN:Synchronize Number同步序号,当客户发一个新的连接时的时候,让SYN=1,连接建立以后的其它的包的SYN=0。(见TCP/IP协议)
ACK:命令应答,当对对方的请求应答时,ACK置位,即ACK=1。
RTSP:Real_Time Stream Protocal实时流媒体协议
RTP:Real_Time Transport Protocal实时传输协议
RTCP:Real_Time Transport Control Protocal实时传输控制协议
DNS:Domain Name Server域名服务
VIP:Virtual Ip Address虚拟IP地址
URL:Uniform Resource Locator,在Internet的WWW服务程序上用于指定信息位置的表示方法。
实现本发明的流媒体负载均衡,可以是一软件,也可以是一设备。
整个工作场景应该是:负载均衡器放在流媒体服务器群的前面,该服务器群都由负载均衡器来托管,每个服务器有自己的私有IP地址,而不必有对外公开的IP地址,
对外公开的IP地址给了负载均衡器,我们称这个IP地址为虚拟IP地址(VIP),客户访问都是访问VIP。负载均衡器与流媒体服务器群的关系如图1所示,假设有四台流媒体服务器,S1、S2、S3、S4,它们都有自己的内网IP地址,比如说:第一台服务器私有IP地址为10。110。9。5,第二台为10。110。9。6,第三台为10。110。9。7,第四台为10。110。9。9,他们可以提供相同的服务,即放置相同的内容。并且假设他们的处理能力都是有限的,比如都只能同时处理100个连接。在他们的前面放置负载均衡器,该负载均衡器的IP地址是公有IP地址,是对外的IP地址,比如202。11。2。10,当INTERNET上的用户想访问该站点提供的流媒体服务,他们会发起向该服务器群的请求,这时用户使用的目的IP地址是202。11。2。10,即是在向负载均衡器发起请求,而不是向四台真实服务器中的任意一台发起请求,负载均衡器接收到请求后,会根据一定的策略将该请求分给四台服务器中的一台。这是一个用户请求的情况,现在假设服务器群正在播放一部好看的电影,会有大量的请求包发过来,如果用一台服务器来支持这些请求,而一台服务器的支持的请求数是有限的100,显然,一台服务器是不能胜任的,用了负载均衡器就可以解决该问题,像上图一样,负载均衡器会将这些大量的请求分布到不同的真实服务器上,这样就满足了要求,实现了负荷分担,这时服务器群可以同时支持400个连接,如果想要再多支持一些,只要在负载均衡器后再增加一些真实服务器就可以了,所以扩展起来很方便。
实现流媒体负载均衡,其处理框架大致可以分为客户端处理模块和服务器端处理模块、及主控模块,如图2所示。客户端口处理模块:主要是完成对来自客户端的数据的识别与转发工作,根据匹配的规则表的相应的动作,将数据转发给负载均衡器的主控模块部分处理或直接转发给真实服务器;服务端口处理模块:主要完成对来自于服务器侧的数据的识别与转发工作,根据匹配服务器侧的规则表的相应的动作,将数据转发给负载均衡器的主控模块处理部分处理或直接转发给客户;主控模块:对要求进行高层处理的数据进行规则的匹配,来确定由哪个真实的服务器来对数据的处理,并建立客户端口处理模块与服务器端口处理模块的流规则表,如CC2,CC3,CS2,CS3。至于CC1,CS1,它是一种默认规则表,是在处理之初就建立好了(见表1,表2)。
对流媒体来说,一般用的流媒体协议都是RTSP(实时流媒体协议)协议,及RTP/RTCP(实时传输协议/实时传输控制协议),其中RTSP协议是来传输流媒体的控制信息,而RTP/RTCP是用来传输流媒体的数据信息,负载均衡器的实现过程实际上就是要根据发来的包的内容信息,在客户处理模块与服务器端处理模块建立控制通道与数据通道的过程,而控制通道在负载均衡器内部就是CC2,与CS2两类表(见表1,表2),建立了这两类表后,就建立了RTSP控制通道,接下来的数据就通过该通道直接转发。而数据通道在负载均衡内部就是CC3,CS3这两类表,建立了这两类表后,就建立了数据通道,接下来的数据就直接通过该通道直接转发了。
所以,在负载均衡器的内部,主要有两种数据结构,即客户模块端的流规则表(如下表1),和服务模块端的流规则表(如下表2),下面简要地说明这两个流规则表的产生:
总共有两个规则表,客户端口处理模块与服务器端口处理模块各一个,它们分别拦截来自客户与服务器侧的数据包。而每一个规则表主要有三类规则,第一类为固定的永久规则,如CC1,CS1它是在初始化时就设置的,该规则用来拦截还未建立控制与数据通道的包,交给主控模块处理,让主控模块根据这些包的信息生成第二类规则,如CC2,CS2,即控制通道,然后根据控制通道的一些信息,建立数据通道,即CC3,CS3。这样当整个控制与数据通道建立好后,属于同一个流的数据就直接让其转发了。下面有它们的详细说明。
为了说明流媒体负载均衡的整个过程,现在考虑一次RTSP会话,由IP地址为CA、端口为CP的客户发起,目的地址是VIP、端口号554(流媒体RTSP的默认端口是554)。图3显示了连接建立和数据传输过程的每一步:图3中的英文名分别是:CLIENT:客户;CLIENT PORT:负载均衡器的客户端口;POWERPC:主控模块;SERVER PORT:负载均衡器的服务器端口;SERVER:服务器。
图3仅就RTSP的控制通道建立的过程一步步做了说明,即从步骤1到步骤16,数据通道的建立过程并没有在图中体现。因为数据通道建立的过程是在控制通道的基础上,通过提取控制数据信息来建立的,数据通道建立的过程在下面的文字说明中包含了对它的说明。一看就一目了然,即数据通道(RTP/RTCP)的建立过程是在已经建立好了控制通道后,根据控制通道来的客户的“SETUP”包,监视服务器对该包的应答,从对该包的应答中得知RTP/RTCP的端口号信息,从而得到建立RTP/RTCP的数据通道的信息,建立数据通道。
1、客户端发起一个TCP请求,SYN=1,(因为是一次新的请求,故SYN=1),设序列号为CSEQ,在客户端口被拦截,经过客户端的流分类表(如下表1),匹配上规则表CC1,(说明:因为是第一个包,它的流规则还没有建立,就只能匹配上低优先级的CC1规则,该规则将TCP请求发给CPU(即主控模块),由主控模块来处理)。(完成了步骤1,步骤2)。
2、CPU假装服务器向客户回一个SYN应答(完成步骤3,步骤4)。
3、客户端得到应答后,发起RTSP的请求,被客户端口规则CC1拦截,送给CPU(步骤5),CPU看是RTSP的请求,解开包,得到URL,进行URL的匹配,进而得到去往的真实服务器地址。同时,还要看是否是“SETUP”方法,如果是,记下它的RTSP会话序列号(Cseq)。(步骤5,步骤6)
4、CPU将客户端发来的SYN包,根据得到的真实的服务器的信息,发给真实服务器,序列号仍然是CSEQ。(步骤7,步骤8)
5、服务器发回SYN的应答,序列号为SSEQ,应答号CSEQ+1,在服务器端口处,被规则表2中的CS1规则拦截,然后给CPU。服务器完成SYN应答。同时,根据真实服务器IP地址,及SSEQ等信息,在客户端口建立流分类规则CC2,在服务器端口建立流分类规则CS2,如表1,表2所示。这样两端的RTSP的控制通道就建成了!以后的属于同一流的控制信息直接可以通过这个通道直接转发了!(步骤9,步骤10)
6、CPU将客户端来的RTSP包,发给真实服务器,序列号为CSEQ+1,应答号为SSEQ+1.(步骤11,步骤12)接下来的数据就直通了,如(步骤13,14,15,16)。
7、服务器得到了RTSP的请求包,发起RTSP的应答,被均衡器的服务端口拦截,匹配上CS2,按该规则进行序列号转换(SSEQ+1转化为DSEQ+1),然后检查它的会话应答序列号(Cseq),是否是上次客户端来的同一个流的″SETUP″会话序列号(Cseq),如果是,表示是对上次来的″SETUP″的应答包,于是将它发给CPU执行第8步操作。否则执行第9步操作。
8、由CPU来解开该应答包,根据RTSP协议,对″SETUP″方法包的应答里含有RTP/RTCP的端口号,于是提取出RTP/RTCP的端口号(包括客户端的及服务器端的),在客户端口与服务器端口处添加RTP/RTCP的流规则表,如表1的CC3,表2的CS3。这样,RTP/RTCP的直连通道就建成了。同时建立CC2与CC3的联系,CS2与CS3的联系,也就是说,知道CC2这个RTSP的流,就可以知道对应的RTP/RTCP的CC3规则的流,同理,知道了CS2,也就知道它对应的CC3,这样,在会话的结束的时候,可以对一次会话的流(包括RTSP,RTP/RTCP)全部删除,然后执行第9步。
9、将转换了序列号的包按匹配的规则中的转发路径直接发给客户。
以上是整个RTSP及对应的RTP/RTCP的流规则表的建立过程。但是,并不是说建立了这个流规则表,CPU就不在参与该次会话了,根据客户端的规则表内容(见表1,有一项是CMP″SETUP″方法),当匹配上CC2时,接下来的动作就是与″SETUP″的比较,看是否是SETUP方法的请求,如果不是,就直接按路由信息转发出去,如果是,转发给CPU,就按上面描述的一样,记下该请求的RTSP会话序列号。同时把该序列号通知服务器端口的对应规则。等到从该对应规则处来的一个RTSP应答的会话序列号刚好与上次请求会话序列号相同,说明是上次的SETUP的应答。于是交给CPU,提取RTP/RTCP的端口号。在服务器端口处及客户端口处建立RTP/RTCP的流规则表,然后才将该应答按规则中的路由信息转发出去。当然,如果服务器应答的不是″SETUP″的应答,就按规则的路由信息转发出去。
客户端口处理过程
首先,客户端向服务器发起一个RTSP的请求,要求得到服务器的服务,它的目的IP地址是VIP,VIP是均衡器后面托管的所有服务器的对外的统一使用的IP地址,当客户端口得到该数据,进入端口的一个分类器进行分类,分类器的规则表1(客户端口的流规则表)如下所示:
RTSP(RTP/RTCP)客户端规则表 | ||||
规则ID | SD: DD: SP: DP: P: FLA | 类型 | 优先级 | 动作 |
CC1 | *: VIP: *: 554: TCP: SYN | Perm | P1 | 去往CPU |
CC2 | CD: VIP: CP: 554: TCP: ANY | Temp | P2 | 序列号转换比较″SETUP″ |
CC3 | CD: VIP: CSP: CDP: UDP: ANY | Temp | P2 | 去往真实服务器 |
表1
分类器根据包中的2、3、4层信息,作出对包的处理决定。和分类处理器相连的有动作标志(action flag)和元信息(meta infomation),这些都决定了怎样去处理一个数据包。关于表的符号说明如下:
规则ID:流规则序列号。
SD:Source IP address,源IP地址。
DD:Destination address,目的IP地址。
SP:Source port NO,源端口号。
DP:Destination address,目的端口号。
P:Protocal Number协议号。
FLAG:标记,是同步包还是非同步包。
类型:是PERM(永久)规则,还是TEMP(临时)规则。
优先级:P1为最低优先级,P2为高优先级。当没有匹配上CC2,CC3的规则,就按规则低优先级的CC1执行。
注意,表中的分类器共有两种类型,永久型和暂时型。永久型分类器在交换机初始化的时候建立,而且,仅可以通过改变配置数据来改变。暂时型分类器伴随具体的连接,随着连接的建立而建立,随着连接的消失而删除。另外,每个分类器都有个优先级,在冲突的情况下,高优先级的分类器起作用。在下面的具体示例中,如果i>j,则优先级Pi优于Pj。
显然,客户端口的规则主要有三类:
1、匹配端口为554的TCP同步包,直接交给中央处理器CPU。
2、匹配端口为554的TCP的流规则包,匹配后,将RTSP的方法名与SETUP比较。
3.匹配RTP/RTCP的流,匹配上后,直接发给服务器。
说明:1.对规则CC2,动作中,有比较″SETUP″外,还有序列号的转换,及匹配上后去往的服务器路由信息。
2.对规则CC3,动作中,只有去往的服务器路由信息,没有序列号的转换。
服务器端口处理过程
我们知道,负载均衡器与服务器完成了三次握手后,在客户端口与服务器端口处建立了流规则表,CC2,CS2.其中客户端口处的流规则表在上面已有说明,下面,将说明一下服务器端的流规则表2,其表如下:
RTSP(RTP/RTCP)服务器端口规则表 | ||||
规则ID | SD:DD: SP: DP: P: FLAG | 类型 | 优先级 | 动作 |
CS1 | *: VIP: *: 554: TCP: SYN | Perm | P1 | 去往CPU |
CS2 | SD:VIP: SP: 554: TCP: ANY | Temp | P2 | 序列号变换去往cpu/clnt |
CS3 | SD:VIP: SSP: SDP: UDP: ANY | Temp | P2 | 去往客户 |
表2
其中,规则ID:流规则序列号。
SD:Source IP address,源IP地址。
DD:Destination address,目的IP地址。
SP:Source port NO,源端口号。
DP:Destination address,目的端口号。
P:Protocal Number协议号。
FLAG:标记,是同步包还是非同步包。
类型:是PERM(永久)规则,还是TEMP(临时)规则。
优先级:P1为最低优先级,P2为高优先级。当没有匹配上CC2,CC3的规则,就按规则低优先级的CC1执行。
注意,表中的分类器共有两种类型,永久型和暂时型。永久型分类器在交换机初始化的时候建立,而且,仅可以通过改变配置数据来改变。暂时型分类器伴随具体的连接,随着连接的建立而建立,随着连接的消失而删除。另外,每个分类器都有个优先级,在冲突的情况下,高优先级的分类器起作用。在下面的具体示例中,如果i>j,则优先级Pi优于Pj。
CPU分析RTSP的请求,得到URL,进行URL的匹配,进而得到真实服务器的地址,将得到的客户端来的请求包,按真实服务器地址发给它,三次握手后,CS2建立,(如前面所述),服务器发RTSP的应答,都将被CS2规则拦截,拦截后,首先进行序列号的转换,再查看有没有标志FLAG置位,如果没有,按路由信息,直接发给客户,如果有置位,比较一下会话序列号(Cseq),看是否与提供的序列号相等,如果相等,将包发给CPU处理,如果不相等,直接路由。以上是服务器端口对RTSP的处理。
分析″SETUP″的应答后,可以得到RTP/RTCP的端口号,在客户与服务器端口处建立CC3,CS3,两个规则,(前面有描述),对于CS3来说,匹配上了就直接路由的,但CS3一定要与对应的RTSP的CS2规则建立一种联系,以便删除时,将一次会话删除干净。
所以,与客户端口一样,服务器端口的规则主要有三类:
1、匹配端口为554的TCP同步包,直接交给中央处理器CPU。
2、匹配端口为554的TCP的流规则包,匹配后,将根据具体情况进行不同的转发。
3、匹配RTP/RTCP的流,匹配上后,直接发给客户。
主控模块的处理过程
主控模块的处理过程,也即前面说的CPU的处理过程,主要包括如下方面:
1、对SYN包的处理,来自客户端的SYN包,都会交给CPU来处理。
2、对客户来的SETUP请求包的处理,记下它的序列号;并把序列号发给对应的服务器端口规则;对服务器来的SETUP应答包的处理,解包,提取RTP/RTCP的端口;
3、建立下发规则表,包括RTSP的规则和RTP/RTCP的规则。
以上详细说明了流媒体的负载均衡过程,给出了实现负载均衡的一种方法。
如上所述,本发明有效解决长期困扰流媒体服务器服务能力不够的问题,当前DNS负载均衡方法的负载均衡功能是很有限的,而本发明的这种流媒体服务器负载均衡方法是种更智能的,全面,灵活的均衡办法。
上述该负载均衡功能可以用网络处理器来实现,数据包的路由转发由网络处理器微码来实现,而TCP/IP协议上层的分析、处理由网络处理器的内嵌CORE来处理。如果为了达到很高的性能,可以采用分布式的处理方式。
Claims (5)
1.一种对流媒体服务器实现负载均衡的方法,负载均衡器放在流媒体服务器群的前面,服务器群由负载均衡器来托管,每个服务器有自己的私有IP地址,对外公开的IP地址交给了负载均衡器,其中负载均衡器包括客户端口处理模块、服务端口处理模块和主控模块,该方法包括以下步骤:
客户端口处理模块用客户端口的第一类流规则拦截客户发来传输控制协议请求,送给主控模块处理,得到去往真实服务器的地址;
主控模块将客户发来的同步序号包发送给真实服务器;
服务器端口处理模块用服务器端口的第一类流规则拦截真实服务器的应答,将其送给主控模块,从而完成真实服务器的同步序号应答;
主控模块根据真实服务器的地址和序列号信息在客户端口和服务器端口分别建立第二类流规则,从而建立两端口的实时流媒体协议的控制通道;
然后,主控模块根据控制通道的一些信息,在客户端口和服务器端口分别建立第三类流规则,从而建立两端口的数据通道。
2.根据权利要求1所述的方法,其中客户端口的第一类流规则和服务器端口的第一类流规则分别是低优选级的默认规则。
3.根据权利要求1所述的方法,其中客户端口的第二类流规则和服务器端口的第二类流规则分别是实时流媒体协议分类规则,即控制通道的分类规则。
4.根据权利要求1所述的方法,其中客户端口的第三类流规则和服务器端口的第三类流规则分别是实时传输协议/实时传输控制协议分类规则,即数据通道的分类规则。
5.一种对流媒体服务器实现负载均衡的负载均衡器,该负载均衡器放在流媒体服务器群的前面,服务器群由负载均衡器来托管,每个服务器有自己的私有IP地址,对外公开的IP地址交给了负载均衡器,该负载均衡器包括:
客户端口处理模块,完成对来自客户端的数据的识别与转发工作,根据匹配的规则表的相应的动作,将数据转发给负载均衡器的主控模块部分处理或直接转发给真实服务器;
服务端口处理模块,完成对来自于服务器侧的数据的识别与转发工作,根据匹配服务器侧的规则表的相应的动作,将数据转发给负载均衡器的主控模块处理部分处理或直接转发给客户;
主控模块,对要求进行高层处理的数据进行规则的匹配,来确定由哪个真实的服务器来对数据的处理,并建立客户端口处理模块与服务器端口处理模块的流规则。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB011256893A CN1158615C (zh) | 2001-09-06 | 2001-09-06 | 对流媒体服务器实现负载均衡的方法和设备 |
US13/458,321 USRE44918E1 (en) | 2001-09-06 | 2002-08-15 | Method and apparatus for equalizing load of streaming media server |
PCT/CN2002/000564 WO2003021931A1 (fr) | 2001-09-06 | 2002-08-15 | Procede et appareil d'egalisation de la charge d'un serveur de transmission multimedia en continu |
US10/488,796 US7707301B2 (en) | 2001-09-06 | 2002-08-15 | Method and apparatus for equalizing load of streaming media server |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB011256893A CN1158615C (zh) | 2001-09-06 | 2001-09-06 | 对流媒体服务器实现负载均衡的方法和设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1403934A CN1403934A (zh) | 2003-03-19 |
CN1158615C true CN1158615C (zh) | 2004-07-21 |
Family
ID=4666061
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB011256893A Expired - Lifetime CN1158615C (zh) | 2001-09-06 | 2001-09-06 | 对流媒体服务器实现负载均衡的方法和设备 |
Country Status (3)
Country | Link |
---|---|
US (2) | US7707301B2 (zh) |
CN (1) | CN1158615C (zh) |
WO (1) | WO2003021931A1 (zh) |
Families Citing this family (43)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3770831B2 (ja) * | 1999-08-18 | 2006-04-26 | 富士通株式会社 | ネットワークの負荷分散を行うコンピュータ、監視装置、その方法およびそのためのプログラムを記録した記録媒体 |
CN100417155C (zh) * | 2003-05-08 | 2008-09-03 | 上海交通大学 | 远程教学多模式实时多媒体交互*** |
CN100362507C (zh) * | 2003-07-23 | 2008-01-16 | 华为技术有限公司 | 一种服务器负载均衡方法 |
CN100341301C (zh) * | 2005-05-25 | 2007-10-03 | 复旦大学 | 基于nat的udp流媒体服务器的网关穿透方法 |
KR100715674B1 (ko) * | 2005-09-15 | 2007-05-09 | 한국전자통신연구원 | 부하 분산 방법 및 장치, 그리고 이를 이용한 소프트웨어스트리밍 시스템 |
CN1863202B (zh) * | 2005-10-18 | 2011-04-06 | 华为技术有限公司 | 提高负载均衡设备和服务器处理性能的方法 |
CN100461758C (zh) * | 2005-12-08 | 2009-02-11 | 华为技术有限公司 | 多接口流量平衡控制方法 |
CN100420224C (zh) * | 2006-04-14 | 2008-09-17 | 杭州华三通信技术有限公司 | 网络设备及其实现业务分担的方法 |
CN100435530C (zh) * | 2006-04-30 | 2008-11-19 | 西安交通大学 | 一种多机服务器***中双向负载均衡机制的实现方法 |
US8583821B1 (en) * | 2006-11-27 | 2013-11-12 | Marvell International Ltd. | Streaming traffic classification method and apparatus |
CN101207568B (zh) * | 2007-03-16 | 2011-11-23 | 中国科学技术大学 | 多协议适配器及其对多种业务实现适配处理的方法 |
CN101207550B (zh) * | 2007-03-16 | 2010-09-15 | 中国科学技术大学 | 负载均衡***及多种业务实现负载均衡的方法 |
CN101079884B (zh) * | 2007-03-27 | 2010-11-10 | 腾讯科技(深圳)有限公司 | 一种客户端登陆业务服务器的方法、***及设备 |
CN101072386B (zh) * | 2007-06-22 | 2010-06-23 | 腾讯科技(深圳)有限公司 | 业务服务器、***消息服务器和消息广播方法 |
CN101110760B (zh) * | 2007-08-22 | 2010-07-28 | 番禺职业技术学院 | 流媒体流量均衡方法及装置 |
CN101500005B (zh) * | 2008-02-03 | 2012-07-18 | 北京艾德斯科技有限公司 | 一种基于iSCSI协议访问服务器上的设备的方法 |
CN101242367B (zh) * | 2008-03-07 | 2010-07-14 | 上海华平信息技术股份有限公司 | 选择媒体流中转节点端的方法 |
CN101252591B (zh) * | 2008-04-03 | 2011-05-04 | 中国科学技术大学 | 实现上下行数据分离的方法和装置 |
US8645565B2 (en) * | 2008-07-31 | 2014-02-04 | Tekelec, Inc. | Methods, systems, and computer readable media for throttling traffic to an internet protocol (IP) network server using alias hostname identifiers assigned to the IP network server with a domain name system (DNS) |
US8228848B2 (en) * | 2008-11-17 | 2012-07-24 | Sierra Wireless, Inc. | Method and apparatus for facilitating push communication across a network boundary |
CN101404619B (zh) * | 2008-11-17 | 2011-06-08 | 杭州华三通信技术有限公司 | 一种实现服务器负载均衡的方法和一种三层交换机 |
US8924486B2 (en) * | 2009-02-12 | 2014-12-30 | Sierra Wireless, Inc. | Method and system for aggregating communications |
GB2478470B8 (en) | 2008-11-17 | 2014-05-21 | Sierra Wireless Inc | Method and apparatus for network port and netword address translation |
CN101697633B (zh) * | 2009-11-10 | 2011-12-28 | 西安西电捷通无线网络通信股份有限公司 | 一种基于ip自适应的负载均衡方法及其*** |
CA2781932A1 (en) * | 2009-11-26 | 2011-06-03 | Nec Corporation | Relay device |
US9118491B2 (en) * | 2010-06-30 | 2015-08-25 | Alcatel Lucent | Return of multiple results in rule generation |
CN101986645A (zh) * | 2010-10-27 | 2011-03-16 | 中兴通讯股份有限公司 | 多模块下的信令转发方法、***和媒体服务器 |
CN102075536A (zh) * | 2011-01-13 | 2011-05-25 | 湖南超视物联智能网络科技有限公司 | 一种支撑手持监控的后台视频代理服务的方法 |
WO2012106820A1 (en) | 2011-02-08 | 2012-08-16 | Sierra Wireless, Inc. | Method and system for forwarding data between network devices |
CN102075445B (zh) * | 2011-02-28 | 2013-12-25 | 杭州华三通信技术有限公司 | 负载均衡方法及装置 |
CN103491016B (zh) * | 2012-06-08 | 2017-11-17 | 百度在线网络技术(北京)有限公司 | Udp负载均衡***中源地址传递方法、***及装置 |
CN102821172B (zh) * | 2012-09-10 | 2015-06-17 | 华为技术有限公司 | Sip注册服务器地址的获得方法、设备及*** |
US10091291B2 (en) * | 2013-06-28 | 2018-10-02 | SpeakWorks, Inc. | Synchronizing a source, response and comment presentation |
US9591072B2 (en) * | 2013-06-28 | 2017-03-07 | SpeakWorks, Inc. | Presenting a source presentation |
CN104092754B (zh) * | 2014-07-04 | 2017-11-24 | 用友网络科技股份有限公司 | 文件存储***和文件存储方法 |
CN105472018A (zh) * | 2015-12-22 | 2016-04-06 | 曙光信息产业股份有限公司 | 流量检测的方法、负载均衡器、检测服务器和*** |
DK201670595A1 (en) * | 2016-06-11 | 2018-01-22 | Apple Inc | Configuring context-specific user interfaces |
WO2018035046A1 (en) | 2016-08-15 | 2018-02-22 | President And Fellows Of Harvard College | Treating infections using idsd from proteus mirabilis |
CN106658047B (zh) * | 2016-12-06 | 2020-04-10 | 新奥特(北京)视频技术有限公司 | 一种流媒体服务器云数据处理方法及装置 |
CN110324244B (zh) * | 2018-03-28 | 2021-09-14 | 北京华为数字技术有限公司 | 一种基于Linux虚拟服务器的路由方法及服务器 |
CN109831398B (zh) * | 2018-12-29 | 2021-11-26 | 晶晨半导体(上海)股份有限公司 | 一种串行数据接收器的多级均衡器增益的自动调整方法 |
CN111935285A (zh) * | 2020-08-12 | 2020-11-13 | 创意信息技术股份有限公司 | 一种动态负载均衡方法 |
CN112929285B (zh) | 2020-08-28 | 2022-05-31 | 支付宝(杭州)信息技术有限公司 | 区块链网络的通信优化*** |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6182139B1 (en) | 1996-08-05 | 2001-01-30 | Resonate Inc. | Client-side resource-based load-balancing with delayed-resource-binding using TCP state migration to WWW server farm |
CA2202572C (en) | 1997-04-14 | 2004-02-10 | Ka Lun Eddie Law | A scaleable web server and method of efficiently managing multiple servers |
JP3707927B2 (ja) | 1998-04-14 | 2005-10-19 | 富士通株式会社 | サーバスループット予約システム |
US6665702B1 (en) * | 1998-07-15 | 2003-12-16 | Radware Ltd. | Load balancing |
US6195680B1 (en) * | 1998-07-23 | 2001-02-27 | International Business Machines Corporation | Client-based dynamic switching of streaming servers for fault-tolerance and load balancing |
IL132016A (en) | 1998-09-24 | 2003-12-10 | Alteon Web Systems Inc | Distributed load-balancing internet servers |
US6389462B1 (en) | 1998-12-16 | 2002-05-14 | Lucent Technologies Inc. | Method and apparatus for transparently directing requests for web objects to proxy caches |
JP3770831B2 (ja) * | 1999-08-18 | 2006-04-26 | 富士通株式会社 | ネットワークの負荷分散を行うコンピュータ、監視装置、その方法およびそのためのプログラムを記録した記録媒体 |
US6389448B1 (en) * | 1999-12-06 | 2002-05-14 | Warp Solutions, Inc. | System and method for load balancing |
EP1235392A1 (en) | 2000-09-22 | 2002-08-28 | Matsushita Electric Industrial Co., Ltd. | Data transmitting/receiving method, transmitting device, receiving device, transmitting/receiving system, and program |
US20020107962A1 (en) | 2000-11-07 | 2002-08-08 | Richter Roger K. | Single chassis network endpoint system with network processor for load balancing |
US7333482B2 (en) * | 2000-12-22 | 2008-02-19 | Interactive People Unplugged Ab | Route optimization technique for mobile IP |
-
2001
- 2001-09-06 CN CNB011256893A patent/CN1158615C/zh not_active Expired - Lifetime
-
2002
- 2002-08-15 US US10/488,796 patent/US7707301B2/en not_active Ceased
- 2002-08-15 WO PCT/CN2002/000564 patent/WO2003021931A1/zh not_active Application Discontinuation
- 2002-08-15 US US13/458,321 patent/USRE44918E1/en active Active
Also Published As
Publication number | Publication date |
---|---|
US7707301B2 (en) | 2010-04-27 |
USRE44918E1 (en) | 2014-05-27 |
CN1403934A (zh) | 2003-03-19 |
US20050027875A1 (en) | 2005-02-03 |
WO2003021931A1 (fr) | 2003-03-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1158615C (zh) | 对流媒体服务器实现负载均衡的方法和设备 | |
CN102075445B (zh) | 负载均衡方法及装置 | |
CN1968227A (zh) | 一种无线接入网关支持透明代理的***及方法 | |
CN1863157A (zh) | 穿越nat实现网络通信的方法及装置 | |
CN1802638A (zh) | 路由提示 | |
US8601139B2 (en) | Multiple core session initiation protocol (SIP) | |
CN101030946A (zh) | 一种实现数据业务的方法及*** | |
CN101035131A (zh) | 协议识别方法及装置 | |
CN1921438A (zh) | 一种应用代理实现网间应用加速的方法 | |
CN1856163A (zh) | 一种具有会话边界控制器的通信***及其传输信令的方法 | |
CN1926840A (zh) | 在至少两台计算设备间建立连接时的地址和端口号提取 | |
CN1863121A (zh) | 二层隧道协议网络服务器及其隧道建立方法 | |
CN1741469A (zh) | 用于收集并分配参与者标识数据的***和方法 | |
US20070226745A1 (en) | Method and system for processing a service request | |
CN1917512A (zh) | 一种建立对等直连通道的方法 | |
CN101039250A (zh) | 一种图片共享***和方法 | |
CN101047580A (zh) | 创建点对点数据通道的方法 | |
CN1863202A (zh) | 提高负载均衡设备和服务器处理性能的方法 | |
CN1223159C (zh) | 一种支持地址转换应用网关的方法 | |
CN1588927A (zh) | 一种大规模多媒体接入网关的方法 | |
CN1917521A (zh) | 一种实现负载均衡的方法和***及负载均衡设备 | |
CN1741504A (zh) | 基于应用的流量控制方法及进行应用流量控制的网络设备 | |
CN1595890A (zh) | 与预订通知服务的虚拟连接 | |
CN1913456A (zh) | 一种基于sip协议过程特征识别voip流量的方法 | |
MXPA06001530A (es) | Sugerencias de enrutamiento. |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
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 | ||
CX01 | Expiry of patent term |
Granted publication date: 20040721 |
|
CX01 | Expiry of patent term | ||
DD01 | Delivery of document by public notice |
Addressee: Li Xin Document name: Notice of expiration and termination of patent right |
|
DD01 | Delivery of document by public notice |