KR101609922B1 - 피어-투-피어 기반 데이터 전송 장치 및 방법 - Google Patents

피어-투-피어 기반 데이터 전송 장치 및 방법 Download PDF

Info

Publication number
KR101609922B1
KR101609922B1 KR1020140060733A KR20140060733A KR101609922B1 KR 101609922 B1 KR101609922 B1 KR 101609922B1 KR 1020140060733 A KR1020140060733 A KR 1020140060733A KR 20140060733 A KR20140060733 A KR 20140060733A KR 101609922 B1 KR101609922 B1 KR 101609922B1
Authority
KR
South Korea
Prior art keywords
message
transmission
fragments
reception
next message
Prior art date
Application number
KR1020140060733A
Other languages
English (en)
Other versions
KR20150134000A (ko
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 KR1020140060733A priority Critical patent/KR101609922B1/ko
Publication of KR20150134000A publication Critical patent/KR20150134000A/ko
Application granted granted Critical
Publication of KR101609922B1 publication Critical patent/KR101609922B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/0001Systems modifying transmission characteristics according to link quality, e.g. power backoff
    • H04L1/0002Systems modifying transmission characteristics according to link quality, e.g. power backoff by adapting the transmission rate

Landscapes

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

Abstract

피어-투-피어 기반 데이터 전송 장치 및 방법이 개시된다. 본 발명의 일 실시예에 따른 피어-투-피어 기반 데이터 전송 장치는 메시지를 복수 개의 조각(fragment)으로 분할하고, 분할된 상기 복수 개의 조각을 네트워크를 통해 수신 단말로 송신하며, 상기 수신 단말로부터 상기 복수 개의 조각 각각에 대한 수신 확인 메시지를 수신하는 메시지 송수신 모듈; 상기 복수 개의 조각의 송신 시각 및 상기 수신 확인 메시지의 수신 시각으로부터 재전송 타임아웃을 계산하는 타임아웃 계산 모듈; 및 상기 재전송 타임아웃을 고려하여 상기 메시지 송수신 모듈에서 전송할 다음 메시지의 조각 개수를 계산하는 전송 제어 모듈을 포함한다.

Description

피어-투-피어 기반 데이터 전송 장치 및 방법{APPARATUS AND METHOD FOR PEER-TO-PEER BASED DATA TRASNFER}
본 발명의 실시예들은 피어-투-피어(Peer-To-Peer; P2P) 기반의 데이터 전송 기술과 관련된다.
최근 들어 전통적인 서버-클라이언트 모델을 벗어나, 서버를 경유하지 않고 피어(peer)간 메시지를 주고 받는 다양한 서비스들이 나타나고 있다. IP망을 이용해 피어 간 음성/영상을 송수신하는 VoIP(Voice Over IP)가 대표적인 예에 해당한다.
특히, 최근 VoIP 서비스와 메시징 서비스가 융합되면서, 피어 간 통신을 이용해 일정 정도 손실이 허용되는 미디어 스트림 대신, 파일과 같이 손실이 허용되지 않고 용량이 상대적으로 큰 데이터를 전달할 필요성이 증대되고 있다. 그러나 일반적으로 피어-투-피어 기반의 서비스들은 UDP(User Datagram Protocol)을 이용하게 되는 바, 데이터의 신뢰성 보장 및 효율적인 데이터 전송을 위한 부가적인 수단들이 필요하게 된다.
대한민국 등록특허공보 제10-1082851 호 (2011. 11. 11)
본 발명의 실시예들은 UDP 등의 전송 신뢰성이 보장되지 않는 프로토콜을 기반으로 한 피어-투-피어 통신에서 전송의 신뢰성을 보장하면서 빠른 속도로 데이터를 전송하기 위한 수단을 제공하기 위한 것이다.
본 발명의 예시적인 실시예에 따르면, 메시지를 복수 개의 조각(fragment)으로 분할하고, 분할된 상기 복수 개의 조각을 네트워크를 통해 수신 단말로 송신하며, 상기 수신 단말로부터 상기 복수 개의 조각 각각에 대한 수신 확인 메시지를 수신하는 메시지 송수신 모듈; 상기 복수 개의 조각의 송신 시각 및 상기 수신 확인 메시지의 수신 시각으로부터 재전송 타임아웃을 계산하는 타임아웃 계산 모듈; 및 상기 재전송 타임아웃을 고려하여 상기 메시지 송수신 모듈에서 전송할 다음 메시지의 조각 개수를 계산하는 전송 제어 모듈을 포함하는 피어-투-피어 기반 데이터 전송 장치가 제공된다.
상기 타임아웃 계산 모듈은, 상기 복수 개의 조각 각각에 대하여 각 조각의 송신 시각 및 대응되는 수신 확인 메시지의 수신 시각의 시간차를 계산하고, 계산된 상기 각 조각별 시간차에 대한 수학적 연산을 통하여 상기 재전송 타임아웃을 계산할 수 있다.
상기 수학적 연산은 상기 각 조각별 시간차의 평균값, 중간값, 최대값 또는 최소값 중 어느 하나일 수 있다.
상기 장치는, 상기 수신 단말로부터 상기 복수 개의 조각에 대한 전송 지연 정보를 수신하고, 수신된 상기 정보로부터 가용 전송률(achievable throughput)을 계산하는 전송률 계산 모듈을 더 포함하며, 상기 전송 제어 모듈은, 상기 재전송 타임아웃 및 상기 가용 전송률을 고려하여 상기 메시지 송수신 모듈에서 전송할 다음 메시지의 조각 개수를 계산할 수 있다.
상기 복수 개의 조각에 대한 전송 지연 정보는, 상기 수신 단말에서 수신한 상기 복수 개의 조각 각각의 수신 간격에 대한 수학적 연산을 통하여 계산될 수 있다.
상기 수학적 연산은 상기 상기 수신 단말에서 수신한 상기 복수 개의 조각 각각의 수신 간격의 평균값, 중간값, 최대값 또는 최소값 중 어느 하나일 수 있다.
상기 전송 제어 모듈은, 상기 재전송 타임아웃 값이 작을수록 상기 다음 메시지의 용량이 상기 가용 전송률에 근접하도록 상기 다음 메시지의 조각 개수를 조절할 수 있다.
상기 전송 제어 모듈은, 상기 재전송 타임아웃 값이 증가함에 따라 상기 가용 전송률 대비 상기 다음 메시지의 용량의 비율이 감소하도록 상기 다음 메시지의 조각 개수를 조절할 수 있다.
상기 전송 제어 모듈은, 계산된 상기 다음 메시지의 조각 개수를 상기 메시지의 전송을 요청한 애플리케이션으로 송신하며, 상기 애플리케이션은, 수신된 상기 다음 메시지의 조각 개수에 따라 전송을 요청할 다음 메시지를 생성하고, 생성된 상기 다음 메시지를 상기 메시지 송수신 모듈로 제공할 수 있다.
상기 전송 제어 모듈은, 계산된 상기 다음 메시지의 조각 개수를 상기 메시지 송수신 모듈로 제공하며, 상기 메시지 송수신 모듈은, 수신된 상기 다음 메시지의 조각 개수에 따라 전송을 요청할 다음 메시지를 생성할 수 있다.
본 발명의 다른 예시적인 실시예에 따르면, 메시지 송수신 모듈에서, 메시지를 복수 개의 조각(fragment)으로 분할하고, 분할된 상기 복수 개의 조각을 네트워크를 통해 수신 단말로 송신하며, 상기 수신 단말로부터 상기 복수 개의 조각 각각에 대한 수신 확인 메시지를 수신하는 단계; 타임아웃 계산 모듈에서, 상기 복수 개의 조각의 송신 시각 및 상기 수신 확인 메시지의 수신 시각으로부터 재전송 타임아웃을 계산하는 단계; 및 전송 제어 모듈에서, 상기 재전송 타임아웃을 고려하여 상기 메시지 송수신 모듈에서 전송할 다음 메시지의 조각 개수를 계산하는 단계를 포함하는 피어-투-피어 기반 데이터 전송 방법이 제공된다.
상기 타임아웃을 계산하는 단계는, 상기 복수 개의 조각 각각에 대하여 각 조각의 송신 시각 및 대응되는 수신 확인 메시지의 수신 시각의 시간차를 계산하고, 계산된 상기 각 조각 별 시간차에 대한 수학적 연산을 통하여 상기 재전송 타임아웃을 계산한다.
상기 수학적 연산은 상기 각 조각 별 시간차의 평균값, 중간값, 최대값 또는 최소값 중 어느 하나일 수 있다.
상기 방법은, 상기 타임아웃을 계산하는 단계의 수행 이후, 전송률 계산 모듈에서, 상기 수신 단말로부터 상기 복수 개의 조각에 대한 전송 지연 정보를 수신하고, 수신된 상기 정보로부터 가용 전송률(achievable throughput)을 계산하는 단계를 더 포함하며, 상기 다음 메시지의 조각 개수를 계산하는 단계는, 상기 재전송 타임아웃 및 상기 가용 전송률을 고려하여 상기 메시지 송수신 모듈에서 전송할 다음 메시지의 조각 개수를 계산할 수 있다.
상기 복수 개의 조각에 대한 전송 지연 정보는, 상기 수신 단말에서 수신한 상기 복수 개의 조각 각각의 수신 간격에 대한 수학적 연산을 통하여 계산될 수 있다.
상기 수학적 연산은 상기 상기 수신 단말에서 수신한 상기 복수 개의 조각 각각의 수신 간격의 평균값, 중간값, 최대값 또는 최소값 중 어느 하나일 수 있다.
상기 다음 메시지의 조각 개수를 계산하는 단계는, 상기 재전송 타임아웃 값이 작을수록 상기 다음 메시지의 용량이 상기 가용 전송률에 근접하도록 상기 다음 메시지의 조각 개수를 조절할 수 있다.
상기 다음 메시지의 조각 개수를 계산하는 단계는, 상기 재전송 타임아웃 값이 증가함에 따라 상기 가용 전송률 대비 상기 다음 메시지의 용량의 비율이 감소하도록 상기 다음 메시지의 조각 개수를 조절할 수 있다.
상기 다음 메시지의 조각 개수를 계산하는 단계는, 계산된 상기 다음 메시지의 조각 개수를 상기 메시지의 전송을 요청한 애플리케이션으로 송신하는 단계를 더 포함하며, 상기 애플리케이션은, 수신된 상기 다음 메시지의 조각 개수에 따라 전송을 요청할 다음 메시지를 생성하고, 생성된 상기 다음 메시지를 상기 메시지 송수신 모듈로 제공할 수 있다.
상기 다음 메시지의 조각 개수를 계산하는 단계는, 계산된 상기 다음 메시지의 조각 개수를 상기 메시지 송수신 모듈로 제공하는 단계를 더 포함하며, 상기 메시지 송수신 모듈은, 수신된 상기 다음 메시지의 조각 개수에 따라 전송을 요청할 다음 메시지를 생성할 수 있다.
본 발명의 다른 예시적인 실시예에 따르면, 메시지를 복수 개의 조각(fragment)으로 분할하고, 분할된 상기 복수 개의 조각을 네트워크를 통해 수신 단말로 송신하는 메시지 송수신 모듈; 상기 수신 단말로부터 상기 복수 개의 조각에 대한 전송 지연 정보를 수신하고, 수신된 상기 정보로부터 가용 전송률(achievable throughput)을 계산하는 전송률 계산 모듈; 및 계산된 상기 가용 전송률을 고려하여 상기 메시지 송수신 모듈에서 전송할 다음 메시지의 조각 개수를 계산하는 상기 전송 제어 모듈을 포함하는 피어-투-피어 기반 데이터 전송 장치가 제공된다.
상기 복수 개의 조각에 대한 전송 지연 정보는, 상기 수신 단말에서 수신한 상기 복수 개의 조각 각각의 수신 간격에 대한 수학적 연산을 통하여 계산될 수 있다.
상기 수학적 연산은 상기 수신 단말에서 수신한 상기 복수 개의 조각 각각의 수신 간격의 평균값, 중간값, 최대값 또는 최소값 중 어느 하나일 수 있다.
상기 전송 제어 모듈은, 상기 가용 전송률이 높을수록 상기 다음 메시지의 조각 개수가 증가하며, 상기 가용 전송률이 낮을수록 상기 다음 메시지의 조각 개수가 감소하도록 상기 다음 메시지의 조각 개수를 조절할 수 있다.
상기 전송 제어 모듈은, 계산된 상기 다음 메시지의 조각 개수를 상기 메시지의 전송을 요청한 애플리케이션으로 송신하며, 상기 애플리케이션은, 수신된 상기 다음 메시지의 조각 개수에 따라 전송을 요청할 다음 메시지를 생성하고, 생성된 상기 다음 메시지를 상기 메시지 송수신 모듈로 제공할 수 있다.
상기 전송 제어 모듈은, 계산된 상기 다음 메시지의 조각 개수를 상기 메시지 송수신 모듈로 제공하며, 상기 메시지 송수신 모듈은, 수신된 상기 다음 메시지의 조각 개수에 따라 전송을 요청할 다음 메시지를 생성할 수 있다.
본 발명의 실시예들에 따를 경우, UDP 등의 전송 신뢰성이 보장되지 않는 프로토콜을 기반으로 한 피어-투-피어 통신에서 파일 등을 전송할 경우 전송되는 데이터의 신뢰성을 보장할 수 있다.
또한, 본 발명의 실시예들에 따를 경우 네트워크의 상태에 따라 파일 전송을 위한 파라미터를 동적으로 조절함으로써 데이터를 손실 없이 빠르게 전송할 수 있다.
도 1은 본 발명의 일 실시예에 따른 피어-투-피어 메시지 송수신 시스템(100)을 설명하기 위한 블록도
도 2는 본 발명의 일 실시예에 따른 피어-투-피어 메시지 송수신 시스템(100)에서 송신 단말(102) 및 수신 단말(104)의 상세 구성을 설명하기 위한 블록도
도 3은 본 발명의 일 실시예에 따른 피어-투-피어 서비스(202)의 상세 구성을 설명하기 위한 블록도
도 4는 본 발명의 일 실시예에 따른 타임아웃 계산 모듈(302)에서 라운드트립 타임(RTT; Round-Trip Time)을 계산하는 과정을 설명하기 위한 예시도
도 5는 본 발명의 일 실시예에 따른 전송 지연 정보의 계산 과정을 설명하기 위한 예시도
도 6은 본 발명의 일 실시예에 따른 피어-투-피어 메시지 송수신 방법(600)을 설명하기 위한 흐름도
이하, 도면을 참조하여 본 발명의 구체적인 실시형태를 설명하기로 한다. 이하의 상세한 설명은 본 명세서에서 기술된 방법, 장치 및/또는 시스템에 대한 포괄적인 이해를 돕기 위해 제공된다. 그러나 이는 예시에 불과하며 본 발명은 이에 제한되지 않는다.
본 발명의 실시예들을 설명함에 있어서, 본 발명과 관련된 공지기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략하기로 한다. 그리고, 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다. 상세한 설명에서 사용되는 용어는 단지 본 발명의 실시예들을 기술하기 위한 것이며, 결코 제한적이어서는 안 된다. 명확하게 달리 사용되지 않는 한, 단수 형태의 표현은 복수 형태의 의미를 포함한다. 본 설명에서, "포함" 또는 "구비"와 같은 표현은 어떤 특성들, 숫자들, 단계들, 동작들, 요소들, 이들의 일부 또는 조합을 가리키기 위한 것이며, 기술된 것 이외에 하나 또는 그 이상의 다른 특성, 숫자, 단계, 동작, 요소, 이들의 일부 또는 조합의 존재 또는 가능성을 배제하도록 해석되어서는 안 된다.
도 1은 본 발명의 일 실시예에 따른 피어-투-피어(P2P) 메시지 송수신 시스템(100)을 설명하기 위한 블록도이다. 본 발명의 일 실시예에 따른 피어-투-피어 메시지 송수신 시스템(100)은 별도의 서버 등에 의하지 아니하고 네트워크상에서 단말 간 데이터를 송수신하기 위한 시스템을 의미한다.
도시된 바와 같이, 본 발명의 일 실시예에 따른 피어-투-피어 메시지 송수신 시스템(100)은 송신 단말(102) 및 수신 단말(104)을 포함한다. 이 중 송신 단말(102)은 데이터를 송신하는 단말을, 수신 단말(104)은 송신 단말(102)로부터 송신되는 데이터를 수신하는 단말을 각각 의미한다. 그러나 상기와 같은 송신 단말(102)과 수신 단말(104)의 구분은 동일한 단말을 단지 기능적으로 분류한 것이다. 즉, 동일한 단말이 데이터를 송신할 때에는 송신 단말(102)로, 데이터를 수신할 때에는 수신 단말(104)로 각각 구분될 수 있다. 다시 말해, 본 발명의 실시예들에서 단말은 필요에 따라 타 단말로 데이터를 송신하거나, 타 단말로부터 데이터를 수신하거나, 또는 이 두 가지 동작을 동시에 수행하도록 구성될 수 있다.
송신 단말(102)과 수신 단말(104)은 네트워크(106)를 통하여 서로 연결되어 데이터를 송수신한다. 본 발명의 실시예들에서, 네트워크(106)는 송신 단말(102)과 수신 단말(104) 간에 데이터 송수신을 매개하기 위한 매개체로서, 이동통신망, 유무선 인터넷망 등 패킷 데이터 송수신이 가능한 모든 종류의 네트워크를 포괄하는 의미이다.
도 2는 본 발명의 일 실시예에 따른 피어-투-피어 메시지 송수신 시스템(100)에서 송신 단말(102) 및 수신 단말(104)의 상세 구성을 설명하기 위한 블록도이다. 전술한 바와 같이, 송신 단말(102)과 수신 단말(104)은 동일한 단말을 그 기능에 따라 분류한 것에 불과하므로, 송신 단말(102)과 수신 단말(104)은 내부적으로 동일한 구조를 가지게 된다. 도시된 바와 같이, 본 발명의 일 실시예에 따른 송신 단말(102) 및 수신 단말(104)은 애플리케이션(200) 및 피어-투-피어 서비스(202)를 포함한다.
애플리케이션(200)은 피어-투-피어 서비스(202)로 데이터의 송신을 요청하거나, 또는 피어-투-피어 서비스(202)를 통하여 수신되는 데이터를 제공받는다. 애플리케이션(200)은 예를 들어, 인스턴트 메시징 서비스 애플리케이션, 파일 송수신 애플리케이션 등 피어-투-피어 방식을 통하여 타 단말과 데이터를 송수신하기 위한 모든 종류의 응용 프로그램일 수 있다.
송신 단말(102)에서, 피어-투-피어 서비스(202)는 애플리케이션(200)으로부터 데이터를 수신하고, 수신된 데이터를 수신 단말(102)의 피어-투-피어 서비스(202)로 전달한다. 이때, 상기 데이터는 복수 개의 메시지(트랜잭션, transaction)으로 분할되어 수신 단말(102)로 전달될 수 있다. 상기 데이터의 트랜잭션 단위로의 분할은 애플리케이션(200)에서 이루어질 수도 있고, 피어-투-피어 서비스(202) 상에서 수행될 수도 있다. 예를 들어, 애플리케이션(200)은 데이터를 복수 개의 메시지로 분할하고, 분할된 각 메시지에 대한 송신 요청을 순차적으로 피어-투-피어 서비스(202)로 전달할 수 있다. 또는, 애플리케이션(200)은 데이터 전체를 한꺼번에 피어-투-피어 서비스(202)로 제공하고, 피어-투-피어 서비스(202)는 이를 트랜잭션 단위로 분할하여 수신 단말(102)로 전송할 수 있다.
또한, 수신 단말(104)에서 피어-투-피어 서비스(202)는 송신 단말(102)로부터 복수 개의 메시지를 전송받고, 수신 단말(104)의 애플리케이션(200)으로 전달한다. 송신 단말(102)에서와 마찬가지로, 수신된 복수 개의 메시지를 피어-투-피어 서비스(202) 상에서 결합될 수도 있고, 애플리케이션(200) 상에서 결합될 수도 있다.
도 3은 본 발명의 일 실시예에 따른 피어-투-피어 서비스(202)의 상세 구성을 설명하기 위한 블록도이다. 도시된 바와 같이, 본 발명이 일 실시예에 따른 피어-투-피어 서비스(202)는 메시지 송수신 모듈(300), 타임아웃 계산 모듈(302), 전송률 계산 모듈(304) 및 전송 제어 모듈(306)을 포함한다. 설명의 편의를 위하여, 이하에서는 송신 단말(102)을 기준으로 피어-투-피어 서비스(202)의 상세 구성을 설명하기로 하나, 앞서 기술한 바와 같이 이는 수신 단말(104)에도 동일하게 적용된다. 또한 실시예에 따라 피어-투-피어 서비스(202)는 타임아웃 계산 모듈(302) 및 전송률 계산 모듈(304)을 모두 포함하거나, 또는 둘 중 하나만을 포함하도록 구성될 수 있다.
메시지 송수신 모듈(300)은 수신 단말(104)로 송신할 메시지를 복수 개의 조각(fragment)으로 분할하고, 분할된 상기 복수 개의 조각을 네트워크를 통해 수신 단말로 송신하며, 수신 단말(104)로부터 상기 복수 개의 조각 각각에 대한 수신 확인(ACK) 메시지를 수신한다. 전술한 바와 같이, 실시예에 따라 애플리케이션(200)은 수신 단말(104)로 송신할 데이터를 복수 개의 메시지(transaction)로 분할하여 메시지 송수신 모듈(300)로 순차적으로 제공할 수도 있고, 메시지 송수신 모듈(300)에서 직접 애플리케이션으로부터 받은 데이터를 복수 개의 메시지로 분할할 수도 있다.
구체적으로, 메시지 송수신 모듈(300)은 애플리케이션(200)으로부터 전송을 요청 받은 각각의 메시지 마다 트랜잭션 번호(transaction number)를 부여한다. 그리고 상기 메시지의 크기가 한 번에 전송 가능한 크기(MTU, Maximum Transmission Unit)을 초과하는 경우, 메시지 송수신 모듈(300)은 하나의 메시지를 복수 개의 전송 가능한 조각(fragmentation)으로 분할하고, 분할된 각각의 조각에 조각 번호(fragment number)를 부여한다.
메시지 송수신 모듈(300)은 한 번의 하나의 트랜잭션을 처리하도록 구성된다. 따라서, 메시지 송수신 모듈(300)은 동일한 트랜잭션 번호를 가지는 조각들을 한꺼번에 수신 단말(104)로 송신하고, 각 조각들에 대한 수신 단말(104)의 수신 확인 메시지 수신을 대기한다. 수신 단말(104) 측의 메시지 송수신 모듈(300)은 각각의 조각을 수신할 때 마다, 수신된 조각의 트랜잭션 번호와 조각 번호가 포함된 수신 확인 메시지를 송신 단말(102)로 송신한다. 그러면 송신 단말(102)의 메시지 송수신 모듈(300)은 내부의 재전송 버퍼에서 상기 수신 확인 메시지에 포함된 트랜잭션 번호와 조각 번호에 대응되는 조각을 삭제한다. 이와 같은 과정을 거쳐 현재 트랜잭션 번호에 해당하는 조각의 전송이 모두 확인되면, 메시지 송수신 모듈(300)은 다음 트랜잭션 번호에 해당하는 메시지를 전송한다. 그러나 만약 기 설정된 재전송 타임아웃(retransmission timeout) 만큼 대기한 후에도 현재 트랜잭션 번호에 해당하는 조각이 재전송 버퍼에 남아 있는 경우, 메시지 송수신 모듈(300)은 남은 조각을 수신 단말(104)로 재전송한다.
이와 같이 메시지 송수신 모듈(300)에서 각 조각(패킷)마다 별도의 트랜잭션 번호 및 조각 번호를 부여하고, 각 조각에 대한 별도의 ACK 메시지를 수신하도록 구성됨으로써 본 발명의 실시예들은 UDP(User Datagram Protocol) 등의 신뢰성이 보장되지 않는 프로토콜을 사용하는 환경에서도 중요 데이터 전송의 신뢰성을 담보할 수 있다. 이는 UDP 등을 기본 프로토콜로 이용하는 대부분의 피어-투-피어 서비스에서 특히 유용하다.
이와 같은 방식으로 메시지 송수신 모듈(300)에서 데이터를 수신 단말(104) 측으로 효과적으로 전송하기 위해서는 한 번에 전송 가능한 메시지의 크기를 적절히 조절할 필요가 있다. 만약 한 번에 전송하는 메시지의 용량이 너무 작을 경우에는 전체 데이터 전송을 위한 트랜잭션의 개수가 증가하게 되어 전송 속도가 저하되며, 반대로 메시지 용량이 너무 클 경우에는 한번에 전송하는 조각의 개수가 가용한 대역폭(bandwidth)을 초과하게 되어 다수의 패킷 드롭(packet drop) 또는 과도한 패킷 딜레이(packet delay)가 발생하게 되는 바, 패킷 재전송으로 인해 전송 효율이 낮아지는 문제가 발생하기 때문이다.
또한 피어-투-피어 서비스(202)에서는 트랜잭션 단위로 메시지가 전송되기 때문에, 만약 하나의 트랜잭션이 다수의 조각으로 구성되는 경우, 이 중 한 개의 조각만 유실되더라도 해당 조각의 재전송이 완료될 때까지 해당 트랜잭션이 종료될 수 없다. 이때 송신 단말(102)의 메시지 송수신 모듈(300)에서 특정 조각의 유실을 판단하기 위해서는 정해진 재전송 타임아웃까지 수신 단말(104)로부터의 ACK 메시지의 수신을 대기하여야 한다. 즉, 상기 재전송 타임아웃까지 ACK 메시지가 수신되지 않는 조각이 재전송의 대상이 된다. 따라서 재전송의 효율을 높이기 위해서는 상기 재전송 타임아웃의 주기를 짧게 가져가는 것이 좋으나, 반대로 재전송 타임아웃을 너무 짧게 가져가는 경우 정상적인 ACK 메시지까지 수신되지 못한 것으로 판단할 위험성이 있다. 때문에 현재 네트워크 상황 등을 고려하여 판단해 적절한 타임아웃을 동적으로 설정함으로써, 특정 조각의 전송 실패를 가능한 빠르게 인지 해 재전송을 빠르게 하도록 하는 것이 필요하게 된다. 이에 따라 본 발명의 실시예에서는 현재 네트워크 상황 등을 고려하여 적절한 재전송 타임아웃을 계산해 동적으로 적용하도록 함으로써, 특히 대용량 데이터의 전송에 있어 전송 속도 및 효율을 높이도록 구성하였다.
다음으로, 타임아웃 계산 모듈(302)은 메시지 송수신 모듈(300)에서 송신되는 상기 복수 개의 조각의 송신 시각 및 상기 수신 확인 메시지의 수신 시각으로부터 재전송 타임아웃을 계산한다. 구체적으로, 타임아웃 계산 모듈(302)은 상기 복수 개의 조각 각각에 대하여 각 조각의 송신 시각 및 대응되는 수신 확인 메시지의 수신 시각의 시간차를 계산하고, 계산된 상기 각 조각 별 시간차에 대한 수학적 연산을 통하여 상기 재전송 타임아웃을 계산하게 된다. 이때 상기 수학적 연산은 상기 각 조각 별 시간차의 평균값, 중간값, 최대값 또는 최소값 중 어느 하나일 수 있다. 이를 좀 더 상세히 설명하면 다음과 같다.
먼저, 송신 단말(102)의 타임아웃 계산 모듈(302)은 현재 전송 중인 트랜잭션의 각 조각들에 대한 ACK 메시지 수신 시점을 이용해 각 조각 별 송신 시각과 수신 시각의 시각차, 즉 라운드트립 타임(RTT; Round Trip Time)을 계산할 수 있다. 도 4는 본 발명의 일 실시예에 따른 타임아웃 계산 모듈(302)에서 라운드트립 타임(RTT; Round-Trip Time)을 계산하는 과정을 설명하기 위한 예시한 것이다.
타임아웃 계산 모듈(302)은 상기와 같은 방법으로 해당 트랜잭션의 각 조각 별 RTT를 계산하여 저장한 후, 해당 트랜잭션에 대한 처리가 종료되는 시점에서 저장된 상기 각 조각 별 RTT를 이용하여 다음 트랜잭션에서 사용할 재전송 타임아웃을 계산할 수 있다. 이때 상기 재전송 타임아웃은 전술한 바와 같이, 각 조각 별 RTT의 평균값, 중간값, 최대값 또는 최소값 중 어느 하나일 수 있으며, 필요한 경우 계산된 상기 값에 적절한 계수를 곱한 값을 상기 재전송 타임아웃으로 사용할 수 있다.
다음으로, 전송률 계산 모듈(304)은 수신 단말(104)로부터 상기 복수 개의 조각에 대한 전송 지연 정보를 수신하고, 수신된 상기 정보로부터 가용 전송률(achievable throughput)을 계산한다. 이때 전송률 계산 모듈(304)에서 수신하는 상기 복수 개의 조각에 대한 전송 지연 정보는, 상기 수신 단말에서 수신한 상기 복수 개의 조각 각각의 수신 간격에 대한 수학적 연산을 통하여 계산될 수 있으며, 상기 수학적 연산은 상기 수신 단말에서 수신한 상기 복수 개의 조각 각각의 수신 간격의 평균값, 중간값, 최대값 또는 최소값 중 어느 하나일 수 있다. 이를 좀 더 구체적으로 설명하면 다음과 같다.
UDP 기반의 피어-투-피어 서비스에서 대용량 데이터를 빠른 속도로 보내기 위해서는 네트워크(106)로 전송이 가능한 가용 전송률(achievable throughput)을 정확히 알고 이에 따라 적절하게 한번에 전송하는 조각의 양을 조절하는 것이 필요하다. 네트워크(106)로 한 번에 전송 가능한 가용 전송률은 전송되는 각 조각 사이의 시간 간격(gap)을 이용하여 측정할 수 있다. 도 5는 본 발명의 일 실시예에 따른 전송 지연 정보의 계산 과정을 설명하기 위한 예시도이다.
도시된 바와 같이, 송신 단말(102)의 가용 전송률은 전송되는 패킷 사이의 간격을 이용해 측정하는 것이 가능하다. 전술한 바와 같이, 송신 단말(102) 측에서는 하나의 트랜잭션에 해당하는 조각들을 동시에 수신 단말(104) 측으로 전송한다. 이 경우, 송신 단말(102)에서 송신되는 각 조각들의 간격(t1)은 송신 단말(102) 내에서 가능한 최소값을 가지게 된다.
그러나 네트워크의 상황의 따라 각 조각들은 전송 과정에서 지연이 발생하게 되고, 도 5의 오른쪽 그래프에서 알 수 있는 바와 같이, 수신 단말(104)에서 수신한 각각의 조각 사이의 간격(t2)는 송신 시 간격(t1)보다 증가하는 경우가 발생할 수 있다. 이에 따라 전송률 계산 모듈(304)은 수신 단말(104) 측으로부터 상기 t2 값을 수신하고, 이 값에 따라 현재 네트워크에서의 가용 전송률을 계산할 수 있다. 구체적으로, 상기 가용 전송률은 수신된 상기 t2 값과는 반비례 관계를 가진다. 즉, t2 값이 증가할수록 네트워크상에서의 전송 지연 또한 커진다는 의미이므로 가용 전송률은 그만큼 줄어들게 된다. 다만, 본 발명의 실시예들은 상기 수신 단말에서의 각 조각 간 수신 간격으로부터 가용 전송률을 계산하는 구체적인 수식 등에 한정되는 것은 아니며, 네트워크의 특성 등을 고려하여 전술한 관계를 만족하는 범위 내에서 적절한 관계식을 선택할 수 있다. 또한, 상기 t2 값은 각 트랜잭션의 마지막 ACK 메시지에 포함되어 수신 단말(104)에서 송신 단말(102)로 전달될 수 있으나, 반드시 그런 것은 아니며 수신 단말(104)은 별도의 메시지를 통해 수신 단말(104)로부터 송신 단말(102)로 전달될 수 있다.
전송 제어 모듈(306)은 상기 재전송 타임아웃 및 상기 가용 전송률을 고려하여 상기 메시지 송수신 모듈에서 전송할 다음 메시지의 조각 개수를 계산한다. 구체적으로, 전송 제어 모듈(306)은 상기 재전송 타임아웃 값이 작을수록 상기 다음 메시지의 용량이 상기 가용 전송률에 근접하도록 상기 다음 메시지의 조각 개수를 조절할 수 있다. 또한, 전송 제어 모듈(306)은 상기 재전송 타임아웃 값이 증가함에 따라 상기 가용 전송률 대비 상기 다음 메시지의 용량의 비율이 감소하도록 상기 다음 메시지의 조각 개수를 조절할 수 있다.
예를 들어, 만약 송신 단말(102)과 수신 단말(104) 간의 RTT가 매우 작은 경우 타임아웃 계산 모듈(302)에 의하여 계산되는 재전송 타임아웃 또한 작아지게 된다. 이 경우에는 전송률 계산 모듈(304)에서 계산한 가용 전송률에 매우 근접하도록 각 트랜잭션의 조각 개수를 조절하여 전송을 할 수 있다. 이 경우 재전송이 발생하지 않으면 높은 전송 속도를 획득할 수 있고 재전송이 발생하더라도 RTT가 짧기 때문에 재전송이 빠르게 이루어져 전송 속도의 손해를 크게 보지 않을 수 있기 때문이다.
반대로, 한편 송신 단말(102)과 수신 단말(104)의 RTT가 매우 큰 경우에는 재전송 발생시 전송 속도가 급격히 떨어지는 문제가 발생할 수 있기 때문에 RTT가 짧은 경우와 비교할 때 전송 속도를 적절히 떨어뜨려 재전송이 최소화 되도록 하는 것이 전송 속도를 향상시키는 데 도움이 될 수 있다. 때문에 송신 단말(102)에서는 재전송 타임아웃과 가용 전송률을 동시에 고려하여 트랜잭션 당 조각 수를 적절하게 조절하도록 한다. 다시 말해, 가용 전송률은 현 단계에서 트랜잭션에 포함 가능한 조각 개수의 상한을 결정하는 데 사용되며, 재전송 타임아웃은 상기 상한에 얼마나 근접하도록 트랜잭션당 조각 수를 조절할 것인가를 결정하는 데 사용된다. 일반적으로 네트워크 상에서 전송 가능한 패킷 크기는 프로토콜에 따라 일정한 값으로 고정되므로, 트랜잭션 당 조각 수가 증가하면 해당 트랜잭션에 해당하는 메시지의 크기가 증가하며, 반대로 트랜잭션 당 조각 수가 감소하면 해당 트랜잭션에 해당하는 메시지의 크기 또한 감소하게 된다.
한편, 본 발명의 실시예에서 가용 전송률은 전술한 전송률 계산 모듈(304)에서 계산될 수 있으나, 실시예에 따라 전송률 계산 모듈(304)이 피어-투-피어 서비스(202)에 포함되지 않는 경우 전송 제어 모듈(306)은 관리자 등에 의해 설정된 값을 가용 전송률로 사용할 수도 있다.
또한, 실시예에 따라 타임아웃 계산 모듈(302)이 피어-투-피어 서비스에(200)에 포함되지 않는 경우, 전송 제어 모듈(306)은 상기 가용 전송률이 높을수록 상기 다음 메시지의 조각 개수가 증가하며, 상기 가용 전송률이 낮을수록 상기 다음 메시지의 조각 개수가 감소하도록 상기 다음 메시지의 조각 개수를 조절할 수 있다.
한편, 전송 제어 모듈(306)에서 결정된 다음 메시지의 조각 개수의 적용은 데이터의 메시지 단위로의 분할이 어디에서 이루어지는가에 따라 달라지게 된다. 만약 애플리케이션(200)에서 전송 대상 데이터를 복수 개의 메시지로 분할하고, 분할된 메시지를 순차적으로 피어-투-피어 서비스(202)로 전송하는 경우, 전송 제어 모듈(306)은 계산된 상기 다음 메시지의 조각 개수를 상기 메시지의 전송을 요청한 애플리케이션(200)으로 송신하게 된다. 그러면, 애플리케이션(200)은 수신된 상기 다음 메시지의 조각 개수에 따라 적절한 사이즈로 전송을 요청할 다음 메시지를 생성하고, 생성된 상기 다음 메시지를 메시지 송수신 모듈(300)로 제공한다.
그러나 이와 달리 메시지 송수신 모듈(300)에서 데이터를 메시지 단위로 분할하는 경우, 전송 제어 모듈(306)은 계산된 상기 다음 메시지의 조각 개수를 메시지 송수신 모듈(300)로 제공하다. 그러면 메시지 송수신 모듈(300)은, 수신된 상기 다음 메시지의 조각 개수에 따라 전송을 요청할 다음 메시지를 생성할 수 있다.
도 6은 본 발명의 일 실시예에 따른 피어-투-피어 메시지 송수신 방법(600)을 설명하기 위한 흐름도이다.
단계 602에서, 메시지 송수신 모듈(300)은 전송 대상 메시지를 수신한다.
단계 604에서, 메시지 송수신 모듈(300)은 수신된 메시지에 트랜잭션 번호(transaction number)를 부여한다.
단계 606에서, 메시지 송수신 모듈(300)은 상기 메시지를 복수 개의 조각(fragment)으로 분할한다.
단계 608에서, 메시지 송수신 모듈(300)은 분할된 상기 복수 개의 조각을 네트워크를 통해 수신 단말(104)로 송신한다.
단계 610에서, 메시지 송수신 모듈(300)은 수신 단말(104)로부터 상기 복수 개의 조각 각각에 대한 수신 확인 메시지를 수신한다.
단계 612에서, 타임아웃 계산 모듈(302)은 상기 복수 개의 조각의 송신 시각 및 상기 수신 확인 메시지의 수신 시각으로부터 재전송 타임아웃을 계산한다.
단계 614에서, 전송률 계산 모듈(304)은 수신 단말(104)로부터 상기 복수 개의 조각에 대한 전송 지연 정보를 수신하고, 수신된 상기 정보로부터 가용 전송률(achievable throughput)을 계산한다. 상기 재전송 타임아웃 및 상기 가용 전송률을 계산하는 구체적인 과정에 대해서는 앞서 상세히 설명하였다.
단계 616에서, 전송 제어 모듈(306)은 상기 재전송 타임아웃 및 상기 가용 전송률을 고려하여 상기 메시지 송수신 모듈에서 전송할 다음 메시지의 조각 개수를 계산한다. 상기 과정은 송신 데이터가 모두 수신 단말(104)로 전송 완료될 때까지 메시지 단위로 반복 수행된다.
한편, 본 발명의 실시예는 본 명세서에서 기술한 방법들을 컴퓨터상에서 수행하기 위한 프로그램을 포함하는 컴퓨터 판독 가능 기록매체를 포함할 수 있다. 상기 컴퓨터 판독 가능 기록매체는 프로그램 명령, 로컬 데이터 파일, 로컬 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체는 본 발명을 위하여 특별히 설계되고 구성된 것들이거나, 또는 컴퓨터 소프트웨어 분야에서 통상적으로 사용 가능한 것일 수 있다. 컴퓨터 판독 가능 기록매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체, CD-ROM, DVD와 같은 광 기록 매체, 플로피 디스크와 같은 자기-광 매체, 및 롬, 램, 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함할 수 있다.
이상에서 본 발명의 대표적인 실시예들을 상세하게 설명하였으나, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 상술한 실시예에 대하여 본 발명의 범주에서 벗어나지 않는 한도 내에서 다양한 변형이 가능함을 이해할 것이다. 그러므로 본 발명의 권리범위는 설명된 실시예에 국한되어 정해져서는 안 되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
100: 피어-투-피어 메시지 송수신 시스템
102: 송신 단말
104: 수신 단말
106: 네트워크
200: 애플리케이션
202: 피어-투-피어 서비스
300: 메시지 송수신 모듈
302: 타임아웃 계산 모듈
304: 전송률 계산 모듈
306: 전송 제어 모듈

Claims (26)

  1. 메시지를 복수 개의 조각(fragment)으로 분할하고, 분할된 상기 복수 개의 조각을 네트워크를 통해 수신 단말로 송신하며, 상기 수신 단말로부터 상기 복수 개의 조각 각각에 대한 수신 확인 메시지를 수신하는 메시지 송수신 모듈;
    상기 복수 개의 조각의 송신 시각 및 상기 수신 확인 메시지의 수신 시각으로부터 재전송 타임아웃을 계산하는 타임아웃 계산 모듈; 및
    상기 재전송 타임아웃을 고려하여 상기 메시지 송수신 모듈에서 전송할 다음 메시지의 조각 개수를 계산하는 전송 제어 모듈을 포함하는 피어-투-피어 기반 데이터 전송 장치.
  2. 청구항 1에 있어서,
    상기 타임아웃 계산 모듈은, 상기 복수 개의 조각 각각에 대하여 각 조각의 송신 시각 및 대응되는 수신 확인 메시지의 수신 시각의 시간차를 계산하고, 계산된 상기 각 조각 별 시간차에 대한 수학적 연산을 통하여 상기 재전송 타임아웃을 계산하는, 피어-투-피어 기반 데이터 전송 장치.
  3. 청구항 2에 있어서,
    상기 수학적 연산은 상기 각 조각 별 시간차의 평균값, 중간값, 최대값 또는 최소값 중 어느 하나인, 피어-투-피어 기반 데이터 전송 장치.
  4. 청구항 1에 있어서,
    상기 수신 단말로부터 상기 복수 개의 조각에 대한 전송 지연 정보를 수신하고, 수신된 상기 정보로부터 가용 전송률(achievable throughput)을 계산하는 전송률 계산 모듈을 더 포함하며,
    상기 전송 제어 모듈은, 상기 재전송 타임아웃 및 상기 가용 전송률을 고려하여 상기 메시지 송수신 모듈에서 전송할 다음 메시지의 조각 개수를 계산하는, 피어-투-피어 기반 데이터 전송 장치.
  5. 청구항 4에 있어서,
    상기 복수 개의 조각에 대한 전송 지연 정보는, 상기 수신 단말에서 수신한 상기 복수 개의 조각 각각의 수신 간격에 대한 수학적 연산을 통하여 계산되는, 피어-투-피어 기반 데이터 전송 장치.
  6. 청구항 5에 있어서,
    상기 수학적 연산은 상기 수신 단말에서 수신한 상기 복수 개의 조각 각각의 수신 간격의 평균값, 중간값, 최대값 또는 최소값 중 어느 하나인, 피어-투-피어 기반 데이터 전송 장치.
  7. 청구항 4에 있어서,
    상기 전송 제어 모듈은, 상기 재전송 타임아웃 값이 작을수록 상기 가용 전송률을 초과하지 않는 범위에서 상기 다음 메시지의 용량이 증가하도록 상기 다음 메시지의 조각 개수를 조절하는, 피어-투-피어 기반 데이터 전송 장치.
  8. 청구항 4에 있어서,
    상기 전송 제어 모듈은, 상기 재전송 타임아웃 값이 증가함에 따라 상기 가용 전송률 대비 상기 다음 메시지의 용량의 비율이 감소하도록 상기 다음 메시지의 조각 개수를 조절하는, 피어-투-피어 기반 데이터 전송 장치.
  9. 청구항 1에 있어서,
    상기 전송 제어 모듈은, 계산된 상기 다음 메시지의 조각 개수를 상기 메시지의 전송을 요청한 애플리케이션으로 송신하며,
    상기 애플리케이션은, 수신된 상기 다음 메시지의 조각 개수에 따라 전송을 요청할 다음 메시지를 생성하고, 생성된 상기 다음 메시지를 상기 메시지 송수신 모듈로 제공하는, 피어-투-피어 기반 데이터 전송 장치.
  10. 청구항 1에 있어서,
    상기 전송 제어 모듈은, 계산된 상기 다음 메시지의 조각 개수를 상기 메시지 송수신 모듈로 제공하며,
    상기 메시지 송수신 모듈은, 수신된 상기 다음 메시지의 조각 개수에 따라 전송을 요청할 다음 메시지를 생성하는, 피어-투-피어 기반 데이터 전송 장치.
  11. 메시지 송수신 모듈에서, 메시지를 복수 개의 조각(fragment)으로 분할하고, 분할된 상기 복수 개의 조각을 네트워크를 통해 수신 단말로 송신하며, 상기 수신 단말로부터 상기 복수 개의 조각 각각에 대한 수신 확인 메시지를 수신하는 단계;
    타임아웃 계산 모듈에서, 상기 복수 개의 조각의 송신 시각 및 상기 수신 확인 메시지의 수신 시각으로부터 재전송 타임아웃을 계산하는 단계; 및
    전송 제어 모듈에서, 상기 재전송 타임아웃을 고려하여 상기 메시지 송수신 모듈에서 전송할 다음 메시지의 조각 개수를 계산하는 단계를 포함하는 피어-투-피어 기반 데이터 전송 방법.
  12. 청구항 11에 있어서,
    상기 타임아웃을 계산하는 단계는, 상기 복수 개의 조각 각각에 대하여 각 조각의 송신 시각 및 대응되는 수신 확인 메시지의 수신 시각의 시간차를 계산하고, 계산된 상기 각 조각 별 시간차에 대한 수학적 연산을 통하여 상기 재전송 타임아웃을 계산하는, 피어-투-피어 기반 데이터 전송 방법.
  13. 청구항 12에 있어서,
    상기 수학적 연산은 상기 각 조각 별 시간차의 평균값, 중간값, 최대값 또는 최소값 중 어느 하나인, 피어-투-피어 기반 데이터 전송 방법.
  14. 청구항 11에 있어서,
    상기 타임아웃을 계산하는 단계의 수행 이후,
    전송률 계산 모듈에서, 상기 수신 단말로부터 상기 복수 개의 조각에 대한 전송 지연 정보를 수신하고, 수신된 상기 정보로부터 가용 전송률(achievable throughput)을 계산하는 단계를 더 포함하며,
    상기 다음 메시지의 조각 개수를 계산하는 단계는, 상기 재전송 타임아웃 및 상기 가용 전송률을 고려하여 상기 메시지 송수신 모듈에서 전송할 다음 메시지의 조각 개수를 계산하는, 피어-투-피어 기반 데이터 전송 방법.
  15. 청구항 14에 있어서,
    상기 복수 개의 조각에 대한 전송 지연 정보는, 상기 수신 단말에서 수신한 상기 복수 개의 조각 각각의 수신 간격에 대한 수학적 연산을 통하여 계산되는, 피어-투-피어 기반 데이터 전송 방법.
  16. 청구항 15에 있어서,
    상기 수학적 연산은 상기 수신 단말에서 수신한 상기 복수 개의 조각 각각의 수신 간격의 평균값, 중간값, 최대값 또는 최소값 중 어느 하나인, 피어-투-피어 기반 데이터 전송 방법.
  17. 청구항 14에 있어서,
    상기 다음 메시지의 조각 개수를 계산하는 단계는, 상기 재전송 타임아웃 값이 작을수록 상기 가용 전송률을 초과하지 않는 범위에서 상기 다음 메시지의 용량이 증가하도록 상기 다음 메시지의 조각 개수를 조절하는, 피어-투-피어 기반 데이터 전송 방법.
  18. 청구항 14에 있어서,
    상기 다음 메시지의 조각 개수를 계산하는 단계는, 상기 재전송 타임아웃 값이 증가함에 따라 상기 가용 전송률 대비 상기 다음 메시지의 용량의 비율이 감소하도록 상기 다음 메시지의 조각 개수를 조절하는, 피어-투-피어 기반 데이터 전송 방법.
  19. 청구항 11에 있어서,
    상기 다음 메시지의 조각 개수를 계산하는 단계는, 계산된 상기 다음 메시지의 조각 개수를 상기 메시지의 전송을 요청한 애플리케이션으로 송신하는 단계를 더 포함하며,
    상기 애플리케이션은, 수신된 상기 다음 메시지의 조각 개수에 따라 전송을 요청할 다음 메시지를 생성하고, 생성된 상기 다음 메시지를 상기 메시지 송수신 모듈로 제공하는, 피어-투-피어 기반 데이터 전송 방법.
  20. 청구항 11에 있어서,
    상기 다음 메시지의 조각 개수를 계산하는 단계는, 계산된 상기 다음 메시지의 조각 개수를 상기 메시지 송수신 모듈로 제공하는 단계를 더 포함하며,
    상기 메시지 송수신 모듈은, 수신된 상기 다음 메시지의 조각 개수에 따라 전송을 요청할 다음 메시지를 생성하는, 피어-투-피어 기반 데이터 전송 방법.
  21. 메시지를 복수 개의 조각(fragment)으로 분할하고, 분할된 상기 복수 개의 조각을 네트워크를 통해 수신 단말로 송신하는 메시지 송수신 모듈;
    상기 수신 단말로부터 상기 복수 개의 조각에 대한 전송 지연 정보를 수신하고, 수신된 상기 정보로부터 가용 전송률(achievable throughput)을 계산하는 전송률 계산 모듈; 및
    계산된 상기 가용 전송률을 고려하여 상기 메시지 송수신 모듈에서 전송할 다음 메시지의 조각 개수를 계산하는 전송 제어 모듈을 포함하는 피어-투-피어 기반 데이터 전송 장치.
  22. 청구항 21에 있어서,
    상기 복수 개의 조각에 대한 전송 지연 정보는, 상기 수신 단말에서 수신한 상기 복수 개의 조각 각각의 수신 간격에 대한 수학적 연산을 통하여 계산되는, 피어-투-피어 기반 데이터 전송 장치.
  23. 청구항 22에 있어서,
    상기 수학적 연산은 상기 수신 단말에서 수신한 상기 복수 개의 조각 각각의 수신 간격의 평균값, 중간값, 최대값 또는 최소값 중 어느 하나인, 피어-투-피어 기반 데이터 전송 장치.
  24. 청구항 4에 있어서,
    상기 전송 제어 모듈은, 상기 가용 전송률이 높을수록 상기 다음 메시지의 조각 개수가 증가하며, 상기 가용 전송률이 낮을수록 상기 다음 메시지의 조각 개수가 감소하도록 상기 다음 메시지의 조각 개수를 조절하는, 피어-투-피어 기반 데이터 전송 장치.
  25. 청구항 21에 있어서,
    상기 전송 제어 모듈은, 계산된 상기 다음 메시지의 조각 개수를 상기 메시지의 전송을 요청한 애플리케이션으로 송신하며,
    상기 애플리케이션은, 수신된 상기 다음 메시지의 조각 개수에 따라 전송을 요청할 다음 메시지를 생성하고, 생성된 상기 다음 메시지를 상기 메시지 송수신 모듈로 제공하는, 피어-투-피어 기반 데이터 전송 장치.
  26. 청구항 21에 있어서,
    상기 전송 제어 모듈은, 계산된 상기 다음 메시지의 조각 개수를 상기 메시지 송수신 모듈로 제공하며,
    상기 메시지 송수신 모듈은, 수신된 상기 다음 메시지의 조각 개수에 따라 전송을 요청할 다음 메시지를 생성하는, 피어-투-피어 기반 데이터 전송 장치.
KR1020140060733A 2014-05-21 2014-05-21 피어-투-피어 기반 데이터 전송 장치 및 방법 KR101609922B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020140060733A KR101609922B1 (ko) 2014-05-21 2014-05-21 피어-투-피어 기반 데이터 전송 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140060733A KR101609922B1 (ko) 2014-05-21 2014-05-21 피어-투-피어 기반 데이터 전송 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20150134000A KR20150134000A (ko) 2015-12-01
KR101609922B1 true KR101609922B1 (ko) 2016-04-20

Family

ID=54882507

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140060733A KR101609922B1 (ko) 2014-05-21 2014-05-21 피어-투-피어 기반 데이터 전송 장치 및 방법

Country Status (1)

Country Link
KR (1) KR101609922B1 (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100420885B1 (ko) 1995-04-28 2004-06-04 코닌클리케 필립스 일렉트로닉스 엔.브이. 무선통신시스템

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100420885B1 (ko) 1995-04-28 2004-06-04 코닌클리케 필립스 일렉트로닉스 엔.브이. 무선통신시스템

Also Published As

Publication number Publication date
KR20150134000A (ko) 2015-12-01

Similar Documents

Publication Publication Date Title
KR101576585B1 (ko) 지연된 확인응답에 의한 tcp 프록시 세션에 대한 버퍼 사용량 감소
KR102187810B1 (ko) 통신 시스템에서 데이터 흐름 제어 장치 및 방법
US8943206B2 (en) Network bandwidth detection and distribution
EP3547580B1 (en) Data sending method and apparatus, and data receiving method and apparatus
US7995475B2 (en) Reliable transport protocol providing receiver-based congestion control
US20150271232A1 (en) Transport accelerator implementing request manager and connection manager functionality
JP2019520745A (ja) 同時接続の総スループットを改善するためのシステム及び方法
US8521901B2 (en) TCP burst avoidance
US20160380898A1 (en) Controlling a transmission control protocol window size
US11088957B2 (en) Handling of data packet transfer via a proxy
WO2022121469A1 (zh) 一种流量控制方法、装置、设备及可读存储介质
JP5807710B2 (ja) コンテンツ配信システム、コンテンツ配信方法及びプログラム
WO2017114231A1 (zh) 一种报文发送方法、tcp代理以及tcp客户端
CN104683259A (zh) Tcp拥塞控制方法及装置
WO2019052264A1 (zh) 传输报文的方法、网络组件和计算机可读存储介质
WO2013017001A1 (zh) 一种实现应用性能自适应的方法、装置及系统
JP2010067015A (ja) ファイル送信装置、ファイル受信装置、ファイル送受信システム及びそのプログラム
KR100737678B1 (ko) 멀티미디어 스트리밍 서비스에 대한 지연시간 분석방법
KR101609922B1 (ko) 피어-투-피어 기반 데이터 전송 장치 및 방법
KR102354699B1 (ko) 네트워크 연결 제어 장치 및 그 방법
US20140369189A1 (en) Method of controlling packet transmission in network system and network system transmitting packet using pseudo-tcp agent
Kharat et al. Congestion control performance investigation of ModQUIC protocol using JioFi network: A case study
CN113141631B (zh) 双连接数据分流方法、装置、设备及存储介质
Hisamatsu et al. Network Friendly Transmission Control for Progressive Download over TCP.
Takeda et al. Performance Evaluation on Control Parameters for Segmented File Download Method Using PR-SCTP

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
FPAY Annual fee payment

Payment date: 20190102

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20200121

Year of fee payment: 5