KR101535085B1 - 피투피 통신 제어 방법 및 장치 - Google Patents

피투피 통신 제어 방법 및 장치 Download PDF

Info

Publication number
KR101535085B1
KR101535085B1 KR1020140028257A KR20140028257A KR101535085B1 KR 101535085 B1 KR101535085 B1 KR 101535085B1 KR 1020140028257 A KR1020140028257 A KR 1020140028257A KR 20140028257 A KR20140028257 A KR 20140028257A KR 101535085 B1 KR101535085 B1 KR 101535085B1
Authority
KR
South Korea
Prior art keywords
peer
message
client
communication
client device
Prior art date
Application number
KR1020140028257A
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 KR1020140028257A priority Critical patent/KR101535085B1/ko
Application granted granted Critical
Publication of KR101535085B1 publication Critical patent/KR101535085B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

본 발명은 피투피 통신에 있어서, 안정적으로 파일 조각을 전송할 수 있는 최적의 피어 리스트를 선별하여 제공하기 위한 피투피 통신 제어 방법 및 장치에 관한 것으로서, 피투피 통신을 수행하는 피어들을 관리하는 피어 관리 장치와 클라이언트 장치 간에 교환되는 메시지를 가로채어, 피어 관리 장치에서 제공하는 피어 리스트를 수정하여 클라이언트 장치로 제공하는데 있어서, 피어 관리 장치가 클라이언트 장치를 피어로서 인식할 수 있도록, 피투피 통신 제어 장치가 상기 메시지를 변경하여 제공하도록 구현된다.

Description

피투피 통신 제어 방법 및 장치{PtoP communication control method and apparatus}
본 발명은 피어 투 피어 통신에 기반하여 특정 파일을 분산 전송하는 피투피 통신 기술에 관한 것으로서, 더욱 상세하게는 피투피 통신을 수행하는 피어들을 관리하는 피어 관리 장치와 클라이언트 장치 간에 교환되는 메시지를 가로채어, 피어 관리 장치에서 제공하는 피어 리스트를 수정하여 클라이언트 장치로 제공하는데 있어서, 피어 관리 장치가 클라이언트 장치를 피어로서 인식할 수 있도록 하는 피투피 통신 제어 방법 및 장치에 관한 것이다.
파일 전송 방식은 크게 서버-클라이언트 방식과, 피투피(Peer to Peer) 방식으로 구분될 수 있다.
이 중 서버-클라이언트 방식은, 파일을 저장하고 송신하는 측과 파일을 수신하여 이용하는 측이 서버와 클라이언트로 나누어져, 파일을 전송 받고자 하는 클라이언트들은 모두 서버에 접속하여 상기 서버로부터 원하는 파일을 전송 받아야 한다. 따라서, 다수의 클라이언트들이 서버에 동시에 접속하는 경우, 서버 및 네트워크에서 병목 현상이 발생할 수 있다.
반면, 피투피 방식은, 다수의 사용자 장치들이 클라이언트 역할과 서버 역할을 동시에 수행하여 서로간에 파일을 송수신하는 것으로서, 서버 및 네트워크에서의 병목 문제를 해결할 수 있다. 피투피 통신에 있어서, 클라이언트 및 서버 역할을 선택적으로 수행하는 동등한 계층의 사용자 장치들을 피어(Peer)라 한다.
그러나, 기존의 피투피 통신에서는, 피투피 통신에 참여하는 모든 사용자 장치들의 자원을 공유하기 때문에, 참여하는 사용자 장치의 수가 증가할 수 록 통신망에서의 트래픽 용량이 증가하며, 사용자 장치 측의 시스템 부하를 유발할 수 있으며, 사용자 장치의 사양에 따라서 전송 속도가 달라진다는 문제점이 있다.
이에, 파일을 원래의 크기보다 작은 조각으로 나누어 다수의 피어에 분산 저장하고, 상기 다수 피어를 통해 병렬적으로 상기 파일을 전송하도록 하는 피투피 기반의 파일 분산 전송 기술이 등장하였으며, 그 대표적인 기술로서, 비트토렌트(BitTorrent)를 들 수 있다.
이러한 피투피 기반의 파일 분산 전송을 위해서는, 파일의 적어도 일부를 공유하는 피어들의 정보를 관리하는 별도의 피어 관리 서버(비트토렌트의 Tracker에 해당됨)가 필요하며, 파일을 전송 받기를 원하는 클라이언트는 상기 피어 관리 서버에 접속하여, 전송 받고자 하는 파일을 공유하는 피어 리스트를 수신하고, 수신한 피어 리스트에 포함된 다수의 피어들과 각각 세션을 형성하여, 상기 파일의 다수 조각들을 병렬로 수신하여야 한다.
그런데 상기 피어 관리 서버는 클라이언트 요청에 따라서 특정 파일을 공유하는 피어 리스트를 제공하는데 있어서, 클라이언트의 통신 환경에 대한 고려 없이 상기 특정 파일을 공유하는 다수의 피어들 중 기 설정된 수(예를 들어, 50개)의 피어를 무작위로 선정하여 제공하기 때문에, 통신 사업자의 입장에서 IX(Internet eXchange) 연동망의 트래픽이 불필요하게 증가하고, IX 연동 포인트의 트래픽 엔지니어링에 어려움이 발생할 수 있다.
한국등록특허 제10-0565168호, 2006년 03월 22일 등록 (명칭: 피투피 데이터 통신을 위한 최적 노드 검색 장치 및 방법, 그리고 이 방법을 실행하는 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체)
본 발명은 피투피 통신을 수행하는 피어들을 관리하는 피어 관리 장치와 클라이언트 장치 간에 교환되는 메시지를 가로채어, 피어 관리 장치에서 제공하는 피어 리스트를 수정하여 클라이언트 장치로 제공하는데 있어서, 피어 관리 장치가 클라이언트 장치를 피어로서 인식할 수 있도록 하는 피투피 통신 제어 방법 및 장치를 제공하고자 한다.
본 발명은 상술한 과제의 해결 수단으로서, 피투피 통신 제어 장치가, 통신망을 통해서 클라이언트 장치로부터 피어 관리 장치로 전송되는 메시지를 수신하는 단계; 상기 수신된 메시지에 대응하여, 피투피 통신 제어 장치로부터 상기 피어 관리 장치로 전송되는 메시지를 생성하는 단계; 상기 피어 관리 장치가 상기 클라이언트 장치를 피어로서 인식할 수 있도록 상기 메시지를 변경하는 단계; 및 변경된 메시지를 상기 피어 관리 장치로 전송하는 단계를 포함하는 것을 특징으로 하는 피투피 통신 제어 방법을 제공한다.
본 발명에 따른 피투피 통신 제어 방법에 있어서, 상기 메시지는, 피어 리스트 요청 메시지, 킵 얼라이브 메시지 중 하나 이상을 포함하는 피투피 통신 프로토콜에서 정의된 메시지를 의미한다.
또한, 본 발명에 따른 피투피 통신 제어 방법에 있어서, 제1항에 있어서, 상기 메시지를 변경하는 단계는, 상기 메시지의 출발지 주소 정보를 상기 클라이언트 장치의 주소 정보로 변경하거나, 상기 클라이언트 장치의 주소 정보를 HTTP 헤더 필드 중 X-Forwarded-For 필드에 기록하거나, 상기 생성된 메시지에 포함되는 피투피 통신 프로토콜에 따른 파라미터 중, 피어 IP 정보에 상기 클라이언트 장치의 주소 정보를 기록함에 의해 이루어질 수 있다.
또한, 본 발명에 따른 피투피 통신 제어 방법은, 상기 메시지가 피어 리스트 요청 메시지인 경우, 상기 변경된 메시지를 피어 관리 장치로 전송한 후, 상기 피어 관리 장치로부터 특정 공유 파일을 공유하는 피어 리스트를 포함하는 응답 메시지를 수신하는 단계; 상기 클라이언트 장치의 통신 환경에 따라서 수신한 피어 리스트를 변경하는 단계; 변경된 피어 리스트를 포함하는 응답 메시지를 상기 클라이언트 장치로 전송하는 단계를 더 포함할 수 있다.
더하여, 본 발명은 통신망을 통해서 클라이언트 장치와 피어 관리 장치 간에 교환되는 메시지를 수신하는 패킷 수신부; 상기 패킷 수신부를 통해 클라이언트 장치로부터 피어 관리 장치로 전송되는 메시지가 수신되면, 수신된 메시지에 대응하여 피투피 통신 제어 장치로부터 상기 피어 관리 장치로 전송되는 메시지를 생성하되, 상기 클라이언트 장치를 피어로서 인식할 수 있도록 상기 메시지를 변경하는 제어부; 및 상기 제어부에서 변경된 메시지를 상기 피어 관리 장치로 전송하는 패킷 송신부를 포함하는 피투피 통신 제어 장치를 제공한다.
본 발명에 따른 피투피 통신 제어 장치에 있어서, 상기 제어부는, 상기 피어 관리 장치가 상기 클라이언트 장치를 피어로서 인식할 수 있도록 하기 위하여, 상기 생성된 메시지의 출발지 주소 정보를 상기 클라이언트 장치의 주소 정보로 변경하거나, 상기 클라이언트 장치의 주소 정보를 상기 메시지의 HTTP 헤더 필드 중 X-Forwarded-For 필드 또는 상기 메시지에 포함되는 피투피 통신 프로토콜의 파라미터 중 피어 IP 정보에 기록할 수 있다.
더하여, 상기 피투피 통신 제어 장치에 있어서, 상기 제어부는 상기 메시지가 피어 리스트 요청 메시지인 경우, 상기 변경된 메시지를 피어 관리 장치로 전송한 후, 상기 패킷 수신부를 통해서 상기 피어 관리 장치로부터 전송된 피어 리스트를 포함하는 응답 메시지를 수신하면, 상기 클라이언트 장치의 통신 환경에 따라서 수신한 피어 리스트를 변경하여, 상기 패킷 송신부를 통해 변경된 피어 리스트를 포함하는 응답 메시지를 상기 클라이언트 장치로 전송시킬 수 있다.
본 발명은 피투피 통신에 있어서, 클라이언트 장치를 대신하여 피어 관리 장치로부터 피어 리스트를 획득한 후, 획득한 피어 리스트를 상기 클라이언트 장치의 통신 환경에 맞추어 수정하여 클라이언트 장치로 제공하는데 있어서, 피어 관리 장치가 클라이언트 장치를 정상적으로 인식하여 피투피 통신에 참여하는 피어들을 관리할 수 있도록 한다.
그 결과, 본 발명은 피투피 통신에 참여하는 피어들을 관리하는 피어 관리 장치의 기능을 방해하지 않으면서, 클라이언트 장치와 피어 관리 장치 간에 교환되는 메시지를 가로채어, 피어 관리 장치에서 클라이언트 장치로 제공되는 피어 리스트를 변경할 수 있도록 하며, 이를 통해서 피투피 통신 서비스 제공자가 아닌 통신망 사업자 또는 다른 제3의 사업자가 자신의 정책 혹은 클라이언트 장치의 통신 환경에 따라서 피투피 트래픽을 적절히 제어할 수 있도록 한다.
도 1은 피투피 통신 시스템의 개략적인 구조를 나타낸 블럭도이다.
도 2는 본 발명의 일 실시 예에 따른 피투피 통신 시스템의 상세 구조를 나타낸 블럭도이다.
도 3은 본 발명의 일 실시 예에 따른 피투피 통신 제어 방법을 나타낸 메시지 흐름도이다.
도 4는 본 발명의 일 실시 예에 따른 피투피 통신 제어 장치의 구성을 나타낸 블럭도이다.
도 5는 본 발명의 일 실시 예에 따른 피투피 통신 제어 장치의 동작을 설명하기 위한 순서도이다.
이하 본 발명의 바람직한 실시 예를 첨부한 도면을 참조하여 상세히 설명한다. 다만, 하기의 설명 및 첨부된 도면에서 본 발명의 요지를 흐릴 수 있는 공지 기능 또는 구성에 대한 상세한 설명은 생략한다. 또한, 도면 전체에 걸쳐 동일한 구성 요소들은 가능한 한 동일한 도면 부호로 나타내고 있음에 유의하여야 한다.
이하에서 설명되는 본 명세서 및 청구범위에 사용된 용어나 단어는 통상적이거나 사전적인 의미로 한정해서 해석되어서는 아니 되며, 발명자는 그 자신의 발명을 가장 최선의 방법으로 설명하기 위한 용어의 개념으로 적절하게 정의할 수 있다는 원칙에 입각하여 본 발명의 기술적 사상에 부합하는 의미와 개념으로 해석되어야만 한다. 따라서 본 명세서에 기재된 실시 예와 도면에 도시된 구성은 본 발명의 가장 바람직한 일 실시 예에 불과할 뿐이고, 본 발명의 기술적 사상을 모두 대변하는 것은 아니므로, 본 출원시점에 있어서 이들을 대체할 수 있는 다양한 균등물과 변형 예들이 있을 수 있음을 이해하여야 한다.
더하여, 어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급할 경우, 이는 논리적 또는 물리적으로 연결되거나, 접속될 수 있음을 의미한다. 다시 말해, 구성요소가 다른 구성요소에 직접적으로 연결되거나 접속되어 있을 수 있지만, 중간에 다른 구성요소가 존재할 수도 있으며, 간접적으로 연결되거나 접속될 수도 있다고 이해되어야 할 것이다.
또한, 본 명세서에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 또한, 본 명세서에서 기술되는 "포함 한다" 또는 "가지다" 등의 용어는 명세서상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
본 발명은 피투피 통신 중, 파일의 원래의 크기보다 작은 다수의 조각으로 분할하여 다수의 피어에 분산 저장하고, 임의의 클라이언트 장치가 상기 파일의 적어도 일부를 저장하고 있는 다수의 피어로부터 상기 파일의 조각들을 병렬로 전송 받는 피투피 통신에 적용될 수 있다.
도 1은 피투피 통신 시스템의 기본 구성을 설명하기 위한 블럭도이다.
도 1을 참조하면, 피투피 통신 시스템은, 통신망(10)을 통해 상호 연결되는 다수의 클라이언트 장치(100)와, 검색 장치(200)와, 피어 관리 장치(300)를 포함하여 이루어진다. 여기서, 통신망(10)은 임의의 사용자가 접근 가능한 통신망으로서, 케이블 망 및 광 통신망을 포함하는 유선 통신망뿐만 아니라, Wi-Fi 망, 이동통신망, Wibro 망 등의 무선 망 등 현재 이용되고 있거나 향후 이용 가능한 하나 이상의 통신망으로 이루어질 수 있다. 아울러, 상기 통신망(10)은 서로 다른 통신 사업자에 의해 제공되는 하나 이상의 통신망이 연동하여 이루어질 수 있다.
상기 클라이언트 장치(100)는 피투피 통신에 참여하여 파일을 공유하는 사용자 장치를 의미한다. 여기서, 파일 공유는 파일의 생성, 파일 중 적어도 일부 조각의 저장 및 저장된 파일 조각의 전송을 통해서 이루어질 수 있으며, 상기 클라이언트 장치(100)는 특정 파일에 대한 생성, 저장 및 전송 중 적어도 하나를 수행함으로써 피투피 통신에 참여하여 파일을 공유할 수 있다. 이러한 클라이언트 장치(100)는 통신 기능을 갖는 임의의 사용자 장치(예를 들어, 스마트 폰, 태블릿 PC, 데스크톱 PC, 노트북 PC 등)에 피투피 통신 프로토콜(예를 들어, BitTorrent)에 따라서 동작하는 클라이언트 프로그램을 설치함에 의해 구현될 수 있다.
다음으로, 검색 장치(200)는 피투피 통신을 통해서 공유되는 파일(이하, 공유 파일이라 함)에 대한 정보(이하, 공유 파일 정보라 함)를 제공하는 서버 장치로서, 예를 들어, 다수의 공유 파일 정보를 저장하고, 소정의 키워드(콘텐트 명, 파일명 등)에 대응하는 하나 이상의 공유 파일 목록 및 공유 파일 정보를 검색하여 제공하고, 이 중 선택된 공유 파일에 대한 공유 파일 정보를 검색하여 제공할 수 있다. 이러한 검색 장치(200)는 적어도 하나의 공유 파일 정보를 제공하는 서버 장치라면 어떠한 장치라도 될 수 있으며, 예를 들어, 인터넷 포털 사이트, 피투피 통신을 통해 공유하는 콘텐트를 교환하는 커뮤니티 사이트, 웹 서핑 등을 지원하는 서버 장치가 될 수 있다. 여기서, 상기 검색 장치(200)를 통해 제공되는 공유 파일 정보는, 공유 파일을 전송 받는데 필요한 정보를 포함하는 메타 데이터로서, 공유 파일의 고유 식별값(예를 들어, 고유 해쉬값), 상기 공유 파일의 피어 정보를 관리하는 피어 관리 장치(300)의 주소 정보(예를 들어, URL), 공유 파일의 디렉토리 정보, 공유 파일의 생성일자, 생성자, 공유 파일의 조각 크기, 공유하나 이상의 파일에 대한 파일명 중에서 하나 이상을 포함할 수 있다. 여기서, 공유 파일의 고유 식별값은, 공유 파일이 저장되는 디렉토리 정보, 공유 파일의 조각 크기, 파일명 등 공유 파일 정보에 포함된 정보 중 하나 이상의 정보를 기 설정된 해쉬 알고리즘에 따라서 해쉬 연산하여 생성될 수 있다. 이러한 공유 파일 정보는 피투피 통신 프로토콜에 정의된 바에 따를 수 있다.
마지막으로, 피어 관리 장치(300)는 피투피 통신에서 공유되는 파일의 적어도 일부를 저장하고 있는 피어에 대한 정보를 관리하는 서버 장치이다. 여기서, 상기 파일을 공유하는 피어들은, 공유 파일의 전부를 저장하고 있는 시더(seeder)와, 공유 파일의 원래 크기보다 작은 일부 조각을 저장하고 있는 리처(Leecher)를 모두 포함할 수 있으며, 상기 시더는 최초 공유 파일을 제공하는 피어뿐만 아니라, 다른 피어들로부터 공유 파일의 전부를 다운로드 받은 피어까지 포함하는 개념이다. 이러한 피어는, 상기 클라이언트 장치(100) 중 어느 하나에 해당될 수 있다.
상술한 바와 같이 구성을 기반으로 한, 피투피 통신 과정은 다음과 같은 수순으로 이루어질 수 있다.
먼저, 공유 파일 정보는 피투피 통신을 통해서 파일을 공유하고자 하는 임의의 사용자에 의해 생성되어 통신망(10)에 연결된 임의의 검색 장치(200)에 등록될 수 있다.
상기와 같이 공유 파일 정보가 검색 장치(200)에 등록된 상태에서, 상기 공유 파일을 다운로드 받기를 원하는 사용자는 임의의 클라이언트 장치(예를 들어, 100-1)를 통해서 상기 검색 장치(200)에 접속하여 소정의 검색 과정을 통해 원하는 공유 파일에 대한 공유 파일 정보를 수신할 수 있다(S105, S110 단계).
그리고 상기 클라이언트 장치(100-1)는 상기 공유 파일 정보, 구체적으로 공유 파일의 고유 식별 값과, 피어를 관리하는 피어 관리 장치의 URL 정보를 이용하여 상기 피어 관리 장치(300)에 접속하여, 해당 공유 파일에 대한 피어 리스트를 요청한다(S115 단계). 여기서, 피어, 즉, 클라이언트 장치들(100)과 피어 관리 장치(300)는 HTTP(HyperText Transfer Protocol) 프로토콜을 이용하여 통신할 수 있다. 즉, 상기 피어 리스트의 요청은, HTTP GET 메시지를 통해 이루어질 수 있다. 또한, 상기 클라이언트 장치들(100)과 피어 관리 장치(300)는 TCP(Transmission Control Protocol 또는 UDP(User Datagram Protocol)와 같은 전송 프로토콜을 기반으로 통신할 수 있다.
상기 피어 관리 장치(300)는 공유 파일의 식별값을 기준으로, 특정 파일을 공유하는 피어들, 즉, 상기 공유 파일을 전송하거나 수신하는 중인 피어들을 관리하면서, 상기 클라이언트 장치(100-1)로부터의 요청에 따라서, 상기 공유 파일을 공유하는 피어 중 기 설정된 수의 피어들을 선별하여 피어 리스트를 생성하고, 상기 피어 리스트를 상기 클라이언트 장치(100-1)로 제공한다(S120 단계). 상기 피어 리스트는 예를 들어 HTTP RESPONSE 메시지를 통해 전송될 수 있다. 아울러, 이렇게 피어 리스트를 제공받은 클라이언트 장치(100-1)도 일정 량의 파일 조각을 저장하게 되면, 해당 공유 파일을 공유하는 피어로서 상기 피어 관리 장치(300)에 추가 등록되어 관리될 수 있다.
그리고 상기 클라이언트 장치(100-1)는 다른 클라이언트 장치(100-2~100-n) 중 상기 피어 관리 장치(300)로부터 전송 받은 피어 리스트에 포함된 하나 이상의 피어들과 피투피 통신을 수행하여 해당 공유 파일의 조각들을 병렬로 수신한다(S125 단계). 구체적으로, 상기 클라이언트 장치(100-1)는 다른 클라이언트 장치(100-2~100-n) 중에서 피어 리스트에 대응하는 클라이언트로 상기 공유 파일의 식별값을 전송하여 파일 조각을 요청하고, 이에 따라 하나 이상의 다른 클라이언트 장치(100-2~100-n)로부터 공유 파일의 파일 조각들을 병렬로 수신한다.
상술한 과정을 통해서 다른 클라이언트 장치(100-2~100-n)로부터 하나 이상의 파일 조각을 보유하게 된 상기 클라이언트 장치(100-1)는 리처(Leecher)로서 상기 피어 관리 장치(300)에 등록되어, 동일한 공유 파일을 요청하는 다른 클라이언트 장치로 보유한 파일 조각을 전송할 수 있게 된다. 이때, 다른 클라이언트 장치는, 상기 피어 관리 장치(300)로부터 수신한 피어 리스트에 포함되지 않은 클라이언트 장치가 될 수 도 있고, 상기 피어 관리 장치(300)로부터 수신한 피어 리스트에 포함되지만, 상기 클라이언트 장치(100-1)가 보유한 파일 조각을 갖고 있지 않은 클라이언트 장치가 될 수 도 있다.
그리고, 상기 클라이언트 장치(100-1)은 상술한 과정을 통해서 공유 파일의 모든 파일 조각을 보유하게 되면, 상기 피어 관리 장치(300)에 시더(seeder)로 등록되어 관리된다.
상술한 바와 같이, 피투피 통신가 수행되는데 있어서, 상기 피어 관리 장치(300)로부터 제공되는 피어 리스트에 포함되는 다수의 피어들은 임의의 선별되거나, 다운로드 시점, IP(Internet Protocol) 등을 기준으로 선별될 수 있으며, 기 설정된 수 혹은 클라이언트 장치(100-1)에서 요청한 수로 선별될 수 있다.
이렇게 상기 피어 관리 장치(300)에서 제공되는 피어 리스트는, 피투피 통신 제공자에 의해 선별되는 것으로서, 실제 클라이언트 장치(100) 간에 피투피 통신이 이루어지는 통신망(10)의 상황이나, 통신 사업자의 요구를 만족시키기는 어려울 수 있다.
이에 본 발명은, 상술한 피투피 통신 시스템에 있어서, 클라이언트 장치(100-1)가 피투피 통신을 통해 공유 파일을 교환할 피어들을 상기 피투피 통신 시스템의 변경 없이, 제 3의 사업자(예를 들어 통신 사업자)가 적절하게 선정하여 제공할 수 있도록 한다.
이를 위하여 본 발명에 따른 피투피 통신 시스템은, 도 2에 도시된 바와 같이, 통신망(10)에 연결된 피투피 통신 제어 장치(400)를 더 포함한다.
상기 피투피 통신 제어 장치(400)는 상기 통신망(10)을 통해서 전송되는 피투피 통신을 위한 메시지를 모니터링하여, 클라이언트 장치(100)로부터 상기 피어 관리 장치(300)로 전송되는 피어 리스트 요청 메시지를 수신하고, 상기 클라이언트 장치(100)를 대신하여 피어 관리 장치(300)로부터 특정 공유 파일과 관련된 피어 리스트를 수신한다. 아울러, 상기 피투피 통신 제어 장치(400)는 상기 피어 관리 장치(300)로부터 수신한 피어 리스트를 기 설정된 정책 정보를 기반으로 상기 클라이언트 장치(100)의 통신 환경에 따라서 수정하여 상기 클라이언트 장치(100)로 제공한다.
상술한 과정에서, 클라이언트 장치(100)로부터 피어 관리 장치(300)를 향해 전송된 메시지들은, 경로가 변경되어, 피어 관리 장치(300)로 전달되지 않고, 피투피 통신 제어 장치(400)로 전달되는데, 이때, 피어 관리 장치(300)는 클라이언트 장치들(100)을 피어로서 인식하지 못할 수 있다.
이러한 문제를 해결하고, 피어 관리 장치(300)가 실제 피투피 통신에 참여하는 클라이언트 장치(100)들을 피어로서 인식할 수 있도록 하기 위하여, 본 발명에 따른 피투피 통신 제어 장치(400)에서 클라이언트 장치(100)로부터 피어 관리 장치(200)로 전송되는 메시지를 수신한 후, 상기 클라이언트 장치(100)를 대신하여 피어 관리 장치(200)로 메시지를 전송할 때, 상기 피어 관리 장치(300)가 상기 클라이언트 장치(100)를 피어로서 인식하도록 상기 메시지를 변경한 후에 상기 피어 관리 장치(300)로 전송한다. 이때, 피투피 통신 제어 장치(400)에 의하여 변경되어 전송되는 메시지는, 피어 리스트 요청 메시지나 킵 얼라이브 메시지와 같이 피투피 통신 프로토콜에서 정의된 메시지일 수 있다.
이에 의하면, 상기 메시지를 수신한 피어 관리 장치(300)는 상기 메시지를 분석함으로써, 클라이언트 장치(100)를 인식하여 피어로서 관리하면서, 실제 피어 리스트를 포함하는 응답 메시지는 상기 피투피 통신 제어 장치(400)로 전송하게 된다.
이하, 본 발명에 따른 피투피 통신 제어 방법을 도 3을 참조하여 더 구체적으로 설명한다.
도 3은 본 발명의 일 실시 예에 따른 피투피 통신 제어 방법을 나타낸 메시지 흐름도이다.
먼저, 클라이언트 장치(100-1)가 검색 장치(200)를 통해서 획득한 공유 파일 정보를 이용하여, 피어 관리 장치(200)로 피어 리스트 요청 메시지를 전송한다(S205 단계). 더 구체적으로, 클라이언트 장치(100-1)은 상기 공유 파일 정보로부터 공유 파일의 고유 식별 값과, 피어를 관리하는 피어 관리 장치의 주소 정보를 추출하고, 이를 통해 상기 피어 관리 장치(300)로 전송될 피어 리스트 요청 메시지를 생성하고, 생성한 피어 리스트 요청 메시지를 통신망(10)으로 전송한다.
이때, 상기 통신망(10)에 연결된 피투피 통신 제어 장치(300)는, 통신망(10)을 통해 전송되는 패킷을 모니터링하여, 클라이언트 장치(100)로부터 피어 관리 장치(300)로 전송되는 메시지들을 수집한다. 이때, 클라이언트 장치(100)로부터 피어 관리 장치(300)로 전송되는 메시지는 피어 관리 장치(300)의 주소 정보를 기반으로 필터링되어 인식될 수 있다. 예를 들어, 통신망(10)에 연결된 임의의 라우터 장치를 통해서, 전송되는 패킷 중에서 목적지 주소가 상기 피어 관리 장치(300)의 주소 정보와 일치하는 패킷을, 상기 클라이언트 장치(100)로부터 피어 관리 장치(300)로 전송되는 메시지로 인식하여 필터링할 수 있다.
따라서, 상기 S205 단계를 통해서 전송된 피어 리스트 요청 메시지는 상술한 과정을 통해 원래의 목적지인 피어 관리 장치(200)가 아닌 피투피 통신 제어 장치(300)가 수신하게 된다.
이렇게, 피어 리스트 요청 메시지를 수신한 피투피 통신 제어 장치(300)는 상기 수신한 피어 리스트 요청 메시지에 대응하여, 자신이 피어 관리 장치(300)로 전송할 피어 리스트 요청 메시지를 생성하되, 상기 피어 관리 장치(300)가 상기 클라이언트 장치(100-1)를 피어로서 인식할 수 있도록 상기 생성한 메시지를 변경한다(S210 단계). 여기서, 메시지 변경은 다양한 방법으로 이루어질 수 있으며, 이에 대해서는 추후 더 구체적으로 설명한다.
그리고, 피투피 통신 제어 장치(300)는 상기 변경된 피어 리스트 요청 메시지를 피어 관리 장치(200)로 전송한다(S215 단계).
상기 피어 관리 장치(200)는, 공유 파일의 식별값을 기준으로, 상기 공유 파일을 공유하는 피어들, 즉, 상기 공유 파일을 전송하거나 수신하는 중인 피어들을 관리하면서, 상기 클라이언트 장치(100)로부터의 요청에 따라서, 상기 공유 파일을 공유하는 피어 중 기 설정된 수의 피어들을 선별하여 피어 리스트를 생성하고, 상기 피어 리스트를 상기 클라이언트 장치(100)로 제공하는 장치이다.
따라서, 상기 피어 관리 장치(200)는 피어 리스트 요청 메시지를 수신하면, 수신한 피어 리스트 요청 메시지로부터 요청된 공유 파일의 식별값을 추출하고, 이를 이용하여 해당 파일을 공유하는 피어들 중 선별하여 피어 리스트를 생성하여(S220 단계), 생성된 피어 리스트를 피투피 통신 제어 장치(300)로 전송한다(S225 단계). 이때, 상기 피어 리스트를 포함하는 응답 메시지의 목적지는 피투피 통신 제어 장치(300)가 되지만, 상기 피어 관리 장치(200)는 피어 리스트 요청 메시지의 출발지 주소를 피어의 주소로 인식하는 것이 아니라, 상기 피어 리스트 요청 메시지의 헤더 혹은 바디에 포함된 클라이언트 장치(100-1)의 주소 정보를 이용하여, 상기 클라이언트 장치(100-1)를 피어로서 인식하여 관리할 수 있다.
그리고, 상기 피어 관리 장치(200)로부터 피어 리스트를 포함하는 응답을 수신한 피투피 통신 제어 장치(400)는, 수신한 피어 리스트를 기 설정된 정책 정보를 기준으로 클라이언트 장치(100-1)의 통신 환경에 따라서 변경한다(S230 단계).
여기서, 기 설정된 정책 정보는 피투피 통신 제어 장치(400)를 운용하는 사업자, 예를 들어, 통신 사업자에 의해서 설정된 피투피 트래픽 운용 정책이 될 수 있다. 또한, S230 단계에서 상기 피투피 통신 제어 장치(400)는, 상기 클라이언트 장치(100-1)의 통신 환경을 확인하여, 상기 피어 리스트 중 상기 클라이언트 장치(100-1)와는 다른 통신 사업자의 통신망에 위치한 피어를 제거할 수 있다. 또한, 상기 피투피 통신 제어 장치(400)는 상기 클라이언트 장치(100-1)의 라우팅 정보를 수집하고, 수집한 라우팅 정보를 기반으로 동일 사업자 망의 피어, 혹은 동일 사업자 망의 근접 피어 만이 포함되도록 상기 피어 리스트를 수정할 수 있다. 여기서, 동일 사업자망 또는 근접 여부는 예를 들어, BGP(Border Gateway Protocol)와 같은 라우팅 프로토콜에서 정의된 라우팅 정보 중, AS(Autonomous System) 정보 및 Community 정보를 참조하여 판단할 수 있다. 참고로, 상기 AS 정보는 하나의 네트워크 관리자에 의해 관리되는 라우터 그룹을 의미하는 것으로서, 예를 들어, 통신 사업자별로 부여될 수 있으며, 상기 Community 정보는 상기 AS에 속하는 라우터 그룹을 소정 그룹으로 그룹화한 정보로서, 예를 들어, 동일 사업자망 내에서 지역별로 설정될 수 있다.
이어서 상기 피투피 통신 제어 장치(400)는, 변경된 피어 리스트를 상기 피어 관리 장치(300)를 대신하여 클라이언트 장치(100-1)로 전송한다(S235 단계). 이때, 피투피 통신 제어 장치(400)는 상기 피어 리스트를 포함하는 응답 메시지를 IP 스푸핑을 통해서 상기 피어 관리 장치(300)가 전송한 것처럼 위장하여 전송할 수 있다.
상술한 과정을 통해 피어 리스트를 획득한 클라이언트 장치(100-1)는 다른 클라이언트 장치(100-2~100-n) 중 상기 피어 관리 장치(300)로부터 전송 받은 피어 리스트에 포함된 하나 이상의 클라이언트 장치들(100-n)과 피투피 통신을 수행하여 해당 공유 파일의 조각들을 병렬로 수신할 수 있다(S240 단계).
아울러, 상기 클라이언트 장치(100-1)는 피투피 통신을 수행하는 동안, 자신이 피투피 통신에 참여하고 있음을 알리기 위하여, 주기적으로 피어 관리 장치(300)에 킵 얼라이브(Keep Alive) 메시지를 전송한다(S245 단계). 상기 킵 얼라이브 메시지도 클라이언트 장치(100-1)의 주소를 출발지 주소로 하고, 피어 관리 장치(300)의 주소를 목적지로 주소로 갖는 메시지이므로, 통신망(10)의 라우팅 장치(도시생략)에 의해 경로가 변경되거나 우회되어, 피어 관리 장치(300)로 전달되지 못하고, 피투피 통신 제어 장치(400)로 전달된다.
이렇게 킵 얼라이브 메시지를 수신한, 상기 피투피 통신 제어 장치(400)는 앞서의 피어 리스트 요청 메시지와 마찬가지로, 실제 킵 얼라이브 메시지를 전송한 클라이언트 장치(100-1)를 피어로서 인식하되, 상기 킵 얼라이브 메시지에 대한 응답을 피투피 통신 제어 장치(400)로 전송하도록 변경한다(S250 단계).
아울러, 상기 피투피 통신 제어 장치(400)는, S225 단계 내지 S230 단계에서 처리되는 피어 리스트를 피어 리스트 DB에 저장하여 관리할 수 있는데, 이때, 수신한 킵 얼라이브 메시지를 참고하여 앞서 저장된 피어 리스트 DB를 갱신할 수 있다. 구체적으로, 상기 피투피 통신 제어 장치(400)는 수신한 킵 얼라이브 메시지의 출발지 주소를 참조하여, 상기 킵 얼라이브 메시지를 송신한 클라이언트 장치(100-1)를 식별하고, 피어 리스트 DB에 등록된 피어 정보 중, 식별한 클라이언트 장치(100-1)에 대응하는 피 할당된 피어 리스트를 활성화 상태로 유지시킨다. 반면, 일정 시간 이상 킵 얼라이브 메시지가 전송되지 않으면, 해당 클라이언트 장치(100-1)를 상기 피어 리스트에서 삭제할 수 있다.
그리고, 피투피 통신 제어 장치(400)는 변경된 킵 얼라이브 메시지를 피어 관리 장치(300)로 전송한다(S260 단계).
상기와 같이 변경된 킵 얼라이브 메시지를 수신한 피어 관리 장치(300)는 수신한 킵 얼라이브 메시지를 이용하여 피어 관리를 수행한다(S260). 구체적으로, 피어 관리 장치(300)는 킵 얼라이브 메시지를 분석하여, 실제 킵 얼라이브 메시지를 전송한 클라이언트 장치(100-1)의 주소 정보를 추출할 수 있으며, 추출한 주소 정보를 피어의 주소 정보로 인식하여, 피어를 구분하고, 그 상태를 등록할 수 있다.
아울러, 피투피 통신 제어 장치(400)는 클라이언트 장치(100)와 피어 관리 장치(300) 간에 전송되는 킵 얼라이브 메시지를 확인하여, 자체적인 피어 관리를 수행할 수 있다.
상술한 피투피 통신 제어에 있어서, 본 발명에 따른 피투피 통신 제어 장치(400)의 상세 구성 및 동작을 도 4 및 도 5를 참조하여 더 구체적으로 설명한다.
여기서, 도 4는 본 발명의 일 실시 예에 따른 피투피 통신 제어 장치의 구성을 나타낸 블럭도이고, 도 5는 본 발명의 일 실시 예에 따른 피투피 통신 제어 장치의 동작을 설명하기 위한 순서도이다.
먼저, 도 4를 참조하면, 본 발명에 따른 피투피 통신 제어 장치(400)는, 패킷 수신부(410)와, 제어부(420)와, 패킷 송신부(430)와, 저장부(440)를 포함하여 이루어질 수 있다.
상기 패킷 수신부(410)는 통신망(10)을 통해 전송되는 패킷을 수신하기 위한 구성이다. 구체적으로 상기 패킷 수신부(410)는 상기 통신망(10)에 구비된 임의의 스위칭 장치 또는 라우팅 장치와 연동하여, 클라이언트 장치(100)와 피어 관리 장치(300) 간에 교환되는 메시지를 수신한다. 상기 메시지는 예를 들어, 피어 리스트 요청 메시지, 피어 리스트를 포함하는 응답 메시지, 킵 얼라이브 메시지 등이 될 수 있다.
이때, 상기 패킷 수신부(410)는, 하나 이상의 피어 관리 장치(300)의 주소 정보를 기반으로 클라이언트 장치(100)와 피어 관리 장치(300) 간에 전송되는 메시지들을 우회시켜 수신할 수 있다. 여기서, 상기 클라이언트 장치(100)와 피어 관리 장치(300) 간에 전송되는 메시지의 우회는, 싱크홀 라우팅 혹은 미러링 방식으로 이루어질 수 있다. 더 구체적으로는, 상기 통신망(10)의 스위칭 장치 또는 라우팅 장치를 통해서, 출발지 주소 혹은 목적지 주소가 상기 피어 관리 장치(300)의 주소와 일치하는 메시지를 선별하여 수신할 수 있다. 아울러, 상기 패킷 수신부(410)는 수신된 메시지의 출발지 주소 또는 목적지 주소가 상기 피어 관리 장치(300)의 주소와 일치하는 지를 확인하여, 일치하지 않는 메시지는 바이패스 시키거나, 통신망(10)으로 다시 리턴시킴으로써, 원래의 목적지로 전송되도록 할 수 있다.
다음으로, 제어부(420)는, 상기 패킷 수신부(310)를 통해 클라이언트 장치(100)로부터 피어 관리 장치(300)로 전송되는 메시지가 수신되면, 상기 수신한 메시지에 대응하여 피어 관리 장치(300)로 전송할 메시지를 생성하되, 상기 피어 관리 장치(300)가 상기 클라이언트 장치(100)를 피어로서 인식할 수 있도록, 상기 메시지를 변경시킨 후, 패킷 송신부(430)를 통해 전송한다. 여기서, 상기 메시지는 피어 리스트 요청 메시지, 킵 얼라이브 메시지 중 어느 하나 일 수 있다.
특히, 상기 제어부(420)는 상기 패킷 수신부(410)를 통해서 클라이언트 장치(100)로부터 피어 관리 장치(300)로 전송되는 피어 리스트 요청 메시지가 수신되면, 상기 클라이언트 장치(100)를 대신하여, 상기 피어 관리 장치(300)로 변경된 피어 리스트 요청 메시지를 전송한 후, 상기 피어 관리 장치(300)로부터 피어 리스트를 포함하는 응답 메시지를 수신할 수 있다. 그리고, 이렇게 응답 메시지가 수신되면, 상기 제어부(420)는, 상기 수신된 피어 리스트를 상기 클라이언트 장치(100)의 통신 환경에 따라서 수정하여 상기 클라이언트 장치(100)로 제공할 수 있다. 더하여, 상기 제어부(420)는, 피어 리스트의 수정을 위하여, 통신망(10)으로부터 상기 클라이언트 장치(100)의 라우팅 정보를 수집하고, 상기 수집한 라우팅 정보에 기재된 통신 환경에 따라서 상기 피어 리스트를 수정할 수 있다.
상기 패킷 송신부(430)는 피투피 통신 제어 장치(400)가 클라이언트 장치(100) 또는 피어 관리 장치(300)로 메시지를 송신하기 위한 구성으로서, 상기 제어부(420)에 의해 변경된 메시지를 상기 피어 관리 장치(300)로 전송하고, 또한, 제어부(420)에 의해 변경된 피어 리스트를 포함하는 응답 메시지를 상기 클라이언트 장치(100)로 전송할 수 있다.
마지막으로, 상기 저장부(440)는 피투피 통신 제어 장치(400)의 동작을 위해 필요한 데이터를 저장하는 구성으로서, 상기 제어부(420)에서 처리되는 동안, 상기 수신한 메시지 및 피어 관리 장치(300)로부터 수신한 피어 리스트를 일시적으로 저장할 수 있다. 또한, 상기 저장부(430)는 상기 제어부(420)에서 수집한 클라이언트 장치(100)의 라우팅 정보를 저장할 수 있다.
특히, 저장부(440)는 피어 관리 장치(300)로부터 수신된 피어 리스트들을 저장하는 피어 리스트 DB(441)를 포함할 수 있다. 상기 피어 리스트 DB(441)은 공유 파일의 식별 값 및 클라이언트 장치(100)의 식별 정보 중 하나 이상을 이용하여 인덱싱 될 수 있다.
이때, 제어부(420)는 상기 패킷 수신부(410)를 통해 클라이언트 장치(100)로부터 피어 관리 장치(300)로 전송되는 킵 얼라이브 메시지가 수신되면, 수집한 킵 얼라이브 메시지를 이용하여 상기 피어 리스트 DB(441)를 갱신할 수 있다. 구체적으로, 상기 제어부(420)는 수집한 킵 얼라이브 메시지의 출발지 주소를 참조하여, 상기 킵 얼라이브 메시지를 송신한 클라이언트 장치(100)를 식별하고, 식별한 클라이언트 장치(100)에 대응하는 정보를 유지시키거나, 일정 시간 이상 킵 얼라이브 메시지가 전송되지 않은 클라이언트 장치(100)의 피어 정보를 삭제할 수 있다.
더하여, 상기 제어부(420)는 상기 피어 리스트 DB(441)를 이용하여 클라이언트 장치(100)로 피어 리스트를 제공할 수 있다. 구체적으로, 제어부(420)는 클라이언트 장치(100)로부터 피어 리스트 요청 메시지가 수신되면, 상기 피어 리스트 DB(441)에 해당 공유 파일의 피어 리스트가 저장되어 있는 지를 확인하여, 저장되어 있는 경우, 상기 저장부(430)에 저장된 피어 리스트 DB(441)를 기반으로, 상기 클라이언트 장치(100)가 요청한 공유 파일을 공유하는 피어들을 추출하여 피어 리스트를 생성하고, 생성한 피어 리스트를 상기 클라이언트 장치(100)로 제공할 수도 있다.
아울러, 상기 저장부(440)는 피투피 기반 파일 분산 전송 시스템을 운용하는 사업자가 아닌, 피투피 통신 제어 장치(400)를 운용하는 제 3의 사업자(예를 들어, 통신 사업자)에 의해 설정된 피어 선정을 위한 정책 정보(442)를 더 저장할 수 있으며, 상기 제어부(420)는 상기 정책 정보(442)에 따라서 피어 리스트를 수정할 수 있다. 상기 정책 정보(442)는 예를 들어, 다수의 타 통신 사업자간의 피어 선정 우선순위나, 통신망(10) 내에서의 피어 선정 기준을 포함할 수 있다. 또한, 상기 정책 정보(442)는, 클라이언트 장치(100)가 접속 가능한 최소 접속 피어 수 및 최대 접속 피어 수, 클라이언트 장치(100-1)와 피어 간의 홉(hop) 수 혹은 RTT 기준값(예를 들어, 최소 값 혹은 최대값)을 포함할 수 있다. 제어부(420)는, 이러한 정책 정보(442)를 기반으로 클라이언트 장치(100)별로 접속하는 최소 접속 피어 수나 최대 접속 피어 수를 제한하거나, 클라이언트 장치(100)와의 사이에 정책으로 설정된 홉 수 또는 RTT 를 갖는 피어만을 선별하는 등의 피어 리스트 수정을 수행할 수 있다.
이어서, 상술한 바와 같이 구성된 피투피 통신 제어 장치(400)의 동작을 도 5의 순서도를 참조하여 설명한다.
먼저, 피투피 통신 제어 장치(400)는, 패킷 수신부(410)를 통해서 클라이언트 장치(100)로부터 피어 관리 장치(300)로 전송되는 메시지를 수신한다(S305 단계). 이는 통신망(10)에 구비된 스위칭 장치 또는 라우팅 장치와의 연동을 통해서 상기 피어 관리 장치(300)의 주소를 목적지 주소로 갖는 패킷을 피투피 통신 제어 장치(400)로 우회시킴에 의해 이루어질 수 있으며, 상기 우회된 메시지는 피어 관리 장치(300)로 전달되지 않는다.
이렇게 클라이언트 장치(100)로부터 피어 관리 장치(300)로 전송되는 메시지가 수신되면, 상기 피투피 통신 제어 장치(400)는 제어부(420)를 통해서 상기 수신된 메시지에 대응하여, 피투피 통신 제어 장치(400)에서 피어 관리 장치(300)로 전송되는 메시지를 생성한다(S310 단계). 이는 상기 피투피 통신 제어 장치(400)가 클라이언트 장치(100)를 대신하여 피어 관리 장치(300)로 상기 메시지를 전송하기 위한 과정으로서, 피투피 통신 제어 장치(400)는 상기 수신한 메시지로부터 공유 파일의 식별값, 피어 관리 장치(300)의 주소 정보를 포함하는 피투피 통신을 위한 정보들을 추출하고, 상기 추출된 정보를 포함하여 상기 피어 관리 장치(300)로 전송할 메시지를 생성하는 것이다.
이어서, 상기 피투피 통신 제어 장치(400)는, 상기 피어 관리 장치(300)가 상기 클라이언트 장치(100)를 인식할 수 있도록 상기 생성한 메시지를 변경한다(S315 단계). 구체적으로, 상기 S315 단계는, IP 스푸핑을 통해서 상기 생성한 메시지의 출발지 주소 정보를 상기 클라이언트 장치(100)의 주소 정보로 변경함에 의해 이루어질 수 있다. 또한, 상기 S315 단계는, 상기 생성한 메시지의 헤더 혹은 바디에 상기 클라이언트 장치(100)의 주소 정보를 포함시키는 형태로 이루어질 수 있다. 참고로, 피어 관리 장치(300)와의 통신은, HTTP 및 TCP/UDP를 기반으로 이루어질 수 있다. 즉, 상기 변경되는 메시지는 HTTP 및 TCP/UDP 기반의 메시지가 된다. 이러한 메시지 구조에서, 상기 클라이언트 장치(100)의 주소 정보는, HTTP 헤더 필드 중 X-Forwarded-For 필드에 기록하거나, 상기 생성된 메시지의 바디(Body)에 포함되는 피어 IP 정보에 기록할 수 있다. 여기서, X-Forwarded-For는 HTTP 헤더 필드 중 하나로서, HTTP 프록시 서버 또는 부하 분산 장치(로드 밸런서)를 통해 웹 서버에 연결하는 클라이언트의 소스 IP 주소를 특정하기 위하여 IETF에서 제안된 필드이다. 상기 X-Forwarded-For 필드는 'X-Forwarded-For: client1, proxy1, proxy2, ...'의 형태로 정의될 수 있으며, 이중 Client1에 클라이언트 장치(100)의 주소 정보를 기록함으로써, 해당 메시지를 전송하는 클라이언트 장치(100)를 피어 관리 장치(300)가 인식할 수 있도록 한다.
또한, 상기 메시지는 피투피 통신 프로토콜에 정의된 메시지로서, infor_hash, Peer_id, port, ip 등의 정보를 포함하게 되는데, 이중에서, 피어 IP 주소를 정의하는 ip값으로 상기 클라이언트 장치(100)의 주소 정보를 기록함으로써, 피어 관리 장치(300)가 클라이언트 장치(100)의 주소를 인식하도록 할 수 있다. 참고로, 상기 infor_hash는 공유 파일의 식별값이며, Peer_id는 피투피 통신을 수행하는 피어에 부여되는 식별 정보로서, 상기 피투피 통신 제어 장치(400)의 피어 식별 정보가 기재될 수 있으며, port는 해당 메시지에서 사용되는 클라이언트의 TCP/UDP 포트 번호이다. 상기 메시지는 피투피 통신 프로토콜의 규격에 따라서 이러한 정보 이외에 다른 정보들을 더 포함할 수 있으며, 이러한 피투피 통신 프로토콜은 널리 알려져 있으므로, 그 상세한 설명은 생략하기로 한다.
이어서, 상기 피투피 통신 제어 장치(400)는 패킷 송신부(430)를 통해서 제어부(420)에서 변경된 메시지를 클라이언트 장치(100)을 대신하여 피어 관리 장치(300)로 전송한다(S320 단계).
이상의 과정을 통해서 피어 관리 장치(300)는 피투피 통신 제어 장치(400)를 통해서 피투피 통신과 관련된 메시지들, 예를 들어, 피어 리스트 요청 메시지나 킵 얼라이브 메시지를 수신하되, 변경된 메시지를 분석함으로써, 피투피 통신 제어 장치(400)가 아닌 클라이언트 장치(100)를 피어로서 인식하고, 관리할 수 있다.
아울러, 도 5에는 도시되지 않았으나, 상기 메시지가 피어 리스트 요청 메시지인 경우, 피투피 통신 제어 장치(400)는, 상기 변경된 메시지를 피어 관리 장치(300)로 전송한 후, 상기 피어 관리 장치(300)로부터 특정 공유 파일을 공유하는 피어 리스트를 포함하는 응답 메시지를 패킷 수신부(410)로 수신하고, 수신된 피어 리스트를 상기 클라이언트 장치(100)의 통신 환경에 따라서 수정한 후, 상기 클라이언트 장치(100)로 제공할 수 있다.
참고로, IP 스푸핑을 통해서 메시지를 변경한 경우, 상기 응답 메시지의 목적지 주소는 클라이언트 장치(100)의 주소가 될 수 있다. 따라서, 이 경우, 상기 패킷 수신부(410)는 앞서 피어 리스트 요청 메시지의 수신 시와 마찬가지로, 통신망(10)에 구비된 스위칭 장치 또는 라우팅 장치를 통해서, 출발지 주소가 피어 관리 장치(300)의 주소와 일치하거나, 출발지 주소가 피어 관리 장치(300)의 주소이면서 목적지 주소가 상기 클라이언트 장치(100) 인 메시지를 우회시켜 수신할 수 있다. 반대로, 클라이언트 장치(100)의 주소 정보를 메시지의 헤더 혹은 메시지 바디에 기록한 경우에, 상기 응답 메시지의 목적지 주소는 피투피 통신 제어 장치(400)가 되므로, 피투피 통신 제어 장치(400)의 별다른 처리 없이 상기 응답 메시지를 수신할 수 있다.
이상에서 설명한 본 발명의 피투피 통신 제어 방법은 다양한 컴퓨터 수단을 통하여 판독 가능한 프로그램 형태로 구현되어 컴퓨터로 판독 가능한 기록매체에 기록될 수 있다. 여기서, 본 발명에 따른 피투피 기반 파일 전송 제어 방법을 실행하는 컴퓨터 프로그램(프로그램, 소프트웨어, 소프트웨어 어플리케이션, 스크립트 혹은 코드로도 알려져 있음)은 컴파일 되거나 해석된 언어나 선험적 혹은 절차적 언어를 포함하는 프로그래밍 언어의 어떠한 형태로도 작성될 수 있으며, 독립형 프로그램이나 모듈, 컴포넌트, 서브루틴 혹은 컴퓨터 환경에서 사용하기에 적합한 다른 유닛을 포함하여 어떠한 형태로도 전개될 수 있다. 컴퓨터 프로그램은 파일 시스템의 파일에 반드시 대응하는 것은 아니다. 프로그램은 요청된 프로그램에 제공되는 단일 파일 내에, 혹은 다중의 상호 작용하는 파일(예컨대, 하나 이상의 모듈, 하위 프로그램 혹은 코드의 일부를 저장하는 파일) 내에, 혹은 다른 프로그램이나 데이터를 보유하는 파일의 일부(예컨대, 마크업 언어 문서 내에 저장되는 하나 이상의 스크립트) 내에 저장될 수 있다. 컴퓨터 프로그램은 하나의 사이트에 위치하거나 복수의 사이트에 걸쳐서 분산되어 통신 네트워크에 의해 상호 접속된 다중 컴퓨터나 하나의 컴퓨터 상에서 실행되도록 전개될 수 있다. 상기 컴퓨터 프로그램 명령어와 데이터를 저장하기에 적합한 컴퓨터로 판독 가능한 기록 매체는, 예컨대 EPROM, EEPROM 및 플래시메모리 장치와 같은 반도체 메모리 장치, 예컨대 내부 하드디스크나 외장형 디스크와 같은 자기 디스크, 자기광학 디스크 및 CD-ROM과 DVD-ROM 디스크를 포함하여 모든 형태의 비휘발성 메모리, 매체 및 메모리 장치를 포함한다. 프로세서와 메모리는 특수 목적의 논리 회로에 의해 보충되거나, 그것에 통합될 수 있다.
이상에서 설명한 피투피 통신 제어 장치(400)는, 하나 이상의 프로세서로 하여금 앞서 설명한 기능들과 프로세스를 수행하도록 하는 명령에 의하여 구동될 수 있다. 예를 들어 그러한 명령으로는, 예컨대 JavaScript나 ECMAScript 명령 등의 스크립트 명령과 같은 해석되는 명령이나 실행 가능한 코드 혹은 컴퓨터로 판독 가능한 매체에 저장되는 기타의 명령이 포함될 수 있다.
비록 본 명세서와 도면에서는 피투피 통신 제어 장치(400)와 관련하여 예시적인 장치 구성을 기술하고 있지만, 본 명세서에서 설명하는 기능적인 동작과 주제의 구현물들은 다른 유형의 디지털 전자 회로로 구현되거나, 본 명세서에서 개시하는 구조 및 그 구조적인 등가물들을 포함하는 컴퓨터 소프트웨어, 펌웨어 혹은 하드웨어로 구현되거나, 이들 중 하나 이상의 결합으로 구현 가능하다. 본 명세서에서 설명하는 주제의 구현물들은 하나 이상의 컴퓨터 프로그램 제품, 다시 말해 본 발명에 따른 장치의 동작을 제어하기 위하여 혹은 이것에 의한 실행을 위하여 유형의 프로그램 저장매체 상에 인코딩된 컴퓨터 프로그램 명령에 관한 하나 이상의 모듈로서 구현될 수 있다. 컴퓨터로 판독 가능한 매체는 기계로 판독 가능한 저장 장치, 기계로 판독 가능한 저장 기판, 메모리 장치, 기계로 판독 가능한 전파형 신호에 영향을 미치는 물질의 조성물 혹은 이들 중 하나 이상의 조합일 수 있다.
본 명세서는 다수의 특정한 구현물의 세부사항들을 포함하지만, 이들은 어떠한 발명이나 청구 가능한 것의 범위에 대해서도 제한적인 것으로서 이해되어서는 안되며, 오히려 특정한 발명의 특정한 실시형태에 특유할 수 있는 특징들에 대한 설명으로서 이해되어야 한다. 개별적인 실시형태의 문맥에서 본 명세서에 기술된 특정한 특징들은 단일 실시형태에서 조합하여 구현될 수도 있다. 반대로, 단일 실시형태의 문맥에서 기술한 다양한 특징들 역시 개별적으로 혹은 어떠한 적절한 하위 조합으로도 복수의 실시형태에서 구현 가능하다. 나아가, 특징들이 특정한 조합으로 동작하고 초기에 그와 같이 청구된 바와 같이 묘사될 수 있지만, 청구된 조합으로부터의 하나 이상의 특징들은 일부 경우에 그 조합으로부터 배제될 수 있으며, 그 청구된 조합은 하위 조합이나 하위 조합의 변형물로 변경될 수 있다.
마찬가지로, 특정한 순서로 도면에서 동작들을 묘사하고 있지만, 이는 바람직한 결과를 얻기 위하여 도시된 그 특정한 순서나 순차적인 순서대로 그러한 동작들을 수행하여야 한다거나 모든 도시된 동작들이 수행되어야 하는 것으로 이해되어서는 안 된다. 특정한 경우, 멀티태스킹과 병렬 프로세싱이 유리할 수 있다. 또한, 상술한 실시형태의 다양한 시스템 컴포넌트의 분리는 그러한 분리를 모든 실시형태에서 요구하는 것으로 이해되어서는 안되며, 설명한 프로그램 컴포넌트와 시스템들은 일반적으로 단일의 소프트웨어 제품으로 함께 통합되거나 다중 소프트웨어 제품에 패키징될 수 있다는 점을 이해하여야 한다.
본 명세서에서 설명한 주제의 특정한 실시형태를 설명하였다. 기타의 실시형태들은 이하의 청구항의 범위 내에 속한다. 예컨대, 청구항에서 인용된 동작들은 상이한 순서로 수행되면서도 여전히 바람직한 결과를 성취할 수 있다. 일 예로서, 첨부도면에 도시한 프로세스는 바람직한 결과를 얻기 위하여 반드시 그 특정한 도시된 순서나 순차적인 순서를 요구하지 않는다. 특정한 구현 예에서, 멀티태스킹과 병렬 프로세싱이 유리할 수 있다.
본 기술한 설명은 본 발명의 최상의 모드를 제시하고 있으며, 본 발명을 설명하기 위하여, 그리고 당업자가 본 발명을 제작 및 이용할 수 있도록 하기 위한 예를 제공하고 있다. 이렇게 작성된 명세서는 그 제시된 구체적인 용어에 본 발명을 제한하는 것이 아니다. 따라서, 상술한 예를 참조하여 본 발명을 상세하게 설명하였지만, 당업자라면 본 발명의 범위를 벗어나지 않으면서도 본 예들에 대한 개조, 변경 및 변형을 가할 수 있다.
따라서 본 발명의 범위는 설명된 실시 예에 의하여 정할 것이 아니고 특허청구범위에 의해 정하여져야 한다.
본 발명은 피투피 통신에 있어서, 클라이언트 장치를 대신하여 피어 관리 장치로부터 피어 리스트를 획득한 후, 획득한 피어 리스트를 상기 클라이언트 장치의 통신 환경에 맞추어 수정하여 클라이언트 장치로 제공하는데 있어서, 피어 관리 장치가 클라이언트 장치를 정상적으로 인식하여 피투피 통신에 참여하는 피어들을 관리할 수 있도록 한다.
그 결과, 본 발명은 피투피 통신에 참여하는 피어들을 관리하는 피어 관리 장치의 기능을 방해하지 않으면서, 클라이언트 장치와 피어 관리 장치 간에 교환되는 메시지를 가로채어, 피어 관리 장치에서 클라이언트 장치로 제공되는 피어 리스트를 변경할 수 있도록 하며, 이를 통해서 피투피 통신 서비스 제공자가 아닌 통신망 사업자 또는 다른 제3의 사업자가 자신의 정책 혹은 클라이언트 장치의 통신 환경에 따라서 피투피 트래픽을 적절히 제어할 수 있도록 한다.
10: 통신망
100: 클라이언트 장치
200: 검색 장치
300: 피어 관리 장치
400: 피투피 통신 제어 장치

Claims (10)

  1. 피투피 통신 제어 장치가 통신망을 통해서 클라이언트 장치로부터 피어 관리 장치로 전송되는 피어 리스트 요청 메시지를 수신하는 단계;
    상기 수신한 피어 리스트 요청 메시지에 대응하여, 상기 피투피 통신 제어 장치가 상기 피어 관리 장치에 피어 리스트를 요청하는 피어 리스트 요청 메시지를 생성하는 단계; 및
    상기 피투피 통신 제어 장치가 상기 클라이언트 장치가 전송한 피어 리스트 요청 메시지 대신에, 상기 생성한 피어 리스트 요청 메시지를 피어 관리 장치로 전송하는 단계를 포함하되,
    상기 피투피 통신 제어 장치가 상기 생성한 피어 리스트 요청 메시지의 헤더 또는 바디에 상기 클라이언트 장치의 주소 정보를 기록하는 것을 특징으로 하는 피투피 통신 제어 방법.
  2. 삭제
  3. 삭제
  4. 제1항에 있어서, 상기 클라이언트 장치의 주소 정보는
    HTTP 헤더 필드 중 X-Forwarded-For 필드에 기록되는 것을 특징으로 하는 피투피 통신 제어 방법.
  5. 제1항에 있어서, 상기 클라이언트 장치의 주소 정보는,
    상기 피어리스트 요청 메시지의 바디에 기록되는 피투피 통신 프로토콜에 따른 파라미터 중, 피어 IP 정보에 기록되는 것을 특징으로 하는 피투피 통신 제어 방법.
  6. 제1항에 있어서,
    상기 피어 관리 장치로부터 특정 공유 파일을 공유하는 피어 리스트를 포함하는 응답 메시지를 수신하는 단계;
    상기 클라이언트 장치의 통신 환경에 따라서 수신한 피어 리스트를 변경하는 단계;
    변경된 피어 리스트를 포함하는 응답 메시지를 상기 클라이언트 장치로 전송하는 단계를 더 포함하는 것을 특징으로 하는 피투피 통신 제어 방법.
  7. 통신망을 통해서 클라이언트 장치와 피어 관리 장치 간에 교환되는 메시지를 수신하는 패킷 수신부;
    상기 통신망을 통해서 상기 클라이언트 장치 또는 피어 관리 장치로 메시지를 송신하는 패킷 송신부;
    상기 패킷 수신부를 통해 상기 클라이언트 장치가 피어 관리 장치로 전송한 메시지를 수신하면, 수신한 피어리스트 요청 메시지에 대응하여, 피투피 통신 제어 장치가 상기 피어 관리 장치로 피어리스트를 요청하는 피어리스트 요청 메시지를 생성하고, 상기 패킷 송신부를 통해 상기 수신한 피어리스트 요청 메시지 대신에 상기 생성한 피어리스트 요청 메시지를 상기 피어 관리 장치로 전송하도록 제어하는 제어부를 포함하되,
    상기 제어부는 상기 생성한 피어 리스트 요청 메시지의 헤더 또는 바디에 상기 클라이언트 장치의 주소 정보를 기록하는 것을 특징으로 하는 피투피 통신 제어 장치.
  8. 삭제
  9. 제7항에 있어서, 상기 제어부는
    상기 클라이언트 장치의 주소 정보를 HTTP 헤더 필드 중 X-Forwarded-For 필드 또는 상기 바디에 기록되는 피투피 통신 프로토콜의 파라미터 중 피어 IP 정보에 기록하는 것을 특징으로 하는 피투피 통신 제어 장치.
  10. 제7항에 있어서, 상기 제어부는
    상기 패킷 수신부를 통해서 상기 피어 관리 장치로부터 피어 리스트를 포함하는 응답 메시지를 수신하고, 상기 클라이언트 장치의 통신 환경에 따라서 상기 수신한 피어 리스트를 변경하여, 상기 패킷 송신부를 통해 변경된 피어 리스트를 포함하는 응답 메시지를 상기 클라이언트 장치로 전송시키는 것을 특징으로 하는 피투피 통신 제어 장치.
KR1020140028257A 2014-03-11 2014-03-11 피투피 통신 제어 방법 및 장치 KR101535085B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020140028257A KR101535085B1 (ko) 2014-03-11 2014-03-11 피투피 통신 제어 방법 및 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140028257A KR101535085B1 (ko) 2014-03-11 2014-03-11 피투피 통신 제어 방법 및 장치

Publications (1)

Publication Number Publication Date
KR101535085B1 true KR101535085B1 (ko) 2015-07-08

Family

ID=53791892

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140028257A KR101535085B1 (ko) 2014-03-11 2014-03-11 피투피 통신 제어 방법 및 장치

Country Status (1)

Country Link
KR (1) KR101535085B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170025497A (ko) * 2015-08-28 2017-03-08 한국전자통신연구원 피어 정보를 제공하는 방법 및 네트워크 관리 시스템

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070025513A (ko) * 2005-09-02 2007-03-08 배경국 피투피(p2p) 통신 방법 및 장치
KR20120088777A (ko) * 2009-10-30 2012-08-08 엔이씨 유럽 리미티드 오버레이 네트워크에서 통신 피어들의 선택을 지원하는 방법 및 시스템
KR20130022512A (ko) * 2011-08-24 2013-03-07 한국전자통신연구원 P2p 네트워크에서 데이터 교환 방법
KR20140008065A (ko) * 2012-07-10 2014-01-21 한국전자통신연구원 관리 기능이 부여된 피투피 네트워크 시스템

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070025513A (ko) * 2005-09-02 2007-03-08 배경국 피투피(p2p) 통신 방법 및 장치
KR20120088777A (ko) * 2009-10-30 2012-08-08 엔이씨 유럽 리미티드 오버레이 네트워크에서 통신 피어들의 선택을 지원하는 방법 및 시스템
KR20130022512A (ko) * 2011-08-24 2013-03-07 한국전자통신연구원 P2p 네트워크에서 데이터 교환 방법
KR20140008065A (ko) * 2012-07-10 2014-01-21 한국전자통신연구원 관리 기능이 부여된 피투피 네트워크 시스템

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170025497A (ko) * 2015-08-28 2017-03-08 한국전자통신연구원 피어 정보를 제공하는 방법 및 네트워크 관리 시스템
KR102372186B1 (ko) * 2015-08-28 2022-03-10 한국전자통신연구원 피어 정보를 제공하는 방법 및 네트워크 관리 시스템

Similar Documents

Publication Publication Date Title
US11758013B2 (en) Methods and systems for caching data communications over computer networks
KR101573197B1 (ko) 피투피 기반 파일 전송 제어 방법 및 이를 위한 피투피 통신 제어 장치
JP5050095B2 (ja) P2pコンテンツ共有のための方法、システム、及びノード
US9106668B2 (en) Distributed peer location in peer-to-peer file transfers
JP3944168B2 (ja) ネットワーク環境におけるピアツーピア通信のための方法およびシステム
WO2013155992A1 (en) Name-based neighbor discovery and multi-hop service discovery in information-centric networks
CN108881034B (zh) 一种应用于bt***的请求响应方法、设备及***
US20220116273A1 (en) Selecting and operating an optimal virtual private network among multiple virtual private networks
JP2015091019A (ja) 中継装置及びデータ転送方法
JP2005109539A (ja) コンテンツの検索と配信を行うシステムと方法、及びプログラム
Aguilar et al. A hamming distance and fuzzy logic-based algorithm for P2P content distribution in enterprise networks
KR101535085B1 (ko) 피투피 통신 제어 방법 및 장치
EP2785017B1 (en) Content-centric networking
KR101506157B1 (ko) 피투피 통신 제어 방법, 이를 위한 싱크홀 라우팅 장치 및 정보 수집 장치
KR20140007958A (ko) 콘텐츠 분산
KR20150112602A (ko) 피투피 통신 제어를 위한 피어 정보 제공 장치 및 방법
KR100828920B1 (ko) 이동통신 시스템에서의 모바일 아이피를 이용한 파일 공유방법 및 장치
KR101073659B1 (ko) 네트워크 혼잡 감소를 위하여 파일을 투명하게 내려받기 위한 방법
KR102083467B1 (ko) 피투피 통신 시스템, 그의 피투피 통신 제어를 위한 피어 리스트 관리 방법 및 장치
Svenn Static Web content distribution and request routing in a P2P overlay
Preguiça Resource Sharing and Search in Partially Decentralized Mobile Networks
Ranjan et al. Reducing Cross-ISP Traffic in P2P Systems Using Adaptive Search Radius

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20190626

Year of fee payment: 5