[go: up one dir, main page]

CN1314250C - A robust point to point based stream scheduling method - Google Patents

A robust point to point based stream scheduling method Download PDF

Info

Publication number
CN1314250C
CN1314250C CNB2004100867111A CN200410086711A CN1314250C CN 1314250 C CN1314250 C CN 1314250C CN B2004100867111 A CNB2004100867111 A CN B2004100867111A CN 200410086711 A CN200410086711 A CN 200410086711A CN 1314250 C CN1314250 C CN 1314250C
Authority
CN
China
Prior art keywords
client node
client
multicast
network
node
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
Application number
CNB2004100867111A
Other languages
Chinese (zh)
Other versions
CN1604569A (en
Inventor
赵黎
张萌
吴南山
杨士强
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tsinghua University
Original Assignee
Tsinghua University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tsinghua University filed Critical Tsinghua University
Priority to CNB2004100867111A priority Critical patent/CN1314250C/en
Publication of CN1604569A publication Critical patent/CN1604569A/en
Application granted granted Critical
Publication of CN1314250C publication Critical patent/CN1314250C/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明属于信息传播技术领域,涉及一种鲁棒的基于点对点的流调度方法。该方法将调度服务器、流媒体服务器和客户端节点组成一个直播网络,根据每个客户端节点在网络中所实现功能的不同给予不同的定义,在网络中每个客户端节点被赋于不同的功能。新客户端节点的请求加入以及客户端节点的退出造成网络拓扑结构的改变,通过对网络拓扑表的动态更新和监控,以及改变部分客户端节点的功能实现流调度。该方法综合了P2P技术、IP多播技术和网络代理技术的优点,力图最大程度上节省网络带宽。在该方法中采用多数据源技术以增强组播网络的鲁棒性。同时,多数据源的低相关性,为重传等差错恢复提供了有利条件。

The invention belongs to the technical field of information dissemination, and relates to a robust point-to-point flow scheduling method. In this method, a scheduling server, a streaming media server, and client nodes form a live network, and different definitions are given according to the functions of each client node in the network. In the network, each client node is assigned a different Function. The request of new client nodes to join and the exit of client nodes cause changes in the network topology. Flow scheduling is realized by dynamically updating and monitoring the network topology table and changing the functions of some client nodes. This method combines the advantages of P2P technology, IP multicast technology and network proxy technology, and tries to save network bandwidth to the greatest extent. In this method, multi-data source technology is used to enhance the robustness of multicast network. At the same time, the low correlation of multiple data sources provides favorable conditions for error recovery such as retransmission.

Description

一种鲁棒的基于点对点的流调度方法A Robust Peer-to-Peer Stream Scheduling Method

技术领域technical field

本发明属于信息传播技术领域,尤其涉及一种基于直播网络环境下的高鲁棒性的P2P流调度方法。The invention belongs to the technical field of information dissemination, and in particular relates to a highly robust P2P flow scheduling method based on a live broadcast network environment.

背景技术Background technique

随着Internet的发展,特别是宽带业务的迅速普及,人们已经不再满足于仅有文本、图像等简单信息。而对内容更丰富的视频,音频等媒体服务有了越来越多的需求。网络中的多媒体内容,尤其是连续媒体内容(视频和音频),即流媒体内容正在迅速地增加。流媒体是多媒体和网络通信的交叉学科。在流媒体应用中,内容提供方将压缩后的视频数据分拆打包后以“流”的方式通过网络同时传输给接收方,接收方一边接收数据,一边将已经收到的数据包重组、解码、播放。这种传输模式与网络中其他的传输模式具有本质区别。With the development of the Internet, especially the rapid popularization of broadband services, people are no longer satisfied with simple information such as text and images. And there are more and more demands for media services such as video and audio with richer content. Multimedia content in the network, especially continuous media content (video and audio), that is, streaming media content is increasing rapidly. Streaming media is an interdisciplinary subject of multimedia and network communication. In streaming media applications, the content provider splits and packages the compressed video data and transmits it to the receiver through the network in a "stream" manner. The receiver reassembles and decodes the received data packets while receiving the data. , play. This transmission mode is fundamentally different from other transmission modes in the network.

视频组播这个新型网络业务需要实现网络上一点对多点的通信。而当前,Internet上的各种服务都普遍采用客户/服务器结构,或者叫做IP单播。这种服务模型结构简单,易于实现,它在计算机网络普及过程中发挥了巨大的作用。但是,随着网络服务的规模日趋庞大,这种结构弊端也越来越明显:为了能够向更多的客户服务,它需要越来越强大的服务器,并对在服务器端的网络出口带宽要求越来越高。特别是在视频服务领域,由于视频流的码率往往都很高,一般至少在几百千比特每秒(kbits/s),所以对服务器压力非常大,几乎不能满足日益扩大的用户需求。尤其在视频组播里面,服务器事实上在给大量的客户端发送相同的视频数据,这不但给服务器带来额外负担,而且对带宽资源是一个极大的浪费。也就是说服务器的计算性能和网络带宽成了最主要的瓶颈。Video multicast, a new type of network service, needs to realize point-to-multipoint communication on the network. At present, various services on the Internet generally adopt a client/server structure, or IP unicast. This service model has a simple structure and is easy to implement, and it has played a huge role in the popularization of computer networks. However, as the scale of network services becomes larger and larger, the disadvantages of this structure become more and more obvious: in order to serve more customers, it requires more and more powerful servers, and requires more and more bandwidth at the server-side network egress. higher. Especially in the field of video services, since the bit rate of video streams is often very high, generally at least hundreds of kilobits per second (kbits/s), the pressure on the server is very heavy, and it can hardly meet the increasing user needs. Especially in video multicast, the server is actually sending the same video data to a large number of clients, which not only brings extra burden to the server, but also is a great waste of bandwidth resources. That is to say, the computing performance and network bandwidth of the server have become the main bottlenecks.

鉴于IP组播所存在的诸多问题,在应用层实现组播功能的想法随之被提出。这就是所谓的应用层组播,其基本思想就是将组播的功能放到应用层来完成。但是应用层组播大多采用在网络各个部分架设可靠的服务器来完成组播任务,而维护这些服务器需要大量的成本。In view of the many problems existing in IP multicast, the idea of realizing multicast function at the application layer was put forward. This is the so-called application layer multicast, and its basic idea is to implement the multicast function at the application layer. However, most of the application layer multicast uses reliable servers installed in various parts of the network to complete the multicast task, and maintaining these servers requires a lot of cost.

发明内容Contents of the invention

本发明的目的是为克服已有技术的不足之处,提出一种鲁棒的基于点对点的流调度方法,该方法综合了P2P技术、IP多播技术和网络代理技术的优点,力图最大程度上节省了网络带宽。在该方法中采用多数据源技术以增强组播网络的鲁棒性。多数据源的低相关性,为重传等差错恢复提供了有利条件。The purpose of the present invention is to propose a kind of robust point-to-point stream dispatching method for overcoming the deficiencies in the prior art, this method has synthesized the advantages of P2P technology, IP multicast technology and network agent technology, strives to maximize Saves network bandwidth. In this method, multi-data source technology is used to enhance the robustness of multicast network. The low correlation of multiple data sources provides favorable conditions for error recovery such as retransmission.

本发明提出的一种鲁棒的基于P2P的流调度方法,包括组网方法和调度方法,其中所述的组网方法包括以下步骤:A robust P2P-based flow scheduling method proposed by the present invention includes a networking method and a scheduling method, wherein the networking method includes the following steps:

(1)在直播网络中,调度服务器(Trace Server)为客户端节点(Peer)找到其他的客户端节点,并通知流媒体服务器(Streaming Server)向客户端节点提供媒体流;(1) In the live broadcast network, the scheduling server (Trace Server) finds other client nodes for the client node (Peer), and notifies the streaming server (Streaming Server) to provide media streams to the client node;

(2)流媒体服务器向客户端节点提供稳定的媒体流;(2) The streaming media server provides a stable media stream to the client node;

(3)客户端节点接收来自流媒体服务器或提供媒体流的客户端节点的媒体流,并缓存媒体流,在该客户端节点播放媒体流数据的同时,通过P2P(Peer-to-Peer)方式向其他客户端节点提供媒体流;(3) The client node receives the media stream from the streaming media server or the client node that provides the media stream, and buffers the media stream. While the client node is playing the media stream data, the peer-to-peer (P2P) method is used to Provide media streams to other client nodes;

(4)步骤(3)中的客户端节点,若在P2P传输过程中,向其他客户端节点提供媒体流,则该客户端节点称为提供媒体流的客户端节点(supplying peer),否则该客户端节点称为底层客户端节点(leaf peer);(4) If the client node in step (3) provides media streams to other client nodes during the P2P transmission process, the client node is called a supplying peer of media streams, otherwise the The client node is called the underlying client node (leaf peer);

(5)步骤(3)中的客户端节点,若在P2P传输过程中,接收来自流媒体服务器或接收提供媒体流的客户端节点的媒体流,则该客户端节点称为接收媒体流的客户端节点(receiving peer);(5) If the client node in step (3) receives the media stream from the streaming media server or the client node that provides the media stream during the P2P transmission process, the client node is called the client receiving the media stream end node (receiving peer);

(6)步骤(3)中的客户端节点,若位于某一个子网内部,并且向其他客户端节点提供媒体流,则该客户端节点称为多播客户端节点(multicasting peer);(6) If the client node in step (3) is located in a certain subnet and provides media streams to other client nodes, then the client node is called a multicast client node (multicasting peer);

(7)步骤(3)中的客户端节点,若位于某一个子网内部,且只接收来自同一子网内其他多播客户端节点的媒体流,同时不向子网外其他客户端提供媒体流,则该客户端节点称为多播接收客户端节点(multicasting receiver);(7) If the client node in step (3) is located inside a certain subnet, it only receives media streams from other multicast client nodes in the same subnet, and does not provide media to other clients outside the subnet. flow, the client node is called a multicast receiving client node (multicasting receiver);

(8)步骤(3)中的客户端节点,可同时是提供媒体流的客户端节点、接收媒体流的客户端节点和多播客户端节点,但只要它是提供媒体流的客户端节点、接收媒体流的客户端节点和多播客户端节点三者之一,它就不能是多播接收客户端节点;(8) The client node in the step (3) can be the client node providing the media flow, the client node receiving the media flow and the multicast client node simultaneously, but as long as it is the client node providing the media flow, One of the client node receiving media stream and the multicast client node, it cannot be the multicast receiving client node;

(9)步骤(3)中的客户端节点,如果正在请求加入直播网络,则该客户端节点称为请求加入的客户端节点(requesting peer);(9) The client node in the step (3), if requesting to join the live network, then the client node is called the requesting client node (requesting peer);

(10)步骤(3)中的客户端节点,如果正在请求或已强行退出直播网络,则该客户端节点称为退出的客户端节点(quitting peer);(10) The client node in step (3), if it is requesting or has forcibly withdrawn from the live broadcast network, then the client node is called a quitting client node (quitting peer);

(11)步骤(3)中的客户端节点,如果直接从流媒体服务器获得媒体流,则该客户端节点称为种子客户端节点(seed peer);(11) the client node in the step (3), if directly obtain media stream from streaming media server, then this client node is called seed client node (seed peer);

(12)流媒体服务器位于该网络的第0层(layer);种子客户端节点位于该网络的第1层;若某个客户端节点由若干个提供媒体流的客户端节点提供媒体流,则它位于网络的层次是所有提供媒体流的客户端节点中最大的层次加一;如果某个客户端节点是由某个多播客户端节点提供媒体流,则它的层次是多播客户端节点的层次加一;网络中层次序号是用来估计媒体流在网络中产生的延迟;(12) The streaming media server is located at the 0th layer (layer) of the network; the seed client node is located at the 1st layer of the network; if a certain client node is provided with media streams by several client nodes providing media streams, then Its level in the network is the largest level plus one among all client nodes that provide media streams; if a certain client node is provided by a multicast client node, its level is the multicast client node The level plus one; the level sequence number in the network is used to estimate the delay of the media stream in the network;

所述调度方法,包括如下步骤;The scheduling method includes the following steps;

(13)当有新的客户端节点申请加入直播网络时,必须先与所述调度服务器连接,通过调度服务器分配提供媒体流的客户端节点或多播客户端节点为其提供媒体流(该调度服务器不可以将任一个多播接收客户端节点提供给请求加入的客户端节点,以免造成该子网的输出流量异常大);(13) When a new client node applies to join the live broadcast network, it must be connected with the scheduling server first, and the client node or multicast client node that provides the media stream is allocated by the scheduling server to provide the media stream for it (the scheduling The server cannot provide any multicast receiving client node to the client node requesting to join, so as not to cause abnormally large output traffic of the subnet);

(14)当有某个客户端节点退出直播网络时,调度服务器要根据当前网络拓扑情况,选择一个多播接收客户端节点或底层客户端节点替代退出的客户端节点(调度服务器若选择底层客户端节点,则一般选择层数最大的,也可以兼顾距离、延迟等信息进行选择);(14) When a certain client node exits the live broadcast network, the scheduling server should select a multicast receiving client node or bottom client node to replace the exiting client node according to the current network topology (if the scheduling server chooses the bottom client node For end nodes, the one with the largest number of layers is generally selected, and the selection can also be made taking into account information such as distance and delay);

(15)调度服务器保存一份详细记录该网络的拓扑结构网络拓扑表,当有客户端节点加入或退出该网络时(即网络拓扑结构发生变化),该网络拓扑表也动态实时更新;(15) The scheduling server keeps a detailed record of the topology network topology table of the network. When a client node joins or exits the network (that is, the network topology changes), the network topology table is also dynamically updated in real time;

(16)在调度服务器的调度过程中,每个客户端节点的提供媒体流的客户端节点的层次数都比该客户端节点的层次数小(从而保证调度服务器在流调度过程中不产生环状网络结构,确保每个客户端节点都可以直接或间接地从流媒体服务器获取最新的媒体流数据);(16) In the scheduling process of the scheduling server, the level number of the client node providing the media stream of each client node is smaller than the level number of the client node (thus ensuring that the scheduling server does not generate loops during the flow scheduling process). Shaped network structure, to ensure that each client node can directly or indirectly obtain the latest media stream data from the streaming media server);

(19)在调度服务器的调度过程中,将每个不能对外提供媒体流的客户端节点分配到直播网络的最底端,使其成为底层客户端节点;(19) During the scheduling process of the scheduling server, assign each client node that cannot provide media streams to the bottom end of the live broadcast network, making it a bottom client node;

(20)直播环境下存在多个频道的处理,可以同时运行多个调度服务器,也可以在同一调度服务器上开启不同端口予以支持,每一个调度服务器或每一个端口均在逻辑上维护各自的网络。(20) There are multiple channel processing in the live broadcast environment, multiple scheduling servers can be run at the same time, and different ports can be opened on the same scheduling server to support it. Each scheduling server or each port maintains its own network logically .

在上述第(13)步骤中当有新的客户端节点申请加入直播网络时,调度服务器的调度方法,具体包括以下步骤:In the above step (13), when a new client node applies to join the live broadcast network, the scheduling method of the scheduling server specifically includes the following steps:

(13.1)若请求加入的客户端节点所在子网内没有或只有一个其他的客户端节点时(可认为请求加入的客户端节点不在该子网内),则调度服务器向请求加入的客户端节点分配该子网以外的若干个(数量可以比较多)客户端节点或流媒体服务器给请求加入的客户端节点作为提供媒体流的候选客户端节点(Supplying Candidates),请求加入的客户端节点通过比较(如比较与它们之间的延迟、比较它们的历史信息等等),选择若干个客户端节点作为提供媒体流的客户端节点,此时请求加入的客户端节点工作在P2P模式(Peer-to-Peer Mode);(13.1) If there is no or only one other client node in the subnet where the client node requesting to join is located (it can be considered that the client node requesting to join is not in the subnet), then the scheduling server sends the client node requesting to join Allocate several (the number can be relatively large) client nodes or streaming media servers outside the subnet to the client nodes that request to join as the candidate client nodes (Supplying Candidates) that provide media streams, and the client nodes that request to join are compared (such as comparing the delay between them, comparing their historical information, etc.), select several client nodes as the client nodes that provide media streams, and the client nodes that request to join work in P2P mode (Peer-to -Peer Mode);

(13.2)如果请求加入的客户端节点所在子网内有2个或2个以上的客户端节点,则可以采用P2P模式(方法如步骤(13.1)所述),也可以采用组播模式(MulticastingMode)加入到整个直播网络中;(13.2) If there are 2 or more client nodes in the subnet where the client node requesting to join, then the P2P mode (method as described in step (13.1)) can be used, or the multicast mode (MulticastingMode ) into the entire live broadcast network;

(13.3)在步骤(13.2)中,若请求加入的客户端节点采用组播的方式加入直播网络,则根据原先该子网内是否存在其他多播接收客户端节点,确定新客户端节点加入的调度方法;(13.3) In step (13.2), if the client node requesting to join joins the live network by multicast, then determine the new client node to join according to whether there are other multicast receiving client nodes in the original subnet scheduling method;

(13.4)在步骤(13.3)中,若原先该子网内存在其他多播接收客户端节点,则调度服务器将请求加入的客户端节点的地址和端口号告知该子网内的所有多播客户端节点,每个多播客户端节点将请求加入的客户端节点的信息加入到各自得组播列表中;(13.4) In step (13.3), if there are other multicast receiving client nodes in the subnet, the scheduling server will inform all multicast clients in the subnet of the address and port number of the client node requesting to join End nodes, each multicast client node adds the information of the client node requesting to join to its own multicast list;

(13.5)在步骤(13.3)中,若原先该子网内不存在其他多播接收客户端节点,则调度服务器将告知该子网内所有的工作在P2P模式下的客户端节点,使它们进入组播状态,之后回步骤(13.4)。(13.5) In step (13.3), if there are no other multicast receiving client nodes in the subnet, the scheduling server will inform all client nodes working in P2P mode in the subnet to make them enter Multicast status, then go back to step (13.4).

在上述第(14)步骤中,当有某个客户端节点退出直播网络时,调度服务器的调度方法,具体包括以下步骤:In the above step (14), when a certain client node exits the live broadcast network, the scheduling method of the scheduling server specifically includes the following steps:

(14.1)如果退出的客户端节点所在的子网内部存在多播接收客户端节点,且退出的客户端节点本身是一个多播客户端节点,则将退出的客户端节点的工作全部转移到该子网内的一个多播接收客户端节点上,该多播接收客户端节点与退出的客户端节点的所有提供媒体流的客户端节点建立连接,从而获得所有的媒体流数据,同时接受退出的客户端节点的所有接收媒体流的客户端节点的请求;(14.1) If there is a multicast receiving client node inside the subnet where the exiting client node is located, and the exiting client node itself is a multicast client node, all the work of the exiting client node will be transferred to the On a multicast receiving client node in the subnet, the multicast receiving client node establishes connections with all client nodes that provide media streams of the exiting client nodes, thereby obtaining all media stream data, and accepting exiting client nodes at the same time requests from all client nodes receiving media streams of the client node;

(14.2)如果退出的客户端节点所在的子网内部存在多播接收客户端节点,且退出的客户端节点本身是一个多播接收客户端节点,则将该退出的客户端节点从该网络的拓扑表中删除;(14.2) If there is a multicast receiving client node inside the subnet where the exiting client node is located, and the exiting client node itself is a multicast receiving client node, then the exiting client node is removed from the network delete from the topology table;

(14.3)如果退出的客户端节点所在的子网内部不存在多播接收客户端节点(可认为请求加入的客户端节点不在该子网内),则分配一个底层客户端节点来代替退出的客户端节点(分配的底层客户端节点一般是层次数较大的,这样可以使得整个组播网络的层次数保持在较小的水平上,有利于减小网络延迟,同时也应该兼顾距离、带宽等因素);(14.3) If there is no multicast receiving client node in the subnet where the exiting client node is located (it can be considered that the client node requesting to join is not in the subnet), then assign a bottom client node to replace the exiting client End nodes (the assigned underlying client nodes generally have a large number of layers, which can keep the number of layers of the entire multicast network at a small level, which is conducive to reducing network delays, and should also take into account distance, bandwidth, etc. factor);

(14.4)如果退出的客户端节点为底层客户端节点,则将该退出的客户端节点从该网络的拓扑表中删除;(14.4) If the withdrawn client node is a bottom client node, delete the withdrawn client node from the topology table of the network;

在上述第(15)步骤中,拓扑表动态实时更新的方法,具体包括以下步骤:In the above-mentioned (15th) step, the method for dynamically updating the topology table in real time specifically includes the following steps:

(15.1)每个客户端节点都必须定期向调度服务器发送存活(Alive)信号,表示自己仍然处于网络中,并且还在工作,如果某个客户端节点在给定的时间阈值(Timeout)内没有发送存活信号,则认为该客户端节点已经退出直播网络,并将其从拓扑表中删除,之后按客户端节点退出的调度方法处理;(15.1) Each client node must periodically send an Alive signal to the scheduling server, indicating that it is still in the network and still working. If the survival signal is sent, it is considered that the client node has exited the live broadcast network, and it is deleted from the topology table, and then processed according to the scheduling method of the client node exit;

(15.2)在步骤(15.1)中,每个客户端节点向调度服务器发送存活信号的时间间隔在一个给定的范围内随机变化(根据缓存大小、延迟等信息设定时间间隔变化范围);(15.2) In step (15.1), the time interval at which each client node sends the survival signal to the scheduling server changes randomly within a given range (set the time interval variation range according to cache size, delay and other information);

(15.3)当组播网络的规模大于设定的规模阈值时,采用分级监听的方法动态更新拓扑表;该分级监听方法为:种子客户端节点是唯一直接向调度服务器发送存活信号的客户端节点;除种子客户端节点以外的所有客户端节点,直接向提供媒体流的客户端节点或多播客户端节点发送存活信号;若提供媒体流的客户端节点或多播客户端节点在该时间阈值内没有收到某个客户端节点的存活信号,直接通知调度服务器;调度服务器将在该时间阈值内没有发送存活信号的客户端节点从拓扑表中删除,之后按客户端节点退出的调度方法处理。(15.3) When the scale of the multicast network is greater than the set scale threshold, the topology table is dynamically updated by a hierarchical monitoring method; the hierarchical monitoring method is: the seed client node is the only client node that directly sends a survival signal to the scheduling server ; All client nodes except the seed client node directly send survival signals to the client node or multicast client node providing media stream; if the client node or multicast client node providing media stream is within the time threshold If the survival signal of a certain client node is not received within the time threshold, the scheduling server will be notified directly; the scheduling server will delete the client node that has not sent the survival signal within the time threshold from the topology table, and then handle it according to the scheduling method that the client node exits .

本发明的特点及技术效果:Features and technical effects of the present invention:

本发明方法综合了P2P技术、IP多播技术和网络代理技术的优点,力图最大程度上节省网络带宽。在该方法中采用多数据源技术以增强组播网络的鲁棒性。多数据源的低相关性,为重传等差错恢复提供了有利条件。The method of the invention combines the advantages of P2P technology, IP multicast technology and network proxy technology, and tries to save network bandwidth to the greatest extent. In this method, multi-data source technology is used to enhance the robustness of multicast network. The low correlation of multiple data sources provides favorable conditions for error recovery such as retransmission.

附图说明Description of drawings

图1是本发明方法的组网结构实施例示意图;Fig. 1 is the schematic diagram of the networking structure embodiment of the inventive method;

图2是本实施例中在子网中的客户端节点退出直播网络时调度方法示意图;FIG. 2 is a schematic diagram of a scheduling method when a client node in a subnet exits a live broadcast network in this embodiment;

图3是本实施例中在子网外的客户端节点退出直播网络时调度方法示意图。Fig. 3 is a schematic diagram of a scheduling method when a client node outside the subnet exits the live broadcast network in this embodiment.

具体实施方式Detailed ways

本发明提出的一种鲁棒的基于点对点的流调度方法结合附图及实施例详细说明如下:A robust point-to-point flow scheduling method proposed by the present invention is described in detail in conjunction with the accompanying drawings and embodiments as follows:

本发明方法的组网结构实施例如图1所示,图中1至5均是客户端节点,其中1同时是种子客户端节点、提供媒体流的客户端节点和接收媒体流的客户端节点;2同时是种子客户端节点、多播客户端节点、提供媒体流的客户端节点和接收媒体流的客户端节点;3是多播接收客户端节点;4同时是提供媒体流的客户端节点和接收媒体流的客户端节点;5同时是接收媒体流的客户端节点和底层客户端节点;6是媒体流数据的提供路线;7是调度服务器对媒体流的调度。The embodiment of the networking structure of the method of the present invention is shown in Figure 1, in which 1 to 5 are all client nodes, wherein 1 is simultaneously a seed client node, a client node providing media streams and a client node receiving media streams; 2 is simultaneously a seed client node, a multicast client node, a client node that provides media streams, and a client node that receives media streams; 3 is a multicast receiving client node; 4 is simultaneously a client node that provides media streams and The client node receiving the media stream; 5 is the client node receiving the media stream and the underlying client node at the same time; 6 is the route for providing the media stream data; 7 is the dispatching server's scheduling of the media stream.

本实施例的组网方法包括以下步骤:The networking method of this embodiment includes the following steps:

(1)在本实施例网络中,调度服务器为客户端节点(如图1中的客户端节点1-5)找到其他的客户端节点,并通知流媒体服务器向客户端节点提供媒体流;(1) In the network of this embodiment, the scheduling server finds other client nodes for client nodes (such as client nodes 1-5 in Figure 1), and notifies the streaming media server to provide media streams to the client nodes;

(2)流媒体服务器向客户端节点提供稳定的媒体流;(2) The streaming media server provides a stable media stream to the client node;

(3)客户端节点(如图1中的客户端节点1-5)接收来自流媒体服务器或提供媒体流的客户端节点的媒体流,并缓存媒体流,在该客户端节点播放媒体流数据的同时,通过P2P方式向其他客户端节点提供媒体流;(3) client node (as client node 1-5 in Fig. 1) receives the media flow from streaming media server or the client node that provides media flow, and buffers media flow, plays media flow data at this client node At the same time, provide media streams to other client nodes through P2P;

(4)步骤(3)中的客户端节点,若在P2P传输过程中,向其他客户端节点提供媒体流,则该客户端节点称为提供媒体流的客户端节点(如图1中的客户端节点1,2,4),否则该客户端节点称为底层客户端节点(如图1中的客户端节点5);(4) If the client node in step (3) provides media streams to other client nodes during the P2P transmission process, the client node is called the client node that provides media streams (as shown in Figure 1). end nodes 1, 2, 4), otherwise the client node is called the bottom client node (as shown in client node 5 in Figure 1);

(5)步骤(3)中的客户端节点,若在P2P传输过程中,接收来自流媒体服务器或接收提供媒体流的客户端节点的媒体流,则该客户端节点称为接收媒体流的客户端节点(如图1中的客户端节点1,2,4,5);(5) If the client node in step (3) receives the media stream from the streaming media server or the client node that provides the media stream during the P2P transmission process, the client node is called the client receiving the media stream End nodes (such as client nodes 1, 2, 4, 5 in Figure 1);

(6)步骤(3)中的客户端节点,若位于某一个子网内部,并且向其他客户端节点提供媒体流,则该客户端节点称为多播客户端节点(如图1中的客户端节点2);(6) If the client node in step (3) is located inside a certain subnet and provides media streams to other client nodes, then the client node is called a multicast client node (as shown in Figure 1 client node end node2);

(7)步骤(3)中的客户端节点,若位于某一个子网内部,且只接收来自同一子网内其他多播客户端节点的媒体流,同时不向子网外其他客户端提供媒体流,则该客户端节点称为多播接收客户端节点(如图1中的客户端节点3)。(7) If the client node in step (3) is located inside a certain subnet, it only receives media streams from other multicast client nodes in the same subnet, and does not provide media to other clients outside the subnet. stream, the client node is called a multicast receiving client node (as shown in client node 3 in Figure 1).

(8)步骤(3)中的客户端节点,可同时是提供媒体流的客户端节点、接收媒体流的客户端节点和多播客户端节点,但只要它是提供媒体流的客户端节点、接收媒体流的客户端节点和多播客户端节点三者之一,它就不能是多播接收客户端节点;(8) The client node in the step (3) can be the client node providing the media flow, the client node receiving the media flow and the multicast client node simultaneously, but as long as it is the client node providing the media flow, One of the client node receiving media stream and the multicast client node, it cannot be the multicast receiving client node;

(9)步骤(3)中的客户端节点,如果正在请求加入直播网络,则该客户端节点称为请求加入的客户端节点(可以是如图1中的客户端节点5);(9) The client node in step (3), if requesting to join the live broadcast network, then this client node is called the client node that requests to join (can be the client node 5 among Fig. 1);

(10)步骤(3)中的客户端节点,如果正在请求或已强行退出直播网络,则该客户端节点称为退出的客户端节点(可以是如图1中的客户端节点1-5);(10) The client node in step (3), if it is requesting or has forcibly withdrawn from the live broadcast network, then the client node is called the withdrawn client node (it can be the client node 1-5 in Figure 1) ;

(11)步骤(3)中的客户端节点,如果直接从流媒体服务器获得媒体流,则该客户端节点称为种子客户端节点(如图1中的客户端节点1、2);(11) client node in step (3), if directly obtain media flow from streaming media server, then this client node is called seed client node (as client node 1,2 among Fig. 1);

(12)流媒体服务器位于该网络的第0层;种子客户端节点(如图1中的客户端节点1、2)位于该网络的第1层;若某个客户端节点由若干个提供媒体流的客户端节点提供媒体流,则它位于网络的层次是所有提供媒体流的客户端节点中最大的层次加一(如图1中的客户端节点3、4是第2层,客户端节点5是第3层);如果某个客户端节点是由某个多播客户端节点提供媒体流,则它的层次是多播客户端节点(如图1中的客户端节点2)的层次加一。网络中层次序号是用来估计媒体流在网络中产生的延迟;(12) The streaming media server is located at the 0th layer of the network; the seed client nodes (such as client nodes 1 and 2 in Figure 1) are located at the 1st layer of the network; if a certain client node is provided by several If the client node of the stream provides the media stream, its layer in the network is the largest layer plus one among all the client nodes providing the media stream (as shown in Figure 1, the client nodes 3 and 4 are the second layer, and the client node 5 is the 3rd layer); If a certain client node is to provide media flow by a certain multicast client node, then its level is the level of multicast client node (like client node 2 in Fig. 1) plus one. The layer sequence number in the network is used to estimate the delay of the media stream in the network;

本实施例的调度方法结合图1、2、3所示,说明如下:The scheduling method of the present embodiment is described as follows in conjunction with FIGS. 1, 2, and 3:

(13)当有新的客户端节点(可以是图1中的客户端节点3,5)申请加入直播网络时,必须先与所述调度服务器连接,通过调度服务器分配提供媒体流的客户端节点或多播客户端节点为其提供媒体流(该调度服务器不可以将任一个多播接收客户端节点提供给请求加入的客户端节点,以免造成该子网的输出流量异常大);(13) When a new client node (can be client node 3, 5 in Fig. 1) applies to join the live broadcast network, it must be connected with the scheduling server first, and the client node that provides the media stream is assigned by the scheduling server Or the multicast client node provides media streams for it (the scheduling server cannot provide any multicast receiving client node to the client node requesting to join, so as not to cause the output traffic of the subnet to be abnormally large);

(14)当有某个客户端节点(可以是图1中的客户端节点1-5)退出直播网络时,调度服务器要根据当前网络拓扑情况,选择一个多播接收客户端节点或底层客户端节点替代退出的客户端节点(调度服务器若选择底层客户端节点,则一般选择层数最大的,也可以兼顾距离、延迟等信息进行选择);(14) When a certain client node (could be client node 1-5 in Fig. 1) exits the live broadcast network, the scheduling server should select a multicast receiving client node or underlying client according to the current network topology The node replaces the exiting client node (if the scheduling server chooses the underlying client node, it generally chooses the one with the largest number of layers, and can also take into account distance, delay and other information for selection);

(15)调度服务器保存一份详细记录该网络的拓扑结构网络拓扑表,当有客户端节点加入或退出该网络时(即网络拓扑结构发生变化),该网络拓扑表也动态实时更新;(15) The scheduling server keeps a detailed record of the topology network topology table of the network. When a client node joins or exits the network (that is, the network topology changes), the network topology table is also dynamically updated in real time;

(16)在调度服务器的调度过程中,每个客户端节点的提供媒体流的客户端节点的层次数都比该客户端节点的层次数小(从而保证调度服务器在流调度过程中不产生环状网络结构,确保每个客户端节点都可以直接或间接地从流媒体服务器获取最新的媒体流数据);(16) In the scheduling process of the scheduling server, the level number of the client node providing the media stream of each client node is smaller than the level number of the client node (thus ensuring that the scheduling server does not generate loops during the flow scheduling process). Shaped network structure, to ensure that each client node can directly or indirectly obtain the latest media stream data from the streaming media server);

(19)在调度服务器的调度过程中,将每个不能对外提供媒体流的客户端节点分配到直播网络的最底端,使其成为底层客户端节点;(19) During the scheduling process of the scheduling server, assign each client node that cannot provide media streams to the bottom end of the live broadcast network, making it a bottom client node;

(20)直播环境下存在多个频道的处理,可以同时运行多个调度服务器,也可以在同一调度服务器上开启不同端口予以支持,每一个调度服务器或每一个端口均在逻辑上维护各自的网络。(20) There are multiple channel processing in the live broadcast environment, multiple scheduling servers can be run at the same time, and different ports can be opened on the same scheduling server to support it. Each scheduling server or each port maintains its own network logically .

在上述第(13)步骤中当有新的客户端节点申请加入直播网络时,调度服务器的调度方法,具体包括以下步骤:In the above step (13), when a new client node applies to join the live broadcast network, the scheduling method of the scheduling server specifically includes the following steps:

(13.1)若请求加入的客户端节点(如图1中的客户端节点5)所在子网内没有或只有一个其他的客户端节点时(可认为请求加入的客户端节点不在该子网内),则调度服务器向请求加入的客户端节点分配该子网以外的若干个(数量可以比较多)客户端节点或流媒体服务器给请求加入的客户端节点作为提供媒体流的候选客户端节点,请求加入的客户端节点通过比较(如比较与它们之间的延迟、比较它们的历史信息等等),选择若干个客户端节点作为提供媒体流的客户端节点,此时请求加入的客户端节点工作在P2P模式;(13.1) If there is no or only one other client node in the subnet where the client node requesting to join (such as client node 5 in Figure 1) is located (it can be considered that the client node requesting to join is not in the subnet) , then the scheduling server assigns several (the number can be relatively large) client nodes or streaming media servers outside the subnet to the client node that requests to join as candidate client nodes that provide media streams. The joined client nodes select several client nodes as the client nodes providing media streams by comparing (such as comparing the delay between them, comparing their historical information, etc.), and request the joining client nodes to work at this time In P2P mode;

(13.2)如果请求加入的客户端节点(如图1中的客户端节点3,5)所在子网内有2个或2个以上的客户端节点,则可以采用P2P模式(方法如步骤(13.1)所述),也可以采用组播模式加入到整个直播网络中;(13.2) If there are 2 or more client nodes in the subnet where the client node (such as client nodes 3 and 5 in Figure 1) that requests to join, then the P2P mode can be used (method as in step (13.1) )), it can also be added to the entire live broadcast network in multicast mode;

(13.3)在步骤(13.2)中,若请求加入的客户端节点(如图1中的客户端节点5)采用组播的方式加入直播网络,则根据原先该子网内是否存在其他多播接收客户端节点,确定新客户端节点加入的调度方法;(13.3) In step (13.2), if the client node requesting to join (such as client node 5 in Figure 1) joins the live broadcast network by multicast, then according to whether there are other multicast receivers in the original subnet The client node determines the scheduling method for new client nodes to join;

(13.4)在步骤(13.3)中,若原先该子网内存在其他多播接收客户端节点,则调度服务器将请求加入的客户端节点的地址和端口号告知该子网内的所有多播客户端节点,每个多播客户端节点将请求加入的客户端节点的信息加入到各自得组播列表中;(13.4) In step (13.3), if there are other multicast receiving client nodes in the subnet, the scheduling server will inform all multicast clients in the subnet of the address and port number of the client node requesting to join End nodes, each multicast client node adds the information of the client node requesting to join to its own multicast list;

(13.5)在步骤(13.3)中,若原先该子网内不存在其他多播接收客户端节点,则调度服务器将告知该子网内所有的工作在P2P模式下的客户端节点,使它们进入组播状态,之后回步骤(13.4)。(13.5) In step (13.3), if there are no other multicast receiving client nodes in the subnet, the scheduling server will inform all client nodes working in P2P mode in the subnet to make them enter Multicast status, then go back to step (13.4).

在上述第(14)步骤中,当有某个客户端节点退出直播网络时,调度服务器的调度方法,具体包括以下步骤:In the above step (14), when a certain client node exits the live broadcast network, the scheduling method of the scheduling server specifically includes the following steps:

(14.1)如果退出的客户端节点(如图2中的客户端节点2)所在的子网内部存在多播接收客户端节点,且退出的客户端节点本身是一个多播客户端节点,则将退出的客户端节点的工作全部转移到该子网内的一个多播接收客户端节点上,该多播接收客户端节点与退出的客户端节点的所有提供媒体流的客户端节点建立连接,从而获得所有的媒体流数据,同时接受退出的客户端节点的所有接收媒体流的客户端节点的请求;(14.1) If there is a multicast receiving client node inside the subnet where the exiting client node (such as client node 2 in Figure 2) is located, and the exiting client node itself is a multicast client node, then the The work of the withdrawn client node is all transferred to a multicast receiving client node in the subnet, and the multicast receiving client node establishes connections with all client nodes that provide media streams of the withdrawn client node, thereby Obtain all media stream data, and simultaneously accept requests from all client nodes receiving media streams of exiting client nodes;

(14.2)如果退出的客户端节点(如图2中的客户端节点3)所在的子网内部存在多播接收客户端节点,且退出的客户端节点本身是一个多播接收客户端节点,则将该退出的客户端节点从该网络的拓扑表中删除;(14.2) If there is a multicast receiving client node inside the subnet where the exiting client node (such as client node 3 in Figure 2) is located, and the exiting client node itself is a multicast receiving client node, then delete the exiting client node from the topology table of the network;

(14.3)如果退出的客户端节点(如图3中的客户端节点4)所在的子网内部不存在多播接收客户端节点(可认为请求加入的客户端节点不在该子网内),则分配一个底层客户端节点来代替退出的客户端节点(分配的底层客户端节点一般是层次数较大的,这样可以使得整个组播网络的层次数保持在较小的水平上,有利于减小网络延迟,同时也应该兼顾距离、带宽等因素)。(14.3) If there is no multicast receiving client node inside the subnet where the exiting client node (such as client node 4 in Figure 3) is located (it can be considered that the client node requesting to join is not in the subnet), then Assign a bottom client node to replace the withdrawn client node (the distribution of bottom client nodes generally has a large number of layers, which can keep the number of layers of the entire multicast network at a small level, which is conducive to reducing Network delay, and factors such as distance and bandwidth should also be taken into account).

(14.4)如果退出的客户端节点为底层客户端节点(如图3中的客户端节点5),则将该退出的客户端节点从该网络的拓扑表中删除;(14.4) If the withdrawn client node is the underlying client node (such as client node 5 in Figure 3), the withdrawn client node is deleted from the topology table of the network;

在上述第(15)步骤中,拓扑表动态实时更新的方法,具体包括以下步骤:In the above-mentioned (15th) step, the method for dynamically updating the topology table in real time specifically includes the following steps:

(15.1)每个客户端节点都必须定期向调度服务器发送存活信号,表示自己仍然处于网络中,并且还在工作,如果某个客户端节点在给定的时间阈值(例如120秒)内没有发送存活信号,则认为该客户端节点已经退出直播网络,并将其从拓扑表中删除,之后按客户端节点退出的调度方法处理;(15.1) Each client node must periodically send a liveness signal to the scheduling server, indicating that it is still in the network and still working. If a client node does not send within a given time threshold (for example, 120 seconds) Survival signal, it is considered that the client node has withdrawn from the live broadcast network, and it is deleted from the topology table, and then processed according to the scheduling method of client node exit;

(15.2)在步骤(15.1)中,每个客户端节点向调度服务器发送存活信号的时间间隔在一个给定的范围内随机变化,以防止拥塞,要求该范围在服务器设置的超时阈值之内(例如,80~110秒,根据缓存大小、延迟等信息设定时间间隔变化范围);(15.2) In step (15.1), the time interval for each client node to send the survival signal to the scheduling server is randomly changed within a given range to prevent congestion, and the range is required to be within the timeout threshold set by the server ( For example, 80 to 110 seconds, set the time interval change range according to the cache size, delay and other information);

(15.3)当组播网络的规模大于设定的规模阈值(目前都是采用分级监听策略)时,采用分级监听的方法动态更新拓扑表,一般分级监听所设定的超时阈值在较服务器的超时阈值小(如20秒);该分级监听的具体方法为:种子客户端节点(如图1中的客户端节点1,2)是唯一直接向调度服务器发送存活信号的客户端节点;除种子客户端节点以外的所有客户端节点(如图1中的客户端节点3-5),直接向提供媒体流的客户端节点或多播客户端节点发送存活信号(如图1中的客户端节点3向客户端节点2发送存活信号,客户端节点4向客户端节点2或3发送存活信号,客户端节点5向客户端节点4发送存活信号);若提供媒体流的客户端节点或多播客户端节点在该时间阈值内没有收到某个客户端节点的存活信号,直接通知调度服务器;调度服务器将在该时间阈值内没有发送存活信号的客户端节点从拓扑表中删除,之后按客户端节点退出的调度方法处理。(15.3) When the scale of the multicast network is greater than the set scale threshold (currently, the hierarchical monitoring strategy is used), the topology table is dynamically updated by the hierarchical monitoring method. Generally, the timeout threshold set by the hierarchical monitoring is lower than the timeout threshold of the server Threshold is little (as 20 seconds); The concrete method of this graded monitoring is: seed client node (client node 1, 2 among Fig. 1) is the only client node that directly sends survival signal to scheduling server; Except seed client All client nodes (such as client node 3-5 among Fig. 1) except end node, directly send survival signal to the client node or the multicast client node that provides media flow (as client node 3 among Fig. 1 Send a survival signal to client node 2, client node 4 sends a survival signal to client node 2 or 3, and client node 5 sends a survival signal to client node 4); if the client node or multicast client providing media stream If the end node does not receive the survival signal of a client node within the time threshold, it will directly notify the scheduling server; the scheduling server will delete the client node that has not sent the survival signal within the time threshold from the topology table, and then press the client node Dispatch method handling for node exits.

Claims (4)

1、一种鲁棒的基于点对点的流调度方法,包括组网方法和调度方法,其特征在于,所述的组网方法包括以下步骤:1. A robust point-to-point flow scheduling method, comprising a networking method and a scheduling method, characterized in that the networking method includes the following steps: (1)在直播网络中,调度服务器为客户端节点找到其他的客户端节点,并通知流媒体服务器向客户端节点提供媒体流;(1) In the live broadcast network, the scheduling server finds other client nodes for the client node, and notifies the streaming media server to provide the media stream to the client node; (2)流媒体服务器向客户端节点提供稳定的媒体流;(2) The streaming media server provides a stable media stream to the client node; (3)客户端节点接收来自流媒体服务器或提供媒体流的客户端节点的媒体流,并缓存媒体流,在该客户端节点播放媒体流的同时,通过点对点方式向其他客户端节点提供媒体流;(3) The client node receives the media stream from the streaming media server or the client node that provides the media stream, and buffers the media stream, and provides the media stream to other client nodes in a point-to-point manner while the client node is playing the media stream ; (4)在步骤(3)中的客户端节点中,若在点对点传输过程中,向其他客户端节点提供媒体流,则该客户端节点称为提供媒体流的客户端节点,否则该客户端节点称为底层客户端节点;(4) Among the client nodes in step (3), if they provide media streams to other client nodes during point-to-point transmission, the client nodes are called client nodes that provide media streams; otherwise, the client nodes The node is called the underlying client node; (5)在步骤(3)中的客户端节点中,若在点对点传输过程中,接收来自流媒体服务器或接收提供媒体流的客户端节点的媒体流,则该客户端节点称为接收媒体流的客户端节点;(5) In the client node in step (3), if it receives the media stream from the streaming media server or the client node that provides the media stream during the point-to-point transmission process, the client node is called receiving the media stream client node; (6)在步骤(3)中的客户端节点中,若位于某一个子网内部,并且向其他客户端节点提供媒体流,则该客户端节点称为多播客户端节点;(6) Among the client nodes in step (3), if they are located in a certain subnet and provide media streams to other client nodes, then the client node is called a multicast client node; (7)在步骤(3)中的客户端节点中,若位于某一个子网内部,且只接收来自同一子网内其他多播客户端节点的媒体流,同时不向子网外其他客户端提供媒体流,则该客户端节点称为多播接收客户端节点;(7) Among the client nodes in step (3), if they are located inside a certain subnet, and only receive media streams from other multicast client nodes in the same subnet, they do not broadcast to other clients outside the subnet. If the media stream is provided, the client node is called a multicast receiving client node; (8)在步骤(3)中的客户端节点中,可同时是提供媒体流的客户端节点、接收媒体流的客户端节点和多播客户端节点,但只要它是提供媒体流的客户端节点、接收媒体流的客户端节点和多播客户端节点三者之一,它就不能是多播接收客户端节点;(8) Among the client nodes in step (3), it can be the client node providing media stream, the client node receiving media stream and the multicast client node at the same time, but as long as it is the client node providing media stream node, a client node receiving media streams, and a multicast client node, it cannot be a multicast receiving client node; (9)在步骤(3)中的客户端节点中,如果正在请求加入直播网络,则该客户端节点称为请求加入的客户端节点;(9) in the client node in step (3), if requesting to join the live broadcast network, then this client node is called the client node requesting to join; (10)在步骤(3)中的客户端节点中,如果正在请求或已强行退出直播网络,则该客户端节点称为退出的客户端节点;(10) Among the client nodes in step (3), if they are requesting or have forcibly withdrawn from the live broadcast network, the client node is called the withdrawn client node; (11)步骤(3)中的客户端节点,如果直接从流媒体服务器获得媒体流,则该客户端节点称为种子客户端节点;(11) the client node in the step (3), if directly obtain media flow from streaming media server, then this client node is called seed client node; (12)流媒体服务器位于该网络的第0层;种子客户端节点位于该网络的第1层;若某个客户端节点由若干个提供媒体流的客户端节点提供媒体流,则它位于网络的层次是所有提供媒体流的客户端节点中最大的层次加一;如果某个客户端节点是由某个多播客户端节点提供媒体流,则它的层次是多播客户端节点的层次加一;网络中层次序号是用来估计媒体流在网络中产生的延迟;(12) The streaming media server is located in the 0th layer of the network; the seed client node is located in the 1st layer of the network; if a certain client node is provided with media streams by several client nodes providing media streams, it is located in the The level is the largest level of all client nodes that provide media streams plus one; if a certain client node is provided by a multicast client node, its level is the level of the multicast client node plus one 1. The hierarchical sequence number in the network is used to estimate the delay of the media stream in the network; 所述调度方法,包括如下步骤:The scheduling method comprises the steps of: (13)当有新的客户端节点申请加入直播网络时,必须先与所述调度服务器连接,通过调度服务器分配提供媒体流的客户端节点或多播客户端节点为其提供媒体流;(13) When a new client node applies to join the live broadcast network, it must be connected to the scheduling server first, and the client node or multicast client node that provides the media stream is allocated by the scheduling server to provide the media stream; (14)当有某个客户端节点退出直播网络时,调度服务器要根据当前网络拓扑情况,选择一个多播接收客户端节点或底层客户端节点替代退出的客户端节点;(14) When a certain client node withdraws from the live broadcast network, the scheduling server should select a multicast receiving client node or a bottom client node to replace the withdrawn client node according to the current network topology; (15)调度服务器保存一份详细记录该网络的拓扑结构网络拓扑表,当有客户端节点加入或退出该网络时,该网络拓扑表也动态实时更新;(15) The scheduling server keeps a detailed record of the topology network topology table of the network. When a client node joins or exits the network, the network topology table is also dynamically updated in real time; (16)在调度服务器的调度过程中,每个客户端节点的提供媒体流的客户端节点的层次数都比该客户端节点的层次数小;(16) In the scheduling process of the scheduling server, the level number of the client node providing the media stream of each client node is smaller than the level number of the client node; (19)在调度服务器的调度过程中,将每个不能对外提供媒体流的客户端节点分配到直播网络的最底端,使其成为底层客户端节点;(19) During the scheduling process of the scheduling server, assign each client node that cannot provide media streams to the bottom end of the live broadcast network, making it a bottom client node; (20)直播环境下存在多个频道的处理,可以同时运行多个调度服务器,也可以在同一调度服务器上开启不同端口予以支持,每一个调度服务器或每一个端口均在逻辑上维护各自的网络;(20) There are multiple channel processing in the live broadcast environment, multiple scheduling servers can be run at the same time, and different ports can be opened on the same scheduling server to support it. Each scheduling server or each port maintains its own network logically ; 所述第(14)步骤中,当有某个客户端节点退出直播网络时,调度服务器的调度方法,具体包括以下步骤:In the (14) step, when a certain client node withdraws from the live broadcast network, the scheduling method of the scheduling server specifically includes the following steps: (14.1)如果退出的客户端节点所在的子网内部存在多播接收客户端节点;且退出的客户端节点本身是一个多播客户端节点,则将退出的客户端节点的工作全部转移到该子网内的一个多播接收客户端节点上,该多播接收客户端节点与退出的客户端节点的所有提供媒体流的客户端节点建立连接,从而获得所有的媒体流数据,同时接受退出的客户端节点的所有接收媒体流的客户端节点的请求;(14.1) If there is a multicast receiving client node inside the subnet where the exiting client node is located; and the exiting client node itself is a multicast client node, all the work of the exiting client node will be transferred to the On a multicast receiving client node in the subnet, the multicast receiving client node establishes connections with all client nodes that provide media streams of the exiting client nodes, thereby obtaining all media stream data, and accepting exiting client nodes at the same time requests from all client nodes receiving media streams of the client node; (14.2)如果退出的客户端节点所在的子网内部存在多播接收客户端节点,且退出的客户端节点本身是一个多播接收客户端节点,则将该退出的客户端节点从该网络的拓扑表中删除;(14.2) If there is a multicast receiving client node inside the subnet where the exiting client node is located, and the exiting client node itself is a multicast receiving client node, then the exiting client node is removed from the network delete from the topology table; (14.3)如果退出的客户端节点所在的子网内部不存在多播接收客户端节点,则分配一个底层客户端节点来代替退出的客户端节点;(14.3) If there is no multicast receiving client node inside the subnet where the exiting client node is located, then assign a bottom client node to replace the exiting client node; (14.4)如果退出的客户端节点为底层客户端节点,则将该退出的客户端节点从该网络的拓扑表中删除。(14.4) If the withdrawn client node is a bottom client node, delete the withdrawn client node from the topology table of the network. 2、如权利要求1所述的方法,其特征在于,在所述第(13)步骤中当有新的客户端节点申请加入直播网络时,调度服务器的调度方法,具体包括以下步骤:2. The method according to claim 1, characterized in that, in the (13) step, when a new client node applies to join the live broadcast network, the scheduling method of the scheduling server specifically includes the following steps: (13.1)若请求加入的客户端节点所在子网内没有或只有一个其他的客户端节点时,则调度服务器向请求加入的客户端节点分配该子网以外的若干个客户端节点或流媒体服务器给请求加入的客户端节点作为提供媒体流的候选客户端节点,请求加入的客户端节点通过比较,选择若干个客户端节点作为提供媒体流的客户端节点,此时请求加入的客户端节点工作在P2P模式;(13.1) If there is no or only one other client node in the subnet where the client node requesting to join is located, the scheduling server assigns several client nodes or streaming media servers outside the subnet to the client node requesting to join The client node that requests to join is used as a candidate client node that provides media streams. The client node that requests to join selects several client nodes as client nodes that provide media streams through comparison. At this time, the client node that requests to join works In P2P mode; (13.2)如果请求加入的客户端节点所在子网内有2个或2个以上的客户端节点,则可以采用P2P模式,也可以采用组播模式加入到整个直播网络中;(13.2) If there are 2 or more client nodes in the subnet where the client node requesting to join, you can use P2P mode or multicast mode to join the entire live broadcast network; (13.3)在步骤(13.2)中,若请求加入的客户端节点采用组播的方式加入直播网络,则根据原先该子网内是否存在其他多播接收客户端节点,确定新客户端节点加入的调度方法;(13.3) In step (13.2), if the client node requesting to join joins the live network by multicast, then determine the new client node to join according to whether there are other multicast receiving client nodes in the original subnet scheduling method; (13.4)在步骤(13.3)中,若原先该子网内存在其他多播接收客户端节点,则调度服务器将请求加入的客户端节点的地址和端口号告知该子网内的所有多播客户端节点,每个多播客户端节点将请求加入的客户端节点的信息加入到各自得组播列表中;(13.4) In step (13.3), if there are other multicast receiving client nodes in the subnet, the scheduling server will inform all multicast clients in the subnet of the address and port number of the client node requesting to join End nodes, each multicast client node adds the information of the client node requesting to join to its own multicast list; (13.5)在步骤(13.3)中,若原先该子网内不存在其他多播接收客户端节点,则调度服务器将告知该子网内所有的工作在P2P模式下的客户端节点,使它们进入组播状态,之后回步骤(13.4)。(13.5) In step (13.3), if there are no other multicast receiving client nodes in the subnet, the scheduling server will inform all client nodes working in P2P mode in the subnet to make them enter Multicast status, then go back to step (13.4). 3、如权利要求1所述的方法,其特征在于,在所述第(15)步骤中,拓扑表动态实时更新的方法,具体包括以下步骤:3. The method according to claim 1, characterized in that, in the (15) step, the method for dynamically updating the topology table in real time, specifically comprises the following steps: (15.1)每个客户端节点都必须定期向调度服务器发送存活信号,表示自己仍然处于网络中,并且还在工作,如果某个客户端节点在给定的时间阈值内没有发送存活信号,则认为该客户端节点已经退出直播网络,并将其从拓扑表中删除,之后按客户端节点退出的调度方法处理;(15.1) Each client node must periodically send a survival signal to the scheduling server, indicating that it is still in the network and still working. If a client node does not send a survival signal within a given time threshold, it is considered The client node has withdrawn from the live broadcast network, and is deleted from the topology table, and then processed according to the scheduling method of client node withdrawal; (15.2)在步骤(15.1)中,每个客户端节点向调度服务器发送存活信号的时间间隔在一个给定的范围内随机变化;(15.2) In step (15.1), the time interval at which each client node sends a survival signal to the scheduling server varies randomly within a given range; (15.3)当组播网络的规模大于设定的规模阈值时,采用分级监听的方法动态更新拓扑表。(15.3) When the scale of the multicast network is greater than the set scale threshold, the topology table is dynamically updated by means of hierarchical monitoring. 4、如权利要求3所述的方法,其特征在于,该分级监听方法具体包括:种子客户端节点是唯一直接向调度服务器发送存活信号的客户端节点;除种子客户端节点以外的所有客户端节点,直接向提供媒体流的客户端节点或多播客户端节点发送存活信号;若提供媒体流的客户端节点或多播客户端节点在该时间阈值内没有收到某个客户端节点的存活信号,直接通知调度服务器;调度服务器将在该时间阈值内没有发送存活信号的客户端节点从拓扑表中删除,之后按客户端节点退出的调度方法处理。4. The method according to claim 3, wherein the hierarchical monitoring method specifically comprises: the seed client node is the only client node that directly sends a survival signal to the scheduling server; all clients except the seed client node node, directly sends a survival signal to the client node or multicast client node that provides the media stream; if the client node or multicast client node that provides the media stream does not receive the survival Signal, directly notify the scheduling server; the scheduling server will delete the client node that has not sent the survival signal within the time threshold from the topology table, and then handle it according to the scheduling method that the client node exits.
CNB2004100867111A 2004-10-29 2004-10-29 A robust point to point based stream scheduling method Expired - Fee Related CN1314250C (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB2004100867111A CN1314250C (en) 2004-10-29 2004-10-29 A robust point to point based stream scheduling method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB2004100867111A CN1314250C (en) 2004-10-29 2004-10-29 A robust point to point based stream scheduling method

Publications (2)

Publication Number Publication Date
CN1604569A CN1604569A (en) 2005-04-06
CN1314250C true CN1314250C (en) 2007-05-02

Family

ID=34667106

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2004100867111A Expired - Fee Related CN1314250C (en) 2004-10-29 2004-10-29 A robust point to point based stream scheduling method

Country Status (1)

Country Link
CN (1) CN1314250C (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009155801A1 (en) * 2008-06-27 2009-12-30 华为技术有限公司 Method, system and apparatus for providing media stream service

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102005030073A1 (en) * 2005-06-27 2006-12-28 Airbus Deutschland Gmbh Communication data transmission system for passenger aircraft, has terminals interconnected with shunt connection so that data is transmitted from one to another terminal,if all terminals are interconnected and connection is interrupted
US7742485B2 (en) * 2005-07-29 2010-06-22 Roxbeam Media Network Corporation Distributed system for delivery of information via a digital network
CN100459520C (en) * 2005-12-23 2009-02-04 华为技术有限公司 System and method for sharing memory cache among multi-stream servers
CN100452876C (en) * 2006-02-24 2009-01-14 清华大学 Parallel Transmission Scheduling Method for Streaming Media Data
CN1937553B (en) * 2006-05-11 2010-05-12 蓝汛网络科技(北京)有限公司 Reciprocal network data dispatching method based on flow media data frame
CN101068173B (en) * 2006-06-08 2010-11-03 腾讯科技(深圳)有限公司 A resource sharing method, system and server
CN1897588B (en) * 2006-06-21 2010-06-16 北京北大方正电子有限公司 A mixed-mode network file transfer method and system
CN100405773C (en) * 2006-07-14 2008-07-23 北京时越网络技术有限公司 Method for point-to-point content redistributing method based on content distributing network system
CN101282281B (en) * 2007-04-03 2011-03-30 华为技术有限公司 Medium distributing system and apparatus as well as flow medium play method
CN100461740C (en) 2007-06-05 2009-02-11 华为技术有限公司 A client node network topology construction method and streaming media distribution system
CN101102312B (en) * 2007-06-11 2010-06-02 华为技术有限公司 A network communication data processing method, network communication system and client
CN101340359B (en) * 2007-07-04 2011-09-21 中兴通讯股份有限公司 Multicast and broadcast service scheduling method
CN101340556B (en) * 2007-07-05 2013-02-20 株式会社Ntt都科摩 Real world broadcasting system and method
CN101355468B (en) * 2007-07-23 2011-03-16 中国科学院声学研究所 Method for publishing P2P stream medium information
CN101090525B (en) * 2007-08-06 2012-05-23 中兴通讯股份有限公司 Multicast broadcast service dispatching method
CN101365128A (en) 2007-08-10 2009-02-11 中兴通讯股份有限公司 Comprehensive video service peer-to-peer network system
CN101159676B (en) * 2007-11-06 2010-09-08 深圳市迅雷网络技术有限公司 Method and system for data transmission
CN101170506B (en) * 2007-12-06 2010-06-02 北京广视通达网络技术有限公司 A Response-Driven P2P Streaming Media Data Scheduling Method
CN101262369B (en) * 2008-03-28 2011-05-11 华为技术有限公司 Master/slave realization method for dispatching server and dispatching server
CN101304405B (en) * 2008-04-30 2012-02-01 中山大学 A method of P2P streaming media transmission based on SVC
CN101588468B (en) 2008-05-20 2013-08-07 华为技术有限公司 Medium playing method, medium playing device and medium playing system based on P2P
CN101986611B (en) * 2010-11-30 2012-11-28 东南大学 Quick flow grouping method based on two-level cache
CN102118310B (en) * 2011-01-19 2013-07-03 华中科技大学 Hierarchical network coding streaming media multicast-based resource scheduling method
CN102740165B (en) * 2011-04-01 2015-07-15 中国电信股份有限公司 Peer-to-peer streaming media living broadcast system and data transmission method therefor
CN104468604A (en) * 2014-12-19 2015-03-25 北京奇虎科技有限公司 Data access method and device based on peer-to-peer network communication mode in local area network
CN105812848B (en) * 2014-12-31 2019-08-16 深圳Tcl新技术有限公司 TV network data acquisition method and server
CN106210776A (en) * 2015-05-07 2016-12-07 南宁富桂精密工业有限公司 Control equipment and the method controlling video request program thereof
CN104918065A (en) * 2015-05-25 2015-09-16 南京邮电大学 RTSP-based system and method for realizing mobile audio and video live broadcast
CN105979284B (en) * 2016-05-10 2019-07-19 杨�远 Mobile terminal video sharing method
CN108089934B (en) * 2016-11-22 2021-08-03 成都华为技术有限公司 Cluster management method and cluster server
CN110071942A (en) * 2019-05-20 2019-07-30 湖南康通电子股份有限公司 Networking live streaming stream distributing method, device and the storage medium of digit broadcasting system

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001099374A2 (en) * 2000-06-22 2001-12-27 Apple Computer, Inc. Methods and apparatuses for transferring data
CN1406070A (en) * 2002-11-01 2003-03-26 清华大学 In-site program-requesting method based on real-time flow medium

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001099374A2 (en) * 2000-06-22 2001-12-27 Apple Computer, Inc. Methods and apparatuses for transferring data
CN1406070A (en) * 2002-11-01 2003-03-26 清华大学 In-site program-requesting method based on real-time flow medium

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
基于RTP/RTCP的流媒体服务器技术研究 赵进,叶梧,冯穗力,中国有线电视,第1卷 2004 *
基于RTP/RTCP的流媒体服务器技术研究 赵进,叶梧,冯穗力,中国有线电视,第1卷 2004;流媒体技术概述 邸春红,于淑玲,杜勇,沈阳医学院学报,第6卷第1期 2004 *
流媒体技术概述 邸春红,于淑玲,杜勇,沈阳医学院学报,第6卷第1期 2004 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009155801A1 (en) * 2008-06-27 2009-12-30 华为技术有限公司 Method, system and apparatus for providing media stream service
CN101616170B (en) * 2008-06-27 2012-09-19 华为技术有限公司 Method for supplying media stream service and system thereof

Also Published As

Publication number Publication date
CN1604569A (en) 2005-04-06

Similar Documents

Publication Publication Date Title
CN1314250C (en) A robust point to point based stream scheduling method
Chawathe et al. RMX: Reliable multicast for heterogeneous networks
CN1237755C (en) Subgroup multicasting in communications network
Liao et al. Anysee: Peer-to-peer live streaming
CN100414937C (en) Method for streaming data
CN1315312C (en) A method for large-scale multimedia access gateway
CN1305270C (en) Streaming media buffering proxy server system based on cluster
CN1878143A (en) Multicast network deploying method and multicast network
CN101931656B (en) ISP-friendly distributed service node selection and update method
CN101997891A (en) Method, device and system for allocating P2P media stream
CN1645787A (en) Method for realizing reliable grouped play in distributed vertical flor media system
CN104822084B (en) Based on the P2P real-time playing system fast channel switching methods concurrently flowed
Do et al. Robust video-on-demand streaming in peer-to-peer environments
CN1929638A (en) Management method for multicast members of wireless LAN IP multicast frame transmission
CN1534928A (en) Network management method for wireless transmission/reception of data stream, network system and equipment
CN1747447A (en) IP group broadcasting method for supporting different service quality in specification service network domain
CN1592250A (en) Flow medium data multi-point transmission method
CN101047696A (en) Network flow media data playing method and system
CN1751303A (en) System and method for efficient distribution of multicastable services
CN1852231A (en) Base station in wide-band wireless access-in system and method for realizing multi-cast business
CN100456684C (en) Method and network device for realizing multicast service
CN1933413A (en) Group broadcasting member management method for radio local network IP group broadcasting frame transmission
CN1917512A (en) Method for establishing direct connected peer-to-peer channel
CN1764163A (en) Intelligent transmitting method and system for multicast message
CN1484403A (en) Method for Content Distribution in Network System

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: 20070502

Termination date: 20211029