WO2011136481A2 - Système d'envoi en flux continu direct de type p2p et procédé destiné à des diffusions multimédia haute définition - Google Patents

Système d'envoi en flux continu direct de type p2p et procédé destiné à des diffusions multimédia haute définition Download PDF

Info

Publication number
WO2011136481A2
WO2011136481A2 PCT/KR2011/002457 KR2011002457W WO2011136481A2 WO 2011136481 A2 WO2011136481 A2 WO 2011136481A2 KR 2011002457 W KR2011002457 W KR 2011002457W WO 2011136481 A2 WO2011136481 A2 WO 2011136481A2
Authority
WO
WIPO (PCT)
Prior art keywords
stream
node
viewing
client
information
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/KR2011/002457
Other languages
English (en)
Korean (ko)
Other versions
WO2011136481A3 (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.)
NOWCOM CO Ltd
Original Assignee
NOWCOM CO Ltd
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 NOWCOM CO Ltd filed Critical NOWCOM CO Ltd
Publication of WO2011136481A2 publication Critical patent/WO2011136481A2/fr
Publication of WO2011136481A3 publication Critical patent/WO2011136481A3/fr
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/54Store-and-forward switching systems 
    • H04L12/56Packet switching systems
    • 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/611Network streaming of media packets for supporting one-way streaming services, e.g. Internet radio for multicast or broadcast
    • 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/75Media network packet handling
    • H04L65/765Media network packet handling intermediate

Definitions

  • the present invention relates to a P2P live streaming system and method for high-definition media broadcasting, and to a P2P live streaming system and method for high-definition media broadcasting for stably transmitting real-time broadcasting to a plurality of viewers in a P2P network.
  • a network structure for internet broadcasting is classified into a client-server (C / S) structure or a peer-to-peer structure.
  • the network structure of a client-server means sharing a file via a server unconditionally, and an individual computer performs data interchange through a server.
  • peer-to-peer (P2P) network structure means a person-to-person file sharing on the Internet, and data exchange is performed by mutually retrieving data held by each computer by directly connecting between individual computers.
  • the rapid development of the internet related technology enables the internet to watch and listen to the multimedia contents combining live audio and video through online search.
  • Service is now available.
  • the representative one is multimedia streaming service. Streaming means not to download and execute all the audio or video data, which is large, but to transmit the data in real time.
  • the existing technology of P2P real-time broadcasting implements transmission control protocol (TCP) transmission of a tree structure as shown in FIG. 1.
  • the P2P real-time broadcasting system includes a broadcast client 1 transmitting an original broadcast stream, a streaming server 2 receiving the original broadcast stream from the broadcast client 1 and distributing it in real time, and a broadcast stream from the streaming server. It consists of a plurality of viewing clients 3 that receive and play broadcasts.
  • Such a tree-structured TCP transmission method has a disadvantage in that network usage efficiency decreases with higher resolution requiring high bandwidth, and in particular, as described above, transmission delay (buffering phenomenon) increases during frequent replacement of a viewing client.
  • the child client connected to one parent client is connected to the parent client as a single node, when the parent client or node has a transmission error, the child client may not receive data or may be delayed. Realization of broadcasting may not be done well.
  • An object of the present invention to solve the above problems is to provide a P2P live streaming system for high-definition media broadcasting for stably transmitting a real-time broadcast to a plurality of viewers in the P2P network.
  • the present invention aims to provide a P2P live streaming method by managing all broadcasts in a live streaming broadcast that transmits a real time broadcast to a plurality of viewers in a P2P network and the entire viewing network by a full mesh type network.
  • the present invention provides a streaming server system for dividing an original stream of broadcast information into a plurality of substreams and transmitting the divided substream data to a viewing client of a viewing network having a full mesh graph structure.
  • the streaming server system includes a viewing client of a viewing network having a full mesh graph structure for receiving the divided sub stream from the streaming server system and restoring the original stream from the divided sub stream.
  • the P2P live streaming system is configured to receive the divided sub-stream data through a node so that a plurality of the viewing clients form a viewing network having a full mesh graph structure of a plurality of parent nodes and a plurality of child nodes. Is provided.
  • the streaming server system includes: a streaming server for dividing an original stream transmitted from a broadcast client into at least two substreams and transmitting the channel to a viewing network for each channel;
  • a relay server is provided to provide channel allocation information to the streaming server to support split transmission of sub-streams, and to provide sub-stream access information of all channels capable of restoring an original stream to each viewing client of the viewing network.
  • the viewing network includes at least one viewing client, and the viewing clients in the viewing network receive sub-streams of all channels from a plurality of parent nodes allocated by the relay server to play the original broadcast stream.
  • a full-mesh viewing network in which the relationship between a parent node and a child node is connected many-to-many by retransmitting a sub-stream of a designated channel to a plurality of child nodes allocated by the relay server, and the relay server is configured for each viewing in the viewing network.
  • the client Allocating a plurality of parent nodes capable of playing the original broadcast stream by receiving the sub-streams of all channels, assigning a plurality of child nodes capable of retransmitting the sub-streams of the specified channel, and manages node information in the entire network Can be.
  • the streaming server may further include: a stream dividing unit dividing the original stream received from the broadcasting client into a plurality of blocks; An FEC encoder which assigns a serial number to each block divided by the stream dividing unit and generates and adds a parity block for each predetermined number of blocks to form a plurality of divided substreams; A stream transmitter for transmitting a sub-stream of a designated channel to the viewing clients assigned by the relay server in a UDP manner; And a control information receiver configured to receive a control command including the viewing client assignment information and the stream transmission channel information from the relay server in a TCP manner, wherein the parity block generated and added through the FEC encoder is transferred to the corresponding block. It may be provided to be made up of xor sum of block data.
  • the viewing client may further include: a stream receiving unit receiving sub streams of all channels from a plurality of parent nodes in a UDP manner; A stream combination unit which stores a plurality of sub-streams received through the stream receiver in a buffer in order by referring to a serial number; An FEC decoder for recovering a missing block in a stored substream; A stream transmitter for retransmitting a sub-stream of a channel designated to the assigned child nodes in a UDP manner; And a control information receiver configured to receive a control command including the viewing client assignment information and the stream transmission channel information from the relay server in a TCP manner, wherein the FEC decoder includes a parity block for a corresponding lost block if a lost block exists. It may be provided to restore the lost block through.
  • the streaming server system may further include a speed measurement server configured to communicate a test packet with the viewing client at predetermined intervals to measure a current up / down speed of the corresponding viewing client.
  • the relay server which transmits to the relay server and collects the speed information of each viewing client may be provided to control channel allocation through the corresponding speed information.
  • the present invention provides a stream splitting transmission step (S210) of dividing a broadcast source stream into a plurality of sub-streams and transmitting the channel to a viewing network in a streaming server of a streaming server system; (b) allowing the channel allocation information to be transmitted from the relay server of the streaming server system to the streaming server side, generating the split information of the substream with respect to the channel allocation information in the streaming server, and the respective viewing clients of the viewing network in the relay server.
  • a P2P live streaming method characterized in that it comprises a stream restoration reproduction retransmission step (S250) for retransmitting the sub-stream of the specified channel to them.
  • the stream splitting transmission step (S210) may include: (a-1) an original stream block splitting step (S211) for splitting the original stream received from the broadcast client into a plurality of blocks; (a-2) a sub-stream generation step (S212) in which a serial number is assigned to each divided block, and a plurality of divided sub streams are generated by generating and adding a parity block for each of a plurality of blocks; And (a-3) a designated channel stream transmission step (S213) for transmitting a sub-stream of a designated channel to the viewing clients assigned by the relay server in a UDP manner, wherein the streaming server is provided from the relay server.
  • the control command data including the viewing client assignment information and the stream transmission channel information is received in a TCP manner, and the substream generation step S212 includes a parity block generated and added through the FEC encoder of the streaming server. It may be provided to be made of the xor sum of the previous block data of.
  • the stream restoration reproduction retransmission step (S250) includes: (c-1) a multiple parent node substream reception step of receiving sub-streams of all channels in a UDP manner from a plurality of parent nodes in a viewing client of a child node (S251); (c-2) a stream sequence order storing step of storing the plurality of received sub-streams in a buffer in order by referring to the serial number (S252); (c-3) a stream missing block restoring step (S253) of restoring a missing block in the stored substream; And (c-4) an allocator node retransmission step (S254) of retransmitting a sub-stream of a designated channel in a UDP manner to child nodes allocated from the streaming server system in the corresponding viewing client.
  • the stream missing block restoration step (S253) if there is a lost block by the FEC decoder of the viewing client It may be provided to recover the lost block through the parity block for the lost block.
  • the viewing client communicates with the speed measurement server at a predetermined interval to test the up / down speed of the corresponding viewing client, and transmits the measured speed information to the relay server.
  • the broadcast information of the broadcast client is registered, the plurality of sub-streams of the original broadcast is divided into a streaming server that distributes the broadcast
  • Sub-stream channel information allocation step (S240) for allocating the channel information for the transmission is further provided, the relay server receives the sub-streams of all channels to each viewing client in the viewing network to reproduce the original broadcast stream Assigns the parent nodes of the specified channel Assigning a plurality of child nodes to be forwarded to the stream, and may be provided such that the entire network is managed in the node information.
  • a new parent node for the corresponding substream A parent node replacement access stream providing step S270 for providing alternative access information for accessing the viewing client may be further included.
  • the alternative access information for accessing the viewing client of the new parent node is made through a candidate selection process and a node selection process based on priority, and the relay server
  • the candidate selection process in, the first criterion for determining whether a search target node has a predetermined number or less of child nodes for a request sent by a viewing client, and a second for determining whether a predetermined time has passed after joining a broadcast.
  • a third criterion for determining whether the node has already been replaced or reassigned in the past a fourth criterion for determining whether the cumulative loss rate of the client of the target node is less than or equal to a predetermined threshold, and the parent's path to the request channel. In case of parent search, it does not go to the requesting client itself but also to the root node of the channel. At least one or more of the fifth determination criteria for determining whether a node is a node is applied to select a candidate parent node, and the node selection process based on the priority in the relay server may be performed after the selection of the candidate node.
  • a priority is calculated in consideration of the transmission participation time, the number of child nodes, and the node distance from the root node, and the parent node having the highest priority is selected. If the search for the node to be allocated fails through the node selection process, the node that has already been allocated to another channel is reassigned within the preset allowable number of duplicates, or if the node that has the history of replacement and the reassignment node meets the search conditions
  • the first node can be assigned to a reassignment node, or the streaming server can be assigned to a reassignment node. The.
  • the network bandwidth efficiency of transmitting to a plurality of broadcast viewers by selecting and efficiently using the network bandwidth of the entire P2P pool by reducing the minimum unit network bandwidth required for transmission The effect is to maximize.
  • the parent client is changed, so that the node to be transmitted can be maintained in an optimal state, and thus the P2P real-time broadcasting service can be stably used.
  • parity packets are added in a predetermined partitioning unit in the process of dividing the original stream, so that partial retransmission may be performed by P2P by restoring stream data already received and waiting in case of transmission error or delay.
  • TCP is used to transmit control commands
  • UDP is used to transmit broadcast streams, thereby minimizing the time difference caused by multi-stage transmission through P2P and improving real time.
  • the departure of the client node affects the child-relational clients as well as the existing tree structure, but since the influence is relatively reduced by 1 / (number of divided streams), more stable transmission is achieved. Quality can be guaranteed.
  • FIG. 1 is a configuration example for explaining a P2P real-time broadcasting technology of the tree structure according to the prior art.
  • FIG. 2 is a block diagram illustrating a transmission structure of broadcast data and control data of a P2P live streaming system for high-definition media broadcasting according to the present invention.
  • FIG. 3 is a block diagram illustrating the overall structure of a P2P live streaming system for high-definition media broadcasting according to the present invention.
  • FIG. 4 is a block diagram illustrating a streaming server according to the present invention.
  • FIG. 5 is an exemplary diagram illustrating stream splitting for explaining a UDP transport stream splitting scheme of a streaming server according to the present invention
  • FIG. 6 is a block diagram illustrating a viewing client in accordance with the present invention.
  • FIG. 7 is an exemplary view illustrating a stream buffer transmission and reception for explaining a UDP transport stream recovery method of a viewing client according to the present invention.
  • FIG. 8 is a block diagram illustrating a relay server according to the present invention.
  • FIG. 9 is a flowchart illustrating a P2P live streaming method for high-definition media broadcasting according to the present invention.
  • FIG. 10 is a flowchart illustrating a P2P live streaming method for high-definition media broadcasting according to the present invention.
  • the P2P live streaming system 100 and the method for high-definition media broadcasting according to the present invention receive data from the broadcast client 10 and the broadcast client 10 as illustrated in FIGS. 2 to 10.
  • Streaming server system 200 for providing a stream service to the viewing client 30 and a plurality of viewing clients 30 to receive the stream data from the streaming server system 200 to play the video data and the like is as follows.
  • FIGS. 2 and 3 are diagrams for explaining a transmission structure of broadcast data and control data by the P2P live streaming system 100 for high-definition media broadcasting according to the present invention.
  • the P2P live streaming system 100 for high-definition media broadcasting receives a broadcast client 10 transmitting an original broadcast stream, and receives an original broadcast stream from the broadcast client 10.
  • Streaming server 20 of streaming server system 200 that divides a plurality of sub-streams and transmits them in real time, and a plurality of viewing clients that receive the sub-streams received from the streaming server and combine them into original broadcast streams to play broadcasts.
  • the broadcast client 10 the streaming server 20 and the plurality of viewing clients 30 to control the channel access information for the divided sub-streams to the streaming server 20 and the viewing client
  • the relay server 40 is assigned to manage the live streaming broadcast.
  • the plurality of viewing clients 30 are parent nodes for transmission of streams or child nodes for reception of streams as respective configuration nodes when viewed as one component for stream distribution in the viewing network. function as a child node.
  • the streaming server 20 serves as a root node, and the entire viewing network forms a full-mesh network.
  • UDP User Datagram Protocol
  • TCP Transmission Control Protocol
  • This dual data transmission structure uses TCP for control command transmission to achieve transmission stability.
  • UDP is used for transmission of broadcast streams, thereby minimizing time difference due to multi-stage transmission through P2P and improving real time. In this case, transmission errors or packet order errors that may occur due to the UDP characteristics may be compensated for through the client's own stream buffer management, forward error correction (FEC) error recovery, and retransmission functions described in detail below.
  • FEC forward error correction
  • the broadcast client 10 registers broadcast start information with the relay server 40 and transmits the original stream of the broadcast to the streaming server 20, and the streaming server 20 uses a split function.
  • the original broadcast stream is divided into a plurality of sub-streams and transmitted to the viewing client 30 assigned by the relay server 40, and the viewing clients 30 have a parent-child relationship by the relay server 40 and are assigned.
  • the sub streams of all channels are received from the parent nodes, and the original broadcast stream is reproduced and the sub streams of the designated channel are retransmitted to the child nodes allocated by the relay server 40.
  • the viewing client 30 communicates with the speed measurement server 50 at regular time intervals to measure its current up / down band speed and transmits measurement information to the relay server 40.
  • the broadcast client 10 registers the broadcast number and the broadcast stream information as the subject of the broadcast to the relay server 40 of the streaming server system 200 when the broadcast starts, and if the broadcast registration is successful, the broadcast server 20 to the streaming server 20. Send the original stream.
  • the streaming server 20 of the streaming server system 200 receives the original broadcast stream from the broadcast client 10, divides the original broadcast stream into transport substreams by the partitioning function according to the present invention, and the relay server.
  • the sub stream of the designated channel is transmitted to the viewing clients 30 assigned by the 40.
  • the streaming server 20 includes a broadcast receiver 22 for receiving an original broadcast stream from the broadcast client 10.
  • a stream dividing unit 23 for dividing the original stream received from the broadcast receiving unit 22 into blocks of a predetermined size, and assigns a serial number to each block divided by the stream dividing unit 23 and for each predetermined number of blocks.
  • An FEC encoder 24 for generating and adding a parity block to configure a plurality of divided substreams, and a stream transmitter 25 for transmitting a substream of a designated channel to the assigned viewing clients 30 in a UDP manner.
  • a control information receiving unit for receiving a control command from the relay server 40, the control command including viewing client assignment information and stream transmission channel information, in a TCP manner.
  • a memory 27 for storing the viewing client assignment information and stream transmission channel information, and a streaming control unit 21 for controlling the respective components.
  • the streaming server 20 divides the original stream into blocks of a predetermined size, assigns a serial number to each block, adds a parity block for each block number, and sequentially blocks each block by a predetermined number of channels as described above.
  • the sub stream is generated by repeatedly allocating to a new stream of.
  • the stream splitting unit 23 sets the original stream S to a plurality of blocks 0, 1, 2, 3, 4, having a byte length of B (1024 or less). 5, 6, 7, 8, 9). At this time, each block is composed of an original stream packet number, a block serial number, time stamp information, and split stream data.
  • the FEC encoder 24 adds a parity block (P 0 , P 1 ) consisting of xor sums of previous K consecutive block data to each K block, thereby adding a plurality of sub streams S 0 , S 1 , and S 2 .
  • the parity block P 0 is made up of xor sums of blocks 0, 1, 2, and 3
  • the parity block P 1 is made up of xor sums of blocks 4, 5, 6, and 7.
  • each block is sequentially arranged in each channel and divided into new sub-streams S 0 to S n .
  • the block arrangement of the original stream S is b 0 , b 1 , b 2 ... b n , b n + 1, etc.
  • the block structure of the substream S 0 is b 0 , b n , b 2n ... Will be.
  • K is 4 and n is 3. That is, the original stream S is divided into three substreams S 0 , S 1 , and S 2 , and a parity block for FEC is generated for every four blocks.
  • the viewing client 30 receives the sub-streams of all channels from the parent nodes assigned by the relay server 40 to play the original broadcast stream, and also the child node assigned by the relay server 40. Will retransmit the substreams of the specified channel.
  • the viewing client 30 is a stream receiving unit 32, the stream receiving unit 32 receives the sub-streams of all channels from the plurality of parent nodes in a UDP method Stream combination unit 33 for storing a plurality of sub-streams received through the serial number in the transmission buffer in order, the FEC decoder 34 responsible for the restoration of the missing blocks in the stored sub-streams; A stream transmitter 35 for retransmitting the sub-streams of the designated channel to the assigned child nodes in a UDP manner, a stream player 36 for reproducing the original stream through the received combined sub-streams, and the relay server 40 Control information receiving unit 37 for receiving a control command including viewing client assignment information and stream transmission channel information from a TCP method from the Speed measurement unit 38 for communicating with the separate speed measurement server at intervals to measure its current up / down band speed and transmit the corresponding speed information to the relay server 40, viewing client assignment information, and stream transmission channel information.
  • Memory 39 for storing the data, and a client controller
  • the viewing client 30 receives the sub-streams of all channels from allotted parent nodes in the full-mesh viewing network and acts as a child node to play the original broadcast stream, while simultaneously assigning the assigned channels to the assigned child nodes. It acts as a parent node for retransmitting the substream of.
  • the viewing client 30 accesses the relay server 40 to transmit status information such as its network status, transmission speed, and the like, and transmits the number of broadcasts to participate in, and then divides the number from the relay server 40. Connection information of substreams of all channels is allocated.
  • the corresponding viewing client 30 stores the received sub-streams in the internal transmission buffer in order by referring to the serial number, and finds a block that is missing transmission or a block that is determined to be a transmission delay. Attempt to recover through the FEC decoder 34.
  • the K block start number and end number including the block to be restored are calculated to calculate the corresponding block. If all K neighboring blocks exist except the xor sum of block data, data of the corresponding lost block may be restored.
  • a request for retransmission is made to a parent node of a corresponding channel.
  • the viewing client executes the transmission immediately when there is a request block received or restored in the internal buffer.
  • the client control unit 31 of the viewing client 30 calculates a transmission loss rate of each channel at a predetermined time and transmits a reallocation request of the corresponding channel to the relay server when the value exceeds the threshold, and all channels are at a predetermined level. Keep above the success rate of transmission. At this time, the client control unit 31 of the viewing client 30 measures the cumulative transmission loss rate and the system load at regular intervals to notify the relay server 40.
  • the viewing client 30 may request the relay server 40 to reassign the node. That is, every T 1 second, if all nodes detect abnormal node by checking connection information of allocated node, request relay reallocation to relay server.
  • the viewing client also reassigns to the relay server 40 every node whose cumulative loss rate for T 2 seconds exceeds the threshold L th for all channels every T 2 seconds. In this case, it is preferable that the newly allocated node does not perform loss rate calculation and inspection for the first T 2 seconds to give an initial transmission stability period.
  • the speed measurement server 50 communicates the test packet with the viewing client 30 at predetermined intervals to measure the current up / down band speed of the corresponding viewing client.
  • the relay server 40 transmits the divided sub stream data to the viewing network using the streaming server 20 as a root node, and the parent and child of the plurality of viewing clients 30 to transmit the divided sub stream data.
  • a full-mesh viewing network in the form of a mesh graph in which the relationship between the parent node and the child node is connected many to many is managed to manage the corresponding live streaming broadcast.
  • the relay server 40 is a client connection unit 43, which can be connected to the broadcast client 10 and the viewing client 30, broadcast participating in the broadcast Client analysis unit 44 for analyzing the participation status of each client through the network state and transmission state of the client 10 and the viewing client 30, streaming viewing broadcast by transmitting the viewing client assignment information to the streaming server 20 Streaming management unit 42 for operating the network, the management of node information included in the viewing network of each broadcast, the viewing management unit 45 responsible for allocating and reassigning nodes and replacing nodes, and storing data for managing various information required for broadcasting.
  • Device 46 and a relay controller 41 for controlling each of the above components.
  • the relay server 40 manages both addition and departure of each viewing client 30 and parent / child relationship, it is possible to guarantee a service of predictable quality.
  • the relay server 40 manages broadcast numbers, broadcast stream information, broadcast client information, and streaming server information of all broadcasts being transmitted through a broadcast information DB.
  • Network information, up / down band state information, broadcast number being viewed, transmission state information, and adjacent P2P node information (parent, child and recent allocation error information) are managed through the viewing information DB.
  • the relay server 40 stores the network address and status information of the viewing client 30 connected through the client connection unit 43 and periodically checks the up / down band speed, transmission state, and the like from the viewing client 30. Receive and save.
  • the relay server 40 requests P2P for the broadcast of the requested broadcast number stored in the node information DB by the node search unit 45a.
  • the node information is searched for, selects a node to be allocated, and the node allocator 45b transmits a list of access information for all sub-stream channels to the corresponding viewing client 30.
  • the relay server 40 When the viewing client 30 that is already participating in the broadcast requests to replace a node of a specific channel, the relay server 40 requests P2P node information on the broadcast of the requested broadcast number stored in the node information DB by the node searcher 45a. Retrieves other connection information capable of transmitting the corresponding channel, and transfers the alternative connection information thus retrieved by the node allocator 45b to the corresponding viewing client 30 as reassignment information.
  • the relay server 40 when a specific viewing client 30 participating in the broadcast stops viewing or disconnects, P2P node information on the broadcast of the requested broadcast number stored in the node information DB in the node search unit 45a. retrieves the new connection information of the channel that the client is currently transmitting to all the child nodes of the corresponding viewing client, and uses the alternate access information retrieved in this way by the node allocator 45b as the reassignment information. To pass).
  • the node search unit 45a of the relay server 40 searches for the parent node closest to the root node of the corresponding channel without generating a loop in the node transmission relation graph of the corresponding channel.
  • the child nodes are not clustered and allocated to one node so that they can be evenly distributed to each node transmitting the channel.
  • the appropriate channel is searched by calculating the priority based on the upband rate, cumulative transmission error rate, and system state of each node of the corresponding channel. Each element or variable involved in such a calculation can be set so that it is adapted to adapt to changes in the application environment.
  • the relay server 40 is preferably driven by a simple, fast and efficient search strategy.
  • the node search unit 45a of the relay server 40 performs a search based on a list of viewing clients participating in one broadcast, and selects and prioritizes a predetermined number of candidates by sequential search to improve search speed and distribute nodes. Node selection is performed by rank.
  • the node search unit 45a uses the first judgment as to whether or not the search target node has a predetermined number or less of child nodes in response to a request sent from the viewing client 30.
  • the node search unit 45a uses the second determination criterion as to whether a predetermined time has passed after the participation in broadcasting.
  • the node search unit 45a uses the third judgment as to whether or not the node has already been reassigned in the past. That is, sequential reallocation is excluded.
  • the node retrieval unit 45a uses the fourth judgment as to whether the cumulative loss rate of the client of the target node is equal to or less than the threshold.
  • the node search unit 45a uses the fifth determination criterion as to whether the node reaches the root node of the channel without passing through the requesting client itself according to the parent search for the request channel. That is, it eliminates loops in the network.
  • the node search unit 45a of the relay server 40 selects a predetermined number of candidates in node search
  • the node to be searched has a certain number or less of child nodes, and a predetermined time has passed since the broadcast participation. If the cumulative loss rate of the target node's client is less than or equal to the threshold, and the parent node reaches the root node of the channel without passing the requesting client itself in the parent search according to the parent's path, the node is selected as a candidate. Can be.
  • the criteria for selecting the candidates do not have mutual priority and can be variously set according to the application environment.
  • the node retrieval unit 45a selects a predetermined number of candidate nodes as described above, and takes priority in consideration of the transmission participation time, the number of child nodes, and the node distance from the root node. The rank is calculated and the node with the highest priority is selected. This selected node is transmitted to the viewing client 30 via the node allocator 45b.
  • the node search unit 45a of the relay server 40 reassigns a node already allocated to another channel within a preset number of overlapping allowances. can do. However, if the reassignment target node is not found, the first node that meets the search condition and the reassignment node may respond as the reassignment node. If the node to be searched is not found through all the above search methods, the streaming server 20 (root node) is allocated and responded.
  • the relay server 40 must also search for and temporarily store candidates for nodes that can be used for duplicate allocation and nodes that can be used for replacement reassignment.
  • the broadcast client 10 to perform live streaming broadcast accesses the relay server 40 of the streaming server system 200 to register broadcast information including a broadcast number and broadcast stream information, and the corresponding relay server 40
  • the procedure of registering a live streaming broadcast is performed by registering the corresponding broadcast information in the internal broadcast information DB (S10).
  • the streaming server 20 of the streaming server system 200 receiving the broadcast original stream from the broadcast client 10 divides the received original stream into blocks of a predetermined size, and assigns a serial number to each divided block.
  • the streaming server 20 of the streaming server system 200 receiving the broadcast original stream from the broadcast client 10 divides the received original stream into blocks of a predetermined size, and assigns a serial number to each divided block.
  • a parity block for each predetermined number of blocks a plurality of divided sub streams are configured, and the sub streams of a specified channel are transmitted to the viewing clients 30 allocated by the relay server 40 (S20).
  • the relay server 40 of the streaming server system 200 provides the channel access information of the number of sub-streams divided by the streaming server 20 to each of the viewing clients 30 participating in the viewing network.
  • the relay server 40 of the streaming server system 200 provides the channel access information of the number of sub-streams divided by the streaming server 20 to each of the viewing clients 30 participating in the viewing network.
  • each viewing client 30 controls each viewing client 30 to receive each sub-stream from a plurality of parent nodes, a full mesh in the form of a mesh graph in which the parent / child relationships of the nodes in the corresponding viewing network are many-to-many connected.
  • the viewing network to manage the live streaming broadcast (S30).
  • the relay server 40 of the streaming server system 200 transmits the divided sub-stream data to the viewing network using the streaming server 20 as a root node, and the plurality of viewing clients 30 are divided into sub-streams. It acts as the parent node and child node of stream data delivery.
  • the parent node to which the corresponding viewing client is provided with information may exist as many as the number of divided sub-streams.
  • a plurality of child nodes for one viewing client 30 also exist, and the number of such child nodes may vary according to node assignment of the relay server 40.
  • the full-mesh graph viewing network according to the present invention is different from the tree structure in which one parent node has a certain number of child nodes in one-way. The impact on client nodes in this child relationship is reduced. That is, in the conventional tree structure, only a single parent node exists for one child node. However, in the viewing network of the full-mesh graph structure according to the present invention, a plurality of parent nodes are formed for one child node. The node also forms a network structure in which a plurality of child nodes can be formed.
  • the departure of the client node may cause an abnormality such as when a client who is watching the TV stops watching the broadcast or when the client node is unable to access the network associated with the client.
  • an abnormality such as when a client who is watching the TV stops watching the broadcast or when the client node is unable to access the network associated with the client.
  • a large number of child nodes are connected to the corresponding client, a large change occurs in the viewing network at the moment of node departure, and a new parent node is allocated to the child nodes of the exit node. Until you get confused, like buffering.
  • the departure of one client node affects the child-related clients as well as the existing tree structure, but the influence is relatively 1 / (number of split streams). As a result, it is possible to guarantee more stable transmission quality and more stable play state.
  • Each of the viewing clients 30 in the viewing network of the full-mesh graph structure communicates with the speed measurement server 50 of the streaming server system 200 at regular intervals to measure its current up / down band speed. And transmits corresponding speed information to the relay server 40 of the streaming server system 200, and the relay server 40 collects information on a client including speed and status information of each of the viewing clients 30. Then it is managed as basic data on the request for node detachment or channel reallocation later (S40).
  • the node detachment refers to a general occurrence when the client that is watching stops watching the broadcast.
  • the channel reallocation request is performed by examining the access information of the node allocated to all channels by the viewing client 30. If it finds a node that is not, it means requesting reallocation of that node.
  • the relay server 40 determines that the viewing client 30 has detached.
  • the new access information of the channel currently being transmitted is searched for and assigned to all child nodes (S60).
  • the relay server 40 searches for P2P node information to search for other access information for transmitting a channel for which replacement is requested. Allocation is made (S80).
  • the relay server 40 stores all the information related to the broadcast and terminates the broadcast (S100), and manages such node departure or node replacement until the broadcast ends.
  • the node search unit 45a of the relay server 40 When searching and assigning the channel of the relay server 40, the node search unit 45a of the relay server 40 does not have a loop in the node transmission relation graph of the corresponding channel and closest to the root node of the corresponding channel. Will be searched. In addition, child nodes are not clustered and allocated to one node so that they can be evenly distributed to each node transmitting a channel. In addition, the appropriate channel is searched by calculating the priority based on the upband rate, cumulative transmission error rate, and system state of each node of the corresponding channel. Each element or variable involved in such a calculation can be set so that it is adapted to adapt to changes in the application environment.
  • the relay server 40 performs a search based on a list of viewing clients participating in one broadcast, and selects a predetermined number of candidates by sequential search to improve search speed and distribute nodes. Node selection process is performed based on the order of priority and priority.
  • the relay server 40 uses the first determination criterion as to whether or not the search target node has a predetermined number or less of child nodes in response to a request sent from the viewing client 30.
  • the relay server 40 uses the second determination criterion as to whether a predetermined time has passed after the participation in broadcasting.
  • the relay server 40 uses the third determination criterion as to whether the node has already been reassigned in the past. That is, sequential reallocation is excluded.
  • the relay server 40 uses the fourth criterion as to whether the cumulative loss rate of the client of the target node is less than or equal to the threshold.
  • the relay server 40 uses the fifth determination criterion as to whether the node reaches the root node of the channel without passing through the requesting client itself in the upper search according to the path of the parent for the request channel. That is, to eliminate loops in the network.
  • the relay server 40 when selecting a certain number of candidates in the node search, the node to be searched has a certain number of child nodes or less, a certain time has passed after joining the broadcast, In addition, if the cumulative loss rate of the client of the target node is less than the threshold value, and the node reaches the root node of the channel without passing the requested client itself in the upper search according to the parent path, the node may be selected as a candidate.
  • the criteria for selecting the candidates do not have mutual priority and can be variously set according to the application environment.
  • the relay server 40 first selects a predetermined number of candidate nodes as described above and takes priority in consideration of the transmission participation time, the number of child nodes, and the node distance from the root node. The rank is calculated and the node with the highest priority is selected. This selected node information is transmitted to the viewing client 30.
  • the relay server 40 may respond by re-assigning a node that is already allocated to another channel within a preset number of overlapping allowances. However, if the reassignment target node is not found, the first node that meets the search condition and the reassignment node may respond as the reassignment node. If the node to be searched is not found through all the above search methods, the streaming server 20 (root node) is allocated and responded.
  • the relay server 40 must also search for and temporarily store candidates for nodes that can be used for duplicate allocation and nodes that can be used for replacement reassignment.
  • a stream splitting transmission step (S210) of dividing a broadcast source stream into a plurality of substreams and transmitting the channel to a viewing network for each channel in a streaming server is performed.
  • the stream access information providing step (S230) of transmitting the sub stream access information data of the channel capable of restoring is performed.
  • the viewing client receives a sub-stream which has been divided in the original stream from the plurality of parent nodes allocated by the relay server, restores and reproduces the original broadcast stream, and provides a plurality of child nodes allocated by the relay server.
  • Stream regeneration retransmission step (S250) for retransmitting the sub-stream of the designated channel to them is performed, to provide a P2P live streaming method.
  • the stream splitting transmission step (S210) may include: (a-1) an original stream block splitting step (S211) for splitting the original stream received from the broadcast client into a plurality of blocks; (a-2) a sub-stream generation step (S212) in which a serial number is assigned to each divided block, and a plurality of divided sub streams are generated by generating and adding a parity block for each of a plurality of blocks; And (a-3) a designated channel stream transmission step (S213) for transmitting a sub-stream of a designated channel to the viewing clients assigned by the relay server in a UDP manner.
  • the streaming server is provided to receive control command data including viewing client assignment information and stream transmission channel information from the relay server in a TCP manner.
  • the sub-stream generation step (S212) the parity block generated and added through the FEC encoder of the streaming server is provided so that the xor sum of the previous block data of the block.
  • the stream restoration reproduction retransmission step (S250) includes (c-1) a multiple parent node substream reception step (S251) that receives sub-streams of all channels in a UDP manner from a plurality of parent nodes in a viewing client of a child node. Is performed.
  • (c-2) a stream sequence sequence storing step (S252) for storing a plurality of received sub-streams in a buffer in order with reference to a serial number and (c-3) restoring missing blocks in the stored sub-streams.
  • the viewing client may be configured to receive control command data including viewing client assignment information and stream transmission channel information from the relay server in a TCP manner.
  • the stream missing block restoration step (S253) if a loss block exists by the FEC decoder of the viewing client is provided to restore the loss block through the parity block for the loss block.
  • the viewing client communicates with the speed measurement server at a predetermined interval to measure the up / down speed of the corresponding viewing client, and transmits the measured speed information to the relay server.
  • the speed information of each viewing client is collected and the channel allocation is controlled through the speed information.
  • Sub stream channel information allocation step of registering broadcast information of a broadcast client and allocating channel information for transmission of a plurality of sub-streams obtained by dividing the original broadcast in the relay server (S240). ) Is further provided.
  • the relay server may receive a sub-stream of all channels from each viewing client in the viewing network, allocate a plurality of parent nodes capable of playing the original broadcast stream, and retransmit the sub-stream of the designated channel. It assigns a plurality of child nodes and is provided to manage node information in the entire network. Therefore, the node information made by the plurality of viewing clients in the viewing network of the full-mesh graph structure in such a relay server is collected and managed by the relay server. The structure of the viewing network of the structure is to be made smoothly.
  • the relay server when the relay server is disconnected from the parent node's viewing client in the viewing network or transmits a signal for requesting node replacement of a specific channel from the viewing client of the child node, the new parent for the corresponding sub-stream.
  • the parent node substitute access stream providing step (S270) for providing the alternative access information for accessing the viewing client of the node is further included.
  • the parent node replacement access stream providing step (S270) is provided such that the alternative access information for accessing the viewing client of the new parent node is performed through a candidate selection process and a node selection process based on priority.
  • the candidate selection process in the relay server may include a first determination criterion for determining whether the search target node has a predetermined number or less of child nodes in response to a request sent by the viewing client, and whether a predetermined time has passed since the participation in broadcasting.
  • the second judgment criterion for determining the third criterion for determining whether the node has already been reassigned for replacement in the past, the fourth criterion for determining whether the cumulative loss rate of the client of the target node is less than or equal to a predetermined threshold, and the request channel.
  • the at least one criterion of determining whether the node reaches the root node of the channel without passing through the requesting client itself when the parent is searched along the path of the parent is applied to select the candidate parent node.
  • the node selection process according to the priority in the relay server after the selection of the candidate node, calculates the priority in consideration of the transmission participation time, the number of child nodes, the node distance from the root node, and the priority It is equipped to select the highest parent node.
  • the search for the node to be allocated fails through the candidate selection process and the node selection process based on the priority, the node already allocated to another channel is re-allocated within the preset allowable duplicate number or replaced.
  • the first node that has a history and is a reassignment node and satisfies the search condition is assigned to the reassignment node or the streaming server is assigned to the reassignment node.

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

La présente invention concerne un système de diffusion en flux continu en direct de type P2P (poste à poste) et plus précisément, un système de diffusion en flux continu en direct de type P2P pouvant transmettre de manière stable une diffusion en temps réel destinée à de nombreux téléspectateurs sur un réseau de type P2P. Le système de la présente invention comprend un serveur de diffusion en flux continu destiné à séparer un flux d'origine transmis par un client de diffusion en au moins deux flux secondaires et à transmettre les flux secondaires à un réseau de visionnement sur un canal ; et un serveur relais destiné à fournir des informations d'allocation de canal au serveur de diffusion en flux continu afin de prendre en charge la transmission séparée de flux secondaires, et à fournir à chaque client de visionnement du réseau de visionnement des informations d'accès aux flux secondaires de chaque canal afin qu'il soit en mesure de récupérer le flux d'origine.
PCT/KR2011/002457 2010-04-27 2011-04-07 Système d'envoi en flux continu direct de type p2p et procédé destiné à des diffusions multimédia haute définition Ceased WO2011136481A2 (fr)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2010-0038823 2010-04-27
KR1020100038823A KR101089562B1 (ko) 2010-04-27 2010-04-27 고화질 미디어 방송을 위한 피투피 라이브 스트리밍 시스템 및 방법

Publications (2)

Publication Number Publication Date
WO2011136481A2 true WO2011136481A2 (fr) 2011-11-03
WO2011136481A3 WO2011136481A3 (fr) 2012-03-01

Family

ID=44862000

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2011/002457 Ceased WO2011136481A2 (fr) 2010-04-27 2011-04-07 Système d'envoi en flux continu direct de type p2p et procédé destiné à des diffusions multimédia haute définition

Country Status (2)

Country Link
KR (1) KR101089562B1 (fr)
WO (1) WO2011136481A2 (fr)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104184757A (zh) * 2013-05-22 2014-12-03 河南工业大学 一种面向流媒体直播系统的云平台资源调度方法
CN106817613A (zh) * 2015-11-30 2017-06-09 腾讯科技(深圳)有限公司 实现音视频内容播放的方法和装置
JP2017126983A (ja) * 2016-01-12 2017-07-20 ネイバー コーポレーションNAVER Corporation 生中継データを共有する方法およびシステム
WO2022247894A1 (fr) * 2021-05-27 2022-12-01 北京字节跳动网络技术有限公司 Procédé et appareil de configuration de service pour salle de diffusion en direct, et dispositif et support

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8948081B2 (en) * 2012-04-13 2015-02-03 Intel Corporation Device, system and method of multiple-stream wireless communication
KR101397183B1 (ko) 2013-05-30 2014-05-19 주식회사 솔박스 스트리밍 서비스에서의 재생 목록 파일 관리 방법 및 그 장치
KR101451957B1 (ko) * 2013-06-05 2014-10-16 에스케이플래닛 주식회사 클라우드 컴퓨팅 기반 단말 장치간 스트리밍 서비스 시스템, 클라우드 서버를 이용한 단말 장치간 스트리밍 서비스 방법 및 이를 위한 장치
KR102130739B1 (ko) * 2013-09-27 2020-07-06 삼성전자주식회사 송신 장치, 수신 장치 및 그 제어방법
KR102210409B1 (ko) 2015-01-02 2021-01-29 에스케이텔레콤 주식회사 라이브 스트리밍 컨텐츠 제공 방법, 이를 위한 라이브 스트리밍 캐시 장치 및 이를 위한 프로그램을 기록한 컴퓨터 판독 가능한 기록매체
KR102174360B1 (ko) 2015-07-28 2020-11-04 에스케이텔레콤 주식회사 스트리밍 서비스 제공 방법 및 이를 위한 장치
KR20170018603A (ko) 2015-08-10 2017-02-20 에스케이텔레콤 주식회사 스트리밍 서비스 제공 방법 및 이를 위한 장치
KR102281217B1 (ko) 2015-10-30 2021-07-23 에스케이텔레콤 주식회사 인코딩 방법 및 디코딩 방법, 그리고 이를 위한 장치
KR102209782B1 (ko) 2015-11-02 2021-01-28 에스케이텔레콤 주식회사 스트리밍 서비스 제공 방법 및 이를 위한 장치
KR20170097546A (ko) * 2016-02-18 2017-08-28 에스케이텔레콤 주식회사 이종 네트워크상에서의 컨텐츠 전송 방법 및 이를 위한 장치
KR102436443B1 (ko) * 2020-12-21 2022-08-25 펜타시큐리티시스템 주식회사 실시간 데이터 전송 시스템에서의 자원 공유 제어 방법 및 장치
US11936535B2 (en) 2021-10-29 2024-03-19 Samsung Electronics Co., Ltd. Server and electronic device for transmitting and receiving stream data and method for operating the same
KR102480326B1 (ko) * 2021-12-17 2022-12-23 주식회사 디나텍 무선 통신 중계 기능을 구비한 마을 무선 방송 장치 및 이를 이용한 방법

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7593333B2 (en) * 2004-07-07 2009-09-22 Microsoft Corporation Efficient one-to-many content distribution in a peer-to-peer computer network
KR100537840B1 (ko) 2005-05-16 2005-12-20 넷플라이주식회사 대화형 고화질 방송이 가능한 자원 및 방송 피어 투 피어네트워크 구조
US9094416B2 (en) 2006-11-29 2015-07-28 Thomson Licensing Contribution aware peer-to-peer live streaming service
US8997206B2 (en) * 2007-06-06 2015-03-31 Avaya Inc. Peer-to-peer network over a virtual private network

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104184757A (zh) * 2013-05-22 2014-12-03 河南工业大学 一种面向流媒体直播系统的云平台资源调度方法
CN104184757B (zh) * 2013-05-22 2018-02-02 河南工业大学 一种面向流媒体直播系统的云平台资源调度方法
CN106817613A (zh) * 2015-11-30 2017-06-09 腾讯科技(深圳)有限公司 实现音视频内容播放的方法和装置
JP2017126983A (ja) * 2016-01-12 2017-07-20 ネイバー コーポレーションNAVER Corporation 生中継データを共有する方法およびシステム
US10567454B2 (en) 2016-01-12 2020-02-18 Naver Corporation Method and system for sharing live broadcast data including determining if an electronic device is a seed device in response to determining the relationship a random value has with a setting value
WO2022247894A1 (fr) * 2021-05-27 2022-12-01 北京字节跳动网络技术有限公司 Procédé et appareil de configuration de service pour salle de diffusion en direct, et dispositif et support

Also Published As

Publication number Publication date
WO2011136481A3 (fr) 2012-03-01
KR20110119229A (ko) 2011-11-02
KR101089562B1 (ko) 2011-12-05

Similar Documents

Publication Publication Date Title
WO2011136481A2 (fr) Système d'envoi en flux continu direct de type p2p et procédé destiné à des diffusions multimédia haute définition
US7287180B1 (en) Hardware independent hierarchical cluster of heterogeneous media servers using a hierarchical command beat protocol to synchronize distributed parallel computing systems and employing a virtual dynamic network topology for distributed parallel computing system
WO2011136496A2 (fr) Procédé et appareil de lecture d'un contenu en direct
US7324555B1 (en) Streaming while fetching broadband video objects using heterogeneous and dynamic optimized segmentation size
US8977769B2 (en) System for managing lossless failover in an audio-bridging (AVB) network
JP4034780B2 (ja) ディジタル・コンテンツ配信システム、ディジタル・コンテンツ配信方法、該方法を実行するためのプログラム、該プログラムを記憶したコンピュータ可読な記録媒体、およびそのためのサーバおよびクライアント
US20180063212A1 (en) System and method of minimizing network bandwidth retrieved from an external network
WO2020192152A1 (fr) Procédé de transmission vidéo, nœud racine, nœud enfant, serveur p2p, et système
US20100138531A1 (en) Real time protocol stream migration
WO2012173389A2 (fr) Procédé et appareil pour transmettre et recevoir un contenu multimédia dans un système multimédia
US8145778B2 (en) Method and system for transitioning streamed digital video content between stream servers in a digital video network
JP2013211896A (ja) 要求応答並列ビデオサーバにおける負荷分散及び受付予定管理
JP2009100411A (ja) 映像配信システム、映像中継装置、及び映像中継方法
WO2014204192A1 (fr) Appareil et procédé de réception de contenu de diffusion à partir d'un flux de diffusion et d'un autre emplacement
WO2012081823A1 (fr) Procédé permettant de proposer une liste de suggestions d'appairage, procédé destiné à former un réseau p2p, dispositif à application p2p et terminal et dispositif de réseau servant à former un réseau p2p
US20140297884A1 (en) Delivering a video stream
US7508827B2 (en) Multicast routing program, multicast routing method, and multicast router
US20100135168A1 (en) Method for automatically determining a group of pairs located close to another pair in a communication network and associated server, analysis device and communication device
JP2008177719A (ja) 視聴状況監視方法、視聴状況監視装置、視聴状況監視プログラムおよび視聴状況監視システム
US20240179200A1 (en) System and method of minimizing network bandwidth retrieved from an external network
JP5333451B2 (ja) コンテンツ配信システム
US8730985B2 (en) Technique for providing on a program channel composite programming content attributed to different sources
WO2015194906A1 (fr) Procédé et dispositif de fourniture de service de diffusion basé sur un réseau hétérogène
EP1806870B1 (fr) Procédé pour la mise à disposition de données et système de transmission de données
WO2002056549A1 (fr) Dispositif de communication et procede de communication

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

Country of ref document: EP

Kind code of ref document: A2

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 11775187

Country of ref document: EP

Kind code of ref document: A2