WO2012081823A1 - Method for providing a peering suggestion list, method for forming a p2p network, p2p application device, and terminal and network device for forming a p2p network - Google Patents
Method for providing a peering suggestion list, method for forming a p2p network, p2p application device, and terminal and network device for forming a p2p network Download PDFInfo
- Publication number
- WO2012081823A1 WO2012081823A1 PCT/KR2011/008137 KR2011008137W WO2012081823A1 WO 2012081823 A1 WO2012081823 A1 WO 2012081823A1 KR 2011008137 W KR2011008137 W KR 2011008137W WO 2012081823 A1 WO2012081823 A1 WO 2012081823A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- peer
- peering
- network
- list
- stream
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/64—Routing or path finding of packets in data switching networks using an overlay routing layer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
- H04L47/2425—Traffic characterised by specific attributes, e.g. priority or QoS for supporting services specification, e.g. SLA
- H04L47/2433—Allocation of priorities to traffic types
-
- 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/1044—Group management mechanisms
- H04L67/1046—Joining mechanisms
-
- 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/50—Network services
- H04L67/54—Presence management, e.g. monitoring or registration for receipt of user log-on information, or the connection status of the users
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0852—Delays
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0876—Network utilisation, e.g. volume of load or congestion level
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/60—Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client
- H04N21/63—Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
- H04N21/632—Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing using a connection between clients on a wide area network, e.g. setting up a peer-to-peer communication via Internet for retrieving video segments from the hard-disk of other client devices
Definitions
- the disclosed technique relates to a method for providing a list of peering agents, a method for forming a P2P network, a P2P application device, a terminal for forming a P2P network, and a network device, but are not limited to Proactive Network Provider Participation for P2P (P4P).
- P4P Proactive Network Provider Participation for P2P
- a method and apparatus for forming a framework-based P2P overlay network are provided.
- P4P Proactive Network Provider Participation for P2P
- DCIA Distributed Computing Industry Association
- a server operating on the network service provider side tells a P2P application server (in the case of a tracker infrastructure) or a peer (in the case of a tracker-less architecture) the network state, network policy, and network capability. Network information).
- the P2P application server or peer controls the P2P traffic by reflecting such network information and application requirements.
- P4P aims to make optimal use of network resources while improving or maintaining the performance of P2P applications.
- the technical problem to be solved by the disclosed technology is to provide a method for providing a list of peering agents, a method for forming a P2P network, a P2P application device, a terminal for forming a P2P network, and a network device.
- a first aspect of the disclosed technology provides a peer to peer (P2P) application device for providing a peering proposal list to a terminal to newly join a P2P network.
- P2P peer to peer
- a method of forming a peer-to-peer network by a terminal comprising: transmitting a subscription request message for the P2P network to a P2P application device; Forming a P2P connection with at least one peer included in a Peering Suggestion List provided from the P2P application device; Receiving a playback synchronization point from at least one peer that has established the connection to determine an initial synchronization point; And receiving a substream from at least one peer that forms the connection based on the initial synchronization point.
- a third aspect of the disclosed technology is based on a stream availability message provided from at least one peer forming a P2P network, wherein the stream availability weight indicates a degree to which the peer can stably provide a stream.
- a stream availability module for calculating a;
- an intelligent peering module for generating a list of peering agents based on the stream availability weights and providing the list of peering agents to the terminal upon receiving a subscription request message for a P2P network from the terminal. to provide.
- a fourth aspect of the disclosed technology to achieve the above technical problem is a partnership manager for forming a P2P connection with at least one peer based on a list of peering agents received from a P2P application device in response to a subscription request message of a P2P network;
- a synchronization module that receives a playback synchronization point from the peer that formed the connection and determines an initial synchronization point based on the provided at least one playback synchronization point;
- a stream manager receiving a substream from at least one of the peers which form the connection from a point preceding a predetermined segment in the initial synchronization point.
- a fifth aspect of the disclosed technology is delayed by adding delays occurring in all links on a path from a point of presence ID-i to a point of presence ID-j.
- a link congestion state cost calculating unit that calculates a link congestion state cost by multiplying link congestion states of all links on the path from PID-i to PID-j, wherein the link congestion state is a link utilization rate of a corresponding link.
- a network device that is determined to be zero if greater than the utilization limit and to one if less than the link utilization limit.
- Embodiments of the disclosed technology may have effects including the following advantages. However, since the embodiments of the disclosed technology are not meant to include all of them, the scope of the disclosed technology should not be understood as being limited thereto.
- an ISP Internet Service Provider
- an ISP Internet Service Provider
- P2P live multimedia streaming service it has the advantage of improving streaming continuity, reducing playback start delay and control overhead.
- the synchronization method according to an embodiment of the disclosed technology it is possible to reduce the deviation of the playback point between peers participating in the system.
- FIG. 1 is a diagram illustrating a system for a P2P network in accordance with an embodiment of the disclosed technology.
- FIG. 2 is a flowchart illustrating a method of forming a P2P network according to an embodiment of the disclosed technology.
- FIG. 3 is a flowchart illustrating a method for generating a list of peering agents by a P2P application device according to an embodiment of the disclosed technology.
- FIG. 4 is a flowchart illustrating a method of adding an intra-PID peer to a list of peering agents, in accordance with an embodiment of the disclosed technique.
- FIG. 5 is a flow chart illustrating a method of adding an inter-PID peer to a list of peering agents, in accordance with an embodiment of the disclosed technique.
- FIG. 6 is a diagram for describing a phenomenon in which peers do not synchronize with a source peer in a conventional data-driven structure.
- FIG. 7 is a flowchart illustrating a method of synchronizing playback points of a terminal and a source peer according to an embodiment of the disclosed technology.
- FIG. 8 is a diagram for describing a method of determining an initial synchronization point according to an embodiment of the disclosed technology.
- FIG. 9 is a graph comparing traffic variation on a link with a conventional scheme in a P2P network according to an embodiment of the disclosed technology.
- FIG. 10 is a graph comparing average stream persistence against system size in a P2P network according to an embodiment of the disclosed technology.
- FIG. 11 is a graph comparing a playback start delay with respect to a system size in a P2P network according to an embodiment of the disclosed technology.
- FIG. 12 is a graph comparing control overhead with a conventional scheme in a P2P network according to an embodiment of the disclosed technology.
- FIG. 13 is a graph comparing a playback synchronization difference between a source peer and a peer in a P2P network according to an embodiment of the disclosed technology.
- first and second are intended to distinguish one component from another, and the scope of rights should not be limited by these terms.
- first component may be named a second component, and similarly, the second component may also be named a first component.
- each step may occur differently from the stated order unless the context clearly dictates the specific order. That is, each step may occur in the same order as specified, may be performed substantially simultaneously, or may be performed in the reverse order.
- the server operating at the network service provider side provides routing cost, link congestion cost information, delay between PoPs, and the like to reflect the peering decision of the P2P system.
- Such a P2P network structure can effectively support a live multimedia streaming P2P system as well as improving network resource utilization which is a basic purpose of P4P.
- the peer-to-peer network structure reflects the upload / download capacity constraint for each peer when peering is performed in the same PoP, so that peering in PoP is most advantageous in terms of delay and bandwidth utilization.
- the peer having a lot of streams is applied to the peering first.
- playback synchronization between peers may be considered as a factor that affects the quality of service of live multimedia streaming along with the continuous streaming and the stability of the system.
- Playback synchronization is one of the indicators related to guaranteeing real-time of live streaming.
- the existing live multimedia streaming P2P system takes a data-driven structure in which peers periodically exchange buffer maps with partner peers and stream availability information and deliver streams on a mesh basis.
- the data-driven structure determines a point before a range as a stream request start point based on a substream in a buffer map of its partner peers for rapid distribution of content.
- the replay synchronization method of the data-driven structure has an advantage that the stream secured by the peer can be obtained quickly, thereby reducing the time required for initial buffering.
- the initial request point is determined based on the buffer map of the peer regardless of the playback point of the source peer, so that the variation of the playback point between participating peers may increase.
- Services requiring concurrency such as sports live broadcasting, may cause problems in user interaction while viewing different screens between peers using the service.
- Increasing playback point deviations can impair service real-time.
- the P2P overlay network structure proposed in the present specification is a playback synchronization that can control the difference of playback points between source peers and peers within a certain range, not relative playback synchronization between adjacent peers that send and receive streams. It includes a mechanism.
- a system 100 for a P2P network includes a P2P application device 110, a terminal 120, a network device 130, and one or more peers forming a P2P network.
- the P2P network may be a P2P overlay network system based on the P4P framework, and peers forming the P2P network may be divided into partner peers not having a parent (child) peer relationship.
- the P2P application device 110 may be a bootstrap server, and the network device 130 may be an iTracker, which is a server of an ISP that provides network information in P4P.
- the P2P application device 110 is an entry node of a P2P system and is a type of application server.
- the P2P application device 110 may include an intelligent peering module 112 and a stream availability module 114.
- the intelligent peering module 112 receives the subscription request message for the P2P network from the terminal 120, the intelligent peering module 112 generates a list of peering agents based on the stream availability weights, and provides the generated list of peering agents to the terminal 120. do.
- the list of peering agents is a list of peers most suitable for communicating with the terminal 120, that is, a peer requesting a new join among peers entering the P2P system.
- the intelligent peering module 112 may include network information received from the network device 130, capacity of an upload / download link received from the terminal 120, and stream availability calculated by the stream availability module 114. Use the information to select a peer. Once the list of peering proposals for the selected peers is generated, the intelligent peering module 112 provides it to the terminal 120.
- Stream availability module 114 calculates stream availability weights.
- the stream availability weight indicates the degree to which the peer can stably provide the stream.
- the stream availability weight may be calculated based on stream available messages provided from at least one peer forming a P2P network. For example, the stream availability module 114 periodically calculates the degree to which each peer can reliably provide a stream based on the stream available messages provided by peers joining the P2P system and the time the peers have entered the P2P system. .
- the terminal 120 is a device to newly join the P2P overlay network. After the connection is established with peers forming the P2P network, the terminal 120 becomes a member peer of the P2P network.
- the terminal 120 includes a wired / wireless terminal such as a computer, a laptop, a server, a PDA, a laptop, or a mobile phone that can provide multimedia streaming data to or receive from other peers.
- the terminal 120 may include a partnership manager 122 and a stream manager 124.
- the partnership manager 122 manages information about a partner peer (ie, a parent peer, a child peer, a parent peer and a partner peer other than the child peer) of the terminal 120.
- the partnership manager 122 allows the terminal 120 to form a P2P connection with at least one peer based on the list of peering agents.
- the list of peering proposals may be provided from the P2P application device 110 in response to the subscription request message of the P2P network.
- the subscription request message of the P2P network is transmitted to the P2P application device 110 when the terminal 120 wants to join the P2P network.
- the stream manager 124 requests the stream to the parent peer of the terminal 120 and delivers the stream to the child peer of the terminal 120.
- the stream manager 124 periodically checks the buffer of the terminal 120 and requests a partner peer if there is a segment that has not been received yet but has not yet received the segment. Unlike FIG.
- the terminal 120 may further include a synchronization module (not shown).
- the synchronization module may be provided with a playback synchronization point from a peer that has established a connection with the terminal 120, and determine an initial synchronization point based on the provided playback synchronization point.
- the stream manager 124 requests a stream from at least one of the peers that have established a connection from a point before the segment at the initial synchronization point. The peer requesting the stream provides the stream to the terminal 120.
- the network device 130 is a type of network server and provides network status information to the P2P application device 110 as a node for monitoring network status.
- the network device 130 according to an embodiment includes a delay cost calculator 132 and a link congestion state cost calculator 134.
- the delay cost calculator 132 calculates a delay cost by adding delays occurring on all links on a path from the point of presence ID-i to the point of presence ID-j.
- the link congestion state cost calculator 134 calculates the link congestion state cost by multiplying the link congestion states of all links on the path from PID-i to PID-j.
- the link congestion state is determined as 0 when the link utilization rate of the corresponding link is greater than the link utilization limit and 1 when the link utilization rate is less than the link utilization limit.
- the P2P network may be a P4P-framework based P2P system using the concept of substreams.
- the P4P-framework based P2P overlay system has a hybrid structure that combines multiple tree overlays and mesh overlays.
- the multiple tree overlay is a tree for each substream, where each substream is passed to the push mechanism through the designated parent peer.
- the mesh overlay is a secondary overlay provided by requesting an emergency segment through any partner peer.
- the terminal 120 may be a parent peer that delivers one or more substreams to a child peer, and may be a parent peer in some substreams, and a partner peer in other substreams.
- the child peer pulls the corresponding substream from each parent peer, and the parent peer pushes all segments of the substream requested by the child peer. If the terminal 120 has not received some segment of the corresponding substream from the parent peer, the terminal 120 requests the segment from one of the partner peers.
- FIGS. 1 and 2 are flowchart illustrating a method of forming a P2P network according to an embodiment of the disclosed technology. A procedure of configuring a P2P overlay network by the P2P network device 110, the terminal 120, and the network device 130 will be described with reference to FIGS. 1 and 2.
- the terminal 120 to receive the P2P service transmits a subscription request message for the P2P network to the P2P application device 110.
- the subscription request message includes information regarding at least one of an Internet Protocol (IP) address, a Point of Presence ID (PID), an Autonomous System (AS) number, and an upload / download link capacity of the terminal 120. can do.
- IP Internet Protocol
- PID Point of Presence ID
- AS Autonomous System
- the PID and the AS number may be obtained in the process of obtaining an IP address from the user terminal 120.
- the P2P application device 110 requests network state information from the network device 130 of the group to which the terminal 120 belongs.
- the P2P application device 110 may periodically request network state information from the network device 130 of the AS to which the terminal 120 belongs.
- the network state information may include delay costs, link congestion costs, routing costs, and the like.
- the network device 130 collects or calculates the requested network state information.
- Routing costs, delay costs, and link congestion costs can be collected and calculated periodically.
- the delay cost may be calculated as the sum of the delays of all the links e on the path from PID-i to PID-j.
- the delay cost d ij may be expressed as Equation 1.
- path (i, j) is a path from PID-i to PID-j
- d e represents the delay of the link e.
- the link congestion cost may be calculated as the product of the link congestion states of all links e on the path from PID-i to PID-j.
- the link congestion state u e of the link e is determined to be 0 if the link utilization rate l e is greater than the limit of the link utilization rate, LT e , and 1 if it is not large. If the link utilization l e is larger than the limit of link utilization LT e , the link is considered congested so as not to increase the amount of traffic passing through the link.
- the link utilization rate l e may be calculated as shown in Equation 2.
- the link congestion state cost u ij may be calculated as a product of the link congestion state u e , and thus may be expressed as Equation 3 below.
- the routing cost may be calculated as the sum of the routing costs of all links e on the path from PID-i to PID-j.
- the routing cost r ij may be expressed as in Equation 4.
- r e represents the routing cost of the link e.
- the network device 130 provides the P2P application device 110 with network state information collected or calculated in operation S215.
- the P2P application device 110 generates a list of peering agents for the terminal 120 newly requesting to join the P2P network.
- the P2P application device 110 along with a pre-calculated stream availability weight for at least one peer previously subscribed to the P2P network, the delay cost, link congestion cost or routing cost
- a list of peering agents may be generated.
- the stream availability weight indicates the degree to which the peer can stably provide the stream.
- the P2P application device 110 provides the terminal 120 with the list of peering agents generated in operation S225.
- the terminal 120 determines at least one peer to form a connection based on the provided list of peering agents (S235), and forms a connection with the determined peer (S240). That is, the terminal 120 requesting to join may establish a connection with a parent peer and a partner peer of a peering agent list received from the P2P application device 110.
- the terminal 120 is provided with a stream from at least one of the peers that form a connection.
- the terminal 120 may be provided with a playback synchronization point of the source from the connected partner peer for synchronization with the source peer.
- the terminal 120 may determine an initial synchronization point based on a playback synchronization point provided from at least one partner peer, and request a stream from a parent peer connected from a point preceding a predetermined segment at the determined initial synchronization point.
- a detailed synchronization method will be described with reference to FIGS. 6 to 8.
- step S250 when the terminal 120 subscribed to the P2P network receives the stream from the connected peer, the terminal 120 transmits a stream available message to the P2P application device 110.
- the terminal 120 when the terminal 120 receives an initial stream from a connected peer, the terminal 120 transmits a first NOTIFY message (Notify-f) to the P2P application device 110.
- the first NOTIFY message indicates that the terminal 120 has received an initial stream from a connected peer.
- the terminal 120 transmits a second NOTIFY message (Notify-p) to the P2P application device 110.
- the second NOTIFY message indicates that the terminal 120 has received a stream from the connected peer to the initial synchronization point.
- the first and second NOTIFY messages may be used to calculate stream availability weights in step S255.
- step S255 the P2P application device 110 calculates a stream availability weight of the terminal 120 subscribed to the P2P network based on the stream available message received in step S250.
- Stream availability refers to the degree to which a peer can reliably provide a multimedia stream.
- the stream availability weight is used in the process of generating a list of peering agents in step S225.
- the stream availability weight may be calculated and updated periodically for each peer subscribed to the P2P network, according to one embodiment.
- the P2P application device 110 may stream based on a stream available message (Notify-f, Notify-p) sent after a peer joining the P2P network obtains a substream, and the time remaining in the system thereafter.
- Availability weights and stream availability weights can be calculated.
- Stream availability may be calculated by dividing into three steps.
- the first step is to receive the first segment from the connected peer (eg, parent peer) after the peer has joined the P2P network.
- the second step is until the peer buffers up to the initial synchronization point determined by the playback synchronization mechanism.
- the third step is after buffering up to the initial synchronization point.
- stream availability may be calculated as in Equation 5.
- t n init is the elapsed time after peer n joins to receive the first segment from the connected peer
- t n c is the initial synchronization after peer n receives the first segment
- t n s is the time the peer n stays in the system after buffering to the initial synchronization point
- ⁇ , ⁇ , ⁇ represents the weight for each step.
- t n init may be determined by the time until peer n receives a Notify-f message after joining the P2P network.
- t n c is the time from peer n to the Notify-p message after receiving the Notify-f message
- t n s is the time to stay in the P2P network after the peer n receives the Notify-p message.
- each weight ⁇ , ⁇ , and ⁇ are applied differently. Referring to Equation 5, the higher the stream availability is, the more the peer secured the stream in a short time from the peer n to which the peer n is connected. Also, the longer the peer n stays in the system, the higher the stream availability. Accordingly, it can be seen that stream availability is calculated in consideration of the stability of the peer (eg, parent peer) connected to peer n and the persistence of peer n.
- the P2P application device 110 may calculate stream availability weights for the peers.
- the stream availability weight w n of peer n may be calculated as the ratio of the stream availability of peer n to the sum of the stream availability of active peers located at the same PoP as peer n.
- the stream availability weight w n may be expressed as in Equation 6.
- p n represents stream availability of peer n
- p a represents stream availability of peer a belonging to A
- A represents a set of active peers located in the same PoP.
- the stream availability weight calculated in step S255 is used when generating a list of peering agents for a newly subscribed terminal in step S225.
- FIG. 3 is a flowchart illustrating a method for generating a list of peering agents by a P2P application device according to an embodiment of the disclosed technology.
- the P2P application device 110 may provide the upload / download link capacity of the terminal 120 and the network device 110 together with the stream availability weight of a peer previously subscribed to the P2P network.
- a list of peering agents may be generated with reference to the received delay cost, link congestion cost, or routing cost.
- the terminal 120 may select a peer to send and receive data according to the generated list of peering agents.
- the P2P application device 110 may generate a list of peering agents in three steps. For example, the P2P application device 110 selects a parent peer for each sub-stream, a peer existing in the same Point of Presence (PoP) as the join requesting terminal 120 (Intra-PID peer: hereinafter, intra-PID peer), Peers that exist in different PoPs in the same AS (Autonomous System) as the terminal 120 (Inter-PID peer: hereinafter, inter-PID peers), and peers that exist in the AS 120 and the different AS (Inter-AS peers) The peers to be added to the peering agent list are selected in the following order: inter-AS). Through this step, the P2P application device 110 may select a parent peer for each sub-stream of the terminal 120 joined to the PID-j.
- PoP Point of Presence
- the P2P application device 110 adds the peers with the available upload bandwidth among the intra-PID peers to the list of peering agents in order of high stream availability weighting (S310). For example, the P2P application device 110 adds peers having available upload bandwidth among intra-PID peers to the stream available peer list for each substream, and adds the peers to the list of peering agents in order of high stream availability weighting. Can be repeated. A detailed method of adding an intra-PID peer to the list of peering agents will be described later with reference to FIG. 4. If the number of intra-PID peers added in the first step is smaller than the number of preset peers (eg, the number of parent peers) (S320), the P2P application device 110 proceeds to the second step.
- the number of intra-PID peers added in the first step is smaller than the number of preset peers (eg, the number of parent peers) (S320)
- the P2P application device 110 selects a peer from the inter-PID peer and adds it to the list of peering agents (S330).
- P2P application unit 110 may link congestion cost (u ij) is 1, and the delay costs (d ij) the delay threshold: routing cost for small PoP than (DT Delay Threshold) (r ij ) May be selected in a low order, and the peers in the selected PoP may be added to the list of peering agents (S330).
- DT Delay Threshold routing cost for small PoP than
- r ij routing cost for small PoP than
- the P2P application device 110 adds the inter-AS peer of the AS preferred by the ISP (Internet Service Provider) to which the terminal 120 belongs (S350).
- ISP Internet Service Provider
- the partner peer in (m-k) is additionally selected.
- s is a system parameter indicating the number of sub-streams
- m is the number of partner peers
- k is the number of peers selected as parent peers.
- K has a value less than or equal to s since the same peer may be selected as the parent peer for one or more substreams.
- Partner peer selection is done in the same way as parent peer selection, but does not take into account the available bandwidth of the peer. This is because the partner peer is a peer that compensates for missing segments in the substream sent by the parent peer, so there is no constant bandwidth requirement.
- the parent peer may be changed.
- a peer may suddenly leave the system or fail to provide continuous service due to insufficient upload bandwidth. Therefore, it is very important to discover this in advance and select a new peer. To this end, it is necessary to detect the withdrawal of the other peer or the service that cannot be maintained due to insufficient upload bandwidth before the time of the playback of the segment that is not being transmitted and the method of selecting a new peer.
- the buffer map-based data-driven scheme monitors the buffer map received from the parent peer and partner peers to detect the delay of the substream in advance and select a new parent peer.
- This method can detect the substream delay in itself and the substream delay in the parent peer in advance through the deviation of the substream delay between the parent peer and itself, the substream delay between the parent peer and the partner peer.
- the overhead of buffermap exchange between parent peers and partners is very large.
- the terminal 120 instead of using the buffer map, the terminal 120 detects a parent peer that cannot provide the substream by monitoring the state of the currently received substream. To determine when to start monitoring, the present embodiment defines the minimum amount of segment T b to be buffered after requesting the segment of the playback start point from the parent peer. Terminal 120 checks each from when the amount of the buffered segment exceeds T b buffer check intervals (T i) buffer. If there is a segment not yet received during the buffer check, the terminal 120 requests the segment from any partner peer. The terminal 120 determines whether the partner peer can operate as its new parent peer and whether the parent peer is continuously providing a service through a buffer check.
- T i buffer check intervals
- the terminal 120 may calculate a ratio h of a segment successfully received from the total number of segments requested to the partner peer during the buffer check interval to determine whether the partner peer can operate as its new parent peer. In addition, the terminal 120 may count the number of segments received from the parent peer for each substream during the buffer check interval to check whether the parent peer is continuously providing the service.
- T n the minimum segment criterion to be provided by the parent peer during the buffer check interval
- T n the minimum segment criterion to be provided by the parent peer during the buffer check interval
- the terminal 120 selects a peer whose h exceeds a predetermined threshold among partner peers as a new parent peer for the corresponding substream. If there is no partner peer that satisfies the criteria, the terminal 120 informs the P2P application device 110 of the identifier of the previous parent peer and requests a new parent peer. When the P2P application device 110 is notified of the parent peer change information of the terminal 120, the P2P application device 110 reflects this in later parent peer selection.
- the P2P application device 110 repeats steps S410 to S450 for each substream and selects a parent peer.
- the P2P application device 110 selects intra-PID peers one by one (S410) and determines whether there is an available upload bandwidth (S420). If there is an available upload bandwidth, the P2P application device 110 adds the selected peer to the stream available peer list (S430). If there is no upload bandwidth available, the P2P application device 110 selects another intra-PID peer (S410) and repeats steps S420 to S430.
- the P2P application server 110 sorts the stream available peer list in descending order based on the stream availability weight w n (S440). The P2P application server 110 adds the peers to the list of peering agents in the order in which they are arranged in the stream available peer list (S450).
- the stream available peer list may be configured differently according to the substreams.
- the P2P application device 110 repeats steps S410 to S450 until the number of peers is added to the list of peering agents. Since a plurality of peers may be added to the stream available peer list, the number of repetitions of steps S410 to S450 may be smaller than the number of sub streams. On the other hand, if steps S410 to S450 are repeated for all substreams, but the number of peers added to the peering agent list is smaller than the number of parent peers, the process proceeds to the inter-PID peer selection step (S330).
- the first sub If P2, P1, P5, P6 have been added to the stream availability peer list for the stream in order of stream availability weighting, and P2, P4, P5 has been added to the stream availability peer list for the second substream in order of stream availability weighting, peering
- P2, P1, P5, and P6 are added in the first iteration, and in the second iteration, P2 is added as a parent peer for each substream, and in the second iteration, the process of generating a list of peering agents is terminated.
- peers may not be added to the list of peering agents by the number of parent peers. For example, assuming that the number of substreams is 3 and the number of intra-PID peers excluding the terminal 120 is 2 (Intra-PID peers: P1 and P2), P2 is added to the stream available peer list for the first substream.
- the list of peering agents will contain P2 in the first iteration, and third In an iteration, P1 is added as a parent peer per substream, and in the second iteration no peer is added to the list of peering agents. Therefore, even after the P2P application device 110 repeats steps S410 to S450 by the number of sub streams, the number of peers in the peering agent list is smaller than the number of parent peers. In this case, the P2P application device 110 proceeds to step S330 and selects a peer to add to the list of peering agents from among the inter-PID peers.
- the P2P application device 110 selects one PoP and another PoP to which the terminal 120 subscribes in the AS to which the terminal 120 belongs (S510), whereby the link congestion state cost u ij is increased. It is determined whether or not to 1 (S520).
- the link congestion state cost u ij represents the link congestion state cost between the PID-j joined by the terminal 120 and the PID-i of the PoP selected in step S510.
- the P2P application device 110 determines whether the delay cost d ij is smaller than the delay threshold DT (Slay Threshold) (S530). Delay cost d ij represents the delay cost between the PID-j subscribed to the terminal 120 and the PID-i of the PoP selected in step S510. If the usage cost is less than DT, the P2P application device 110 adds the PID of the corresponding PoP to the PID list (S540). The P2P application device 110 repeats S510 to S540 for the remaining PoPs in the same AS. Thereafter, the P2P application device 110 sorts the generated PID list in ascending order with respect to the routing cost r ij (S550).
- DT delay threshold
- Delay cost d ij represents the delay cost between the PID-j subscribed to the terminal 120 and the PID-i of the PoP selected in step S510. If the usage cost is less than DT, the P2P application device 110 adds the PID of the corresponding PoP to the P
- the P2P application device 110 selects the PIDs in the sorted order and adds the peers of the selected PIDs to the list of peering agents (S560). At this time, the P2P application device 110 may add the peers with available bandwidth among the peers of the selected PID to the list of peering agents in order of high stream availability weight. For example, the method of adding a peer of the selected PID to the list of peering agents may be the same as that of the intra-PID described with reference to FIG. 4.
- the P2P application device 110 adds the inter-PID peer to the list of peering agents until the number of peers of the list of peering agents becomes the number of parent peers. Meanwhile, even after performing the process of adding the inter-PID peer of FIG. 5, the number of peers of the peering agent list may be smaller than the number of parent peers. In this case, the P2P application device 110 proceeds to step S350 to select a peer to add to the list of peering agents among the inter-AS peers.
- FIG. 6 is a diagram for describing a phenomenon in which peers do not synchronize with a source peer in a conventional data-driven structure.
- Playback synchronization is one of the indicators related to guaranteeing real-time of live streaming. For example, in a live multimedia streaming service, a plurality of users may access and request a service at the same time. In such a situation, it is very important for real-time service to ensure that playback synchronization between peers is properly maintained.
- the data-driven structure of FIG. 6 is a structure in which a peer periodically exchanges a buffer map, which is data utilization information, with a partner peer, and requests and receives a substream based on the buffer map in a live multimedia streaming P2P system.
- a buffer map which is data utilization information
- partner peer requests and receives a substream based on the buffer map in a live multimedia streaming P2P system.
- a buffer map at a much later point is received from q. 6 illustrates a buffer map delivery structure and an initial request position (IRP) in a data-driven structure. All peers create and send a buffer map to the partner peer up to the current buffering point. If a peer map fails to catch up with the parent peer and a buffer map is delivered to the child peer (for peers 1 and 6) (In the case of peers 4, 5, 8, 9) will play a point away from the playback point of the source peer. For example, since peer 1 failed to catch up to 400, which is the buffer point of the source peer, peer 1 child peers determine 260 as the IRP based on 360, which is peer 1's buffer point.
- IRP initial request position
- peers 4, 5, and 8 are not in sync with the source peer.
- the peer receives a buffer map of a point much later than the source peer from the parent peer or the partner peer, so that the source peer and the playback point play with a large difference.
- the present specification proposes a mechanism for sharing the playback point of the source peer between all peers, and thus determining the playback start point of the peer. .
- each peer of the P2P network predicts the playback synchronization point of the source peer and shares the playback point of the source peer predicted at each peer.
- the source peer informs its partner peer of its playback synchronization point, and based on this, the partner peer constantly predicts the playback synchronization point of the source peer while participating in the system.
- the predicted source peer's playback synchronization point is delivered to its partner peer so that each peer can share it.
- the synchronization process of the playback point will be described with reference to FIGS. 2 and 7.
- the terminal 120 when the terminal 120 receives a list of peering agents from the P2P application device 110 (S235), the terminal 120 forms a connection with peers of the list of peering agents (S710).
- the terminal 120 When the connection is established, the terminal 120 is provided with a playback synchronization point from at least some partner peers with which the connection is formed (S720).
- all partner peers having a connection may provide a playback synchronization point, but are not limited thereto, and some partner peers having a connection may provide a playback synchronization point.
- the playback synchronization point is a playback synchronization point of the source predicted by each partner peer based on the playback synchronization point provided from the source peer.
- the playback synchronization point may be predicted by the number of frames per second occurring in the stream and may be indicated by a segment number. For example, if t seconds have elapsed since the start of playback of the source, the frame rate of the stream is f / sec, and the average number of segments per frame is l, then the segment number corresponding to the playback point of the source can be predicted as shown in Equation (7). have.
- t is the time elapsed from the start of the source playback
- f is the number of frames occurring per second
- l is the average number of segments per frame.
- the terminal 120 Upon receiving the playback synchronization point from the partner peers who have made the connection, the terminal 120 determines an initial synchronization point based on the provided playback synchronization point (S730).
- the playback synchronization point provided from the peer in step S720 may be different due to the end-to-end delay between the source peer and each peer. Therefore, according to an embodiment, the terminal 120 may determine the earliest point of the at least one playback synchronization point provided in operation S720 as the initial synchronization point.
- the terminal 120 includes the playback playback points T (0), T (1), T (2), T (3), ... which are the most advanced playback points T (0). Can be determined as the initial synchronization point.
- 8 is a diagram for describing a method of determining an initial synchronization point according to an embodiment of the disclosed technology.
- T (0), T (1), T (2), and T (3) each represent playback synchronization points provided from partner peers.
- the terminal 120 requests a stream from at least one segment (eg, a parent peer) among peers that form a connection from a point preceding a predetermined segment at the initial synchronization point (S740).
- the terminal 120 may determine a point before T m (T m is a system parameter) as an initial request point from the initial synchronization point determined in step S730, and request the parent peer to send a segment from that point.
- the parent peer may be one of partner peers that provided a playback synchronization point in step S720, but is not limited thereto.
- step S750 the terminal 120 is provided with the requested stream.
- FIG-13 are graphs for evaluating the performance of a P2P network in accordance with the disclosed technology. Simulation was performed using NS-2 to evaluate the performance of the P2P network (hereinafter, proposed) according to the disclosed technology. As a prior art for performance comparison with the disclosed technique, one of the data-driven methods, CoolStreaming, was used.
- the simulation network is composed of three ASs. A representative router in each AS is connected to a representative router in another AS, and the topology in each AS is composed of a KT-VPN topology. The number of routers in an AS is 36. Each router is considered a PoP, and a peer is connected to each router.
- the link delay between the peer and the router is set to a random delay between 0.1 and 0.2 ms, and the link delay between the router and the router is set to a random delay between 0.5 and 1 ms.
- the bandwidth between routers was set to 200 Mbytes, and the bandwidths of the source peer, network device (iTracker), and P2P application device (bootstrap server) were set to 100 Mbytes.
- the distribution of peers consists of 10%, 20%, 20%, 50% of peers with upload bandwidths of 100Mbyte, 10Mbyte, 1Mbyte, and no uploaders at all. The peers were assumed to join with the Poisson distribution.
- the multimedia streaming file used for the simulation is played at about 400 Kbps at 30 frames per second.
- FIG. 9 is a graph comparing traffic variation on a link with a conventional scheme in a P2P network according to an embodiment of the disclosed technology.
- traffic on the network link is distributed evenly regardless of the size of the system, whereas in the cool streaming scheme, the traffic deviation increases according to the size of the system.
- the proposed scheme proposes peering by receiving network link (iTracker) delays and link congestion status information from the network link. Therefore, P2P traffic is not passed through a path where congestion or delay occurs on the network link, and traffic of a peer can be controlled.
- FIG. 10 is a graph comparing average stream persistence against system size in a P2P network according to an embodiment of the disclosed technology.
- Average stream persistence is the ratio of the number of segments that satisfy the playback deadline among the number of segments to be received from the time when the peer joins and starts playback to the end of playback.
- the average sustainability of the proposed scheme was 99.9% and the coolstreaming scheme was more than 98%, suggesting that the proposed scheme was slightly higher than the coolstreaming scheme.
- the P2P application device informs the list of peers entering the system at random without peer information or network information, whereas in the proposed scheme, the P2P application device 110 receives network state information received from the network device 130 (iTracker).
- peering is proposed using both the peer's stream availability weight and the peer's upload / download link capacity. Therefore, the peers of the proposed scheme are more likely to communicate with the optimal peers and can receive services more stably. As a result, it can be seen that the peering mechanism of the proposed scheme increases the persistence of the live multimedia streaming service.
- FIG. 11 is a graph comparing a playback start delay with respect to a system size in a P2P network according to an embodiment of the disclosed technology.
- the playback start delay is the time after the peer joins to start playback.
- the proposed scheme starts playback later than the coolstream scheme in terms of the minimum value of the playback start delay. This means that since the coolstreaming scheme requests a point earlier than the proposed scheme as the initial request point of the stream, it is highly likely that the parent peer of the coolstreaming scheme has a substream that can be continuously played for 20 seconds.
- the proposed scheme starts playback faster than the coolstream scheme.
- the parent peer of the coolstreaming scheme also does not have a stream that can be played continuously for 20 seconds than the proposed scheme.
- These results indicate that the buffering variation of the parent peer is large in the coolstreaming scheme.
- the peer-to-peer application device since the peer-to-peer application device proposes peering based on the peer's stream availability weight and the peer's bandwidth, it is highly likely to select a peer that can continuously provide the stream as a parent peer.
- control overhead 12 is a graph comparing control overhead with a conventional scheme in a P2P network according to an embodiment of the disclosed technology.
- the control overhead represents the sum of the control message amounts of all peers participating in the system.
- the control overhead in the coolstreaming scheme increases linearly as the system size increases.
- the control overhead of the proposed scheme is not significantly affected by the system size.
- the overhead of control messages for exchanging buffer maps and the gossip-based protocol for discovering peers increases control overhead, which is affected by the increase in system size and the number of partners per peer.
- FIG. 13 is a graph comparing a playback synchronization difference between a source peer and a peer in a P2P network according to an embodiment of the disclosed technology.
- the proposed scheme is better than or equal to the maximum value, the average value, the minimum value, and the standard deviation in all parts of the playback point than the cool streaming method.
- the difference in playback synchronization is affected by the initial request point of the stream and the playback start delay.
- the proposed method predicts the playback point of the source peer to determine the initial request point of the stream, so there is less variation in the playback point than the coolstreaming method.
- the average playback start delay of the proposed scheme is smaller than that of the coolstream scheme, the variation of the playback point is small.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Theoretical Computer Science (AREA)
- Computer And Data Communications (AREA)
Abstract
The disclosed technique relates to a method for providing a peering suggestion list, to a method for forming a P2P network, to a P2P application device, and to a terminal and network device for forming a P2P network; and more particularly, to a method and device for forming a P2P overlay network based on a proactive network provider participation for P2P (P4P) framework, without limitation. From among the embodiments, the method for a peer-to-peer (P2P) application device to provide a peering suggestion list to a terminal which is to be newly registered in a P2P network includes: a step of calculating a stream availability weight for each peer by receiving a stream availability message from at least one peer forming the P2P network; a step of receiving a subscription request message for the P2P from the terminal; a step of generating a peering suggestion list for the terminal on the basis of the stream availability weight; and a step of providing the peering suggestion list to the terminal. The stream availability weight refers to the degree to which each peer stably provides a stream.
Description
개시된 기술은 피어링 제의 리스트를 제공하는 방법, P2P 네트워크를 형성하는 방법, P2P 어플리케이션 장치, P2P 네트워크를 형성하는 단말 및 네트워크 장치에 관한 것으로 보다 상세하지만 제한됨이 없이는 P4P(Proactive network Provider Participation for P2P) 프레임워크 기반의 P2P 오버레이 네트워크를 형성하는 방법 및 장치에 관한 것이다. The disclosed technique relates to a method for providing a list of peering agents, a method for forming a P2P network, a P2P application device, a terminal for forming a P2P network, and a network device, but are not limited to Proactive Network Provider Participation for P2P (P4P). A method and apparatus for forming a framework-based P2P overlay network are provided.
지금까지 제안된 대부분의 P2P(Peer-to-Peer) 시스템들은 네트워크 자원 사용에 제약이 없다는 가정 하에 P2P 어플리케이션 측면에서의 성능 향상을 고려하여 디자인되었다. 그렇기 때문에, 네트워크 서비스 제공자 입장에서, P2P 시스템은 효율적이고 공정한 네트워크 자원 활용이 어렵다는 문제가 있다. 그러나, 이러한 문제를 해결하기 위해 네트워크 서비스 제공자가 P2P 트래픽에 제재를 가하는 방식을 도입하는 것은 P2P 서비스 품질에 있어서도 결정적인 문제를 야기할 수 있다. 이에 DCIA(Distributed Computing Industry Association)의 P4P(Proactive network Provider Participation for P2P) 워킹 그룹은 네트워크(또는 인터넷) 서비스 제공자와 P2P 어플리케이션 간 협력 방안으로 P4P 프레임워크를 제안하였다. P4P에서는 네트워크 서비스 제공자 측에서 동작하는 서버가 P2P 시스템 측의 P2P 어플리케이션 서버(트래커 기반 구조의 경우) 또는 피어(트래커-리스 구조의 경우)에게 네트워크의 상태, 네트워크 정책(policy), 네트워크 능력(capability) 등의 네트워크 정보를 제공한다. P2P 어플리케이션 서버 또는 피어는 이와 같은 네트워크 정보와 어플리케이션 요구사항을 반영하여 P2P 트래픽을 제어한다. P4P는 P2P 어플리케이션의 성능을 향상, 또는 유지시키면서 네트워크 자원을 최적으로 활용하는데 목적을 두고 있다.Most peer-to-peer systems proposed so far have been designed to improve performance in terms of P2P applications under the assumption that network resource usage is not restricted. Therefore, from the network service provider's point of view, the P2P system has a problem that it is difficult to use network resources efficiently and fairly. However, in order to solve such a problem, the introduction of a method in which a network service provider imposes a P2P traffic may cause a critical problem in P2P quality of service. The Proactive Network Provider Participation for P2P (P4P) Working Group of the Distributed Computing Industry Association (DCIA) proposed a P4P framework as a cooperative plan between network (or Internet) service providers and P2P applications. In P4P, a server operating on the network service provider side tells a P2P application server (in the case of a tracker infrastructure) or a peer (in the case of a tracker-less architecture) the network state, network policy, and network capability. Network information). The P2P application server or peer controls the P2P traffic by reflecting such network information and application requirements. P4P aims to make optimal use of network resources while improving or maintaining the performance of P2P applications.
개시된 기술이 이루고자 하는 기술적 과제는 피어링 제의 리스트를 제공하는 방법, P2P 네트워크를 형성하는 방법, P2P 어플리케이션 장치, P2P 네트워크를 형성하는 단말 및 네트워크 장치를 제공하는 데 있다.Disclosure of Invention The technical problem to be solved by the disclosed technology is to provide a method for providing a list of peering agents, a method for forming a P2P network, a P2P application device, a terminal for forming a P2P network, and a network device.
상기의 기술적 과제를 이루기 위하여 개시된 기술의 제1 측면은 P2P(Peer to Peer) 어플리케이션 장치가, P2P 네트워크에 새로이 가입하고자 하는 단말에게 피어링 제의 리스트(Peering Suggestion List)를 제공하는 방법에 있어서, 상기 P2P 네트워크를 형성하고 있는 적어도 하나의 피어로부터 스트림 가용 메시지를 수신하여, 각 피어에 대한 스트림 가용성 가중치를 계산하는 단계; 상기 단말로부터 상기 P2P 네트워크에 대한 가입 요청 메시지를 수신하는 단계; 상기 스트림 가용성 가중치를 기초로, 상기 단말에 대한 피어링 제의 리스트(Peering Suggestion List)를 생성하는 단계; 및 상기 피어링 제의 리스트를 상기 단말에게 제공하는 단계를 포함하고, 상기 스트림 가용성 가중치는, 상기 각 피어가 스트림을 안정적으로 제공할 수 있는 정도를 나타내는 피어링 제의 리스트를 제공하는 방법을 제공한다.In order to achieve the above technical problem, a first aspect of the disclosed technology provides a peer to peer (P2P) application device for providing a peering proposal list to a terminal to newly join a P2P network. Receiving a stream availability message from at least one peer forming a P2P network, calculating a stream availability weight for each peer; Receiving a subscription request message for the P2P network from the terminal; Generating a peering suggestion list for the terminal based on the stream availability weight; And providing the list of peering agents to the terminal, wherein the stream availability weights provide a list of peering agents indicating the degree to which each peer can stably provide a stream.
상기의 기술적 과제를 이루기 위하여 개시된 기술의 제2 측면은 단말이 P2P(Peer-to-Peer) 네트워크를 형성하는 방법에 있어서, 상기 P2P 네트워크에 대한 가입 요청 메시지를 P2P 어플리케이션 장치에 송신하는 단계; 상기 P2P 어플리케이션 장치로부터 제공되는 피어링 제의 리스트(Peering Suggestion List)에 포함된 적어도 하나의 피어와 P2P 연결을 형성하는 단계; 상기 연결을 형성한 적어도 하나의 피어로부터 재생 동기화 지점을 제공받아, 초기 동기화 지점을 결정하는 단계; 및 상기 초기 동기화 지점을 기준으로, 상기 연결을 형성한 적어도 하나의 피어로부터 서브스트림을 제공받는 단계를 포함하는 P2P 네트워크를 형성하는 방법을 제공한다.According to a second aspect of the disclosed technology to achieve the above technical problem, a method of forming a peer-to-peer network by a terminal, the method comprising: transmitting a subscription request message for the P2P network to a P2P application device; Forming a P2P connection with at least one peer included in a Peering Suggestion List provided from the P2P application device; Receiving a playback synchronization point from at least one peer that has established the connection to determine an initial synchronization point; And receiving a substream from at least one peer that forms the connection based on the initial synchronization point.
상기의 기술적 과제를 이루기 위하여 개시된 기술의 제3 측면은 P2P 네트워크를 형성하는 적어도 하나의 피어로부터 제공되는 스트림 가용 메시지를 기초로, 상기 피어가 스트림을 안정적으로 제공할 수 있는 정도를 나타내는 스트림 가용성 가중치를 산출하는 스트림 가용성 모듈; 및 단말로부터 P2P 네트워크에 대한 가입 요청 메시지를 수신하면, 상기 스트림 가용성 가중치를 기초로 피어링 제의 리스트를 생성하고, 상기 피어링 제의 리스트를 상기 단말에게 제공하는 인텔리전트 피어링 모듈을 포함하는 P2P 어플리케이션 장치를 제공한다.In order to achieve the above technical problem, a third aspect of the disclosed technology is based on a stream availability message provided from at least one peer forming a P2P network, wherein the stream availability weight indicates a degree to which the peer can stably provide a stream. A stream availability module for calculating a; And an intelligent peering module for generating a list of peering agents based on the stream availability weights and providing the list of peering agents to the terminal upon receiving a subscription request message for a P2P network from the terminal. to provide.
상기의 기술적 과제를 이루기 위하여 개시된 기술의 제4 측면은 P2P 네트워크의 가입 요청 메시지에 대한 응답으로 P2P 어플리케이션 장치로부터 수신되는 피어링 제의 리스트를 기초로 적어도 하나의 피어와 P2P 연결을 형성하는 파트너십 매니저; 상기 연결을 형성한 피어로부터 재생 동기화 지점을 제공 받고, 상기 제공된 적어도 하나의 재생 동기화 지점을 기초로 초기 동기화 지점을 결정하는 동기화 모듈; 및 상기 초기 동기화 지점에서 소정 세그먼트 앞선 지점부터, 상기 연결을 형성한 피어 중 적어도 하나로부터 서브스트림을 제공받는 스트림 매니저를 포함하는 단말을 제공한다.A fourth aspect of the disclosed technology to achieve the above technical problem is a partnership manager for forming a P2P connection with at least one peer based on a list of peering agents received from a P2P application device in response to a subscription request message of a P2P network; A synchronization module that receives a playback synchronization point from the peer that formed the connection and determines an initial synchronization point based on the provided at least one playback synchronization point; And a stream manager receiving a substream from at least one of the peers which form the connection from a point preceding a predetermined segment in the initial synchronization point.
상기의 기술적 과제를 이루기 위하여 개시된 기술의 제5 측면은 PID-i(Point of Presence ID-i)로부터 PID-j(Point of Presence ID-j)로 가는 경로상의 모든 링크에서 발생하는 지연을 더하여 지연 비용을 산출하는 지연 비용 연산부; 및 PID-i로부터 PID-j로 가는 경로상의 모든 링크의 링크 혼잡 상태를 곱하여 링크 혼잡 상태 비용을 산출하는 링크 혼잡 상태 비용 연산부를 포함하고, 상기 링크 혼잡 상태는, 해당하는 링크의 링크 활용률이 링크 활용률 제한치보다 큰 경우 0으로, 상기 링크 활용률 제한치보다 작은 경우 1로 결정되는 네트워크 장치를 제공한다.In order to achieve the above technical problem, a fifth aspect of the disclosed technology is delayed by adding delays occurring in all links on a path from a point of presence ID-i to a point of presence ID-j. A delay cost calculator for calculating a cost; And a link congestion state cost calculating unit that calculates a link congestion state cost by multiplying link congestion states of all links on the path from PID-i to PID-j, wherein the link congestion state is a link utilization rate of a corresponding link. Provided is a network device that is determined to be zero if greater than the utilization limit and to one if less than the link utilization limit.
개시된 기술의 실시 예들은 다음의 장점들을 포함하는 효과를 가질 수 있다. 다만, 개시된 기술의 실시 예들이 이를 전부 포함하여야 한다는 의미는 아니므로, 개시된 기술의 권리범위는 이에 의하여 제한되는 것으로 이해되어서는 아니 될 것이다. Embodiments of the disclosed technology may have effects including the following advantages. However, since the embodiments of the disclosed technology are not meant to include all of them, the scope of the disclosed technology should not be understood as being limited thereto.
개시된 기술의 일 실시예에 의하면, ISP(Internet Service Provider) 네트워크 측면에서는 네트워크상의 혼잡 링크를 줄이고, 각 링크 별 트래픽 부하를 균등하게 유지할 수 있다는 장점이 있다. P2P 라이브 멀티미디어 스트리밍 서비스 측면에서는 스트리밍의 지속성을 향상시키고, 재생 시작 지연 및 제어 오버헤드를 줄일 수 있다는 장점이 있다. 또한, 개시된 기술의 일 실시예에 따른 동기화 방법에 의하면, 시스템에 참여하고 있는 피어들 간 재생 지점의 편차를 줄일 수 있다.According to an embodiment of the disclosed technology, an ISP (Internet Service Provider) network has an advantage of reducing congested links on a network and maintaining an equal traffic load for each link. In terms of P2P live multimedia streaming service, it has the advantage of improving streaming continuity, reducing playback start delay and control overhead. In addition, according to the synchronization method according to an embodiment of the disclosed technology, it is possible to reduce the deviation of the playback point between peers participating in the system.
도 1은 개시된 기술의 일 실시예에 따른 P2P 네트워크를 위한 시스템을 나타내는 도면이다.1 is a diagram illustrating a system for a P2P network in accordance with an embodiment of the disclosed technology.
도 2는 개시된 기술의 일 실시예에 따른 P2P 네트워크 형성 방법을 설명하기 위한 흐름도이다.2 is a flowchart illustrating a method of forming a P2P network according to an embodiment of the disclosed technology.
도 3은 개시된 기술의 일 실시예에 따라, P2P 어플리케이션 장치가 피어링 제의 리스트를 생성하는 방법을 설명하기 위한 순서도이다.3 is a flowchart illustrating a method for generating a list of peering agents by a P2P application device according to an embodiment of the disclosed technology.
도 4는 개시된 기술의 일 실시예에 따라, 인트라-PID 피어를 피어링 제의 리스트에 추가하는 방법을 설명하기 위한 순서도이다.4 is a flowchart illustrating a method of adding an intra-PID peer to a list of peering agents, in accordance with an embodiment of the disclosed technique.
도 5는 개시된 기술의 일 실시예에 따라, 인터-PID 피어를 피어링 제의 리스트에 추가하는 방법을 설명하기 위한 순서도이다.5 is a flow chart illustrating a method of adding an inter-PID peer to a list of peering agents, in accordance with an embodiment of the disclosed technique.
도 6은 종래 데이터-드리븐 구조에서 피어 들이 소스 피어와 재생 동기가 맞지 않는 현상을 설명하기 위한 도면이다.FIG. 6 is a diagram for describing a phenomenon in which peers do not synchronize with a source peer in a conventional data-driven structure.
도 7은 개시된 기술의 일 실시예에 따라, 단말과 소스 피어의 재생 지점을 동기화하는 방법을 설명하기 위한 흐름도이다.7 is a flowchart illustrating a method of synchronizing playback points of a terminal and a source peer according to an embodiment of the disclosed technology.
도 8은 개시된 기술의 일 실시예에 따라 초기 동기화 지점을 결정하는 방법을 설명하기 위한 도면이다.8 is a diagram for describing a method of determining an initial synchronization point according to an embodiment of the disclosed technology.
도 9는 개시된 기술의 일 실시예에 따른 P2P 네트워크에서 링크상의 트래픽 편차를 종래 방식과 비교하는 그래프이다.9 is a graph comparing traffic variation on a link with a conventional scheme in a P2P network according to an embodiment of the disclosed technology.
도 10은 개시된 기술의 일 실시예에 따른 P2P 네트워크에서 시스템 사이즈에 대한 평균 스트림 지속성을 종래 방식과 비교하는 그래프이다.FIG. 10 is a graph comparing average stream persistence against system size in a P2P network according to an embodiment of the disclosed technology.
도 11은 개시된 기술의 일 실시예에 따른 P2P 네트워크에서 시스템 사이즈에 대한 재생 시작 지연을 종래방식과 비교한 그래프이다.FIG. 11 is a graph comparing a playback start delay with respect to a system size in a P2P network according to an embodiment of the disclosed technology.
도 12는 개시된 기술의 일 실시예에 따른 P2P 네트워크에서 제어 오버헤드를 종래방식과 비교한 그래프이다.12 is a graph comparing control overhead with a conventional scheme in a P2P network according to an embodiment of the disclosed technology.
도 13은 개시된 기술의 일 실시예에 따른 P2P 네트워크에서 소스 피어와 피어 간의 재생 동기화 차이를 종래방식과 비교한 그래프이다.FIG. 13 is a graph comparing a playback synchronization difference between a source peer and a peer in a P2P network according to an embodiment of the disclosed technology.
개시된 기술에 관한 설명은 구조적 내지 기능적 설명을 위한 실시예에 불과하므로, 개시된 기술의 권리범위는 본문에 설명된 실시예에 의하여 제한되는 것으로 해석되어서는 아니 된다. 즉, 실시예는 다양한 변경이 가능하고 여러 가지 형태를 가질 수 있으므로 개시된 기술의 권리범위는 기술적 사상을 실현할 수 있는 균등물들을 포함하는 것으로 이해되어야 한다.Description of the disclosed technology is only an embodiment for structural or functional description, the scope of the disclosed technology should not be construed as limited by the embodiments described in the text. That is, the embodiments may be variously modified and may have various forms, and thus the scope of the disclosed technology should be understood to include equivalents capable of realizing the technical idea.
한편, 본 출원에서 서술되는 용어의 의미는 다음과 같이 이해되어야 할 것이다.On the other hand, the meaning of the terms described in the present application should be understood as follows.
“제1”, “제2” 등의 용어는 하나의 구성요소를 다른 구성요소로부터 구별하기 위한 것으로 이들 용어들에 의해 권리범위가 한정되어서는 아니 된다. 예를 들어, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다.Terms such as “first” and “second” are intended to distinguish one component from another, and the scope of rights should not be limited by these terms. For example, the first component may be named a second component, and similarly, the second component may also be named a first component.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결될 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 한편, 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.When a component is referred to as being "connected" to another component, it should be understood that there may be other components in between, although it may be directly connected to the other component. On the other hand, when a component is said to be "directly connected" to another component, it should be understood that there is no other component in between. On the other hand, other expressions describing the relationship between the components, such as "between" and "immediately between" or "neighboring to" and "directly neighboring to", should be interpreted as well.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한 복수의 표현을 포함하는 것으로 이해되어야 하고, "포함하다" 또는 "가지다" 등의 용어는 설시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.Singular expressions should be understood to include plural expressions unless the context clearly indicates otherwise, and terms such as "include" or "have" refer to features, numbers, steps, operations, components, parts, or parts thereof described. It is to be understood that the combination is intended to be present, but not to exclude in advance the possibility of the presence or addition of one or more other features or numbers, steps, operations, components, parts or combinations thereof.
각 단계들은 문맥상 명백하게 특정 순서를 기재하지 않은 이상 명기된 순서와 다르게 일어날 수 있다. 즉, 각 단계들은 명기된 순서와 동일하게 일어날 수도 있고 실질적으로 동시에 수행될 수도 있으며 반대의 순서대로 수행될 수도 있다.Each step may occur differently from the stated order unless the context clearly dictates the specific order. That is, each step may occur in the same order as specified, may be performed substantially simultaneously, or may be performed in the reverse order.
여기서 사용되는 모든 용어들은 다르게 정의되지 않는 한, 개시된 기술이 속하는 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한 이상적이거나 과도하게 형식적인 의미를 지니는 것으로 해석될 수 없다.All terms used herein have the same meaning as commonly understood by one of ordinary skill in the art unless otherwise defined. Terms such as those defined in the commonly used dictionaries should be construed to be consistent with the meanings in the context of the related art and should not be construed as having ideal or overly formal meanings unless expressly defined in this application. .
기존의 P4P 연구에서는 네트워크상에 병목 영역이 발생되지 않도록 하고, 네트워크 내 유통되는 P2P 트래픽 양을 최소화하기 위해 최대 링크 활용율 (MLU: Maximum Link Utilization) 혹은 링크의 트래픽 양과 피어링이 이루어지는 PoP(Point of Presence)간 홉수의 곱 (BDP: Bandwidth-Distance Product)을 최소화하도록 유도하는 비용을 P2P 시스템에 제공하는 방안을 제시하였다. 그리고 이와 같은 피어링 비용이 주어졌을 때 각 PoP 별 업로드와 다운로드 용량 제약 하에 서로 다른 AS(Autonomous System) 간의 피어링 비율을 줄일 수 있도록 하는 방안을 제안함으로써 네트워크 자원 활용 효율을 높일 수 있도록 하였다.In the existing P4P research, maximum link utilization (MLU) or point-of-presence that is peered with the traffic volume of the link in order to prevent bottlenecks on the network and minimize the amount of P2P traffic distributed in the network. We propose a method to provide the P2P system with a cost that induces to minimize the bandwidth-distance product (BDP). And given such a peering cost, we proposed a method to reduce the peering ratio between different AS (Autonomous System) under the limitation of upload and download capacity for each PoP.
라이브 멀티미디어 스트리밍은 서비스품질에 미치는 지연과 손실율의 영향이 일반적인 데이터보다 훨씬 민감하다. MLU 혹은 BDP의 최소화를 통하여 서비스 성능이 향상되었지만, MLU를 만족하는 피어링이 경우에 따라서는 라이브 멀티미디어 스트리밍의 지연(10초 이하의 종단간 지연) 혹은 손실율(1% 미만의 손실율) 요구를 만족시키지 못할 수 있다. 따라서, 라이브 멀티미디어 스트리밍의 경우는 만족스러운 서비스를 위해 이 보다 좀 더 직접적으로 지연에 관한 제약을 피어링에 반영할 필요가 있다. 본 명세서에서는 네트워크 서비스 제공자 측에서 동작하는 서버가 라우팅 비용, 링크 혼잡상태 비용 정보, PoP 간의 지연 등을 제공하여 P2P 시스템의 피어링 결정에 반영할 수 있도록 하였다. 이와 같은 P2P 네트워크 구조는 P4P의 기본적인 목적인 네트워크 자원 활용 향상과 더불어 라이브 멀티미디어 스트리밍 P2P 시스템을 효과적으로 지원할 수 있도록 한다. 개시된 기술의 일 실시예에 따른 P2P 오버레이 네트워크 구조는 동일 PoP 내에서 피어링이 이루어지는 경우, 각 피어 별 업로드/다운로드 용량 제약을 반영함으로써 지연 및 대역폭 활용 측면에서 가장 유리한 PoP 내 피어링이 이루어질 수 있도록 한다. 또한, 지속적인 스트리밍 서비스를 위해 피어의 스트림 가용성 가중치를 반영함으로써 스트림을 많이 확보하고 있는 피어를 우선적으로 피어링에 적용하도록 한다. In live multimedia streaming, the effects of delay and loss rate on quality of service are much more sensitive than normal data. Service performance is improved by minimizing the MLU or BDP, but peering that meets the MLU does not meet the requirements of delays (end-to-end delays of less than 10 seconds) or loss rates (less than 1%) in some cases. You may not be able to. Therefore, in the case of live multimedia streaming, it is necessary to more directly reflect the delay constraints in peering for satisfactory service. In this specification, the server operating at the network service provider side provides routing cost, link congestion cost information, delay between PoPs, and the like to reflect the peering decision of the P2P system. Such a P2P network structure can effectively support a live multimedia streaming P2P system as well as improving network resource utilization which is a basic purpose of P4P. The peer-to-peer network structure according to an embodiment of the disclosed technology reflects the upload / download capacity constraint for each peer when peering is performed in the same PoP, so that peering in PoP is most advantageous in terms of delay and bandwidth utilization. In addition, by applying the stream availability weight of the peer for the continuous streaming service, the peer having a lot of streams is applied to the peering first.
한편, 스트리밍의 지속성, 시스템의 안정성 등과 함께 라이브 멀티미디어 스트리밍의 서비스 품질에 영향을 미치는 요소로 피어간 재생 동기화가 고려될 수 있다. 재생 동기화는 라이브 스트리밍의 실시간성 보장과 관련된 지표 가운데 하나이다. 재생 동기화를 위해 기존의 라이브 멀티미디어 스트리밍 P2P 시스템은 피어가 파트너 피어들과 스트림 가용 정보인 버퍼맵을 주기적으로 교환하고 메시 기반으로 스트림을 전달하는 데이타-드리븐 구조를 취한다. 데이타-드리븐 구조는 콘텐트의 빠른 배포를 위해서 자신의 파트너 피어들의 버퍼맵에 있는 서브스트림을 기준으로 일정 범위 이전 지점을 스트림 요청 시작 지점으로 결정한다. 데이타-드리븐 구조의 재생 동기화 방법은 상대 피어가 확보하고 있는 스트림을 빠르게 획득할 수 있어 초기 버퍼링을 위해 필요한 시간을 단축시킬 수 있다는 장점을 가진다. 그러나, P2P 오버레이 시스템이 큰 규모일 경우, 소스 피어의 재생 지점과 상관없이 상대 피어의 버퍼맵을 기준으로 초기 요청 지점을 결정하므로, 참여하고 있는 피어들 간 재생 지점의 편차가 커질 수 있다. 스포츠 생중계와 같은 동시성을 요구하는 서비스는 서비스를 이용하는 피어들 간 서로 동일하지 않는 화면을 보면서 사용자간 인터랙션에 문제가 발생할 수 있다. 재생 지점 편차 증가는 서비스의 실시간성을 저해할 수 있다. 이와 같은 문제를 해결하기 위하여 본 명세서에서 제안하는 P2P 오버레이 네트워크 구조는 스트림을 주고받는 인접 피어들 간의 상대적인 재생 동기화가 아닌 소스 피어와 피어들 간 재생 지점의 차를 일정한 범위 내로 제어할 수 있는 재생 동기화 메커니즘을 포함한다.On the other hand, playback synchronization between peers may be considered as a factor that affects the quality of service of live multimedia streaming along with the continuous streaming and the stability of the system. Playback synchronization is one of the indicators related to guaranteeing real-time of live streaming. For playback synchronization, the existing live multimedia streaming P2P system takes a data-driven structure in which peers periodically exchange buffer maps with partner peers and stream availability information and deliver streams on a mesh basis. The data-driven structure determines a point before a range as a stream request start point based on a substream in a buffer map of its partner peers for rapid distribution of content. The replay synchronization method of the data-driven structure has an advantage that the stream secured by the peer can be obtained quickly, thereby reducing the time required for initial buffering. However, when the P2P overlay system is large, the initial request point is determined based on the buffer map of the peer regardless of the playback point of the source peer, so that the variation of the playback point between participating peers may increase. Services requiring concurrency, such as sports live broadcasting, may cause problems in user interaction while viewing different screens between peers using the service. Increasing playback point deviations can impair service real-time. In order to solve this problem, the P2P overlay network structure proposed in the present specification is a playback synchronization that can control the difference of playback points between source peers and peers within a certain range, not relative playback synchronization between adjacent peers that send and receive streams. It includes a mechanism.
도 1은 개시된 기술의 일 실시예에 따른 P2P 네트워크를 위한 시스템을 나타내는 도면이다. 도 1을 참조하면, P2P 네트워크를 위한 시스템(100)은 P2P 어플리케이션 장치(110), 단말(120), 네트워크 장치(130) 및 P2P 네트워크를 형성하는 하나 또는 2 이상의 피어들을 포함한다. P2P 네트워크는 P4P 프레임워크 기반의 P2P 오버레이 네트워크 시스템일 수 있으며, P2P네트워크를 형성하는 피어들은 부모(자식)피어와 부모(자식) 관계에 있지 않은 파트너 피어로 구분될 수 있다. P2P 어플리케이션 장치(110)는 부트스트랩 서버일 수 있으며, 네트워크 장치(130)는 P4P에서 네트워크 정보를 제공하는 ISP 측의 서버인 아이트래커(iTracker)일 수 있다. 1 is a diagram illustrating a system for a P2P network in accordance with an embodiment of the disclosed technology. Referring to FIG. 1, a system 100 for a P2P network includes a P2P application device 110, a terminal 120, a network device 130, and one or more peers forming a P2P network. The P2P network may be a P2P overlay network system based on the P4P framework, and peers forming the P2P network may be divided into partner peers not having a parent (child) peer relationship. The P2P application device 110 may be a bootstrap server, and the network device 130 may be an iTracker, which is a server of an ISP that provides network information in P4P.
P2P 어플리케이션 장치(110)는 P2P 시스템의 진입(entry) 노드로써 어플리케이션 서버의 한 종류이다. 일 실시예에 따른 P2P 어플리케이션 장치(110)는 인텔리전트 피어링 모듈(112)과 스트림 가용성 모듈(114)을 포함할 수 있다. 인텔리전트 피어링 모듈(112)은 단말(120)로부터 P2P 네트워크에 대한 가입 요청 메시지를 수신하면, 스트림 가용성 가중치를 기초로 피어링 제의 리스트를 생성하고, 생성된 피어링 제의 리스트를 단말(120)에게 제공한다. 피어링 제의 리스트는 단말(120), 즉, P2P 시스템에 들어와 있는 피어 중 새롭게 가입(join)을 요청한 피어와 통신하기에 가장 적합한 피어의 리스트이다. 일 실시예에 따라, 인텔리전트 피어링 모듈(112)은 네트워크 장치(130)로부터 받은 네트워크 정보, 단말(120)로부터 받은 업로드/다운로드 링크의 용량(capacity) 및 스트림 가용성 모듈(114)이 산출한 스트림 가용 정보를 이용하여 피어를 선택한다. 선택된 피어들에 대한 피어링 제의 리스트가 생성되면, 인텔리전트 피어링 모듈(112)은 단말(120)에게 이를 제공한다. The P2P application device 110 is an entry node of a P2P system and is a type of application server. The P2P application device 110 according to an embodiment may include an intelligent peering module 112 and a stream availability module 114. When the intelligent peering module 112 receives the subscription request message for the P2P network from the terminal 120, the intelligent peering module 112 generates a list of peering agents based on the stream availability weights, and provides the generated list of peering agents to the terminal 120. do. The list of peering agents is a list of peers most suitable for communicating with the terminal 120, that is, a peer requesting a new join among peers entering the P2P system. According to an embodiment, the intelligent peering module 112 may include network information received from the network device 130, capacity of an upload / download link received from the terminal 120, and stream availability calculated by the stream availability module 114. Use the information to select a peer. Once the list of peering proposals for the selected peers is generated, the intelligent peering module 112 provides it to the terminal 120.
스트림 가용성 모듈(114)은 스트림 가용성 가중치를 산출한다. 스트림 가용성 가중치는 해당 피어가 스트림을 안정적으로 제공할 수 있는 정도를 나타낸다. 스트림 가용성 가중치는 P2P 네트워크를 형성하고 있는 적어도 하나의 피어로부터 제공되는 스트림 가용 메시지를 기초로 산출될 수 있다. 예컨대, 스트림 가용성 모듈(114)은 P2P 시스템에 가입한 피어로부터 제공되는 스트림 가용 메시지 및 피어가 P2P 시스템에 들어와 있는 시간을 기초로 각 피어가 스트림을 안정적으로 제공할 수 있는 정도를 주기적으로 계산한다. Stream availability module 114 calculates stream availability weights. The stream availability weight indicates the degree to which the peer can stably provide the stream. The stream availability weight may be calculated based on stream available messages provided from at least one peer forming a P2P network. For example, the stream availability module 114 periodically calculates the degree to which each peer can reliably provide a stream based on the stream available messages provided by peers joining the P2P system and the time the peers have entered the P2P system. .
단말(120)은 P2P 오버레이 네트워크에 새로이 가입하고자 하는 장치로서, P2P 네트워크를 형성하고 있는 피어들과 연결을 형성한 후에는 P2P 네트워크의 멤버 피어가 된다. 단말(120)은 멀티미디어 스트리밍 데이터를 다른 피어에게 제공하거나 다른 피어로부터 제공받을 수 있는 컴퓨터, 노트북, 서버, PDA, 랩탑 또는 핸드폰 등의 유무선 단말을 포함한다. 일 실시예에 따라, 단말(120)은 파트너십 매니저(122) 및 스트림 매니저(124)를 포함할 수 있다. 파트너십 매니저(122)는 단말(120)의 파트너 피어(즉, 부모 피어, 자식 피어, 부모 피어와 자식 피어가 아닌 파트너 피어)에 대한 정보를 관리한다. 일 실시예에 따라, 파트너십 매니저(122)는 피어링 제의 리스트를 기초로 단말(120)이 적어도 하나의 피어와 P2P 연결을 형성하도록 한다. 피어링 제의 리스트는 P2P 네트워크의 가입 요청 메시지에 대한 응답으로 P2P 어플리케이션 장치(110)로부터 제공될 수 있다. P2P 네트워크의 가입 요청 메시지는 단말(120)이 P2P 네트워크에 가입(join)하기 원하는 경우, P2P 어플리케이션 장치(110)에 송신한다. 스트림 매니저(124)는 단말(120)의 부모 피어에게 스트림을 요청하며, 단말(120)의 자식 피어에게 스트림을 전달한다. 또한 스트림 매니저(124)는 단말(120)의 버퍼를 주기적으로 검사하며 재생 시점이 다다랐으나 아직 받지 못한 세그먼트가 있다면 이를 파트너 피어에게 요청한다. 단말(120)은 도 1과는 달리, 동기화 모듈(미도시)을 더 포함할 수 있다. 동기화 모듈은 단말(120)과 연결을 형성한 피어로부터 재생 동기화 지점을 제공 받고, 제공된 재생 동기화 지점을 기초로 초기 동기화 지점을 결정할 수 있다. 이때, 스트림 매니저(124)는 초기 동기화 지점에서 소정 세그먼트 앞선 지점부터, 연결을 형성한 피어 중 적어도 하나에게 스트림을 요청한다. 스트림을 요청 받은 피어는 단말(120)에게 스트림을 제공한다.The terminal 120 is a device to newly join the P2P overlay network. After the connection is established with peers forming the P2P network, the terminal 120 becomes a member peer of the P2P network. The terminal 120 includes a wired / wireless terminal such as a computer, a laptop, a server, a PDA, a laptop, or a mobile phone that can provide multimedia streaming data to or receive from other peers. According to an embodiment, the terminal 120 may include a partnership manager 122 and a stream manager 124. The partnership manager 122 manages information about a partner peer (ie, a parent peer, a child peer, a parent peer and a partner peer other than the child peer) of the terminal 120. According to an embodiment, the partnership manager 122 allows the terminal 120 to form a P2P connection with at least one peer based on the list of peering agents. The list of peering proposals may be provided from the P2P application device 110 in response to the subscription request message of the P2P network. The subscription request message of the P2P network is transmitted to the P2P application device 110 when the terminal 120 wants to join the P2P network. The stream manager 124 requests the stream to the parent peer of the terminal 120 and delivers the stream to the child peer of the terminal 120. In addition, the stream manager 124 periodically checks the buffer of the terminal 120 and requests a partner peer if there is a segment that has not been received yet but has not yet received the segment. Unlike FIG. 1, the terminal 120 may further include a synchronization module (not shown). The synchronization module may be provided with a playback synchronization point from a peer that has established a connection with the terminal 120, and determine an initial synchronization point based on the provided playback synchronization point. At this time, the stream manager 124 requests a stream from at least one of the peers that have established a connection from a point before the segment at the initial synchronization point. The peer requesting the stream provides the stream to the terminal 120.
네트워크 장치(130)는 네트워크 서버의 한 종류이며 네트워크 상태를 모니터링하는 노드로써 P2P 어플리케이션 장치(110)에게 네트워크 상태 정보를 제공한다. 일 실시예에 따른 네트워크 장치(130)는 지연 비용 연산부(132) 및 링크 혼잡 상태 비용 연산부(134)를 포함한다. 지연 비용 연산부(132)는 PID-i(Point of Presence ID-i)로부터 PID-j(Point of Presence ID-j)로 가는 경로상의 모든 링크에서 발생하는 지연을 더하여 지연 비용을 산출한다. 링크 혼잡 상태 비용 연산부(134)는 PID-i로부터 PID-j로 가는 경로상의 모든 링크의 링크 혼잡 상태를 곱하여 링크 혼잡 상태 비용을 산출한다. 상기 링크 혼잡 상태는, 해당하는 링크의 링크 활용률이 링크 활용률 제한치보다 큰 경우 0으로, 상기 링크 활용률 제한치보다 작은 경우 1로 결정된다. The network device 130 is a type of network server and provides network status information to the P2P application device 110 as a node for monitoring network status. The network device 130 according to an embodiment includes a delay cost calculator 132 and a link congestion state cost calculator 134. The delay cost calculator 132 calculates a delay cost by adding delays occurring on all links on a path from the point of presence ID-i to the point of presence ID-j. The link congestion state cost calculator 134 calculates the link congestion state cost by multiplying the link congestion states of all links on the path from PID-i to PID-j. The link congestion state is determined as 0 when the link utilization rate of the corresponding link is greater than the link utilization limit and 1 when the link utilization rate is less than the link utilization limit.
P2P 네트워크는 서브스트림의 개념을 사용하는 P4P-프레임워크 기반의 P2P 시스템일 수 있다. 일 실시예에 따라, P4P-프레임워크 기반의 P2P 오버레이 시스템은, 멀티플 트리 오버레이와 메시 오버레이를 혼합한 하이브리드 구조를 띤다. 멀티플 트리 오버레이는 각각의 서브스트림이 지정된 부모 피어를 통해 푸시 메커니즘으로 전달되는, 각 서브스트림 별 트리이다. 메시 오버레이는 임의의 파트너 피어를 통해 긴급 세그먼트를 요청하여 제공받는 보조 오버레이이다. 이 때, 단말(120)은 자식 피어에게 하나 이상의 서브스트림을 전달해주는 부모 피어일 수 있으며, 일부 서브스트림에 있어서 부모 피어인 반면, 나머지 서브스트림에 있어서 파트너 피어 일 수 있다. 자식 피어는 각 부모 피어로부터 해당 서브스트림을 풀(pull)하며, 부모 피어는 자식 피어에 의해서 요청된 서브스트림의 모든 세그먼트를 푸시(push)한다. 단말(120)이 부모 피어로부터 해당하는 서브스트림의 일부 세그먼트를 전달받지 못했다면 단말(120)은 파트너 피어들 중 하나에게 그 세그먼트를 요청한다. The P2P network may be a P4P-framework based P2P system using the concept of substreams. According to one embodiment, the P4P-framework based P2P overlay system has a hybrid structure that combines multiple tree overlays and mesh overlays. The multiple tree overlay is a tree for each substream, where each substream is passed to the push mechanism through the designated parent peer. The mesh overlay is a secondary overlay provided by requesting an emergency segment through any partner peer. In this case, the terminal 120 may be a parent peer that delivers one or more substreams to a child peer, and may be a parent peer in some substreams, and a partner peer in other substreams. The child peer pulls the corresponding substream from each parent peer, and the parent peer pushes all segments of the substream requested by the child peer. If the terminal 120 has not received some segment of the corresponding substream from the parent peer, the terminal 120 requests the segment from one of the partner peers.
도 2는 개시된 기술의 일 실시예에 따른 P2P 네트워크 형성 방법을 설명하기 위한 흐름도이다. 도 1 및 도 2를 참조하여 P2P 네트워크 장치(110), 단말(120) 및 네트워크 장치(130)가 P2P 오버레이 네트워크를 구성하는 절차를 설명한다. 2 is a flowchart illustrating a method of forming a P2P network according to an embodiment of the disclosed technology. A procedure of configuring a P2P overlay network by the P2P network device 110, the terminal 120, and the network device 130 will be described with reference to FIGS. 1 and 2.
S205 단계에서, P2P 서비스를 제공받고자 하는 단말(120)은 P2P 네트워크에 대한 가입 요청 메시지를 P2P 어플리케이션 장치(110)에 송신한다. 일 실시예에 따라, 가입 요청 메시지는 단말(120)의 IP(Internet Protocol) 주소, PID(Point of Presence ID), AS(Autonomous System) 번호 및 업로드/다운로드 링크 용량 중 적어도 하나에 관한 정보를 포함할 수 있다. 일례로, PID 및 AS 번호는 사용자(client) 단말(120)이 IP 주소를 획득하는 과정에서 얻을 수 있다.In step S205, the terminal 120 to receive the P2P service transmits a subscription request message for the P2P network to the P2P application device 110. According to an embodiment, the subscription request message includes information regarding at least one of an Internet Protocol (IP) address, a Point of Presence ID (PID), an Autonomous System (AS) number, and an upload / download link capacity of the terminal 120. can do. For example, the PID and the AS number may be obtained in the process of obtaining an IP address from the user terminal 120.
S210 단계에서, P2P 어플리케이션 장치(110)는 단말(120)이 속한 그룹의 네트워크 장치(130)에게 네트워크 상태 정보를 요청한다. 예컨대, P2P 어플리케이션 장치(110)는 단말(120)이 속한 AS의 네트워크 장치(130)에게 네트워크 상태 정보를 주기적으로 요청할 수 있다. 일 실시예에 따라, 네트워크 상태 정보는 지연 비용, 링크 혼잡상태 비용, 또는 라우팅 비용 등을 포함할 수 있다. In operation S210, the P2P application device 110 requests network state information from the network device 130 of the group to which the terminal 120 belongs. For example, the P2P application device 110 may periodically request network state information from the network device 130 of the AS to which the terminal 120 belongs. According to one embodiment, the network state information may include delay costs, link congestion costs, routing costs, and the like.
S215 단계에서, 네트워크 장치(130)는 요청 받은 네트워크 상태 정보를 수집 또는 계산한다. 일 실시예에 따라, 네트워크 장치(130)는 자신이 관리하는 AS의 PID-i(PoP ID-i)로부터 PID-j(PoP ID-j)로 가는 경로 상에 있는 모든 링크 e에 대하여 각 링크의 라우팅 비용, 지연 비용, 링크 혼잡상태 비용을 주기적으로 수집하고 계산할 수 있다. 일 실시예에 따라, 지연 비용은 PID-i로부터 PID-j로 가는 경로상의 모든 링크 e의 지연의 합으로 계산될 수 있다. 지연 비용 dij는 수학식 1과 같이 표현될 수 있다. 이때, path(i,j)는 PID-i로부터 PID-j로 가는 경로, de는 링크 e의 지연을 나타낸다.In operation S215, the network device 130 collects or calculates the requested network state information. According to one embodiment, the network device 130 for each link e for every link e on the path from PID-i (PoP ID-i) of the AS that it manages to PID-j (PoP ID-j). Routing costs, delay costs, and link congestion costs can be collected and calculated periodically. According to one embodiment, the delay cost may be calculated as the sum of the delays of all the links e on the path from PID-i to PID-j. The delay cost d ij may be expressed as Equation 1. At this time, path (i, j) is a path from PID-i to PID-j, d e represents the delay of the link e.
일 실시예에 따라, 링크 혼잡상태 비용은 PID-i로부터 PID-j로 가는 경로상의 모든 링크 e의 링크 혼잡 상태의 곱으로 계산될 수 있다. 링크 e의 링크 혼잡 상태 ue는 링크 활용률 le가 링크 활용률의 제한치인 LTe보다 크면 0으로, 크지 않으면 1로 결정된다. 링크 활용률 le가 링크 활용률의 제한치인 LTe보다 크면 그 링크를 지나는 트래픽의 양을 증가시키지 않기 위하여 그 링크를 혼잡 상태라고 간주하기 때문이다. 링크 활용률 le는 수학식 2와 같이 산출될 수 있다. According to one embodiment, the link congestion cost may be calculated as the product of the link congestion states of all links e on the path from PID-i to PID-j. The link congestion state u e of the link e is determined to be 0 if the link utilization rate l e is greater than the limit of the link utilization rate, LT e , and 1 if it is not large. If the link utilization l e is larger than the limit of link utilization LT e , the link is considered congested so as not to increase the amount of traffic passing through the link. The link utilization rate l e may be calculated as shown in Equation 2.
이때, be는 링크 e를 지나는 트래픽의 양이며, ce는 링크 e의 대역폭이다. 링크 혼잡상태 비용 uij는 링크 혼잡 상태(ue)의 곱으로 계산될 수 있으므로, 수학식 3과 같이 표현될 수 있다. Where b e is the amount of traffic passing through link e and c e is the bandwidth of link e. The link congestion state cost u ij may be calculated as a product of the link congestion state u e , and thus may be expressed as Equation 3 below.
일 실시예에 따라, 라우팅 비용은 PID-i로부터 PID-j로 가는 경로상의 모든 링크 e의 라우팅 비용의 합으로 계산될 수 있다. 라우팅 비용 rij는 수학식 4와 같이 표현될 수 있다. 이때, re는 링크 e의 라우팅 비용을 나타낸다.According to one embodiment, the routing cost may be calculated as the sum of the routing costs of all links e on the path from PID-i to PID-j. The routing cost r ij may be expressed as in Equation 4. At this time, r e represents the routing cost of the link e.
S220 단계에서, 네트워크 장치(130)는 S215 단계에서 수집되거나, 산출된 네트워크 상태 정보를 P2P 어플리케이션 장치(110)에 제공 한다. In operation S220, the network device 130 provides the P2P application device 110 with network state information collected or calculated in operation S215.
S225 단계에서, P2P 어플리케이션 장치(110)는 새로이 P2P 네트워크에 가입을 요청한 단말(120)에 대한 피어링 제의 리스트를 생성한다. 일 실시예에 따라, P2P 어플리케이션 장치(110)는 P2P 네트워크에 기 가입된 적어도 하나의 피어에 대해 미리 산출된 스트림 가용성 가중치(stream availability weight)와 함께, 지연 비용, 링크 혼잡상태 비용 또는 라우팅 비용을 참조하여 피어링 제의 리스트를 생성할 수 있다. 스트림 가용성 가중치는 해당 피어가 스트림을 안정적으로 제공할 수 있는 정도를 나타낸다. 피어링 제의 리스트를 생성하는 구체적인 방법은 도 3을 참조하여 후술한다. In step S225, the P2P application device 110 generates a list of peering agents for the terminal 120 newly requesting to join the P2P network. According to one embodiment, the P2P application device 110, along with a pre-calculated stream availability weight for at least one peer previously subscribed to the P2P network, the delay cost, link congestion cost or routing cost By reference, a list of peering agents may be generated. The stream availability weight indicates the degree to which the peer can stably provide the stream. A detailed method of generating a list of peering agents will be described later with reference to FIG. 3.
S230 단계에서, P2P 어플리케이션 장치(110)는 S225 단계에서 생성된 피어링 제의 리스트를 단말(120)에게 제공한다. In operation S230, the P2P application device 110 provides the terminal 120 with the list of peering agents generated in operation S225.
단말(120)은 제공된 피어링 제의 리스트를 기초로 연결을 형성할 적어도 하나의 피어를 결정하고(S235), 결정된 피어와 연결을 형성한다(S240). 즉, 가입을 요청한 단말(120)은 P2P 어플리케이션 장치(110)로부터 받은 피어링 제의 리스트의 부모 피어 및 파트너 피어와 연결을 설립할 수 있다. S245 단계에서, 단말(120)은 연결을 형성한 피어 중 적어도 하나로부터 스트림을 제공 받는다. 일 실시예에 따라, 단말(120)은 소스 피어와의 동기화를 위하여, 연결된 파트너 피어로부터 소스의 재생 동기화 지점을 제공 받을 수 있다. 단말(120)은 적어도 하나의 파트너 피어로부터 제공받은 재생 동기화 지점을 기초로 초기 동기화 지점을 결정하고, 결정된 초기 동기화 지점에서 소정 세그먼트 앞선 지점부터 연결된 부모 피어에게 스트림을 요청할 수 있다. 구체적인 동기화 방법은 도 6 내지 도8을 참조하여 설명한다.The terminal 120 determines at least one peer to form a connection based on the provided list of peering agents (S235), and forms a connection with the determined peer (S240). That is, the terminal 120 requesting to join may establish a connection with a parent peer and a partner peer of a peering agent list received from the P2P application device 110. In step S245, the terminal 120 is provided with a stream from at least one of the peers that form a connection. According to an embodiment, the terminal 120 may be provided with a playback synchronization point of the source from the connected partner peer for synchronization with the source peer. The terminal 120 may determine an initial synchronization point based on a playback synchronization point provided from at least one partner peer, and request a stream from a parent peer connected from a point preceding a predetermined segment at the determined initial synchronization point. A detailed synchronization method will be described with reference to FIGS. 6 to 8.
S250 단계에서, P2P 네트워크에 가입된 단말(120)은 연결된 피어로부터 스트림을 제공받으면, 스트림 가용 메시지를 P2P 어플리케이션 장치(110)에 송신 한다. 일 실시예에 따라, 단말(120)은 연결된 피어로부터 최초 스트림을 제공 받으면, P2P 어플리케이션 장치(110)에 제1 NOTIFY 메시지(Notify-f)를 송신한다. 제1 NOTIFY 메시지는 단말(120)이 연결된 피어로부터 최초 스트림을 제공 받았음을 나타낸다. 이후, 단말(120)이 연결된 피어로부터 초기 동기화 지점까지 스트림을 제공받으면, P2P 어플리케이션 장치(110)에 제2 NOTIFY 메시지(Notify-p)를 송신한다. 제2 NOTIFY 메시지는 단말(120)이 연결된 피어로부터 초기 동기화 지점까지 스트림을 제공받았음을 나타낸다. 제1 및 제2 NOTIFY 메시지는 S255 단계에서 스트림 가용성 가중치를 산출하는 데 사용될 수 있다.In step S250, when the terminal 120 subscribed to the P2P network receives the stream from the connected peer, the terminal 120 transmits a stream available message to the P2P application device 110. According to an embodiment, when the terminal 120 receives an initial stream from a connected peer, the terminal 120 transmits a first NOTIFY message (Notify-f) to the P2P application device 110. The first NOTIFY message indicates that the terminal 120 has received an initial stream from a connected peer. Thereafter, when the terminal 120 receives the stream from the connected peer to the initial synchronization point, the terminal 120 transmits a second NOTIFY message (Notify-p) to the P2P application device 110. The second NOTIFY message indicates that the terminal 120 has received a stream from the connected peer to the initial synchronization point. The first and second NOTIFY messages may be used to calculate stream availability weights in step S255.
S255 단계에서, P2P 어플리케이션 장치(110)는 S250 단계에서 수신한 스트림 가용 메시지를 기초로 P2P 네트워크에 가입된 단말(120)의 스트림 가용성 가중치를 계산한다. 스트림 가용성은 피어가 안정적으로 멀티미디어 스트림을 제공할 수 있는 정도를 의미한다. 스트림 가용성 가중치는 S225 단계에서 피어링 제의 리스트를 생성하는 과정에서 사용된다. 스트림 가용성 가중치는 일 실시예에 따라, P2P 네트워크에 가입된 각각의 피어에 대하여 주기적으로 산출되어 갱신될 수 있다. 일 실시예에 따라, P2P 어플리케이션 장치(110)는 P2P 네트워크에 가입한 피어가 서브스트림을 획득한 후 보내는 스트림 가용 메시지(Notify-f, Notify-p)와 그 이후 시스템에 머문 시간을 기초로 스트림 가용성 가중치 및 스트림 가용성 가중치를 계산할 수 있다. In step S255, the P2P application device 110 calculates a stream availability weight of the terminal 120 subscribed to the P2P network based on the stream available message received in step S250. Stream availability refers to the degree to which a peer can reliably provide a multimedia stream. The stream availability weight is used in the process of generating a list of peering agents in step S225. The stream availability weight may be calculated and updated periodically for each peer subscribed to the P2P network, according to one embodiment. According to an embodiment, the P2P application device 110 may stream based on a stream available message (Notify-f, Notify-p) sent after a peer joining the P2P network obtains a substream, and the time remaining in the system thereafter. Availability weights and stream availability weights can be calculated.
일 실시예에 따른 스트림 가용성은 세 단계로 구분하여 산출될 수 있다. 첫 번째 단계는 피어가 P2P 네트워크에 가입한 이후에 연결된 피어(예컨대, 부모 피어)로부터 첫 번째 세그먼트를 받는 단계이다. 두 번째 단계는 피어가 재생 동기화 메커니즘에 따라 결정된 초기 동기화 지점까지 버퍼링 하기까지의 단계이다. 세 번째 단계는 초기 동기화 지점까지 버퍼링한 이후의 단계이다. 이러한 단계 구분에 따라, 스트림 가용성은 수학식 5와 같이 계산될 수 있다. Stream availability according to one embodiment may be calculated by dividing into three steps. The first step is to receive the first segment from the connected peer (eg, parent peer) after the peer has joined the P2P network. The second step is until the peer buffers up to the initial synchronization point determined by the playback synchronization mechanism. The third step is after buffering up to the initial synchronization point. According to this step division, stream availability may be calculated as in Equation 5.
이때, pn은 피어 n의 스트림 가용성, tn
init 은 피어 n이 가입한 후 연결된 피어로부터 첫 번째 세그먼트를 받을 때까지 경과한 시간, tn
c 은 피어 n이 첫 번째 세그먼트를 받은 후에 초기 동기화 지점까지 버퍼링 하기까지 경과한 시간, tn
s 은 피어 n이 초기 동기화 지점까지 버퍼링 한 이후 시스템에 머무른 시간, α, β, γ는 각 단계 별 가중치를 나타낸다. 예컨대, tn
init 은 피어 n이 P2P 네트워크에 가입한 이후 Notify-f 메시지를 수신할 때까지의 시간으로 결정될 수 있다. tn
c 은 피어 n이 Notify-f 메시지를 수신한 이후, Notify-p 메시지를 수신할 때까지의 시간으로, tn
s 은 피어 n이 Notify-p 메시지를 수신한 이후, P2P 네트워크에 머무른 시간으로 결정될 수 있다. 각 단계 별로 소요되는 시간의 차가 클 수 있기 때문에 각 가중치 α, β, γ를 다르게 적용한다. 수학식 5를 살펴보면, 피어 n이 연결된 피어로부터 짧은 시간 내에 스트림을 확보한 피어일수록, 높은 스트림 가용성이 산출된다. 또한, 피어 n이 시스템에 머무른 시간이 길수록 높은 스트림 가용성을 얻게 된다. 따라서, 스트림 가용성은 피어 n에 연결된 피어(예를 들어, 부모 피어)의 안정성과 피어 n의 지속성을 고려하여 산출됨을 알 수 있다. Where p n is the stream availability of peer n, t n init is the elapsed time after peer n joins to receive the first segment from the connected peer, t n c is the initial synchronization after peer n receives the first segment The elapsed time until buffering to the point, t n s is the time the peer n stays in the system after buffering to the initial synchronization point, α, β, γ represents the weight for each step. For example, t n init may be determined by the time until peer n receives a Notify-f message after joining the P2P network. t n c is the time from peer n to the Notify-p message after receiving the Notify-f message, and t n s is the time to stay in the P2P network after the peer n receives the Notify-p message. Can be determined. Since the difference in time required for each step may be large, each weight α, β, and γ are applied differently. Referring to Equation 5, the higher the stream availability is, the more the peer secured the stream in a short time from the peer n to which the peer n is connected. Also, the longer the peer n stays in the system, the higher the stream availability. Accordingly, it can be seen that stream availability is calculated in consideration of the stability of the peer (eg, parent peer) connected to peer n and the persistence of peer n.
피어들의 스트림 가용성이 산출되면, P2P 어플리케이션 장치(110)는 해당 피어들에 대하여 스트림 가용성 가중치를 계산할 수 있다. 일 실시예에 따라, 피어 n의 스트림 가용성 가중치(wn)는, 피어 n과 동일 PoP에 위치하는 액티브 피어들의 스트림 가용성의 합에 대한 피어 n의 스트림 가용성의 비율로 계산될 수 있다. 예컨대, 스트림 가용성 가중치(wn)는 수학식 6과 같이 표현될 수 있다. Once the peers' stream availability is calculated, the P2P application device 110 may calculate stream availability weights for the peers. According to one embodiment, the stream availability weight w n of peer n may be calculated as the ratio of the stream availability of peer n to the sum of the stream availability of active peers located at the same PoP as peer n. For example, the stream availability weight w n may be expressed as in Equation 6.
이때, pn은 피어 n의 스트림 가용성, pa는 A에 속한 피어 a의 스트림 가용성, A는 동일 PoP에 위치해 있는 액티브 피어의 집합을 나타낸다. S255 단계에서 산출되는 스트림 가용성 가중치는, S225 단계에서 새로이 가입하는 단말을 위한 피어링 제의 리스트를 생성할 때 사용된다.In this case, p n represents stream availability of peer n, p a represents stream availability of peer a belonging to A, and A represents a set of active peers located in the same PoP. The stream availability weight calculated in step S255 is used when generating a list of peering agents for a newly subscribed terminal in step S225.
도 3은 개시된 기술의 일 실시예에 따라, P2P 어플리케이션 장치가 피어링 제의 리스트를 생성하는 방법을 설명하기 위한 순서도이다. 도 3을 참조하여, P2P 어플리케이션 장치(110)가 새로이 P2P 네트워크에 가입을 요청한 단말(120)에 대한 피어링 제의 리스트를 생성하는 과정을 설명한다. 일 실시예에 따라, P2P 어플리케이션 장치(110)는 P2P 네트워크에 기 가입한 피어의 스트림 가용성 가중치(stream availability weight)와 함께, 단말(120)의 업로드/다운로드 링크 용량, 네트워크 장치(110)로부터 제공받은 지연 비용, 링크 혼잡상태 비용 또는 라우팅 비용을 참조하여 피어링 제의 리스트를 생성할 수 있다. 단말(120)은 생성된 피어링 제의 리스트에 따라 데이터를 주고 받을 피어를 선택할 수 있다. P2P 어플리케이션 장치(110)는 세 단계를 거쳐 피어링 제의 리스트를 생성할 수 있다. 예컨대, P2P 어플리케이션 장치(110)는 서브 스트림 별로 부모 피어를 선택하는데, 조인 요청한 단말(120)과 동일한 PoP(Point of Presence)에 존재하는 피어(Intra-PID 피어: 이하, 인트라-PID 피어), 단말(120)과 동일한 AS(Autonomous System) 내의 서로 다른 PoP에 존재하는 피어(Inter-PID 피어: 이하, 인터-PID 피어), 단말(120)과 서로 다른 AS 내에 존재하는 피어(Inter-AS 피어: 이하, 인터-AS) 순으로 피어링 제의 리스트에 추가할 피어를 선택해 나간다. 이러한 단계를 통하여, P2P 어플리케이션 장치(110)는 PID-j에 조인한 단말(120)의 각 서브 스트림 별 부모 피어를 선택할 수 있다. 3 is a flowchart illustrating a method for generating a list of peering agents by a P2P application device according to an embodiment of the disclosed technology. Referring to FIG. 3, a process of generating a list of peering agents for a terminal 120 newly requesting to join a P2P network by the P2P application device 110 will be described. According to an embodiment, the P2P application device 110 may provide the upload / download link capacity of the terminal 120 and the network device 110 together with the stream availability weight of a peer previously subscribed to the P2P network. A list of peering agents may be generated with reference to the received delay cost, link congestion cost, or routing cost. The terminal 120 may select a peer to send and receive data according to the generated list of peering agents. The P2P application device 110 may generate a list of peering agents in three steps. For example, the P2P application device 110 selects a parent peer for each sub-stream, a peer existing in the same Point of Presence (PoP) as the join requesting terminal 120 (Intra-PID peer: hereinafter, intra-PID peer), Peers that exist in different PoPs in the same AS (Autonomous System) as the terminal 120 (Inter-PID peer: hereinafter, inter-PID peers), and peers that exist in the AS 120 and the different AS (Inter-AS peers) The peers to be added to the peering agent list are selected in the following order: inter-AS). Through this step, the P2P application device 110 may select a parent peer for each sub-stream of the terminal 120 joined to the PID-j.
첫 번째 단계에서, P2P 어플리케이션 장치(110)는 인트라-PID 피어 중에서 활용 가능한 업로드 대역폭을 가진 피어를 스트림 가용성 가중치가 높은 순서대로 피어링 제의 리스트에 추가한다(S310). 예컨대, P2P 어플리케이션 장치(110)는 각 서브스트림에 대하여 인트라-PID 피어 중에서 활용 가능한 업로드 대역폭을 가진 피어들을 스트림 가용 피어 리스트에 추가하고, 스트림 가용성 가중치가 높은 순서대로 피어링 제의 리스트에 추가하는 과정을 반복할 수 있다. 인트라-PID 피어를 피어링 제의 리스트에 추가하는 구체적인 방법은 도 4를 참조하여 후술한다. 첫 번째 단계에서 추가된 인트라-PID 피어의 수가 미리 설정된 피어의 수(예를 들어, 부모 피어의 수)보다 작은 경우(S320), P2P 어플리케이션 장치(110)는 두 번째 단계를 진행한다. In the first step, the P2P application device 110 adds the peers with the available upload bandwidth among the intra-PID peers to the list of peering agents in order of high stream availability weighting (S310). For example, the P2P application device 110 adds peers having available upload bandwidth among intra-PID peers to the stream available peer list for each substream, and adds the peers to the list of peering agents in order of high stream availability weighting. Can be repeated. A detailed method of adding an intra-PID peer to the list of peering agents will be described later with reference to FIG. 4. If the number of intra-PID peers added in the first step is smaller than the number of preset peers (eg, the number of parent peers) (S320), the P2P application device 110 proceeds to the second step.
두 번째 단계에서, P2P 어플리케이션 장치(110)는 인터-PID 피어 중에서 피어를 선택하여 피어링 제의 리스트에 추가한다(S330). 일 실시예에 따라, P2P 어플리케이션 장치(110)는 링크 혼잡상태 비용(uij)가 1이고, 지연 비용(dij)이 지연 임계 값(DT: Delay Threshold)보다 작은 PoP를 라우팅 비용(rij)이 낮은 순서대로 선택하고, 선택된 PoP 내의 피어를 피어링 제의 리스트에 추가할 수 있다(S330). 인터-PID 피어를 피어링 제의 리스트에 추가하는 구체적인 방법은 도 5를 참조하여 후술한다. 첫 번째 및 두 번째 단계에서 추가된 피어의 수가 미리 설정된 피어의 수(예를 들어, 부모 피어의 수)보다 작은 경우(S340), P2P 어플리케이션 장치(110)는 세 번째 단계를 진행한다. In a second step, the P2P application device 110 selects a peer from the inter-PID peer and adds it to the list of peering agents (S330). According to one embodiment, P2P application unit 110 may link congestion cost (u ij) is 1, and the delay costs (d ij) the delay threshold: routing cost for small PoP than (DT Delay Threshold) (r ij ) May be selected in a low order, and the peers in the selected PoP may be added to the list of peering agents (S330). A detailed method of adding an inter-PID peer to the list of peering agents will be described later with reference to FIG. 5. When the number of peers added in the first and second stages is smaller than the preset number of peers (eg, the number of parent peers) (S340), the P2P application device 110 proceeds to the third stage.
세 번째 단계에서, P2P 어플리케이션 장치(110)는 단말(120)이 속해있는 ISP(Internet Service Provider)가 선호하는 AS의 인터-AS 피어를 스트림 제의 리스트에 추가한다(S350). In the third step, the P2P application device 110 adds the inter-AS peer of the AS preferred by the ISP (Internet Service Provider) to which the terminal 120 belongs (S350).
s번의 서브 스트림 별 부모 피어 선택에 의해 k개의 부모 피어가 선택되면 추가적으로 (m-k)내의 파트너 피어를 선택한다. 이때, s는 서브 스트림의 수를, m은 파트너 피어의 수를, k는 부모 피어로 선택된 피어의 수를 나타내는 시스템 파라미터이다. 동일 피어가 하나 이상의 서브 스트림에 대한 부모 피어로 선택될 수 있으므로 k는 s보다 작거나 같은 값을 가진다. 파트너 피어 선택은 부모 피어 선택과 같은 방식으로 이루어지되, 피어의 가용 대역폭은 고려하지 않는다. 파트너 피어는 부모 피어가 보낸 서브스트림에서 누락된 세그먼트가 발생했을 때 이를 보완하는 피어이기 때문에 지속적인 대역폭 요구는 없기 때문이다. If k parent peers are selected by parent peer selection for each sub stream, the partner peer in (m-k) is additionally selected. In this case, s is a system parameter indicating the number of sub-streams, m is the number of partner peers, and k is the number of peers selected as parent peers. K has a value less than or equal to s since the same peer may be selected as the parent peer for one or more substreams. Partner peer selection is done in the same way as parent peer selection, but does not take into account the available bandwidth of the peer. This is because the partner peer is a peer that compensates for missing segments in the substream sent by the parent peer, so there is no constant bandwidth requirement.
한편, 일 실시예에 따라, 단말(120)이 피어링 제의 리스트를 기초로 서브스트림 별 부모 피어를 결정한 이후에도, 부모 피어는 변경될 수 있다. P2P 시스템에서는 피어가 갑작스럽게 시스템을 탈퇴하거나 불충분한 업로드 대역폭으로 지속적인 서비스를 해주지 못하는 경우가 발생할 수 있다. 따라서 이를 사전에 발견하고 새로운 상대 피어를 선택하는 것이 매우 중요하다. 이를 위해서는 상대 피어의 탈퇴나 불충분한 업로드 대역폭으로 서비스가 지속되지 못하는 것을 전송이 이루어지지 않고 있는 세그먼트의 재생 시점 도래 이전에 감지하는 방안과 새로운 상대 피어를 선택하는 방안이 필요하다.According to an embodiment, even after the terminal 120 determines the parent peer for each substream based on the list of peering agents, the parent peer may be changed. In a P2P system, a peer may suddenly leave the system or fail to provide continuous service due to insufficient upload bandwidth. Therefore, it is very important to discover this in advance and select a new peer. To this end, it is necessary to detect the withdrawal of the other peer or the service that cannot be maintained due to insufficient upload bandwidth before the time of the playback of the segment that is not being transmitted and the method of selecting a new peer.
버퍼맵 기반의 데이터-드리븐 방안은 부모 피어와 파트너 피어들로부터 수신한 버퍼맵을 모니터링 하여 사전에 서브스트림의 지연을 발견하고 새로운 부모 피어를 선택한다. 이 방법은 부모 피어와 자신과의 서브스트림 지연의 편차, 부모 피어와 파트너 피어간의 서브스트림 지연의 편차를 통해 자신에서의 서브스트림 지연 및 부모 피어에서의 서브스트림 지연을 사전에 발견할 수 있다는 장점을 가지고 있으나, 부모 피어 및 파트너 들 간 버퍼맵 교환 오버헤드가 매우 크다. The buffer map-based data-driven scheme monitors the buffer map received from the parent peer and partner peers to detect the delay of the substream in advance and select a new parent peer. This method can detect the substream delay in itself and the substream delay in the parent peer in advance through the deviation of the substream delay between the parent peer and itself, the substream delay between the parent peer and the partner peer. However, the overhead of buffermap exchange between parent peers and partners is very large.
개시된 기술의 일 실시예에 따른 방안에서는 버퍼맵을 사용하지 않는 대신 단말(120)이 현재 수신한 서브스트림의 상태를 모니터링하여 서브스트림을 제공해주지 못하는 부모 피어를 발견한다. 모니터링을 시작하는 시점을 결정하기 위해, 본 실시예에서는 부모 피어에게 재생 시작 지점의 세그먼트를 요청한 후 버퍼링되어야 할 최소 세그먼트의 양(Tb)을 정의한다. 단말(120)은 버퍼링된 세그먼트의 양이 Tb를 초과할 때부터 버퍼 검사 인터벌(Ti)마다 버퍼를 검사한다. 버퍼 검사 중 아직 받지 못한 세그먼트가 있다면 단말(120)은 그 세그먼트를 임의의 파트너 피어에게 요청한다. 단말(120)은 버퍼 검사를 통해 파트너 피어가 자신의 새로운 부모 피어로 동작 할 수 있는지 여부와 부모 피어가 지속적으로 서비스를 제공해 주고 있는지 여부를 판단한다. 예컨대, 단말(120)은 파트너 피어가 자신의 새로운 부모 피어로 동작 할 수 있는지를 판단하기 위하여 버퍼 검사 인터벌 동안 파트너 피어에게 요청한 세그먼트의 전체 수 가운데 성공적으로 받은 세그먼트의 비율 h을 계산할 수 있다. 또한, 단말(120)은 부모 피어가 지속적으로 서비스를 제공해 주고 있는지 여부를 검사하기 위하여 버퍼 검사 인터벌 동안 서브스트림 별 부모 피어로부터 받은 세그먼트의 수를 카운트할 수 있다. 만약, 그 수가 Tn(버퍼 검사 인터벌 동안 부모 피어가 제공해주어야 할 최소의 세그먼트 기준치)를 초과하지 못하였고, 연속적으로 Tn를 초과하지 못한 최대 횟수가 소정의 기준 값을 초과하였다면 해당 서브스트림에 대해 새로운 부모 피어를 선택한다. 새로운 부모 피어의 선택이 필요한 경우, 단말(120)은 파트너 피어들 가운데 h가 소정의 기준치를 초과하는 피어를 해당 서브스트림을 위한 새로운 부모 피어로 선택한다. 기준을 만족하는 파트너 피어가 없는 경우, 단말(120)은 P2P 어플리케이션 장치(110)에게 이전 부모 피어의 식별자를 알려주고 새로운 부모 피어를 요청한다. P2P 어플리케이션 장치(110)는 단말(120)의 부모 피어 변경정보를 통보 받으면, 이를 추후의 부모 피어 선택에 반영한다.In the scheme according to an embodiment of the disclosed technology, instead of using the buffer map, the terminal 120 detects a parent peer that cannot provide the substream by monitoring the state of the currently received substream. To determine when to start monitoring, the present embodiment defines the minimum amount of segment T b to be buffered after requesting the segment of the playback start point from the parent peer. Terminal 120 checks each from when the amount of the buffered segment exceeds T b buffer check intervals (T i) buffer. If there is a segment not yet received during the buffer check, the terminal 120 requests the segment from any partner peer. The terminal 120 determines whether the partner peer can operate as its new parent peer and whether the parent peer is continuously providing a service through a buffer check. For example, the terminal 120 may calculate a ratio h of a segment successfully received from the total number of segments requested to the partner peer during the buffer check interval to determine whether the partner peer can operate as its new parent peer. In addition, the terminal 120 may count the number of segments received from the parent peer for each substream during the buffer check interval to check whether the parent peer is continuously providing the service. If the number does not exceed T n (the minimum segment criterion to be provided by the parent peer during the buffer check interval), and if the maximum number of times of successively not exceeding T n exceeds the predetermined reference value, Select a new parent peer for When the selection of a new parent peer is necessary, the terminal 120 selects a peer whose h exceeds a predetermined threshold among partner peers as a new parent peer for the corresponding substream. If there is no partner peer that satisfies the criteria, the terminal 120 informs the P2P application device 110 of the identifier of the previous parent peer and requests a new parent peer. When the P2P application device 110 is notified of the parent peer change information of the terminal 120, the P2P application device 110 reflects this in later parent peer selection.
도 4는 개시된 기술의 일 실시예에 따라, 인트라-PID 피어를 피어링 제의 리스트에 추가하는 방법을 설명하기 위한 순서도이다. 도 4를 참조하면, P2P 어플리케이션 장치(110)는 서브 스트림 별로, S410 단계 내지 S450 단계를 반복하며, 부모 피어를 선택한다. P2P 어플리케이션 장치(110)는 인트라-PID 피어를 하나씩 선택하면서(S410), 활용 가능한 업로드 대역폭이 있는지 여부를 판단한다(S420). 활용 가능한 업로드 대역폭이 있는 경우, P2P 어플리케이션 장치(110)는 선택한 피어를 스트림 가용 피어 리스트에 추가한다(S430). 활용 가능한 업로드 대역폭이 없는 경우, P2P 어플리케이션 장치(110)는 다른 인트라-PID 피어를 선택하여(S410), S420 단계 내지 S430 단계를 반복한다. 활용 가능한 업로드 대역폭이 있는 피어들이 스트림 가용 피어 리스트에 추가되면, P2P 어플리케이션 서버(110)는 스트림 가용 피어 리스트를 스트림 가용성 가중치(wn)에 대한 내림차순으로 정렬한다(S440). P2P 어플리케이션 서버(110)는 스트림 가용 피어 리스트에 정렬된 순으로 피어를 피어링 제의 리스트에 추가한다(S450). 스트림 가용 피어 리스트는 서브 스트림에 따라 다르게 구성될 수 있다.4 is a flowchart illustrating a method of adding an intra-PID peer to a list of peering agents, in accordance with an embodiment of the disclosed technique. Referring to FIG. 4, the P2P application device 110 repeats steps S410 to S450 for each substream and selects a parent peer. The P2P application device 110 selects intra-PID peers one by one (S410) and determines whether there is an available upload bandwidth (S420). If there is an available upload bandwidth, the P2P application device 110 adds the selected peer to the stream available peer list (S430). If there is no upload bandwidth available, the P2P application device 110 selects another intra-PID peer (S410) and repeats steps S420 to S430. When peers with available upload bandwidth are added to the stream available peer list, the P2P application server 110 sorts the stream available peer list in descending order based on the stream availability weight w n (S440). The P2P application server 110 adds the peers to the list of peering agents in the order in which they are arranged in the stream available peer list (S450). The stream available peer list may be configured differently according to the substreams.
P2P 어플리케이션 장치(110)는 피어링 제의 리스트에 부모 피어의 수만큼 피어가 추가될 때까지 S410 단계 내지 S450 단계를 반복한다. 스트림 가용 피어 리스트에 복수의 피어가 추가될 수 있으므로, S410 단계 내지 S450 단계의 반복 횟수는 서브 스트림의 수보다 작을 수 있다. 반면, 모든 서브 스트림에 대하여 S410 단계 내지 S450 단계를 반복하였으나, 피어링 제의 리스트에 추가된 피어가 부모 피어의 수 보다 작은 경우에는, 인터-PID 피어 선택 단계(S330)로 넘어간다. 예를 들어 설명하면, 서브 스트림의 수가 5, 단말(120)을 제외한 인트라-PID 피어의 수가 6(인트라-PID 피어: P1, P2, P3, P4, P5, P6)이라 가정하고, 첫 번째 서브스트림에 대한 스트림 가용 피어 리스트에 스트림 가용성 가중치 순으로 P2, P1, P5, P6이 추가되었고, 두 번째 서브스트림에 대한 스트림 가용 피어 리스트에 스트림 가용성 가중치 순으로 P2, P4, P5가 추가되었다면, 피어링 제의 리스트에는 첫 번째 반복에서 P2, P1, P5, P6가, 두 번째 반복에서, P2가 서브 스트림 별 부모 피어로 추가되고, 두 번째 반복에서 피어링 제의 리스트 생성 과정은 종료된다. 반면에, 서브 스트림의 수만큼 S410 단계 내지 S450 단계를 반복하더라도, 피어링 제의 리스트에 부모 피어의 수 만큼 피어가 추가되지 않을 수 있다. 예컨대, 서브 스트림의 수가 3, 단말(120)을 제외한 인트라-PID 피어의 수가 2(인트라-PID 피어: P1, P2)이라 가정하고, 첫 번째 서브스트림에 대한 스트림 가용 피어 리스트에 P2 가 추가되었고, 두 번째 서브스트림에 대한 스트림 가용 피어 리스트에 피어가 하나도 추가되지 못하였고, 세 번째 서브스트림에 대한 스트림 가용 피어 리스트에 P1이 추가되었다면, 피어링 제의 리스트에는 첫 번째 반복에서 P2가, 세 번째 반복에서, P1이 서브 스트림 별 부모 피어로 추가되고, 두 번째 반복에서는 아무런 피어도 피어링 제의 리스트에 추가되지 않는다. 따라서, P2P 어플리케이션 장치(110)가 서브 스트림의 수 만큼 S410 단계 내지 S450 단계를 반복한 후에도, 피어링 제의 리스트의 피어 수는 부모 피어의 수보다 작다. 이러한 경우, P2P 어플리케이션 장치(110)는 S330 단계로 가서, 인터-PID 피어 중에서 피어링 제의 리스트에 추가할 피어를 선택한다. The P2P application device 110 repeats steps S410 to S450 until the number of peers is added to the list of peering agents. Since a plurality of peers may be added to the stream available peer list, the number of repetitions of steps S410 to S450 may be smaller than the number of sub streams. On the other hand, if steps S410 to S450 are repeated for all substreams, but the number of peers added to the peering agent list is smaller than the number of parent peers, the process proceeds to the inter-PID peer selection step (S330). For example, assuming that the number of sub-streams is 5 and the number of intra-PID peers excluding the terminal 120 is 6 (Intra-PID peers: P1, P2, P3, P4, P5, and P6), the first sub If P2, P1, P5, P6 have been added to the stream availability peer list for the stream in order of stream availability weighting, and P2, P4, P5 has been added to the stream availability peer list for the second substream in order of stream availability weighting, peering In the first list, P2, P1, P5, and P6 are added in the first iteration, and in the second iteration, P2 is added as a parent peer for each substream, and in the second iteration, the process of generating a list of peering agents is terminated. On the other hand, even if the steps S410 to S450 are repeated as many as the number of sub streams, peers may not be added to the list of peering agents by the number of parent peers. For example, assuming that the number of substreams is 3 and the number of intra-PID peers excluding the terminal 120 is 2 (Intra-PID peers: P1 and P2), P2 is added to the stream available peer list for the first substream. If no peers have been added to the stream available peer list for the second substream, and P1 has been added to the stream available peer list for the third substream, the list of peering agents will contain P2 in the first iteration, and third In an iteration, P1 is added as a parent peer per substream, and in the second iteration no peer is added to the list of peering agents. Therefore, even after the P2P application device 110 repeats steps S410 to S450 by the number of sub streams, the number of peers in the peering agent list is smaller than the number of parent peers. In this case, the P2P application device 110 proceeds to step S330 and selects a peer to add to the list of peering agents from among the inter-PID peers.
도 5는 개시된 기술의 일 실시예에 따라, 인터-PID 피어를 피어링 제의 리스트에 추가하는 방법을 설명하기 위한 순서도이다. 도 5를 참조하면, P2P 어플리케이션 장치(110)는 단말(120)이 속한 AS내에서 단말(120)이 가입한 PoP와 다른 PoP를 하나씩 선택하면서(S510), 링크 혼잡상태 비용(uij)가 1인지 여부를 판단한다(S520). 링크 혼잡상태 비용 uij는 단말(120)이 조인한 PID-j와 S510 단계에서 선택된 PoP의 PID-i 간의 링크 혼잡상태 비용을 나타낸다. 링크 혼잡상태 비용이 1인 경우, P2P 어플리케이션 장치(110)는 지연 비용(dij)이 지연 임계 값 DT(Delay Threshold)보다 작은지 판단한다(S530). 지연 비용 dij은 단말(120)이 가입한 PID-j와 S510 단계에서 선택된 PoP의 PID-i 간의 지연 비용을 나타낸다. 지용 비용이 DT보다 작으면, P2P 어플리케이션 장치(110)는 해당 PoP의 PID를 PID 리스트에 추가한다(S540). P2P 어플리케이션 장치(110)는 동일 AS 내의 잔여 PoP에 대하여 S510 내지 S540을 반복한다. 이후, P2P 어플리케이션 장치(110)는 생성된 PID 리스트를 라우팅 비용(rij)에 대해 오름차순으로 정렬한다(S550). P2P 어플리케이션 장치(110)는 정렬된 순으로 PID를 선택하면서, 선택된 PID의 피어를 피어링 제의 리스트에 추가한다(S560). 이 때, P2P 어플리케이션 장치(110)는 선택된 PID의 피어 중 활용 가능한 대역폭을 가진 피어를 스트림 가용성 가중치가 높은 순서대로 피어링 제의 리스트에 추가할 수 있다. 예컨대, 선택된 PID의 피어를 피어링 제의 리스트에 추가하는 방법은 도 4에서 설명한 인트라-PID의 경우와 동일할 수 있다. 5 is a flow chart illustrating a method of adding an inter-PID peer to a list of peering agents, in accordance with an embodiment of the disclosed technique. Referring to FIG. 5, the P2P application device 110 selects one PoP and another PoP to which the terminal 120 subscribes in the AS to which the terminal 120 belongs (S510), whereby the link congestion state cost u ij is increased. It is determined whether or not to 1 (S520). The link congestion state cost u ij represents the link congestion state cost between the PID-j joined by the terminal 120 and the PID-i of the PoP selected in step S510. If the link congestion state cost is 1, the P2P application device 110 determines whether the delay cost d ij is smaller than the delay threshold DT (Slay Threshold) (S530). Delay cost d ij represents the delay cost between the PID-j subscribed to the terminal 120 and the PID-i of the PoP selected in step S510. If the usage cost is less than DT, the P2P application device 110 adds the PID of the corresponding PoP to the PID list (S540). The P2P application device 110 repeats S510 to S540 for the remaining PoPs in the same AS. Thereafter, the P2P application device 110 sorts the generated PID list in ascending order with respect to the routing cost r ij (S550). The P2P application device 110 selects the PIDs in the sorted order and adds the peers of the selected PIDs to the list of peering agents (S560). At this time, the P2P application device 110 may add the peers with available bandwidth among the peers of the selected PID to the list of peering agents in order of high stream availability weight. For example, the method of adding a peer of the selected PID to the list of peering agents may be the same as that of the intra-PID described with reference to FIG. 4.
P2P 어플리케이션 장치(110)는 피어링 제의 리스트의 피어 수가 부모 피어의 수가 될 때까지 인터-PID 피어를 피어링 제의 리스트에 추가한다. 한편, 도 5의 인터-PID 피어를 추가하는 과정을 수행한 후에도, 피어링 제의 리스트의 피어 수가 부모 피어의 수보다 작을 수 있다. 이러한 경우, P2P 어플리케이션 장치(110)는 S350 단계로 가서, 인터-AS 피어 중에서 피어링 제의 리스트에 추가할 피어를 선택한다. The P2P application device 110 adds the inter-PID peer to the list of peering agents until the number of peers of the list of peering agents becomes the number of parent peers. Meanwhile, even after performing the process of adding the inter-PID peer of FIG. 5, the number of peers of the peering agent list may be smaller than the number of parent peers. In this case, the P2P application device 110 proceeds to step S350 to select a peer to add to the list of peering agents among the inter-AS peers.
도 6은 종래 데이터-드리븐 구조에서 피어 들이 소스 피어와 재생 동기가 맞지 않는 현상을 설명하기 위한 도면이다. 재생 동기화는 라이브 스트리밍의 실시간성 보장에 관련된 지표 가운데 하나이다. 예컨대, 라이브 멀티미디어 스트리밍 서비스에서 동일 시간대에 다수의 사용자가 접속하여 서비스를 요청할 수 있는데, 이러한 상황에서 피어들 간 재생 동기화가 적정하게 유지될 수 있도록 하는 것은 서비스의 실시간성을 위해 매우 중요하다. FIG. 6 is a diagram for describing a phenomenon in which peers do not synchronize with a source peer in a conventional data-driven structure. Playback synchronization is one of the indicators related to guaranteeing real-time of live streaming. For example, in a live multimedia streaming service, a plurality of users may access and request a service at the same time. In such a situation, it is very important for real-time service to ensure that playback synchronization between peers is properly maintained.
도 6의 데이타-드리븐 구조는 라이브 멀티미디어 스트리밍 P2P 시스템에서, 피어가 파트너 피어들과 데이터 활용 정보인 버퍼맵을 주기적으로 교환하고, 버퍼맵을 기반으로 서브스트림을 요청하여 전달받는 구조이다. 데이타-드리븐 구조에 따르면, 소스 피어의 재생 지점과 상관없이 상대 피어의 재생 지점을 기준으로 초기 요청 지점을 결정하게 되므로, 참여하고 있는 피어들 간 재생 시점의 편차가 커질 수 있다. 따라서, 피어들 간 재생 지점을 동기화하는 방안이 요구된다. The data-driven structure of FIG. 6 is a structure in which a peer periodically exchanges a buffer map, which is data utilization information, with a partner peer, and requests and receives a substream based on the buffer map in a live multimedia streaming P2P system. According to the data-driven structure, since the initial request point is determined based on the playback point of the counterpart peer regardless of the playback point of the source peer, the variation of the playback time point between participating peers can be increased. Therefore, there is a need for a method of synchronizing playback points between peers.
도 6을 참조하여, 데이터-드리븐 구조에서 피어 간 재생 동기가 맞지 않는 경우를 구체적으로 설명한다. 부모 피어 p가 자식 피어 q에게 전송할 수 있는 업로드 대역폭이 p가 한 서브스트림을 전송하기 위해 요구된 평균 전송률보다 크다면, q는 p가 수신한 버퍼 지점까지 짧은 시간 내에 버퍼링을 할 수 있다. 이러한 작업을 캐치업이라 하는데, q가 캐치업이 끝날 때까지 다른 피어의 파트너 피어가 되지 않는다면 소스 피어와 재생 동기화가 어느 정도 보장된다. 그러나 p의 업로드 대역폭이 평균 전송률보다 작아서, p가 수신한 버퍼 지점까지 버퍼링하지 못한 상태에서 자식 피어 q가 새롭게 가입한 피어 n의 부모 피어 또는 파트너 피어가 된다면 새롭게 가입한 피어 n은 p의 버퍼링 지점보다 훨씬 늦은 지점의 버퍼맵을 q로 부터 전달받는다. 도 6은 데이터-드리븐 구조에서의 버퍼맵 전달 구조와 초기 요청 지점(Initial Request Position: IRP)을 보여주고 있다. 모든 피어는 현재 버퍼링한 지점까지 버퍼맵을 만들어 파트너 피어에게 보내는데, 만약 부모 피어를 캐치업 하지 못한 상황에서 자식 피어에게 버퍼맵을 전달하는 상황이 발생하는 경우(피어 1과 6의 경우) 자식 피어(피어 4,5,8,9의 경우)는 소스 피어의 재생 지점으로부터 멀어진 지점을 재생하게 된다. 예컨대, 피어 1은 소스 피어의 버퍼 지점인 400까지 캐치업을 하지 못하였기 때문에, 피어 1의 자식 피어들은 피어 1의 버퍼 지점인 360을 기준으로, 260을 IRP로 결정한다. 따라서, 피어 4, 5, 8은 평균 전송률이 충분한 경우에도, 소스 피어와 재생 동기가 맞지 않게 된다. 특히 피어들이 P2P 시스템에 한꺼번에 접속하는 경우, 피어는 부모 피어 또는 파트너 피어로부터 소스 피어보다 훨씬 늦은 지점의 버퍼맵을 전달받아, 소스 피어와 재생 지점이 큰 차로 재생을 하게 된다.Referring to FIG. 6, a case in which reproduction synchronization between peers in the data-driven structure is not described will be described in detail. If the upload bandwidth that the parent peer p can send to the child peer q is greater than the average rate required for p to transmit one substream, then q can buffer in a short time up to the buffer point p received. This operation is called catchup, and if q does not become a partner peer of another peer until the end of the catchup, there is some guarantee of synchronization with the source peer. However, if the upload bandwidth of p is less than the average transfer rate, and child peer q becomes the parent or partner peer of newly joined peer n without buffering to the buffer point received by p, then newly joined peer n is the buffering point of p. A buffer map at a much later point is received from q. 6 illustrates a buffer map delivery structure and an initial request position (IRP) in a data-driven structure. All peers create and send a buffer map to the partner peer up to the current buffering point. If a peer map fails to catch up with the parent peer and a buffer map is delivered to the child peer (for peers 1 and 6) (In the case of peers 4, 5, 8, 9) will play a point away from the playback point of the source peer. For example, since peer 1 failed to catch up to 400, which is the buffer point of the source peer, peer 1 child peers determine 260 as the IRP based on 360, which is peer 1's buffer point. Therefore, even if the average transmission rates are sufficient, peers 4, 5, and 8 are not in sync with the source peer. In particular, when peers connect to the P2P system at once, the peer receives a buffer map of a point much later than the source peer from the parent peer or the partner peer, so that the source peer and the playback point play with a large difference.
이러한 종래 데이터-드리븐 방식의 문제점을 해결하고, 소스 피어와 재생 지점 동기화를 위해 본 명세서에서는 모든 피어들 간 소스 피어의 재생 지점을 공유하고, 이에 따라 피어의 재생 시작 지점을 결정하는 메커니즘을 제안한다. In order to solve the problem of the conventional data-driven scheme, and to synchronize the playback point with the source peer, the present specification proposes a mechanism for sharing the playback point of the source peer between all peers, and thus determining the playback start point of the peer. .
도 7은 개시된 기술의 일 실시예에 따라, 단말과 소스 피어의 재생 지점을 동기화하는 방법을 설명하기 위한 흐름도이다. 본 실시예에 따르면, P2P 네트워크의 각 피어는 소스 피어의 재생 동기화 지점을 예측하고, 각 피어에서 예측된 소스 피어의 재생 지점을 공유한다. 예컨대, 소스 피어가 자신의 파트너 피어에게 자신의 재생 동기화 지점을 알려주고, 이를 기반으로 파트너 피어는 시스템에 참여하고 있는 동안 지속적으로 소스 피어의 재생 동기화 지점을 예측한다. 예측된 소스 피어의 재생 동기화 지점은 자신의 파트너 피어에게 전달되어 각 피어들이 이를 공유할 수 있게 된다. 이하, 도 2 및 도 7를 참조하여, 재생 지점의 동기화 과정을 설명한다. 7 is a flowchart illustrating a method of synchronizing playback points of a terminal and a source peer according to an embodiment of the disclosed technology. According to this embodiment, each peer of the P2P network predicts the playback synchronization point of the source peer and shares the playback point of the source peer predicted at each peer. For example, the source peer informs its partner peer of its playback synchronization point, and based on this, the partner peer constantly predicts the playback synchronization point of the source peer while participating in the system. The predicted source peer's playback synchronization point is delivered to its partner peer so that each peer can share it. Hereinafter, the synchronization process of the playback point will be described with reference to FIGS. 2 and 7.
단말(120)은 도 2에서 설명한 바와 같이, P2P 어플리케이션 장치(110)로부터 피어링 제의 리스트를 제공받으면(S235), 피어링 제의 리스트의 피어들과 연결을 형성한다(S710). 연결이 형성되면, 단말(120)은 연결이 형성된 적어도 일부의 파트너 피어로부터 재생 동기화 지점을 제공 받는다(S720). 구현 예에 따라, 연결이 형성된 모든 파트너 피어가 재생 동기화 지점을 제공할 수 있으나, 이에 한정되는 것은 아니며, 연결이 형성된 일부 파트너 피어가 재생 동기화 지점을 제공할 수도 있다. 이때, 재생 동기화 지점은 각 파트너 피어가 소스 피어로부터 제공 받은 재생 동기화 지점을 기초로 예측한 소스의 재생 동기화 지점이다. 일 실시예에 따라, 재생 동기화 지점은 스트림에서 발생하는 초당 프레임의 수로 예측할 수 있으며, 세그먼트 번호로 표시될 수 있다. 예컨대, 소스의 재생 시작 시점으로부터 t초가 경과했고 스트림의 프레임 율이 f/sec이며 프레임당 평균 세그먼트 개수가 l이라면 그 시점에서 소스의 재생 지점에 해당하는 세그먼트 번호는 수학식 7과 같이 예측될 수 있다. As described above with reference to FIG. 2, when the terminal 120 receives a list of peering agents from the P2P application device 110 (S235), the terminal 120 forms a connection with peers of the list of peering agents (S710). When the connection is established, the terminal 120 is provided with a playback synchronization point from at least some partner peers with which the connection is formed (S720). According to an embodiment, all partner peers having a connection may provide a playback synchronization point, but are not limited thereto, and some partner peers having a connection may provide a playback synchronization point. At this time, the playback synchronization point is a playback synchronization point of the source predicted by each partner peer based on the playback synchronization point provided from the source peer. According to one embodiment, the playback synchronization point may be predicted by the number of frames per second occurring in the stream and may be indicated by a segment number. For example, if t seconds have elapsed since the start of playback of the source, the frame rate of the stream is f / sec, and the average number of segments per frame is l, then the segment number corresponding to the playback point of the source can be predicted as shown in Equation (7). have.
이때, t는 소스의 재생 시작 시점으로부터 경과한 시간, f는 초당 발생하는 프레임의 수, l은 프레임당 평균 세그먼트 개수이다.Where t is the time elapsed from the start of the source playback, f is the number of frames occurring per second, and l is the average number of segments per frame.
연결을 형성한 파트너 피어들로부터 재생 동기화 지점을 제공받으면, 단말(120)은 제공된 재생 동기화 지점을 기초로 초기 동기화 지점을 결정한다(S730). S720 단계에서 피어로부터 제공되는 재생 동기화 지점은 소스 피어와 각 피어들 간 종단간 지연으로 인해 서로 다를 수 있다. 따라서, 일 실시예에 따라, 단말(120)은 S720 단계에서 제공된 적어도 하나의 재생 동기화 지점 중 가장 앞선 지점을 초기 동기화 지점으로 결정할 수 있다. 예컨대, 단말(120)은 도 8에서와 같이, 제공받은 재생 동기화 지점 T(0), T(1), T(2), T(3), ... 중 가장 앞선 재생 지점 T(0)를 초기 동기화 지점으로 결정할 수 있다. 도 8은 개시된 기술의 일 실시예에 따라 초기 동기화 지점을 결정하는 방법을 설명하기 위한 도면이다. T(0), T(1), T(2), T(3) 은 각각 파트너 피어들로부터 제공된 재생 동기화 지점을 나타낸다. Upon receiving the playback synchronization point from the partner peers who have made the connection, the terminal 120 determines an initial synchronization point based on the provided playback synchronization point (S730). The playback synchronization point provided from the peer in step S720 may be different due to the end-to-end delay between the source peer and each peer. Therefore, according to an embodiment, the terminal 120 may determine the earliest point of the at least one playback synchronization point provided in operation S720 as the initial synchronization point. For example, as shown in FIG. 8, the terminal 120 includes the playback playback points T (0), T (1), T (2), T (3), ... which are the most advanced playback points T (0). Can be determined as the initial synchronization point. 8 is a diagram for describing a method of determining an initial synchronization point according to an embodiment of the disclosed technology. T (0), T (1), T (2), and T (3) each represent playback synchronization points provided from partner peers.
초기 동기화 지점이 결정되면, 단말(120)은 초기 동기화 지점에서 소정 세그먼트 앞선 지점부터, 연결을 형성한 피어 중 적어도 하나의 피어(예컨대, 부모 피어)에게 스트림을 요청한다(S740). 단말(120)은 S730 단계에서 결정된 초기 동기화 지점으로부터 Tm(Tm은 시스템 파라미터) 이전 지점을 초기 요청 지점으로 결정하고, 그 지점부터 세그먼트를 보내줄 것을 부모 피어에게 요청할 수 있다. 부모 피어는 S720 단계에서 재생 동기화 지점을 제공한 파트너 피어 중 하나일 수 있으나, 반드시 이에 한정되는 것은 아니다. S750 단계에서, 단말(120)은 요청한 스트림을 제공 받는다. When the initial synchronization point is determined, the terminal 120 requests a stream from at least one segment (eg, a parent peer) among peers that form a connection from a point preceding a predetermined segment at the initial synchronization point (S740). The terminal 120 may determine a point before T m (T m is a system parameter) as an initial request point from the initial synchronization point determined in step S730, and request the parent peer to send a segment from that point. The parent peer may be one of partner peers that provided a playback synchronization point in step S720, but is not limited thereto. In step S750, the terminal 120 is provided with the requested stream.
도 9 내지 도 13은 개시된 기술에 따른 P2P 네트워크의 성능을 평가하기 위한 그래프이다. 개시된 기술에 따른 P2P 네트워크(이하, 제안방안)의 성능을 평가하기 위해 NS-2를 이용하여 시뮬레이션을 수행하였다. 개시된 기술과의 성능 비교를 위한 종래 기술로는, 데이터-드리븐 방법 주 하나인 쿨스트리밍(CoolStreaming) 방안을 사용하였다. 시뮬레이션 네트워크는 세 개의 AS로 구성되어 있으며, 각 AS내의 대표 라우터를 다른 AS내의 대표 라우터와 연결하였고, 각 AS내의 토폴로지는 KT-VPN 토폴로지로 구성하였다. 한 AS내에 라우터의 개수는 36개이며, 각 라우터를 PoP로 간주하고, 각 라우터에 피어가 연결된다. 피어와 라우터간의 링크 지연은 0.1~0.2ms 사이의 랜덤 지연, 라우터와 라우터 간 링크 지연은 0.5~1ms 사이의 랜덤 지연으로 설정하였다. 라우터 간 대역폭은 200Mbyte로 설정하였으며, 소스 피어, 네트워크 장치(iTracker), P2P 어플리케이션 장치(부트스트랩 서버)의 대역폭은 100Mbyte로 설정하였다. 피어의 분포는 100Mbyte, 10Mbyte, 1Mbyte의 업로드 대역폭을 가진 피어들과 그리고 전혀 업로드를 하지 않는 피어들로 각각 10%, 20%, 20%, 50%의 비율로 구성된다. 피어들은 포아송 분포로 조인하는 것으로 가정하였다. 시뮬레이션에 사용한 멀티미디어 스트리밍 파일은 초당 30프레임으로 약400Kbps 속도로 재생된다. 9-13 are graphs for evaluating the performance of a P2P network in accordance with the disclosed technology. Simulation was performed using NS-2 to evaluate the performance of the P2P network (hereinafter, proposed) according to the disclosed technology. As a prior art for performance comparison with the disclosed technique, one of the data-driven methods, CoolStreaming, was used. The simulation network is composed of three ASs. A representative router in each AS is connected to a representative router in another AS, and the topology in each AS is composed of a KT-VPN topology. The number of routers in an AS is 36. Each router is considered a PoP, and a peer is connected to each router. The link delay between the peer and the router is set to a random delay between 0.1 and 0.2 ms, and the link delay between the router and the router is set to a random delay between 0.5 and 1 ms. The bandwidth between routers was set to 200 Mbytes, and the bandwidths of the source peer, network device (iTracker), and P2P application device (bootstrap server) were set to 100 Mbytes. The distribution of peers consists of 10%, 20%, 20%, 50% of peers with upload bandwidths of 100Mbyte, 10Mbyte, 1Mbyte, and no uploaders at all. The peers were assumed to join with the Poisson distribution. The multimedia streaming file used for the simulation is played at about 400 Kbps at 30 frames per second.
도 9는 개시된 기술의 일 실시예에 따른 P2P 네트워크에서 링크상의 트래픽 편차를 종래 방식과 비교하는 그래프이다. 도 9를 살펴보면, 제안방안에서는 시스템의 사이즈에 상관없이 네트워크 링크상의 트래픽이 고르게 분산되는 반면, 쿨스트리밍 방안의 경우 시스템의 사이즈에 따라 트래픽 편차가 증가함을 확인할 수 있다. 제안 방안에서는 네트워크 장치(iTracker)로부터 네트워크 링크상의 지연, 링크 혼잡 상태 정보 등을 받아 피어링을 제의해 준다. 따라서, 네트워크 링크상에 혼잡이나 지연이 발생하는 경로로 P2P 트래픽이 지나지 않도록 하며, 피어의 트래픽을 제어할 수 있게 된다. 9 is a graph comparing traffic variation on a link with a conventional scheme in a P2P network according to an embodiment of the disclosed technology. Referring to FIG. 9, in the proposed scheme, traffic on the network link is distributed evenly regardless of the size of the system, whereas in the cool streaming scheme, the traffic deviation increases according to the size of the system. The proposed scheme proposes peering by receiving network link (iTracker) delays and link congestion status information from the network link. Therefore, P2P traffic is not passed through a path where congestion or delay occurs on the network link, and traffic of a peer can be controlled.
도 10은 개시된 기술의 일 실시예에 따른 P2P 네트워크에서 시스템 사이즈에 대한 평균 스트림 지속성을 종래 방식과 비교하는 그래프이다. 평균 스트림 지속성은 피어가 조인하여 재생을 시작한 시점부터 재생이 끝날 때까지 받아야 할 세그먼트 수 가운데 재생 데드라인을 만족시킨 세그먼트의 수에 대한 비율이다. 도 10에서 확인할 수 있는 바와 같이, 제안 방안의 평균 지속성은 99.9%, 쿨스트리밍 방안은 98% 이상으로 제안방안이 쿨스트리밍 방안보다 약간 더 높은 평균 지속성을 보였다. 쿨스트리밍 방안에서는 P2P 어플리케이션 장치가 피어 정보나 네트워크 정보 없이 랜덤으로 시스템에 들어와 있는 피어들의 리스트를 알려주는 반면, 제안 방안에서는 P2P 어플리케이션 장치(110)가 네트워크 장치(130, iTracker)로부터 받은 네트워크 상태 정보와 함께 피어의 스트림 가용성 가중치와 피어의 업로드/다운로드 링크 용량 등을 모두 이용하여 피어링을 제의한다. 따라서, 제안 방안의 피어는 최적의 피어와 통신할 가능성이 더 높고, 더 안정적으로 서비스를 받을 수 있게 된다. 결과적으로, 제안 방안의 피어링 메커니즘이 라이브 멀티미디어 스트리밍 서비스의 지속성을 높임을 알 수 있다.FIG. 10 is a graph comparing average stream persistence against system size in a P2P network according to an embodiment of the disclosed technology. Average stream persistence is the ratio of the number of segments that satisfy the playback deadline among the number of segments to be received from the time when the peer joins and starts playback to the end of playback. As can be seen in FIG. 10, the average sustainability of the proposed scheme was 99.9% and the coolstreaming scheme was more than 98%, suggesting that the proposed scheme was slightly higher than the coolstreaming scheme. In the cool streaming scheme, the P2P application device informs the list of peers entering the system at random without peer information or network information, whereas in the proposed scheme, the P2P application device 110 receives network state information received from the network device 130 (iTracker). In addition, peering is proposed using both the peer's stream availability weight and the peer's upload / download link capacity. Therefore, the peers of the proposed scheme are more likely to communicate with the optimal peers and can receive services more stably. As a result, it can be seen that the peering mechanism of the proposed scheme increases the persistence of the live multimedia streaming service.
도 11은 개시된 기술의 일 실시예에 따른 P2P 네트워크에서 시스템 사이즈에 대한 재생 시작 지연을 종래방식과 비교한 그래프이다. 재생 시작 지연은 피어가 조인 한 후 재생을 시작하기까지의 시간이다. 도 11을 살펴보면, 재생 시작 지연의 최소값 측면에서는 제안방안이 쿨스트림 방안보다 재생을 더 늦게 시작하는 것을 볼 수 있다. 이는 쿨스트리밍 방안이 제안 방안보다 더 이전의 지점을 스트림의 초기 요청 지점으로 요청하므로, 쿨스트리밍 방안의 부모 피어가 20초 연속적으로 재생할 수 있는 서브 스트림을 가지고 있을 확률이 높다는 것을 의미한다. 반면, 재생 시작 지연의 평균값과 최대값 측면에서는 제안 방안이 쿨스트리밍 방안보다 더 빨리 재생을 시작하는 것을 볼 수 있다. 이는 쿨스트리밍 방안의 부모 피어가 제안 방안보다 20초 연속적으로 재생할 수 있는 스트림을 가지고 있지 않을 확률 또한 높다는 것을 의미한다. 이러한 결과는 쿨스트리밍 방안에서 부모 피어의 버퍼링 편차가 크다는 것을 나타낸다. 제안 방안에서는 P2P 어플리케이션 장치가 피어의 스트림 가용성 가중치와 피어의 대역폭을 기반으로 피어링을 제의하기 때문에 스트림을 지속적으로 서비스 해줄 수 있는 피어를 부모 피어로 선택할 가능성이 크다. FIG. 11 is a graph comparing a playback start delay with respect to a system size in a P2P network according to an embodiment of the disclosed technology. The playback start delay is the time after the peer joins to start playback. Referring to FIG. 11, it can be seen that the proposed scheme starts playback later than the coolstream scheme in terms of the minimum value of the playback start delay. This means that since the coolstreaming scheme requests a point earlier than the proposed scheme as the initial request point of the stream, it is highly likely that the parent peer of the coolstreaming scheme has a substream that can be continuously played for 20 seconds. On the other hand, in terms of the average value and the maximum value of the playback start delay, it can be seen that the proposed scheme starts playback faster than the coolstream scheme. This means that the parent peer of the coolstreaming scheme also does not have a stream that can be played continuously for 20 seconds than the proposed scheme. These results indicate that the buffering variation of the parent peer is large in the coolstreaming scheme. In the proposed scheme, since the peer-to-peer application device proposes peering based on the peer's stream availability weight and the peer's bandwidth, it is highly likely to select a peer that can continuously provide the stream as a parent peer.
도 12는 개시된 기술의 일 실시예에 따른 P2P 네트워크에서 제어 오버헤드를 종래방식과 비교한 그래프이다. 제어 오버헤드는 시스템에 참가하는 모든 피어의 제어 메시지 양의 합을 나타낸다. 도 12에서 보는 바와 같이, 쿨스트리밍 방안에서의 제어 오버헤드는 시스템 사이즈가 증가할수록 선형적으로 커진다. 반면, 제안 방안의 제어 오버헤드는 시스템 사이즈에 큰 영향을 받지 않음을 볼 수 있다. 쿨스트리밍 방안의 경우 버퍼맵을 교환하기 위한 제어 메시지 및 피어를 발견하기 위한 가십 기반의 프로토콜의 오버헤드로 인해 제어 오버헤드가 증가하며 이는 시스템 사이즈와 피어 별 파트너 수 증가에 영향을 받는다.12 is a graph comparing control overhead with a conventional scheme in a P2P network according to an embodiment of the disclosed technology. The control overhead represents the sum of the control message amounts of all peers participating in the system. As shown in FIG. 12, the control overhead in the coolstreaming scheme increases linearly as the system size increases. On the other hand, it can be seen that the control overhead of the proposed scheme is not significantly affected by the system size. In the coolstreaming scheme, the overhead of control messages for exchanging buffer maps and the gossip-based protocol for discovering peers increases control overhead, which is affected by the increase in system size and the number of partners per peer.
도 13은 개시된 기술의 일 실시예에 따른 P2P 네트워크에서 소스 피어와 피어 간의 재생 동기화 차이를 종래방식과 비교한 그래프이다. 도 13에서와 같이, 제안방안이 쿨스트리밍 방안보다 재생 지점의 차에 대한 성능이 최대값, 평균값, 최소값, 표준편차 모든 부분에서 더 좋거나 같음을 볼 수 있다. 재생 동기화의 차는 스트림의 초기 요청 지점과 재생 시작 지연의 영향을 받는다. 제안방안은 소스 피어의 재생 지점을 예측하여 스트림의 초기 요청 지점을 결정하므로 쿨스트리밍 방안보다 재생 지점의 편차가 적다. 또한, 도 11에서 확인한 바와 같이, 제안 방안의 평균 재생 시작 지연이 쿨스트리밍 방안보다 더 적기 때문에 재생 지점의 편차가 적다.FIG. 13 is a graph comparing a playback synchronization difference between a source peer and a peer in a P2P network according to an embodiment of the disclosed technology. As shown in FIG. 13, the proposed scheme is better than or equal to the maximum value, the average value, the minimum value, and the standard deviation in all parts of the playback point than the cool streaming method. The difference in playback synchronization is affected by the initial request point of the stream and the playback start delay. The proposed method predicts the playback point of the source peer to determine the initial request point of the stream, so there is less variation in the playback point than the coolstreaming method. In addition, as shown in FIG. 11, since the average playback start delay of the proposed scheme is smaller than that of the coolstream scheme, the variation of the playback point is small.
이러한 개시된 기술인 시스템 및 장치는 이해를 돕기 위하여 도면에 도시된 실시 예를 참고로 설명되었으나, 이는 예시적인 것에 불과하며, 당해 분야에서 통상적 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 개시된 기술의 진정한 기술적 보호범위는 첨부된 특허청구범위에 의해 정해져야 할 것이다.The disclosed system and apparatus have been described with reference to the embodiments illustrated in the drawings for clarity, but these are merely exemplary, and various modifications and equivalent other embodiments are possible to those skilled in the art. Will understand. Therefore, the true technical protection scope of the disclosed technology should be defined by the appended claims.
Claims (26)
- P2P(Peer to Peer) 어플리케이션 장치가, P2P 네트워크에 새로이 가입하고자 하는 단말에게 피어링 제의 리스트(Peering Suggestion List)를 제공하는 방법에 있어서,In a method for providing a peering peer list (Peering Suggestion List) to a terminal to be newly joined to a P2P network, the peer to peer (P2P) application device,상기 P2P 네트워크를 형성하고 있는 적어도 하나의 피어로부터 스트림 가용 메시지를 수신하여, 각 피어에 대한 스트림 가용성 가중치를 계산하는 단계;Receiving stream availability messages from at least one peer forming the P2P network, calculating stream availability weights for each peer;상기 단말로부터 상기 P2P 네트워크에 대한 가입 요청 메시지를 수신하는 단계;Receiving a subscription request message for the P2P network from the terminal;상기 스트림 가용성 가중치를 기초로, 상기 단말에 대한 피어링 제의 리스트(Peering Suggestion List)를 생성하는 단계; 및Generating a peering suggestion list for the terminal based on the stream availability weight; And상기 피어링 제의 리스트를 상기 단말에게 제공하는 단계를 포함하고,Providing the list of peering agents to the terminal;상기 스트림 가용성 가중치는, 상기 각 피어가 스트림을 안정적으로 제공할 수 있는 정도를 나타내는 피어링 제의 리스트를 제공하는 방법.Wherein said stream availability weight provides a list of peering agents indicative of the extent to which each peer can reliably provide a stream.
- 제1항에 있어서, 상기 스트림 가용성 가중치는,The method of claim 1, wherein the stream availability weight is동일 PoP 내에 위치해 있는 액티브 피어들의 스트림 가용성의 합에 대한 상기 피어의 스트림 가용성의 비율로 계산되는 피어링 제의 리스트를 제공하는 방법.Providing a list of peering agents calculated as the ratio of the stream availability of the peer to the sum of the stream availability of active peers located within the same PoP.
- 제2항에 있어서, 상기 스트림 가용성은,The method of claim 2, wherein the stream availability is:(이때, pn은 상기 피어 n의 스트림 가용성, tn init 은 피어 n이 상기 P2P 네트워크에 가입한 후 연결된 피어로부터 첫 번째 세그먼트를 받을 때까지 경과한 시간, tn c 은 피어 n이 첫 번째 세그먼트를 받은 후에 초기 동기화 지점까지 버퍼링 하기까지 경과한 시간, tn s 은 피어 n이 초기 동기화 지점까지 버퍼링 한 이후 상기 P2P 네트워크에 머무른 시간, α, β, γ는 각 단계 별 가중치를 나타냄)에 따라 계산되는 피어링 제의 리스트를 제공하는 방법. Where p n is the stream availability of the peer n, t n init is the time elapsed until peer n receives the first segment from the connected peer after joining the P2P network, and t n c is peer n first Elapsed time after receiving the segment to buffer to the initial synchronization point, t n s is the time the peer n has stayed in the P2P network since buffering to the initial synchronization point, α, β, γ represents the weight for each step) Providing a list of peering agents that are calculated accordingly.
- 제1항에 있어서, 상기 계산하는 단계는, The method of claim 1, wherein the calculating comprises:상기 피어가 서브스트림의 최초 세그먼트를 제공 받았음을 나타내는 제1 NOTIFY 메시지를 수신하는 단계; 및Receiving a first NOTIFY message indicating that the peer has received the first segment of a substream; And상기 피어가 초기 동기화 지점까지 버퍼링 했음을 나타내는 제2 NOTIFY 메시지를 수신하는 단계를 포함하는 피어링 제의 리스트를 제공하는 방법.Receiving a second NOTIFY message indicating that the peer has buffered up to an initial synchronization point.
- 제1항에 있어서, 상기 가입 요청 메시지는,The method of claim 1, wherein the subscription request message comprises:상기 단말로부터 IP(Internet Protocol) 주소, PID(Point of Presence ID), AS(Autonomous System) 번호 및 업로드/다운로드 링크 용량 중 적어도 하나에 관한 정보를 포함하고,And information about at least one of an Internet Protocol (IP) address, a Point of Presence ID (PID), an Autonomous System (AS) number, and an upload / download link capacity from the terminal,상기 생성하는 단계는, 상기 스트림 가용성 가중치 및 상기 링크 용량을 기초로 피어링 제의 리스트를 생성하는 피어링 제의 리스트를 제공하는 방법.The generating step comprises providing a list of peering agents to generate a list of peering agents based on the stream availability weights and the link capacity.
- 제1항에 있어서, The method of claim 1,상기 단말이 속한 AS(Autonomous System)의 네트워크 장치로부터 지연 비용, 링크 혼잡상태 비용, 또는 라우팅 비용을 제공 받는 단계를 더 포함하고,Receiving a delay cost, a link congestion state cost, or a routing cost from a network device of an AS (autonomous system) to which the terminal belongs;상기 생성하는 단계는, 상기 스트림 가용성 가중치, 상기 지연 비용, 상기 링크 혼잡상태 비용 또는 상기 라우팅 비용을 기초로 피어링 제의 리스트를 생성하는 피어링 제의 리스트를 제공하는 방법.The generating step comprises providing a list of peering agents to generate a list of peering agents based on the stream availability weight, the delay cost, the link congestion cost or the routing cost.
- 제6항에 있어서, 상기 지연 비용은,The method of claim 6, wherein the delay cost,PID-i(Point of Presence ID-i)로부터 PID-j(Point of Presence ID-j)로 가는 경로상의 모든 링크 e에서 발생하는 지연의 합으로 계산되는 피어링 제의 리스트를 제공하는 방법.A method of providing a list of peering agents that is calculated as the sum of delays occurring on all links e on a path from a Point of Presence ID-i to a Point of Presence ID-j.
- 제6항에 있어서, 상기 링크 혼잡상태 비용은,7. The method of claim 6, wherein the link congestion cost isPID-i로부터 PID-j로 가는 경로상의 모든 링크 e의 링크 혼잡 상태의 곱으로 계산되는 피어링 제의 리스트를 제공하는 방법.Providing a list of peering agents calculated as the product of the link congestion states of all links e on the path from PID-i to PID-j.
- 제6항에 있어서, 상기 라우팅 비용은,The method of claim 6, wherein the routing cost,PID-i로부터 PID-j로 가는 경로상의 모든 링크 e의 라우팅 비용의 합으로 계산되는 피어링 제의 리스트를 제공하는 방법.Providing a list of peering agents calculated as the sum of the routing costs of all links e on the path from PID-i to PID-j.
- 제1항에 있어서, 상기 생성하는 단계는, The method of claim 1, wherein the generating of상기 단말과 동일한 PoP(Point of Presence)에 존재하는 피어(이하, 인트라-PID 피어) 중 적어도 하나를 선택하고, 그 후, 상기 단말과 동일한 AS(Autonomous System) 내의 서로 다른 PoP에 존재하는 피어(이하, 인터-PID 피어) 중 적어도 하나를 선택하고, 그 후, 상기 단말과 서로 다른 AS 내에 존재하는 피어(이하, 인터-AS 피어) 중 적어도 하나를 선택하여 상기 피어링 제의 리스트에 추가하는 단계를 포함하는 피어링 제의 리스트를 제공하는 방법.Select at least one of peers (hereinafter, intra-PID peers) existing in the same Point of Presence (PoP) as the terminal, and then, peers existing in different PoPs in the same Autonomous System (AS) as the terminal ( Hereinafter, at least one of the inter-PID peers) is selected, and then, at least one of the peers (hereinafter referred to as inter-AS peers) existing in different ASs from the UE is added to the list of peering agents. Providing a list of peering agents comprising a.
- 제1항에 있어서, 상기 생성하는 단계는, The method of claim 1, wherein the generating of인트라-PID 피어 중에서 활용 가능한 업로드 대역폭을 가진 피어를 스트림 가용성 가중치가 높은 순서대로 선택하여 상기 피어링 제의 리스트에 추가하는 단계를 포함하는 피어링 제의 리스트를 제공하는 방법.Selecting a peer having an available upload bandwidth among intra-PID peers in order of stream availability weighting and adding to the list of peering agents.
- 제11항에 있어서, 상기 생성하는 단계는, The method of claim 11, wherein the generating step,상기 피어링 제의 리스트에 추가된 인트라-PID 피어의 수가 미리 설정된 수보다 작은 경우, 상기 단말과 동일한 AS에서 링크 혼잡상태 비용이 1이고, 지연 비용이 지연 임계 값보다 작은 PoP를 라우팅 비용이 낮은 순서대로 선택하여, 선택된 PoP의 인터-PID 피어를 상기 피어링 제의 리스트에 추가하는 단계를 더 포함하는 피어링 제의 리스트를 제공하는 방법.If the number of intra-PID peers added to the peering list is smaller than a preset number, the routing congestion cost of the PoP whose link congestion state cost is 1 and the delay cost is lower than the delay threshold value is same in the same AS as the terminal. And optionally adding the inter-PID peer of the selected PoP to the list of peering agents.
- 제12항에 있어서, 상기 생성하는 단계는, The method of claim 12, wherein the generating step,상기 스트림 제의 리스트에 추가된 인트라-PID 피어 및 인터-PID 피어의 수가 상기 미리 설정된 수보다 작은 경우, 상기 단말이 속해있는 ISP(Internet Service Provider)가 선호하는 AS의 인터-AS 피어를 상기 스트림 제의 리스트에 추가하는 단계를 더 포함하는 피어링 제의 리스트를 제공하는 방법.If the number of intra-PID peers and inter-PID peers added to the stream offering list is smaller than the preset number, the stream inter-AS peers of an AS preferred by an ISP (Internet Service Provider) to which the terminal belongs are streamed. The method of providing a list of peering products further comprising adding to the list of offers.
- 단말이 P2P(Peer-to-Peer) 네트워크를 형성하는 방법에 있어서, In the method for the terminal to form a peer-to-peer network,상기 P2P 네트워크에 대한 가입 요청 메시지를 P2P 어플리케이션 장치에 송신하는 단계;Sending a subscription request message for the P2P network to a P2P application device;상기 P2P 어플리케이션 장치로부터 제공되는 피어링 제의 리스트(Peering Suggestion List)에 포함된 적어도 하나의 피어와 P2P 연결을 형성하는 단계; Forming a P2P connection with at least one peer included in a Peering Suggestion List provided from the P2P application device;상기 연결을 형성한 적어도 하나의 피어로부터 재생 동기화 지점을 제공받아, 초기 동기화 지점을 결정하는 단계; 및Receiving a playback synchronization point from at least one peer that has established the connection to determine an initial synchronization point; And상기 초기 동기화 지점을 기준으로, 상기 연결을 형성한 적어도 하나의 피어로부터 서브스트림을 제공받는 단계를 포함하는 P2P 네트워크를 형성하는 방법.Receiving a substream from at least one peer that has established the connection, based on the initial synchronization point.
- 제14항에 있어서, 상기 재생 동기화 지점은,15. The system of claim 14, wherein the playback synchronization point is상기 연결을 형성한 피어가 소스 피어 또는 소스 피어의 파트너 피어로부터 제공된 재생 동기화 지점을 기초로 예측한 소스 피어의 재생 동기화 지점인 P2P 네트워크를 형성하는 방법.And a peer that forms the connection is a playback synchronization point of a source peer predicted based on a playback synchronization point provided from a source peer or a partner peer of a source peer.
- 제14항에 있어서, 상기 재생 동기화 지점은,15. The system of claim 14, wherein the playback synchronization point is
- 제14항에 있어서, 상기 초기 동기화 지점은,The method of claim 14, wherein the initial synchronization point,상기 적어도 하나의 재생 동기화 지점 중 가장 앞선 지점으로 결정되는 P2P 네트워크를 형성하는 방법.Forming a P2P network determined as the earliest of the at least one playback synchronization point.
- 제14항에 있어서, 상기 서브스트림을 제공받는 단계는,The method of claim 14, wherein receiving the substream comprises:상기 초기 동기화 지점에서 소정 세그먼트 앞선 지점부터 상기 서브스트림을 제공받는 P2P 네트워크를 형성하는 방법.And forming a P2P network provided with the substream from a point before a segment at the initial synchronization point.
- 제14항에 있어서, 상기 P2P 네트워크는,The method of claim 14, wherein the P2P network,각각의 서브스트림이 지정된 부모 피어를 통해 전달되는 멀티플 트리 오버레이와 임의의 파트너 피어를 통해 세그먼트를 요청하여 제공받는 보조 메시 오버레이를 포함하여 형성되는 P2P 네트워크를 형성하는 방법.A method of forming a P2P network, wherein each substream comprises a multiple tree overlay delivered through a designated parent peer and a secondary mesh overlay provided by requesting a segment via any partner peer.
- 제14항에 있어서, The method of claim 14,상기 피어링 제의 리스트는, 상기 P2P 네트워크를 형성하고 있는 각각의 피어에 대한 스트림 가용성 가중치에 따라 생성되며,The list of peering agents is generated according to stream availability weights for each peer forming the P2P network,상기 스트림 가용성 가중치는, 상기 각각의 피어가 스트림을 안정적으로 제공할 수 있는 정도를 나타내는 P2P 네트워크를 형성하는 방법.Wherein the stream availability weights represent a degree to which each peer can stably provide a stream.
- 제14항에 있어서, The method of claim 14,상기 연결을 형성한 피어 중 하나로부터 상기 서브스트림을 제공받으면, 버퍼 검사 인터벌마다 버퍼 검사를 수행하는 단계; 및Performing a buffer check every buffer check interval when receiving the substream from one of the peers that have formed the connection; And상기 버퍼 검사 인터벌 동안 제공되는 서브스트림이 미리 설정된 기준을 만족하지 못하는 경우, 서브스트림을 제공 받을 새로운 피어를 선택하는 단계를 더 포함하는 P2P 네트워크를 형성하는 방법.If a substream provided during the buffer check interval does not satisfy a predetermined criterion, selecting a new peer to receive the substream.
- 제21항에 있어서, 상기 선택하는 단계는,The method of claim 21, wherein the selecting comprises:상기 버퍼 검사 인터벌 동안 제공되는 서브스트림의 세그먼트 수가 최소 세그먼트 기준치를 초과하였는지 여부를 판단하는 단계;Determining whether the number of segments of a substream provided during the buffer check interval has exceeded a minimum segment reference value;상기 최소 세그먼트 기준치를 초과하지 못한 경우, 연속적으로 상기 최소 세그먼트 기준치를 초과하지 못하였다고 판단된 경우가 미리 설정된 임계 횟수보다 큰지 여부를 판단하는 단계; 및 If it is determined that the minimum segment reference value is not exceeded, determining whether the case in which it is determined that the minimum segment reference value has not been exceeded is greater than a preset threshold number; And상기 미리 설정된 임계 횟수를 초과한 경우, 상기 서브스트림을 제공 받을 새로운 피어를 선택하는 단계를 포함하는 P2P 네트워크를 형성하는 방법.Selecting a new peer to receive the substream when the preset threshold number is exceeded.
- 제21항에 있어서, 상기 새로운 피어는,The method of claim 21, wherein the new peer is:상기 새로운 피어에게 요청한 세그먼트의 전체 수 가운데, 상기 새로운 피어로부터 성공적으로 제공받은 세그먼트 수의 비율이 미리 설정된 기준 값을 초과하는 피어인 P2P 네트워크를 형성하는 방법.Forming a peer-to-peer network, wherein, among the total number of segments requested to the new peer, the ratio of the number of segments successfully received from the new peer exceeds the preset reference value.
- P2P 네트워크를 형성하는 적어도 하나의 피어로부터 제공되는 스트림 가용 메시지를 기초로, 상기 피어가 스트림을 안정적으로 제공할 수 있는 정도를 나타내는 스트림 가용성 가중치를 산출하는 스트림 가용성 모듈; 및A stream availability module that calculates a stream availability weight based on a stream availability message provided from at least one peer forming a P2P network, the stream availability weight indicating a degree to which the peer can stably provide a stream; And단말로부터 P2P 네트워크에 대한 가입 요청 메시지를 수신하면, 상기 스트림 가용성 가중치를 기초로 피어링 제의 리스트를 생성하고, 상기 피어링 제의 리스트를 상기 단말에게 제공하는 인텔리전트 피어링 모듈을 포함하는 P2P 어플리케이션 장치.And an intelligent peering module for generating a list of peering agents based on the stream availability weight and providing the list of peering agents to the terminal upon receiving a subscription request message for a P2P network from a terminal.
- P2P 네트워크의 가입 요청 메시지에 대한 응답으로 P2P 어플리케이션 장치로부터 수신되는 피어링 제의 리스트를 기초로 적어도 하나의 피어와 P2P 연결을 형성하는 파트너십 매니저; A partnership manager forming a P2P connection with at least one peer based on a list of peering agents received from the P2P application device in response to a subscription request message of the P2P network;상기 연결을 형성한 피어로부터 재생 동기화 지점을 제공 받고, 상기 제공된 적어도 하나의 재생 동기화 지점을 기초로 초기 동기화 지점을 결정하는 동기화 모듈; 및A synchronization module that receives a playback synchronization point from the peer that formed the connection and determines an initial synchronization point based on the provided at least one playback synchronization point; And상기 초기 동기화 지점에서 소정 세그먼트 앞선 지점부터, 상기 연결을 형성한 피어 중 적어도 하나로부터 서브스트림을 제공받는 스트림 매니저를 포함하는 단말. And a stream manager receiving a substream from at least one of the peers which form the connection from a point before the segment at the initial synchronization point.
- PID-i(Point of Presence ID-i)로부터 PID-j(Point of Presence ID-j)로 가는 경로상의 모든 링크에서 발생하는 지연을 더하여 지연 비용을 산출하는 지연 비용 연산부; 및 A delay cost calculation unit that calculates a delay cost by adding delays occurring in all links on a path from a point of presence ID-i to a point of presence ID-j; AndPID-i로부터 PID-j로 가는 경로상의 모든 링크의 링크 혼잡 상태를 곱하여 링크 혼잡 상태 비용을 산출하는 링크 혼잡 상태 비용 연산부를 포함하고,A link congestion state cost calculator that calculates a link congestion state cost by multiplying the link congestion states of all links on the path from PID-i to PID-j,상기 링크 혼잡 상태는, 해당하는 링크의 링크 활용률이 링크 활용률 제한치보다 큰 경우 0으로, 상기 링크 활용률 제한치보다 작은 경우 1로 결정되는 네트워크 장치.The link congestion state is determined as 0 when the link utilization rate of the corresponding link is greater than the link utilization limit and 1 when the link utilization rate is less than the link utilization limit.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2010-0129887 | 2010-12-17 | ||
KR1020100129887A KR101231208B1 (en) | 2010-12-17 | 2010-12-17 | Method for providing peering suggestion list, method for establishing p2p network, p2p application apparatus, terminal for establishing p2p network and network apparatus |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2012081823A1 true WO2012081823A1 (en) | 2012-06-21 |
Family
ID=46244889
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/KR2011/008137 WO2012081823A1 (en) | 2010-12-17 | 2011-10-28 | Method for providing a peering suggestion list, method for forming a p2p network, p2p application device, and terminal and network device for forming a p2p network |
Country Status (2)
Country | Link |
---|---|
KR (1) | KR101231208B1 (en) |
WO (1) | WO2012081823A1 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200374212A1 (en) * | 2017-11-28 | 2020-11-26 | Orange | Method of automatic setup by a first device of a session complying with a dynamic routing protocol with a second device |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20140119547A (en) * | 2013-04-01 | 2014-10-10 | 삼성전자주식회사 | Method and Apparatus for Discovery Peer-to-Peer Devices in Wi-Fi Communication System |
WO2015072796A1 (en) * | 2013-11-15 | 2015-05-21 | 엘지전자 주식회사 | Method and apparatus for changing state of nan terminal in wireless communication system |
US10554745B2 (en) | 2014-01-14 | 2020-02-04 | Lg Electronics Inc. | Method and apparatus for managing connection between broadcasting reception device and another device which are connected through network |
US10645134B2 (en) | 2017-06-19 | 2020-05-05 | Electronics And Telecommunications Research Institute | Peer and operation method thereof |
KR102190235B1 (en) * | 2017-06-19 | 2020-12-11 | 한국전자통신연구원 | Peer and operating mehtod of thereof |
US10819781B2 (en) | 2017-10-23 | 2020-10-27 | Electronics And Telecommunications Research Institute | Display device connection method for rapidly delivering data to plurality of display devices |
KR102579413B1 (en) | 2017-10-23 | 2023-09-18 | 한국전자통신연구원 | Method for connecting display devices for rapid data delivery to a plurality of display devices |
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 |
KR20230062132A (en) * | 2021-10-29 | 2023-05-09 | 삼성전자주식회사 | Server and electronic device for transmitting and receiving stream data and method for operating thereof |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20050116852A (en) * | 2004-06-08 | 2005-12-13 | 삼성전자주식회사 | Method and apparatus for configuring routing path in a wireless ad hoc network |
KR20060083543A (en) * | 2005-01-18 | 2006-07-21 | 삼성전자주식회사 | Routing method in wireless sense network |
KR20080096058A (en) * | 2007-04-26 | 2008-10-30 | 주식회사 케이티 | The optimal route finding method and the bogus node identifing method in the wireless mesh networks |
KR20100026132A (en) * | 2008-08-29 | 2010-03-10 | 성균관대학교산학협력단 | Sensor network control method for data path setup and recovery by using the routing table and sensor network using thereof |
KR20110061609A (en) * | 2008-09-04 | 2011-06-09 | 파워웨이브 코그니션, 인크. | Enhanced wireless ad hoc communication technique |
-
2010
- 2010-12-17 KR KR1020100129887A patent/KR101231208B1/en not_active IP Right Cessation
-
2011
- 2011-10-28 WO PCT/KR2011/008137 patent/WO2012081823A1/en active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20050116852A (en) * | 2004-06-08 | 2005-12-13 | 삼성전자주식회사 | Method and apparatus for configuring routing path in a wireless ad hoc network |
KR20060083543A (en) * | 2005-01-18 | 2006-07-21 | 삼성전자주식회사 | Routing method in wireless sense network |
KR20080096058A (en) * | 2007-04-26 | 2008-10-30 | 주식회사 케이티 | The optimal route finding method and the bogus node identifing method in the wireless mesh networks |
KR20100026132A (en) * | 2008-08-29 | 2010-03-10 | 성균관대학교산학협력단 | Sensor network control method for data path setup and recovery by using the routing table and sensor network using thereof |
KR20110061609A (en) * | 2008-09-04 | 2011-06-09 | 파워웨이브 코그니션, 인크. | Enhanced wireless ad hoc communication technique |
Non-Patent Citations (1)
Title |
---|
C. YE ET AL.: "Peer to Peer Replication with Preferences", INFOSCALE (INTERNATIONAL CONFERENCE ON SCALABLE INFORMATION SYSTEMS), 6 June 2007 (2007-06-06) * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20200374212A1 (en) * | 2017-11-28 | 2020-11-26 | Orange | Method of automatic setup by a first device of a session complying with a dynamic routing protocol with a second device |
Also Published As
Publication number | Publication date |
---|---|
KR101231208B1 (en) | 2013-02-07 |
KR20120068314A (en) | 2012-06-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2012081823A1 (en) | Method for providing a peering suggestion list, method for forming a p2p network, p2p application device, and terminal and network device for forming a p2p network | |
US8850497B2 (en) | Efficiently distributing video content using a combination of a peer-to-peer network and a content distribution network | |
CN107223325B (en) | Method and system for adaptive virtual broadcasting of digital content | |
US8949436B2 (en) | System and method for controlling peer-to-peer connections | |
JP4951706B2 (en) | Queue-based adaptive chunk scheduling for peer-to-peer live streaming | |
Guo et al. | Scalable live video streaming to cooperative clients using time shifting and video patching | |
Guo et al. | AQCS: Adaptive queue-based chunk scheduling for P2P live streaming | |
KR20100057828A (en) | A unified peer-to-peer and cache system for content services in wireless mesh networks | |
CN114071168B (en) | Mixed-flow live stream scheduling method and device | |
US10009396B2 (en) | Queue-based adaptive chunk scheduling for peer-to-peer live streaming | |
US20070160048A1 (en) | Method for providing data and data transmission system | |
Delgrossi et al. | Reservation protocols for internetworks: A comparison of ST-II and RSVP | |
Firdhous | Multicasting over overlay networks a critical review | |
WO2012158161A1 (en) | Efficiently distributing video content using a combination of a peer-to-peer network and a content distribution network | |
TW201427450A (en) | Method and system for controlling flow of content delivery network and peer to peer network | |
Cetinkaya et al. | Segment‐aware dynamic routing for DASH flows over software‐defined networks | |
Jurca et al. | Distributed media rate allocation in multipath networks | |
Xie et al. | A caching-based video-on-demand service in wireless relay networks | |
Tran et al. | Layered range multicast for video on demand | |
Chan et al. | An application-level multicast framework for large scale VOD services | |
Famaey et al. | Towards intelligent scheduling of multimedia content in future access networks | |
Priyadharisini | An adaptive cache switching based video streaming using Buffer seeded multi checkpoint peer responder to improve the quality of service in WSN | |
El-Gindy et al. | " Scheduled-multicast" with application in multimedia networks | |
Guo et al. | P cast: P2p patching scheme for vod service | |
Do et al. | Scalable video-on-demand streaming in mobile wireless hybrid networks |
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: 11848864 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: 11848864 Country of ref document: EP Kind code of ref document: A1 |