WO2008055519A1 - Procédé de fourniture de flux de données - Google Patents
Procédé de fourniture de flux de données Download PDFInfo
- Publication number
- WO2008055519A1 WO2008055519A1 PCT/EP2006/010645 EP2006010645W WO2008055519A1 WO 2008055519 A1 WO2008055519 A1 WO 2008055519A1 EP 2006010645 W EP2006010645 W EP 2006010645W WO 2008055519 A1 WO2008055519 A1 WO 2008055519A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- data
- supply
- user apparatus
- supply nodes
- data blocks
- Prior art date
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/61—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio
- H04L65/612—Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for unicast
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1001—Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
- H04L67/1004—Server selection for load balancing
- H04L67/1008—Server selection for load balancing based on parameters of servers, e.g. available memory or workload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1061—Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
- H04L67/1068—Discovery involving direct consultation or announcement among potential requesting and potential source peers
Definitions
- the present invention relates to methods of supplying streams of data via data communication networks to users, for example to methods of supplying streams of data via the Internet in a peer-to-peer manner to television display apparatus of users.
- the present invention also concerns software executable on computing hardware for implementing the methods.
- the present invention also concerns networks and system operable to execute the methods.
- Contemporary television broadcasting involves transmission of a program content signal on a carrier signal at ultra high frequency (UHF) or via one or more satellites at super high frequencies (SHF). More recently, provision of television services conveyed via optical fiber communication links, also known as "cable television", has become increasingly popular. Yet more recently, television services via mobile telephone, namely cell-phone, have been proposed and demonstrated in prototype form. Moreover, it is known that motion pictures and animated pictures can be provided from Internet web-sites, for example using contemporary software such as "Quick time" executable on users' computing hardware.
- a technical problem encountered when using data networks such as the Internet for providing real-time video is reliability of supply of video data streams from central servers to users, namely streaming video data from a central server source to users.
- Such reliability also known as “quality of service” (QoS)
- QoS quality of service
- Such reliability also known as “quality of service” (QoS)
- QoS quality of service
- features such as data buffers in user apparatus can be used to at least partially compensate for fluctuations or interruptions in data stream supply to users, such user apparatus buffers are not able to cope with unexpected failure or unavailability of the central servers.
- provision by data streaming of television services from central server sources via data communication networks such as the Internet to user apparatus has not yet been widely possible or found to function totally reliably.
- a technical problem, which the present invention seeks to address of improving reliability of data stream supply when providing video or similar program content via communication networks such as the Internet which are susceptible to suffering temporal fluctuations in data supply capacity.
- An object of the present invention is to provide a method of supplying streams of data which is susceptible to providing the data streams more reliably and without requiring the data streams to be directly provided from a central source.
- a method of supplying one or more streams of data via a data communication network to a user apparatus supplying one or more streams of data via a data communication network to a user apparatus
- the data communication network including a plurality of data supply nodes distributed therein,
- the method including steps of:
- the invention is of advantage in that the supply of data is susceptible to being more reliable because account is taken of data supply capacity of the one or more data supply nodes.
- the subset includes all the data supply nodes of the network. However, the subset more normally includes a portion of the data supply nodes of the network.
- the one or more data blocks are widely distributed within the network, a situation will often arise that there are more data supply nodes which are capable of supplying the one or more data blocks than needed to be invoked by the user apparatus.
- the function relates to supply of the one or more data blocks from the subset of the data supply nodes at least partially in proportion to said distribution.
- proportional supply is illustrated in following Tables 2 and 3.
- the method includes a step of including in the quota data an indication of a temporal sequence in which the one or more data blocks are to be supplied, the temporal sequence having the subset of the data supply nodes specified in frequency in response to their ability to supply the one or more data blocks.
- inclusion of such a temporal sequence assists with ensuring that data blocks are received in an order in which they are required for user-presentation, thereby avoiding having to employ large data buffers and execute considerable data rearrangement and manipulation.
- the method includes a step of similarly communicating the quota data to each of the subset of the data supply nodes, such that each data supply node in the subset also receives information regarding other of the subset of the data supply nodes requested to supply the one or more data blocks to the user apparatus.
- Distributing the quota data to all the data supply nodes involved potentially has a benefit in that the information is distributed amongst the supply nodes so that these supply nodes are aware of a timescale in which they are required to supply their one or more specified data blocks.
- the temporal sequence defines a start time from which the one or more data blocks are to be sent to the user apparatus, wherein the subset of the data supply nodes are operable to synchronize mutually independently to the start time, and the subset of the data supply nodes are operable to supply their one or more data blocks specified in the quota data substantially at times relative to the start time as specified in the quota data.
- the temporal sequence assists to ensure that the one or more data supply nodes are mutually substantially synchronized regarding their supply of data blocks to the user apparatus.
- the subset of the data supply nodes comprise in a range of 3 to 10 data supply nodes as specified in the quota data.
- a range represents an optimal compromise between reliability of data block supply to the user apparatus and keeping data control overheads to a manageable degree within the network.
- the one or more data packets are encoded with redundancy for at least one or:
- Such redundancy is of benefit in that it reduces a need to send request for data blocks to be resent in an event of partial loss of data during data transmission to the user apparatus.
- the one or more data blocks are encoded at the subset of the data supply nodes, and are subsequently decoded at the user apparatus. Encoding at the data supply nodes requires relatively little computing effort but nevertheless spreads computing effort required within the network.
- the one or more data blocks are Reed-Solomon encoded and the user apparatus is operable to apply Reed-Solomon decoding to the one or more data blocks received at said user apparatus.
- Such encoding and decoding has been found to be especially appropriate when implementing the present invention in practice.
- alternative forms of encoding and decoding can optionally be employed.
- the user apparatus includes a data buffer for at least one of: (a) buffering fluctuations in a rate of supply of the one or more data blocks from the subset of the data supply nodes; and (b) reordering a sequence of received data blocks in an event that the subset of the data supply nodes are operable to deviate from a sequence of data block supply as specified in the quota data.
- the user apparatus is operable to present: (g) a data supply interruption message to the user; and/or
- the user apparatus is operable to send a warning message to the data communication network in the event, the warning message being operable to prompt one or more searches in the network for identifying one or more alternative data supply nodes which are capable of providing data blocks corresponding to those not reliably received at the user apparatus.
- the interruption message and/or said program content corresponding to the substitute data blocks are presented to the user until the alternative data supply nodes are operable to supply the data blocks not hitherto reliably received.
- the data communication network is at least partially implemented via the Internet
- the one or more data blocks correspond to television-type program content
- the user apparatus corresponds to a television-type display apparatus.
- the one or more data blocks correspond to a request for program content executed by the user via the user apparatus to the data communication network.
- the one or more data blocks stored in the data supply nodes are previously propagated to the data supply nodes in a peer-to-peer manner. More optionally, in the method, one or more of the data blocks are stored in multiple copies within data supply nodes of the data communication network. Such multiple copies are of benefit when alternative data supply nodes are required in an event of an originally specified data supply node failing to supply its specified data blocks.
- a user apparatus adapted for operation with a data communication network configured to execute a method pursuant to the first aspect of the invention.
- a program-content supply system comprising at least one user apparatus and a data communication network operable to supply one or more data blocks to the user apparatus, the one or more data blocks including program content, wherein the system is configured to execute a method pursuant to the first aspect of the invention.
- a peer-to-peer digital television system comprising at least one television-type user apparatus and a data communication network based at least in part on the Internet, the system being operable to supply one or more data blocks to the user apparatus, the one or more data blocks including program content, wherein the system is configured to execute a method pursuant to the first aspect of the invention.
- a software product recorded on a data carrier, the software product being executable on computing hardware for implementing a method pursuant to the first aspect of the invention.
- Figure 1 is an illustration of a peer-to-peer data supply network operable pursuant to the present invention
- Figure 2 is an illustration of a hierarchy of data streams, data stream groups, data bundles, data packets and data fragments communicated in the network of Figure 1 ;
- Figure 3 is an illustration of encoding and decoding performed within the network of Figure 1 ;
- Figure 4 is an illustration of a method of providing a stream of data to a user apparatus of the network of Figure 1 ;
- Figure 5 is a further illustration of a method of selecting data supply nodes within the network of Figure 1 , for coping with variable node performance, node loss and node substitution.
- numerals when not underlined are linked by lines which identify features to which the numerals relate. Furthermore, numerals are linked by arrows when they are used to indicate a complete component part or system.
- the present invention relates to methods of supplying data streams via data communication networks to users' apparatus.
- the present invention is relevant to a technical problem of providing digital television-type services via the Internet to users' apparatus configured to present such television-type services.
- data blocks susceptible to form data streams are propagated in an indirect peer-to-peer manner to intermediate supply nodes distributed within the Internet or similar form of data communication network, and the data blocks are subsequently supplied from the supply nodes to users' apparatus to provide aforesaid television-type services.
- Such a manner of providing the data blocks to users' apparatus addresses a problem encountered in known cable-television systems involving data streaming directly from central servers; the present invention concerns central servers providing the data blocks in the aforesaid peer-to-peer manner to the supply nodes and thereby circumventing a need to stream data in real-time directly to users' apparatus.
- the aforementioned supply nodes can potentially be of mutually different data capacity and data supply speed which renders organizing supply of data blocks to users' apparatus whilst maintaining quality of service a potentially complex technical problem.
- the present invention addresses this complex technical problem by performing a sequence of steps as follows:
- STEP 1 a user identifies program content which the user is desirous to consume and instructs an associated user apparatus to send a first request message for the program content to a reference node of a data communication network such as the Internet; the reference node is conveniently referred to as being "a backend". However, the reference node optionally does not necessarily need to be the backend but can be node appointed specifically to respond to user enquiries for program content.
- the reference node responds to the first request message by sending a first response message to the user apparatus, wherein the first response message includes information concerning data blocks constituting the program content; the data blocks have beneficially been previously communicated in a peer-to-peer manner within the data communication network.
- the reference node is not able to control proliferation and storage locations of the data blocks within the communication network; the reference node is thereby not capable of providing the user apparatus in the first response message with information which is indicative of both data blocks required and their corresponding storage locations within the data communication network.
- STEP 2 on receipt of the first response message including information concerning data blocks constituting the program content, the user apparatus is operable to send to supply nodes of the data communication network a second request message for the data blocks.
- the supply nodes respond to the second request message by sending second response messages indicating which of the data blocks they are capable of supplying to the user apparatus together with their capacity to supply such data blocks thereto. For example, certain high-speed large-capacity data nodes are capable of providing many of the data blocks whereas other low-speed small-capacity nodes are capable of providing only relatively few of the data blocks.
- the user apparatus is operable, after sending the second request message, to wait for a defined wait period for receiving responses from the supply nodes.
- data blocks corresponding thereto are potentially propagated widely in a peer-to-peer manner within the network such that the user apparatus potentially would have to wait a relatively long period to receive responses from all supply nodes of the network which are capable of supplying the data blocks to the user apparatus.
- the user apparatus in order to provide a responsive service to the user, is configured to wait for the defined wait period which is of sufficient duration for the user apparatus to have normally received responses from enough supply nodes to ensure supply of all the data blocks required for presenting the desired program content to the user.
- STEP 3 on receipt of the second response messages, for example on expiration of the aforesaid wait period, the user apparatus performs a computation which allocates supply of the data blocks in a manner which takes into consideration capabilities of the supply nodes to provide the data blocks in a timely temporally-sequential manner to the user apparatus which does not involve the user node needing to store large amounts of data within its buffer and to reorganize sequences of such data blocks which are received in jumbled order.
- Such allocation of supply of data blocks is recorded in quota data which is then sent in a third request message to those supply nodes which the user apparatus chooses to supply the desired data blocks.
- the quota data defines an absolute time at which data block supply should be commenced, namely a start time t 0 , and times t n relative to the start time t 0 at which corresponding data blocks D n are required to be supplied to the user apparatus; n is an integer defining a position of an n ⁇ data block in a sequence of data blocks D.
- the supply nodes are all mutually referenced to an overall data communication network time clock t ref .
- the data supply nodes wait until the network time clock t ref corresponds to the start time t 0 at which data block supply is to be commenced and then transmit data blocks D n which they are instructed to supply in the quota data conveyed in the third request message when the network time clock t ref subsequently corresponds to t 0 + t n .
- the requested data blocks D n are received at the user apparatus substantially in an order in which they are to be presented to the user; however, occasionally the data blocks D n are received at the user apparatus in a jumbled order and need to be reordered pursuant to a sequence number included in each of the data blocks D n .
- the data blocks D n are beneficially received a short time period before they are required to be presented to the user for consumption.
- a need for a large buffer in the user apparatus is thereby avoided and the user is not kept waiting for receipt of all the data blocks before presentation of program content to the user is executed.
- the user apparatus is operable to present program content of earlier data blocks to the user concurrently whilst later data blocks are being received at the user apparatus.
- a data communication network denoted generally by 10; the network 10 is optionally implemented at least in part via the contemporary Internet.
- the network 10 includes several data supply nodes S1 to S8 which are operable to function in a peer-to-peer manner and form a peer-to-peer network denoted by 20.
- Data blocks D n are propagated from a central source 30, for example from one or more central servers coupled in communication with the peer-to-peer network 20; if required, such central source 30 is itself capable of functioning as a data supply node providing data blocks in a similar manner to the data supply nodes S1 to S8 in an event that a given data block has not yet been propagated within the network 20 and yet has been user-requested.
- the supply nodes S1 to S6 are operable to provide their respective data blocks, for example as denoted by an arrow 40, to a user apparatus denoted by 50.
- the data blocks D n supplied to the user apparatus 50 constitute a data stream denoted generally by 60.
- the data supply nodes S7 and S8 are potentially also capable of supplying data blocks D n but are not selected either because they did not respond within the aforesaid wait period or the data supply nodes S1 to S6 are already sufficient for ensuring a supply of desired data blocks D n to the user.
- the user apparatus 50 is susceptible to being implemented in several different ways.
- the user apparatus 50 is susceptible to being implemented as a personal computer including computing hardware and a screen display.
- the user apparatus 50 is susceptible to being implemented as a "black box" for connection to contemporary television apparatus, for example by way of retrofit or "add-on” device.
- the data stream 60 will now be elucidated in greater details with reference to Figure 2.
- the data stream 60 is described in the foregoing to include data blocks, its structure is more complex.
- the data stream 60 can comprise considerable data, for example several gigabytes in total.
- the data stream 60 prior to encoding is subdivided into stream groups 100, wherein each stream group beneficially comprises 32 Mbytes of data; for example, the stream 60 includes a "stream group 0" denoted by 110, a "stream group 16" denoted by 120, a "stream group 32" denoted by 130, and a "stream group n" denoted by 140.
- Each stream group 110, 120, 130, 140 includes several data bundles wherein each data bundle includes 256 kbytes of data; for example, the "stream group 16" denoted by 120 data includes “data bundle 16" denoted by 200 to "data bundle 17 denoted by 210 to "data bundle 31" denoted by 220 as illustrated.
- Each data bundle 200, 210, 220 is further subdivided into data packets wherein each data packet includes 64 kbytes of data; for example, the "data bundle 17" denoted by 210 includes a "data packet 17.1" denoted by 300, a "data packet 17.2" denoted by 310, and so forth to a "data packet 17.16" denoted by 320.
- each data packet 300, 310, 320 is further subdivided into data fragments each of 32 kbytes size; for example, the "data packet 17.2" denoted by 310 is subdivided by encoding into three fragments denoted by 400, 410, 420 when included in encoded form in the data stream 60.
- a Reed-Solomon encoding process is preferably employed.
- the data fragments for example the data fragments 400, 410, 420, are independently propagated within the network 10, for example stored within the peer-to-peer network 20.
- whether or not the data fragments are successfully received at the user apparatus 50 is an atomic event: either a fragment arrives completely or it does not arrive at all.
- each data fragment is an output of ECC encoding, for example Reed-Solomon (RS) decoding, which results in encoding redundancy but allows data omissions to be corrected at the user apparatus 50.
- ECC encoding for example Reed-Solomon (RS) decoding
- Other types of encoding are feasible which alternatively, or additionally, allow for data correction.
- the pre-encoded data packet 17.2 denoted by 310 and comprising 64 kbytes of data expands after encoding to 96 kbytes.
- a beneficial property of Reed-Solomon encoding is that only two of three encoded fragments of a corresponding data packet are required for reconstructing the data packet at the user apparatus 50; thus, the user apparatus 50 does not need in operation to request a resend of an encoded data packet unless 2 of 3 fragments of the data packet were lost during transmission in the network 10.
- a problem encountered in practical operation of the network 10 is that, despite a redundancy overhead of 50% provided by aforesaid encoding, a chance of three consecutive encoded data fragments being lost is significant, namely a burst failure in transmission to the user apparatus 50 is more likely to occur than "spotted failure", namely loss of individual isolated encoded fragments.
- FIG 3 there is a depiction of Reed-Solomon encoding performed in the peer-to-peer network 20 and corresponding decoding performed at the user apparatus 50. Loss of certain parts of the encoded fragments is susceptible to being compensated at the user apparatus 50 as illustrated.
- a Reed-Solomon encoding function is denoted by 500
- a corresponding Reed-Solomon erasure correction and decoding function is denoted by 510. Loss of data is noted by crosses "X”.
- Encoding occurring at the data supply nodes involves cutting the data packets into fragments similar to the aforesaid data fragments. Consequently, a total size of all fragments of a packet equals that of their packet prior to the encoding function 500.
- After encoding in the encoding function 500 an expansion of data size by 33% by augmentation with an additional 32 kbytes of data as illustrated in Figure 2.
- the encoded fragments are transmitted via the networks 10, 20 which will occasionally result in data loss as denoted by aforementioned "X" in Figure 3.
- the networks 10, 20 are implemented in the Internet, the data fragments are transmitted using UDP datagrams.
- data streaming using conventional data block transmission with acknowledgement/non-acknowledgement (ack/nack) resends is susceptible to resulting in a sub-optimal quality of stream delivery to the user apparatus 50 and hence a sub- optimal quality of program content presentation to the user.
- Data packets which are lost during transmission to the user apparatus 50 are required to be resent from the data supply nodes, for example from the data supply nodes S1 to S6.
- a time interval between a data packet being transmitted towards the user apparatus 50 and the user apparatus 50 detecting that the packet was lost during transmission and never received at the user apparatus 50 potentially approaches 2 seconds in a worst case practical scenario in practice. Consequently, a roundtrip request could potentially take 2 seconds of stalling prior to the data packet eventually being successfully received at the user apparatus 50.
- Such stalling can be mitigated by employing the aforementioned data buffer in the user apparatus 50 for buffering the data stream 60.
- buffering has a tendency to render the user apparatus 50 seem sluggish to the user, namely exhibit latency, when the user switches between program channels, namely requests an alternative data stream to be supplied from data supply nodes of the data network 20.
- the present invention seeks to at least partially address this latency.
- each data supply node S1 to S6 for example implemented as a plurality of servers, delivers a small part, for example 128 kbit/second, of a big data stream, for example 1 Mbit/second suitable for DVD-equivalent quality, to the user apparatus 50.
- Such definition of use of the data supply nodes S1 to S6 is achieved by the user apparatus 50 performing a computation when generating the quota data which is communicated to the peer-to-peer network 20 in the aforesaid third request message.
- the user apparatus 50 in cooperation with the network 10 is also operable to seek one or more alternative data supply nodes in the peer-to-peer network 20 in an event of a specified data supply node in the quota data becoming unavailable or not being able to supply its specified data blocks into the stream 60 for receipt at the user apparatus 50.
- the peer-to-peer network 20 includes the aforementioned data supply nodes S1 to S8, as well as supernodes denoted by 600.
- the data supply nodes S1 to S8 are also capable of functioning as such supernodes; alternatively, the supernodes 600 are distinct from the data supply nodes S1 to S8.
- the supernodes 600 are distinct from the data supply nodes S1 to S8.
- Each supemode 600 is associated with one or more data supply nodes S1 to S8 and is operable to maintain a record of data blocks, for example aforesaid data fragments, stored within its one or more associated data supply nodes S1 to S8.
- the user apparatus 50 communicates with the supernodes 600 by way of supemode-directed request and subsequent first response messages as denoted by 610.
- the supemode-directed messages 610 are capable of determining which data blocks, for example data bundles, can be supplied from which data supply nodes S1 to S8.
- the user apparatus 50 On receipt of responses in the messages 610, the user apparatus 50 then sends capacity request messages denoted by 620 to the data supply nodes S1 to S7 requesting an indication of a capacity of the data supply nodes S1 to S7 to supply data bundles.
- the data supply nodes S1 to S7 respond with information indicative of their data block supply capacity, for example as depicted in Table 1.
- Table 1 indicates a total potential supply capacity of 111 fragments/second.
- Table 1 is by way of example only.
- the user apparatus 50 then executes an algorithm to generate from the data supply capacity information the aforesaid quota data; conveniently, the quota data is referred to as being a "quota card" denoted by "QCD" in Figure 4.
- the quota data can include instructions to supply data fragments as depicted in Table 2.
- S7 is not selected on account of data supply nodes S1 to S6 being sufficient for ensuring data supply to the user apparatus 50.
- Such selection optionally takes into account previous performance of the data supply nodes S1 to S8 such that a given data supply node indicating high data supply performance but previously not delivering such data supply in practice is deliberately not selected by the user apparatus 50.
- Data supply performance can be determined by one or more criteria:
- the given data supply node simply is not operable to supply data blocks as requested by the user apparatus in the aforesaid quota card;
- each of the data supply nodes S1 to S8 is described by a "quality of service", namely QoS, parameter at the user apparatus 50, such QoS parameters are optionally at least one of: collated by the user nodes 50 from previous experience, communicated as collated performance data from a node of the network 20 designated to provide data supply performance information.
- QoS quality of service
- Table 2 corresponds to a total selected supply capacity of 100 fragments/second which is less than the total potential data supply capacity of 111 fragments/second indicated in Table 1.
- the quota card specifies the data supply node S6 which has a modest capacity of 1 fragment/second and reduces its demand to the data supply node S3 so that lower-capacity data supply nodes such as the node S6 are utilized before consuming data supply capacity from higher-capacity data supply nodes such as the node S3.
- the quota card also includes an indication of the start time t 0 at which data supply is to commence and information, for example the time t n , regarding when each specified data supply node S1 to S6 should supply its data block, data fragment or similar as appropriate.
- the time t n is implicit in a sequence in which data fragments are specified, for example as in Table 3 for supply of 100 consecutive data packets.
- the data supply nodes S1 to S6 all receive Table 3 information in the aforesaid quota card.
- the frequency of the data supply nodes S1 to S6 in Table 3 is, insofar as discreteness in Table 3 allows, proportional to a capability of the data supply nodes as provided in Table 2 to provide data bundles to the user apparatus 50; for example, the data supply node S6, as described in Table 2, is only capable of providing 1 data fragment/second and is thus specified just once in a middle portion of Table 3, whereas the data supply node S3 is capable of providing circa 30 data bundles/second and therefore is specified regularly with substantially uniform occurrence, namely frequency, in the Table 3;
- each cell of Table 3 corresponds to its corresponding specified data supply node S1 to S6 being required to supply a data bundle to the user apparatus 50;
- the cells in the Table 3 correspond to a temporal sequence in which the data supply nodes S1 to S6 are to supply their bundles wherein each cell has a time t n associated therewith and Table 3 is to be temporally interpreted from top left-hand corner to bottom right-hand corner reading across in rows from left to right.
- the user apparatus 50 communicates the quota card (QCD) to the data supply nodes S1 and S6 as denoted by 640.
- the data supply nodes S1 to S6 then respond in a timely manner to supply their data bundles as defined by Table 3 information included in the quota card (QCD) as the data stream 60, for example as denoted by 650 in Figure 4, for receipt at the aforesaid buffer of the user apparatus 50.
- the buffer is implemented as a first-in first-out (FIFO) buffer, for example in data memory associated with computing hardware included in the user apparatus 50.
- the data stream 60 is decoded in the user apparatus 50 to generate program content denoted by 660 to present to the user denoted by 670.
- the program content can, for example, include at least one of: audio, moving images, still images, video, animated software objects such as pop-ups, Applets, television-type program content and so forth.
- the data supply nodes S1 to S6 are operable to encode their data bundles sent in the stream 60, and the user apparatus 50 is operable to correspondingly decode the data bundles when generating the program content 660. Such encoding and decoding is elucidated in greater detail earlier.
- the load balancing algorithm executed within the user apparatus 50 is operable to implement load balancing between multiple nodes in combination with encoding including redundancy; it achieves such load balancing by implementing a digital differential analysis balancer as elucidated earlier.
- the data supply nodes S1 to S6 are capable of timing their fragments sent such that a risk of multiple fragments clogging the network 10 by way of instantaneous data overload is greatly reduced, thereby reducing a potential risk of loss of data fragments at the user apparatus 50.
- FIG 5 there is shown a flow chart of a method of obtaining supply of data from the data supply nodes, for example from the data supply nodes S1 to S6.
- the user apparatus 50 transmits requests
- the supemodes 600 respond with information messages 610 providing information relating to data supply nodes of the network 20 which are potentially capable of providing the given data blocks.
- the user apparatus 50 then sends request messages 620 to the data supply nodes, for example to the data supply nodes S1 to S7, regarding their capacity to provide the given data blocks.
- the data supply nodes for example the data supply nodes S1 to S7, respond as denoted by 630 with information regarding their capacity to supply data blocks to the user apparatus 50.
- the user apparatus 50 On receipt of the information within the aforesaid wait period, the user apparatus 50 generates the aforesaid quota data (QCD) including allocations, for example, as shown in Table 3.
- the user apparatus 50 checks to determine whether or not the data supply nodes, for example the data supply nodes S1 to S7, have sufficient capacity to supply the given data blocks. In an event that the data supply nodes, for example the data supply nodes S1 to S7, are not able to provide sufficient capacity, the method progresses to a step 720 whereat a check is made whether or not all data supply nodes within the peer-to-peer network 20 have been investigated regarding supplying the given data blocks to the user apparatus 50.
- the method progresses to a failure step 730 (FLR) whereat the user 670 is informed that an associated service is unavailable; alternatively, or additionally, the user apparatus 50 at the step 730 is operable to present advertisements or games to the user 670.
- FLR failure step 730
- data bundles can be provided directly from the central source 30 in an event on none of the nodes S1 to S7 being able to provide data bundles propagated thereto in a peer-to-peer manner.
- the user apparatus 50 can repeat an enquiry as depicted in Figure 5 to determine whether or not more data supply capacity has subsequently become available within the peer-to-peer network 20.
- step 720 When executing the step 720, if all data supply nodes, for example the data supply nodes S1 to S6, have not been queried or investigated, the method progress to enquire from the supemodes 600 identities of other potential data supply nodes available within the peer-to-peer network 20.
- the quota data is then communicated to the data supply nodes, for example to the data supply nodes S1 to S6, in a step 740 resulting in the data supply nodes sending their data packets in a timely sequence as, for example, depicted in Table 3.
- the method progresses to a state P1 indicative that all requested data blocks, for example data bundles, have been successfully received at the user apparatus 50.
- the method progresses to a decision stage 750 whereat performance of the data supply nodes that have been selected is investigated.
- the method progresses to a completion state denoted by P2.
- the method progresses to a further search decision stage 760; alternatively, the method aborts and commences from start.
- the search stage 760 if the search for data supply nodes has been exhausted, the method generates for presentation to the user 670 a warning indicative of supply of the stream 60 being at risk; the warning is generated at a step denoted by P3.
- data supply node substitutions are sought as denoted by 770 by enquiring at the supemodes 600.
- the method is optionally operable to send requests for a supply of specific data blocks, for example data bundles or data fragments, from the peer-to-peer network 20.
- the request for specific fragments is sent directly to the data supply nodes S1 to S6 without querying at the supernodes 600.
- the present invention is relevant to digital television services provided to the user 670 via the Internet with data blocks being provided in a peer-to-peer manner.
- problems of data streaming from centralized data sources as employed in contemporary digital cable television are circumvented.
- the present invention is also capable of being implemented in other types of digital communication network.
- the availability of data supply nodes in the peer-to-peer network 20 is susceptible to dynamically changing in response to other users being coupled to the network 10 attempting to access data blocks stored in the peer-to-peer network 20.
- the method as depicted in Figures 4 and 5 is susceptible to being repeated frequently when the user apparatus 50 is in operation.
- 3 to 10 data supply nodes are preferably employed to support the data stream 60; for example, Table 3 concerns the use of 6 data supply nodes for such purpose.
- the user apparatus 50 is capable of being dynamically reconfigured to also function as a data supply node in the peer-to-peer network 20 to supply data blocks received thereat to other users of the network 10; yet more optionally, the user apparatus 50 is also capable of being dynamically reconfigured to function as a supernode akin to the supemodes 600.
- Software executable in computing hardware of the user apparatus 50 for implementing the present invention is susceptible to being downloaded via the network 10 to the user apparatus 50 thereby enabling the network 10 to be reconfigured or upgraded.
- the software product is optionally conveyed to the user apparatus 50 on a data carrier, for example on a memory medium such a digital storage disk, on an Internet carrier signal, on a radio signal, on a solid state memory medium or similar.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Multimedia (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Information Transfer Between Computers (AREA)
Abstract
La présente invention concerne un procédé de fourniture de flux de données (60) via un réseau de communication de données (10) à un appareil utilisateur (50). Le réseau de communication de données (10, 20) comprend des nœuds de fourniture de données (S1 à S8) distribués à l'intérieur. Les flux de données (60) correspondent aux blocs de données stockées parmi les nœuds de fourniture de données (S1 à S6). Le procédé passe par les étapes suivantes : (a) envoi dans le réseau (10, 20) de requêtes (610) pour déterminer une distribution des blocs de données parmi les nœuds de fourniture de données (S1 à S6), (b) réception de réponses (610) générées en réponse à la réception des requêtes, les réponses pouvant transporter des informations indicatives de la distribution, (c) génération des données de quota (QCD) pour un sous-ensemble des nœuds de fourniture de données (S1 à S6) à utiliser pour fournir les blocs de données, les données de quota comprenant des instructions à fournir à l'appareil utilisateur (50) les blocs de données du sous-ensemble de nœuds de fourniture de données (S1 à S6) au moins partiellement en proportion de la distribution, (d) communication des données de quota au sous-ensemble de nœuds de fourniture de données pour demander au sous-ensemble des nœuds de fourniture de données pour fournir leurs blocs de données respectifs, tel qu'indiqué dans les données de quota, (e) réception des blocs de données demandés sur l'appareil utilisateur (50) pour la consommation de l'utilisateur (670).
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/EP2006/010645 WO2008055519A1 (fr) | 2006-11-07 | 2006-11-07 | Procédé de fourniture de flux de données |
TW096139478A TW200835270A (en) | 2006-11-07 | 2007-10-22 | Method of supplying streams of data |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/EP2006/010645 WO2008055519A1 (fr) | 2006-11-07 | 2006-11-07 | Procédé de fourniture de flux de données |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2008055519A1 true WO2008055519A1 (fr) | 2008-05-15 |
Family
ID=38197745
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/EP2006/010645 WO2008055519A1 (fr) | 2006-11-07 | 2006-11-07 | Procédé de fourniture de flux de données |
Country Status (2)
Country | Link |
---|---|
TW (1) | TW200835270A (fr) |
WO (1) | WO2008055519A1 (fr) |
Citations (3)
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 |
WO2005112334A2 (fr) * | 2004-05-07 | 2005-11-24 | Home Box Office, Inc. | Procede et systeme pour la distribution fiable de contenu sur un reseau de communications |
EP1633111A1 (fr) * | 2004-09-03 | 2006-03-08 | Microsoft Corporation | Dispositif et procédé de transmission en continu de médias échelonnables |
-
2006
- 2006-11-07 WO PCT/EP2006/010645 patent/WO2008055519A1/fr active Application Filing
-
2007
- 2007-10-22 TW TW096139478A patent/TW200835270A/zh unknown
Patent Citations (3)
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 |
WO2005112334A2 (fr) * | 2004-05-07 | 2005-11-24 | Home Box Office, Inc. | Procede et systeme pour la distribution fiable de contenu sur un reseau de communications |
EP1633111A1 (fr) * | 2004-09-03 | 2006-03-08 | Microsoft Corporation | Dispositif et procédé de transmission en continu de médias échelonnables |
Non-Patent Citations (1)
Title |
---|
THINH NGUYEN ET AL: "Multiple Sender Distributed Video Streaming", IEEE TRANSACTIONS ON MULTIMEDIA, IEEE SERVICE CENTER, PISCATAWAY, NJ, US, vol. 6, no. 2, April 2004 (2004-04-01), pages 315 - 326, XP002409314, ISSN: 1520-9210 * |
Also Published As
Publication number | Publication date |
---|---|
TW200835270A (en) | 2008-08-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9979771B2 (en) | Adaptive variable fidelity media distribution system and method | |
JP5058468B2 (ja) | ストリーミングメディアの消去耐性符号化のための方法、該方法を実行するコンピュータ実行可能命令を記録した媒体、及びシステム | |
JP4676833B2 (ja) | 拡張可能なメディアの分散ストリーミングのシステムおよび方法 | |
JP4920220B2 (ja) | ピアツーピアネットワークでの受信側主導のシステム及び方法 | |
US8943215B2 (en) | Distributed smooth streaming utilizing dynamic manifests | |
US9288250B2 (en) | Mobile multimedia real-time transcoding system, apparatus, storage medium and method | |
US20140165119A1 (en) | Offline download method, multimedia file download method and system thereof | |
US9473812B2 (en) | System and method for delivering content | |
KR101089562B1 (ko) | 고화질 미디어 방송을 위한 피투피 라이브 스트리밍 시스템 및 방법 | |
US10085123B2 (en) | Information processing apparatus and method, program, and content supply system | |
CN102055718B (zh) | 一种在http streaming系统中实现分层请求内容的方法,装置和系统 | |
CN101552800A (zh) | 提供媒体内容的方法、装置和系统 | |
JP6774957B2 (ja) | マルチメディアブロードキャストマルチキャストサービスに基づくフレキシブルブロードキャストサービスのための方法及び装置 | |
US20040250286A1 (en) | System for communication of streaming digital data | |
WO2016136489A1 (fr) | Appareil de réception, procédé de réception, appareil de transmission et procédé de transmission | |
CN102209262B (zh) | 一种内容调度的方法、装置和系统 | |
CN103051556A (zh) | 一种流媒体数据的控制系统及其方法 | |
CN113574492A (zh) | 信息处理装置、信息处理方法以及程序 | |
CN102821316A (zh) | 一种基于对等计算核心算法改进的视频点播传输方法 | |
CN101243689A (zh) | 使用交叉存取打包的多媒体串流的系统和方法 | |
WO2008055519A1 (fr) | Procédé de fourniture de flux de données | |
Zimmerman et al. | Retransmission-based error control in a many-to-many client-server environment | |
WO2023071468A1 (fr) | Procédé de diffusion en direct, dispositif de service de distribution de contenu et support de stockage | |
CN101212452A (zh) | 一种基于实时传输协议的多媒体数据传输控制方法 | |
WO2024080976A1 (fr) | Récupération de données de réunion en temps réel après une interruption de participant proactive |
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: 06828939 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 06828939 Country of ref document: EP Kind code of ref document: A1 |