KR20180138122A - Peer and operating mehtod of thereof - Google Patents
Peer and operating mehtod of thereof Download PDFInfo
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1074—Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
Abstract
Description
아래 실시예들은 피어에 관한 것이다.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
버퍼맵(100)은 완료 섹션(completed section)(110), 다운로딩 섹션(downloading section)(120), 및 엠프티 섹션(empty section)(130)으로 구성된다.The
완료 섹션(110)은 피어가 조각들을 연속적으로 보유하고 있는 섹션(section that a peer possesses fragments continuously)을 나타낸다. The
다운로딩 섹션(120)은 피어가 조각들을 연속적으로 보유하지 않은 섹션(section that a peer does not possess fragments continuously)을 나타낸다.The
엠프티 섹션(130)은 DP에 의해 SP를 오버라이딩하는 것을 막기 위해 버퍼링에 사용될 섹션(A section that will be used for buffering to prevent from overriding SP by DP)을 나타낸다.
버퍼맵(100)은 특정 조각 식별자를 가리키는 다음 속성들이 있다(buffermap has the following attributes that point specific fragment identifier).The
- 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
- 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
- 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
- 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
도 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
스트리밍 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
도 3의 peerSP는 버퍼맵(300)의 SP값을 나타내고, peerDP는 버퍼맵(300)의 DP값을 나타내며, peerEP는 버퍼맵(300)의 EP값을 나타낸다.PeerSP in FIG. 3 represents the SP value of the
피어 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
[수학식 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
도 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.
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,
피어 2는 HELLO 메시지에 대한 응답으로 피어 1에게 HELLO 메시지를 전송한다(420). 여기서, 피어 2의 HELLO 메시지는 표 1의 syntax에 기초할 수 있다. 피어 2의 HELLO 메시지는, 예를 들어, 피어 2의 식별자, 피어 2가 참여하고 있는 오버레이 네트워크의 식별자, 피어 2의 버퍼맵의 유효 시간, 피어 2의 버퍼맵의 SP값, 피어 2의 버퍼맵 내의 완료 섹션의 길이, 피어 2의 버퍼맵의 DP값, 피어 2의 버퍼맵 내의 다운로딩 섹션의 길이, 피어 2가 해당 다운로딩 섹션 내의 조각들을 보유하고 있는지 여부, 및 피어 2가 피어 1의 버퍼맵 타임 테이블 정보를 수신하는 것을 원하는지 여부 중 어느 하나 또는 이들의 조합을 포함할 수 있다.
실시예에 있어서, 피어 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
피어 1은 피어 2의 버퍼맵 타임 테이블 정보를 이용하여 자신의 SP값을 결정할 수 있다. 이하, 도 5를 참조하면서, 설명한다.
도 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
피어 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
<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
<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
<case 2><
case 2와 같이, "시간 정보―강제 지연"에 대응되는 조각 번호(또는 조각 식별자)가 피어 P2의 버퍼맵 타임 테이블 정보에 있을 수 있다. 도 5에 도시된 예에서, 피어 P1은 "시간 정보―강제 지연"에 대응되는 조각 번호 7을 피어 2의 버퍼맵 타임 테이블 정보에서 찾을 수 있다. 이 경우, 피어 P1은 조각 번호 7을 자신의 SP값으로 결정할 수 있다. 피어 P1은 조각 번호 7의 조각을 피어 P2에게 요청할 수 있다. 이에 대해선 도 6을 참조하면서 설명한다.As in
도 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 " curNTPtime () - FD " In
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 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
도 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.
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.
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
피어는 해당 차이값이 수신된 버퍼맵 타임 테이블 정보에 부합되지 않는 경우, 수신된 버퍼맵 타임 테이블 정보를 기초로 해당 차이값에 대응되는 조각 번호를 도출한다(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
도 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
프로세서(1020)는 상대 피어의 버퍼맵과 관련된 버퍼맵 타임 테이블 정보를 통신 인터페이스(1010)를 통해 상대 피어로부터 수신한다.
프로세서(1020)는 피어(1000)의 시간 정보와 강제 지연 사이의 차이값이 상기 수신된 버퍼맵 타임 테이블 정보에 부합되는지 여부를 확인한다. The
프로세서(1020)는 해당 차이값이 수신된 버퍼맵 타임 테이블 정보에 부합되는 경우, 해당 차이값에 대응되는 조각 번호의 조각을 상대 피어에게 요청한다.
프로세서(1020)는 해당 차이값이 수신된 버퍼맵 타임 테이블 정보에 부합되지 않는 경우, 수신된 버퍼맵 타임 테이블 정보를 기초로 해당 차이값에 대응되는 조각 번호를 도출한다.If the difference value does not match the received buffer map time table information, the
도 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 > 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 >
How the peer works.
상기 수신된 버퍼맵 타임 테이블 정보는 상기 피어에 의해 설정된 타임 구간(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.
상기 조각 번호를 도출하는 단계는,
상기 조각들 각각의 조각화 시간 정보의 편차들(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 >
How the peer works.
상기 조각들 각각의 조각화 시간 정보는 상기 조각들 각각의 생성 시간을 나타내는,
피어의 동작 방법.
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.
상기 도출하는 단계에서 상기 조각 번호가 도출된 경우, 상기 도출된 조각 번호에 해당하는 조각을 수신할 것을 상기 상대 피어에게 요청하는 단계
를 더 포함하는,
피어의 동작 방법.
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
≪ / RTI >
How the peer works.
상기 버퍼맵 타임 테이블 정보를 상기 상대 피어로부터 수신하는 단계는,
상기 상대 피어에게 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 >
How the peer works.
상기 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.
상기 피어의 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.
상기 강제 지연은 서비스 공급자(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 >
Peer.
상기 수신된 버퍼맵 타임 테이블 정보는 상기 피어에 의해 설정된 타임 구간(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.
상기 프로세서는 상기 조각들 각각의 조각화 시간 정보의 편차들(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.
상기 조각들 각각의 조각화 시간 정보는 상기 조각들 각각의 생성 시간을 나타내는,
피어.
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.
상기 프로세서는 상기 조각 번호가 도출된 경우, 상기 도출된 조각 번호에 해당하는 조각을 수신할 것을 상기 통신 인터페이스를 통해 상기 상대 피어에게 요청하는,
피어.
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.
상기 프로세서는 상기 통신 인터페이스를 통해 상기 상대 피어에게 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.
상기 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.
상기 피어의 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.
상기 강제 지연은 서비스 공급자(service provider) 또는 상기 피어에 의해 선택되는,
피어.11. The method of claim 10,
Wherein the forced delay is selected by a service provider or the peer,
Peer.
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)
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)
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 |
-
2018
- 2018-04-23 KR KR1020180046637A patent/KR102190235B1/en active IP Right Grant
Patent Citations (6)
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)
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 |