KR102135737B1 - Peer and method for starting point adaptation - Google Patents

Peer and method for starting point adaptation Download PDF

Info

Publication number
KR102135737B1
KR102135737B1 KR1020180041481A KR20180041481A KR102135737B1 KR 102135737 B1 KR102135737 B1 KR 102135737B1 KR 1020180041481 A KR1020180041481 A KR 1020180041481A KR 20180041481 A KR20180041481 A KR 20180041481A KR 102135737 B1 KR102135737 B1 KR 102135737B1
Authority
KR
South Korea
Prior art keywords
peer
value
point value
counterpart
margin
Prior art date
Application number
KR1020180041481A
Other languages
Korean (ko)
Other versions
KR20180138120A (en
Inventor
현욱
이창규
Original Assignee
한국전자통신연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국전자통신연구원 filed Critical 한국전자통신연구원
Priority to US16/010,662 priority Critical patent/US10667016B2/en
Publication of KR20180138120A publication Critical patent/KR20180138120A/en
Application granted granted Critical
Publication of KR102135737B1 publication Critical patent/KR102135737B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • H04L67/1074Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/24Negotiation of communication capabilities

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Transfer Between Computers (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

피어의 시작 지점 조정 방법이 개시된다. 일 실시예는 상대 피어의 시작 지점(start point, SP) 값 및 다운로드 지점(download point, DP) 값을 상기 상대 피어로부터 수신하고, 상기 수신된 SP 값 및 상기 수신된 DP 값을 기초로 피어의 초기 SP 값을 결정하며 상기 결정된 초기 SP 값이 상기 수신된 SP 값보다 작은 경우, 상기 피어의 재생 지점(play point)의 평균 이동 속도(move rate)와 상기 피어의 평균 조각 수신 속도 사이의 비율을 계산하고, 상기 계산된 비율을 기초로 마진(margin)을 계산하고, 상기 수신된 SP 값 및 상기 수신된 DP 값 중 어느 하나와 상기 계산된 마진을 이용하여 상기 피어의 SP 값을 결정한다.A method of adjusting a peer's starting point is disclosed. In one embodiment, a start point (SP) value and a download point (DP) value of a counterpart peer are received from the counterpart peer, and based on the received SP value and the received DP value, Determine the initial SP value, and when the determined initial SP value is less than the received SP value, the ratio between the average move rate of the play point of the peer and the average fragment reception rate of the peer Then, a margin is calculated based on the calculated ratio, and an SP value of the peer is determined using any one of the received SP value and the received DP value and the calculated margin.

Description

피어 및 피어의 시작 지점 조정 방법{PEER AND METHOD FOR STARTING POINT ADAPTATION}Peer and peer start point coordination method {PEER AND METHOD FOR STARTING POINT ADAPTATION}

아래 실시예들은 피어 및 피어의 시작 지점 조정 방법에 대한 것이다.The following embodiments are directed to a peer and a method of adjusting the starting point of the peer.

Mesh 기반의 P2P(peer to peer) 스트리밍의 경우, P2P 특성상 각 피어들(또는 각 단말들)이 가지고 있는 버퍼맵이 다르다.In the case of mesh-based peer-to-peer (P2P) streaming, the buffer maps of each peer (or each terminal) are different due to the characteristics of P2P.

피어는 버퍼맵을 트래커 서버로부터 수신하지 않고, 다른 피어로부터 가져오기 때문에 신규로 네트워크에 참여한 피어는 최초로 접속한 상대 피어의 버퍼맵을 기준으로 시작점을 설정한다. 피어는 상대 피어에 접속할 때, 자신이 설정한 시작점을 기준으로 버퍼맵의 크기만큼 해당되는 chunk를 요청하게 된다.Since the peer does not receive the buffer map from the tracker server, but fetches it from another peer, a new peer who participates in the network sets the starting point based on the buffer map of the counterpart peer that first connected. When a peer connects to the peer, it requests a chunk corresponding to the size of the buffer map based on the starting point set by the peer.

피어가 버퍼맵의 시작점을 너무 오래된 값으로 설정하게 되면, 상대 피어의 버퍼맵내에서 원하는 chunk를 찾지 못해 신규로 생성되는 chunk를 받지 못하는 상황이 발생할 수 있다. 또한, 영상의 bitrate가 높을 경우, chunk의 생성속도가 빨라지게 되고, 이로 인해 버퍼맵의 sliding 속도가 빨라지게 된다.If the peer sets the starting point of the buffer map to a value that is too old, there may be a situation in which a new chunk is not received because a desired chunk is not found in the buffer map of the peer. In addition, when the bitrate of an image is high, the generation speed of chunks increases, and thus the sliding speed of the buffer map increases.

피어의 버퍼맵이 실제 영상속도에 맞춰 이동하지 않으면, 일정 시점부터 해당 피어는 오버레이 네트워크에서 orphan이 되어, 다른 피어들로부터 더 이상 신규 데이터를 수신하지 못할 수 있다. 또한, orphan이 된 피어는 자신에 최초로 접속한 하나 이상의 피어들에게 잘못된 시작점을 전송시킴으로써 해당 피어까지 orphan이 될 수 있다.If the peer's buffer map does not move according to the actual video speed, the peer becomes orphan in the overlay network from a certain point in time, and new data may no longer be received from other peers. In addition, a peer that has become an orphan can become an orphan to a corresponding peer by transmitting an incorrect starting point to one or more peers that first access it.

일 측에 따른 피어의 시작 지점 조정 방법은 상대 피어의 시작 지점(start point, SP) 값 및 다운로드 지점(download point, DP) 값을 상기 상대 피어로부터 수신하는 단계; 상기 수신된 SP 값 및 상기 수신된 DP 값을 기초로 피어의 초기 SP 값을 결정하는 단계; 상기 결정된 초기 SP 값이 상기 수신된 SP 값보다 작은 경우, 상기 피어의 재생 지점(play point)의 평균 이동 속도(move rate)와 상기 피어의 평균 조각 수신 속도 사이의 비율을 계산하는 단계; 상기 계산된 비율을 기초로 마진(margin)을 계산하는 단계; 및 상기 수신된 SP 값 및 상기 수신된 DP 값 중 어느 하나와 상기 계산된 마진을 이용하여 상기 피어의 SP 값을 결정하는 단계를 포함한다.A method for adjusting a start point of a peer according to one side includes: receiving a start point (SP) value and a download point (DP) value of the counterpart peer from the counterpart peer; Determining an initial SP value of a peer based on the received SP value and the received DP value; If the determined initial SP value is less than the received SP value, calculating a ratio between an average move rate of a play point of the peer and an average fragment reception speed of the peer; Calculating a margin based on the calculated ratio; And determining the SP value of the peer using one of the received SP value and the received DP value and the calculated margin.

상기 초기 SP 값을 결정하는 단계는 상기 수신된 DP 값과 상기 수신된 SP 값 사이의 차이값을 계산하고, 상기 계산된 차이값과 제1 상수값 중 더 큰 값에 제2 상수값을 곱하는 단계; 및 상기 곱셈 결과를 반올림하고 상기 수신된 DP 값과 상기 반올림 결과 사이의 차이값을 상기 초기 SP 값으로 결정하는 단계를 포함할 수 있다.The determining of the initial SP value may include calculating a difference value between the received DP value and the received SP value, and multiplying a second constant value by a larger value among the calculated difference value and a first constant value. ; And rounding the multiplication result and determining a difference value between the received DP value and the rounding result as the initial SP value.

상기 제1 상수값은 1이고, 상기 제2 상수값은 0.5일 수 있다.The first constant value may be 1, and the second constant value may be 0.5.

상기 마진을 계산하는 단계는 상기 수신된 DP 값과 상기 수신된 SP 값 사이의 차이값을 계산하고, 상기 계산된 차이값에 상기 계산된 비율을 곱하는 단계; 상기 곱셈 결과와 제3 상수값 중 더 큰 것을 반올림하는 단계; 및 상기 반올림 결과를 상기 마진으로 결정하는 단계를 포함한다.The calculating of the margin may include calculating a difference value between the received DP value and the received SP value, and multiplying the calculated difference value by the calculated ratio; Rounding the larger of the multiplication result and a third constant value; And determining the rounding result as the margin.

상기 제3 상수값은 1일 수 있다.The third constant value may be 1.

상기 SP 값을 결정하는 단계는 상기 평균 조각 수신 속도가 임계값보다 큰 경우, 상기 SP 값을 상기 수신된 SP 값 및 상기 수신된 DP 값 중 상기 수신된 DP 값에 가깝게 결정하는 단계를 포함할 수 있다.The determining of the SP value may include determining the SP value to be close to the received DP value among the received SP value and the received DP value when the average fragment reception speed is greater than a threshold value. have.

상기 결정된 SP 값과 상기 수신된 DP 값 사이의 차이는 상기 계산된 마진에 해당할 수 있다.The difference between the determined SP value and the received DP value may correspond to the calculated margin.

상기 SP 값을 결정하는 단계는 상기 평균 조각 수신 속도가 임계값 이하인 경우, 상기 SP 값을 상기 수신된 SP 값 및 상기 수신된 DP 값 중 상기 수신된 SP 값에 가깝게 결정하는 단계를 포함할 수 있다.The determining of the SP value may include determining the SP value to be close to the received SP value among the received SP value and the received DP value when the average fragment reception speed is less than or equal to a threshold value. .

상기 결정된 SP 값과 상기 수신된 SP 값 사이의 차이는 상기 계산된 마진에 해당할 수 있다.The difference between the determined SP value and the received SP value may correspond to the calculated margin.

상기 SP 값을 결정하는 단계는 상기 평균 조각 수신 속도가 임계값보다 큰 경우, 상기 수신된 DP 값에 상기 계산된 마진을 차감한 결과를 상기 SP 값으로 결정하는 단계; 및 상기 평균 조각 수신 속도가 임계값 이하인 경우, 상기 수신된 SP 값에 상기 계산된 마진을 더한 결과를 상기 SP 값으로 결정하는 단계를 포함할 수 있다.The determining of the SP value may include determining a result of subtracting the calculated margin from the received DP value as the SP value when the average fragment reception speed is greater than a threshold value; And determining a result of adding the calculated margin to the received SP value as the SP value when the average fragment reception speed is less than or equal to a threshold value.

상기 재생 지점의 평균 이동 속도는 조각(fragment)의 생성 속도(generation speed)와 관련될 수 있다.The average moving speed of the reproducing point may be related to the generation speed of the fragment.

일 측에 따른 피어는 통신 인터페이스; 및 상대 피어의 시작 지점(start point, SP) 값 및 다운로드 지점(download point, DP) 값을 상기 통신 인터페이스를 통해 상기 상대 피어로부터 수신하고, 상기 수신된 SP 값 및 상기 수신된 DP 값을 기초로 피어의 초기 SP 값을 결정하며, 상기 결정된 초기 SP 값이 상기 수신된 SP 값보다 작은 경우, 상기 피어의 재생 지점(play point)의 평균 이동 속도(move rate)와 상기 피어의 평균 조각 수신 속도 사이의 비율을 계산하고, 상기 계산된 비율을 기초로 마진(margin)을 계산하고, 상기 수신된 SP 값 및 상기 수신된 DP 값 중 어느 하나와 상기 계산된 마진을 이용하여 상기 피어의 SP 값을 결정하는 프로세서를 포함한다.The peer according to one side comprises a communication interface; And receiving a start point (SP) value and a download point (DP) value of the counterpart peer from the counterpart peer through the communication interface, and based on the received SP value and the received DP value. Determines the initial SP value of the peer, and when the determined initial SP value is less than the received SP value, between the average move rate of the play point of the peer and the average fragment reception rate of the peer Calculate a ratio of, calculate a margin based on the calculated ratio, and determine the SP value of the peer using any one of the received SP value and the received DP value and the calculated margin It includes a processor that does.

상기 프로세서는 상기 수신된 DP 값과 상기 수신된 SP 값 사이의 차이값을 계산하고, 상기 계산된 차이값과 제1 상수값 중 더 큰 값에 제2 상수값을 곱하고, 상기 곱셈 결과를 반올림하고 상기 수신된 DP 값과 상기 반올림 결과 사이의 차이값을 상기 초기 SP 값으로 결정할 수 있다.The processor calculates a difference value between the received DP value and the received SP value, multiplies a larger value of the calculated difference value and a first constant value by a second constant value, and rounds the multiplication result. The difference between the received DP value and the rounding result may be determined as the initial SP value.

상기 제1 상수값은 1이고, 상기 제2 상수값은 0.5일 수 있다.The first constant value may be 1, and the second constant value may be 0.5.

상기 프로세서는 상기 수신된 DP 값과 상기 수신된 SP 값 사이의 차이값을 계산하고, 상기 계산된 차이값에 상기 계산된 비율을 곱하며, 상기 곱셈 결과와 제3 상수값 중 더 큰 것을 반올림하고, 상기 반올림 결과를 상기 마진으로 결정할 수 있다.The processor calculates a difference value between the received DP value and the received SP value, multiplies the calculated difference value by the calculated ratio, and rounds the larger of the multiplication result and a third constant value, and , The rounding result may be determined as the margin.

상기 제3 상수값은 1일 수 있다.The third constant value may be 1.

상기 프로세서는 상기 평균 조각 수신 속도가 임계값보다 큰 경우, 상기 SP 값을 상기 수신된 SP 값 및 상기 수신된 DP 값 중 상기 수신된 DP 값에 가깝게 결정할 수 있다.When the average fragment reception speed is greater than a threshold value, the processor may determine the SP value to be close to the received DP value among the received SP value and the received DP value.

상기 결정된 SP 값과 상기 수신된 DP 값 사이의 차이는 상기 계산된 마진에 해당할 수 있다.The difference between the determined SP value and the received DP value may correspond to the calculated margin.

상기 프로세서는 상기 평균 조각 수신 속도가 임계값 이하인 경우, 상기 SP 값을 상기 수신된 SP 값 및 상기 수신된 DP 값 중 상기 수신된 SP 값에 가깝게 결정할 수 있다.When the average fragment reception rate is less than or equal to a threshold value, the processor may determine the SP value to be close to the received SP value among the received SP value and the received DP value.

상기 결정된 SP 값과 상기 수신된 SP 값 사이의 차이는 상기 계산된 마진에 해당할 수 있다.The difference between the determined SP value and the received SP value may correspond to the calculated margin.

상기 프로세서는 상기 평균 조각 수신 속도가 임계값보다 큰 경우, 상기 수신된 DP 값에 상기 계산된 마진을 차감한 결과를 상기 SP 값으로 결정하고, 상기 평균 조각 수신 속도가 임계값 이하인 경우, 상기 수신된 SP 값에 상기 계산된 마진을 더한 결과를 상기 SP 값으로 결정할 수 있다.When the average fragment reception speed is greater than a threshold value, the processor determines a result of subtracting the calculated margin from the received DP value as the SP value, and when the average fragment reception speed is less than a threshold value, the reception The result of adding the calculated margin to the generated SP value may be determined as the SP value.

상기 재생 지점의 평균 이동 속도는 조각(fragment)의 생성 속도(generation speed)와 관련될 수 있다.The average moving speed of the reproducing point may be related to the generation speed of the fragment.

실시예에 따르면, 피어는 상대 피어와의 버퍼맵 협상 과정에서 자신의 시작값이 뒤쳐져 있다고 판단되면 시작점을 재조정할 수 있다. 이로 인해, 피어는 네트워크에서 orphan이 될 위험이 낮아질 수 있다. 또한, 이러한 재조정 기능을 통해 각 여러 피어 단말들의 재생시간이 동기화될 수 있다.According to an embodiment, the peer may readjust the starting point when it is determined that its starting value is lagging in the process of negotiating a buffer map with the counterpart peer. Due to this, the risk of the peer becoming an orphan in the network may be lowered. In addition, through this readjustment function, the playback times of each of several peer terminals can be synchronized.

도 1은 피어의 시작 지점을 설명하기 위한 도면이다.
도 2 내지 도 3은 일 실시예에 따른 피어의 시작 지점 조정을 설명하기 위한 도면이다.
도 4는 일 실시예에 따른 피어의 시작 지점 조정 방법을 설명하기 위한 순서도이다.
도 5는 일 실시예에 따른 피어를 설명하기 위한 블록도이다.
1 is a diagram for describing a starting point of a peer.
2 to 3 are diagrams for explaining adjustment of a starting point of a peer according to an embodiment.
4 is a flowchart illustrating a method of adjusting a starting point of a peer according to an embodiment.
5 is a block diagram illustrating a peer according to an embodiment.

이하에서, 첨부된 도면을 참조하여 실시예들을 상세하게 설명한다. 그러나, 실시예들에는 다양한 변경이 가해질 수 있어서 특허출원의 권리 범위가 이러한 실시예들에 의해 제한되거나 한정되는 것은 아니다. 실시예들에 대한 모든 변경, 균등물 내지 대체물이 권리 범위에 포함되는 것으로 이해되어야 한다.Hereinafter, exemplary embodiments will be described in detail with reference to the accompanying drawings. However, since various changes may be made to the embodiments, the scope of the rights of the patent application is not limited or limited by these embodiments. It should be understood that all changes, equivalents, or substitutes to the embodiments are included in the scope of the rights.

실시예에서 사용한 용어는 단지 설명을 목적으로 사용된 것으로, 한정하려는 의도로 해석되어서는 안된다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terms used in the examples are used for illustrative purposes only and should not be interpreted as limiting. Singular expressions include plural expressions unless the context clearly indicates otherwise. In the present specification, terms such as "comprise" or "have" are intended to designate the presence of features, numbers, steps, actions, components, parts, or combinations thereof described in the specification, but one or more other features. It is to be understood that the presence or addition of elements or numbers, steps, actions, components, parts, or combinations thereof, does not preclude in advance.

다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless otherwise defined, all terms used herein, including technical or scientific terms, have the same meaning as commonly understood by one of ordinary skill in the art to which the embodiment belongs. Terms such as those defined in a commonly used dictionary should be interpreted as having a meaning consistent with the meaning in the context of the related technology, and should not be interpreted as an ideal or excessively formal meaning unless explicitly defined in this application. Does not.

또한, 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일한 참조부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 실시예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 실시예의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.In addition, in the description with reference to the accompanying drawings, the same reference numerals are assigned to the same components regardless of the reference numerals, and redundant descriptions thereof will be omitted. In describing the embodiments, when it is determined that a detailed description of related known technologies may unnecessarily obscure the subject matter of the embodiments, the detailed description thereof will be omitted.

상세한 설명에 앞서, 버퍼맵에 대해 설명한다. 버퍼맵은 완료 섹션(Completed section), 다운로딩 섹션(Downloading section), 및 엠프티 섹션(Empty section)으로 구성된다.Prior to the detailed description, a buffer map will be described. The buffer map consists of a Completed section, a Downloading section, and an Empty section.

완료 섹션은 피어가 조각들을 연속적으로 보유하고 있는 섹션(section that a peer possesses fragments continuously)을 나타낸다. A complete section represents a section that a peer possesses fragments continuously.

다운로딩 섹션은 피어가 조각들을 연속적으로 보유하지 않은 섹션(section that a peer does not possess fragments continuously)을 나타낸다.The downloading section represents a section that a peer does not possess fragments continuously.

엠프티 섹션은 DP에 의해 SP를 오버라이딩하는 것을 막기 위해 버퍼링에 사용될 섹션(A section that will be used for buffering to prevent from overriding SP by DP)을 나타낸다. The empty section represents a section that will be used for buffering to prevent from overriding SP by DP to prevent overriding SP by DP.

그리고, 버퍼맵은 특정 조각 식별자를 가리키는 다음 속성들이 있다(buffermap has the following attributes that point specific fragment identifier).And, the buffermap has the following attributes that point specific fragment identifier.

- CP(Completed Point): CP는 버퍼맵에서의 완료 섹션의 끝을 나타낸다(This value points to the end of the completed section in the buffermap). 달리 표현하면, CP는 완료 섹션의 끝에 해당한다.-CP (Completed Point): CP indicates the end of the completed section in the buffer map (This value points to the end of the completed section in the buffermap). In other words, CP corresponds to the end of the complete section.

- DP(Downloading Point): DP는 버퍼맵에서의 다운로딩 섹션의 끝을 나타낸다(This value points to the end of the downloading section in the buffermap). 달리 표현하면, DP는 다운로딩 섹션의 끝에 해당한다.-DP (Downloading Point): DP indicates the end of the downloading section in the buffer map (This value points to the end of the downloading section in the buffermap). In other words, DP corresponds to the end of the downloading section.

- SP(Starting Point): SP는 버퍼맵의 시작에서의 식별자를 나타낸다(This value points to the identifier at the beginning of the buffermap). 달리 표현하면, SP는 버퍼맵의 시작을 나타낸다.-SP (Starting Point): SP represents the identifier at the beginning of the buffer map (This value points to the identifier at the beginning of the buffermap). In other words, SP represents the beginning of the buffer map.

- PP(Play Point): PP는 버퍼맵에서 플레이어에게 패스된 식별자를 나타낸다(This value points to the identifier that is passed to the player in the buffermap). PP는 flow control에 사용된다(This value is used for flow control with other peers).-PP (Play Point): PP represents the identifier passed to the player in the buffer map (This value points to the identifier that is passed to the player in the buffermap). PP is used for flow control (This value is used for flow control with other peers).

- EP(End Point): EP는 엠프티 섹션의 끝을 나타낸다.-EP (End Point): EP indicates the end of the empty section.

도 1은 피어의 시작 지점을 설명하기 위한 도면이다.1 is a diagram for describing a starting point of a peer.

도 1에 도시된 예와 같이, 피어 P2(120)의 버퍼맵은 피어 P1(110)의 버퍼맵보다 앞설 수 있다. 다시 말해, 피어 P1(110)의 SP(start point)는 피어 P2(120)의 SP보다 오래된 것일 수 있다. 이 경우, 피어 P1(110)은 피어 P2(120)에 접속하여 피어 P1(110) 자신의 버퍼맵의 크기에 해당하는 청크(chunk)를 자신의 SP를 기준으로 피어 P2(120)에 요청하더라도 피어 P2(120)의 버퍼맵에서 원하는 청크를 찾지 못할 수 있다. 또한, 피어 P1(110)은 새로 생성되는 청크를 P2(120)로부터 수신하지 못할 수 있다. 1, the buffer map of the peer P2 120 may precede the buffer map of the peer P1 110. In other words, the start point (SP) of the peer P1 110 may be older than the SP of the peer P2 120. In this case, even if the peer P1 110 accesses the peer P2 120 and requests a chunk corresponding to the size of the buffer map of the peer P1 110 from the peer P2 120 based on its SP The desired chunk may not be found in the buffer map of the peer P2 120. In addition, peer P1 110 may not be able to receive a newly created chunk from P2 120.

또한, 피어 P2(120)의 버퍼맵은 피어 P1(110)의 버퍼맵보다 앞선 상황에서 피어 P1(110)의 버퍼맵이 영상 속도에 맞춰 이동(moving)(다른 표현으로는, 슬라이딩(sliding))하지 않으면, 특정 시점부터 피어 P1(110)은 오버레이 네트워크(overlay network)에서 orphan이 될 수 있다. 이 경우, 피어 P1(110)은 피어 P2(120)뿐 아니라 다른 피어들로부터 더 이상 데이터를 수신하지 못한다. 또한, orphan이 된 피어 P1(110)은 자신에 접속한 하나 이상의 제3 피어들에게 잘못된 시작 지점을 전파시킬 수 있어, 해당 제3 피어들이 오버레이 네트워크에서 orphan이 될 수 있다. In addition, the buffer map of the peer P2 (120) is moved in accordance with the video speed in a situation in which the buffer map of the peer P1 (110) is ahead of the buffer map of the peer P1 (110) (in other words, sliding) ), from a specific point in time, the peer P1 110 may become an orphan in an overlay network. In this case, peer P1 110 may no longer receive data from peer P2 120 as well as other peers. In addition, the peer P1 110, which has become an orphan, can propagate an incorrect starting point to one or more third peers that have accessed it, so that the corresponding third peers can become orphans in the overlay network.

일 실시예에 따르면, 피어 P1(110)은 자신의 SP를 조정함으로써 전술한 문제점을 해결할 수 있다. 이하, 도 2 내지 도 3을 참조하면서 피어 P1(110)의 SP 조정에 대해 설명한다.According to an embodiment, the peer P1 110 may solve the above-described problem by adjusting its SP. Hereinafter, the SP adjustment of the peer P1 110 will be described with reference to FIGS. 2 to 3.

도 2 내지 도 3은 일 실시예에 따른 피어의 시작 지점 조정을 설명하기 위한 도면이다.2 to 3 are diagrams for explaining adjustment of a starting point of a peer according to an embodiment.

도 2를 참조하면, 피어 P1(110)는 피어 P2(120)와 버퍼맵 네고시에이션을 수행한다(210). 이 때, 피어 P1(110)은 피어 P2(120)로부터 피어 P2(120)의 SP 값 및 DP(download point) 값을 수신할 수 있고, 피어 P1(110) 자신의 SP 값이 피어 P2(120)의 SP 값 보다 작으면, 새로운 SP 값, 즉, SP' 값을 결정한다. Referring to FIG. 2, peer P1 110 performs buffer map negotiation with peer P2 120 (210). At this time, the peer P1 (110) may receive the SP value and the DP (download point) value of the peer P2 (120) from the peer P2 (120), and the SP value of the peer P1 (110) is peer P2 (120). If it is less than the SP value of ), the new SP value, that is, the SP' value is determined.

만약, 피어 P1(110)이 최초로 실행되고 SP 값이 설정되어 있지 않으며 버퍼맵 타임 테이블(Buffermap Time Table, BTT) 정보가 없다면, 피어 P1(110)은 피어 P2(120)의 SP 값 및 피어 P2(120)의 DP 값을 기초로 피어 P1(110) 자신의 초기 SP 값을 결정할 수 있다. 예를 들어, 피어 P1(110)은 아래 수학식 1에 따라 자신의 초기 SP 값을 결정할 수 있다.If the peer P1 110 is executed for the first time and the SP value is not set and there is no buffermap time table (BTT) information, the peer P1 110 is the SP value of the peer P2 120 and the peer P2 The peer P1 110 may determine its own initial SP value based on the DP value of 120. For example, the peer P1 110 may determine its initial SP value according to Equation 1 below.

[수학식 1][Equation 1]

mySP_ini = peerDP - ROUND[ ½ × max{(peerDP - peerSP), 1} ]mySP_ini = peerDP-ROUND[ ½ × max{(peerDP-peerSP), 1}]

위의 수학식 1에서, mySP_ini는 피어 P1(110)의 초기 SP 값을 나타내고, peerDP는 피어 2(120)의 DP 값을 나타내며, peerSP는 피어 2(120)의 SP 값을 나타낸다. 또한, 위의 수학식 1에서, max는 peerDP와 peerSP 사이의 차이값 및 1 중 더 큰 값을 선택하는 연산자(operator)를 나타내고, ROUND는 반올림 연산자를 나타낸다. 일례로, peerDP와 peerSP 사이의 차이값 및 1 중 1이 더 크다면, mySP_ini는 peerDP와 ROUND[½ × 1] 사이의 차이값, 즉, peerDP - 1로 결정될 수 있다.In Equation 1 above, mySP_ini represents the initial SP value of peer P1 (110), peerDP represents the DP value of peer 2 (120), and peerSP represents the SP value of peer 2 (120). In addition, in Equation 1 above, max denotes an operator for selecting a larger value of 1 and a difference value between peerDP and peerSP, and ROUND denotes a rounding operator. For example, if 1 of 1 and the difference value between peerDP and peerSP is larger, mySP_ini may be determined as the difference value between peerDP and ROUND[½×1], that is, peerDP-1.

피어 P1(110)은 초기 SP 값이 피어 P2(120)의 SP 값보다 작으면, 초기 SP 값을 이용하지 않고 SP' 값을 새로 결정한다.If the initial SP value is smaller than the SP value of the peer P2 120, the peer P1 110 newly determines the SP' value without using the initial SP value.

이하, 피어 P1(110)이 SP' 값을 어떻게 결정하는지에 대해 설명한다.Hereinafter, how the peer P1 110 determines the SP' value will be described.

피어 P1(110)의 SP 값을 mySP라 하자.Let the SP value of peer P1(110) be mySP.

피어 P1(110)은 mySP가 peerSP보다 작으면 아래 수학식 2에 따라 SP' 값을 결정한다.Peer P1 (110) determines the value of SP' according to Equation 2 below when mySP is smaller than peerSP.

[수학식 2][Equation 2]

R= APMrate/ADrate; /* ( 0 < R < 1 ) */R= APMrate/ADrate; /* (0 <R <1) */

N= ROUND[max{(peerDP - peerSP) x R, 1}];N=ROUND[max{(peerDP-peerSP) x R, 1}];

if (ADrate > Limit) mySP = peerDP - N;if (ADrate> Limit) mySP = peerDP-N;

else mySP = peerSP + N; else mySP = peerSP + N;

위의 수학식 2에서, APMrate는 average play point move rate의 약어로 피어 P1(110)의 재생 지점(play point)의 평균 이동 속도(move rate)를 나타내고, ADrate는 average download rate의 약어로 피어 P1(110)의 평균 조각 수신 속도를 나타낸다. APMrate는 조각(fragment)의 생성 속도(generation speed)와 거의 유사하기 때문에, 피어 P1(110)은 조각의 생성 속도를 통해 APMrate를 추정할 수 있다.In Equation 2 above, APMrate is an abbreviation of average play point move rate and represents the average move rate of the play point of peer P1 (110), and AD rate is the abbreviation of average download rate, peer P1 Represents an average piece reception rate of 110. Since the APMrate is almost similar to the generation speed of a fragment, the peer P1 110 can estimate the APMrate through the generation speed of the fragment.

피어 P1(110)은 APMrate와 ADrate 사이의 비율 R을 계산하면, 마진 R을 결정한다. 위의 수학식 2를 참조하면, 피어 P1(110)은 (peerDP - peerSP)에 마진 R을 곱한 결과와 1 중에서 더 큰 값을 반올림함으로써 마진 R을 결정할 수 있다.When peer P1 110 calculates the ratio R between the APMrate and the ADrate, it determines the margin R. Referring to Equation 2 above, the peer P1 110 may determine the margin R by rounding the larger value of the result of multiplying (peerDP-peerSP) by the margin R and 1.

마진 R이 결정되면, 피어 P1(110)은 ADrate와 임계값 Limit를 비교할 수 있다. 임계값 Limit는, 예를 들어, APrate(average consumption rate)를 기초로 계산될 수 있다.When the margin R is determined, the peer P1 110 may compare the ADrate and the threshold limit. The threshold value Limit may be calculated based on, for example, an average consumption rate (APrate).

비교 결과, ADrate가 Limit보다 크면, 피어 P1(110)은 peerDP - N을 SP' 값으로 결정할 수 있다. 달리 표현하면, 피어 P1(110)은 ADrate가 Limit보다 큰 경우, SP' 값을 peerDP에 가까운 지점의 값으로 결정할 수 있다. 이 때, peerDP에 가까운 지점의 값과 peerDP 사이의 차이값은 마진 R에 해당한다.As a result of the comparison, if the ADrate is greater than the Limit, the peer P1 110 may determine peerDP-N as an SP' value. In other words, when the AD rate is greater than the limit, the peer P1 110 may determine the SP' value as a value of a point close to the peerDP. At this time, the difference between the value of the point close to peerDP and peerDP corresponds to the margin R.

ADrate가 Limit보다 큰 case가 도 3에 도시된다. 도 3을 참조하면, 피어 P1(110)은 peerDP - N을 SP' 값으로 결정할 수 있다. SP' 값이 peerDP에 너무 근접하게되면, 이후 조각이 재생되어야 할 시점에 피어 P1(110)은 해당 조각을 보유하지 못할 수 있다. 이러한 문제가 발생하지 않도록 또는 이러한 문제를 최소화하도록, 피어 P1(110)은 peerDP과 적절히 계산된 버퍼 구간 N 사이의 차이값을 SP' 값으로 결정할 수 있다.A case in which the AD rate is greater than the Limit is shown in FIG. 3. Referring to FIG. 3, peer P1 110 may determine peerDP-N as an SP' value. If the value of SP' becomes too close to peerDP, peer P1 110 may not be able to hold the corresponding piece at the time when the piece is to be played back. To prevent this problem from occurring or to minimize this problem, the peer P1 110 may determine the difference value between peerDP and the properly calculated buffer interval N as the value SP'.

비교 결과, ADrate가 Limit 이하이면, 피어 P1(110)은 peerSP + N를 SP' 값으로 결정할 수 있다. 달리 표현하면, ADrate가 Limit 이하인 경우, 피어 P1(110)은 SP' 값을 peerSP에 가까운 지점의 값으로 결정할 수 있다. 이 때, peerSP에 가까운 지점의 값과 peerSP 사이의 차이값은 마진 R에 해당한다.As a result of the comparison, if the AD rate is less than or equal to the Limit, the peer P1 110 may determine peerSP + N as an SP' value. In other words, when the AD rate is less than or equal to the Limit, the peer P1 110 may determine the SP' value as a value of a point close to the peerSP. At this time, the difference between the value of the point close to the peerSP and the peerSP corresponds to the margin R.

ADrate가 Limit 이하인 case가 도 4에 도시된다. 도 4를 참조하면, 피어 P1(110)은 peerSP + N을 SP' 값으로 결정할 수 있다. 피어 P1(110)이 피어 P2(120)의 SP 값을 그대로 사용하게 되면 버퍼맵 적응이 진행되는 동안 P2의 SP가 이동할 수 있다. 이 경우, 피어 P1(110)의 SP’에 맞는 조각을 피어 P2(120)요청하더라도 피어 P2(120)는 피어 P1(110)으로 해당 조각을 전송하지 못할 수 있다. 이러한 문제가 발생하지 않도록 또는 이러한 문제를 최소화하도록, 피어 P1(110)은 peerSP와 적절히 계산된 마진 N의 합을 SP’ 값으로 설정할 수 있다.A case in which AD rate is less than or equal to Limit is shown in FIG. 4. Referring to FIG. 4, peer P1 110 may determine peerSP + N as an SP' value. If the peer P1 110 uses the SP value of the peer P2 120 as it is, the SP of P2 may move while the buffer map adaptation is in progress. In this case, even though the peer P2 120 requests a piece that matches the SP' of the peer P1 110, the peer P2 120 may not be able to transmit the corresponding piece to the peer P1 110. To prevent this problem from occurring or to minimize this problem, the peer P1 110 may set the sum of the peerSP and the appropriately calculated margin N to the value SP'.

피어 P1(110)은 SP' 값이 결정되면, SP' 값을 기준으로 피어 P2(120)에게 조각 또는 청크를 요청한다(220).When the SP' value is determined, the peer P1 110 requests a fragment or a chunk from the peer P2 120 based on the SP' value (220).

피어 P1(110)은 피어 P2(120)로부터 조각 또는 청크를 수신한다(230).Peer P1 110 receives a fragment or chunk from peer P2 120 (230).

이로써 피어 P1(110)은 스트리밍 시 적절한 시점에서 영상을 재생할 수 있다.Accordingly, the peer P1 110 can play the video at an appropriate time point during streaming.

도 5는 일 실시예에 따른 피어의 시작 지점 조정 방법을 설명하기 위한 순서도이다. 도 5를 통해 설명하는 피어는 전술한 피어 P1(110)을 나타내고 상대 피어는 전술한 피어 P2(120)를 나타낸다.5 is a flowchart illustrating a method of adjusting a starting point of a peer according to an embodiment. The peer described with reference to FIG. 5 represents the peer P1 110 described above, and the peer peer represents the peer P2 120 described above.

도 5를 참조하면, 피어는 상대 피어의 SP 값 및 DP 값을 상대 피어로부터 수신한다(510). 피어는 상대 피어와 버퍼맵 네고시에이션을 수행하는 과정에서 상대 피어로부터 상대 피어의 SP 값 및 DP 값을 수신할 수 있다.Referring to FIG. 5, the peer receives the SP value and the DP value of the counterpart peer from the counterpart peer (510). The peer may receive an SP value and a DP value of the counterpart peer from the counterpart peer in the process of performing buffer map negotiation with the counterpart peer.

피어는 수신된 SP 값 및 수신된 DP 값을 기초로 피어의 초기 SP 값을 결정한다(520). 단계(520)은 피어 P1(110)가 mySP_ini를 계산하는 과정에 해당할 수 있다.The peer determines an initial SP value of the peer based on the received SP value and the received DP value (520). Step 520 may correspond to a process in which the peer P1 110 calculates mySP_ini.

피어는 결정된 초기 SP 값이 수신된 SP 값보다 작은 경우, 피어의 재생 지점(play point)의 평균 이동 속도(move rate)와 피어의 평균 조각 수신 속도 사이의 비율을 계산한다(530). 단계(530)에서 계산된 비율은 상술한 R에 해당할 수 있다.When the determined initial SP value is less than the received SP value, the peer calculates a ratio between the average move rate of the peer's play point and the average fragment reception rate of the peer (530). The ratio calculated in step 530 may correspond to the above-described R.

피어는 계산된 비율을 기초로 마진을 계산한다(540). 단계(540)에서 계산된 마진은 상술한 N에 해당할 수 있다. The peer calculates a margin based on the calculated ratio (540). The margin calculated in step 540 may correspond to the aforementioned N.

피어는 수신된 SP 값 및 수신된 DP 값 중 어느 하나와 계산된 마진을 이용하여 피어의 SP 값을 결정한다(550). 일례로, 피어는 평균 조각 수신 속도가 임계값 Limit 보다 크면, 수신된 DP 값에 마진을 차감한 값을 피어의 SP 값으로 결정할 수 있고, 평균 조각 수신 속도가 임계값 Limit 이하이면, 수신된 SP 값에 마진을 더한 값을 피어의 SP 값으로 결정할 수 있다. 단계(550)에서 결정된 SP 값은 상술한 SP' 값에 해당할 수 있다.The peer determines the SP value of the peer using one of the received SP value and the received DP value and the calculated margin (550). For example, if the average fragment reception rate is greater than the threshold limit, the peer may determine the value obtained by subtracting the margin from the received DP value as the peer's SP value. If the average fragment reception rate is less than the threshold limit, the received SP The value plus the margin can be determined as the peer's SP value. The SP value determined in step 550 may correspond to the above-described SP' value.

도 1 내지 도 4를 통해 기술된 사항들은 도 5를 통해 기술된 사항들에 적용될 수 있으므로, 상세한 설명을 생략한다.The matters described through FIGS. 1 to 4 may be applied to the matters described through FIG. 5, and thus detailed descriptions are omitted.

도 6은 일 실시예에 따른 피어를 설명하기 위한 블록도이다.6 is a block diagram illustrating a peer according to an embodiment.

도 6을 참조하면, 피어(600)는 통신 인터페이스(610) 및 프로세서(620)를 포함한다. 도 6을 통해 설명되는 피어(600)는 피어 P1(110)을 나타내고, 상대 피어는 피어 P2(120)를 나타낸다.Referring to FIG. 6, the peer 600 includes a communication interface 610 and a processor 620. The peer 600 described through FIG. 6 represents the peer P1 110, and the peer peer represents the peer P2 120.

프로세서(620)는 상대 피어의 SP 값 및 DP 값을 통신 인터페이스(610)를 통해 상대 피어로부터 수신한다.The processor 620 receives the SP value and the DP value of the counterpart peer from the counterpart peer through the communication interface 610.

프로세서(620)는 수신된 SP 값 및 수신된 DP 값을 기초로 피어(600)의 초기 SP 값을 결정한다.The processor 620 determines an initial SP value of the peer 600 based on the received SP value and the received DP value.

프로세서(620)는 결정된 초기 SP 값이 수신된 SP 값보다 작은 경우, 피어(600)의 재생 지점의 평균 이동 속도와 피어(600)의 평균 조각 수신 속도 사이의 비율을 계산한다.When the determined initial SP value is less than the received SP value, the processor 620 calculates a ratio between the average moving speed of the playback point of the peer 600 and the average fragment receiving speed of the peer 600.

프로세서(620)는 계산된 비율을 기초로 마진을 계산한다.The processor 620 calculates a margin based on the calculated ratio.

프로세서(620)는 수신된 SP 값 및 수신된 DP 값 중 어느 하나와 계산된 마진을 이용하여 피어의 SP 값을 결정한다.The processor 620 determines the SP value of the peer using one of the received SP value and the received DP value and the calculated margin.

도 1 내지 도 5를 통해 기술된 사항들은 도 6을 통해 기술된 사항들에 적용될 수 있으므로, 상세한 설명을 생략한다.The matters described through FIGS. 1 to 5 may be applied to the matters described through FIG. 6, so a detailed description thereof will be omitted.

일 실시예에 따르면, 피어 P1(110)이 피어 P2(120)와 버퍼맵 네고시에이션(Buffermap Negotiation) 과정에서 피어 P2(120)의 버퍼맵이 자신의 버퍼맵보다 앞서 있다고 판단하면, SP 값을 SP’ 값으로 이동한다. 이에 따라, 피어 P1(110)의 버퍼맵도 이동하게 된다.According to an embodiment, if the peer P1 110 determines that the buffer map of the peer P2 120 is ahead of its own buffer map in the process of a buffer map negotiation with the peer P2 120, the SP value To the value of SP'. Accordingly, the buffer map of the peer P1 110 is also moved.

라이브 방송과 같이 실시간성이 중요한 경우에는 피어 P1(110)은 가능한 신규 생성 구간(new generation interval)에 매칭되게 SP’ 값을 결정 또는 SP 값을 조정할 수 있다. 실시간성 보다는 원활한(smooth) 서비스 제공이 중요한 경우에는 피어 P1(110)은 충분한 조각이 확보된 구간에 매칭되게 SP’ 값을 결정 또는 SP 값을 조정할 수 있다.When real-time is important such as live broadcasting, the peer P1 110 may determine the SP' value or adjust the SP value so as to match the possible new generation interval. When providing a smooth service is more important than real-time, the peer P1 110 may determine the SP' value or adjust the SP value to match the section in which sufficient fragments are secured.

스트리밍의 특성상 버퍼맵은 시간에 따라 계속 이동한다. 즉, 피어 P2(120)의 버퍼맵은 이동한다. 이로 인해, 피어 P1(110)은 SP를 조정하는 과정에서 피어 P2(120)의 SP를 그대로 이용하게 되면, 원하는 조각(fragment)을 피어 P2(120)로부터 수신하지 못할 수 있다(CASE 1).Due to the nature of streaming, the buffer map keeps moving over time. That is, the buffer map of peer P2 120 is moved. For this reason, if the peer P1 110 uses the SP of the peer P2 120 as it is in the process of adjusting the SP, it may not receive a desired fragment from the peer P2 120 (CASE 1).

또는, 피어 P1(110)이 피어 P2(120)의 DP에 지나치게 가깝게 SP’ 값을 결정하게 되면, 이후 조각을 필요한 시점에 확보하지 못하는 문제가 발생할 수 있다(CASE 2).Alternatively, if the peer P1 110 determines the SP' value too close to the DP of the peer P2 120, a problem may occur in that the fragment cannot be secured at a necessary point in time (CASE 2).

그러므로, SP’ 값을 설정함에 있어서 어느 정도의 마진이 있어야 한다.Therefore, there must be some margin in setting the SP' value.

전술한 CASE 1 및 2를 해결하기 위해, 피어 P1(110)의 활동 정보(activity information)를 기초로 초기 SP값 및 SP’값이 결정될 수 있다. 즉, PP의 이동속도(APMrate)와 평균 조각 수신속도(ADrate)를 고려하여 SP’ 값을 탄력적(flexibly)으로 도출하는 것이 가능하다. In order to solve the above-described CASEs 1 and 2, an initial SP value and an SP' value may be determined based on activity information of the peer P1 110. In other words, it is possible to flexibly deduce the SP' value in consideration of the moving speed (APMrate) of the PP and the average fragment reception speed (ADrate).

이는, PP의 이동속도(APMrate)는 조각의 생성속도와 거의 유사하며, 조각의 생성속도를 통해 영상의 재생 bitrate를 유추함으로써 가능하며, 평균 조각 수신속도(ADrate)를 이용해 이 피어의 네트워크 상황, 피어 기기의 성능 등을 유추해 낼 수 있다.This is possible by inferring the video playback bitrate through the fragment generation speed, and the APMrate of the PP is almost the same as the fragment creation speed. Peer device capabilities can be inferred.

즉, 이 두 값의 조합을 통해 네트워크 상황, 피어 장비의 성능 등을 고려하여 세션의 멀티미디어 특성(multimedia characteristics)에 가장 적합한 최적값, 즉, SP’ 값이 결정될 수 있다. That is, through a combination of these two values, an optimum value that is most suitable for multimedia characteristics of a session, that is, SP', may be determined in consideration of network conditions and performance of peer equipment.

실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The method according to the embodiment may be implemented in the form of program instructions that can be executed through various computer means and recorded in a computer-readable medium. The computer-readable medium may include program instructions, data files, data structures, etc. alone or in combination. The program instructions recorded on the medium may be specially designed and configured for the embodiment, or may be known and usable to those skilled in computer software. Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks, and magnetic tapes, optical media such as CD-ROMs and DVDs, and magnetic media such as floptical disks. -A hardware device specially configured to store and execute program instructions such as magneto-optical media, and ROM, RAM, flash memory, and the like. Examples of the program instructions include not only machine language codes such as those produced by a compiler, but also high-level language codes that can be executed by a computer using an interpreter or the like. The hardware device described above may be configured to operate as one or more software modules to perform the operation of the embodiment, and vice versa.

소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.The software may include a computer program, code, instructions, or a combination of one or more of these, configuring the processing unit to behave as desired or processed independently or collectively. You can command the device. Software and/or data may be interpreted by a processing device or to provide instructions or data to a processing device, of any type of machine, component, physical device, virtual equipment, computer storage medium or device. , Or may be permanently or temporarily embodyed in a transmitted signal wave. The software may be distributed over networked computer systems and stored or executed in a distributed manner. Software and data may be stored on one or more computer-readable recording media.

이상과 같이 실시예들이 비록 한정된 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기를 기초로 다양한 기술적 수정 및 변형을 적용할 수 있다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.As described above, although the embodiments have been described by the limited drawings, a person of ordinary skill in the art can apply various technical modifications and variations based on the above. For example, the described techniques are performed in a different order from the described method, and/or components such as a system, structure, device, circuit, etc. described are combined or combined in a form different from the described method, or other components Alternatively, even if substituted or substituted by an equivalent, an appropriate result can be achieved.

그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 청구범위의 범위에 속한다.Therefore, other implementations, other embodiments and claims and equivalents fall within the scope of the following claims.

Claims (18)

상대 피어의 시작 지점(start point) 값 및 다운로드 지점(download point) 값을 획득하는 단계;
피어의 재생 지점(play point)의 평균 이동 속도(move rate)와 상기 피어의 평균 조각 수신 속도 사이의 비율을 계산하는 단계;
상기 계산된 비율을 기초로 마진을 결정하는 단계;
상기 평균 조각 수신 속도가 미리 결정된 한계(limit)보다 크면, 상기 상대 피어의 다운로드 지점 값과 상기 결정된 마진을 기초로 상기 피어의 시작 지점 값을 결정하는 단계; 및
상기 평균 조각 수신 속도가 상기 미리 결정된 한계보다 작으면, 상기 상대 피어의 시작 지점 값과 상기 결정된 마진을 기초로 상기 피어의 시작 지점값을 결정하는 단계
를 포함하는,
피어의 시작 지점 조정 방법.
Acquiring a start point value and a download point value of the counterpart peer;
Calculating a ratio between an average move rate of a peer's play point and an average piece reception speed of the peer;
Determining a margin based on the calculated ratio;
If the average fragment reception speed is greater than a predetermined limit, determining a starting point value of the peer based on the download point value of the counterpart peer and the determined margin; And
If the average fragment reception speed is less than the predetermined limit, determining a starting point value of the peer based on the starting point value of the counterpart peer and the determined margin
Containing,
How to adjust the peer's starting point.
삭제delete 삭제delete 제1항에 있어서,
상기 마진을 결정하는 단계는,
상기 상대 피어의 다운로드 지점 값과 상기 상대 피어의 시작 지점 값 사이의 차이값을 계산하고, 상기 계산된 차이값에 상기 계산된 비율을 곱하는 단계;
상기 곱셈 결과와 상수값 중 더 큰 것을 반올림하는 단계; 및
상기 반올림 결과를 상기 마진으로 결정하는 단계
를 포함하고,
상기 상수값은 1인,
피어의 시작 지점 조정 방법.
The method of claim 1,
The step of determining the margin,
Calculating a difference value between the download point value of the counterpart peer and the start point value of the counterpart peer, and multiplying the calculated difference value by the calculated ratio;
Rounding off the larger of the multiplication result and the constant value; And
Determining the rounding result as the margin
Including,
The constant value is 1,
How to adjust the peer's starting point.
삭제delete 제1항에 있어서,
상기 상대 피어의 다운로드 지점 값과 상기 결정된 마진을 기초로 상기 피어의 시작 지점 값을 결정하는 단계는,
상기 상대 피어의 다운로드 지점 값과 상기 결정된 마진 사이의 차이를 상기 피어의 시작 지점 값으로 결정하는 단계
를 포함하는,
피어의 시작 지점 조정 방법.
The method of claim 1,
The step of determining a starting point value of the peer based on the download point value of the counterpart peer and the determined margin,
Determining a difference between the download point value of the counterpart peer and the determined margin as the start point value of the peer
Containing,
How to adjust the peer's starting point.
제1항에 있어서,
상기 상대 피어의 시작 지점 값과 상기 결정된 마진을 기초로 상기 피어의 시작 지점값을 결정하는 단계는,
상기 상대 피어의 시작 지점 값과 상기 결정된 마진의 합을 상기 피어의 시작 지점값으로 결정하는 단계
를 포함하는,
피어의 시작 지점 조정 방법.
The method of claim 1,
The step of determining the start point value of the peer based on the start point value of the counterpart peer and the determined margin,
Determining the sum of the starting point value of the counterpart peer and the determined margin as the starting point value of the peer
Containing,
How to adjust the peer's starting point.
삭제delete 제1항에 있어서,
상기 재생 지점의 평균 이동 속도는 조각(fragment)의 생성 속도와 관련되는,
피어의 시작 지점 조정 방법.
The method of claim 1,
The average moving speed of the reproduction point is related to the generation speed of a fragment,
How to adjust the peer's starting point.
상대 피어의 시작 지점(start point) 값 및 다운로드 지점(download point) 값을 획득하고, 피어의 재생 지점(play point)의 평균 이동 속도(move rate)와 상기 피어의 평균 조각 수신 속도 사이의 비율을 계산하며, 상기 계산된 비율을 기초로 마진(interval)을 결정하고, 상기 평균 조각 수신 속도가 미리 결정된 한계(limit)보다 크면, 상기 상대 피어의 다운로드 지점 값과 상기 결정된 마진을 기초로 상기 피어의 시작 지점 값을 결정하고, 상기 평균 조각 수신 속도가 상기 미리 결정된 한계보다 작으면, 상기 상대 피어의 시작 지점 값과 상기 결정된 마진을 기초로 상기 피어의 시작 지점값을 결정하는 프로세서
를 포함하는,
피어.
Acquire a start point value and a download point value of the peer peer, and determine the ratio between the average move rate of the peer's play point and the average fragment reception speed of the peer. Calculate, determine an interval based on the calculated ratio, and if the average fragment reception speed is greater than a predetermined limit, the peer's download point value and the determined margin A processor that determines a start point value, and if the average fragment reception speed is less than the predetermined limit, determines a start point value of the peer based on the start point value of the counterpart peer and the determined margin
Containing,
Peer.
삭제delete 삭제delete 제10항에 있어서,
상기 프로세서는,
상기 상대 피어의 다운로드 지점 값과 상기 상대 피어의 시작 지점 값 사이의 차이값을 계산하고, 상기 계산된 차이값에 상기 계산된 비율을 곱하며, 상기 곱셈 결과와 상수값 중 더 큰 것을 반올림하고, 상기 반올림 결과를 상기 마진으로 결정하고,
상기 상수값은 1인,
피어.
The method of claim 10,
The processor,
Calculate a difference value between the download point value of the counterpart peer and the start point value of the counterpart peer, multiply the calculated difference value by the calculated ratio, and round the larger of the multiplication result and the constant value, Determine the rounding result as the margin,
The constant value is 1,
Peer.
삭제delete 제10항에 있어서,
상기 프로세서는 상기 평균 조각 수신 속도가 상기 미리 결정된 한계보다 크면, 상기 상대 피어의 다운로드 지점 값과 상기 결정된 마진 사이의 차이를 상기 피어의 시작 지점 값으로 결정하는,
피어.
The method of claim 10,
If the average fragment reception speed is greater than the predetermined limit, the processor determines a difference between the download point value of the counterpart peer and the determined margin as the start point value of the peer,
Peer.
제10항에 있어서,
상기 프로세서는 상기 평균 조각 수신 속도가 상기 미리 결정된 한계보다 작으면, 상기 상대 피어의 시작 지점 값과 상기 결정된 마진의 합을 상기 피어의 시작 지점값으로 결정하는,
피어.
The method of claim 10,
If the average fragment reception speed is less than the predetermined limit, the processor determines the sum of the starting point value of the counterpart peer and the determined margin as the starting point value of the peer,
Peer.
삭제delete 제10항에 있어서,
상기 재생 지점의 평균 이동 속도는 조각(fragment)의 생성 속도와 관련되는,
피어.
The method of claim 10,
The average moving speed of the reproduction point is related to the generation speed of a fragment,
Peer.
KR1020180041481A 2017-06-19 2018-04-10 Peer and method for starting point adaptation KR102135737B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US16/010,662 US10667016B2 (en) 2017-06-19 2018-06-18 Peer and method for adjusting starting point of the peer

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020170077317 2017-06-19
KR20170077317 2017-06-19

Publications (2)

Publication Number Publication Date
KR20180138120A KR20180138120A (en) 2018-12-28
KR102135737B1 true KR102135737B1 (en) 2020-08-26

Family

ID=65008482

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180041481A KR102135737B1 (en) 2017-06-19 2018-04-10 Peer and method for starting point adaptation

Country Status (1)

Country Link
KR (1) KR102135737B1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20210065604A (en) 2019-11-27 2021-06-04 한국전자통신연구원 Method and apparatus for selecting and receiving stream in distributed network based multimedia streaming service

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011119132A2 (en) 2010-03-24 2011-09-29 Thomson Licensing Variable bit rate video streaming over peer-to-peer networks
WO2012152817A1 (en) 2011-05-12 2012-11-15 Telefonica, S.A. Method and end point for distributing live content stream in a content delivery network
KR101220671B1 (en) 2011-08-05 2013-01-09 (주)네오위즈게임즈 Device and method for controlling network for downloading file

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102037413B1 (en) * 2013-02-22 2019-11-26 삼성전자주식회사 Method and Apparatus of Dynamic Buffering for Providing Streaming Service
KR102372186B1 (en) * 2015-08-28 2022-03-10 한국전자통신연구원 Method of providing peer information and network management system of enabling the method

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011119132A2 (en) 2010-03-24 2011-09-29 Thomson Licensing Variable bit rate video streaming over peer-to-peer networks
WO2012152817A1 (en) 2011-05-12 2012-11-15 Telefonica, S.A. Method and end point for distributing live content stream in a content delivery network
US20140165118A1 (en) 2011-05-12 2014-06-12 Telefonica, S.A. Method and end point for distributing live content stream in a content delivery network
KR101220671B1 (en) 2011-08-05 2013-01-09 (주)네오위즈게임즈 Device and method for controlling network for downloading file

Also Published As

Publication number Publication date
KR20180138120A (en) 2018-12-28

Similar Documents

Publication Publication Date Title
KR102472155B1 (en) How to Broadcast Streaming Content in a Peer to Peer (P2P) Network
KR101484900B1 (en) Audio splitting with codec-enforced frame sizes
KR101658316B1 (en) Synchronous audio playback method, apparatus and system
US20120143986A1 (en) Systems and methods for downloading by different processes
JP2013536537A (en) Multimedia stream file storage file format, storage method, and client device using the same
US7809680B2 (en) Contents distribution system with integrated recording rights control
JP2015520960A (en) Peer-assisted video distribution
CA2908718C (en) System and method for streaming a media file from a server to a client device
CN112839238B (en) Screen projection playing method and device and storage medium
US11863841B2 (en) Video playing control method and system
CN105744299A (en) Dynamic code rate switching method, server and system
US20220303602A1 (en) Reduction of startup time in remote hls
US10715569B2 (en) Delivery control device and delivery control method for content delivery according to ABR delivery method
WO2022129118A1 (en) Method for controlling a player playing a data stream streamed in a peer-to-peer network
US10667016B2 (en) Peer and method for adjusting starting point of the peer
KR102135737B1 (en) Peer and method for starting point adaptation
CN101459678B (en) Fusion implementation method for digital media ordering and digital resource downloading
KR102521753B1 (en) A method for playing content streamed over a network in a player on a client device
US11539988B2 (en) Real-time incorporation of user-generated content into third-party streams
CN110034828B (en) Audio acquisition method and server for cloud application
WO2019085243A1 (en) Audio and video data playback method and server and client terminal
US9215267B2 (en) Adaptive streaming for content playback
KR20220158275A (en) A method for playing content streamed over a network in a player on a client device
JP2005328440A (en) Multimedia contents splitting terminal, management server, and system
KR20180138122A (en) Peer and operating mehtod of thereof

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant