KR20180138122A - Peer and operating mehtod of thereof - Google Patents

Peer and operating mehtod of thereof Download PDF

Info

Publication number
KR20180138122A
KR20180138122A KR1020180046637A KR20180046637A KR20180138122A KR 20180138122 A KR20180138122 A KR 20180138122A KR 1020180046637 A KR1020180046637 A KR 1020180046637A KR 20180046637 A KR20180046637 A KR 20180046637A KR 20180138122 A KR20180138122 A KR 20180138122A
Authority
KR
South Korea
Prior art keywords
peer
information
buffer map
message
time
Prior art date
Application number
KR1020180046637A
Other languages
Korean (ko)
Other versions
KR102190235B1 (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,673 priority Critical patent/US10645134B2/en
Publication of KR20180138122A publication Critical patent/KR20180138122A/en
Application granted granted Critical
Publication of KR102190235B1 publication Critical patent/KR102190235B1/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

Abstract

Disclosed is a peer and an operation method of the peer, the method including receiving, from a partner peer, buffermap timetable (BTT) information associated with a buffermap of the partner peer, verifying whether a difference value between a forced delay and time information of the peer corresponds to the BTT information, requesting, when the difference value corresponds to the BTT information, a fragment of a fragment number corresponding to the difference value from the partner peer, and deriving, when the difference value does not correspond to the BTT information, the fragment number based on the BTT information.

Description

피어의 동작 방법 및 피어{PEER AND OPERATING MEHTOD OF THEREOF}[0001] DESCRIPTION [0002] PEER AND OPERATING MEHTOD OF THEREOF [

아래 실시예들은 피어에 관한 것이다.The following embodiments relate to peers.

서버-클라이언트 방식과 달리, P2P(peer to peer) 기반의 분산 스트리밍의 경우, 여러 요인들(일례로, 피어들 각각의 버퍼맵이 다름)에 의해 재생 동기화가 어렵다. 이러한 재생 동기화를 위한 기술이 요구된다.Unlike the server-client method, in the case of distributed streaming based on peer-to-peer (P2P), playback synchronization is difficult due to various factors (for example, the buffer maps of the peers are different). A technique for such reproduction synchronization is required.

관련 선행기술로, 한국 등록특허공보 제10-1231208호(발명의 명칭: 피어링 제의 리스트를 제공하는 방법, P2P 네트워크를 형성하는 방법, P2P 어플리케이션장치, P2P네트워크를 형성하는 단말 및 네트워크 장치, 출원인: 이화여자대학교 산학협력단)가 있다. 해당 선행기술에는 P2P 네트워크를 형성하고 있는 적어도 하나의 피어로부터 스트림 가용 메시지를 수신하여, 각 피어에 대한 스트림 가용성 가중치를 계산하는 단계; 상기 단말로부터 상기 P2P 네트워크에 대한 가입 요청 메시지를 수신하는 단계; 상기 스트림 가용성 가중치를 기초로, 상기 단말에 대한 피어링 제의 리스트(Peering Suggestion List)를 생성하는 단계; 및 상기 피어링 제의 리스트를 상기 단말에게 제공하는 내용이 개시된다.Korean Patent Registration No. 10-1231208 entitled " Method of providing a list of peering agents, method of forming P2P network, P2P application device, terminal and network device forming P2P network, : Ewha Womans University Industry-Academic Collaboration Foundation). The prior art includes receiving a stream availability message from at least one peer forming a peer-to-peer network, and calculating a stream availability weight for each peer; Receiving a subscription request message for the P2P network from the terminal; Generating a list of peering sugestions for the terminal based on the stream availability weight; And providing a list of the peering agent to the terminal.

일 측에 따른 피어의 동작 방법은 상대 피어의 버퍼맵과 관련된 버퍼맵 타임 테이블(buffermap time table, BTT) 정보를 상기 상대 피어로부터 수신하는 단계; 상기 피어의 시간 정보와 강제 지연(forced delay) 사이의 차이값이 상기 수신된 버퍼맵 타임 테이블 정보에 부합되는지 여부를 확인하는 단계; 상기 부합되는 경우, 상기 차이값에 대응되는 조각 번호(fragment number)의 조각을 상기 상대 피어에게 요청하는 단계; 및 상기 부합되지 않는 경우, 상기 수신된 버퍼맵 타임 테이블 정보를 기초로 상기 조각 번호를 도출(derive)하는 단계를 포함한다.A method of operating a peer according to one side comprises receiving buffer map time table (BTT) information associated with a buffer map of a peer from the peer; Confirming whether the difference value between the time information of the peer and the forced delay corresponds to the received buffer map time table information; Requesting, by the peer, a piece of fragment number corresponding to the difference value, if the fragment number matches the fragment number; And deriving the fragment number based on the received buffer map time table information if not.

상기 수신된 버퍼맵 타임 테이블 정보는 상기 피어에 의해 설정된 타임 구간(time span)에 대응되는 조각들 각각의 조각화 시간(fragmentation time) 정보를 포함할 수 있다.The received buffer map time table information may include fragmentation time information of each piece corresponding to a time span set by the peer.

상기 조각 번호를 도출하는 단계는 상기 조각들 각각의 조각화 시간 정보의 편차들(deviations)의 평균을 이용하여 상기 조각 번호를 도출하는 단계를 포함할 수 있다.The step of deriving the fragment number may include deriving the fragment number using an average of deviations of the fragmentation time information of each of the fragments.

상기 조각들 각각의 조각화 시간 정보는 상기 조각들 각각의 생성 시간을 나타낼 수 있다.The fragmentation time information of each of the fragments may indicate the generation time of each of the fragments.

상기 도출하는 단계에서 상기 조각 번호가 도출된 경우, 상기 도출된 조각 번호에 해당하는 조각을 수신할 것을 상기 상대 피어에게 요청하는 단계를 더 포함할 수 있다.And requesting the peer to receive the fragment corresponding to the derived fragment number if the fragment number is derived in the deriving step.

상기 버퍼맵 타임 테이블 정보를 상기 상대 피어로부터 수신하는 단계는 상기 상대 피어에게 HELLO 메시지 또는 GETBTT 메시지를 전송하는 단계; 및 상기 HELLO 메시지 또는 상기 GETBTT 메시지에 대한 응답으로, 상기 상대 피어로부터 상기 버퍼맵 타임 테이블 정보를 포함하는 HELLO 메시지 또는 상기 버퍼맵 타임 테이블 정보를 포함하는 BTT 메시지를 수신하는 단계를 포함할 수 있다.The receiving of the buffer map time table information from the peer may comprise: transmitting a HELLO or GETBTT message to the peer; And receiving a HELLO message including the buffer map time table information or a BTT message including the buffer map time table information from the peer in response to the HELLO message or the GETBTT message.

상기 HELLO 메시지는 상기 피어가 상기 상대 피어와 이웃 관계(neighbourship)를 형성하기 위해 사용되는 메시지에 해당할 수 있다.The HELLO message may correspond to a message used by the peer to form a neighborship with the peer.

상기 GETBTT 메시지는 상기 피어가 상기 상대 피어에게 상기 버퍼맵 타임 테이블 정보를 별도로 요청하기 위해 사용되는 메시지에 해당할 수 있다.The GETBTT message may correspond to a message used by the peer to separately request the buffer map time table information from the peer.

상기 피어의 HELLO 메시지 및 상기 GETBTT 메시지는 상기 피어에 의해 설정된 타임 구간(time span)에 대한 정보를 포함할 수 있다.The HELLO message and the GETBTT message of the peer may include information on a time span set by the peer.

상기 강제 지연은 서비스 공급자(service provider) 또는 상기 피어에 의해 선택될 수 있다.The mandatory delay may be selected by the service provider or the peer.

일 측에 따른 피어는 통신 인터페이스; 및 상대 피어의 버퍼맵과 관련된 버퍼맵 타임 테이블(buffermap time table, BTT) 정보를 상기 통신 인터페이스를 통해 상기 상대 피어로부터 수신하고, 상기 피어의 시간 정보와 강제 지연(forced) 사이의 차이값이 상기 수신된 버퍼맵 타임 테이블 정보에 부합되는지 여부를 확인하며, 상기 부합되는 경우, 상기 차이값에 대응되는 조각 번호(fragment number)의 조각을 상기 상대 피어에게 요청하고, 상기 부합되지 않는 경우, 상기 수신된 버퍼맵 타임 테이블 정보를 기초로 상기 차이값에 대응되는 조각 번호(fragment number)를 도출(derive)하는 프로세서를 포함한다.A peer according to one side comprises a communication interface; And a buffer map time table (BTT) information associated with a buffer map of a peer from the peer via the communication interface, and wherein a difference value between the time information of the peer and a forced delay And if it does not match the received buffer map time table information, requests a piece of fragment number corresponding to the difference value to the counterpart peer, and if not, And derives a fragment number corresponding to the difference value based on the buffer map time table information.

상기 수신된 버퍼맵 타임 테이블 정보는 상기 피어에 의해 설정된 타임 구간(time span)에 대응되는 조각들 각각의 조각화 시간(fragmentation time) 정보를 포함할 수 있다.The received buffer map time table information may include fragmentation time information of each piece corresponding to a time span set by the peer.

상기 프로세서는 상기 조각들 각각의 조각화 시간 정보의 편차들(deviations)의 평균을 이용하여 상기 조각 번호를 도출할 수 있다.The processor may derive the slice number using an average of deviations of the fragmentation time information of each of the slices.

상기 조각들 각각의 조각화 시간 정보는 상기 조각들 각각의 생성 시간을 나타낼 수 있다.The fragmentation time information of each of the fragments may indicate the generation time of each of the fragments.

상기 프로세서는 상기 조각 번호가 도출된 경우, 상기 도출된 조각 번호에 해당하는 조각을 수신할 것을 상기 통신 인터페이스를 통해 상기 상대 피어에게 요청할 수 있다.The processor may request the peer through the communication interface to receive a piece corresponding to the derived piece number if the piece number is derived.

상기 프로세서는 상기 통신 인터페이스를 통해 상기 상대 피어에게 HELLO 메시지 또는 GETBTT 메시지를 전송하고, 상기 HELLO 메시지 또는 상기 GETBTT 메시지에 대한 응답으로, 상기 상대 피어로부터 상기 버퍼맵 타임 테이블 정보를 포함하는 HELLO 메시지 또는 상기 버퍼맵 타임 테이블 정보를 포함하는 BTT 메시지를 상기 통신 인터페이스를 통해 수신할 수 있다.Wherein the processor transmits a HELLO message or a GETBTT message to the peer via the communication interface, and transmits, in response to the HELLO message or the GETBTT message, a HELLO message including the buffer map time table information, A BTT message containing buffer map timetable information may be received via the communication interface.

상기 HELLO 메시지는 상기 피어가 상기 상대 피어와 이웃 관계(neighbourship)를 형성하기 위해 사용되는 메시지에 해당할 수 있다.The HELLO message may correspond to a message used by the peer to form a neighborship with the peer.

상기 GETBTT 메시지는 상기 피어가 상기 상대 피어에게 상기 버퍼맵 타임 테이블 정보를 별도로 요청하기 위해 사용되는 메시지에 해당할 수 있다.The GETBTT message may correspond to a message used by the peer to separately request the buffer map time table information from the peer.

상기 피어의 HELLO 메시지 및 상기 GETBTT 메시지는 상기 피어에 의해 설정된 타임 구간(time span)에 대한 정보를 포함할 수 있다.The HELLO message and the GETBTT message of the peer may include information on a time span set by the peer.

상기 강제 지연은 서비스 공급자(service provider) 또는 상기 피어에 의해 선택될 수 있다.The mandatory delay may be selected by the service provider or the peer.

실시예들은 피어들 사이의 전송 동기화 또는 재생 동기화를 달성할 수 있다.Embodiments may achieve transport synchronization or playback synchronization between peers.

도 1은 일 실시예에 따른 버퍼맵을 설명하기 위한 도면이다.
도 2는 일 실시예 따른 피어들의 통신을 설명하기 위한 흐름도이다.
도 3은 일 실시예에 따른 피어가 상대 피어의 버퍼맵 타임 테이블 정보가 없을 때 버퍼맵의 시작 지점값을 결정하는 것을 설명하기 위한 도면이다.
도 4는 일 실시예에 따른 HELLO 메시지를 설명하기 위한 도면이다.
도 5는 일 실시예에 따른 피어가 상대 피어의 버퍼맵 타임 테이블 정보를 이용하여 버퍼맵의 시작 지점값을 결정하는 것을 설명하기 위한 도면이다.
도 6은 일 실시예에 따른 피어가 조각을 요청하고 조각을 수신하는 것을 설명하기 위한 도면이다.
도 7은 일 실시예에 따른 피어가 상대 피어의 버퍼맵 타임 테이블 정보를 이용하여 버퍼맵의 시작 지점값을 결정하는 것을 설명하기 위한 도면이다.
도 8은 일 실시예에 따른 GETBTT 메시지 및 BTT 메시지를 설명하기 위한 도면이다.
도 9는 일 실시예에 따른 피어의 동작 방법을 설명하기 위한 흐름도이다.
도 10은 일 실시예에 따른 피어를 설명하기 위한 블록도이다.
1 is a view for explaining a buffer map according to an embodiment.
2 is a flow chart illustrating communication of peers according to one embodiment.
FIG. 3 is a diagram for explaining the determination of a starting point value of a buffer map when a peer according to an exemplary embodiment does not have buffer map time table information of a peer.
FIG. 4 illustrates a HELLO message according to an embodiment of the present invention. Referring to FIG.
5 is a diagram for explaining that a peer according to an embodiment determines a starting point value of a buffer map using buffer map time table information of a peer of a peer.
6 is a diagram for explaining that a peer according to an embodiment requests a piece and receives a piece.
FIG. 7 is a diagram for explaining that a peer according to an embodiment determines a starting point value of a buffer map using buffer map time table information of a peer of a peer.
8 is a view for explaining a GETBTT message and a BTT message according to an embodiment.
9 is a flowchart illustrating a method of operating a peer according to an embodiment.
10 is a block diagram illustrating a peer according to an embodiment.

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

실시예에서 사용한 용어는 단지 설명을 목적으로 사용된 것으로, 한정하려는 의도로 해석되어서는 안된다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.The terms used in the examples are used for descriptive purposes only and are not to be construed as limiting. The singular expressions include plural expressions unless the context clearly dictates otherwise. In this specification, the terms "comprises" or "having" and the like refer to the presence of stated features, integers, steps, operations, elements, components, or combinations thereof, But do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, or combinations thereof.

다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.Unless defined otherwise, 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 this embodiment belongs. Terms such as those defined in commonly used dictionaries are to be interpreted as having a meaning consistent with the contextual meaning of the related art and are to be interpreted as either ideal or overly formal in the sense of the present application Do not.

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

도 1은 일 실시예에 따른 버퍼맵을 설명하기 위한 도면이다.1 is a view for explaining a buffer map according to an embodiment.

도 1을 참조하면, 피어의 버퍼맵(100)이 도시된다.Referring to Figure 1, a buffer map 100 of a peer is shown.

버퍼맵(100)은 완료 섹션(completed section)(110), 다운로딩 섹션(downloading section)(120), 및 엠프티 섹션(empty section)(130)으로 구성된다.The buffer map 100 consists of a completed section 110, a downloading section 120, and an empty section 130.

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

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

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

버퍼맵(100)은 특정 조각 식별자를 가리키는 다음 속성들이 있다(buffermap has the following attributes that point specific fragment identifier).The buffer map 100 has the following attributes that indicate a particular fragment identifier (buffermap has the following attributes that point specific fragment identifier).

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

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

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

- PP(Play Point): PP는 버퍼맵(100)에서 플레이어에게 패스된 식별자를 나타낸다(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 indicates the identifier passed to the player in the buffer map 100 (This value points to the identifier in the buffer map). PP is used for flow control (this value is used for flow control with other peers).

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

도 2는 일 실시예 따른 피어들의 통신을 설명하기 위한 흐름도이다.2 is a flow chart illustrating communication of peers according to one embodiment.

도 2를 참조하면, 피어들의 통신(또는 피어들의 프로토콜)은 네고시에이션 phase, 스트리밍 phase, 및 종료 phase를 포함한다. Referring to FIG. 2, the communication of peers (or protocols of peers) includes a negotiation phase, a streaming phase, and an end phase.

네고시에이션 phase에서, 피어 P1은 피어 P2와 네고시에이션을 수행한다(210). 네고시에이션 phase에서, 피어 P1은 피어 P2와 버퍼맵을 교환할 수 있다. 또한, 네고시에이션 phase에서, 피어 P1은 피어 P2로부터 피어 P2의 버퍼맵에 대한 정보 및 피어 P2의 버퍼맵 타임 테이블(Buffermap Time Table, BTT) 정보 중 적어도 하나를 수신할 수 있다. 피어 P2의 버퍼맵에 대한 정보는, 예를 들어, 피어 P2의 버퍼맵의 SP값과 DP값을 포함할 수 있다. 마찬가지로, 단계(210)에서 피어 P2는 피어 P1으로부터 피어 P1의 버퍼맵에 대한 정보 및 피어 P1의 버퍼맵 타임 테이블 정보 중 적어도 하나를 수신할 수 있다. 피어 P1의 버퍼맵에 대한 정보는, 예를 들어, 피어 P1의 버퍼맵의 SP값과 DP값을 포함할 수 있다.In the negotiation phase, peer P1 performs negotiation with peer P2 (210). In the negotiation phase, peer P1 can exchange the buffer map with peer P2. Further, in the negotiation phase, the peer P1 can receive at least one of the information about the buffer map of the peer P2 from the peer P2 and the information of the buffer map time table (BTT) of the peer P2. The information on the buffer map of the peer P2 may include, for example, the SP value and the DP value of the buffer map of the peer P2. Similarly, at step 210, peer P2 may receive at least one of information about the buffer map of peer P1 from peer P1 and buffer map timetable information of peer P1. The information on the buffer map of the peer P1 may include, for example, the SP value and the DP value of the buffer map of the peer P1.

스트리밍 phase에서, 피어 P1은 피어 P2에게 조각을 요청하고(220), 피어 P2로부터 조각을 수신한다(230).In the streaming phase, peer P1 requests 220 a piece to peer P2 and receives 230 a piece from peer P2.

종료(termination) phase에서, 피어 P1은 피어 P2와의 통신을 종료한다. 이 때, 피어 P1은 자신의 자원을 해제(release)하기 위해 피어 P2에게 종료 요청을 전송한다.In the termination phase, peer P1 terminates communication with peer P2. At this time, peer P1 sends a termination request to peer P2 to release its resources.

실시예에 있어서, 피어 P1이 막 시작되고 피어 P2의 버퍼맵 타임 테이블(Buffermap Time Table, BTT) 정보가 없을 수 있다. 이 경우, 피어 P1은 네고시에이션 phase에서 피어 P2의 SP값 및 피어 P2의 DP값을 기초로 피어 P1 자신의 초기 SP값을 결정할 수 있다. 이하, 도 3을 참조하면서 설명한다.In an embodiment, the peer P1 may just start and there may be no Buffermap Time Table (BTT) information for the peer P2. In this case, the peer P1 can determine the initial SP value of the peer P1 itself based on the SP value of the peer P2 and the DP value of the peer P2 in the negotiation phase. The following description will be made with reference to Fig.

도 3은 일 실시예에 따른 피어가 상대 피어의 버퍼맵 타임 테이블 정보가 없을 때 버퍼맵의 시작 지점값을 결정하는 것을 설명하기 위한 도면이다.FIG. 3 is a diagram for explaining the determination of a starting point value of a buffer map when a peer according to an exemplary embodiment does not have buffer map time table information of a peer.

도 3을 참조하면, 피어 1의 상대 피어에 해당하는 피어 2의 버퍼맵(300)이 도시된다.Referring to FIG. 3, a buffer map 300 of Peer 2 corresponding to peer 1's peer is shown.

도 3의 peerSP는 버퍼맵(300)의 SP값을 나타내고, peerDP는 버퍼맵(300)의 DP값을 나타내며, peerEP는 버퍼맵(300)의 EP값을 나타낸다.PeerSP in FIG. 3 represents the SP value of the buffer map 300, peerDP represents the DP value of the buffer map 300, and peerEP represents the EP value of the buffer map 300. FIG.

피어 P1이 막 시작되고 피어 P2의 버퍼맵 타임 테이블 정보가 없을 수 있다. 이 경우, 피어 P1은, 상술한 것과 같이, 피어 P2의 SP값 및 피어 P2의 DP값을 기초로 피어 P1 자신의 초기 SP값을 결정할 수 있다. 일례로, 피어 P1은 아래 수학식 1에 따라 자신의 초기 SP값을 결정할 수 있다.Peer P1 may just start and there may be no buffer map timetable information for peer P2. In this case, the peer P1 can determine the initial SP value of the peer P1 itself based on the SP value of the peer P2 and the DP value of the peer P2, as described above. For example, the peer P1 can determine its initial SP value according to Equation 1 below.

[수학식 1][Equation 1]

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

위의 수학식 1에서, max는 peerDP와 peerSP 사이의 차이값 및 1 중 더 큰 값을 선택하는 연산자(operator)를 나타내고, ROUND는 반올림 연산자를 나타낸다. In Equation (1), max denotes an operator for selecting a difference value and a larger one value between peerDP and peerSP, and ROUND denotes a rounding operator.

peerDP와 peerSP 사이의 차이값 및 1 중에서 1이 더 크다면, 피어 P1의 초기 SP값은 peerDP와 ROUND[½ × 1] 사이의 차이값, 즉, peerDP-1로 결정될 수 있다.If the difference value between peerDP and peerSP and 1 out of 1 is greater, then the initial SP value of peer P1 can be determined by the difference value between peerDP and ROUND [½ × 1], ie, peerDP-1.

도 2로 돌아와서, 단계(210)에서 피어 P1은 피어 P2에게 버퍼맵에 대한 정보 및 버퍼맵 타임 테이블 정보를 요청하기 위해 HELLO 메시지를 피어 P2에게 전송할 수 있다. 마찬가지로, 단계(210)에서 피어 P2는 피어 P1에게 버퍼맵에 대한 정보 및 버퍼맵 타임 테이블 정보를 요청하기 위해 HELLO 메시지를 피어 P1에게 전송할 수 있다. 이하, 도 4를 참조하면서, HELLO 메시지에 대해 설명한다.Returning to FIG. 2, in step 210, peer P1 may send peer P2 a HELLO message to peer P2 to request information about the buffer map and buffer map timetable information. Likewise, at step 210, peer P2 may send a HELLO message to peer P1 to request information about the buffer map and buffer map timetable information to peer P1. Hereinafter, the HELLO message will be described with reference to FIG.

도 4는 일 실시예에 따른 HELLO 메시지를 설명하기 위한 도면이다.FIG. 4 illustrates a HELLO message according to an embodiment of the present invention. Referring to FIG.

도 4에 대한 설명에 앞서, HELLO 메시지에 대해 설명한다. HELLO 메시지는 피어가 상대 피어와 이웃 관계(neighbourship)를 형성하기 위해 사용되는 메시지에 해당한다. 아래 표 1은 HELLO 메시지의 syntax의 일례를 보여준다.Prior to the description of FIG. 4, the HELLO message will be described. The HELLO message corresponds to a message used by a peer to form a neighborship with its peer. Table 1 below shows an example of the syntax of the HELLO message.

Figure pat00001
Figure pat00001

peer-id는 피어의 식별자를 나타낸다. The peer-id indicates the identifier of the peer.

overlay-id는 오버레이 네트워크의 식별자를 나타낸다. The overlay-id represents the identifier of the overlay network.

valid-time는 버퍼맵의 유효 시간(valid time)을 나타낸다.The valid-time represents the valid time of the buffer map.

sp-index는 버퍼맵에 의해 나타내어지는(represented) 조각의 시작 인덱스 번호(starting index number)를 나타낸다. sp-index는 상술한 SP값에 해당할 수 있다.The sp-index represents the starting index number of the fragment represented by the buffer map. The sp-index may correspond to the SP value described above.

cp-length는 sp-index를 시작으로 하는 버퍼맵(buffermap beginning sp-index) 내의 완료 섹션의 길이를 나타낸다. cp-length indicates the length of the completed section in the buffer map starting at sp-index (buffermap beginning sp-index).

dp-index는 다운로딩 섹션의 시작 인덱스 번호를 나타낸다. dp-index는 상술한 DP값에 해당할 수 있다.dp-index represents the starting index number of the downloading section. The dp-index may correspond to the DP value described above.

ds-length는 다운로딩 섹션의 길이를 나타낸다.ds-length indicates the length of the downloading section.

buffermap은 다운로딩 섹션 내의 조각들의 보유 상태(possession status)를 표현한다(represents). 피어가 특정 조각(particular fragment)을 보유하면, 해당 피어는 buffermap에 1을 설정하고, 그렇지 않으면 해당 피어는 buffermap에 0을 설정한다.The buffermap represents the possession status of the pieces in the downloading section. If the peer has a particular fragment, the peer sets the buffermap to 1; otherwise, the peer sets the buffermap to zero.

req-btt는 피어가 버퍼맵 타임 테이블을 수신하는 것은 원하는지 여부를 나타낸다.req-btt indicates whether the peer wants to receive the buffer map timetable.

req-btt-span는 피어가 특정 시간 대역(specific time zone)에 대응되는 버퍼맵을 요청할 때 이용된다. req-btt의 값이 true이지만 req-btt-span이 존재(present)하지 않으면, 상대 피어는 자신의 전체(entire) 버퍼맵에 대한 버퍼맵 타임 테이블을 피어로 전송한다. 피어가 특정 시간(certain time) 이후의 버퍼맵 타임 테이블을 갖는 것을 원하면, end 파라미터는 HELLO 메시지에 포함되지 않는다.req-btt-span is used when the peer requests a buffer map corresponding to a specific time zone. If the value of req-btt is true but req-btt-span does not exist, then the peer sends a buffer map timetable for its entire buffer map to the peer. If the peer wants to have a buffer map timetable after a certain time, the end parameter is not included in the HELLO message.

피어가 req-btt가 "true"인 HELLO 메시지를 수신 시 자신의 HELLO 메시지를 전송할 때, btt는 피어의 버퍼맵 타임 테이블을 피어의 HELLO 메시지에 포함시킬 때 사용된다. btt에서 piece-id는 조각의 식별자를 나타내고, timestamp는 해당 조각의 조각화 시간(fragmentation time) 또는 해당 조각의 생성 시간을 나타낸다.When a peer sends its HELLO message upon receipt of a HELLO message with req-btt of "true", btt is used to include the peer's buffer map timetable in the peer's HELLO message. In btt, piece-id represents the identifier of the fragment, and timestamp represents the fragmentation time of the fragment or the creation time of the fragment.

도 4를 참조하면, 피어 1은 피어 2에게 HELLO 메시지를 전송한다(410). 여기서, 피어 1의 HELLO 메시지는 표 1의 syntax에 기초할 수 있다. 피어 1의 HELLO 메시지는, 예를 들어, 피어 1의 식별자, 피어 1이 참여하고 있는 오버레이 네트워크의 식별자, 피어 1의 버퍼맵의 유효 시간, 피어 1의 버퍼맵의 SP값, 피어 1의 버퍼맵 내의 완료 섹션의 길이, 피어 1의 버퍼맵의 DP값, 피어 1의 버퍼맵 내의 다운로딩 섹션의 길이, 피어 1이 해당 다운로딩 섹션 내의 조각들을 보유하고 있는지 여부, 및 피어 1이 피어 2의 버퍼맵 타임 테이블 정보를 수신하는 것을 원하는지 여부 중 어느 하나 또는 이들의 조합을 포함할 수 있다. 만약, 피어 1이 특정 시간 구간(time span)에 대응되는 버퍼맵을 원하면, req-btt-span 내의 start 파라미터에는 특정 시간 구간의 시작에 해당하는 시간값을 설정할 수 있고 req-btt-span 내의 end 파라미터에는 특정 시간 구간의 끝에 해당하는 시간값을 설정할 수 있다. 일례로, 피어 1은 피어 1은 NTP 타임 스탬프 포맷의 시간값 300022와 NTP 타임 스탬프 포맷의 시간값 350000 사이의 버퍼맵을 원할 때 아래 표 2와 같이 req-btt-span를 설정할 수 있다. 달리 표현하면, 피어 1은 시간값 300022와 시간값 350000 사이의 조각들에 대한 버퍼맵 타임 테이블 정보를 원하면 아래 표 2와 같이 req-btt-span를 설정할 수 있다.Referring to FIG. 4, Peer 1 transmits a HELLO message to Peer 2 (410). Here, the HELLO message of Peer 1 may be based on the syntax of Table 1. [ The HELLO message of Peer 1 includes, for example, the identifier of Peer 1, the identifier of the overlay network in which Peer 1 is participating, the effective time of the buffer map of Peer 1, the SP value of the buffer map of Peer 1, The DP value of the buffer map of Peer 1, the length of the downloading section in the buffer map of Peer 1, whether Peer 1 holds fragments in the corresponding downloading section, and whether Peer 1 is the buffer of Peer 2 Whether or not the user desires to receive map timetable information, or any combination thereof. If peer 1 wants a buffer map corresponding to a specific time span, the start parameter in req-btt-span can be set to a time value corresponding to the start of a specific time interval, and the end in req-btt-span The parameter can be set to a time value corresponding to the end of a specific time interval. For example, Peer 1 may set req-btt-span as shown in Table 2 below when it wants a buffer map between time value 300022 of NTP time stamp format and time value 350000 of NTP time stamp format. In other words, peer 1 can set req-btt-span as shown in Table 2 below if it wants buffer map timetable information for fragments between time value 300022 and time value 350000.

Figure pat00002
Figure pat00002

피어 2는 HELLO 메시지에 대한 응답으로 피어 1에게 HELLO 메시지를 전송한다(420). 여기서, 피어 2의 HELLO 메시지는 표 1의 syntax에 기초할 수 있다. 피어 2의 HELLO 메시지는, 예를 들어, 피어 2의 식별자, 피어 2가 참여하고 있는 오버레이 네트워크의 식별자, 피어 2의 버퍼맵의 유효 시간, 피어 2의 버퍼맵의 SP값, 피어 2의 버퍼맵 내의 완료 섹션의 길이, 피어 2의 버퍼맵의 DP값, 피어 2의 버퍼맵 내의 다운로딩 섹션의 길이, 피어 2가 해당 다운로딩 섹션 내의 조각들을 보유하고 있는지 여부, 및 피어 2가 피어 1의 버퍼맵 타임 테이블 정보를 수신하는 것을 원하는지 여부 중 어느 하나 또는 이들의 조합을 포함할 수 있다. Peer 2 sends a HELLO message to peer 1 in response to the HELLO message (420). Here, the HELLO message of the peer 2 can be based on the syntax of Table 1. The HELLO message of the peer 2 includes, for example, the identifier of the peer 2, the identifier of the overlay network in which the peer 2 participates, the effective time of the buffer map of the peer 2, the SP value of the buffer map of the peer 2, The DP value of the buffer map of Peer 2, the length of the downloading section in the buffer map of Peer 2, whether Peer 2 holds fragments in the corresponding download section, and whether Peer 2 is the buffer of Peer 1 Whether or not the user desires to receive map timetable information, or any combination thereof.

실시예에 있어서, 피어 1이 피어 2의 버퍼맵 타임 테이블 정보를 수신하는 것은 원하는 경우, 피어 2의 HELLO 메시지는 상술한 syntax의 btt를 포함한다. 일례로, 피어 1의 HELLO 메시지에서 req-btt의 값이 true이지만 req-btt-span이 존재하지 않으면, 피어 2는 자신의 버퍼맵 내의 모든 조각들 각각의 식별자 및 각 조각의 조각화 시간을 자신의 HELLO 메시지에 포함시킬 수 있다. 다른 일례로, 피어 1의 HELLO 메시지에서 req-btt의 값이 true이고 req-btt-span 내의 start 파라미터가 303000이면, 피어 2는 자신의 버퍼맵 내의 모든 조각들 중에서 303000 이후의 조각들 각각의 식별자 및 해당 조각들 각각의 조각화 시간을 자신의 HELLO 메시지에 포함시킬 수 있다. 또 다른 일례로, 피어 1의 HELLO 메시지에서 req-btt의 값이 true이고 req-btt-span 내의 start 파라미터가 a이며, req-btt-span 내의 end 파라미터가 b이면, 피어 2는 자신의 버퍼맵 내의 모든 조각들 중에서 a와 b 사이의 조각들(또는 a와 b 사이에 생성된 조각들) 각각의 식별자 및 해당 조각들 각각의 조각화 시간을 자신의 HELLO 메시지에 포함시킬 수 있다. 아래 표 3은 btt, 즉, 버퍼맵 타임 테이블 정보의 일례를 보여준다.In an embodiment, if it is desired for Peer 1 to receive Buffer Map time table information of Peer 2, the HELLO message of Peer 2 includes the btt of the syntax described above. For example, if the value of req-btt in the HELLO message of peer 1 is true but req-btt-span does not exist, then peer 2 identifies the identifier of each fragment in its buffer map and the fragmentation time of each fragment as its own It can be included in the HELLO message. In another example, if the value of req-btt in the HELLO message of peer 1 is true and the start parameter in the req-btt-span is 303000, then peer 2 is the identifier of each of the fragments after 303000 among all fragments in its buffer map And the fragmentation time of each of the pieces can be included in the own HELLO message. As another example, if the value of req-btt in the HELLO message of peer 1 is true and the start parameter in req-btt-span is a and the end parameter in req-btt-span is b, The identifier of each of the fragments between a and b (or fragments generated between a and b) and the fragmentation time of each of the fragments may be included in their HELLO message. Table 3 below shows an example of btt, i.e., buffer map time table information.

Figure pat00003
Figure pat00003

피어 1은 피어 2의 버퍼맵 타임 테이블 정보를 이용하여 자신의 SP값을 결정할 수 있다. 이하, 도 5를 참조하면서, 설명한다.Peer 1 can determine its own SP value using the buffer map time table information of peer 2. The following description will be made with reference to Fig.

도 5는 일 실시예에 따른 피어가 상대 피어의 버퍼맵 타임 테이블 정보를 이용하여 버퍼맵의 시작 지점값을 결정하는 것을 설명하기 위한 도면이다.5 is a diagram for explaining that a peer according to an embodiment determines a starting point value of a buffer map using buffer map time table information of a peer of a peer.

도 5를 참조하면, 피어 P1에 의해 설정된 시간 구간에 해당하는 조각들의 조각 번호(510)(또는 조각 식별자)와 조각화 시간 정보(520)를 포함하는 버퍼맵 타임 테이블 정보가 도시된다. 조각 번호(510)는 조각의 인덱스 번호에 해당하거나 해당 조각의 식별자로부터 도출될 수 있는 번호에 해당할 수 있다. Referring to FIG. 5, buffer map time table information including fragment numbers 510 (or fragment identifiers) of pieces corresponding to a time interval set by the peer P1 and fragmentation time information 520 is shown. The piece number 510 may correspond to an index number of the piece or a number that can be derived from the identifier of the piece.

피어 P1은 시간 정보를 획득한다. 시간 정보는, 예를 들어, NTP 타임 스탬프 포맷일 수 있다. Peer P1 obtains time information. The time information may be, for example, an NTP timestamp format.

피어 P1은 시간 정보와 강제 지연(forced delay FD) 사이의 차이값, 즉, "시간 정보―강제 지연"에 대응되는 조각 번호(또는 조각 식별자)를 피어 P2의 버퍼맵 타임 테이블 정보에서 찾는다. 여기서, 강제 지연의 크기 또는 값은 서비스 공급자 또는 피어 P1에 의해 선택되거나 결정된다. 도 5에 도시된 case 1 및 3과 같이, "시간 정보―강제 지연"에 대응되는 조각 번호(또는 조각 식별자)가 피어 P2의 버퍼맵 타임 테이블 정보에 없을 수 있다.The peer P1 searches the buffer map time table information of the peer P2 for the difference value between the time information and the forced delay FD, that is, the slice number (or slice identifier) corresponding to the "time information-forced delay ". Here, the magnitude or value of the forced delay is selected or determined by the service provider or peer P1. As in cases 1 and 3 shown in Fig. 5, the fragment number (or fragment identifier) corresponding to the "time information-forced delay" may not be included in the buffer map time table information of the peer P2.

<case 1><case 1>

FD가 큰 경우, 피어 P2의 버퍼맵이 작은 경우, 또는 피어 P2의 버퍼맵에서 P1이 원하는 구간이 "시간 정보―강제 지연"을 이미 지나친 경우, 피어 P1은 "시간 정보―강제 지연"에 대응되는 조각 번호(또는 조각 식별자)를 피어 P2의 버퍼맵 타임 테이블 정보에서 찾을 수 없다. 이 경우, 피어 P1은 "시간 정보―강제 지연"에 대응되는 조각 번호(또는 조각 식별자)를 유추할 수 있다. 일례로, 피어 P1은 타임 스탬프들(520)의 편차들(deviations)의 평균을 이용하여 "시간 정보―강제 지연"에 대응되는 조각 번호(또는 조각 식별자)를 유추할 수 있다. 피어 P1은 유추된 조각 번호를 자신의 SP값으로 결정할 수 있다. 그리고, 피어 P1은 피어 P2로부터 수신할 조각이 없으므로, 피어 P2와의 연결을 종료하고 다른 피어와 연결한다. If the FD is large, the buffer map of the peer P2 is small, or if the desired section of P1 in the buffer map of the peer P2 has already passed the "time information-forced delay", the peer P1 responds to the "time information- (Or fragment identifier) can not be found in the buffer map timetable information of peer P2. In this case, the peer P1 can infer a piece number (or piece identifier) corresponding to "time information-forced delay ". In one example, peer P1 may use an average of deviations of time stamps 520 to infer a piece number (or piece identifier) corresponding to a "time information-forced delay ". Peer P1 can determine the inferred fragment number as its own SP value. Since there is no piece to be received from the peer P2, the peer P1 terminates the connection with the peer P2 and connects with the other peer.

<case 3><case 3>

FD가 작거나 피어 P2가 최신 조각들을 보유하지 못한 경우, 피어 P1은 "시간 정보―강제 지연"에 대응되는 조각 번호(또는 조각 식별자)를 피어 P2의 버퍼맵 타임 테이블 정보에서 찾지 못할 수 없다. 이 경우, 피어 P1은 "시간 정보―강제 지연"에 대응되는 조각 번호(또는 조각 식별자)를 도출(derive)할 수 있다. 일례로, 피어 P1은 타임 스탬프들(520)의 편차들의 평균을 이용하여 "시간 정보―강제 지연"에 대응되는 조각 번호(또는 조각 식별자)를 유추할 수 있다. 그리고, 피어 P1은 현재 연결된 피어에 의해 수신된 조각들을 요청한다. 또한, 피어 P1은 다른 피어들과 연결하여 자신의 버퍼맵을 채울 수 있다. If the FD is small or the peer P2 does not retain the latest fragments, the peer P1 can not find the fragment number (or fragment identifier) corresponding to "time information-forced delay" in the buffer map timetable information of peer P2. In this case, the peer P1 may derive a piece number (or fragment identifier) corresponding to "time information-forced delay ". In one example, peer P1 may use an average of the deviations of time stamps 520 to infer the slice number (or slice identifier) corresponding to "time information-forced delay ". And, peer P1 requests fragments received by the currently connected peer. Peer P1 can also fill its buffer map in conjunction with other peers.

<case 2><case 2>

case 2와 같이, "시간 정보―강제 지연"에 대응되는 조각 번호(또는 조각 식별자)가 피어 P2의 버퍼맵 타임 테이블 정보에 있을 수 있다. 도 5에 도시된 예에서, 피어 P1은 "시간 정보―강제 지연"에 대응되는 조각 번호 7을 피어 2의 버퍼맵 타임 테이블 정보에서 찾을 수 있다. 이 경우, 피어 P1은 조각 번호 7을 자신의 SP값으로 결정할 수 있다. 피어 P1은 조각 번호 7의 조각을 피어 P2에게 요청할 수 있다. 이에 대해선 도 6을 참조하면서 설명한다.As in case 2, a piece number (or piece identifier) corresponding to "time information-forced delay" may be in the buffer map time table information of the peer P2. In the example shown in Fig. 5, the peer P1 can find the piece number 7 corresponding to "time information-forced delay" in the buffer map time table information of the peer 2. In this case, the peer P1 can determine the fragment number 7 as its own SP value. Peer P1 can ask P2 to peer a piece of piece 7. This will be described with reference to FIG.

도 6은 일 실시예에 따른 피어가 조각을 요청하고 조각을 수신하는 것을 설명하기 위한 도면이다.6 is a diagram for explaining that a peer according to an embodiment requests a piece and receives a piece.

도 6을 참조하면, 피어 P1은 피어 P2에게 GET 메시지를 전송한다(610). 단계(610)은 피어 P1이 피어 P2에게 조각을 요청하는 것에 해당한다. GET 메시지는 피어 P1이 요청한 조각의 인덱스 번호(또는 조각 번호)를 포함한다. Referring to FIG. 6, the peer P1 transmits a GET message to the peer P2 (610). Step 610 corresponds to peer P1 requesting a piece to peer P2. The GET message contains the index number (or slice number) of the fragment requested by the peer P1.

피어 P2는 피어 P1에게 데이터 메시지를 전송한다(620). 데이터 메시지에는 피어 P1이 요청한 조각, 해당 조각의 인덱스 번호(또는 조각 번호), 해당 조각의 사이즈, 해당 조각의 생성 시간 정보 등을 포함할 수 있다.Peer P2 transmits a data message to peer P1 (620). The data message may include the fragment requested by the peer P1, the index number (or fragment number) of the fragment, the size of the fragment, the generation time information of the fragment, and the like.

도 7은 일 실시예에 따른 피어가 상대 피어의 버퍼맵 타임 테이블 정보를 이용하여 버퍼맵의 시작 지점값을 결정하는 것을 설명하기 위한 도면이다.FIG. 7 is a diagram for explaining that a peer according to an embodiment determines a starting point value of a buffer map using buffer map time table information of a peer of a peer.

도 7을 통해 설명되는 피어는 피어 P1에 대응되고, 도 7을 통해 설명되는 상대 피어는 피어 P2에 대응된다. The peer described with reference to FIG. 7 corresponds to the peer P1, and the peer described with reference to FIG. 7 corresponds to the peer P2.

피어는 동기화된 배포를 제공 할 때 버퍼맵 네고시에이션 동안에 교환되는 타임 테이블 정보를 사용한다. 소스 피어는 조각 생성 시 NTP 타임 스탬프를 DATA 메시지에 임베딩하기 때문에, 피어는 대략적인 표시 타이밍(presentation timing)을 파악할 수 있다. 또한, 피어는 상술한 HELLO 메시지 또는 후술할 GETBTT 메시지를 사용하여 상대 피어의 버퍼맵 타임 테이블 정보를 파악하는 것이 가능하다. 하지만, 서버-클라이언트 스트리밍 모델과 달리 P2P 기반 스트리밍은 실시간 스트리밍을 제공하는 데 몇 가지 제한이 있다. 그러므로, 강제 지연이 제공될 필요가 있고, 이러한 지연은 서비스 제공자 또는 피어에 의해 선택될 것이다. 피어가 첫 번째 접촉한 상대 피어의 버퍼맵 타임 테이블 정보를 가지고 있으면, 다수의 피어들 사이의 동기화를 위해 SP를 초기화하는 것이 일어날 수 있는 3개의 case들 중 어느 하나에 따라 피어는 초기 SP값을 계산할 수 있다. Peers use timetable information that is exchanged during buffer map negotiation when providing synchronized distribution. Since the source peer embeds the NTP timestamp in the DATA message when generating the fragment, the peer can grasp the approximate presentation timing. Further, the peer can grasp the buffer map time table information of the peer using the above-described HELLO message or a GETBTT message to be described later. However, unlike the server-client streaming model, P2P-based streaming has some limitations in providing live streaming. Therefore, a forced delay needs to be provided, and this delay will be selected by the service provider or the peer. If the peer has buffer map timetable information of the first peer to which it has contacted, then depending on which of the three cases it is possible to initialize the SP for synchronization between multiple peers, Can be calculated.

case 1: 상대 피어의 버퍼맵이 피어의 SP값을 지나치면, 초기 SP값은 상대 피어의 버퍼맵 타임 테이블 정보에 포함된 조각화 시간의 시간 편차들의 평균을 이용하여 선택되고, "curNTPtime() - FD"에 대응되는 조각 번호가 유추된다(If the buffermap of the peer already passes the selected SP value of this peer, the initial SP value is chosen using the average of the time deviations of the fragmentation time included in the BTT and the fragment number corresponding to curNTPtime()-FD is inferred). 여기서, "curNTPtime()"은 NTP 타임 스탬프 포맷의 시간 정보를 나타낸다. 달리 표현하면, 상대 피어의 버퍼맵에서 피어가 원하는 구간이 "curNTPtime()-FD"을 이미 지나친 경우, 피어는 "curNTPtime()-FD" 및 버퍼맵 타임 테이블 정보에 포함된 조각화 시간의 시간 편차들의 평균 중 적어도 하나를 이용하여 "curNTPtime()-FD"에 대응되는 조각 번호를 유추할 수 있다. case 1에서, 피어는 상대 피어로부터 수신할 데이터가 없으므로, 상대 피어와의 연결을 종료하고 데이터를 수신하기 위해 다른 피어와 연결한다. 도 5를 통해 설명한 case 1에 대한 설명이 적용될 수 있으므로, 상세한 설명을 생략한다. Case 1: If the buffer map of the peer exceeds the SP value of the peer, the initial SP value is selected using the average of the time deviations of the fragmentation time included in the buffer map timetable information of the peer peer, and "curNTPtime () Quot; FD "corresponding to the fragment number is inferred (if the buffer map of the peer already passes the selected SP value of the peer, the initial SP value is chosen using the average time of the fragmentation time included in the BTT and the fragment number corresponding to curNTPtime () - FD is inferred). Here, "curNTPtime ()" represents time information of the NTP time stamp format. In other words, if the peer's desired interval in the peer's buffer map of the peer has already passed "curNTPtime () - FD", the peer will see the time difference of the fragmentation time contained in the "curNTPtime Quot; curNTPtime () - FD "by using at least one of the average of &quot; curNTPtime () - FD &quot; In case 1, the peer has no data to receive from its peer, so it terminates the connection with the peer and connects with another peer to receive the data. The description of the case 1 described with reference to FIG. 5 can be applied, and thus a detailed description will be omitted.

case 2: 피어의 SP값으로 선택된 조각이 있으면, 피어는 해당 SP값으로 시작하는 조각을 상대 피어에게 요청하기 시작한다. 달리 표현하면, 피어는 상대 피어의 버퍼맵 타임 테이블 정보를 이용하여 "curNTPtime()-FD"와 동일한 조각화 시간 정보를 갖는 조각이 상대 피어의 버퍼맵에 있는지 확인할 수 있다. 여기서, 해당 조각이 있으면 해당 조각의 조각 번호, 즉, "curNTPtime()-FD"에 대응되는 조각 번호를 자신의 SP값으로 결정할 수 있고, 해당 SP값에 대응되는 조각을 상대 피어에게 요청할 수 있다. 도 5를 통해 설명한 case 2에 대한 설명이 적용될 수 있으므로, 상세한 설명을 생략한다.case 2: If there is a fragment selected as the SP value of the peer, the peer begins to request a fragment from the peer beginning with the corresponding SP value. In other words, the peer can use the buffer map timetable information of the peer to check if the fragment having the same fragmentation time information as "curNTPtime () - FD" is in the buffer map of the peer. Here, if there is a corresponding fragment, the fragment number of the fragment, that is, the fragment number corresponding to "curNTPtime () - FD" can be determined as its SP value, and a fragment corresponding to the corresponding SP value can be requested to the peer . The description of the case 2 described with reference to FIG. 5 can be applied, and thus a detailed description thereof will be omitted.

case 3: 피어는 "curNTPtime()-FD"에 대응되는 조각 번호를 도출하기 위해 상대 피어의 버퍼맵 타임 테이블 정보에 포함된 조각화 시간의 시간 편차들의 평균을 이용하고 현재 연결된 피어에 의해 수신되는 조각들을 요청한다(it uses the average of the fragmentation time deviations included in the BTT to derive the fragment number corresponding to curNTPtime() - FD and requests the fragments received by the currently connected peer). 피어는 도출된 조각 번호를 자신의 SP값으로 설정한다. 하지만, 상대 피어는 해당 SP값에 대응되는 조각을 보유하지 않으므로, 피어는 해당 조각을 다른 피어들로부터 수신하라고 상대 피어에게 요청할 수 있다. 또한, 피어는 자신의 버퍼맵을 채우기 위해 다른 피어들과 연결할 수 있다. 도 5를 통해 설명한 case 3에 대한 설명이 적용될 수 있으므로, 상세한 설명을 생략한다.Case 3: The peer uses an average of the time deviations of the fragmentation time included in the buffer map timetable information of the peer to derive the fragment number corresponding to "curNTPtime () - FD " (It uses the average of the fragmentation time deviations included in the BTT to derive the fragment number corresponding to curNTPtime () - FD and requests the fragments received by the currently connected peer). The peer sets the derived fragment number to its own SP value. However, since the peer does not have a fragment corresponding to the SP value, the peer can request the peer to receive the fragment from the other peers. A peer can also associate with other peers to fill its buffer map. The description of the case 3 described with reference to FIG. 5 may be applied, and thus a detailed description thereof will be omitted.

도 8은 일 실시예에 따른 GETBTT 메시지 및 BTT 메시지를 설명하기 위한 도면이다.8 is a view for explaining a GETBTT message and a BTT message according to an embodiment.

도 8에 대한 설명에 앞서, GETBTT 메시지 및 BTT 메시지에 대해 설명한다. Prior to the description with reference to FIG. 8, a GETBTT message and a BTT message will be described.

GETBTT 메시지는 상대 피어의 버퍼맵 타임 테이블 정보를 별도로 요청하기 위해 사용된다. 아래 표 4는 GETBTT 메시지의 syntax의 일례를 보여준다.The GETBTT message is used to separately request buffer map timetable information of the peer peer. Table 4 below shows an example of the syntax of the GETBTT message.

Figure pat00004
Figure pat00004

overlay-id, req-btt, 및 req-btt-span에 대해선 상술하였으므로, 자세한 설명을 생략한다. BTT 메시지는 상대 피어가 GETBTT 메시지를 수신했을 때 요청 피어에게 버퍼맵 타임 테이블 정보를 제공하기 위해 사용된다. 아래 표 5는 BTT 메시지의 syntax의 일례를 보여준다.overlay-id, req-btt, and req-btt-span have been described above, so a detailed description will be omitted. The BTT message is used to provide buffer map timetable information to the requesting peer when the peer receives a GETBTT message. Table 5 below shows an example of the syntax of the BTT message.

Figure pat00005
Figure pat00005

overlay-id, peer-id, 및 btt에 대해선 상술하였으므로, 자세한 설명을 생략한다.Since the overlay-id, peer-id, and btt have been described above, a detailed description will be omitted.

도 8을 참조하면, 피어 P1은 피어 P2에게 GETBTT 메시지를 전송한다(810). GETBTT 메시지는 표 4의 syntax에 기초할 수 있다. Referring to FIG. 8, the peer P1 transmits a GETBTT message to the peer P2 (810). The GETBTT message may be based on the syntax of Table 4.

피어 P2는 피어 P1에게 BTT 메시지를 전송한다(820). BTT 메시지는 표 5의 syntax에 기초할 수 있다.The peer P2 transmits a BTT message to the peer P1 (820). The BTT message may be based on the syntax of Table 5.

도 2를 통해 설명한 것과 같이, 피어 P1과 피어 P2의 통신은 네고시에이션 phase와 스트리밍 phase를 포함한다. 도 4를 통해 설명한 HELLO 메시지는 네고시에이션 phase 동안에 사용되고, GETBTT 메시지 및 BTT 메시지는 스트리밍 phase에서 사용된다. 다시 말해, 피어 P1은 스트리밍 phase에서 GETBTT 메시지를 이용하여 피어 P2에게 피어 P2의 버퍼맵 타임 테이블 정보를 요청할 수 있다. 피어 P2는 스트리밍 phase에서 피어 P1에게 BTT 메시지를 이용하여 자신의 버퍼맵 타임 테이블 정보를 전송할 수 있다.As described with reference to FIG. 2, the communication between the peer P1 and the peer P2 includes a negotiation phase and a streaming phase. The HELLO message illustrated in FIG. 4 is used during the negotiation phase, and the GETBTT message and the BTT message are used in the streaming phase. In other words, the peer P1 can request the peer P2's buffer map time table information using the GETBTT message in the streaming phase. The peer P2 can transmit its buffer map time table information to the peer P1 in the streaming phase using the BTT message.

도 9는 일 실시예에 따른 피어의 동작 방법을 설명하기 위한 흐름도이다.9 is a flowchart illustrating a method of operating a peer according to an embodiment.

도 9를 통해 설명되는 피어 및 상대 피어 각각은 상술한 피어 P1 및 피어 P2 각각에 대응된다. Each of the peer and counterpart peer described with reference to FIG. 9 corresponds to each of the above-mentioned peer P1 and P2.

도 9를 참조하면, 피어는 상대 피어의 버퍼맵과 관련된 버퍼맵 타임 테이블 정보를 상대 피어로부터 수신한다(910). 수신한 버퍼맵 타임 테이블 정보는 피어가 원하는(또는 설정한) 시간 구간에 해당하는 조각들 각각의 조각화 시간 정보를 포함할 수 있다.Referring to FIG. 9, a peer receives buffer map time table information associated with a buffer map of a peer from a peer (910). The received buffer map time table information may include fragmentation time information of each piece corresponding to a time interval that the peer desires (or set).

피어는 시간 정보와 강제 지연 사이의 차이값이 수신된 버퍼맵 타임 테이블 정보에 부합되는지 여부를 확인한다(920). 일례로, 피어는 해당 차이값과 동일한 조각화 시간 정보가 수신된 버퍼맵 타임 테이블 정보에 있는지 여부를 확인할 수 있다.The peer confirms whether the difference value between the time information and the forced delay matches the received buffer map time table information (920). For example, the peer can check whether the fragmentation time information equal to the difference value is in the received buffer map time table information.

피어는 해당 차이값이 수신된 버퍼맵 타임 테이블 정보에 부합되는 경우, 해당 차이값에 대응되는 조각 번호의 조각을 상대 피어에게 요청한다(930). 단계(930)는 도 5 또는 도 7을 통해 설명한 case 2에 대응된다.If the difference value matches the received buffer map time table information, the peer requests a piece of the piece number corresponding to the difference value to the peer (930). Step 930 corresponds to case 2 described with reference to FIG. 5 or FIG.

피어는 해당 차이값이 수신된 버퍼맵 타임 테이블 정보에 부합되지 않는 경우, 수신된 버퍼맵 타임 테이블 정보를 기초로 해당 차이값에 대응되는 조각 번호를 도출한다(940). 피어는 도출된 조각 번호를 자신의 SP값으로 결정할 수 있다. 단계(940)는 도 5 또는 도 7을 통해 설명한 case 3에 대응된다.If the difference value does not match the received buffer map time table information, the peer derives a slice number corresponding to the difference value based on the received buffer map time table information (940). The peer can determine the derived fragment number as its own SP value. Step 940 corresponds to case 3 described with reference to FIG. 5 or FIG.

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

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

도 10을 참조하면, 피어(1000)는 통신 인터페이스(1010) 및 프로세서(1020)를 포함한다.10, a peer 1000 includes a communication interface 1010 and a processor 1020. [

프로세서(1020)는 상대 피어의 버퍼맵과 관련된 버퍼맵 타임 테이블 정보를 통신 인터페이스(1010)를 통해 상대 피어로부터 수신한다.Processor 1020 receives buffer map time table information associated with the buffer map of the peer from the peer via communication interface 1010.

프로세서(1020)는 피어(1000)의 시간 정보와 강제 지연 사이의 차이값이 상기 수신된 버퍼맵 타임 테이블 정보에 부합되는지 여부를 확인한다. The processor 1020 determines whether the difference value between the time information of the peer 1000 and the forced delay matches the received buffer map time table information.

프로세서(1020)는 해당 차이값이 수신된 버퍼맵 타임 테이블 정보에 부합되는 경우, 해당 차이값에 대응되는 조각 번호의 조각을 상대 피어에게 요청한다.Processor 1020 requests a relative peer for a piece of piece number corresponding to the difference value if the corresponding difference value matches the received buffer map time table information.

프로세서(1020)는 해당 차이값이 수신된 버퍼맵 타임 테이블 정보에 부합되지 않는 경우, 수신된 버퍼맵 타임 테이블 정보를 기초로 해당 차이값에 대응되는 조각 번호를 도출한다.If the difference value does not match the received buffer map time table information, the processor 1020 derives a piece number corresponding to the difference value based on the received buffer map time table information.

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

실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.The method according to an embodiment may be implemented in the form of a program command 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, and the like, alone or in combination. The program instructions to be recorded on the medium may be those specially designed and configured for the embodiments or may be available to those skilled in the art of computer software. Examples of computer-readable media include magnetic media such as hard disks, floppy disks and magnetic tape; optical media such as CD-ROMs and DVDs; magnetic media such as floppy disks; Magneto-optical media, and hardware devices specifically configured to store and execute program instructions such as ROM, RAM, flash memory, and the like. Examples of program instructions include machine language code such as those produced by a compiler, as well as high-level language code that can be executed by a computer using an interpreter or the like. The hardware devices described above may be configured to operate as one or more software modules to perform the operations of the embodiments, 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 the foregoing, and may be configured to configure the processing device to operate as desired or to process it collectively or collectively Device can be commanded. The software and / or data may be in the form of any type of machine, component, physical device, virtual equipment, computer storage media, or device , Or may be permanently or temporarily embodied in a transmitted signal wave. The software may be distributed over a networked computer system and stored or executed in a distributed manner. The software and data may be stored on one or more computer readable recording media.

이상과 같이 실시예들이 비록 한정된 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기를 기초로 다양한 기술적 수정 및 변형을 적용할 수 있다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.Although the embodiments have been described with reference to the drawings, various technical modifications and variations may be applied to those skilled in the art. For example, it is to be understood that the techniques described may be performed in a different order than the described methods, and / or that components of the described systems, structures, devices, circuits, Lt; / RTI &gt; or equivalents, even if it is replaced or replaced.

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

Claims (18)

피어의 동작 방법에 있어서,
상대 피어의 버퍼맵과 관련된 버퍼맵 타임 테이블(buffermap time table, BTT) 정보를 상기 상대 피어로부터 수신하는 단계;
상기 피어의 시간 정보와 강제 지연(forced delay) 사이의 차이값이 상기 수신된 버퍼맵 타임 테이블 정보에 부합되는지 여부를 확인하는 단계;
상기 부합되는 경우, 상기 차이값에 대응되는 조각 번호(fragment number)의 조각을 상기 상대 피어에게 요청하는 단계; 및
상기 부합되지 않는 경우, 상기 수신된 버퍼맵 타임 테이블 정보를 기초로 상기 조각 번호를 도출(derive)하는 단계
를 포함하는,
피어의 동작 방법.
In a method of operating a peer,
Receiving buffer map time table (BTT) information associated with a buffer map of a peer from the peer;
Confirming whether the difference value between the time information of the peer and the forced delay corresponds to the received buffer map time table information;
Requesting, by the peer, a piece of fragment number corresponding to the difference value, if the fragment number matches the fragment number; And
Deriving the fragment number based on the received buffer map time table information, if not,
/ RTI &gt;
How the peer works.
제1항에 있어서,
상기 수신된 버퍼맵 타임 테이블 정보는 상기 피어에 의해 설정된 타임 구간(time span)에 대응되는 조각들 각각의 조각화 시간(fragmentation time) 정보를 포함하는,
피어의 동작 방법.
The method according to claim 1,
Wherein the received buffer map time table information includes fragmentation time information of each piece corresponding to a time span set by the peer,
How the peer works.
제2항에 있어서,
상기 조각 번호를 도출하는 단계는,
상기 조각들 각각의 조각화 시간 정보의 편차들(deviations)의 평균을 이용하여 상기 조각 번호를 도출하는 단계
를 포함하는,
피어의 동작 방법.
3. The method of claim 2,
Wherein deriving the piece number comprises:
Deriving the slice number using an average of deviations of the fragmentation time information of each of the fragments
/ RTI &gt;
How the peer works.
제2항에 있어서,
상기 조각들 각각의 조각화 시간 정보는 상기 조각들 각각의 생성 시간을 나타내는,
피어의 동작 방법.
3. The method of claim 2,
Wherein the fragmentation time information of each of the fragments indicates a generation time of each of the fragments,
How the peer works.
제1항에 있어서,
상기 도출하는 단계에서 상기 조각 번호가 도출된 경우, 상기 도출된 조각 번호에 해당하는 조각을 수신할 것을 상기 상대 피어에게 요청하는 단계
를 더 포함하는,
피어의 동작 방법.
The method according to claim 1,
If the fragment number is derived in the derivation step, requesting the peer to receive a piece corresponding to the derived fragment number
&Lt; / RTI &gt;
How the peer works.
제1항에 있어서,
상기 버퍼맵 타임 테이블 정보를 상기 상대 피어로부터 수신하는 단계는,
상기 상대 피어에게 HELLO 메시지 또는 GETBTT 메시지를 전송하는 단계; 및
상기 HELLO 메시지 또는 상기 GETBTT 메시지에 대한 응답으로, 상기 상대 피어로부터 상기 버퍼맵 타임 테이블 정보를 포함하는 HELLO 메시지 또는 상기 버퍼맵 타임 테이블 정보를 포함하는 BTT 메시지를 수신하는 단계
를 포함하는,
피어의 동작 방법.
The method according to claim 1,
Wherein the step of receiving the buffer map time table information from the counterpart peer comprises:
Transmitting a HELLO message or a GETBTT message to the peer; And
Receiving, in response to the HELLO message or the GETBTT message, a HELLO message including the buffer map time table information or a BTT message including the buffer map time table information from the counterpart peer
/ RTI &gt;
How the peer works.
제6항에 있어서,
상기 HELLO 메시지는 상기 피어가 상기 상대 피어와 이웃 관계(neighbourship)를 형성하기 위해 사용되는 메시지에 해당하고,
상기 GETBTT 메시지는 상기 피어가 상기 상대 피어에게 상기 버퍼맵 타임 테이블 정보를 별도로 요청하기 위해 사용되는 메시지에 해당하는,
피어의 동작 방법.
The method according to claim 6,
The HELLO message corresponds to a message used by the peer to form a neighborship with the peer,
Wherein the GETBTT message corresponds to a message used by the peer to separately request the buffer map timetable information from the peer,
How the peer works.
제6항에 있어서,
상기 피어의 HELLO 메시지 및 상기 GETBTT 메시지는 상기 피어에 의해 설정된 타임 구간(time span)에 대한 정보를 포함하는,
피어의 동작 방법.
The method according to claim 6,
Wherein the HELLO message and the GETBTT message of the peer include information on a time span set by the peer,
How the peer works.
제1항에 있어서,
상기 강제 지연은 서비스 공급자(service provider) 또는 상기 피어에 의해 선택되는,
피어의 동작 방법.
The method according to claim 1,
Wherein the forced delay is selected by a service provider or the peer,
How the peer works.
피어에 있어서,
통신 인터페이스; 및
상대 피어의 버퍼맵과 관련된 버퍼맵 타임 테이블(buffermap time table, BTT) 정보를 상기 통신 인터페이스를 통해 상기 상대 피어로부터 수신하고, 상기 피어의 시간 정보와 강제 지연(forced) 사이의 차이값이 상기 수신된 버퍼맵 타임 테이블 정보에 부합되는지 여부를 확인하며, 상기 부합되는 경우, 상기 차이값에 대응되는 조각 번호(fragment number)의 조각을 상기 상대 피어에게 요청하고, 상기 부합되지 않는 경우, 상기 수신된 버퍼맵 타임 테이블 정보를 기초로 상기 차이값에 대응되는 조각 번호(fragment number)를 도출(derive)하는 프로세서
를 포함하는,
피어.
In the peer,
Communication interface; And
Receiving a buffer map time table (BTT) information associated with a buffer map of a peer from the peer via the communication interface, and determining whether a difference value between the time information of the peer and a forced delay And if so, requests a piece of fragment number corresponding to the difference value to the counterpart peer, and if it does not match the received buffer map time table information, A processor for deriving a fragment number corresponding to the difference value based on the buffer map time table information,
/ RTI &gt;
Peer.
제10항에 있어서,
상기 수신된 버퍼맵 타임 테이블 정보는 상기 피어에 의해 설정된 타임 구간(time span)에 대응되는 조각들 각각의 조각화 시간(fragmentation time) 정보를 포함하는,
피어.
11. The method of claim 10,
Wherein the received buffer map time table information includes fragmentation time information of each piece corresponding to a time span set by the peer,
Peer.
제11항에 있어서,
상기 프로세서는 상기 조각들 각각의 조각화 시간 정보의 편차들(deviations)의 평균을 이용하여 상기 조각 번호를 도출하는,
피어.
12. The method of claim 11,
Wherein the processor derives the slice number using an average of deviations of the fragmentation time information of each of the slices,
Peer.
제11항에 있어서,
상기 조각들 각각의 조각화 시간 정보는 상기 조각들 각각의 생성 시간을 나타내는,
피어.
12. The method of claim 11,
Wherein the fragmentation time information of each of the fragments indicates a generation time of each of the fragments,
Peer.
제10항에 있어서,
상기 프로세서는 상기 조각 번호가 도출된 경우, 상기 도출된 조각 번호에 해당하는 조각을 수신할 것을 상기 통신 인터페이스를 통해 상기 상대 피어에게 요청하는,
피어.
11. The method of claim 10,
Wherein the processor requests the peer through the communication interface to receive a fragment corresponding to the derived fragment number if the fragment number is derived,
Peer.
제10항에 있어서,
상기 프로세서는 상기 통신 인터페이스를 통해 상기 상대 피어에게 HELLO 메시지 또는 GETBTT 메시지를 전송하고, 상기 HELLO 메시지 또는 상기 GETBTT 메시지에 대한 응답으로, 상기 상대 피어로부터 상기 버퍼맵 타임 테이블 정보를 포함하는 HELLO 메시지 또는 상기 버퍼맵 타임 테이블 정보를 포함하는 BTT 메시지를 상기 통신 인터페이스를 통해 수신하는,
피어.
11. The method of claim 10,
Wherein the processor transmits a HELLO message or a GETBTT message to the peer via the communication interface, and transmits, in response to the HELLO message or the GETBTT message, a HELLO message including the buffer map time table information, Receiving via the communication interface a BTT message including buffer map timetable information,
Peer.
제15항에 있어서,
상기 HELLO 메시지는 상기 피어가 상기 상대 피어와 이웃 관계(neighbourship)를 형성하기 위해 사용되는 메시지에 해당하고,
상기 GETBTT 메시지는 상기 피어가 상기 상대 피어에게 상기 버퍼맵 타임 테이블 정보를 별도로 요청하기 위해 사용되는 메시지에 해당하는,
피어.
16. The method of claim 15,
The HELLO message corresponds to a message used by the peer to form a neighborship with the peer,
Wherein the GETBTT message corresponds to a message used by the peer to separately request the buffer map timetable information from the peer,
Peer.
제15항에 있어서,
상기 피어의 HELLO 메시지 및 상기 GETBTT 메시지는 상기 피어에 의해 설정된 타임 구간(time span)에 대한 정보를 포함하는,
피어.
16. The method of claim 15,
Wherein the HELLO message and the GETBTT message of the peer include information on a time span set by the peer,
Peer.
제10항에 있어서,
상기 강제 지연은 서비스 공급자(service provider) 또는 상기 피어에 의해 선택되는,
피어.
11. The method of claim 10,
Wherein the forced delay is selected by a service provider or the peer,
Peer.
KR1020180046637A 2017-06-19 2018-04-23 Peer and operating mehtod of thereof KR102190235B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US16/010,673 US10645134B2 (en) 2017-06-19 2018-06-18 Peer and operation method thereof

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20170077338 2017-06-19
KR1020170077338 2017-06-19

Publications (2)

Publication Number Publication Date
KR20180138122A true KR20180138122A (en) 2018-12-28
KR102190235B1 KR102190235B1 (en) 2020-12-11

Family

ID=65008512

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180046637A KR102190235B1 (en) 2017-06-19 2018-04-23 Peer and operating mehtod of thereof

Country Status (1)

Country Link
KR (1) KR102190235B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11509702B2 (en) 2019-11-27 2022-11-22 Electronics And Telecommunications Research Institute Method and apparatus for selecting and receiving stream in distribution network-based multimedia streaming service

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120056139A (en) * 2010-11-24 2012-06-01 한국전자통신연구원 Method and apparatus of providing data streaming service
US20120159267A1 (en) * 2010-12-21 2012-06-21 John Gyorffy Distributed computing system that monitors client device request time and server servicing time in order to detect performance problems and automatically issue alterts
KR20120068314A (en) * 2010-12-17 2012-06-27 이화여자대학교 산학협력단 Method for providing peering suggestion list, method for establishing p2p network, p2p application apparatus, terminal for establishing p2p network and network apparatus
US20130083034A1 (en) * 2011-09-30 2013-04-04 Microsoft Corporation Animation engine decoupled from animation catalog
US20130290557A1 (en) * 2012-04-30 2013-10-31 Mobilatv Ltd. Method and system for central utilization of remotely generated large media data streams despite network bandwidth limitations
KR101590098B1 (en) * 2015-01-27 2016-01-29 홍익대학교 산학협력단 Apparatus and method for buffering

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120056139A (en) * 2010-11-24 2012-06-01 한국전자통신연구원 Method and apparatus of providing data streaming service
KR20120068314A (en) * 2010-12-17 2012-06-27 이화여자대학교 산학협력단 Method for providing peering suggestion list, method for establishing p2p network, p2p application apparatus, terminal for establishing p2p network and network apparatus
US20120159267A1 (en) * 2010-12-21 2012-06-21 John Gyorffy Distributed computing system that monitors client device request time and server servicing time in order to detect performance problems and automatically issue alterts
US20130083034A1 (en) * 2011-09-30 2013-04-04 Microsoft Corporation Animation engine decoupled from animation catalog
US20130290557A1 (en) * 2012-04-30 2013-10-31 Mobilatv Ltd. Method and system for central utilization of remotely generated large media data streams despite network bandwidth limitations
KR101590098B1 (en) * 2015-01-27 2016-01-29 홍익대학교 산학협력단 Apparatus and method for buffering

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11509702B2 (en) 2019-11-27 2022-11-22 Electronics And Telecommunications Research Institute Method and apparatus for selecting and receiving stream in distribution network-based multimedia streaming service

Also Published As

Publication number Publication date
KR102190235B1 (en) 2020-12-11

Similar Documents

Publication Publication Date Title
KR101602525B1 (en) Streaming with Optional Broadcast Delivery of Data Segments
JP5223480B2 (en) Content distribution method and communication terminal device
EP2583279B1 (en) Storage file format for multimedia streaming file, and storage method and client apparatus using the same
US9401885B2 (en) Data push service method and system using data pull model
CN104349176A (en) Self-adaptive stream media system, downloading method and stream media server, user terminal
US20110126256A1 (en) Method for live broadcasting in a distributed network and apparatus for the same
US9118977B2 (en) Content synchronization system, content-synchronization control device, and content playback device
JP6116240B2 (en) Transmission device, transmission method, and program
CN105323597A (en) MP4 file playing method, MP4 file processing method, MP4 file playing device, MP4 file processing device and MP4 file playing system
WO2023061060A1 (en) Audio and video code stream scheduling method, system, medium and electronic apparatus
US9412415B2 (en) Content synchronization system, content-synchronization control device, and content playback device
KR102190235B1 (en) Peer and operating mehtod of thereof
US9015273B2 (en) Methods and devices for transmitting and receiving sequential content in a content centric network
JP2009246904A (en) Communication equipment, communicating method and program
WO2019085243A1 (en) Audio and video data playback method and server and client terminal
US20120246332A1 (en) Circular buffer and method for multimedia streaming service based peer-to-peer
WO2010121525A1 (en) Method, apparatus and system for a real time streaming protocol terminal to obtain media resources
CN104243469A (en) Playing control method, device and system
CN105791922B (en) A kind of media play controlling method and its device
JP2013066088A (en) Network system, network apparatus, and distribution method
EP3107261B1 (en) System, method and devices for low latency transmission
US10645134B2 (en) Peer and operation method thereof
WO2016165596A1 (en) Multimedia file control method and system
KR102135737B1 (en) Peer and method for starting point adaptation
CN113301100A (en) Data disaster tolerance method, device, equipment and medium based on content distribution network

Legal Events

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