KR100804075B1 - 분할화된 데이터를 이용한 클라이언트/서버 간의 접속 제어방법 및 시스템 및 이를 이용한 데이터 수신/재생 방법 및시스템 - Google Patents

분할화된 데이터를 이용한 클라이언트/서버 간의 접속 제어방법 및 시스템 및 이를 이용한 데이터 수신/재생 방법 및시스템 Download PDF

Info

Publication number
KR100804075B1
KR100804075B1 KR1020060077987A KR20060077987A KR100804075B1 KR 100804075 B1 KR100804075 B1 KR 100804075B1 KR 1020060077987 A KR1020060077987 A KR 1020060077987A KR 20060077987 A KR20060077987 A KR 20060077987A KR 100804075 B1 KR100804075 B1 KR 100804075B1
Authority
KR
South Korea
Prior art keywords
client
connection
data
connection target
content data
Prior art date
Application number
KR1020060077987A
Other languages
English (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 KR1020060077987A priority Critical patent/KR100804075B1/ko
Priority to PCT/KR2007/003902 priority patent/WO2008020708A1/en
Application granted granted Critical
Publication of KR100804075B1 publication Critical patent/KR100804075B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • 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/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/148Migration or transfer of sessions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/61Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources taking into account QoS or priority requirements

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Mathematical Physics (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

본 발명은 클라이언트 및 서버 간의 접속 제어 방법 및 시스템 및 이를 이용한 데이터 수신/재생 방법 및 시스템에 관한 것으로서, 적어도 하나 이상의 클라이언트와 연결된 관리 서버에서 클라이언트간의 접속을 제어하는 방법에 있어서, 상기 관리 서버로 접속하여 특정 컨텐츠 데이터를 요청한 접속 요청 클라이언트에 대해 상기 접속 요청 클라이언트가 접속해야 할 적어도 하나 이상의 접속 대상 클라이언트를 선택하는 단계-여기서, 상기 접속 대상 클라이언트는 상기 접속 요청 클라이언트가 요청한 컨텐츠 데이터를 가지고 있으며, 상기 컨텐츠 데이터는 소정 기준에 의해 분할화되어 있음-; 상기 접속 요청 클라이언트가 상기 선택된 적어도 하나 이상의 접속 대상 클라이언트들로부터 상기 분할화된 컨텐츠 데이터를 수신할 전송 규칙을 결정하는 단계; 및 상기 선택된 적어도 하나 이상의 접속 대상 클라이언트들에 대한 접속 정보를 포함하는 접속 대상 클라이언트 리스트와 상기 결정된 전송 규칙을 상기 접속 요청 클라이언트로 전송하는 단계를 포함하는 클라이언트간의 접속 제어 방법을 제공한다.
데이터 분할, 스트리밍, 분산 수신

Description

분할화된 데이터를 이용한 클라이언트/서버 간의 접속 제어 방법 및 시스템 및 이를 이용한 데이터 수신/재생 방법 및 시스템{Method and system for controlling connection between client and server using fragmented data and for receiving/playing data using the same}
도 1은 본 발명에 의한 클라이언트 및 서버 간의 접속 제어 방법 및 시스템의 전체 구성을 나타낸 구성도,
도 2는 접속 요청 클라이언트(10)가 관리 서버(20)에 접속하여 접속 대상 리스트와 전송 규칙을 수신하고, 이에 따라 다른 클라이언트에 접속하여 요청한 컨텐츠 데이터를 수신하는 과정을 나타낸 흐름도,
도 3 및 도 4는 접속 대상 클라이언트 리스트 및 전송 규칙의 일예를 나타낸 도면,
도 5는 분할화되어 있는 컨텐츠 데이터의 구성을 나타낸 예시도,
도 6은 임계 시간을 설정하여 임계 시간 내에 데이터 패킷이 수신되지 않은 경우를 설명하기 위한 흐름도,
도 7은 관리 서버(20) 및 접속 요청 클라이언트(10)의 상세 구성을 나타낸 블록도이다.
<도면 주요 부분의 부호에 대한 설명>
10...접속 요청 클라이언트,
20...관리 서버,
30,40,50...접속 대상 클라이언트,
본 발명은 클라이언트 및 서버 간의 접속 제어 방법 및 시스템 및 이를 이용한 데이터 수신/재생 방법 및 시스템에 관한 것으로서, 특히 클라이언트 및 서버 간에 요청되는 데이터를 소정 기준에 따라 분할화하고 분할된 데이터 패킷들을 복수의 클라이언트 또는 서버로부터 각각 분산 수신하여 재생함으로써, 보다 효율적으로 데이터를 수신 및 재생할 수 있는 방법 및 시스템에 관한 것이다.
인터넷의 급속한 발전과 더불어 인터넷 등의 네트워크를 통해 각종 데이터를 송수신하는 방법에 대해서도 많은 발전이 있었다. 특히, 대용량의 데이터를 단시간내에 전송할 수 있는 초고속 인터넷 망의 보급에 따라 동영상 등의 대용량의 멀티미디어 데이터를 인터넷을 통해 전송받을 수 있도록 하여 실시간 스트리밍(streaming) 서비스 등도 널리 제공되고 있다.
그러나, 이러한 대용량의 멀티미디어 데이터를 서버나 다른 클라이언트로부 터 전송받도록 하는 구조는 기본적으로 1:1의 대응관계에 따라 데이터를 요청한 클라이언트는 서버나 다른 클라이언트에 접속하여 요청한 데이터를 전송받도록 하는 구조를 벗어나지 못하고 있어서, 데이터를 수신하는 속도는 접속되어 있는 서버나 클라이언트에 일방적으로 종속될 수 밖에 없으며, 전송 도중에 접속되어 있는 서버나 클라이언트와의 접속이 비정상적으로 종료되는 경우에는 새롭게 접속을 설정해야 하는 등 여러 가지 문제를 가지고 있다.
본 발명은 상기한 바와 같은 문제점을 감안하여 안출된 것으로서, 클라이언트 및 서버 또는 다른 클라이언트간에 요청되는 데이터를 소정 기준에 따라 미리 분할화하고 분할된 각각의 데이터 패킷들을 복수의 클라이언트 또는 서버로부터 각각 분산 수신할 수 있도록 함으로서, 보다 신속하게 데이터를 수신할 수 있도록 하는 클라이언트간의 접속 제어 방법 및 시스템을 제공하는 것을 목적으로 한다.
또한, 본 발명은 클라이언트 및 서버 또는 다른 클라이언트간에 요청되는 데이터를 소정 기준에 따라 미리 분할화하고 분할된 각각의 데이터 패킷들을 복수의 클라이언트 또는 서버로부터 각각 분산 수신하는 동시에 재생할 수 있으며, 특정 클라이언트 또는 서버와의 접속에 문제가 발생하는 경우에도 안정적으로 데이터를 수신 및 재생할 수 있도록 하는 방법 및 시스템을 제공하는 것을 또 다른 목적으로 한다.
상기한 바와 같은 목적을 달성하기 위한 본 발명은 적어도 하나 이상의 클라이언트와 연결된 관리 서버에서 클라이언트간의 접속을 제어하는 방법에 있어서, 상기 관리 서버로 접속하여 특정 컨텐츠 데이터를 요청한 접속 요청 클라이언트에 대해, 각각의 클라이언트에 대하여 접속 대상 클라이언트로 설정될 때마다 그 값이 소정 값만큼 증가하도록 설정된 참조 계수가 소정 범위 내에 속하는 클라이언트를 상기 접속 요청 클라이언트가 접속해야 할 적어도 하나 이상의 접속 대상 클라이언트로 선택하는 단계-여기서, 상기 접속 대상 클라이언트는 상기 접속 요청 클라이언트가 요청한 컨텐츠 데이터를 가지고 있으며, 상기 컨텐츠 데이터는 소정 기준에 의해 분할화되어 있음-, 상기 접속 요청 클라이언트가 상기 선택된 적어도 하나 이상의 접속 대상 클라이언트들로부터 상기 분할화된 컨텐츠 데이터를 수신할 전송 규칙을 결정하는 단계 및 상기 선택된 적어도 하나 이상의 접속 대상 클라이언트들에 대한 접속 정보를 포함하는 접속 대상 클라이언트 리스트와 상기 결정된 전송 규칙을 상기 접속 요청 클라이언트로 전송하는 단계를 포함하는 클라이언트간의 접속 제어 방법을 제공할 수 있다.
여기에서, 상기 관리 서버로 접속하여 특정 컨텐츠 데이터를 요청한 접속 요청 클라이언트에 대해, 각각의 클라이언트에 대하여 접속 대상 클라이언트로 설정될 때마다 그 값이 소정 값만큼 증가하도록 설정된 참조 계수가 소정 범위 내에 속하는 클라이언트를 상기 접속 요청 클라이언트가 접속해야 할 적어도 하나 이상의 접속 대상 클라이언트로 선택하는 단계 이후에, 공인 IP 주소를 갖는 클라이언트를 접속 대상 클라이언트로 선택하는 단계를 더 포함하도록 구성할 수 있다.
또한, 상기 관리 서버로 접속하여 특정 컨텐츠 데이터를 요청한 접속 요청 클라이언트에 대해, 각각의 클라이언트에 대하여 접속 대상 클라이언트로 설정될 때마다 그 값이 소정 값만큼 증가하도록 설정된 참조 계수가 소정 범위 내에 속하는 클라이언트를 상기 접속 요청 클라이언트가 접속해야 할 적어도 하나 이상의 접속 대상 클라이언트로 선택하는 단계 이후에, IP 주소의 소정 길이의 상위 비트가 상기 접속 요청 클라이언트의 IP 주소의 소정 길이의 상위 비트와 동일한 클라이언트를 접속 대상 클라이언트로 선택하는 단계를 더 포함하도록 구성할 수 있다.
또한, 상기 관리 서버로 접속하여 특정 컨텐츠 데이터를 요청한 접속 요청 클라이언트에 대해, 각각의 클라이언트에 대하여 접속 대상 클라이언트로 설정될 때마다 그 값이 소정 값만큼 증가하도록 설정된 참조 계수가 소정 범위 내에 속하는 클라이언트를 상기 접속 요청 클라이언트가 접속해야 할 적어도 하나 이상의 접속 대상 클라이언트로 선택하는 단계 이후에, 대역폭이 소정 임계치 이상인 클라이언트를 접속 대상 클라이언트로 선택하는 단계를 더 포함하도록 구성할 수 있다.
삭제
여기에서, 상기 각각의 클라이언트에 대한 참조 계수는 마지막으로 참조된 이후 소정 기간동안 참조되지 않은 경우 그 값이 소정 값만큼 감소하도록 설정된 것일 수 있다.
또한, 상기 관리 서버로 접속하여 특정 컨텐츠 데이터를 요청한 접속 요청 클라이언트에 대해, 각각의 클라이언트에 대하여 접속 대상 클라이언트로 설정될 때마다 그 값이 소정 값만큼 증가하도록 설정된 참조 계수가 소정 범위 내에 속하는 클라이언트를 상기 접속 요청 클라이언트가 접속해야 할 적어도 하나 이상의 접속 대상 클라이언트로 선택하는 단계는, 상기 관리 서버를 접속 대상 클라이언트로 선택하도록 구성할 수 있다.
또한, 상기 접속 요청 클라이언트가 상기 선택된 적어도 하나 이상의 접속 대상 클라이언트들로부터 상기 분할화된 컨텐츠 데이터를 수신할 전송 규칙을 결정하는 단계에 있어서, 상기 전송 규칙은 상기 분할화된 컨텐츠 데이터를 구성하는 각각의 데이터 패킷들을 상기 리스트에 포함된 접속 대상 클라이언트들 중의 어느 하나에 대응시킨 것일 수 있다.
또한, 상기 전송 규칙은 상기 분할화된 컨텐츠 데이터를 구성하는 각각의 데이터 패킷들을 순차적으로 상기 리스트에 포함된 접속 대상 클라이언트들에 대해 대응시킨 것일 수 있다.
또한, 상기 접속 요청 클라이언트는 상기 관리 서버로부터 수신한 리스트에 포함된 접속 정보에 의거하여 접속 대상 클라이언트들에 접속하여 상기 분할화된 컨텐츠 데이터의 각각의 데이터 패킷을 상기 전송 규칙에 따라 수신하도록 구성할 수 있다.
본 발명의 다른 측면에 의하면, 적어도 하나 이상의 클라이언트 및 관리 서버와 결합하는 클라이언트에서 컨텐츠 데이터를 수신하는 방법에 있어서, 상기 관리 서버로 접속하여 특정 컨텐츠 데이터를 요청하는 단계, 상기 관리 서버로부터 각각의 클라이언트에 대하여 접속 대상 클라이언트로 설정될 때마다 그 값이 소정 값만큼 증가하도록 설정된 참조 계수가 소정 범위 내에 속하는 접속 대상 클라이언트들의 접속 정보를 포함하는 접속 대상 클라이언트 리스트와 전송 규칙을 수신하는 단계-여기서, 상기 컨텐츠 데이터는 소정 기준에 의해 분할화되어 있으며, 상기 전송 규칙은 상기 분할화된 컨텐츠 데이터를 구성하는 각각의 데이터 패킷들을 상기 리스트에 포함된 접속 대상 클라이언트들 중의 어느 하나에 대응시킨 것임-, 상기 리스트에 포함된 접속 정보에 의거하여 접속 대상 클라이언트들에 각각 접속하여 상기 접속 대상 클라이언트들 각각에 대하여 상기 전송 규칙에 따라 분할화된 컨텐츠 데이터를 구성하는 데이터 패킷들을 요청하는 단계 및 상기 접속 대상 클라이언트들 각각으로부터 상기 분할화된 컨텐츠 데이터를 구성하는 데이터 패킷들을 각각 수신하는 단계를 포함하는 컨텐츠 데이터 수신 방법을 제공할 수 있다.
여기에서, 상기 전송 규칙은 상기 분할화된 컨텐츠 데이터를 구성하는 각각의 데이터 패킷들을 순차적으로 상기 리스트에 포함된 접속 대상 클라이언트들에 대해 대응시킨 것일 수 있다.
또한, 상기 접속 대상 클라이언트들 각각으로부터 상기 분할화된 컨텐츠 데이터를 구성하는 데이터 패킷들을 각각 수신하는 단계 이후, 상기 접속 대상 클라이언트들 각각으로부터 수신된 각각의 데이터 패킷들을 원래의 컨텐츠 데이터로 조합하는 단계를 더 포함하도록 구성할 수 있다.
본 발명의 또 다른 측면에 의하면, 적어도 하나 이상의 클라이언트 및 관리 서버와 결합하는 클라이언트에서 컨텐츠 데이터를 수신하여 실시간으로 재생하는 방법에 있어서, 상기 관리 서버로 접속하여 특정 컨텐츠 데이터를 요청하는 단계, 상기 관리 서버로부터 각각의 클라이언트에 대하여 접속 대상 클라이언트로 설정될 때마다 그 값이 소정 값만큼 증가하도록 설정된 참조 계수가 소정 범위 내에 속하는 접속 대상 클라이언트들의 접속 정보를 포함하는 접속 대상 클라이언트 리스트와 전송 규칙을 수신하는 단계-여기서, 상기 컨텐츠 데이터는 소정 기준에 의해 분할화되어 있으며, 상기 전송 규칙은 상기 분할화된 컨텐츠 데이터를 구성하는 각각의 데이터 패킷들을 상기 리스트에 포함된 접속 대상 클라이언트들 중의 어느 하나에 대응시킨 것임-, 상기 리스트에 포함된 접속 정보에 의거하여 접속 대상 클라이언트들에 각각 접속하여 상기 접속 대상 클라이언트들 각각에 대하여 상기 전송 규칙에 따라 분할화된 컨텐츠 데이터를 구성하는 데이터 패킷들을 요청하는 단계 및 상기 접속 대상 클라이언트들 각각으로부터 상기 분할화된 컨텐츠 데이터를 구성하는 데이터 패킷들을 각각 수신하면서, 상기 수신되는 데이터 패킷들을 원래의 컨텐츠 데이터의 순서에 따라 재생하는 단계를 포함하는 컨텐츠 데이터 수신 및 재생 방법을 제공할 수 있다.
여기에서, 상기 접속 대상 클라이언트들 각각으로부터 상기 분할화된 컨텐츠 데이터를 구성하는 데이터 패킷들을 각각 수신하면서, 상기 수신되는 데이터 패킷들을 원래의 컨텐츠 데이터의 순서에 따라 재생하는 단계는, 상기 접속 대상 클라이언트들 각각으로부터 수신하는 데이터 패킷들 각각에 대하여 원래의 컨텐츠 데이터의 순서에 따라 재생할 경우에 예측되는 수신 임계 시간을 설정하고, 상기 수신 임계 시간 내에 접속 대상 클라이언트로부터 데이터 패킷들이 수신되지 않는 경우 상기 접속 대상 클라이언트와의 접속을 해제하고 상기 관리 서버로 접속하여 상기 접속이 해제된 접속 대상 클라이언트에 대응하는 데이터 패킷들을 전송할 수 있는 다른 접속 대상 클라이언트의 접속 정보를 요청하여 다른 접속 대상 클라이언트의 정보를 수신하고, 상기 접속 정보에 의거하여 다른 접속 대상 클라이언트에 접속하여 상기 접속이 해제된 접속 대상 클라이언트에 대응하는 데이터 패킷들을 요청하여 수신하면서 수신되는 데이터 패킷들을 원래의 컨텐츠 데이터의 순서에 따라 재생하도록 구성할 수 있다.
본 발명의 또 다른 측면에 의하면, 적어도 하나 이상의 클라이언트와 연결되어 클라이언트간의 접속을 제어하는 접속 제어 시스템에 있어서, 접속되어 있는 클라이언트들을 관리하며, 특정 컨텐츠 데이터를 요청한 접속 요청 클라이언트에 대해 각각의 클라이언트에 대하여 접속 대상 클라이언트로 설정될 때마다 그 값이 소정 값만큼 증가하도록 설정된 참조 계수가 소정 범위 내에 속하는 클라이언트를 상기 접속 요청 클라이언트가 접속해야 할 적어도 하나 이상의 접속 대상 클라이언트를 선택하는 클라이언트 리스트 관리부-여기서, 상기 접속 대상 클라이언트는 상기 접속 요청 클라이언트가 요청한 컨텐츠 데이터를 가지고 있으며, 상기 컨텐츠 데이터는 소정 기준에 의해 분할화되어 있음-, 상기 접속 요청 클라이언트가 상기 선택된 적어도 하나 이상의 접속 대상 클라이언트들로부터 상기 분할화된 컨텐츠 데이터를 수신할 전송 규칙을 결정하는 전송 규칙 결정부 및 클라이언트와의 접속을 제어하며, 상기 선택된 적어도 하나 이상의 접속 대상 클라이언트들에 대한 접속 정보를 포함하는 접속 대상 클라이언트 리스트와 상기 결정된 전송 규칙을 상기 접속 요청 클라이언트로 전송하는 접속 제어부를 포함하는 클라이언트간의 접속 제어 시스템을 제공할 수 있다.
여기에서, 상기 전송 규칙 결정부는, 상기 분할화된 컨텐츠 데이터를 구성하는 각각의 데이터 패킷들을 순차적으로 상기 리스트에 포함된 접속 대상 클라이언트들에 대해 대응시킴으로써 전송 규칙을 결정할 수 있다.
또한, 상기 접속 요청 클라이언트는 상기 수신한 리스트에 포함된 접속 정보에 의거하여 접속 대상 클라이언트들에 접속하여 상기 분할화된 컨텐츠 데이터의 각각의 데이터 패킷을 상기 전송 규칙에 따라 수신할 수 있다.
본 발명의 또 다른 측면에 의하면, 적어도 하나 이상의 클라이언트 및 관리 서버와 결합하여 컨텐츠 데이터를 수신 및 재생하는 클라이언트에 있어서, 관리 서버로 소정 기준에 의해 미리 분할화되어 있는 특정 컨텐츠 데이터를 요청하여, 관리 서버로부터 각각의 클라이언트에 대하여 접속 대상 클라이언트로 설정될 때마다 그 값이 소정 값만큼 증가하도록 설정된 참조 계수가 소정 범위 내에 속하는 접속해야 할 접속 대상 클라이언트 리스트와 상기 분할화된 컨텐츠 데이터를 구성하는 각각의 데이터 패킷들을 상기 리스트에 포함된 접속 대상 클라이언트들 중의 어느 하나에 대응시킨 전송 규칙을 수신하고, 상기 리스트에 포함된 접속 대상 클라이언트들에 각각 접속하여 상기 접속 대상 클라이언트들 각각에 대하여 상기 전송 규칙에 따라 분할화된 컨텐츠 데이터를 구성하는 데이터 패킷들을 요청하는 접속 제어부, 상기 접속 대상 클라이언트들 각각으로부터 수신되는 데이터 패킷들을 수신하는 데이터 수신부, 상기 데이터 수신부에 의해 수신된 데이터 패킷들을 조합하는 데이터 조합부, 상기 데이터 수신부에 의해 수신되는 데이터 패킷들을 원래의 컨텐츠 데이터의 순서에 따라 재생하는 데이터 재생부 및 상기 접속 대상 클라이언트로부터 정상적으로 수신되지 않는 데이터 패킷인 레이지 데이터를 검증하고 레이지 데이터에 대한 정보를 접속 요청부를 통해 관리 서버로 전송하도록 하는 레이지 데이터 처리부를 포함하는 컨텐츠 데이터를 수신 및 재생하는 클라이언트를 제공할 수 있다.
여기에서, 상기 레이지 데이터 처리부는 상기 접속 대상 클라이언트들 각각으로부터 수신하는 데이터 패킷들 각각에 대하여 원래의 컨텐츠 데이터의 순서에 따라 재생할 경우에 예측되는 수신 임계 시간을 설정하고, 상기 수신 임계 시간 내에 접속 대상 클라이언트로부터 데이터 패킷들이 수신되지 않는 경우 상기 접속 대상 클라이언트와의 접속을 해제함으로써 레이지 데이터를 검증할 수 있다.
또한, 상기 접속 제어부는 상기 관리 서버로 접속하여 상기 접속이 해제된 접속 대상 클라이언트에 대응하는 데이터 패킷들을 전송할 수 있는 다른 접속 대상 클라이언트의 접속 정보를 요청하여 다른 접속 대상 클라이언트의 정보를 수신하 고, 상기 접속 정보에 의거하여 다른 접속 대상 클라이언트에 접속하여 상기 접속이 해제된 접속 대상 클라이언트에 대응하는 데이터 패킷들을 요청하도록 구성할 수 있다.
또한, 상기 데이터 수신부는 상기 요청된 데이터 패킷들을 수신하고, 상기 데이터 재생부는 상기 수신되는 데이터 패킷들을 원래의 컨텐츠 데이터의 순서에 따라 재생하도록 구성할 수 있다.
이하, 첨부 도면을 참조하여 본 발명의 바람직한 실시예들에 대하여 상세히 설명한다.
도 1은 본 발명에 의한 클라이언트 및 서버 간의 접속 제어 방법 및 시스템의 전체 구성을 나타낸 구성도이다.
도 1을 참조하면, 관리 서버(20)와 접속 요청 클라이언트(10) 및 복수개의 클라이언트(30,40.50)가 서로 연결되어 있다.
상기 접속 요청 클라이언트(10)는 관리 서버(20)에 접속하여 특정의 컨텐츠 데이터를 요청하는 클라이언트를 의미하며, 관리 서버(20)는 접속 가능한 복수개의 다른 클라이언트(30,40,50)에 대한 접속 정보를 포함하는 각종 클라이언트 정보를 가지고 있으며, 접속 요청 클라이언트(10)로부터의 특정 컨텐츠 데이터 요청 신호에 따라 접속 요청 클라이언트(10)가 접속해야 할 접속 대상 리스트와 전송 규칙을 생성하여 접속 요청 클라이언트(10)로 전송하는 등의 접속 제어와 관련된 각종 기 능을 처리한다.
여기서, 접속 대상 리스트라 함은, 관리 서버(20)가 접속 정보를 포함하는 각종 클라이언트 정보를 가지고 있는 접속 가능한 복수개의 다른 클라이언트(30,40,50) 중에서 소정 기준에 의해 선택된 클라이언트들에 대한 IP 주소 등과 같은 접속 정보를 포함하는 리스트를 의미한다.
또한, 전송 규칙이라 함은, 접속 요청 클라이언트(10)가 접속 대상 리스트에 포함되어 있는 클라이언트들에 접속하여 각각의 클라이언트들로부터 어떠한 데이터를 수신할 것인지에 대한 규칙을 의미한다.
한편, 본 발명에서 클라이언트간에 송수신되는 컨텐츠 데이터는 소정 기준에 의해 분할화(fragmentation)되어 있다. 즉, 각각의 클라이언트들에 저장되어 있는 컨텐츠 데이터는 예컨대 일정 크기 단위로 분할화되어 있고 각각의 분할화된 데이터 패킷은 상기와 같은 전송 규칙에 따라 각각의 클라이언트로부터 접속 요청 클라이언트(10) 측으로 분산 전송된다.
접속 요청 클라이언트(10)가 관리 서버(20)로부터 접속 대상 리스트와 전송 규칙을 수신하면, 접속 대상 리스트에 포함된 클라이언트들(도 1에서는 클라이언트 30,40,50 3개가 모두 선택되었다고 가정)에 접속하여 세션(session) 1,2 및 3을 각각 형성하여 상기한 바와 같이 분할화된 데이터 패킷들을 각각의 클라이언트들(30,40,50)로부터 분산 수신하게 된다.
도 2는 도 1에서와 같은 연결 상태에 따라 접속 요청 클라이언트(10)가 관리 서버(20)에 접속하여 접속 대상 리스트와 전송 규칙을 수신하고, 이에 따라 다른 클라이언트에 접속하여 요청한 컨텐츠 데이터를 수신하는 과정을 나타낸 흐름도이다.
우선, 접속 요청 클라이언트(10)는 관리 서버(20)에 접속하여 특정 컨텐츠 데이터를 요청한다(S100). 관리 서버(20)는 접속 요청 클라이언트(10)가 요청한 컨텐츠 데이터를 가지고 있는 다른 클라이언트들(이하, 이를 접속 대상 클라이언트라 한다)을 선택하고(S110), 전송 규칙을 결정한다(S120).
여기에서, 접속 대상 클라이언트를 선택(S110)하는 것은, 접속 요청 클라이언트(10)가 요청한 컨텐츠 데이터를 가지고 있는 클라이언트들 중에서 소정 기준에 의해 선택하게 되는데, 예컨대 공인 IP 주소를 갖는 클라이언트를 우선적으로 선택할 수 있다.
또한, 접속 대상 클라이언트를 선택(S110)하는 방법으로서, 각각의 클라이언트들의 IP 주소의 소정 길이의 상위 비트가 상기 접속 요청 클라이언트의 IP 주소의 소정 길이의 상위 비트와 동일한 클라이언트를 접속 대상 클라이언트로 선택하는 방법을 사용할 수도 있다. IP 주소의 소정 길이의 상위 비트가 동일한 경우 각 클라이언트들은 동일한 인터넷 서비스 제공업체(Internet Service Provider)로부터 인터넷 서비스를 제공받거나 동일한 LAN 등의 네트워크에 포함되어 있는 것을 의미하므로, 이들이 서로 연결되는 경우 보다 빠른 데이터 전송 속도를 달성할 수 있기 때문이다.
또한, 접속 대상 클라이언트를 선택(S110)하는 방법으로서, 접속 대상 클라 이언트의 대역폭이 소정 임계치 이상인 클라이언트를 우선적으로 선택할 수도 있다. 여기에서의 대역폭은 다운로드(download) 또는 업로드(upload) 중 어느 것을 사용할 수 있다. 접속 대상 클라이언트는 데이터를 접속 요청 클라이언트로 전송하는 것이므로 업로드(upload) 대역폭을 사용하는 것이 보다 바람직할 것이나 업로드 대역폭에 대한 데이터의 실제 측정이 어려운 경우에는 업로드 대역폭은 다운로드 대역폭과 어느 정도 비례한다는 점을 감안하여 다운로드(download) 대역폭에 의해 결정할 수도 있다.
한편, 접속 대상 클라이언트를 선택(S110)하는 방법으로서, 각각의 클라이언트에 대하여 접속 대상 클라이언트로 설정될 때마다 그 값이 소정값 예컨대 1씩 증가하도록 설정된 참조 계수에 의해 접속 대상 클라이언트를 선택할 수도 있다. 또한, 참조 계수는 마지막으로 참조된 후 소정 주기마다 예컨대 1분 마다 그 값을 소정 값 예컨대 1씩 감소시키는 방법을 사용함으로써 최근에 가장 적게 사용된 클라이언트를 판별하도록 할 수도 있으며, 클라이언트가 소정 주기마다 자신이 송신하고 있는 세션 수를 관리 서버(20)로 보고하도록 함으로써 관리 서버(20)에서 변경할 수도 있다. 이러한 방법에 의해 참조 계수가 일정 범위 내에 속하는 클라이언트를 접속 대상 클라이언트로서 선택하거나 가장 작은 참조 계수를 갖는 클라이언트들부터 우선적으로 접속 대상 클라이언트로 선택할 수 있다. 이러한 참조 계수를 사용함으로써, 특정 클라이언트가 접속 대상 클라이언트로서 집중되는 현상을 방지할 수 있다.
한편, 이러한 참조 계수를 이용하는 방법은 앞서 살펴 본 방법들과 병행하여 사용할 수도 있다. 즉, 참조 계수가 소정 범위 내에 있는 클라이언트들을 우선적으로 접속 대상 클라이언트로 선택하고, 선택된 접속 대상 클라이언트들 중에서 공인 IP 주소를 갖거나, IP 주소의 소정 길이의 상위 비트가 접속 요청 클라이언트의 IP 주소의 소정 길이의 상위 비트와 동일하거나, 대역폭이 소정 임계치 이상인 클라이언트들을 최종적으로 접속 대상 클라이언트로 선택하도록 구성할 수도 있다.
또한, 참조 계수가 소정 범위 내에 있는 클라이언트가 충분하지 않는 등 기타 요건에 의해 접속 대상 클라이언트로 선택할만한 클라이언트가 적절치 않은 경우 관리 서버(20)는 자기 자신을 접속 대상 클라이언트로 선택할 수도 있다.
이와 같은 방법에 의하여, 관리 서버(20)는 접속 요청 클라이언트(10)가 접속해야 할 접속 대상 클라이언트들에 대한 IP 주소 등과 같은 접속 정보를 포함하는 접속 대상 리스트를 생성하게 된다.
한편, 전송 규칙을 결정(S120)하는 것은, 앞서 설명한 바와 같이, 분할화된 특정 컨텐츠 데이터를 구성하는 데이터 패킷들 각각을 어느 접속 대상 클라이언트로부터 전송받을 것인가를 결정하는 것으로서, 각각의 데이터 패킷들을 접속 대상 리스트에 포함된 접속 대상 클라이언트들 중 적어도 어느 하나에 각각 대응시키는 것을 의미한다.
이러한 대응 방법으로서, 예컨대 접속 대상 클라이언트가 3개인 경우 컨텐츠 데이터를 구성하는 데이터 패킷들을 순차적으로 3개의 접속 대상 클라이언트로부터 수신하도록 할 수 있다. 즉, 첫번째 접속 대상 클라이언트는 1,4,7,10...번째 데이 터 패킷들을 수신하도록 대응시키고, 두번째 접속 대상 클라이언트는 2,5,8,11...번째 데이터 패킷들을 수신하도록 대응시키고, 세번째 접속 대상 클라이언트는 3,6,9.12...번째 데이터 패킷들을 수신하도록 대응시킬 수 있다.
또한, 이러한 균등 순차적인 대응 방법 이외에 기타 대응 방법을 사용할 수도 있는데, 예컨대 첫번째 접속 대상 클라이언트가 1,2,5,6,9,10..번째 데이터 패킷을 수신하도록 하고, 두번째 접속 대상 클라이언트가 3,7,11..번째 데이터 패킷을 수신하도록 하고, 세번째 접속 대상 클라이언트가 4,8,12..번째 데이터 패킷을 수신하도록 대응시키는 등의 여러가지 대응 방법을 사용할 수 있다. 즉, 관리 서버(20)는 컨텐츠 데이터를 구성하는 모든 데이터 패킷들이 접속 대상 클라이언트들 중 적어도 어느 하나에 대응시킬 수 있는 전송 규칙을 생성하면 된다. 물론, 관리 서버(20)는 이러한 전송 규칙 생성시에 앞서 살펴 본 바와 같이 대역폭, 클라이언트의 세션의 수 등 여러가지 상태를 참조하여 전송 규칙을 결정하는 것이 바람직할 것이다.
이러한 접속 대상 클라이언트 리스트 및 전송 규칙의 일예를 도 3 및 도 4에 나타내었다.
도 3 및 도 4를 참조하면, 접속 대상 클라이언트 리스트에는 2개의 클라이언트가 선택되었음을 알 수 있고 이들 각각의 접속 정보인 IP 주소가 함께 리스트에 포함되어 있다. 또한, 각각의 접속 대상 클라이언트에 대하여 전송 규칙도 함께 포함되어 있는데, 도 3의 경우에는 클라이언트 1에는 홀수번째 데이터 패킷이 대응되 어 있고 클라이언트 2에는 짝수번째 데이터 패킷이 순차적으로 번갈아 대응되어 있음을 알 수 있다. 도 4는 순차적으로 균등하게 대응되지 않은 경우로서, 클라이언트 1은 1,2,3,5,6,7,9,10,11번째 데이터 패킷이 대응되며 클라이언트 2는 4,8,12번째 데이터 패킷이 대응되어 있음을 알 수 있다.
도 3 및 도 4에서는 데이터 패킷이 12개로 구성된 경우로서, 각각 모든 데이터 패킷들을 나열하여 포함시켰으나, 전송 규칙이 예컨대 홀수번째 또는 짝수번째 등과 같이 일정한 규칙성을 띠는 경우라면 일일이 데이터 패킷들을 나열하지 않고 이러한 규칙만을 포함시킬 수도 있음은 물론이다.
한편, 도 5는 분할화되어 있는 컨텐츠 데이터의 구성을 나타낸 예시도로서, 도 5의 컨텐츠 데이터 전체(310)는 n개의 데이터 패킷들로 구성되어 있음을 알 수 있다.
컨텐츠 데이터(310)는 데이터의 일반 정보 등을 포함하는 헤더부(300)를 포함할 수 있으며, 헤더부(300)는 데이터 패킷의 개수, 각 데이터 패킷의 크기 등의 정보를 포함할 수 있다. 또한, 각각의 데이터 패킷들도 데이터 패킷마다의 패킷 헤더부(310)를 각각 포함할 수 있는데, 패킷 헤더부(310)는 각 데이터 패킷의 크기, 순번 등의 정보 등을 포함할 수 있다. 접속 요청 클라이언트(10)는 이러한 헤더부(300) 및 패킷 헤더부(310)를 체크함으로써 특정 데이터 패킷 및 컨텐츠 데이터 전체를 제대로 수신하였는가를 검증하는데 사용할 수 있다.
다시 도 2를 참조하면, 이와 같이 접속 대상 클라이언트 리스트의 선택(S110)과 전송 규칙의 결정(S120)이 완료되면, 관리 서버(20)는 접속 대상 클라이언트 리스트와 전송 규칙을 접속 요청 클라이언트(10)로 전송한다(S130).
접속 요청 클라이언트(10)는 접속 대상 클라이언트 리스트와 전송 규칙을 수신 및 확인하고, 접속 대상 클라이언트 리스트에 포함된 접속 대상 클라이언트들로 IP 주소 등의 접속 정보에 의거하여 접속하여 세션을 형성하여 전송 규칙에 따라 컨텐츠 데이터를 구성하는 데이터 패킷들을 각각의 접속 대상 클라이언트로 요청하여 각각의 접속 대상 클라이언트로부터 데이터 패킷들을 분산 수신한다(S140,S150).
각각의 접속 대상 클라이언트로부터 데이터 패킷들의 수신이 완료되면 수신된 데이터 패킷들을 조합하여(S160) 전체의 컨텐츠 데이터를 구성하여, 컨텐츠 데이터를 재생(S170)하는 등의 원하는 동작을 수행하게 된다. 여기에서 데이터 패킷을 조합(S160)하는 것은 앞서 도 5에서 살펴 본 바와 같은 헤더부 들의 정보를 사용함으로써 이루어질 수 있다.
데이터 패킷들을 조합(S160)하는 과정에서 소정 기간이 경과할 때까지 일부 데이터 패킷들이 정상적으로 수신되지 않은 경우에는 관리 서버(20)로 이러한 정보를 전송하고 관리 서버(20)는 재차 접속 대상 클라이언트 리스트와 전송 규칙을 선택 및 생성하여 접속 요청 클라이언트(10)로 전송함으로써 수신되지 않은 데이터 패킷들을 모두 수신할 때까지 단계(S110) 내지 단계(S160)를 반복 수행하도록 한다.
한편, 데이터 패킷들을 수신하는 동시에 재생하는 실시간 스트리밍(streaming) 서비스와 같은 경우에도, 앞서 설명한 바와 마찬가지로 접속 요청 클라이언트(10)에서의 조합 과정을 필요로 하는데, 스트리밍 서비스의 경우에는 각각의 데이터 패킷들이 재생되어야 하는 순서가 정해져 있으므로, 각각의 데이터 패킷 마다에 대하여 임계 시간 설정 및 관리를 보다 정교하게 수행해야 한다.
도 6은 이러한 과정을 설명하기 위한 것으로서, 각각의 데이터 패킷들은 컨텐츠 데이터를 구성하는 순서가 결정되어 있으므로 이러한 순서에 따라 임계 시간이 다르게 설정될 수 있다.
도 2에서의 단계(S140,S150)에서와 같이 세션이 형성되어 접속 대상 클라이언트들로부터 데이터 패킷들이 수신되는 동안 접속 요청 클라이언트는 수신되고 있는 데이터 패킷들을 체크 및 검증하여 스트리밍 서비스에 의해 재생 등의 동작을 수행할 수 있는 최소 단위의 맨 처음 데이터 패킷(들)이 수신되면 수신된 데이터 패킷을 재생한다. 여기에서, 스트리밍 서비스에 의해 재생 등의 동작을 수행하기 위한 최소 단위는 분할화된 데이터 패킷 각각의 크기와 다를 수 있으며, 각 데이터 패킷 하나의 크기가 스트리밍 서비스를 수행하기 위한 최소 단위의 크기보다 작은 경우에는 적어도 2 이상의 데이터 패킷이 수신되어야 한다. 스트리밍 서비스를 수행할 수 있는 최소 단위의 데이터 패킷(들)이 수신되면, 수신된 데이터 패킷을 재생하면서, 그 다음 단위의 데이터 패킷들에 대한 임계 시간을 결정하고 임계 시간 내에 데이터 패킷이 도착하는가를 검증하게 된다(S200).
예를 들면, 하나의 데이터 패킷이 스트리밍 서비스를 수행할 수 있는 최소 단위 이상이라고 가정하면, 첫번째 데이터 패킷이 수신되면 접속 요청 클라이언트(10)는 첫번째 데이터 패킷을 재생하면서, 첫번째 데이터 패킷의 재생 시간에 따라 두번째, 세번째, 네번째 ..등의 데이터 패킷이 도착해야 할 임계 시간을 설정하는데, 첫번째 데이터 패킷의 재생 시간이 30초인 경우, 두번째 데이터 패킷이 수신되어야 할 시간은 현 시점으로부터 15초로 설정하고, 15초 이내에 두번째 데이터 패킷이 수신되지 않는 경우 두번째 데이터 패킷을 전송하기로 결정되어 있던 접속 대상 클라이언트와의 접속을 해제하고, 관리 서버(20)로 이러한 정보를 보고하고 다른 접속 대상 클라이언트 리스트를 요청한다(S210).
관리 서버(20)는 이에 따라 접속 요청 클라이언트(10)가 접속해야 할 다른 접속 대상 클라이언트를 선택하고 필요한 경우 전송 규칙을 새로 결정하여 접속 요청 클라이언트(10)로 전송하고, 접속 요청 클라이언트(10)는 이에 따라 다른 접속 대상 클라이언트에 접속하여 데이터 패킷을 수신하게 된다(S220). 이러한 경우, 특정한 데이터 패킷이 임계 시간 내에 수신되지 않은 경우, 해당 데이터 패킷을 전송하기로 결정되어 있는 접속 대상 클라이언트에 대응하는 전송 규칙에 포함된 모든 데이터 패킷에 대해서도 새로운 접속 대상 클라이언트를 선택하는 것이 바람직하다. 예컨대, 2번째 데이터 패킷을 전송하기로 되어 있던 접속 대상 클라이언트가 짝수번째 데이터 패킷을 전송하기로 되어 있는 경우라면, 관리 서버(20)는 나머지 4,6,8...번째에 대한 데이터 패킷에 대해서도 새로운 접속 대상 클라이언트 및 전 송 규칙을 설정하고 이를 접속 요청 클라이언트(10)로 전송함으로써 접속 대상 클라이언트 리스트 및 전송 규칙을 업데이트하도록 한다. 물론, 이 경우 접속 대상 클라이언트가 새로 추가될 수 있으며 전송 규칙 또한 변동될 수도 있을 것이다.
도 7은 앞서 설명한 바와 같은 동작을 수행하는 관리 서버(20) 및 접속 요청 클라이언트(10)의 상세 구성을 나타낸 블록도이다.
도 7을 참조하면, 관리 서버(20)는 클라이언트와의 접속을 제어하는 접속 제어부(21), 관리 서버(20)에 접속되어 있는 모든 클라이언트의 정보를 관리하며 접속 요청 클라이언트(10)가 접속해야 할 접속 대상 클라이언트를 선택하고 이들의 접속 정보를 포함하는 접속 대상 클라이언트 리스트를 생성하는 클라이언트 리스트 관리부(22) 및 접속 요청 클라이언트(10)가 컨텐츠 데이터를 구성하는 각각의 분할화된 데이터 패킷들을 어떠한 접속 대상 클라이언트로부터 수신할 것인가에 대한 전송 규칙을 생성 및 관리하는 전송 규칙 결정부(23)를 포함한다.
한편, 관리 서버(20)는 그 자신이 접속 요청 클라이언트(10)가 요청한 컨텐츠 데이터를 전송하는 접속 대상 클라이언트가 될 수 있다. 접속 요청 클라이언트(10)가 요청한 컨텐츠 데이터를 가지고 있는 클라이언트가 없거나 앞서 설명한 접속 대상 클라이언트 선택 방법에서 적절한 클라이언트가 선택되지 않는 경우 등에는 자신의 접속 정보를 클라이언트 리스트에 포함시킴으로써 자신이 접속 대상 클라이언트로서 접속 요청 클라이언트로 컨텐츠 데이터 전체 또는 특정 데이터 패킷들을 전송하는 역할을 수행할 수 있으며 이를 위하여 데이터 송신/관리부(24)와 같은 구성을 더 포함할 수 있다.
한편, 접속 요청 클라이언트(10)는 관리 서버(20) 및 다른 클라이언트와의 접속을 제어하는 접속 제어부(11), 다른 클라이언트 또는 관리 서버(20)로부터 전송되어 오는 데이터 패킷들을 수신하는 데이터 수신부(12), 데이터 수신부(12)에서 수신되는 데이터 패킷들을 조합하는 데이터 조합부(13) 및 데이터 조합부(13)에서 정상적으로 수신되지 않은 데이터 패킷들(Lazy 데이터)을 확인하고 이들에 대한 정보를 생성하여 접속 제어부(11)를 통해 관리 서버(20)로 전송하는 등의 추후 처리를 수행하기 위한 레이지 데이터 처리부(14)를 포함할 수 있다. 또한, 도 7에는 명시적으로 나타내지는 않았지만 접속 요청 클라이언트(10)는 수신되는 데이터 패킷들을 재생하는 재생부를 포함할 수 있음은 물론이다.
도 7을 참조하여, 도 1 내지 도 6에서 설명한 바와 같은 동작을 간단히 설명하면 다음과 같다. 우선 접속 요청 클라이언트(10)는 접속 제어부(11)에 의해 관리 서버(20)의 접속 제어부(21)와 접속하여 특정 컨텐츠 데이터를 요청하고, 관리 서버(20)의 클라이언트 리스트 관리부(22) 및 전송규칙 결정부(23)는 요청된 컨텐츠 데이터에 따라 접속 요청 클라이언트(10)가 접속해야 할 접속 대상 클라이언트와 전송 규칙을 각각 결정하고 결정된 접속 대상 클라이언트의 접속 정보를 포함하는 리스트와 전송 규칙을 접속 요청 클라이언트(10)로 전송한다.
접속 요청 클라이언트(10)는 수신한 리스트 및 전송 규칙에 따라 접속 대상 클라이언트들과 세션을 형성하여 각각의 데이터 패킷들을 데이터 수신부(12)에서 수신하고 수신된 데이터를 데이터 조합부(13)에서 조합하며, 정상적으로 수신되지 못한 데이터가 있는 경우 레이지 데이터 처리부(14)가 이를 확인하고 해당 데이터들에 대한 정보를 생성하여 접속 제어부(11)를 통해 관리 서버(20)로 이러한 정보를 알려주고, 새롭게 접속 대상 클라이언트 리스트 및 전송 규칙을 수신하여 데이터 패킷들을 재차 수신하게 된다.
이상에서는 본 발명의 바람직한 실시예를 참조하여 설명하였으나 본 발명이 이러한 실시예에만 한정되는 것이 아니며, 첨부된 청구범위 및 도면을 포함하는 본 발명의 범위 내에서 여러 가지 수정 및 변형 실시가 가능함은 물론이다.
본 발명에 의하면, 클라이언트 및 서버 또는 다른 클라이언트간에 요청되는 데이터를 소정 기준에 따라 미리 분할화하고 분할된 각각의 데이터 패킷들을 복수의 클라이언트 또는 서버로부터 각각 분산 수신할 수 있도록 함으로써, 보다 신속하게 데이터를 전송할 수 있도록 하는 클라이언트간의 접속 제어 방법 및 시스템을 제공할 수 있다.
또한, 본 발명에 의하면, 클라이언트 및 서버 또는 다른 클라이언트간에 요청되는 데이터를 소정 기준에 따라 미리 분할화하고 분할된 각각의 데이터 패킷들을 복수의 클라이언트 또는 서버로부터 각각 분산 수신하는 동시에 재생할 수 있으며, 특정 클라이언트 또는 서버와의 접속에 문제가 발생하는 경우에도 안정적으로 데이터를 수신 및 재생할 수 있도록 하는 방법 및 시스템을 제공할 수 있다.

Claims (22)

  1. 적어도 하나 이상의 클라이언트와 연결된 관리 서버에서 클라이언트간의 접속을 제어하는 방법에 있어서,
    상기 관리 서버로 접속하여 특정 컨텐츠 데이터를 요청한 접속 요청 클라이언트에 대해, 각각의 클라이언트에 대하여 접속 대상 클라이언트로 설정될 때마다 그 값이 소정 값만큼 증가하도록 설정된 참조 계수가 소정 범위 내에 속하는 클라이언트를 상기 접속 요청 클라이언트가 접속해야 할 적어도 하나 이상의 접속 대상 클라이언트로 선택하는 단계-여기서, 상기 접속 대상 클라이언트는 상기 접속 요청 클라이언트가 요청한 컨텐츠 데이터를 가지고 있으며, 상기 컨텐츠 데이터는 소정 기준에 의해 분할화되어 있음-;
    상기 접속 요청 클라이언트가 상기 선택된 적어도 하나 이상의 접속 대상 클라이언트들로부터 상기 분할화된 컨텐츠 데이터를 수신할 전송 규칙을 결정하는 단계; 및
    상기 선택된 적어도 하나 이상의 접속 대상 클라이언트들에 대한 접속 정보를 포함하는 접속 대상 클라이언트 리스트와 상기 결정된 전송 규칙을 상기 접속 요청 클라이언트로 전송하는 단계
    를 포함하는 클라이언트간의 접속 제어 방법.
  2. 제1항에 있어서,
    상기 관리 서버로 접속하여 특정 컨텐츠 데이터를 요청한 접속 요청 클라이언트에 대해, 각각의 클라이언트에 대하여 접속 대상 클라이언트로 설정될 때마다 그 값이 소정 값만큼 증가하도록 설정된 참조 계수가 소정 범위 내에 속하는 클라이언트를 상기 접속 요청 클라이언트가 접속해야 할 적어도 하나 이상의 접속 대상 클라이언트로 선택하는 단계 이후에,
    공인 IP 주소를 갖는 클라이언트를 접속 대상 클라이언트로 선택하는 단계를 더 포함하는 것을 특징으로 하는 클라이언트간의 접속 제어 방법.
  3. 제1항에 있어서,
    상기 관리 서버로 접속하여 특정 컨텐츠 데이터를 요청한 접속 요청 클라이언트에 대해, 각각의 클라이언트에 대하여 접속 대상 클라이언트로 설정될 때마다 그 값이 소정 값만큼 증가하도록 설정된 참조 계수가 소정 범위 내에 속하는 클라이언트를 상기 접속 요청 클라이언트가 접속해야 할 적어도 하나 이상의 접속 대상 클라이언트로 선택하는 단계 이후에,
    IP 주소의 소정 길이의 상위 비트가 상기 접속 요청 클라이언트의 IP 주소의 소정 길이의 상위 비트와 동일한 클라이언트를 접속 대상 클라이언트로 선택하는 단계를 더 포함하는 것을 특징으로 하는 클라이언트간의 접속 제어 방법.
  4. 제1항에 있어서,
    상기 관리 서버로 접속하여 특정 컨텐츠 데이터를 요청한 접속 요청 클라이언트에 대해, 각각의 클라이언트에 대하여 접속 대상 클라이언트로 설정될 때마다 그 값이 소정 값만큼 증가하도록 설정된 참조 계수가 소정 범위 내에 속하는 클라이언트를 상기 접속 요청 클라이언트가 접속해야 할 적어도 하나 이상의 접속 대상 클라이언트로 선택하는 단계 이후에,
    대역폭이 소정 임계치 이상인 클라이언트를 접속 대상 클라이언트로 선택하는 단계를 더 포함하는 것을 특징으로 하는 클라이언트간의 접속 제어 방법.
  5. 삭제
  6. 제1항에 있어서,
    상기 각각의 클라이언트에 대한 참조 계수는, 마지막으로 참조된 이후 소정 기간동안 참조되지 않은 경우 그 값이 소정 값만큼 감소하도록 설정된 것을 특징으로 하는 클라이언트간의 접속 제어 방법.
  7. 제1항에 있어서,
    상기 관리 서버로 접속하여 특정 컨텐츠 데이터를 요청한 접속 요청 클라이언트에 대해, 각각의 클라이언트에 대하여 접속 대상 클라이언트로 설정될 때마다 그 값이 소정 값만큼 증가하도록 설정된 참조 계수가 소정 범위 내에 속하는 클라이언트를 상기 접속 요청 클라이언트가 접속해야 할 적어도 하나 이상의 접속 대상 클라이언트로 선택하는 단계는,
    상기 관리 서버를 접속 대상 클라이언트로 선택하는 것을 특징으로 하는 클라이언트간의 접속 제어 방법.
  8. 제1항에 있어서,
    상기 접속 요청 클라이언트가 상기 선택된 적어도 하나 이상의 접속 대상 클라이언트들로부터 상기 분할화된 컨텐츠 데이터를 수신할 전송 규칙을 결정하는 단계는,
    상기 전송 규칙은 상기 분할화된 컨텐츠 데이터를 구성하는 각각의 데이터 패킷들을 상기 리스트에 포함된 접속 대상 클라이언트들 중의 어느 하나에 대응시킨 것을 특징으로 하는 클라이언트간의 접속 제어 방법.
  9. 제8항에 있어서,
    상기 전송 규칙은 상기 분할화된 컨텐츠 데이터를 구성하는 각각의 데이터 패킷들을 순차적으로 상기 리스트에 포함된 접속 대상 클라이언트들에 대해 대응시킨 것을 특징으로 하는 클라이언트간의 접속 제어 방법.
  10. 제8항 또는 제9항에 있어서,
    상기 접속 요청 클라이언트는 상기 관리 서버로부터 수신한 리스트에 포함된 접속 정보에 의거하여 접속 대상 클라이언트들에 접속하여 상기 분할화된 컨텐츠 데이터의 각각의 데이터 패킷을 상기 전송 규칙에 따라 수신하는 것을 특징으로 하는 클라이언트간의 접속 제어 방법.
  11. 적어도 하나 이상의 클라이언트 및 관리 서버와 결합하는 클라이언트에서 컨텐츠 데이터를 수신하는 방법에 있어서,
    상기 관리 서버로 접속하여 특정 컨텐츠 데이터를 요청하는 단계;
    상기 관리 서버로부터 각각의 클라이언트에 대하여 접속 대상 클라이언트로 설정될 때마다 그 값이 소정 값만큼 증가하도록 설정된 참조 계수가 소정 범위 내에 속하는 접속 대상 클라이언트들의 접속 정보를 포함하는 접속 대상 클라이언트 리스트와 전송 규칙을 수신하는 단계-여기서, 상기 컨텐츠 데이터는 소정 기준에 의해 분할화되어 있으며, 상기 전송 규칙은 상기 분할화된 컨텐츠 데이터를 구성하는 각각의 데이터 패킷들을 상기 리스트에 포함된 접속 대상 클라이언트들 중의 어느 하나에 대응시킨 것임-;
    상기 리스트에 포함된 접속 정보에 의거하여 접속 대상 클라이언트들에 각각 접속하여 상기 접속 대상 클라이언트들 각각에 대하여 상기 전송 규칙에 따라 분할화된 컨텐츠 데이터를 구성하는 데이터 패킷들을 요청하는 단계; 및
    상기 접속 대상 클라이언트들 각각으로부터 상기 분할화된 컨텐츠 데이터를 구성하는 데이터 패킷들을 각각 수신하는 단계
    를 포함하는 컨텐츠 데이터 수신 방법.
  12. 제11항에 있어서,
    상기 전송 규칙은 상기 분할화된 컨텐츠 데이터를 구성하는 각각의 데이터 패킷들을 순차적으로 상기 리스트에 포함된 접속 대상 클라이언트들에 대해 대응시킨 것을 특징으로 하는 컨텐츠 데이터 수신 방법.
  13. 제11항에 있어서,
    상기 접속 대상 클라이언트들 각각으로부터 상기 분할화된 컨텐츠 데이터를 구성하는 데이터 패킷들을 각각 수신하는 단계 이후,
    상기 접속 대상 클라이언트들 각각으로부터 수신된 각각의 데이터 패킷들을 원래의 컨텐츠 데이터로 조합하는 단계를 더 포함하는 것을 특징으로 하는 컨텐츠 데이터 수신 방법.
  14. 적어도 하나 이상의 클라이언트 및 관리 서버와 결합하는 클라이언트에서 컨텐츠 데이터를 수신하여 실시간으로 재생하는 방법에 있어서,
    상기 관리 서버로 접속하여 특정 컨텐츠 데이터를 요청하는 단계;
    상기 관리 서버로부터 각각의 클라이언트에 대하여 접속 대상 클라이언트로 설정될 때마다 그 값이 소정 값만큼 증가하도록 설정된 참조 계수가 소정 범위 내에 속하는 접속 대상 클라이언트들의 접속 정보를 포함하는 접속 대상 클라이언트 리스트와 전송 규칙을 수신하는 단계-여기서, 상기 컨텐츠 데이터는 소정 기준에 의해 분할화되어 있으며, 상기 전송 규칙은 상기 분할화된 컨텐츠 데이터를 구성하는 각각의 데이터 패킷들을 상기 리스트에 포함된 접속 대상 클라이언트들 중의 어느 하나에 대응시킨 것임-;
    상기 리스트에 포함된 접속 정보에 의거하여 접속 대상 클라이언트들에 각각 접속하여 상기 접속 대상 클라이언트들 각각에 대하여 상기 전송 규칙에 따라 분할화된 컨텐츠 데이터를 구성하는 데이터 패킷들을 요청하는 단계; 및
    상기 접속 대상 클라이언트들 각각으로부터 상기 분할화된 컨텐츠 데이터를 구성하는 데이터 패킷들을 각각 수신하면서, 상기 수신되는 데이터 패킷들을 원래의 컨텐츠 데이터의 순서에 따라 재생하는 단계
    를 포함하는 컨텐츠 데이터 수신 및 재생 방법.
  15. 제14항에 있어서,
    상기 접속 대상 클라이언트들 각각으로부터 상기 분할화된 컨텐츠 데이터를 구성하는 데이터 패킷들을 각각 수신하면서, 상기 수신되는 데이터 패킷들을 원래의 컨텐츠 데이터의 순서에 따라 재생하는 단계는,
    상기 접속 대상 클라이언트들 각각으로부터 수신하는 데이터 패킷들 각각에 대하여 원래의 컨텐츠 데이터의 순서에 따라 재생할 경우에 예측되는 수신 임계 시간을 설정하고, 상기 수신 임계 시간 내에 접속 대상 클라이언트로부터 데이터 패킷들이 수신되지 않는 경우 상기 접속 대상 클라이언트와의 접속을 해제하고 상기 관리 서버로 접속하여 상기 접속이 해제된 접속 대상 클라이언트에 대응하는 데이터 패킷들을 전송할 수 있는 다른 접속 대상 클라이언트의 접속 정보를 요청하여 다른 접속 대상 클라이언트의 정보를 수신하고, 상기 접속 정보에 의거하여 다른 접속 대상 클라이언트에 접속하여 상기 접속이 해제된 접속 대상 클라이언트에 대응하는 데이터 패킷들을 요청하여 수신하면서 수신되는 데이터 패킷들을 원래의 컨텐츠 데이터의 순서에 따라 재생하는 것을 특징으로 하는 컨텐츠 데이터 수신 및 재생 방법.
  16. 적어도 하나 이상의 클라이언트와 연결되어 클라이언트간의 접속을 제어하는 접속 제어 시스템에 있어서,
    접속되어 있는 클라이언트들을 관리하며, 특정 컨텐츠 데이터를 요청한 접속 요청 클라이언트에 대해 각각의 클라이언트에 대하여 접속 대상 클라이언트로 설정될 때마다 그 값이 소정 값만큼 증가하도록 설정된 참조 계수가 소정 범위 내에 속하는 클라이언트를 상기 접속 요청 클라이언트가 접속해야 할 적어도 하나 이상의 접속 대상 클라이언트를 선택하는 클라이언트 리스트 관리부-여기서, 상기 접속 대상 클라이언트는 상기 접속 요청 클라이언트가 요청한 컨텐츠 데이터를 가지고 있으며, 상기 컨텐츠 데이터는 소정 기준에 의해 분할화되어 있음-;
    상기 접속 요청 클라이언트가 상기 선택된 적어도 하나 이상의 접속 대상 클라이언트들로부터 상기 분할화된 컨텐츠 데이터를 수신할 전송 규칙을 결정하는 전송 규칙 결정부; 및
    클라이언트와의 접속을 제어하며, 상기 선택된 적어도 하나 이상의 접속 대상 클라이언트들에 대한 접속 정보를 포함하는 접속 대상 클라이언트 리스트와 상기 결정된 전송 규칙을 상기 접속 요청 클라이언트로 전송하는 접속 제어부
    를 포함하는 클라이언트간의 접속 제어 시스템.
  17. 제16항에 있어서,
    상기 전송 규칙 결정부는, 상기 분할화된 컨텐츠 데이터를 구성하는 각각의 데이터 패킷들을 순차적으로 상기 리스트에 포함된 접속 대상 클라이언트들에 대해 대응시킴으로써 전송 규칙을 결정하는 것을 특징으로 하는 클라이언트간의 접속 제어 시스템.
  18. 제16항 또는 제17항에 있어서,
    상기 접속 요청 클라이언트는 상기 수신한 리스트에 포함된 접속 정보에 의거하여 접속 대상 클라이언트들에 접속하여 상기 분할화된 컨텐츠 데이터의 각각의 데이터 패킷을 상기 전송 규칙에 따라 수신하는 것을 특징으로 하는 클라이언트간 의 접속 제어 시스템.
  19. 적어도 하나 이상의 클라이언트 및 관리 서버와 결합하여 컨텐츠 데이터를 수신 및 재생하는 클라이언트에 있어서,
    관리 서버로 소정 기준에 의해 미리 분할화되어 있는 특정 컨텐츠 데이터를 요청하여, 관리 서버로부터 각각의 클라이언트에 대하여 접속 대상 클라이언트로 설정될 때마다 그 값이 소정 값만큼 증가하도록 설정된 참조 계수가 소정 범위 내에 속하는 접속해야 할 접속 대상 클라이언트 리스트와 상기 분할화된 컨텐츠 데이터를 구성하는 각각의 데이터 패킷들을 상기 리스트에 포함된 접속 대상 클라이언트들 중의 어느 하나에 대응시킨 전송 규칙을 수신하고, 상기 리스트에 포함된 접속 대상 클라이언트들에 각각 접속하여 상기 접속 대상 클라이언트들 각각에 대하여 상기 전송 규칙에 따라 분할화된 컨텐츠 데이터를 구성하는 데이터 패킷들을 요청하는 접속 제어부;
    상기 접속 대상 클라이언트들 각각으로부터 수신되는 데이터 패킷들을 수신하는 데이터 수신부;
    상기 데이터 수신부에 의해 수신된 데이터 패킷들을 조합하는 데이터 조합부;
    상기 데이터 수신부에 의해 수신되는 데이터 패킷들을 원래의 컨텐츠 데이터의 순서에 따라 재생하는 데이터 재생부; 및
    상기 접속 대상 클라이언트로부터 정상적으로 수신되지 않는 데이터 패킷인 레이지 데이터를 검증하고 레이지 데이터에 대한 정보를 접속 요청부를 통해 관리 서버로 전송하도록 하는 레이지 데이터 처리부
    를 포함하는 컨텐츠 데이터를 수신 및 재생하는 클라이언트.
  20. 제19항에 있어서,
    상기 레이지 데이터 처리부는 상기 접속 대상 클라이언트들 각각으로부터 수신하는 데이터 패킷들 각각에 대하여 원래의 컨텐츠 데이터의 순서에 따라 재생할 경우에 예측되는 수신 임계 시간을 설정하고, 상기 수신 임계 시간 내에 접속 대상 클라이언트로부터 데이터 패킷들이 수신되지 않는 경우 상기 접속 대상 클라이언트와의 접속을 해제함으로써 레이지 데이터를 검증하는 것을 특징으로 하는 컨텐츠 데이터를 수신 및 재생하는 클라이언트.
  21. 제20항에 있어서,
    상기 접속 제어부는 상기 관리 서버로 접속하여 상기 접속이 해제된 접속 대상 클라이언트에 대응하는 데이터 패킷들을 전송할 수 있는 다른 접속 대상 클라이언트의 접속 정보를 요청하여 다른 접속 대상 클라이언트의 정보를 수신하고, 상기 접속 정보에 의거하여 다른 접속 대상 클라이언트에 접속하여 상기 접속이 해제된 접속 대상 클라이언트에 대응하는 데이터 패킷들을 요청하는 것을 특징으로 하는 컨텐츠 데이터를 수신 및 재생하는 클라이언트.
  22. 제21항에 있어서,
    상기 데이터 수신부는 상기 요청된 데이터 패킷들을 수신하고, 상기 데이터 재생부는 상기 수신되는 데이터 패킷들을 원래의 컨텐츠 데이터의 순서에 따라 재생하는 것을 특징으로 하는 컨텐츠 데이터를 수신 및 재생하는 클라이언트.
KR1020060077987A 2006-08-18 2006-08-18 분할화된 데이터를 이용한 클라이언트/서버 간의 접속 제어방법 및 시스템 및 이를 이용한 데이터 수신/재생 방법 및시스템 KR100804075B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020060077987A KR100804075B1 (ko) 2006-08-18 2006-08-18 분할화된 데이터를 이용한 클라이언트/서버 간의 접속 제어방법 및 시스템 및 이를 이용한 데이터 수신/재생 방법 및시스템
PCT/KR2007/003902 WO2008020708A1 (en) 2006-08-18 2007-08-14 Method and system for controlling connection between client and server using fragmented data and for receiving/playing data using the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020060077987A KR100804075B1 (ko) 2006-08-18 2006-08-18 분할화된 데이터를 이용한 클라이언트/서버 간의 접속 제어방법 및 시스템 및 이를 이용한 데이터 수신/재생 방법 및시스템

Publications (1)

Publication Number Publication Date
KR100804075B1 true KR100804075B1 (ko) 2008-02-18

Family

ID=39082213

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060077987A KR100804075B1 (ko) 2006-08-18 2006-08-18 분할화된 데이터를 이용한 클라이언트/서버 간의 접속 제어방법 및 시스템 및 이를 이용한 데이터 수신/재생 방법 및시스템

Country Status (2)

Country Link
KR (1) KR100804075B1 (ko)
WO (1) WO2008020708A1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101050155B1 (ko) 2009-11-10 2011-07-19 한국인터넷진흥원 데이터 분산 저장 관리 시스템 및 분산 저장 관리 방법
KR101187506B1 (ko) 2008-10-24 2012-10-02 에스케이플래닛 주식회사 Cpns 환경에서 대용량 콘텐츠의 제공 방법과 이를 위한시스템, cpns 서버 및 이동통신 단말기

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050002456A (ko) * 2003-06-30 2005-01-07 주식회사 나우콤 피투피 데이터 통신을 위한 최적 노드 검색 장치 및 방법,그리고 이 방법을 실행하는 프로그램을 기록한 컴퓨터로읽을 수 있는 기록매체
KR20060050381A (ko) * 2004-09-03 2006-05-19 마이크로소프트 코포레이션 확장가능한 미디어의 분산형 스트리밍을 위한 시스템 및방법

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20030047042A (ko) * 2001-12-07 2003-06-18 삼성전자주식회사 복수개의 통신 단말기들을 이용한 데이터 분할 송수신시스템 및 그 방법
JP4587042B2 (ja) * 2003-09-30 2010-11-24 ソニー株式会社 コンテンツ取得方法、コンテンツ取得装置、コンテンツ取得プログラム及びコンテンツ取得システム
KR20060057563A (ko) * 2006-05-08 2006-05-26 서필정 클라이언트와 서버 간 데이터를 분할 전송 및 처리하는시스템 및 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20050002456A (ko) * 2003-06-30 2005-01-07 주식회사 나우콤 피투피 데이터 통신을 위한 최적 노드 검색 장치 및 방법,그리고 이 방법을 실행하는 프로그램을 기록한 컴퓨터로읽을 수 있는 기록매체
KR20060050381A (ko) * 2004-09-03 2006-05-19 마이크로소프트 코포레이션 확장가능한 미디어의 분산형 스트리밍을 위한 시스템 및방법

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101187506B1 (ko) 2008-10-24 2012-10-02 에스케이플래닛 주식회사 Cpns 환경에서 대용량 콘텐츠의 제공 방법과 이를 위한시스템, cpns 서버 및 이동통신 단말기
KR101050155B1 (ko) 2009-11-10 2011-07-19 한국인터넷진흥원 데이터 분산 저장 관리 시스템 및 분산 저장 관리 방법

Also Published As

Publication number Publication date
WO2008020708A1 (en) 2008-02-21

Similar Documents

Publication Publication Date Title
WO2017088381A1 (zh) 一种直播视频的播放方法、装置及系统
WO2017088384A1 (zh) 一种直播视频的上传方法、装置及系统
KR100715674B1 (ko) 부하 분산 방법 및 장치, 그리고 이를 이용한 소프트웨어스트리밍 시스템
US8165122B2 (en) System and method for converting unicast client requests into multicast client requests
US10237580B2 (en) Method and system for broadcasting multimedia data
KR102110421B1 (ko) 클라이언트 장치에 시청각 컨텐츠를 전달하는 시스템 및 방법
JP5563979B2 (ja) 相互接続ネットワークにおけるデータフローのための帯域巾予約
US8566395B2 (en) Method and apparatus for transmitting hypertext transfer protocol media
US9300733B2 (en) System and/or method for client-driven server load distribution
US20090172157A1 (en) Method and Device for Content Transmission on P2P Network
EP3247121B1 (en) Streaming media data transmission method, client and server
US20140115124A1 (en) Method, Apparatus and System for Downloading File in Content Delivery Network
CN108199925A (zh) 一种数据发送方法、接收方法及装置
JP2006513676A (ja) ストリーミング・データの送信及びダウンロード方法
US9736236B2 (en) System and method for managing buffering in peer-to-peer (P2P) based streaming service and system for distributing application for processing buffering in client
WO2023005701A1 (zh) 数据通信方法及装置、电子设备、存储介质
JP5724139B2 (ja) セッション数によりp2pのツリー構造を形成するp2p方式のインターネットライブ放送サービスシステム及び方法
KR100804075B1 (ko) 분할화된 데이터를 이용한 클라이언트/서버 간의 접속 제어방법 및 시스템 및 이를 이용한 데이터 수신/재생 방법 및시스템
JP2001156838A (ja) 通信リソース予約方法及び装置並びに通信リソース予約プログラムを記録した記録媒体
US9386056B1 (en) System, method and computer readable medium for providing media stream fragments
KR101051710B1 (ko) 복수의 세션 설정 방법 및 이를 이용하는 노드
US10893234B2 (en) System and method of dynamic playback variation for multimedia communication
KR102390522B1 (ko) 적응형 비디오 스트리밍 서비스를 위한 블록체인 기반의 안정적인 체감품질 가속기
US11622158B2 (en) Adaptive bit rate data casting
CN106792216A (zh) 分布式文件系统中流媒体读取方法及服务器

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
G170 Re-publication after modification of scope of protection [patent]
FPAY Annual fee payment

Payment date: 20130325

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20140210

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20150225

Year of fee payment: 8

LAPS Lapse due to unpaid annual fee