WO2009143686A1 - 内容发布方法、服务重定向方法及系统、节点设备 - Google Patents

内容发布方法、服务重定向方法及系统、节点设备 Download PDF

Info

Publication number
WO2009143686A1
WO2009143686A1 PCT/CN2008/073616 CN2008073616W WO2009143686A1 WO 2009143686 A1 WO2009143686 A1 WO 2009143686A1 CN 2008073616 W CN2008073616 W CN 2008073616W WO 2009143686 A1 WO2009143686 A1 WO 2009143686A1
Authority
WO
WIPO (PCT)
Prior art keywords
node
content
nodes
segment
segments
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.)
Ceased
Application number
PCT/CN2008/073616
Other languages
English (en)
French (fr)
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.)
ZTE Corp
Original Assignee
ZTE Corp
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 ZTE Corp filed Critical ZTE Corp
Priority to EP08874451.1A priority Critical patent/EP2290912A4/en
Publication of WO2009143686A1 publication Critical patent/WO2009143686A1/zh
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/61Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
    • H04L65/612Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for unicast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/70Media network packetisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1074Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
    • H04L67/1078Resource delivery mechanisms
    • H04L67/108Resource delivery mechanisms characterised by resources being split in blocks or fragments

Definitions

  • IPTV Internet Protocol Television
  • VoIP Video On Demand
  • TVoD TV On Demand
  • the current IPTV system is a C/S structure.
  • IPTV services There are two main modes of IPTV services implemented on broadband networks, namely, based on the C/S mode.
  • P2P overlay network scheme based on Peer to Peer (P2P) technology.
  • P2P Peer to Peer
  • C/S structure The scalability of the IPTV system is poor, and the system is difficult to expand to a large number of users (for example, 100,000 users, millions of users).
  • any kind of server ultimately There will be a phenomenon that the user's request cannot be responded to in time. The resources of the server will eventually be exhausted, and the IPTV service cannot be provided to the user, which becomes the bottleneck of the IPTV system.
  • Multicasting 4 than Batching
  • Patching 4 than Batching
  • Merging Periodic '1 ⁇ Real Broadcasting
  • Periodic '1 ⁇ Real Broadcasting etc.
  • the basic starting point of these technologies is mostly multicast, which is about the same Multiple on-demand (or live broadcast) of a file is combined into one multicast channel service.
  • the line bandwidth of ADSL is not enough to support simultaneous transmission of two streams.
  • the method of server pressure is difficult to implement in actual operation, and this resource saving strategy In response to the delay at the expense of users, outweigh the benefits in commercial operations.
  • media sharding can also be used to reduce server pressure, for example, cooperative proxy caching technology, which can shorten the waiting time of users before channel switching and program playing; segment-based caching technology, media files The segments are distributed to the user for playback in a collaborative manner, but this approach does not improve the scalability of the IPTV system.
  • P2P systems allow different computers to exchange data peer-to-peer, and each computer running P2P software is called a peer. Any system with media service location must be able to provide search for information, and P2P software can provide such media service location and search capabilities for P2P network information.
  • the search scheme adopted by the P2P network can be generally classified into an unstructured network and a structured system that are searched by flooding.
  • Unstructured P2P networks searched by flooding methods generate a large number of redundant requests and are difficult to extend to a very large number of peer nodes.
  • Structured P2P systems use a search technique based on Distributed Hash Table (DHT), which tightly couples the location of content (or data) with the network topology, which leads to Higher maintenance costs, and such networks only support identifier (ID) search and lookup, lacking flexibility based on keyword search and lookup.
  • DHT Distributed Hash Table
  • the object of the present invention is to provide a content publishing method, a service redirection method, a device, and a system, in order to improve the IPTV system, in view of the defects of poor scalability and inconvenient search and search in the IPTV system in the prior art. Scalability.
  • a content distribution method includes: dividing content to be published into a plurality of segments; for each segment, determining one or more nodes for storing segments; and publishing the segments to one or more nodes of the storage segment .
  • the operation of dividing the content to be published into multiple segments specifically includes: dividing the content to be published into a plurality of identical or different segments, each segment including a plurality of blocks that are large, adjustable, and/or configured.
  • one or more nodes for the storage segment are determined by at least one of the following node information: a bandwidth that the node can utilize, a stability of the node, a storage space available to the node, and a utilization frequency of the node.
  • the method further includes: periodically acquiring a report message sent by the node, where the report message carries the node information.
  • the node of the storage segment can be determined according to the following information:
  • EstimatedStayi(new) ⁇ ⁇ EstimatedStayi(prev) + (3 ⁇ CurrentStayi;
  • EstimatedStayi(new) indicates that the node is stable, and the currentStayi is the node i force.
  • B Wl is available for node i) Bandwidth;
  • R age is the average utilization rate of the donated bandwidth of the node i joining the system, Fres ⁇ e, is the frequency at which the node i processes the IPTV request in a predetermined period; where, a st , (3 St , ⁇ st is the weighting factor, m
  • the determining the operation of the one or more nodes for storing the segment specifically includes: obtaining the goodness check value GSt corresponding to each node; and selecting the goodness greater than or equal to the preset value
  • the check value is a node corresponding to the goodness check value exceeding the preset value as a node of the storage segment.
  • the operation of issuing the segment to one or more nodes of the storage segment is performed by: determining for the storage segment One or more nodes have a goodness check value, and the segments are separately issued to one or more nodes.
  • the service redirection method embodiment comprises: obtaining a content request message, wherein The content request message is for requesting download/pull down content; determining one or more nodes of each segment storing the content; downloading/pulling each segment of the content from one or more nodes; obtaining complete content according to each segment of the content.
  • determining the operation of storing one or more nodes of the respective segments of the content further comprising: adding the determined node identifier of the one or more nodes to the node list of the download/pull down content.
  • the method further includes: allocating the downloaded/pull-down data block to the one or more nodes, in particular, by performing at least one of the following: Downloading/drawing a segment/segment from one or more nodes, where each node is assigned the same segment or block in each cycle, or the allocated segment or block and the bandwidth of the node Proportional; download/pull down one or more blocks in each segment or segment from one or more nodes based on the bandwidth of one or more nodes of the segment.
  • the operations of downloading/pulling each segment of the content from one or more nodes are performed by at least one of the following methods: downloading/drawing each segment of the content by using the accumulated bandwidth; writing each segment of the downloaded/pull-down content to the preset A ring cache, the ring cache is pre-configured with corresponding locations of one or more blocks of each segment and/or each segment, wherein each segment contains a plurality of blocks of adjustable size and/or configuration.
  • the method further comprises: selecting a substitute node for the one or more failed nodes whose receiving rate is less than a preset value, and downloading/pulling the corresponding segment of the failed node from the substitute node and
  • a service redirection system includes one or more clusters, where each cluster includes: a central node, configured to save all content to be published, and publish content; one or more layers having a hierarchical structure
  • the subordinate node is directly connected to the central node, or is connected to the upper node of the subordinate node, and is used for storing each segment of the content published by the system, and determining a download/pull down content when receiving the request message corresponding to the download/pull down content Or multiple nodes, download/pull down segments of the content from the determined one or more nodes.
  • the central node and the subordinate node form a tree topology or a mesh topology.
  • Each of the above nodes includes: a column table for storing each column and the cluster to which it belongs.
  • the mapping relationship of the proxy node, the column is the directory information that classifies all the contents, and the proxy node is used for maintaining and managing the node containing one or more types of directory contents in the column; the storage module is configured to store the locally saved content. Segment; link module, used to store links to other nodes.
  • the system further includes: a content index table, a node for maintaining the stored content, and address information corresponding to the node; and an overlay link table, configured to store one or more in other clusters The address information of the proxy node having the same column; wherein, the column is the directory information that classifies all the contents.
  • a node device is provided.
  • the node device according to the embodiment of the present invention includes: a column table for storing a mapping relationship between each column and a proxy node of the cluster to which the column belongs.
  • the column is directory information that classifies all the content
  • the proxy node is used to classify one of the included columns or A node of a plurality of types of directory contents is maintained and managed; a storage module is used to store segments of locally saved content; and a link module is used to store links to other nodes.
  • the node device further includes: a content index table, a node for maintaining the stored content, and address information corresponding to the node; and an overlay link table, configured to store one or more proxy nodes having the same column in other clusters Address information; where the column is directory information that categorizes all content.
  • the link module includes: a parent link sub-module for storing a link to the upper-level node, and a sub-link sub-module for storing the link to the lower-level node.
  • the content distribution method, the service redirection method, the node device and the system of the embodiments of the present invention can publish content and perform media service positioning on a large scale on the Internet.
  • the one or more embodiments described above divide the content into a plurality of different segments for the IPTV system, and the segments can be stored in a plurality of nodes of the system.
  • the hot slice ie, the user clicks on more content
  • the segment (or very important segment) of the program can be stored in a plurality of different nodes.
  • a segment of a video file can be further divided into a plurality of blocks, which facilitates receiving different portions of one segment from different storage nodes in parallel, thereby accumulating upstream bandwidth from different storage nodes.
  • multiple storage nodes support one IPTV request, and can utilize some unused storage space and upstream bandwidth to the user terminal to support IPTV service requests.
  • the entire content or file is present on a server node in the prior art.
  • FIG. 1 is a schematic diagram of an IPTV system for implementing a P2P technology in a service redirection system according to an embodiment of the present invention
  • FIG. 2 is a schematic structural diagram of each node in FIG. FIG.
  • FIG. 3A is a schematic diagram of an embodiment of segmenting content in step 32 of FIG. 3;
  • FIG. 4 is a schematic diagram of clustering of a tree structure formed by a system according to an embodiment of the present invention;
  • FIG. 6 is a schematic diagram of an internal structure of a system and a node device according to an embodiment of the present invention;
  • FIG. 6 is a schematic diagram of a column superposition for realizing search and search content in an IPTV system of a P2P technology according to an embodiment of the present invention;
  • FIG. 4 is a schematic diagram of clustering of a tree structure formed by a system according to an embodiment of the present invention
  • FIG. 6 is a schematic diagram of an internal structure of a system and a node device according to an embodiment of the present invention
  • FIG. 6 is a schematic diagram of a column superposition for realizing search and search content in an IPTV system of a P2P technology according to an embodiment of
  • FIG. 7A is a schematic diagram of an allocation sequence for implementing a download/pull-down data block based on a round robin method according to a method according to an embodiment of the present invention
  • FIG. 7B is an application according to an embodiment of the present invention.
  • the method implements a schematic diagram of the allocation sequence based on the bandwidth download/pull-down data block
  • FIG. 7C is an application to implement the multi-source method download/pull-down number according to the method of the embodiment of the present invention.
  • FIG. 8 is a schematic diagram of an application for implementing data transmission to a user by using an accumulated bandwidth according to an embodiment of the present invention
  • FIG. 10 is a schematic diagram showing an expanded structure of an IPTV system applied to a P2P technology according to an embodiment of the present invention.
  • DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS As described above, since the current IPTV system is based on the C/S mode, its scalability is poor, and the maintenance cost of the unstructured P2P network searched by the flooding method is high, and based on this, the present invention Embodiments provide a content distribution scheme applied to an IPTV system, by dividing a content to be published into a plurality of segments, for each of the segments, determining one or more nodes for storing segments, and publishing the segments to the storage segment
  • One or more nodes are different from the prior art in that the entire content or file exists on a server node for a certain month, and the functions of the IPTV media service orientation and the like can be completed from multiple nodes in response to the user's request.
  • an IPTV system is provided.
  • 1 is a schematic diagram of an IPTV system in which a service redirection system implements P2P technology according to an embodiment of the present invention.
  • System 10 includes a number of nodes, such as nodes 12A-12H in Figure 1, each of which is a device with computing power and data storage capabilities.
  • nodes 12A-12H may be PCs, workstations, Set-Top-Box (STB for short), streaming media servers, other network devices, and the like.
  • Nodes 12A-12H are interconnected by a data communication network 14, and nodes 12A-12H are capable of exchanging messages over network 14. Information and content.
  • Figure 1 shows only eight nodes, but is not limited to iH, and system 10 may include more nodes.
  • FIG. 2 is a schematic structural diagram of each node in FIG. 1. As shown in FIG.
  • the node 12A is taken as an example, and the node includes a data processor 16A, a network port 16, a data storage device 16C, a column table 16D, and a playback device 16E.
  • the data processor 16A executes the column table 16D to obtain the node address information of the corresponding column, and the specific processing procedure will be described in detail later.
  • the data storage device 16C can store the segments issued by the system; the node stores the routing relationship between the node and other nodes in the link table 16D. Among them, some or all of each node in the system of Fig. 1 can have a playback device 16E.
  • IPTV content can only be used by system 10 if it is released to system 10.
  • content or media content in various embodiments of the present invention can be any type of data.
  • the media content can be one or a combination of the following:
  • Video content eg, movies, TV shows, live TV broadcasts, etc.
  • audio content eg, music, etc.
  • FIG. 3 is a flowchart of a content distribution method according to an embodiment of the present invention.
  • the embodiment includes the following processing (step S32 to step S36).
  • Step S32 dividing the content to be published into a plurality of segments;
  • Step S34 determining, for each segment, one or more nodes for storing each segment;
  • Step S36 Publishing the segment to one or more nodes storing the segment .
  • the above step S32 can refer to FIG. 3A.
  • FIG. 3A is a schematic diagram of an embodiment of segmenting the content in step 32 of FIG. As shown in FIG.
  • the content to be distributed is provided in the manner of the file 31.
  • the file 31 can be divided into a plurality of segments 31A (or fragments) by the fragment processor, wherein the sizes of the segments can be equal or not equal.
  • Each segment 31A may also include a number of blocks 31B, the size of which may be adjusted and configured.
  • one or more nodes (such as several of nodes 12A-12H in Fig. 1) are selected to store each segment 31A.
  • the system can distribute the various segments of the content to different nodes that have been selected, wherein different nodes can receive one or more segments.
  • the content distribution method of the present embodiment stores all the segments 31A of the media file 31 in the nodes of the system.
  • each segment 31A is stored in a plurality of nodes of the system.
  • the process of the embodiment of the content distribution method of FIG. 3 is described in detail below with reference to the system shown in FIG. 1.
  • the nodes 12A-12H in the system 10 can donate some out-of-band bandwidth and file storage space for the system 10 to implement the system 10.
  • the outband bandwidth and file storage space allocated by the i-th node Pi are respectively Bwi and Sti, and determining which node stores the segment 31A of the current media file may be based on many factors.
  • determining one or more nodes for storage segment 31A may be based on one or more of the following factors: bandwidth Bwi available to the node, storage space Sti available to the node, stability of the node, and the system recently utilizing the node
  • bandwidth Bwi available to the node bandwidth Bwi available to the node
  • storage space Sti available to the node stability of the node
  • the system recently utilizing the node The degree, that is, the frequency of use of the node.
  • the likelihood that a node is selected to store a segment 31A increases as the node's available bandwidth, storage space, and node's stability and characterization increase, and decreases as the node has been utilized by the system 10, ie,
  • the nodes used to store segment 31A are proportional to the bandwidth, storage space, and node stability available to each node, and inversely proportional to the utilization frequency of the nodes. Since the bandwidth Bwi available to the node and the available storage space Sti of the node can be relatively easily obtained
  • node i stability is based on the length of the period during which the nodes (as in any of nodes 12A-12H in Figure 1) remain connected to system 10, without Interrupted or offline.
  • the node is the nearest node i can only Gen utilization system according to the following two measured parameters: i since the node joins the system bandwidth donated average utilization R age, the node processes the request in the IPTV recent period frequency After obtaining the bandwidth Bwi available to each node in the system, the available storage space Sti, the stability of the node, and the utilization frequency of the node, one or more nodes of the segment storing the content (file) can be determined.
  • the possibility that node i is selected to store segment 31A of media file 31 may be based on measurement G ⁇ , hereinafter referred to as Gst value as "goodness check value".
  • Gst value hereinafter referred to as "goodness check value".
  • the formula for calculating G st is as follows:
  • a central node or a regional central node is set in the system for maintaining and managing the remaining plurality of nodes closest to the (regional) central node, and the remaining nodes other than the central node are collected and calculated for respective Gst values. and, forward these values to the statistics G st (region) central node (region) central node maintains a data structure, with each node corresponding to the value G st Linking data structure may comprise Once (region) central node is received from the content distribution in a list G st value classification nodes, such as requesting node j (region) central node may select the node Nc having the highest G st value, and The information of the confirmed node Nc is sent back to the node j where the content is to be distributed.
  • nodes 12A-12H of system 10 are organized into one or more cluster structures.
  • Each cluster contains a central node responsible for accumulating the Gst values of the corresponding nodes in the cluster to which the central node is responsible.
  • the central node of each cluster can forward the requests within the cluster to other central nodes in addition to the nodes that have the highest Gst value in its own cluster.
  • the requesting node to publish the content such as the node j waiting for a period of time (the maximum waiting time can be set), can receive the information of the determining node Nc sent by the central node, and the node j can be based on determining the order of the size of the node Gst Segment 31A is issued to the determined node.
  • each node periodically sends a "heartbeat" message (ie, a report message) to its superior node (hereinafter referred to as the parent node).
  • a "heartbeat” message ie, a report message
  • Its central mega message can include at least one of the following: EstimatedStay, Bw, R usage , Freq serve .
  • the parent node collects the information including the heartbeat message of the lower node and its own "heartbeat" message, and periodically sends the accumulated report to its own parent node.
  • the central node will have enough recent or latest information to calculate the Gst value of each node, and the central node may classify the nodes in G st descending order and/or store them in the classified candidate node list. As a result, the central node maintains a list of candidate nodes for the classification based on the most recent information of the node. In addition to maintaining the Gst value of the node, if the heartbeat message of a node is not received within a predetermined time, it can be detected whether the node has left the system for some reason. As shown in FIG. 3 and FIG.
  • each segment 31A is issued in a round-robin manner between the storage nodes.
  • the segment is issued by: allocating the starting segment to the candidate node having the highest Gst value, then releasing the second segment to the candidate node having the second highest Gst value, and so on.
  • the number of copies of the first segment or the first segment of the content to be published is greater than the number of copies of the segment following the content, that is, multiple storage node storage is selected.
  • the content to be published may be divided into a plurality of segments (such as segment 31A in FIG. 3A), and each segment is stored in one or more nodes in the system.
  • the foregoing embodiment provides a Media Segment Distributing (MSD) method, which can combine the stability of a node, the available uplink bandwidth, and the latest streaming service load/frequency to select which segments to store in which segments.
  • MSD Media Segment Distributing
  • each segment of the file can be published to a different node for storage.
  • FIGS. 1 to 3 As shown in FIGS. 1 to 3, when the user retrieves and retrieves the file 31 by the system 10 at the node 12A for playback, the data processor 16A can make Some segments 31A of the media file 31 are stored in the data storage device 16C.
  • segments of the content can be utilized and downloaded by other nodes in the system 10, especially for some hotspots (e.g., files with a higher user click rate). Segments of the content need to be saved in the system 10, taking into account the actual user viewing factors. The number of segments 31A that tend to select the beginning of the media content is more likely to be stored in the system 10 than the segment following the content. In some cases, all segments of a file content are saved in data storage device 16C for at least a period of time. The segments stored in the local storage device 16C allow for fast forwarding or playback, as long as the segments are saved at the receiving node, content (eg, video) can be played at the receiving node, there is no need to download segments, and the allowed playback can be configured for each node.
  • content eg, video
  • FIG. 4 is a schematic diagram of a cluster of four pairs of structures formed by a monthly redirection system according to an embodiment of the present invention. As shown in Figure 4, in addition to the central node, other nodes are either directly connected to the central node or connected to the central node via the intermediate node. In FIG. 4
  • the cluster contains only one central node 42, a plurality of nodes directly connected to the central node are referred to as a regional central node 43, and the lowest-level node is referred to as an edge node 44 closest to the user, wherein the regional central node 43 It is the superior node or the parent node of the edge node 44.
  • the organization structure of the cluster is logical and only related to the route. According to the route, the edge node and the central node can communicate with each other. The arrangement of the nodes in the cluster is not necessarily affected by the network structure or the geographical location of the nodes.
  • the central node 42 is configured to save all the content to be published, and publish the content.
  • the regional central node 43 is configured to maintain and manage information about itself and each edge node 44 in the area (for example, the heartbeat reported by the edge node) Message), saves the content posted to it by the central node, and saves the correspondence between each edge node 44 and the stored content (for example, a content index table, through which the node storing the content can be found through the content index table;)
  • the central node may not save the data of the segment of the content, but obtain the node storing the content by searching the corresponding relationship between the content and the edge node; the edge node 44 is used to periodically report the information of itself, and save and publish it to it.
  • the regional center node 43 may further include a lower-level regional central node 43-1 to form a house-level structure.
  • the service redirection system can impose different restrictions on the structure and size of the cluster. For example, all nodes belonging to a cluster are required to be at most N or megabytes, and ⁇ or hops are referred to as the limits of the scope or size of the cluster.
  • the number of stages from a node to a central node via a tree structure is called the range of nodes.
  • the cluster can be formed in two different ways:
  • an online node i can communicate with a node j of a cluster, requesting to join the cluster, if the scope of node j is smaller than the scope of the cluster (eg, not To reach the N level), then the requesting node i can join the cluster to which the node j belongs, as a child node of the node j.
  • node i requests to join the cluster to which node j belongs. If the range of node j is equal to the scope of the cluster (for example, reaching level N), then request node i can create a new cluster ( For example, the node becomes the central node of the newly created cluster;).
  • request node i can create a new cluster ( For example, the node becomes the central node of the newly created cluster;).
  • different clusters have the same or similar size, and the size can be managed. Specifically, it can be controlled as follows:
  • Different clusters can have different cluster scopes. Once a cluster reaches the cluster scope, the request to join the nodes of the cluster can be denied (until one or more existing nodes belonging to the cluster leave the cluster);
  • FIG. 5 is a schematic diagram showing the internal structure of a service redirection system and each node device according to an embodiment of the present invention.
  • FIG. 5 refines the internal structure of each node in FIG. 4.
  • a node that is assigned to maintain and manage an index of a previously defined column content is referred to as a "proxy node" of a certain column ( Agent Nodes )".
  • Columns are related to web content and may be included in, but not limited to, sections describing the media.
  • the sections of the movie stored in the system are divided into “action”, “comide”, “historical”, and so on.
  • the system desires to determine a node of a certain segment of the file in which the requested content is stored in the system, and the stored segment 55 is used to save the locally saved node.
  • Those segments of the column content For example, columns can be created for each segment of a file's content in order: l th , 2 th , ..., representing the segments of the file.
  • the system first searches for the node including the data of the first segment of the file, and finds whether the file 55 in the stored segment of each node includes the file. I th , then download the data from the searched node, then download the second segment of the file from the node that finds the 2 th of the file, and so on.
  • the columns can also be based on coefficient factors, for example, the columns can be based on the subject classification of the content and the order of the segments.
  • the proxy nodes can be classified according to the column.
  • the agent node of each column maintains a keyword list for some or all of the information belonging to the column or assigned to the column (hereinafter referred to as "content index table"").
  • the content index table includes a data structure that belongs to a list of all content keywords for a column.
  • each entity in the content index table includes the following information: column, keyword list, node.
  • column indicates the column to which the content has been assigned
  • keyword list includes one or more keywords that match the content; "node” indicates that this information is stored on the node.
  • an entity ⁇ . , KL, Nx> indicates that the node Nx includes the content that belongs to the column CA and the keyword KL.
  • the node Nx includes: the node Nx includes the content that belongs to the column "action film” and "hero".
  • the content index table is maintained only in the proxy node.
  • the service redirection system of FIG. 5 shows a cluster structure, and the cluster has a center node 53A, a zone i or a center node 53B, two edge nodes 53C and 53D, and two 4 node nodes 53E and 53F, wherein
  • Each node has a column table 54 and a locally stored segment 55, which is used to store a mapping table of the respective columns and the proxy nodes of the cluster to which they belong.
  • Each entity in the column table may include the following data: ⁇ column, proxy node, timestamp>, for example, a real ⁇ CA, Nx, Ti> indicates that at time Ti, the proxy node Nx is associated with the column CA.
  • the node can locate the proxy node of the corresponding column of the content to be queried.
  • other nodes having child nodes lower nodes
  • links 57A to their child nodes
  • all nodes except the center node 53A have a link 57B to Its parent node (upper node;).
  • Each of the proxy nodes 53E and 53F includes one or more content index tables 59A and one or more overlay link tables 59B, wherein the overlay link table 59B represents one or more proxy nodes having the same column in other clusters. Address information.
  • the following is a description of the column overlays associated with the overlay link table: In some cases, nodes in a P2P network can be divided into cluster structures.
  • Each cluster can include one, two or more nodes. Different clusters can contain different numbers of nodes. Each cluster consists of several proxy nodes that maintain different columns. A single node can be a multi-column proxy node. The proxy nodes belonging to the columns in different clusters may be associated with each other, and the association relationship may be composed of links between the proxy nodes of different clusters. A link includes a record of an address, or other contact information of a proxy node of the column maintained at other nodes. In some specific cases, each proxy node contains a list of overlay links that list multiple address information for the proxy nodes in the other clusters. This association between proxy nodes of different clusters is called "column overlay.” Overlays of multiple columns can be structured, and each column overlay corresponds to a column.
  • FIG. 6 is a schematic diagram of a monthly redirection system according to an embodiment of the present invention, which is applied to an IPTV system of a P2P technology to implement column overlay of search for content.
  • FIG. 6 shows an example in which nodes are organized into a cluster 60A, a cluster 60B, a cluster 60C, and a plurality of column overlays 62A, 62B, 62C.
  • a proxy node is assigned to one of the three defined columns: Cal, Ca2, Ca3.
  • proxy node N1 is associated with column Ca2
  • proxy node N2 is associated with column Ca2
  • proxy node N3 is associated with column Ca2. Since the nodes N1, N2, and N3 are the 4 processing nodes of the column Ca2, the three proxy nodes can be associated with each other to form the column superposition 62B.
  • column superpositions 62A and 62C may be constructed for the proxy nodes of columns Cal and Ca3, respectively.
  • the parent node and the child nodes constitute the topology of the cluster
  • the overlay link table 59B constitutes the topology of the column overlay, that is, the topology between the clusters.
  • the node may issue a request message for querying a content, the request including a column to be queried, and a list of keywords associated with the information to be looked up from the system.
  • the node that issued the query request ie, the requesting node
  • the proxy node can locate the proxy node associated with the column by querying the column in the locally saved column table 54, and send the request message to the proxy node associated with the column.
  • the proxy node receives the query request, and queries the content index table of the proxy node to query the information matching the keyword in the keyword list, and sends the query result, that is, the node information storing the keyword content, to the requesting node.
  • the proxy node that receives the query request may query the information in the content index table 59A that matches the query keyword, and return the query result to the requesting node.
  • the query result may include a list of nodes that store information that satisfies the query conditions.
  • the requesting node Nx finds the 4th node of the column CA by searching its column table; 2. If the proxy node of the column CA is Ny (as in the proxy node 53E in FIG. 5), The node Nx establishes communication with the node Ny, and initiates a query for the KL request message belonging to the column CA;
  • the node Ny searches its content index table by the keyword KL in the request message received from Nx, and returns the search result to Node Nx; 4. If the node Ny is not the correct proxy node, then Ny returns according to the column maintained by it. Return to the correct address of the proxy node (such as proxy node 53F in Figure 5). If Ny's column table information is updated compared to Nx's column table information, Nx updates its column table, and repeats step 4;
  • Nx contacts its parent node Nz. If Nz cannot find the proxy node of the column CA, then Nx contacts the parent node of Nz until Nx contacts the central node. If the central node is still unable to determine that the proxy node or the central node of the column CA is offline, each node in the cluster is queried in a flooded manner to determine a node containing the KL belonging to the column CA.
  • the proxy node of the column CA receives the query request message, the proxy node performs the query locally, and searches for the proxy node of the column CA in the other cluster according to the overlay link list, The query request is forwarded to the proxy node that is superimposed on the corresponding column in the overlay link list.
  • another proxy node receives the forwarded query, it checks and determines whether the query is received for the first time. If the query is received for the first time, the query is executed locally; otherwise, the query request may be ignored, specifically, distributed Hash algorithm (DHT) implementation.
  • DHT distributed Hash algorithm
  • a query request only needs to transmit the query request within the column overlay related to the query, which is more effective than the prior art query to all nodes in a flooding manner.
  • the number of clusters is N
  • each column flooding contains at most N peer nodes. Therefore, a query request is only transmitted between its column overlay related proxy nodes, and the number of nodes associated with the query request is very high. Less, the query speed is fast.
  • a user wants to find a file of a musical piece of a national singer, and a node associated with the user can send a request for a query for the "Country" column, the query requesting a keyword list including the name of the artist or the name of the song, through the proxy node Returns the address of the node that matches the query.
  • the requesting node can also use the column overlay search to determine the node that stores the segment of a file.
  • the requesting node may determine the proxy node associated with the Nth segment of the file, thereby sending a query request to the proxy node containing the Nth segment column,
  • the proxy node searches for and returns one or more node lists that store the Nth segment of the requested file.
  • the initial central node of the cluster is the proxy node for all columns of the new cluster.
  • the central node can migrate certain sections to other nodes, which can again migrate the columns to other nodes.
  • Any proxy node within a cluster can migrate some of its columns to nodes that are newly joined and are child nodes of the proxy node. If the load of the proxy node is heavy, you can migrate some sections to other nodes.
  • the column table maintained by the agent node of the cluster needs to be updated. Initially, only the node that the migration node and the node to which the column was migrated have the latest information about the current agent node of the migrated column. Periodic reporting can solve the problem that the column table needs to be updated.
  • Each joining node may periodically send a column update report to one or more randomly selected neighboring nodes.
  • the column update report can include N pieces of up-to-date information (or column migration report events;), as well as entities of any M column table.
  • the receiving node updates the column table based on the time in the column update report.
  • a node When a node shares information with the system, it can determine the appropriate proxy node by looking up the column in the column table that matches this information, so that the node communicates with the proxy node.
  • the shared information may include a column, a list of keywords associated with the information, and the like, and may be notified to the node that the assigned node information is also accessible by other nodes.
  • the proxy node Once the proxy node receives the communication message, it can store the keyword list and store the address of the node in the content index table.
  • FIG. 7 is a flowchart of a service redirection method according to an embodiment of the present invention. As shown in FIG. 7, the following process is included: Step S72: Acquire a content request message, where the content request message is used to request download/pull down content; Step S74: determining one or more nodes of each segment of the stored content; Step S76: downloading/pulling each segment of the content from the determined one or more nodes; Step S78: obtaining complete content data according to each segment of the content.
  • the embodiment may be described in conjunction with the system embodiment.
  • the request message corresponding to the content of a certain file such as an IPTV request
  • the heart node, the regional center node, or one or more nodes of the proxy node that determine the respective segments of the stored content for example, obtain the node and the node corresponding address storing the content from the content index table of the proxy node, and send the request node of the request message
  • the segments of the content are downloaded/pushed from the determined one or more nodes, and finally the complete content data is obtained according to the segments of the content.
  • the service redirection method of this embodiment is for providing download/pull down media data.
  • This embodiment can be used as a media content that is pulled down to the receiving node, and the media content can be composed of a plurality of segments that are stored on nodes of the network.
  • the node may search for a node that stores the content requested by the user according to the received request message, and preferably, the determined one or more nodes of the segments of the content requested by the storage user form a node list, and download the user request from the node list.
  • Content Supporting a segment containing N blocks ⁇ B l , B2, ⁇ , BM ⁇ , and determining the nodes of M storage segments (referred to as storage nodes), denoted as ⁇ PI , P2 , ⁇ , PM ⁇ To provide a paragraph.
  • the scheduling method solves how to download the segment from the M storage nodes so that each block of the segment has a smaller initial buffer time to the receiving node and downloads each block as early as possible.
  • the segments of the downloading/pull-down content of the determined one or more nodes in step S76 of the embodiment of FIG. 7 can be implemented in the following three ways:
  • FIG. 7A is a schematic diagram of an allocation sequence for implementing a service redirection method according to an embodiment of the present invention to download/pull data blocks based on a round robin method.
  • FIG. 7A shows a specific example of downloading/pulling eight equal-sized data blocks (B 1 to B8 ) from three storage nodes (P1 to P3) by the RR method.
  • the playback speed Br is 512 kbps
  • each block contains video content of 1 second playback time.
  • the bandwidth of storage node P1 is 320 kbps (5/8 X Br )
  • the bandwidth of P2 is 128 kbps (1/4 x Br)
  • the bandwidth of ⁇ 3 is 64 kbps (1/8 ⁇ Br ).
  • the RR method it takes 16 seconds to download/pull all 8 data blocks.
  • the number of blocks allocated to each storage node is proportional to the bandwidth of the node.
  • download/pull Bwi/Br data blocks are allocated for the storage node Pi, where Bwi is the bandwidth of the node i and Br is the playback speed.
  • the method of downloading/pull-down data blocks by the BP method can make full use of the bandwidth of each storage node.
  • FIG. 7B is a schematic diagram of an application-based service redirection method implementing a bandwidth-based download/pull-down data block allocation sequence according to an embodiment of the present invention.
  • Fig. 7B shows a specific example of downloading/pulling eight equal-sized data blocks (B1 to B8) from three storage nodes (P1-P3) by the BP method. Similar to Fig. 7A, the same playback speed Br is 512 kbps, and each block contains video content of 1 second playback time. Assume that the bandwidth of storage node P1 is 320 kbps (5/8 X Br ), the bandwidth of P2 is 128 kbps ( 1/4 Br ), and the bandwidth of ⁇ 3 is 64 kbps ( 1/8 ⁇ Br ).
  • the BP method With the BP method, it takes 8 seconds to download/pull down all 8 data blocks.
  • the BP method can effectively utilize the bandwidth of each storage node, but as can be seen from Fig. 7B, the first several data blocks are allocated to one node, and only one node's bandwidth is used to download/pull the starting several data blocks. If you want to cache the first few data blocks, it may take longer to cache these first few data blocks than to download/pull down several data blocks.
  • Multi-source method download/pull-down data block multi-source method is a multi-source Scheduling (MSS) method, which combines the advantages of RR and BP.
  • the main process is as follows:
  • the RR method allocates a block of data to a storage node.
  • the number of data blocks allocated by the node is proportional to the bandwidth of the node.
  • storage nodes can be classified in a descending order of bandwidth Bw.
  • the earliest time when no storage node Pi starts to send the current data block is Ti. If the storage node Pi has not sent a data block, then Ti is the current time; if the storage node has sent multiple data blocks, Ti is the time when the storage node finishes transmitting the data block.
  • the initial value of Ti is set to zero.
  • the data blocks of the segment to be downloaded/pull-down are assigned to the storage node in the order of the data block number, starting with the first data block.
  • the receiving node may first calculate an estimate of the download completion time of the block from each storage node.
  • the estimate of the completion time can be calculated by the following formula: Tfmis ( i ) ( 3 )
  • T fmisW l is an estimated value for the storage node Pi completion time
  • Size is the size of the current block B current .
  • FIG. 7C is a schematic diagram of an allocation sequence for implementing a download/pull-down data block based on a multi-source method according to a service redirection method according to an embodiment of the present invention.
  • Fig. 7C shows a specific example of downloading/pulling eight equal-sized data blocks (B 1 to B8 ) from three storage nodes (P1 to P3) by the MSS method.
  • the playback speed Br is 512 kbps, and each block contains video content of 1 second playback time.
  • the bandwidth of the storage node P1 is 320 kbps (5/8 X Br )
  • the bandwidth of the P2 is 128 kbps (1/4 Br )
  • the bandwidth of the P3 is 64 kbps (1/8 ⁇ Br ).
  • the MSS method it takes 8 seconds to download/pull down all 8 data blocks.
  • the RR method, the BP method, and the MSS method can be compared by using FIGS. 7A to 7C. As can be seen from Fig. 7A - Fig.
  • the delivery of 8 blocks takes 16 seconds, and the delivery of the same block by BP and MSS takes only 8 seconds.
  • the BP method and the MSS method are different in the time of completing the delivery of the first block. If the number of the starting buffer blocks is three, the RR method takes 8 seconds to complete the delivery of the three blocks. By comparison, it takes 4.8 seconds to complete the delivery of the 3 blocks using the BP method, and it takes only 4 seconds to use the MSS method.
  • 7A-7C fully illustrate that the three scheduling modes of RR, BP, and MSS can fully explain that it takes less time to download each block, and obtain a smaller initial buffer time.
  • a node (a receiving node) requests downloading
  • the receiving node determines, by the proxy node, a list of nodes storing the beginning segment of the content file.
  • the receiving node is ready to download/pull down the remaining segments of the expected media content, the starting segment has been downloaded/pulled down from one or more nodes.
  • the receiving node can calculate the bandwidth of the selected storage node by using the scheduling manner shown in FIG. 7A to FIG. 7C, and pull down the data content from the starting segment to the receiving node according to the scheduling manner similar to the MSS.
  • the rejected IPTV request message is returned. Usually, the request is rejected in the following cases:
  • the node storing the content does not have enough bandwidth to transmit the media stream.
  • a column overlay is also provided ( Category
  • Overlay search method. Use this search method for service redirection to locate the requested media segment for an IPTV session.
  • the search method for column overlays is used during a streaming session, and there is no need to complete the download of all the requested segments before the media is played.
  • the segment of the video file can be further divided into a plurality of blocks, which can help to receive different portions of a segment from different storage nodes in parallel, and also help to accumulate upstream bandwidth from different storage nodes.
  • multiple storage nodes support one IPTV request.
  • the MSS method can be used to select the allocation order of the storage nodes and the individual blocks of a segment, and also Coordinate the download/pull-down of each storage node to ensure that an IPTV request is processed in a timely manner.
  • the column overlay search method can be applied to the P2P overlay based unstructured network of the cluster-based P2P technology, which allows the search generated traffic to be separated from the system maintenance.
  • the number of messages generated by this search can be limited.
  • the search can be performed by column and cluster/area, and the traffic of the search and index can also be isolated.
  • the content currently requested or retrieved may include metadata (metadata).
  • the metadata can identify a segment of a video file corresponding to a scene, and the metadata can include more detailed information related to the segment information content, thereby facilitating accurate determination of a particular segment.
  • metadata can be used to determine which segment an actor or actress is starring, which helps the user to watch and improve the user experience. Metadata allows for intelligent search of content.
  • metadata can be included in one or In the initial segment of the plurality of contents, the metadata can be immediately obtained and used by the playback device of the receiving node.
  • FIG. 8 is a schematic diagram of applying a service redirection method according to an embodiment of the present invention to transmit data to a user by using an accumulated bandwidth.
  • the receiving node P6 wants to watch a video with a playback rate of 500 kbps.
  • the receiving node P6 searches for the segment #0 of the video, and searches for the nodes P1, P2, P3 including the segment #0.
  • the receiving node P6 can select P1, P2, P3 as the providing segment #0. Node, and calculate the bandwidth of Pl, P2, P3 pulldown section #0. Similarly, from P3, P4 pulldown section #1; from P4, P5 dropdown section #2.
  • the receiving node P6 can cache the segments that are pulled down in the storage space it provides, so that based on the stored segments, the receiving node P6 can provide content services for other nodes.
  • the receiving node may send a scheduling command to the storage node that has selected to provide the media content service; when the storage node receives the scheduling command, it may send the allocated block in the scheduling to receive Node (or user terminal).
  • FIG. 9 is a schematic diagram of applying a service redirection method according to an embodiment of the present invention to implement data transmission to a user by using a round robin method.
  • the receiving node can maintain a ring cache 90. Once the receiving device 92 within the receiving node receives the blocking from the storage node, the receiving node can insert the block into the correct location in the ring buffer 90 and play it through the playback device 94.
  • the size of the ring buffer 90 can be expressed as 0 ⁇ 111 ⁇ 1 ⁇ 1 1 ⁇ 1311 ⁇ -8126, where a buff is a parameter, and a buff > 1 , N sc he indicates the number of scheduled data blocks, blk Size Represents the size of a data block.
  • the receiving node should at least buffer the S mitBuff (initial cache) blocks before the media file starts playing. After the initial cache time, the receiving node can continuously read media data and play media files from the ring buffer 90. Preferably, during the streaming session, the receiving node can monitor the status of the ring buffer 90 and track the received blocks. Each block receives at least a certain set time (denoted as T adv seconds) before the received blocks are scheduled to play.
  • the block can be determined to have been "lost", so the receiving node can send a request to the corresponding node to retransmit the lost block, thereby ensuring the quality and accuracy of the transmission.
  • the flow rate of a node leaving the service redirection system, or failure, or input from one or more nodes is slowed due to network congestion. In the case of this node, you can select an alternate node for that node.
  • a minimum value of the receiving rate may be preset, for which the receiving rate is less than the minimum value or one or more nodes of the system (which may also be simply referred to as a failed node), a substitute node is selected for the receiving node, and the selected substitute node is selected. Download/pull down segments and/or blocks stored by the failed node. For example, the receiving node may select one or more alternate nodes from the nodes of the requested segment. In a specific implementation, if a node fails or leaves the system during a streaming session, the receiving node may select another node to replace the node that has left/failed. The receiving node can generate a flow delivery schedule consisting of new nodes that have not yet received the block.
  • the receiving node sends the modified scheduling (ie, from which nodes the current receiving block is received) to the substitute node, and once the alternative new node is selected to receive the falsified scheduling, the new node may send the order in the order described in the scheduling.
  • the assigned block is given to the receiving node.
  • this process can be referred to as "provider switching.”
  • the receiving node or user terminal can monitor the rate of content received from each storage node if the receiving node detects that the rate of media streams being output from a certain storage node has decreased for a period of time, or has been reported Alternatively, if the storage node is detected to leave or fail, the receiving node may perform the provider switching process described above.
  • the total bandwidth may be less than the required playing rate, and the receiving node's cache is empty.
  • the S mitBuff initial buffer
  • the initial buffer may be selected as Sufficiently large so that playback can continue without interruption even if a provider switch occurs.
  • the methods and systems provided by the various embodiments of the present invention support searching for shared information across a wide range of nodes.
  • the function of service redirection can be distributed on many nodes, up to the extent of the number of columns and the number of clusters in the system. For system maintenance, for example, content indexing, automatically merging new nodes or processing node departures, it can also be distributed across many nodes.
  • the service redirection method of the embodiment of the present invention can utilize a situation in which the uplink bandwidth of a node in the network is smaller than its downlink bandwidth (for example, ADSL). For example: The rate at which a single node uploads data is relatively low, while the rate at which data is pulled/downloaded from multiple nodes to the receiving node is relatively high.
  • the content distribution method and the service redirection method provided by the above embodiments of the present invention can extend the IPTV system and apply to devices other than the system. For example, the content can be delivered to a Personal Digital Assistant (PDA), a mobile phone, etc., specifically, through 4 ⁇
  • PDA Personal Digital Assistant
  • the Proxy node is implemented as a receiving node.
  • FIG. 10 is a schematic diagram showing an extended structure of an IPTV system to which a service redirection system is applied to a P2P technology according to an embodiment of the present invention.
  • FIG. 10 shows a system 10A that includes a proxy node 10.
  • the proxy node 10 communicates with other nodes 12 to receive content data. Through the communication link 14A, the proxy node 10 also communicates with the node 100 of the non-joining system 10A, which may include a wireless connection.
  • the proxy node 10 interacts with the rest of the system 10A and forwards the received content data to the node 100 via the communication link 14A.
  • the node 100 may specifically be a commonly used mobile phone, and the mobile phone user can search for the video in the system 10A and then play the video on the mobile phone.
  • transcoding may be performed at the proxy node 10 to reduce the rate of content data such that it is adapted to the node 100 and/or the communication link 14A.
  • the IPTV system in the above system embodiment is convenient to expand and can provide better load balancing between nodes.
  • a "super node” capable of independently processing all of the search services of the system may not be provided.
  • the association can be made in two ways: On the one hand, the nodes are associated to the cluster. For example: determining which node is the maintenance node of which cluster, etc., can use the topology structure of the cluster to associate; on the other hand, associate the proxy node in the column overlay, for example: the search task of the monthly redirect node You can manage it with the corresponding column overlay topology.
  • the content distribution method, the service redirection method and system, and the node device provided by the embodiments of the present invention divide the content into segments and publish them to different storage nodes, which can be respectively from multiple nodes.
  • the IPTV system can be effectively expanded and the IPTV media service orientation can be completed.
  • the foregoing embodiments can also provide a large-scale and effective keyword search service based on the P2P network model, thereby effectively shortening the time for service relocation.
  • the above is only the preferred embodiment of the present invention, and is not intended to limit the present invention.
  • the present invention can be variously modified and modified. Any modifications, equivalent substitutions, improvements, etc. made therein are intended to be included within the scope of the present invention.

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Between Computers (AREA)

Description

内容发布方法、 (艮务重定向方法及系统、 节点设备 技术领域 本发明涉及数据通信领域中媒体内容分发和交付的技术, 具体地, 涉及 一种内容发布的方法、 月艮务重定向的方法及系统、 节点设备。 背景技术 随着视频和宽带接入技术的迅速发展, 通过互联网 (Internet ) 网络收 看电视直播已经成为现实。 因特网网络电视(Internet Protocol Television, 简 称为 IPTV )能够提供电视直播、 视频点播 ( Video On Demand, 简称为 VoD ) 和录播 ( TV On Demand, 简称为 TVoD ) 等业务, 用户在观看电视直播的同 时, 还能够时移电视和回看等, 从而使用户从传统的 "你播我看" 的被动收 看电视模式中彻底地解放出来。 目前的 IPTV系统是一个 C/S结构, 在宽带网络上实现的 IPTV业务主 要有两种模式,即基于 C/S模式的和基于对等网络( Peer to Peer,简称为 P2P ) 技术的 P2P叠加网络方案。 基于 C/S结构的 IPTV系统的可扩展性差, 系统难以扩展到用户数量非 常多 (例如, 十万用户、 百万用户) 的情况。 随着用户请求 IPTV业务的数 量越来越多, 任何一种容量的服务器, 最终都会出现不能及时地响应用户请 求的现象。 服务器的资源最终会被消耗尽, 不能向用户提供 IPTV业务, 而 成为 IPTV 系统的瓶颈。 目前减少月艮务器压力的方法如: 组播方法 ( Multicasting )、 4比处理技术 ( Batching )、 卜丁技术 ( Patching )、 合并技术 ( Merging )、 周期' 1·生地广播技术 ( Periodic broadcasting ) 等, 这些技术的基 本出发点大多釆用组播方式, 即将同一个文件的多个点播 (或直播) 合并为 一个组播信道服务。 目前由于整个网络并不支持全网 IP组播, ADSL的线路带宽也不足以 支撑同时传输两个流, 因此, 上述减少月艮务器压力的方法在实际运营中难以 实现, 且这种节省资源的策略以延时用户的响应为代价, 在商业运营中得不 偿失。 另夕卜, 还可以釆用媒体分片的方式减少服务器压力, 例如, 协作代理緩 存技术, 该技术可以缩短用户在频道切换和节目播放前的等待时间; 基于段 的緩存技术, 将媒体文件的各个段以协作方式被分发到用户进行播放, 但这 种方式并没有改进 IPTV系统的可扩展性。 P2P系统允许不同的计算机之间对等地交换数据,每个运行 P2P软件的 计算机被称为一个对等节点( peer )。 任何一个具有媒体服务定位功能的系统 必须能够提供搜索查找信息的功能, P2P软件就能够提供这种媒体服务定位 和搜索查找 P2P网络信息的能力。 P2P网络所釆用的搜索方案, 一般地, 能 够分为以泛洪 ( flooding ) 方式搜索的无结构网络 ( unstructured network ) 和 结构网络( structured system ) 两种。 泛洪方式搜索的无结构 P2P 网络会产生了大量地冗余请求, 难以扩展 到对等节点非常多的网络。 结构化的 P2P 系统釆用基于分布式哈希表 ( Distributed Hash Table, 简称为 DHT ) 的搜索技术, 这种搜索方法紧紧地 耦合了内容 (或数据) 的位置与网络拓朴结构, 会导致较高的维护成本, 并 且这种网络仅支持标识符 (ID )搜索和查找, 缺乏基于关键词搜索和查找的 灵活性。 可以看出, 目前的 IPTV系统中, 基于 C/S模式的结构可扩展性差; 泛 洪方式搜索的无结构 P2P网络可扩展性差, 结构化的 P2P网络维护成本高、 搜索不灵活。 发明内容 本发明的目的是针对现有技术中 IPTV系统的可扩展性差、 搜索查找不 灵活的缺陷, 提出一种内容发布的方法、 服务重定向的方法、 装置及系统, 以提高 IPTV系统的可扩展性。 为实现上述目的, 才艮据本发明的一个方面, 提供了一种内容发布方法。 根据本发明实施例的内容发布方法包括: 将待发布的内容分成多个段; 对于每个段, 确定用于存储段的一个或多个节点; 将段发布给存储段的一个 或多个节点。 其中, 将待发布的内容分成多个段的操作具体包括: 将待发布的内容分 成多个相同或不同的段, 每个段都包含大 ' j、可调整和 /或配置的多个块。 其中, 通过以下节点信息至少之一确定用于存储段的一个或多个节点: 节点可利用的带宽、 节点的稳定性、 节点可利用的存储空间、 节点的利用频 率。 优选地, 该方法还包括: 周期性地获取节点发送的报告消息, 报告消息 中携带有节点信息。 其中, 可以根据以下信息确定存储段的节点:
Figure imgf000005_0001
其中, GSti 表示节点 i的优度检验值 ,
EstimatedStayi(new)= α χ EstimatedStayi(prev) + (3 χ CurrentStayi;
EstimatedStayi(new)表示节点的稳、定' 1·生, CurrentStayi为节点 i力。入系统 的持续时间或无故障持续时间的时间长度, EstimatedStayi(prev)为 EstimatedStay,的历史值, α和 (3为权重因子, 且 α + (3 =1 ; BWl为节点 i可 利用的带宽; R age为节点 i加入系统所捐献带宽的平均利用率, Fres^e,为节 点 i在预定周期内处理 IPTV请求的频率; 其中, a st、 (3 St、 γ st为权重因子, m为加入 IPTV系统的节点的数量。 其中, 确定用于存储段的一个或多个节点的操作具体包括: 获取每个节 点对应的优度检验值 GSt; 选择大于或大于等于预设值的优度检验值, 将超 过预设值的优度检验值对应的节点作为存储段的节点。 优选地, 将段发布给存储段的一个或多个节点的操作通过以下方式进 行: 按照确定用于存储段的一个或多个节点的优度检验值高低, 将段分別发 布给一个或多个节点。 为实现上述目的,根据本发明的一个方面,提供了一种服务重定向方法。 根据本发明实施例的服务重定向方法包括: 获取内容请求消息, 其中, 内容请求消息用于请求下载 /下拉内容;确定存储内容的各个段的一个或多个 节点; 从一个或多个节点下载 /下拉内容的各个段; 根据内容的各个段获得完 整的内容。 优选地, 在确定存储内容的各个段的一个或多个节点的操作之后, 进一 步包括:将确定的一个或多个节点的节点标识添加到下载 /下拉内容的节点列 表。 优选地,确定存储内容的各个段的一个或多个节点的操作之后,还包括: 向一个或多个节点分配下载 /下拉的数据块,具体可通过以下方式至少之一进 行: 按照节点顺序循环从一个或多个节点下载 /下拉段或段中的一个 /多个块, 其中, 每个节点在每个循环中被分配的段或块相同, 或者被分配的段或块与 该节点的带宽成比例; 根据存储段的一个或多个节点的带宽, 从一个或多个 节点下载 /下拉每一个段或段中的一个 /多个块。 其中, 从一个或多个节点下载 /下拉内容的各个段的操作通过以下方式 至少之一进行: 利用累加带宽下载 /下拉内容的各个段; 将下载 /下拉的内容 的各个段写入预设的环形緩存,环形緩存预设有各个段和 /或每个段的一个或 多个块的对应位置, 其中, 每个段都包含大小可调整和 /或配置的多个块。 优选地, 该方法还包括: 对于接收速率小于预设值的一个或多个失效节 点, 为其选择替代节点, 并从替代节点下载 /下拉对应的失效节点存储的段和
/或块。 为实现上述目的, 才艮据本发明的另一个方面, 提供了一种服务重定向系 统。 根据本发明实施例的服务重定向系统, 包括一个或多个集群, 其中, 每 个集群都包括: 中心节点, 用于保存所有待发布的内容, 并发布内容; 具有 层级结构的一个或多个下属节点, 直接连接到中心节点, 或者连接到下属节 点的上级节点, 用于存储系统发布的内容的各个段, 并在接收到下载 /下拉内 容对应的请求消息时, 确定下载 /下拉内容的一个或多个节点, 从确定的一个 或多个节点下载 /下拉内容的各个段。 优选地, 中心节点与下属节点形成树形拓朴结构或网状拓朴结构。 其中, 上述各个节点均包括: 栏目表, 用于存储各个栏目与所属集群的 代理节点的映射关系, 栏目为将所有内容分类的目录信息, 代理节点用于对 包含栏目中的一类或多类目录内容的节点进行维护和管理; 存储模块, 用于 存储本地保存的内容的段; 链路模块, 用于存储到其他节点的链路。 优选地, 上述节点为代理节点时, 该系统还包括: 内容索引表, 用于维 护存储内容的节点、 以及节点对应的地址信息; 叠加链路表, 用于存储一个 或多个在其它集群中具有相同栏目的代理节点的地址信息; 其中, 栏目为将 所有内容分类的目录信息。 为实现上述目的, 根据本发明的另一个方面, 提供了一种节点设备。 根据本发明实施例的节点设备包括: 栏目表, 用于存储各个栏目与所属 集群的代理节点的映射关系, 栏目为将所有内容分类的目录信息, 代理节点 用于对包含栏目中的一类或多类目录内容的节点进行维护和管理;存储模块, 用于存储本地保存的内容的段; 链路模块, 用于存储到其他节点的链路。 优选地, 该节点设备还包括: 内容索引表, 用于维护存储内容的节点、 以及节点对应的地址信息; 叠加链路表, 用于存储一个或多个在其它集群中 具有相同栏目的代理节点的地址信息; 其中, 栏目为将所有内容分类的目录 信息。 其中,上述链路模块包括: 父链路子模块,用于存储到上级节点的链路; 子链路子模块, 用于存储到下级节点的链路。 本发明各实施例的内容发布方法、 服务重定向方法、 节点设备及系统, 可以在互联网上大规模发布内容和进行媒体服务定位。 上述一个或多个实施 例对于 IPTV 系统, 将内容分成多个不同的段, 这些段可以存储在系统的多 个节点中。 热片(即用户点击较多的内容)节目的段 (或非常重要的段) 可以 存储在多个不同的节点中, 在用户请求收看相应的节目时, 没有必要在媒体 播放之前完成所请求的全部段的下载。 视频文件的段可以进一步地分成多个 块, 这有助于并行接收来自不同存储节点的一个段的不同的部分, 从而对来 自不同存储节点的上行带宽进行累加。 在一个流媒体会话期间, 多个存储节 点支持一个 IPTV请求, 能够利用一些未被利用的存储空间和到用户终端的 上行带宽来支持 IPTV业务请求。 上述一个或多个实施例由于将内容分成若干段,并发布到不同的多个存 储节点上, 与现有技术将整个内容或文件为单位存在某一个服务器节点上不 同, 可以分别从多个节点响应用户的请求, 可有效提高 IPTV 系统的可扩展 性, 完成 IPTV媒体服务定向等功能。 本发明的其它特征和优点将在随后的说明书中阐述, 并且, 部分地从说 明书中变得显而易见, 或者通过实施本发明而了解。 本发明的目的和其他优 点可通过在所写的说明书、 权利要求书、 以及附图中所特别指出的结构来实 现和获得。 附图说明 附图用来提供对本发明的进一步理解, 并且构成说明书的一部分, 与本 发明的实施例一起用于解释本发明, 并不构成对本发明的限制。 在附图中: 图 1为应用才艮据本发明实施例的服务重定向系统实现 P2P技术的 IPTV 系统的示意图; 图 2为图 1中各个节点的结构示意图; 图 3为才艮据本发明实施例的内容发布方法的流程图; 图 3A为图 3中步骤 32将内容分段的实施例示意图; 图 4为才艮据本发明实施例的系统构成的树形结构的集群示意图; 图 5为才艮据本发明实施例的系统及各个节点装置的内部结构示意图; 图 6为根据本发明实施例的系统应用于 P2P技术的 IPTV系统中实现搜 索查找内容的栏目叠加的示意图; 图 7为才艮据本发明实施例的方法的流程图; 图 7A 为应用根据本发明实施例的方法实现基于循环法下载 /下拉数据 块的分配顺序示意图; 图 7B 为应用才艮据本发明实施例的方法实现基于带宽下载 /下拉数据块 的分配顺序示意图; 图 7C 为应用才艮据本发明实施例的方法实现基于多源法下载 /下拉数据 块的分配顺序示意图; 图 8 为应用才艮据本发明实施例的方法实现利用累加带宽把数据传输给 用户的示意图;
用户的示意图; 图 10为才艮据本发明实施例的系统应用于 P2P技术的 IPTV系统的扩展 结构示意图。 具体实施方式 功能相无述 如上所述, 由于目前的 IPTV系统基于 C/S模式, 其扩展性较差, 且通 过泛洪方式搜索的无结构 P2P网络的维护成本较高, 基于此, 本发明实施例 提供一种应用于 IPTV系统内容发布方案, 通过将待发布的内容分成多个段, 对于其中的每个段, 确定用于存储段的一个或多个节点, 并将段发布给存储 段的一个或多个节点, 与现有技术将整个内容或文件为单位存在某一个月艮务 器节点上不同, 可以分別从多个节点响应用户的请求, 完成 IPTV媒体服务 定向等功能。 以下结合附图对本发明的优选实施例进行说明, 应当理解, 此处所描述 的优选实施例仅用于说明和解释本发明, 并不用于限定本发明。 根据本发明实施例, 提供了一种服务重定向系统、 内容发布方法、 服务 重定向方法及服务重定向装置, 下面结合图 1-图 10对本发明各个实施例进 行许细说明。 系统实施例 才艮据本发明实施例, 提供一种 IPTV系统。 图 1为应用才艮据本发明实施例的服务重定向系统实现 P2P技术的 IPTV 系统的示意图。 如图 1所示的 基于 P2P的 IPTV系统 10。 系统 10包含许 多节点, 如图 1 中的节点 12A - 12H, 每个节点都为具有计算能力和数据存 储能力的装置。 例如, 节点 12A - 12H 可以是 PC、 工作站、 机顶盒 ( Set-Top-Box, 简称为 STB )、 流媒体服务器、 其它网络设备等。 节点 12A - 12H通过数据通信网络 14互连, 节点 12A - 12H通过网络 14能够交换信 息和内容。 图 1只示出了 8个节点, 但并不限于 iH , 系统 10可以包括更多 的节点。 图 2为图 1中各个节点的结构示意图。 如图 2所示, 以节点 12A为例, 节点包含一个数据处理器 16A、 网^ ί妻口 16Β、 数据存储装置 16C、 栏目表 16D、 播放装置 16E。 其中, 数据处理器 16A执行栏目表 16D, 获得相应栏 目的节点地址信息,具体处理过程会在后续进行详细描述。数据存储装置 16C 可以存储系统发布的段; 节点在链路表 16D中存储该节点与其他节点的路由 关系。 其中, 图 1 系统中每个节点中的部分或全部均可以拥有播放装置 16E。
IPTV内容只有被发布到系统 10才能被系统 10所利用。 本领域技术人 员应当了解, 本发明各实施例中的内容或媒体内容可以是任何一种数据。 例 如, 应用于 IPTV系统, 媒体内容可以是以下之一或其组合:
1、 视频内容(例如, 电影、 电视节目、 实况电视转播, 等);
2、 音频内容(例如, 音乐, 等);
3、 其它类型的媒体内容。 方法实施例 根据本发明实施例, 提供一种内容发布方法。 图 3为根据本发明实施例的内容发布方法的流程图, 如图 3所示, 本实 施例包括以下处理 (步骤 S32至步骤 S36 )。 步骤 S32: 将待发布的内容分成多个段; 步骤 S34: 对于每个段, 确定用于存储各个段的一个或多个节点; 步骤 S36: 将段发布给存储该段的一个或多个节点。 其中, 上述步骤 S32可参看图 3A, 图 3A为图 3中步骤 32将内容分段 的实施例示意图。 如图 3A所示, 待发布的内容以文件 31的方式提供, 步骤 S32可通过分片处理器将文件 31分成若干个段 31A (或者分片), 其中, 各 个段的大小可以相等, 也可以不相等。 每一个段 31A 还可以包含若干个块 31B , 块 31B的大小可调整和配置。 步骤 S34中, 选择一个或者多个节点 (如图 1 中的节点 12A-12H中若 干个) 来存储每一个段 31A。 通过执行步骤 S36 , 系统可以将内容的各个段 分发到已选择的不同的节点上, 其中, 不同的节点可以接收到一个或者多个 段。 本实施例的内容发布方法将媒体文件 31的所有的段 31A存储在系统的 节点中。 优选的, 将每一个段 31A存储在系统的多个节点中。 下面结合图 1所示的系统对图 3内容发布方法实施例的过程进行佯细说 明: 系统 10中的节点 12A-12H可以为系统 10捐献出某些带外带宽和文件 存储空间来实现系统 10中内容的发布, 支设第 i个节点 Pi捐献的带外带宽 和文件存储空间分別为 Bwi和 Sti, 则确定哪一个节点存储当前的媒体文件 的段 31A可以基于许多因素。 例如, 确定用于存储段 31A的一个或多个节点 可以基于以下一个或多个因素: 节点可利用的带宽 Bwi、 节点可利用的存储 空间 Sti、节点的稳定性、及系统最近利用该节点的程度, 即节点的利用频率。 节点被选择为存储某一段 31A 的可能性随着该节点的可用带宽、 存储 空间及节点的稳、定性的增加而增加, 而随着节点已经被系统 10 利用的程度 的增加而减少, 即确定用于存储段 31A的节点与每个节点可利用的带宽、 存 储空间及节点稳定性成正比, 与节点的利用频率成反比。 由于节点可利用的带宽 Bwi及节点可利用的存储空间 Sti可以比较容易 获得, 下面简要介绍确定用于存储段 31A的节点的其他两个因素:
1.节点稳定性的测量 节点 i稳定性的一个可能测量是基于周期的长度,在该周期期间节点(如 图 1 中节点 12A-12H中任一节点)一直保持与系统 10相连接, 而没有中断 或离线。 优选地, 可以通过如下公式 ( 1 ) 来计算各个节点的稳定性: EstimatedStayi(new)= α χ EstimatedStayi(prev) + (3 χ CurrentStayi ( 1 ) 其中, CurrentStayi表示节点 i从连接到系统 10时, 在系统 10中的持 续时间或无故障持续时间的时间长度; EstimatedStayi(new)是节点 Pi的稳定 性测量, 由于考虑到节点 i的历史数据, EstimatedStayi(prev)是 EstimatedStayi 的历史值; α和 β是权重, 而且 α + β=1。 2.节点的利用频率 节点 i被系统最近的利用程度可以才艮据以下两个参数来测量: 节点 i加 入系统以来所捐献带宽的平均利用率 R age、 在最近周期内该节点处理 IPTV 请求的频率
Figure imgf000012_0001
在获得了系统中每个节点可利用的带宽 Bwi、 可利用的存储空间 Sti、 节点的稳定性、 及节点的利用频率后, 即可确定存储内容 (文件) 的段的一 个或多个节点。 优选地, 节点 i被选为存储媒体文件 31的段 31A的可能性可以基于测 量 G^ , 以下简称 Gst值为 "优度检验值"。 例如, 对于某一个具体的实现, 计算 Gst,的公式如下所示:
_st EstimatedStay,. n Bwt x (1 - R i usage )
G i= a st x ~ + st x - Y st x
max{EstimatedStayi } max{Bw- x (1 - R
≤i
Freqi - ( 2 )
msix{Freqi 其中 a st、 (3 StY st是权重因子, m是加入系统的节点的数量。 通过上述公式的优度检验值可知, 一个更加稳定的、 具有较高可利用带 宽、 较低被利用历史的节点将具有较高的 Gst值, 可以将具有较高 Gst值的节 点作为存储文件各个段 3 1A的候选节点。 具有待发布内容的节点, 例如, 希望发布文件 31的节点检索其它节点 的 Gst值, 并确定拥有较高 Gst值的其它节点 (一个或多个), 并且, 在这些 确定的节点上发布段 31A。 具体实现时, 可以在图 1所示的系统中设置一个 中心节点或区域中心节点, 用于负责维护和管理与该 (区域) 中心节点最近 的其余多个节点, 中心节点之外的其余多个节点釆集并计算各自的 Gst值, 并且, 转发这些统计的 Gst值到 (区域) 中心节点。 (区域) 中心节点维护一 个数据结构, 将各个节点与对应的 Gst值进行关联, 数据结构可以包括按照 Gst值分类的列表。 一旦(区域) 中心节点接收到来自内容发布节点, 例如节 点 j的请求, (区域) 中心节点可以选择具有最高 Gst值的节点 Nc , 并且将所 确认节点 Nc的信息发回给要内容发布的节点 j。 优选地, 系统 10的节点 12A-12H被组织成一个或多个集群结构。 每一 个集群包含一个中心节点, 用于负责累加该中心节点所负责的集群内相应的 节点的 Gst值。 在这种情况下, 每个集群的中心节点除了确认在它自己集群 内含有最高 Gst值的节点以外, 该中心节点还可以将本集群内的请求转发给 其它的中心节点。 要发布内容的请求节点, 如节点 j等待一段时间 (可以设 定最长的等待时间) 就能够接收到中心节点发送的确定节点 Nc 的信息, 节 点 j可以基于确定节点 Gst值的大小顺序将段 31A发布给确定的节点。 优选地, 集群结构一个具体的实现情况是树形结构, 如图 4所示。 优选地, 每一个节点周期地发送 "心跳" 消息(即报告消息)给它的上 级节点 (以下简称父节点)。 其中心 兆消息可以包括以下至少之一: EstimatedStay, Bw、 Rusage、 Freqserve。 父节点釆集包括下级节点的心跳消息 在内的信息和自己的 "心跳" 消息, 周期性地把累加报告发送给它自己的父 节点。 通过上述方式, 最终, 中心节点将拥有计算每一个节点 Gst值的足够 的最近或最新的信息, 中心节点可以以 Gst降序的方式将节点分类和 /或以分 类的候选节点列表的方式存储结果, 中心节点基于节点最近的信息维护该分 类的候选节点列表。 除了维护节点的 Gst值以外,如果预定时间内未收到某节点的心跳消息, 则可以检测该节点是否由于某种原因已经离开了系统。 如图 3及图 3A所示,在步骤 S34确定了存储待发布内容的段的节点(以 下简称为存储节点)之后, 各个段 31A在这些存储节点之间以循环方式被发 布。 其中, 段的发布方法是: 分配起始段到具有最高 Gst值的候选节点, 然 后, 发布第二个段到具有次最高 Gst值的候选节点, 依此类推。 当所有的段 分配完成时, 要发布内容的节点发送段 31A到分配的各个节点, 节点将已经 接收到的段 31A存储在数据存储设备 16C中。 优选地, 考虑到用户在观看了起始段之后, 如果对所观看的内容不感兴 趣, 则用户不会继续观看该内容的后面段; 另一方面, 如果用户观看了起始 若干段后如果没有时间继续观看, 则用户也不会观看后面段的内容。 因此, 被存储在系统中的待发布内容 (或称为文件) 的起始段或起始的若干段的拷 贝份数要大于该内容后面的段的拷贝份数, 即选择多个存储节点存储文件的 起始段或起始的若干段。 根据图 3的方法实施例, 可以将待发布的内容分成多个段(如图 3A中 的段 31A ), 以及每一个段被存储在系统中的一个或多个节点内。上述实施例 提供了一种媒体段分布 ( Media Segment Distributing , 简称为 MSD ) 方法, 可以结合节点的稳定性、 可用的上行带宽、 最近流服务负荷 /频率等信息, 来 选择将哪些段存储在哪些节点中, 能够将文件的各个段发布到不同的节点进 行存储。 以下对根据图 1 -图 3 , 对内容发布的方法做简要总结: 如图 1-图 3所示, 当用户利用系统 10检索和获取文件 31在节点 12A 进行播放时, 数据处理器 16A能够使得媒体文件 31的某些段 31A保存在数 据存储装置 16C 中。 这些被保存的段可以被系统 10中的其它节点所利用、 下载, 尤其是一些热片 (例如用户点击率较高的文件) 内容的段需要保存在 系统 10 中, 考虑到实际用户观看的因素, 偏向于选择媒体内容起始的若干 段 31A保存在系统 10的可能性要大于该内容后面的段。 在某些情况下, 一个文件内容的所有的段被保存在数据存储设备 16C 中至少一段时间。 存储在本地存储设备 16C的段允许快速地转发或回放, 只 要段被保存在接收节点, 内容 (例如, 视频) 就能够在接收节点播放, 没有 必要再下载段, 可以为各个节点配置所允许回放节目的时间长度。 在某些情况下, 内容文件 31的完整拷贝 (包含文件的所有段) 可以保 存在已经选择的非常稳定的节点 (例如, 一直连续在线的) 上。 只有当其它 节点都没有用户所请求的内容时才将用户的请求重定向到这种节点 (如图 4 中的中心节点 42 ), 保证了节目内容的 "种子" 存在。 图 4 为才艮据本发明实施例的月艮务重定向系统构成的 4对形结构的集群示 意图。 如图 4所示, 除了中心节点, 其它节点要么直接与中心节点相连接, 要么经过中间节点与中心节点相连接。 在图 4中, 集群只含有一个中心节点 42, 多个直接与中心节点相连接节点被称为区域中心节点 43 , 最下级的节点 被称为边缘节点 44与用户最近, 其中, 区域中心节点 43为边缘节点 44的 上级节点或父节点。 本实施例中, 集群的组织结构是逻辑上的, 并且仅与路 由有关, 按照该路由, 边缘节点和中心节点可以相互通信。 集群内各个节点 的排列没有必要受到网络结构或节点地理位置的影响。 图 4实施例中, 中心节点 42 , 用于保存所有待发布的内容, 并发布内 容, 具体可参见图 3及图 3A方法实施例中内容发布的相关说明; 区域中心 节点 43 , 用于维护和管理自身及该区域内的各个边缘节点 44的信息 (如, 边缘节点上报的心跳消息),保存中心节点发布给它的内容, 并保存各个边缘 节点 44 与所存储的内容的对应关系 (如, 内容索引表, 通过内容索引表可 以查找到存储某内容的节点;),即区域中心节点虽然可以不保存某些内容的段 的数据, 但通过查找内容与边缘节点的对应关系, 获得存储某内容的节点; 边缘节点 44 , 用于周期性的上报自身的信息, 保存发布给它自身的内容, 并 在本地没有保存某些节目内容时, 通知区域中心节点, 如果区域中心节点查 找到该节目内容的存储节点, 则通知用户从查找的节点下载数据内容。其中, 区域中心节点 43下还可以包括下级的区域中心节点 43-1 , 形成屋级的结构。 具体地, 服务重定向系统可以对集群的结构和规模大小进行不同的限 制。 例如, 属于某个集群的所有的节点被要求至多是 N级或 兆, Ν级或 Ν 跳被称为集群的范围或大小的限制。 经由树形结构从一个节点到中心节点的 级数被称为节点的范围。 在具体实施过程中, 可以通过下述两种不同的方式构成集群:
1.通过允许某节点请求加入已存在的集群来构成集群 例如, 一个在线的节点 i可以与一个集群的一个节点 j通信, 请求加入 该集群, 如果节点 j 的范围小于集群的范围 (如, 未达到 N级), 那么请求 节点 i可以加入节点 j所属的集群, 作为节点 j的子节点。
2.通过创建新的集群来构成集群 例如, 节点 i请求加入节点 j所属的集群, 如果节点 j的范围等于集群 的范围 (如, 达到 N级), 那么请求节点 i可以创建一个新的集群 (例如, 该节点就变成了新创建的集群的中心节点;)。 优选地, 不同的集群具有相同或类似的大小, 而且, 大小可以被管理。 具体可通过如下方式进行控制:
( 1 ) 各个不同的集群可以拥有不同的集群范围。 一旦一个集群达到了 集群范围, 则可以拒绝加入该集群的节点的请求 (直到一个或多个已经存在 的属于该集群的节点离开该集群);
( 2 )设置集群 "分支" 极限, 当一个节点把加入一个集群的请求发送 给该集群的边界节点 (即其级数等于集群级数的极限值) 时, 如果不需要创 建一个新的集群, 则边界节点可以转发该请求给它的父节点, 如果集群分支 的范围小于集群 "分支" 极限, 则发送请求的节点可以加入这个集群, 成为 该集群下的一个分支。 集群 "分支" 极限值被设定的越高, 则只需要创建较 少的集群, 每个集群可以有多个分支, 通过集群 "分支" 极限, 一个请求节 点加入已存在集群的概率会增大, 可以减少产生小范围集群的概率;
( 3 )要成为中心节点, 需要满足中心节点必须具备的某些功能, 例如, 拥有充分的计算能力、 高的带宽、 较长的在线时间, 等等;
( 4 ) 每一个集群的中心节点要周期性地检查集群的规模。 如果集群的 莫(集群的范围 /集群的分支)小于某一个门限值, 则中心节点可以尝试发 现另一个适合的集群, 并且将它合并到那个合适的集群中。 图 5 为才艮据本发明实施例的服务重定向系统及各个节点装置的内部结 构示意图。 图 5对图 4中的各个节点的内部结构进行了细化, 如图 5所示, 将被分配去维护和管理事先已定义的栏目内容的索引的节点称为某个栏目的 "代理节点 ( Agent Nodes )"。 栏目与网络内容有关, 并且, 可以包含在但不 局限于描述媒体的栏目。 例如, 将系统所存储的电影的栏目分为 "动作片 ( action )',、 "喜剧片 ( comedy )',、 "历史片 ( historical )" , 等等。 在图 5所示的系统中, 系统在接收到用户发送的请求消息后, 希望确定 系统内已存储了所请求内容的文件某个段的节点, 存储的段 55 用于保存节 点本地所保存的栏目内容的那些段。 例如, 可以为某文件内容的每一个段依 次建立栏目: lth、 2th、 ..., 表示该文件的各个段。 在图 5所示的系统中, 系 统在接收到用户发送的请求下载某文件的消息后, 将首先搜索包括该文件第 1段数据的节点, 查找各个节点的存储的段 55 中是否包含该文件的 Ith, 然 后从搜索到的节点下载数据,再从查找的包含该文件的 2th的节点下载该文件 的第 2段数据, 依此类推。 除了按照段的顺序以外, 栏目还可以基于系数因 子, 例如, 栏目可以基于内容的主题分类和段的顺序两个因子。 可以将代理节点按照栏目分类, 例如, 每个栏目的代理节点 ( Agent Node )为某一些或所有属于该栏目或者被分配给该栏目的信息维护了一个关 键词列表(以下简称为 "内容索引表")。 内容索引表包括了属于某个栏目所 有内容关键词列表的一个数据结构。 例如, 在内容索引表中每个实体包括下 面信息: 栏目、 关键词列表、 节点。 其中, "栏目" 表示内容已被分配到的栏 目; "关键词列表" 包括一个或多个与内容匹配的关键词; "节点" 表示此信 息存储在该节点上。 例如, 一个实体<。 , KL , Nx>表示节点 Nx中包括属 于栏目 CA与关键词 KL相配的内容, 具体的, 可以为: 节点 Nx中包括属于 栏目 "动作片" 与 "英雄" 相匹配的内容。 内容索引表仅在代理节点中维护。
图 5的服务重定向系统示出了一个集群结构,并且该集群具有一个中心 节点 53A、 一个区 i或中心节点 53B、 两个边缘节点 53C及 53D、 两个 4弋理节 点 53E及 53F, 其中, 每一个节点均含有一个栏目表 54和本地存储的段 55 , 栏目表 54 用于存储各个栏目与所属集群的代理节点的映射表。 栏目表中的 每一个实体可以包括下列数据: <栏目, 代理节点, 时间戳 >, 例如, 一个实 ^<CA, Nx, Ti>表示在时刻 Ti , 代理节点 Nx与栏目 CA关联。 通过栏目表 54 , 节点可以对要查询内容对应栏目的代理节点进行定位。 在图 5所示的集群拓朴中, 含有子节点(下级节点)的其它节点都含有 到它们的子节点的链路 57A, 除了中心节点 53A之外的其他所有节点均含有 一条链路 57B到它的父节点 (上级节点;)。 每一个代理节点 53E和 53F均包 括一个或多个内容索引表 59A和一个或多个叠加链路表 59B , 其中, 叠加链 路表 59B 表示一个或多个在其它集群中具有相同栏目的代理节点的地址信 息。 下面介绍与叠加链路表相关的栏目叠加: 在某些情况下, 可以将 P2P网络中的节点分成集群(Cluster )结构。 每 个集群可以包括一个、 二个或者多个节点。 不同的集群可以包含不同数量的 节点。 每一个集群包括若干个维护不同栏目的代理节点。 单个节点可以是一 个多栏目的代理节点。 属于不同集群中栏目的代理节点可以相互关联, 该关 联关系可以由不同集群的代理节点之间的链路所组成。 一条链路包括一条地 址的记录、 或者在其它节点维护的该栏目的代理节点的其它联系信息。 在某 些具体情况下, 每一个代理节点含有一个列出了多个在其它集群该栏目代理 节点地址信息的叠加链路列表。 不同集群的代理节点之间的这种关联被称为 "栏目叠加"。 多个栏目的叠加是可以被架构的,每一个栏目叠加对应于一个 栏目。 由于不同的集群可以包含不同数量的节点, 因此, 某一个节点可以属 于多个栏目叠加。 图 6 为才艮据本发明实施例的月艮务重定向系统的示意图, 该系统应用于 P2P技术的 IPTV系统来实现搜索查找内容的栏目叠加。 图 6示出了节点被 组织成集群 60A、 集群 60B、 集群 60C , 以及多个栏目叠加 62A、 62B、 62C 的一个例子。 在每一个集群里, 一个代理节点被分配给已定义的 3个栏目之 一: Cal、 Ca2、 Ca3。 例如, 在集群 60A中, 代理节点 N1与栏目 Ca2相关 联; 在集群 60B中, 代理节点 N2与栏目 Ca2相关联; 在集群 60C中, 代理 节点 N3与栏目 Ca2相关联。 因为节点 Nl、 N2、 N3都是栏目 Ca2的 4弋理节 点, 因此, 这 3个代理节点可以相互关联构成栏目叠加 62B。 类似地, 可以 分別为栏目 Cal和 Ca3的代理节点构成栏目叠加 62A和 62C。 在图 5 实施例中, 父节点和子节点构成了集群的拓朴, 而叠加链路表 59B构成了栏目叠加的拓朴, 即与不同集群之间的拓朴。 为了从该系统查询 信息, 节点可以发出查询某内容的请求消息, 该请求包括要查询的栏目、 以 及与要从系统查找信息关联的关键词列表。 发出查询请求的节点 (即请求节 点) 通过查询本地保存的栏目表 54 中的栏目, 可以对该栏目关联的代理节 点进行定位, 并将请求消息发送给该栏目关联的代理节点。 代理节点接收查 询请求, 从代理节点的内容索引表中查询与关键词列表中的关键词相匹配的 信息,将查询到的结果, 即存储有该关键词内容的节点信息发送给请求节点。 优选地, 接收到查询请求的代理节点可以查询它的内容索引表 59A 中 匹配该查询关键词的信息, 并返回查询结果给请求节点。 查询结果可以包括 一个存储了满足查询条件信息的节点列表。 下面结合图 5及图 6, 举例说明搜索属于栏目 CA中的 KL信息的详细 处理过程:
1、 请求节点 Nx (如图 5中边缘节点 53A )通过查找其栏目表, 查找到 栏目 CA的 4 理节点; 2、假设栏目 CA的代理节点是 Ny (如图 5中代理节点 53E), 则节点 Nx 就与节点 Ny建立通信, 发起查询属于栏目 CA的 KL请求消息;
3、 如果节点 Ny在线 (或存活的), 并且是栏目 CA的正确节点, 则节 点 Ny通过从 Nx接收到的请求消息中的关键词 KL, 搜索它的内容索引表, 并且将搜索结果返回给节点 Nx; 4、 如果节点 Ny不是正确的代理节点, 则 Ny按照由它维护的栏目表返 回代理节点 (如图 5中代理节点 53F)的正确地址。如果 Ny的栏目表信息比起 Nx的栏目表信息是更新的, 则 Nx的更新它的栏目表, 并重复步骤 4;
5、 如果节点 Ny 离线或故障等, 则 Nx联系它的父节点 Nz。 如果 Nz 不能发现栏目 CA的代理节点, 则 Nx联系 Nz的父节点, 直到 Nx联系到中 心节点。 如果中心节点还不能确定栏目 CA的代理节点或者中心节点离线, 则以泛洪的方式查询该集群中的每一个节点,以确定包含属于栏目 CA的 KL 的节点。 在上述步骤 1-5操作期间,一旦栏目 CA的代理节点接收到查询请求消 息, 则代理节点在本地执行查询, 并且根据叠加链路列表查找在另一个集群 中的栏目 CA的代理节点, 将该查询请求转发给包含在叠加链路列表中的相 应栏目叠加的代理节点。 当另一个代理节点接收转发的查询时, 检查并确定 是否第一次接收该查询, 如果是第一次接收该查询, 则本地执行查询; 否则 可以忽略该查询请求, 具体地, 可通过分布式哈希算法 (DHT ) 实现。 在上述搜索过程中,一个查询请求仅需要在与查询相关的栏目叠加内传 送查询请求,这与现有技术中以泛洪的方式向所有节点查询相比, 更加有效。 假设集群的个数为 N, 则每个栏目泛洪最多包含 N个对等节点, 因此, 一个 查询请求仅在它的栏目叠加相关的代理节点之间传送, 与该查询请求联系的 节点数量非常少, 查询速度快。 例如, 一个用户希望找到某个国家歌手的音 乐作品的文件, 与该用户相关的节点可以发送查询 "国家" 栏目的请求, 该 查询请求包括歌手姓名或歌名的关键词列表, 通过代理节点可以返回存储与 该查询相匹配的节点的地址。 请求节点还可以利用栏目叠加搜索来确定存储某文件的段的节点。 例 如, 如果所请求文件的段是第 N个段 (Nth ), 则请求节点可以确定与该文件 第 N个段关联的代理节点,从而发送查询请求到含有第 N个段栏目的代理节 点,代理节点搜索并返回一个或多个存储了所请求文件第 N个段的节点列表。 通过图 4-图 6实施例,对本发明实施例服务重定向系统的结构作了详细 说明, 但有以下几点需要说明:
1. 当创建一个新的集群时, 该集群最初的中心节点就是该新集群所有 栏目的代理节点。 随着其它节点加入新集群, 中心节点可以将某些栏目迁移 到其它节点,这些其它节点可以再次将栏目迁移到另一些其它的节点。例如, 在一个集群内的任何代理节点可以迁移它的某些栏目到新加入的且是该代理 节点的子节点的节点中。 如果代理节点的负荷较重, 则可以将某些栏目迁移 到其它节点中去。
2. 如果集群中的代理节点已迁移一个或多个栏目给某些其它的代理节 点, 则由该集群的代理节点所维护的栏目表需要更新。 起初, 只有迁移出栏 目的代理节点和栏目所迁移到的节点具有所迁移栏目的当前代理节点的最新 信息。 周期性地上报可以解决栏目表需要更新的问题。 每一个加入的节点可 以周期性地发送栏目更新报告给一个或多个所随机选择的相邻的节点。 栏目 更新报告可以包括 N条最新信息 (或者栏目迁移报告事件;), 以及任意 M条 栏目表的实体。 一旦接收到栏目更新报告, 则接收节点基于栏目更新报告里 的时间 来更新栏目表。
3. 当一个节点与系统共享信息时, 通过查找栏目表中与这个信息匹配 的栏目, 可以确定合适的代理节点, 从而, 该节点与该代理节点进行消息通 信。 共享信息可以包括一个栏目、 与该信息相关联的一个关键词列表等, 并 且, 可以告知代理节点所分配的栏目信息其它节点也可以进行访问。 代理节 点一旦接收到通信的消息, 可以存储关键词列表, 以及在内容索引表存储节 点的地址。
4. 在某些具体情况下, 可以由用户对应的节点选择栏目和关键词。 用 户可以从预定义栏目列表中选择栏目, 并且可以选择描述栏目内容的多个关 键词。 关键词的数量可以是 1个或者大于 1个。 图 7为根据本发明实施例的服务重定向方法的流程图。 如图 7所示, 包 括以下处理过程: 步骤 S72: 获取内容请求消息, 其中, 所述内容请求消息用于请求下载 /下拉内容; 步骤 S74: 确定存储内容的各个段的一个或多个节点; 步骤 S76: 从确定的一个或多个节点下载 /下拉内容的各个段; 步骤 S78: 根据内容的各个段获得完整的内容数据。 为了理解本实施例, 可以结合系统实施例对该实施例进行说明, 图 7 实施例中, 才艮据用户获取某文件内容对应的请求消息, 如 IPTV请求, 从中 心节点、 区域中心节点或代理节点的确定存储内容的各个段的一个或多个节 点, 例如从代理节点的内容索引表获得存储该内容的节点及节点对应地址, 发送请求消息的请求节点即可从确定的一个或多个节点下载 /下拉内容的各 个段, 最后根据内容的各个段获得完整的内容数据。 本实施例的服务重定向方法用于提供下载 /下拉媒体数据。 本实施例可 以被用作下拉到接收节点的媒体内容, 媒体内容可以由多个段所组成, 这些 段被存储在网络的节点上。 节点根据接收到的请求消息, 可以搜索存储用户 所请求内容的节点, 优选地, 将确定的存储用户所请求内容的各个段的一个 或多个节点组成节点列表, 从节点列表中下载用户所请求的内容。 支设一个段包含 N个块 { B l , B2, ··· , BM }, 并且已确定 M个存储段 的节点 (简称为存储节点), 记为 { PI , P2 , ··· , PM } 来提供段。 假设每一 个存储节点的带宽是 { Bwl , Bw 2, ··· , Bw M }, 其中, 带宽之和应该至少 等于 Br (视频播放的位速率)。调度方式解决如何从 M个存储节点下载该段, 以使该段的各个块到接收节点具有较小的初始緩冲时间, 以及尽可能早地下 载每一个块。 图 7实施例步骤 S76中从确定的一个或多个节点下载 /下拉内容的各个 段(本文简称为调度方式), 可以通过以下 3种方式来实现:
( 1 )基于循环 (round robin, 简称为 RR ) 法分配数据块 在循环法中, 将已确定的存储段的节点 (简称为存储节点) 编号成 1、 2 M。 按照从 1到 M的顺序, 从各个存储节点下载 /下拉数据块。 循环 法下载 /下拉数据块的方式通过为每一个存储节点分配相同的块数,将各个存 储节点同等对待, 不论每一个存储节点对流媒体会话可以捐献出多少带宽。 图 7A为应用根据本发明实施例的服务重定向方法实现基于循环法下载 /下拉数据块的分配顺序示意图。 图 7A 示出了利用 RR 法从 3 个存储节点 (P1〜P3)下载 /下拉 8 个大小相等的数据块 (B 1〜B8 ) 的一个具体实例。 假设 播放速度 Br是 512kbps, 并且每个块含有 1秒钟播放时间的视频内容。 假设 存储节点 P1的带宽是 320kbps ( 5/8 X Br ), P2带宽是 128kbps ( 1/4 x Br ), Ρ3的带宽是 64kbps ( 1/8 χ Br )。 釆用 RR法, 则下载 /下拉所有 8个数据块需 要消耗 16秒钟的时间。
( 2 )基于带宽匹配( Bandwidth Proportional , 简称为 BP )下载 /下拉数 据块 在 BP法中, 分配给每一个存储节点的块数与该节点的带宽成比例。 在 BP法中, 为存储节点 Pi分配下载 /下拉 Bwi/Br个数据块, 其中, Bwi为节点 i的带宽, Br为播放速度。 BP 法下载 /下拉数据块的方法可以充分利用各个 存储节点的带宽。
图 7B 为应用才艮据本发明实施例的服务重定向方法实现基于带宽下载 / 下拉数据块的分配顺序示意图。 图 7B 示出了利用 BP 法从 3 个存储节点 (P1-P3) 下载 /下拉 8个大小相等的数据块 (B1〜B8 ) 的一个具体实例。 与图 7A类似, 同样^ i设播放速度 Br是 512kbps, 并且每个块含有 1秒钟播放时 间的视频内容。 假设存储节点 P1 的带宽是 320kbps ( 5/8 X Br ), P2 带宽是 128kbps ( 1/4 Br ), Ρ3 的带宽是 64kbps ( 1/8 χ Br )。 釆用 BP法, 则下载 / 下拉所有 8个数据块需要消耗 8秒钟的时间。 BP法可以有效利用各个存储节 点的带宽, 但从图 7B 可看出, 起始的若干个数据块被分配给一个节点, 仅 利用一个节点的带宽来下载 /下拉起始的若干个数据块。如果想要緩存起始的 若干个数据块,则緩存这些起始的若干个数据块耗费的时间可能比下载 /下拉 起始若干个数据块的时间要长。
( 3 )基于多源法下载 /下拉数据块 多源法是釆用多源调度 ( Multi- Source Scheduling, 简称为 MSS ) 的方 法, 这种方式结合了 RR和 BP的优点, 主要过程为: 以 RR方式夸一个段的 数据块分配给存储节点, 在每一个循环里, 节点被分配的数据块的数目与该 节点的带宽成比例。 在 MSS法中, 存储节点可以按照带宽 Bw降序的方式分类。 個没一个 存储节点 Pi开始发送当前数据块的最早时间是 Ti。 如果存储节点 Pi还没有 发送数据块, 则 Ti就是当前时间; 如果存储节点已经发送了多个数据块, 则 Ti就是存储节点完成发送数据块的时间。 Ti的初始值被设置为 0。 要下载 /下拉的段的数据块以数据块编号的顺序被分配给存储节点, 以 第一个数据块 开始。 为了分配当前的数据块 Bcum:nt, 接收节点可以首先计 算该块从每一个存储节点下载完成时间的估计值。 优选地, 可以通过下面的 公式计算完成时间的估计值: Tfmis ( i ) ( 3 )
Figure imgf000023_0001
其中, TfmisW l )是对于存储节点 Pi完成时间的估计值, Size是当前块 Bcurrent 的大小。 才艮据各存储节点下载完成时间的估计值, 确认具有最小完成时间的 估计值的存储节点, 将当前的块分配给具有最小完成时间的估计值的那个存 储节点。 已选择的存储节点的下载完成时间就被设置等于 Tfmish ( 1 ), 分配过程 以当前数据块的顺序一直重复进行, 直到当前段的最后一个块被分配给存储 节点。
MSS 法基于对当前块的完成时间的估计值来分配提供块的存储节点。 具有最小完成时间估计值的节点将当前数据块交付给用户终端。 MSS法保证 所分配的存储节点与其能提供的带宽成正比。 当接收了前面的块之后, 接收 节点将尽可能快地下载下一个块。 图 7C为应用根据本发明实施例的服务重定向方法实现基于多源法下载 /下拉数据块的分配顺序示意图。 图 7C示出了利用 MSS法从 3个存储节点 (P1〜P3)下载 /下拉 8 个大小相等的数据块 (B 1〜B8 ) 的一个具体实例。 与图 7A和图 7B类似, 同样^ i设播放速度 Br是 512kbps , 并且每个块含有 1秒钟 播放时间的视频内容。 假设存储节点 P1的带宽是 320kbps ( 5/8 X Br ), P2带 宽是 128kbps ( 1/4 Br ), P3的带宽是 64kbps ( 1/8 χ Br )。 釆用 MSS法, 则 下载 /下拉所有 8个数据块需要消耗 8秒钟的时间。 通过图 7A-图 7C可对 RR法、 BP法和 MSS法进行比较。 从图 7A-图 7C可知, 釆用 RR法, 8个块的交付花费 16秒的时间, 而釆用 BP和 MSS 完成相同的块的交付却仅花费 8秒的时间。 BP法和 MSS法在完成交付起始 的几个块的时间是不同的, 如果起始緩冲块的数量为 3块, 则 RR法需要花 费 8秒的时间完成 3个块的交付。通过比较, 利用 BP法需要花费 4.8秒完成 此 3块的交付, 而利用 MSS法仅需要花费 4秒时间。 图 7A-图 7C通过比较 RR、 BP和 MSS三种调度方式充分说明可以花费较少的时间下载各个块, 而 且获得较小的初始緩冲时间。 当下拉某文件第 1个段的过程中,接收节点可以同时下拉第 2个段和后 续各个段。 一直到一个完整的文件被下拉到接收节点。 上述服务重定向方法实施例中, 当一个节点(一个接收节点)请求下载 系统中的某内容文件时, 接收节点通过代理节点确定存储该内容文件的起始 段的节点列表。 当接收节点准备下载 /下拉所期待媒体内容的其余段时, 起始 段已从一个或多个节点中下载 /下拉下来。 接收节点可以运用图 7A-图 7C所 示的调度方式来计算已选择的存储节点的带宽, 以及按照类似 MSS 的调度 方式从起始段开始下拉数据内容到接收节点中。 在接收节点请求的某内容文件不能被提供的情况下, 会返回被拒绝 IPTV请求消息。 通常, 请求被拒绝的情况会有以下几种:
1、 没有查找到所有的段, 或者根本没有发现希望请求的内容;
2、 存储内容的节点没有足够的带宽来传输媒体流。 在上述服务重定向方法的实施例中, 还提供了一种栏目叠加 ( Category
Overlay ) 的搜索方法。 运用此搜索方法进行服务重定向, 能够为一个 IPTV 会话 ( streaming session )定位所请求的媒体段。 栏目叠加的搜索方法在流媒 体会话期间运用, 不需要在媒体播放之前完成所请求的全部段的下载。 优选 地, 可以将视频文件的段进一步地分成多个块, 这样会有助于并行接收来自 不同存储节点的一个段的不同的部分, 也有助于累加来自不同存储节点的上 行带宽。 在一个流媒体会话期间, 多个存储节点支持一个 IPTV请求, 为了 有效地利用各个不同存储节点累加的上行带宽, 可以使用 MSS 方法来选择 存储节点和一个段的各个块的分配顺序,并且还可以协调各个存储节点下载 / 下拉来保证及时地月艮务一个 IPTV请求。 通过上述实施例, 可以将栏目叠加搜索方法应用到基于集群的 P2P 技 术的 P2P叠加的无结构网络上, 该结构允许搜索所产生的流量与系统维护相 互分离。 当执行栏目叠加搜索时,可以限制执行此搜索所产生的消息的数量, 具体地, 可以按照栏目和集群 /区域进行分类搜索, 并且, 还可以通过隔离搜 索和索引的流量。 在某些情况下, 当前请求或检索的内容可以包括元数据 ( Metadata )。 例如, 该元数据可以确认一个对应于某个场景的视频文件的各个段, 并且, 元数据可以包括与段信息内容相关的较详细的信息, 从而便于准确地确定具 体的某个段。 例如, 对于一个视频文件来说, 通过元数据可以确定某一个男 演员或者女演员主演的那个段, 有助于用户进行观看, 提高用户体验。 元数 据允许对内容进行智能搜索, 在实际应用中, 元数据可以被包括在一个或者 多个内容的起始段中, 使得可以由接收节点的播放装置立即获得和使用元数 据。 通过搜索元数据, 能够准确地确定期待的场景开始播放的段, 并且播放 装置也可以被配置播放内容使其能够提供快进或回退到某一个特别的逻辑场 景, 以及后续定位、 緩存以及在已确定的段处开始播放。 图 8 为应用根据本发明实施例的服务重定向方法实现利用累加带宽将 数据传输给用户的示意图。 如图 8所示, 支设接收节点 P6想观看一段视频, 其播放速率是 500kbps。 在进行视频收看时, 接收节点 P6搜索到视频的段 # 0, 并且搜索到节点 Pl、 P2、 P3 包括段 # 0, 此时, 接收节点 P6 可以选择 Pl、 P2、 P3作为提供段 # 0的节点, 并计算 Pl、 P2、 P3下拉段 # 0的带宽。 同样, 从 P3、 P4下拉段 # 1 ; 从 P4、 P5下拉段 # 2。 在流会话结束之后, 接 收节点 P6 可以在它所提供的存储空间里緩存下拉的各个段, 这样, 基于所 存储的段, 接收节点 P6就可以为其它节点提供内容服务。 一旦接收节点产生了下载媒体文件段的请求时,接收节点就可以发送调 度命令给已选择提供媒体内容服务的存储节点; 当存储节点接收到该调度命 令时, 可以发送调度中分配的块到接收节点 (或用户终端)。 图 9 为应用根据本发明实施例的服务重定向方法实现利用循环法将数 据块传输给用户的示意图。如图 9所示,接收节点可以维护一个环形緩存 90。 一旦接收节点内的接收装置 92 从存储节点接收到分块, 接收节点就可以将 该块插入到环形緩存 90中的正确位置, 并通过播放装置 94播放。 环形緩存 90的大小可以表示成0^111^ 1^11^ 1311^—8126是, 其中, a buff是一个参数, 且 a buff > 1 , Nsche表示调度的数据块的数量, blk Size表示一个数据块的大小。 为了能够适应流媒体包的延迟或者某个节点离开系统或故障,在媒体文 件开始播放之前, 接收节点应当至少可以緩存 SmitBuff (初始緩存) 个块。 在 初始緩存时间之后, 接收节点可以连续不断地从环形緩冲 90 中读取媒体数 据和播放媒体文件。 优选地, 在流会话期间, 接收节点可以监视环形緩存 90的状态, 并对 已接收的块进行跟踪。 在已接收的块被调度去播放之前, 每一个块至少接收 一定的设定时间(记为 Tadv秒)。 如果块没有接收该设定的时间, 则块可以被 确定为已 "丢失", 因此, 接收节点可以向相应的节点发送请求重发所丢失的 块, 从而保证了传输的质量和准确性。 在上述实施例的服务重定向方法的执行过程的一个流会话期间,在某个 节点离开了服务重定向系统、 或者故障、 或者从某个或多个节点输入的流速 率由于网络拥塞而变慢的情况下, 可以选择该节点的替代节点。 具体地, 可 以预设一接收速率的最小值, 对于接收速率小于该最小值或者脱离系统的一 个或多个节点(也可以简称为失效节点), 为其选择替代节点, 并从选择的替 代节点下载 /下拉失效节点存储的段和 /或块。 例如, 接收节点可以从所请求 段的节点里选择一个或多个替代的节点。 在具体实现时,如果某个节点在一个流媒体会话期间发生故障或离开了 系统, 则接收节点可以选择另一个节点来替换已离开 /故障的节点。 接收节点 可以产生一个由还没有接收块的新节点组成的流交付调度。 接收节点发送修 改后的调度 (即当前接收块从哪几个节点接收) 给替代节点, 一旦选择替代 的新节点接收到已爹改的调度, 则新节点可以按照调度里所说明的顺序发送 所分配的块给接收节点, 为描述简单, 可以将这个过程称为 "提供者切换"。 在流会话期间, 接收节点 (或用户终端) 可以监视从各个存储节点接收的内 容的速率, 如果接收节点检测到从某一存储节点正在输出的媒体流的速率已 经下降了一段时间, 或者已报告或检测到该存储节点离开或故障, 则接收节 点可以执行上述的提供者切换处理。 优选地, 考虑到接收节点发生提供者切换时, 可能出现总带宽小于所要 求的播放速率、 以及接收节点的緩存为空的现象, 在设置 SmitBuff (初始緩存) 时, 初始緩存可以被选择成足够大使得即使发生提供者切换的现象也能够继 续播放而没有中断。 本发明上述各实施例所提供的方法和系统支持在较大范围的节点中搜 索共享信息。 服务重定向的功能能够分布在许多节点上, 最大可多到栏目数 量与系统内集群数量之积的程度。 对于系统的维护, 例如, 内容索引, 自动 地合并新节点或处理节点的离开, 也可以是分布在许多节点上进行。 本发明实施例的服务重定向方法,能够运用网络中的节点的上行带宽小 于它的下行带宽的情形 (例如, ADSL )。 例如: 单个节点上载数据的速率相 对较低, 而从多个节点下拉 /下载数据到接收节点的速率则相对较高。 本发明上述各实施例所提供的内容发布方法和服务重定向方法,可以对 IPTV系统进行扩展, 运用到系统以外的装置。 例如, 可以将内容交付给私人 数字助理 ( Personal Digital Assistant, PDA ), 手机等, 具体地, 可以通过 4弋 理 (Proxy ) 节点作为接收节点来实现, 代理节点从系统节点下载 /下拉内容 后, 可以自身进行播放, 还可以将下载的内容转发给其它装置设备(例如, 手机)。 图 10为才艮据本发明实施例的服务重定向系统应用于 P2P技术的 IPTV 系统的扩展结构示意图。 图 10示出了包括代理节点 10的系统 10A。 代理节 点 10与其它节点 12通信来接收内容数据, 通过通信链路 14A, 代理节点 10 也与非加入系统 10A的节点 100进行相互通信,通信链路 14A可以包括无线 连接。 代理节点 10与系统 10A的其余部分交互, 并且经过通信链路 14A, 转发所接收的内容数据给节点 100。 如图 10所示, 节点 100具体可以为通常 使用的手机, 手机用户能够搜索系统 10A中的视频, 然后, 在手机上播放视 频。 在某些具体情况下, 可以在代理节点 10 进行转码来降低内容数据的速 率使得适应节点 100和 /或通信链路 14A。具体进行服务重定向和内容发布可 参看图 1-图 9各实施例的相关说明, 在此不对相同或相似的内容重复描述。 上述系统实施例中的 IPTV系统, 方便扩展, 并能够在节点之间提供较 好的负载平衡。 在系统实施例中, 可以不设置能够独立地处理这个系统所有 搜索业务的 "超级节点" (super node )。 在上述系统实施例中, 可以以两种方式进行关联: 一方面, 节点被关联 到集群。 如: 确定哪个节点是哪个集群的代理节点等维护任务, 可以釆用集 群的拓朴结构来关联; 另一方面, 在栏目叠加中关联代理节点, 例如: 月艮务 重定向节点的搜索任务, 可以釆用相应的栏目叠加拓朴进行管理。 综上所述, 本发明各实施例所提供的内容发布方法、服务重定向方法及 系统、 节点设备, 将内容分成若干段, 并发布到不同的多个存储节点上, 可 以分別从多个节点响应用户的请求, 可有效提高 IPTV 系统的可扩展性, 完 成 IPTV媒体服务定向等功能。 上述各实施例还可以基于 P2P网络模型, 提 供大规模而有效的关键词搜索业务, 有效缩短服务重定位的时间。 以上所述仅为本发明的优选实施例而已, 并不用于限制本发明, 对于本 领域的技术人员来说, 本发明可以有各种更改和变^^ 凡在本发明的^^申和 原则之内, 所作的任何修改、 等同替换、 改进等, 均应包含在本发明的保护 范围之内。

Claims

权 利 要 求 书 一种内容发布方法, 应用于 IPTV系统, 其特征在于, 包括: 将待发布的内容分成多个段;
对于每个段, 确定用于存储所述段的一个或多个节点;
将所述段发布给存储所述段的所述一个或多个节点。 根据权利要求 1所述的方法, 其特征在于, 所述将待发布的内容分成多 个段的操作具体包括:
将所述待发布的内容分成多个相同或不同的段,每个所述段都包含 大小可调整和 /或配置的多个块。 才艮据权利要求 1所述的方法, 其特征在于, 通过以下节点信息中的至少 之一确定用于存储所述段的一个或多个节点:
节点可利用的带宽、 节点的稳定性、 节点可利用的存储空间、 节点 的利用频率。 根据权利要求 3所述的方法, 其特征在于, 还包括:
周期性地获取节点发送的报告消息,所述报告消息中携带有所述节 点信息。 根据权利要求 1-4 中任一项所述的方法, 其特征在于, 根据以下信息确 定存储所述段的节点:
Figure imgf000028_0001
其中, Gsti表示节点 i的优度检验值,
EstimatedStayi(new)= α χ EstimatedStayi(prev) + (3 x CurrentStayi; EstimatedStayi(new)表示节点的稳、定' 1·生, CurrentStayi为节点 i力口入 系统的持续时间或无故障持续时间的时间长度, EstimatedStayi(prev)为 EstimatedStay,的历史值, α和 (3为权重因子, 且 α + (3 = 1; BWl为节点 i 可利用的带宽; R age为节点 i 加入系统所捐献带宽的平均利用率, Fre86"6,为节点 i在预定周期内处理 IPTV请求的频率;
其中, a st、 (3 St、 γ st为权重因子, m为力 p入 IPTV系统的节点的 数量。
6. 根据权利要求 5所述的方法, 其特征在于, 确定用于存储所述段的一个 或多个节点的操作具体包括:
获取每个节点对应的优度检验值 Gst; 选择大于或大于等于预设值的优度检验值,将超过所述预设值的优 度检验值对应的节点作为存储所述段的节点。
7. 根据权利要求 6所述的方法, 其特征在于, 将所述段发布给存储所述段 的所述一个或多个节点的操作通过以下方式进行:
按照确定用于存储所述段的一个或多个节点的优度检验值高低,将 所述段分別发布给所述一个或多个节点。
8. 一种 艮务重定向的方法, 其特征在于, 包括:
获取内容请求消息, 其中, 所述内容请求消息用于请求下载 /下拉 内容;
确定存储所述内容的各个段的一个或多个节点;
从所述一个或多个节点下载 /下拉所述内容的各个段; 根据所述内容的各个段获得完整的内容。
9. 根据权利要求 8所述的方法, 其特征在于, 在所述确定存储所述内容的 各个段的一个或多个节点的操作之后, 进一步包括:
将确定的所述一个或多个节点的节点标识添加到下载 /下拉所述内 容的节点列表。
10. 根据权利要求 8所述的方法, 其特征在于, 确定存储所述内容的各个段 的一个或多个节点的操作之后, 还包括: 向所述一个或多个节点分配下载 /下拉的数据块, 具体可通过以下 方式至少之一进行:
按照节点顺序循环从所述一个或多个节点下载 /下拉所述段或所述 段中的一个 /多个所述块, 其中, 每个节点在每个循环中被分配的所述段 或所述块相同, 或者被分配的所述段或所述块与该节点的带宽成比例; 才艮据存储所述段的所述一个或多个节点的带宽,从所述一个或多个 节点下载 /下拉每一个所述段或所述段中的一个 /多个所述块。
11. 才艮据权利要求 8所述的方法, 其特征在于, 从所述一个或多个节点下载 / 下拉所述内容的各个段的操作的执行方式包括以下至少之一: 利用累加带宽下载 /下拉所述内容的各个段;
将下载 /下拉的所述内容的各个段写入预设的环形緩存, 所述环形 緩存预设有各个段和 /或每个段的一个或多个块的对应位置, 其中, 所述 每个段都包含大小可调整和 /或配置的多个块。
12. 根据权利要求 8-11中任一项所述的方法, 其特征在于, 还包括:
对于接收速率小于预设值的一个或多个失效节点,为其选择替代节 点, 并从所述替代节点下载 /下拉对应的失效节点存储的段和 /或块。
13. 一种服务重定向系统, 其特征在于, 包括一个或多个集群, 并且每个所 述集群都包括:
中心节点, 用于保存所有待发布的内容, 并发布内容; 具有层级结构的一个或多个下属节点, 直接连接到所述中心节点, 或者连接到所述下属节点的上级节点, 用于存储系统发布的内容的各个 段, 并在接收到下载 /下拉内容对应的请求消息时, 确定下载 /下拉内容的 一个或多个节点, 从所述确定的一个或多个节点下载 /下拉所述内容的各 个段。
14. 根据权利要求 13所述的系统, 其特征在于, 所述中心节点与所述下属节 点形成树形拓朴结构或网状拓朴结构。
15. 根据权利要求 13或 14所述的系统, 其特征在于, 所述各个节点均包括: 栏目表, 用于存储各个栏目与所属集群的代理节点的映射关系, 所 述栏目为将所有内容分类的目录信息, 所述代理节点用于对包含所述栏 目中的一类或多类目录内容的节点进行维护和管理;
存储模块, 用于存储本地保存的内容的段;
链路模块, 用于存储到其他节点的链路。
16. 根据权利要求 15所述的系统, 其特征在于, 所述节点为代理节点, 还包 括:
内容索引表,用于维护存储内容的节点、以及节点对应的地址信息; 叠加链路表,用于存储一个或多个在其它集群中具有相同栏目的代 理节点的地址信息; 其中, 所述栏目为将所有内容分类的目录信息。
17. 一种节点设备, 其特征在于, 包括:
栏目表, 用于存储各个栏目与所属集群的代理节点的映射关系, 所 述栏目为将所有内容分类的目录信息, 所述代理节点用于对包含所述栏 目中的一类或多类目录内容的节点进行维护和管理;
存储模块, 用于存储本地保存的内容的段;
链路模块, 用于存储到其他节点的链路。
18. 4艮据权利要求 17所述的节点设备, 其特征在于, 还包括:
内容索引表,用于维护存储内容的节点、以及节点对应的地址信息; 叠加链路表,用于存储一个或多个在其它集群中具有相同栏目的代 理节点的地址信息; 其中, 所述栏目为将所有内容分类的目录信息。
19. 根据权利要求 17或 18所述的节点设备, 其特征在于, 所述链路模块包 括:
父链路子模块, 用于存储到上级节点的链路;
子链路子模块, 用于存储到下级节点的链路。
PCT/CN2008/073616 2008-05-30 2008-12-19 内容发布方法、服务重定向方法及系统、节点设备 Ceased WO2009143686A1 (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
EP08874451.1A EP2290912A4 (en) 2008-05-30 2008-12-19 CONTENT DISTRIBUTION METHOD, SERVICE PROCESS AND SYSTEM AND NODE DEVICE

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN200810110325.X 2008-05-30
CN200810110325.XA CN101594292A (zh) 2008-05-30 2008-05-30 内容发布方法、服务重定向方法及系统、节点设备

Publications (1)

Publication Number Publication Date
WO2009143686A1 true WO2009143686A1 (zh) 2009-12-03

Family

ID=41376562

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2008/073616 Ceased WO2009143686A1 (zh) 2008-05-30 2008-12-19 内容发布方法、服务重定向方法及系统、节点设备

Country Status (3)

Country Link
EP (1) EP2290912A4 (zh)
CN (1) CN101594292A (zh)
WO (1) WO2009143686A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107707519A (zh) * 2017-07-10 2018-02-16 贵州白山云科技有限公司 一种流媒体传输方法、装置和系统
CN115695560A (zh) * 2021-07-23 2023-02-03 伊姆西Ip控股有限责任公司 内容分发方法、电子设备和计算机程序产品
CN119030855A (zh) * 2024-09-03 2024-11-26 济南浪潮数据技术有限公司 基于网元探测机制的流量引流方法及相关组件

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120117240A1 (en) * 2010-11-05 2012-05-10 Verizon Patent And Licensing Inc. Systems and methods for allocating network bandwidth
CN102196297B (zh) * 2011-03-24 2014-03-26 东莞中山大学研究院 一种多服务器视频点播资源的聚类处理方法
CN102395047A (zh) * 2011-10-25 2012-03-28 深圳市同洲电子股份有限公司 删除内容发布网络节点中多媒体内容的方法及设备
CN102609278B (zh) * 2011-12-06 2015-07-08 北京航空航天大学 软件分发方法和装置
CN103166851B (zh) * 2011-12-16 2016-06-15 中国电信股份有限公司 互联网信息的传送处理方法与系统
CN102761550B (zh) * 2012-07-04 2015-09-23 青岛海信传媒网络技术有限公司 实现流媒体服务的方法、装置及系统
CN102802053A (zh) * 2012-07-23 2012-11-28 深圳市融创天下科技股份有限公司 一种音视频文件转码集群调度方法及装置
CN102833581B (zh) * 2012-08-27 2015-09-16 中兴通讯股份有限公司 内容管理的方法和系统
CN103312795B (zh) * 2013-05-31 2016-12-28 合一网络技术(北京)有限公司 一种p2p系统中种子分发方法和装置
US10148783B2 (en) 2014-12-18 2018-12-04 Telefonaktiebolaget Lm Ericsson (Publ) Method and content management module for managing content in a content distribution network
WO2017035789A1 (zh) * 2015-09-01 2017-03-09 深圳好视网络科技有限公司 一种数据传输方法及系统
CN105553685B (zh) * 2015-10-13 2019-06-28 福州开发区慧聚通信技术有限公司 一种监控网络设备是否在线的系统和方法
CN107277561A (zh) * 2016-04-08 2017-10-20 北京优朋普乐科技有限公司 内容分发网络
CN106713468B (zh) * 2016-12-29 2018-11-20 深圳云天励飞技术有限公司 一种分布式集群服务系统及其节点协同方法
CN109819285B (zh) * 2017-11-21 2021-09-21 北京乐我无限科技有限责任公司 一种直播方法、装置、电子设备及存储介质
CN109246487B (zh) * 2018-08-17 2021-09-03 上海悠络客电子科技股份有限公司 一种智能调度系统
CN110971627B (zh) * 2018-09-28 2022-08-05 杭州海康威视数字技术股份有限公司 节点控制方法及装置、任务处理系统
CN109600683A (zh) * 2018-12-05 2019-04-09 深圳市网心科技有限公司 一种视频点播方法、装置及其相关设备
CN110191143B (zh) * 2018-12-13 2022-09-30 浙江宇视科技有限公司 一种资源发布方法、装置及系统
CN112565811B (zh) * 2020-12-07 2022-09-20 福建大屏网络科技有限公司 一种互联网电视去中心化边缘节点分发系统
CN113157207B (zh) * 2021-04-07 2022-03-08 橙色云互联网设计有限公司 一种数据处理方法、装置及存储介质
CN118890349A (zh) * 2024-08-01 2024-11-01 福建天晴在线互动科技有限公司 一种文件下载优化的方法与系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030204602A1 (en) * 2002-04-26 2003-10-30 Hudson Michael D. Mediated multi-source peer content delivery network architecture
US20060224760A1 (en) * 2005-03-15 2006-10-05 1000 Oaks Hu Lian Technology Development (Beijing) Co., Ltd. Method and system for providing streaming content in a peer-to-peer network with network coding
CN101136911A (zh) * 2006-08-31 2008-03-05 腾讯科技(深圳)有限公司 一种采用p2p技术下载文件的方法和p2p下载系统
CN101155019A (zh) * 2006-09-25 2008-04-02 腾讯科技(深圳)有限公司 一种数据同步方法及流媒体发布源端、接收端和后台服务器

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070288638A1 (en) * 2006-04-03 2007-12-13 British Columbia, University Of Methods and distributed systems for data location and delivery

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030204602A1 (en) * 2002-04-26 2003-10-30 Hudson Michael D. Mediated multi-source peer content delivery network architecture
US20060224760A1 (en) * 2005-03-15 2006-10-05 1000 Oaks Hu Lian Technology Development (Beijing) Co., Ltd. Method and system for providing streaming content in a peer-to-peer network with network coding
CN101136911A (zh) * 2006-08-31 2008-03-05 腾讯科技(深圳)有限公司 一种采用p2p技术下载文件的方法和p2p下载系统
CN101155019A (zh) * 2006-09-25 2008-04-02 腾讯科技(深圳)有限公司 一种数据同步方法及流媒体发布源端、接收端和后台服务器

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP2290912A4 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107707519A (zh) * 2017-07-10 2018-02-16 贵州白山云科技有限公司 一种流媒体传输方法、装置和系统
CN115695560A (zh) * 2021-07-23 2023-02-03 伊姆西Ip控股有限责任公司 内容分发方法、电子设备和计算机程序产品
CN119030855A (zh) * 2024-09-03 2024-11-26 济南浪潮数据技术有限公司 基于网元探测机制的流量引流方法及相关组件

Also Published As

Publication number Publication date
EP2290912A4 (en) 2016-08-24
EP2290912A1 (en) 2011-03-02
CN101594292A (zh) 2009-12-02

Similar Documents

Publication Publication Date Title
WO2009143686A1 (zh) 内容发布方法、服务重定向方法及系统、节点设备
CN101472166B (zh) 一种内容缓存、查询方法及点对点媒体传输系统
US10212222B2 (en) Centrally coordinated peer assignment
US20070288638A1 (en) Methods and distributed systems for data location and delivery
US7644182B2 (en) Reconfiguring a multicast tree
CN101534205B (zh) 应用层组播网络维护方法、终端和系统
US9807163B1 (en) Data client
WO2010127618A1 (zh) 一种实现流媒体内容服务的系统和方法
WO2008148335A1 (en) A method for client node network topology construction and a system for stream media delivery
CN101610162A (zh) 一种基于对等存储网络提供内容的方法、系统和设备
CN101997891B (zh) 一种p2p媒体流分发的方法、装置及系统
WO2008034352A1 (en) A resource delivery method, system and edge server
WO2009155802A1 (zh) 选择服务提供实体的方法、系统、服务选择实体、服务管理实体
CN101631034A (zh) 对等网络中节点管理和接入方法、装置及系统
WO2010133140A1 (zh) 一种内容分片的多媒体网络及其业务方法
US20140025838A1 (en) System and method of streaming data over a distributed infrastructure
CN104822084B (zh) 基于并发流的p2p实时播放系统快速频道切换方法
CN108574666B (zh) 一种数据流调度方法、装置和系统
Shahabi et al. Decentralized resource management for a distributed continuous media server
CN101179705B (zh) 伙伴资源节点选择方法和装置
KR101830760B1 (ko) 지역 분산된 콘텐츠 노드에서 다중 콘텐츠 분배를 위한 오버레이 멀티캐스트 시스템 및 그 방법
WO2009135374A1 (zh) Iptv媒体交付系统、iptv媒体内容发布方法、及媒体交付系统
Zhang et al. Video on-demand streaming on the internet—a survey
Cai et al. Caching collaboration and cache allocation in peer-to-peer video systems
Bhattacharya et al. Coconet: Co-operative cache driven overlay network for p2p vod streaming

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 08874451

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

REEP Request for entry into the european phase

Ref document number: 2008874451

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 2008874451

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: A20101928

Country of ref document: BY