KR101151615B1 - Udp기반의 p2p 데이터 전송 방법 및 시스템 - Google Patents

Udp기반의 p2p 데이터 전송 방법 및 시스템 Download PDF

Info

Publication number
KR101151615B1
KR101151615B1 KR1020100115036A KR20100115036A KR101151615B1 KR 101151615 B1 KR101151615 B1 KR 101151615B1 KR 1020100115036 A KR1020100115036 A KR 1020100115036A KR 20100115036 A KR20100115036 A KR 20100115036A KR 101151615 B1 KR101151615 B1 KR 101151615B1
Authority
KR
South Korea
Prior art keywords
packet
peer
transaction code
receiving
data buffer
Prior art date
Application number
KR1020100115036A
Other languages
English (en)
Other versions
KR20120053756A (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 KR1020100115036A priority Critical patent/KR101151615B1/ko
Publication of KR20120053756A publication Critical patent/KR20120053756A/ko
Application granted granted Critical
Publication of KR101151615B1 publication Critical patent/KR101151615B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/12Arrangements for detecting or preventing errors in the information received by using return channel
    • H04L1/16Arrangements for detecting or preventing errors in the information received by using return channel in which the return channel carries supervisory signals, e.g. repetition request signals
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/22Traffic shaping

Abstract

UDP 기반으로 P2P 데이터 전송을 하는 방법이 개시된다. 일 실시예에 따른 UDP 기반의 P2P 데이터 전송 방법은 송신측 피어가 데이터를 패킷 단위로 분할하여 동일한 트랜잭션 코드(transaction code), 상이한 분할 코드(fragmentation code), 및 총 분할 코드 개수(total fragmentation count)를 포함하는 복수의 패킷을 각각 생성하고, 수신측 피어로 상기 패킷을 전송하는 단계; 및 수신측 피어는 수신된 상기 패킷의 트랜잭션 코드 및 분할 코드를 포함하는 응답 메세지를 송신측 피어로 전송하는 단계를 포함한다.

Description

UDP기반의 P2P 데이터 전송 방법 및 시스템{METHOD AND SYSTEM FOR P2P DATA TRANSMISSION BASED ON UDP}
본 발명은 P2P 데이터 전송 방법 및 시스템에 대한 것으로, 더욱 상세하게는 UDP를 기반으로 하면서 데이터의 전송 및 전송 순서를 보장하며 동시에 고속으로 데이터를 전송할 수 있도록 하는 UDP기반의 P2P 데이터 전송 방법 및 시스템에 관한 것이다.
P2P(Peer to Peer) 기술이란 인터넷을 통해 각자의 컴퓨터 안에 있는 음악 파일이나 문서, 동영상 파일뿐만 아니라 DB, CPU 등을 공유할 수 있게 해주는 기술이다. P2P는 인터넷에 연결된 개인들이 각자 보유하고 있는 음악파일이나 동영상 파일 등을 공유하여 원하는 파일을 다운로드 받는 '파일공유' 서비스로 유명해졌다. P2P 기술은 인터넷상의 정보를 검색엔진 등을 통해 찾는 수직적 방식과 달리 네트워크에 연결된 컴퓨터 등과 같은 피어(Peer)로부터 수평적으로 정보를 제공받고 검색 및 다운로드한다.
이를 위해 각각의 피어는 자신의 주소, 자신이 소유한 파일 조각의 고유 코드 등을 데이터로 생성해 온라인상에 배포하고, 배포된 데이터를 수신하고자 하는 피어는 온라인상의 파일 정보(해당 피어의 주소와 파일 조각의 고유 코드 등)를 통해 대상을 검색한 후 해당 데이터를 요청한다. 특히, UDP를 이용한 종래의 P2P 데이터 전송 방법의 경우, 전송을 보장하지 않는 UDP의 특성상 데이터 요청 명령을 수신한 피어는 무결성을 검증하기 위한 무결성 체크 코드를 전송하는 데이터에 삽입하고, 데이터를 수신하는 피어는 무결성 체크 코드를 통해 수신 데이터의 무결성을 검증하는 방식을 채택하고 있다.
그러나, 이러한 방식의 프로토콜은 피어 간의 파일 전송을 위한 프로토콜로서 피어 간에 다양한 종류의 정보를 주고 받을 수 없는 문제점이 있으며 양방향으로 데이터를 주고받을 수 없다는 문제점이 있다. 예를 들어, 파일 전송 요청을 하였으나 특정 패킷이 손실되었을 때 특정 패킷에 대한 재전송을 요청할 수 없기 때문에 전체 데이터를 모두 폐기하고 전체 데이터를 재수신하여야 하는 문제점이 있다.
본 발명은 UDP를 기반으로 하면서 데이터의 전송 및 전송 순서를 보장하며 동시에 고속으로 데이터를 전송할 수 있는 UDP기반의 P2P 데이터 전송 방법 및 시스템을 제공하는데 목적이 있다.
상술한 목적을 달성하기 위하여, 본 발명의 일 실시예에 따른 UDP기반의 P2P 데이터 전송 방법은 송신측 피어가 데이터를 패킷 단위로 분할하여 동일한 트랜잭션 코드(transaction code), 상이한 분할 코드(fragmentation code), 및 총 분할 코드 개수(total fragmentation count)를 포함하는 복수의 패킷을 각각 생성하고, 수신측 피어로 상기 패킷을 전송하는 단계; 및 수신측 피어는 수신된 상기 패킷의 트랜잭션 코드, 분할 코드, 및 총 분할 코드 개수를 포함하는 응답 메세지를 송신측 피어로 전송하는 단계를 포함한다.
본 발명의 실시예들에 따르면, 전송 순서 및 전송 결과를 보장할 수 있는 UDP 기반의 P2P 통신 프로토콜의 정의가 가능해 P2P 기반으로 쌍방향 고속 데이터 통신이 가능하게 된다.
도 1은 본 발명의 일 실시예에 따라 피어 간에 데이터를 전송하는 과정을 도시하는 순서도.
도 2는 본 발명의 일 실시예에 따라 수신측 피어에서 수신한 패킷을 재조합하여 데이터를 생성하는 과정을 도시하는 순서도.
도 3은 본 발명의 일 실시예에 따라 송신측 피어가 수신측 피어로부터 응답 메세지를 수신한 후, 다음 패킷 전송을 처리하는 과정을 도시하는 순서도.
이하, 첨부된 도면을 참조하여 본 발명의 구체적인 실시 예들을 설명하기로 한다. 그러나 이는 예시적 실시예에 불과하며 본 발명은 이에 제한되지 않는다.
본 발명을 설명함에 있어서, 본 발명과 관련된 공지기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략하기로 한다. 그리고, 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
또한, 이하의 설명에 있어서, 신호 또는 정보의 "전송", "통신", "송신", "수신" 기타 이와 유사한 의미의 용어는 일 구성요소에서 다른 구성요소로 신호 또는 정보가 직접 전달되는 것뿐만이 아니라 다른 구성요소를 거쳐 전달되는 것도 포함한다. 특히 신호 또는 정보를 일 구성요소로 "전송" 또는 "송신"한다는 것은 그 신호 또는 정보의 최종 목적지를 지시하는 것이고 직접적인 목적지를 의미하는 것이 아니다. 이는 신호 또는 정보의 "수신"에 있어서도 동일하다. 또한 본 명세서에 있어서, 2 이상의 데이터 또는 정보가 "관련"된다는 것은 하나의 데이터 (또는 정보) 를 획득하면, 그에 기초하여 다른 데이터 (또는 정보)의 적어도 일부를 획득할 수 있음을 의미한다.
본 발명의 기술적 사상은 청구범위에 의해 결정되며, 이하의 실시예는 본 발명의 기술적 사상을 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 효율적으로 설명하기 위한 일 수단일 뿐이다.
본 발명의 실시예들은 UDP 기반의 P2P 데이터 전송 방법 및 시스템에 대한 것으로서 전송되는 데이터 각각에 데이터를 구별하기 위한 트랜잭션 코드(transaction code)를 부여하며, 트랜잭션 코드의 관리를 통해 데이터의 전송 순서 및 전송 결과를 보장한다. 또한 대용량의 데이터를 고속으로 전송하기 위해 응용 계층(application layer)에서 트랜스포트 계층(transport layer)으로 대용량의 데이터 전송을 직접 요청할 수 있도록 허용한다. 또한, 본 발명의 실시예들에 따르면, 트랜스포트 계층에서 UDP로 데이터를 전송하기 전에, 대용량 데이터를 실제 네트워크로 전송이 가능한 크기, 예를 들어 MTU(최대 전송 단위; maximum transfer unit) 크기로 분할(fragmentation)하는 과정을 제공한다.
즉, 데이터의 전송은 각각의 데이터에 부여된 트랜잭션 코드 단위로 관리되며, 전송하는 데이터의 크기가 대용량인 경우에는 데이터를 복수 개의 패킷으로 분할한다. 이 경우, 각각의 패킷은 동일한 트랜잭션 코드를 갖는 반면, 서로 다른 분할 코드(fragmentation code)를 가지게 된다. 송신측 피어(Peer)의 전송 계층에서는 응용계층으로부터 데이터 전송을 요청받는 경우, 동일한 트랜잭션 코드를 갖는 패킷을 동시에 UDP로 수신측 피어에게 전송한다.
전송된 패킷을 수신하는 수신측 피어는 데이터의 전송 순서 및 전송 결과 보장을 위해 수신한 데이터에 대한 응답 메시지를 송신측 피어로 전송한다. 응답 메시지는 수신측 피어가 수신한 패킷의 트랜잭션 코드 및 분할 코드 정보를 포함하고 있기 때문에 송신측 피어는 응답 메세지에 포함된 트랜잭션 코드 및 분할 코드 정보를 통해 패킷의 전송이 성공적인지 여부를 판단하게 된다.
한편, 송신측 피어가 수신측 피어로부터 응답 메세지를 수신하지 못한 경우, 송신측 피어는 재전송 허용 범위 내에서 응답 메시지를 수신할 때까지 해당 패킷을 재전송한다. 만약, 재전송 허용 한도까지 해당 패킷을 재전송했으나 응답 메시지를 수신하지 못하는 경우에는, 해당 패킷의 전송은 실패한 것으로 처리한다.
도 1은 본 발명의 일 실시예에 따라 피어 간에 데이터를 전송하는 과정을 도시하는 순서도이다.
도 1에 도시된 바와 같이, 송신측 피어(100)는 응용 계층으로부터 데이터 전송 요청(110)을 수신하게 되면, 데이터를 네트워크로 전송 가능한 크기, 예를 들어, MTU 크기로 분할(fragmentation)을 하여 복수 개의 패킷들을 생성한 후, UDP로 패킷들을 각각 전송한다. 복수 개의 패킷들 각각은 동일한 트랜잭션 코드를 가지지만, 서로 다른 분할 코드를 가지게 된다. 예를 들어, 트랜잭션 코드는 4byte의 정수값을 가지며 0부터 시작해서 1씩 증가하는 방식으로 구성될 수 있다. 또한, 분할 코드는 동일 트랜잭션 코드 내에서 해당 패킷의 순서를 표현하는 방식으로 첫 번째 패킷은 0번을 2번째 패킷은 1번을 n번째 패킷은 n-1을 가지도록 구성될 수 있다. 또한, 패킷은 총 분할 코드 개수(total fragmentation count)를 포함하며, 총 분할 코드 개수는 분할 코드의 개수로서 응용계층에서 전송을 요청한 패킷을 총 n개로 분할하는 경우 n을 가지게 된다. 본 발명의 일 실시예에 따르면, P2P 데이터 전송을 위해서, 상술한 트랜잭션 코드, 분할 코드, 및 총 분할 코드 개수를 포함하는 P2P 헤더를 전송을 위한 패킷 앞에 포함시켜 전송한다.
송신측 피어(100)는 동일한 트랜잭션 코드를 갖는 패킷들을 전송하기 전에, 송신 데이터 버퍼(미도시)에 저장된 패킷들을 확인한다. 송신 데이터 버퍼는 전송이 실패된 패킷의 재전송을 위해, 전송되는 패킷들을 저장하는 공간이다. 송신 데이터 버퍼에 패킷이 존재한다는 것은 현재 전송하고자 하는 패킷보다 이전 트랜잭션 코드를 갖는 패킷이 전송 중임을 의미한다. 따라서, 이 경우 현재 전송을 요청받은 데이터의 패킷을 전송할 수 없다는 것을 의미하며, 송신측 피어(100)는 전송하고자 하는 패킷을 송신 데이터 버퍼에 저장한 후 해당 패킷의 전송 작업을 종료한다. 반면, 송신 데이터 버퍼가 비어있는 경우, 송신측 피어(100)는 전송하고자 하는 패킷을 송신 데이터 버퍼에 저장한 후 수신측 피어(200)로 해당 패킷을 전송한다.
도 1에 도시된 바와 같이, 송신측 피어(100)는 데이터 전송 요청을 수신하면(단계 110), 송신측 피어로 패킷을 전송한다(단계 120). 그러나, 수신측 피어(200)로 해당 패킷이 전송되지 않는 경우(단계 120), 송신측 피어(100)는 수신측 피어(200)로부터 응답 메세지를 수신하지 못하게 된다. 따라서, 이 경우 송신측 피어(100)는 해당 패킷을 수신측 피어(200)로 재전송한다(단계 130). 이 때, 송신측 피어(100)는 재전송 허용 범위 내에서 응답 메시지를 수신할 때까지 해당 패킷을 재전송할 수 있다. 만약, 송신측 피어(100)가 재전송 허용 한도까지 해당 패킷을 재전송했으나 응답 메시지를 수신하지 못하는 경우에는, 해당 패킷의 전송은 실패한 것으로 처리한다.
한편, 송신측 피어(100)가 전송한 패킷이 수신측 피어(200)에게 도달하여(단계 130), 패킷 수신 처리를 하더라도(단계 140), 수신측 피어(200)가 전송한 응답 메세지가 송신측 피어에게 도달하지 않는 경우가 있다(단계 150). 이 경우에도, 송신측 피어(100)는 수신측 피어로부터 전송된 패킷에 대한 응답 메세지를 받지 못한 것이므로, 송신측 피어(100)는 수신측 피어(200)에게 해당 패킷을 다시 재전송하게 된다(단계 160). 즉, 송신측 피어(100)는 응답 메시지를 수신하지 못하는 경우를 대비해 주기적으로 송신 데이터 버퍼에 저장된 패킷 중 가장 작은 트랜잭션 코드를 갖는 데이터를 수신측 피어(200)로 재전송한다. 이 경우 재전송 횟수를 1씩 증가시키게 되며 재전송 한도에 해당하는 횟수만큼 재전송을 하였으나 응답 메시지를 수신하지 못하는 경우 전송 실패로 처리하고, 응용 계층에 전송 실패를 통보한다.
수신측 피어(200)는 송신측 피어(100)가 전송한 패킷을 수신하게 되면, 수신한 패킷의 트랜잭션 코드, 분할 코드 및 총 분할 코드 개수를 포함하는 응답 메세지를 생성하여 송신측 피어(100)에게 전송한다(단계 170). 수신측 피어(200)는 단계 130에서 송신측 피어(100)로부터 이미 해당 패킷을 수신한 경우라도, 응답 메세지의 유실(단계 150) 등으로 인해 재전송이 이루어질 수 있기 때문에 해당 패킷을 이미 수신하였는지 여부와 상관없이 수신측 피어(100)는 응답 메세지를 재전송한다(단계 170). 송신측 피어(100)는 수신측 피어(200)로부터 해당 패킷의 응답 메세지를 수신하면(단계 170), 응답 메세지에 포함된 트랜잭션 코드 및 분할 코드를 통해 해당 패킷의 데이터 전송을 성공으로 처리한다(단계 180).
한편, 위에서 설명한 것과 같이 UDP 기반의 데이터 전송을 보장하기 위해서 패킷 전송 후 응답 메시지를 수신하는 경우 동일한 트랜잭션 코드의 데이터를 전송하기 위해서는 최소한 쌍방의 네트워크 딜레이 2배에 해당하는 시간이 필요하게 된다. 따라서, 이 경우에는 고속의 데이터 통신을 위해 하나의 트랜잭션 코드를 이용해 전송하는 데이터의 크기를 크게 하면 된다.
도 2는 본 발명의 일 실시예에 따라 수신측 피어에서 수신한 패킷을 재조합하여 데이터를 생성하는 과정을 도시하는 순서도이다.
본 발명의 실시예에서는, 송신측 피어(100)가 데이터를 예를 들어, MTU 크기에 맞춰 데이터를 복수 개의 패킷으로 분할하여 전송하기 때문에, 수신측 피어(200)는 수신한 복수 개의 패킷들을 재조합하여 데이터를 생성하는 과정을 수행한다. 각각의 패킷은 트랜잭션 코드, 분할 코드, 총 분할 코드 개수를 포함하고 있으므로, 수신측 피어(200)는 트랜잭션 코드 및 분할 코드, 총 분할 코드 개수를 통해 동일한 트랜잭션 코드를 갖는 패킷의 총 개수 및 각 패킷이 몇 번째 패킷인지에 대한 정보를 알 수 있다. 따라서, 수신측 피어(200)는 송신측 피어(100)로부터 패킷들을 수신하면, 각 패킷의 트랜잭션 코드, 분할 코드, 및 총 분할 코드 개수에 따라서 해당 패킷을 데이터 재조합을 위한 수신 데이터 버퍼(미도시)에 저장한 후, 저장된 패킷들을 재조합하여 송신측 피어(100)가 전송하고자 했던 데이터를 생성한다. 그리고, 생성된 데이터에 해당하는 트랜잭션 코드는 수신 데이터 버퍼에 저장되고, 저장된 트랜잭션 코드에 기초하여 반복 수신되는 패킷을 드롭(drop)하게 된다.
구체적으로, 도 2에 도시된 바와 같이, 수신측 피어(200)는 송신측 피어(100)로부터 패킷을 수신한다(단계 210). 수신측 피어(200)는 수신한 패킷을 수신 데이터 버퍼(미도시)에 저장을 한 후, 저장된 패킷들을 재조합하여 데이터를 생성하게 되는데, 수신된 패킷이 이미 데이터 재조합이 완료된 데이터의 패킷이 반복적으로 수신될 수 있다. 따라서, 이 경우에는 반복 수신되는 패킷을 수신 데이터 버퍼에 저장할 필요가 없이 해당 패킷을 드롭해야 하므로, 수신 데이터 버퍼는 수신된 패킷의 드롭 여부를 판단하게 된다(단계 220). 수신 데이터 버퍼에는 이전에 패킷들을 재조합하여 생성한 데이터의 트랜잭션 코드를 저장하고 있으므로, 현재 수신된 패킷의 트랜잭션 코드를 수신 데이터 버퍼에 기저장된 트랜잭션 코드와 비교하게 된다. 현재 수신된 패킷의 트랜잭션 코드가 수신 데이터 버퍼에 저장된 트랜잭션 코드와 같거나 또는 작은 경우에는, 현재 수신된 패킷에 대응되는 데이터가 이미 생성된 것을 의미하므로, 현재 수신된 패킷은 반복 수신된 패킷을 의미하게 된다. 따라서, 이 경우에는 수신된 패킷을 드롭하게 된다(단계 230). 이 경우에도, 수신측 피어(200)는 수신된 패킷의 반복 수신 여부에 상관없이 응답 메세지를 송신측 피어(100)에게 전송한다.
수신측 피어(200)는 수신된 패킷이 재조합될 데이터의 패킷으로 판단하게 되면, 수신된 패킷을 수신 데이터 버퍼에 저장하게 된다(단계 240). 동일한 트랜잭션 코드를 갖는 패킷들이 수신 데이터 버퍼에 저장이 되어 데이터 재조합이 가능하다고 판단되면, 수신측 피어(200)는 네트워크를 통해 전송된 분할된 패킷들을 재조합하여 최초 송신측 피어(100)가 전송하고자 했던 데이터를 생성한다(단계 250). 수신측 피어(200)는 재조합이 완료된 데이터를 응용 계층으로 통보하고, 재조합이 완료된 데이터의 트랜잭션 코드를 수신 데이터 버퍼에 저장한다(단계 260). 수신 데이터 버퍼에 저장된 트랜잭션 코드는 상술한 바와 같이 수신된 패킷을 드롭할지 여부를 판단하는데 사용된다.
도 3은 본 발명의 일 실시예에 따라 송신측 피어가 수신측 피어로부터 응답 메세지를 수신한 후, 다음 패킷 전송을 처리하는 과정을 도시하는 순서도이다.
도 3에 도시된 바와 같이, 송신측 피어(100)는 전송한 패킷에 대한 응답 메세지를 수신측 피어(200)로부터 수신한다(단계 310). 응답 메세지에는 전송된 패킷의 트랜잭션 코드 및 분할 코드가 포함되어 있으므로, 송신측 피어(100)는 응답 메세지의 트랜잭션 코드 및 분할 코드와 동일한 트랜잭션 코드 및 분할 코드를 갖는 패킷을 송신 데이터 버퍼에서 삭제한다(단계 320). 송신측 피어(100)는 상기 패킷을 상기 송신 데이터 버퍼에서 삭제한 후, 현재 수신한 응답 메세지의 트랜잭션 코드와 동일한 트랜잭션 코드를 갖는 패킷이 송신 데이터 버퍼에 있는지 여부를 확인한다(단계 330). 송신 데이터 버퍼에 현재 수신한 응답 메세지의 트랜잭션 코드와 동일한 트랜잭션 코드를 갖는 패킷이 존재하지 않는 경우에는, 해당 트랜잭션 코드를 갖는 데이터의 전송이 완료된 것을 의미하므로, 송신측 피어(100)는 다음 트랜잭션 코드에 해당하는 패킷들을 송신 데이터 버퍼에서 가져와 수신측 피어(200)로 전송한다.
이와는 별개로 송신측 피어(100)는 타이머를 이용해 주기적으로 송신 데이터 버퍼를 체크해 송신 데이터 버퍼에 저장된 패킷 중 가장 낮은 트랜잭션 코드를 지닌 패킷들을 재전송한다. 이 때 송신측은 재전송 시도 회수를 같이 증가시키게 된다. 재전송 시도 회수가 최대 허용 한도를 초과하게 되면 수신측 피어(200)로 데이터 전송이 실패한 것으로 처리하고 응용 계층에 데이터 전송 실패를 통보한다.
이와 같이 본 발명의 실시예들에 따르면, P2P 네트워크 환경에서 데이터를 간편하고 효율적으로 전송하는 방법을 제공하는 동시에, UDP의 단점으로 지적되는 비연결 지향형 프로토콜로서의 비신뢰성 전송의 단점을 없애고 P2P 네트워크 환경에서의 신뢰성 전송을 확보할 수 있다.
이상에서 대표적인 실시예를 통하여 본 발명에 대하여 상세하게 설명하였으나, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 상술한 실시예에 대하여 본 발명의 범주에서 벗어나지 않는 한도 내에서 다양한 변형이 가능함을 이해할 것이다.
그러므로 본 발명의 권리범위는 설명된 실시예에 국한되어 정해져서는 안 되며, 후술하는 특허청구범위뿐만 아니라 이 특허청구범위와 균등한 것들에 의해 정해져야 한다.
100: 송신측 피어 200: 수신측 피어

Claims (18)

  1. UDP 기반으로 P2P 데이터 전송을 하는 방법에 있어서,
    송신측 피어가 데이터를 패킷 단위로 분할하여 동일한 트랜잭션 코드(transaction code), 상이한 분할 코드(fragmentation code), 및 총 분할 코드 개수(total fragmentation count)를 포함하는 복수의 패킷을 각각 생성하고, 수신측 피어로 상기 패킷을 전송하는 단계;
    수신측 피어는 수신된 상기 패킷의 트랜잭션 코드, 분할 코드, 및 총 분할 코드 개수를 포함하는 응답 메세지를 송신측 피어로 전송하는 단계; 및
    상기 수신측 피어는 수신된 상기 패킷을 수신 데이터 버퍼에 저장한 후, 상기 패킷을 재조합하여 상기 데이터를 생성하고 응용 계층으로 통보하며, 재조합된 상기 데이터의 트랜잭션 코드를 상기 수신 데이터 버퍼에 저장하는 단계를 포함하는, UDP 기반의 P2P 데이터 전송 방법.
  2. 제 1 항에 있어서,
    상기 패킷을 전송하는 단계는,
    상기 패킷의 트랜잭션 코드와 동일한 트랜잭션 코드를 갖는 패킷이 송신 데이터 버퍼에 존재하는지 여부를 판단하는 단계를 더 포함하는, UDP 기반의 P2P 데이터 전송 방법.
  3. 제 2 항에 있어서,
    상기 패킷의 트랜잭션 코드와 동일한 트랜잭션 코드를 갖는 패킷이 송신 데이터 버퍼에 존재하는 경우, 상기 패킷을 송신 데이터 버퍼에 저장한 후 상기 패킷의 전송을 종료하는, UDP 기반의 P2P 데이터 전송 방법.
  4. 제 2 항에 있어서,
    상기 패킷의 트랜잭션 코드와 동일한 트랜잭션 코드를 갖는 패킷이 송신 데이터 버퍼에 존재하지 않는 경우, 상기 패킷을 송신 데이터 버퍼에 저장한 후 상기 패킷을 수신측 피어로 전송하는, UDP 기반의 P2P 데이터 전송 방법.
  5. 제 1 항에 있어서,
    상기 송신측 피어는 수신된 상기 응답 메세지의 트랜잭션 코드 및 분할 코드와 동일한 트랜잭션 코드 및 분할 코드를 갖는 패킷을 송신 데이터 버퍼에서 삭제하는 단계를 더 포함하는, UDP 기반의 P2P 데이터 전송 방법.
  6. 제 5 항에 있어서,
    상기 패킷을 상기 송신 데이터 버퍼에서 삭제하는 단계 후,
    상기 패킷의 트랜잭션 코드와 동일한 트랜잭션 코드를 갖는 패킷이 상기 송신 데이터 버퍼에 존재하지 않는 경우, 상기 송신측 피어는 송신 데이터 버퍼에 있는 다음 트랜잭션 코드를 포함하는 패킷을 수신측에 전송하는 단계를 더 포함하는, UDP 기반의 P2P 데이터 전송 방법.
  7. 제 1 항에 있어서,
    상기 송신측 피어가 상기 응답 메세지를 수신하지 못하는 경우, 상기 송신측 피어는 송신 데이터 버퍼에 저장된 가장 낮은 트랜잭션 코드를 갖는 패킷을 상기 수신측 피어로 재전송하는 단계를 더 포함하는, UDP 기반의 P2P 데이터 전송 방법.
  8. 제 7 항에 있어서,
    상기 송신측 피어는 소정 횟수만큼 가장 낮은 트랜잭션 코드를 갖는 패킷을 상기 수신측 피어로 전송하는, UDP 기반의 P2P 데이터 전송 방법.
  9. 삭제
  10. 제 1 항에 있어서,
    상기 수신측 피어는 수신된 상기 패킷을 수신 데이터 버퍼에 저장하기 전에, 수신된 상기 패킷의 트랜잭션 코드가 상기 수신 데이터 버퍼에 기저장된 재조합된 데이터의 트랜잭션 코드보다 작거나 같은 경우, 상기 패킷의 수신을 드롭(drop)하는 단계를 더 포함하는, UDP 기반의 P2P 데이터 전송 방법.
  11. UDP 기반으로 P2P 데이터 전송을 하는 시스템에 있어서,
    데이터를 패킷 단위로 분할하여 동일한 트랜잭션 코드(transaction code), 상이한 분할 코드(fragmentation code), 및 총 분할 코드 개수(total fragmentation count)를 포함하는 복수의 패킷을 각각 생성하고, 수신측 피어로 상기 패킷을 전송하는 송신측 피어; 및
    수신된 상기 패킷의 트랜잭션 코드, 분할 코드, 및 총 분할 코드 개수(total fragmentation count)를 포함하는 응답 메세지를 송신측 피어로 전송하는 수신측 피어를 포함하며,
    상기 수신측 피어는 수신된 상기 패킷을 수신 데이터 버퍼에 저장한 후, 상기 패킷을 재조합하여 상기 데이터를 생성하고 응용 계층으로 통보하며, 재조합된 상기 데이터의 트랜잭션 코드를 상기 수신 데이터 버퍼에 저장하는, UDP 기반의 P2P 데이터 전송 시스템.
  12. 제 11 항에 있어서,
    송신측 피어는,
    상기 패킷 송신 전에 상기 패킷의 트랜잭션 코드와 동일한 트랜잭션 코드를 갖는 패킷이 송신 데이터 버퍼에 존재하는지 여부를 판단하며,
    상기 패킷의 트랜잭션 코드와 동일한 트랜잭션 코드를 갖는 패킷이 송신 데이터 버퍼에 존재하는 경우, 상기 패킷을 송신 데이터 버퍼에 저장한 후 상기 패킷의 전송을 종료하고,
    상기 패킷의 트랜잭션 코드와 동일한 트랜잭션 코드를 갖는 패킷이 송신 데이터 버퍼에 존재하지 않는 경우, 상기 패킷을 송신 데이터 버퍼에 저장한 후 상기 패킷을 수신측 피어로 전송하는, UDP 기반의 P2P 데이터 전송 시스템.
  13. 제 11 항에 있어서,
    상기 송신측 피어는 수신된 상기 응답 메세지의 트랜잭션 코드 및 분할 코드와 동일한 트랜잭션 코드 및 분할 코드를 갖는 패킷을 송신 데이터 버퍼에서 삭제하는, UDP 기반의 P2P 데이터 전송 시스템.
  14. 제 13 항에 있어서,
    상기 송신측 피어는 상기 패킷을 상기 송신 데이터 버퍼에서 삭제한 후.
    상기 패킷의 트랜잭션 코드와 동일한 트랜잭션 코드를 갖는 패킷이 상기 송신 데이터 버퍼에 존재하지 않는 경우, 상기 송신측 피어는 송신 데이터 버퍼에 있는 다음 트랜잭션 코드를 포함하는 패킷을 수신측에 전송하는, UDP 기반의 P2P 데이터 전송 시스템.
  15. 제 11 항에 있어서,
    상기 송신측 피어가 상기 응답 메세지를 수신하지 못하는 경우, 상기 송신측 피어는 송신 데이터 버퍼에 저장된 가장 낮은 트랜잭션 코드를 갖는 패킷을 상기 수신측 피어로 재전송하는, UDP 기반의 P2P 데이터 전송 시스템.
  16. 제 15 항에 있어서,
    상기 송신측 피어는 소정 횟수만큼 가장 낮은 트랜잭션 코드를 갖는 패킷을 상기 수신측 피어로 전송하는, UDP 기반의 P2P 데이터 전송 시스템.
  17. 삭제
  18. 제 11 항에 있어서,
    상기 수신측 피어는 수신된 상기 패킷을 수신 데이터 버퍼에 저장하기 전에, 수신된 상기 패킷의 트랜잭션 코드가 상기 수신 데이터 버퍼에 기저장된 재조합된 데이터의 트랜잭션 코드보다 작거나 같은 경우, 상기 패킷의 수신을 드롭(drop)하는, UDP 기반의 P2P 데이터 전송 시스템.
KR1020100115036A 2010-11-18 2010-11-18 Udp기반의 p2p 데이터 전송 방법 및 시스템 KR101151615B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020100115036A KR101151615B1 (ko) 2010-11-18 2010-11-18 Udp기반의 p2p 데이터 전송 방법 및 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100115036A KR101151615B1 (ko) 2010-11-18 2010-11-18 Udp기반의 p2p 데이터 전송 방법 및 시스템

Publications (2)

Publication Number Publication Date
KR20120053756A KR20120053756A (ko) 2012-05-29
KR101151615B1 true KR101151615B1 (ko) 2012-06-08

Family

ID=46269839

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100115036A KR101151615B1 (ko) 2010-11-18 2010-11-18 Udp기반의 p2p 데이터 전송 방법 및 시스템

Country Status (1)

Country Link
KR (1) KR101151615B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101533056B1 (ko) * 2014-06-25 2015-07-01 (주)넷텐션 안정성 향상을 위한 사용자 데이터그램 프로토콜 네트워킹 방법

Also Published As

Publication number Publication date
KR20120053756A (ko) 2012-05-29

Similar Documents

Publication Publication Date Title
US9900168B2 (en) System and method for reliable multicast data transport
US9385875B2 (en) Scalable transport with cluster-consensus rendezvous
CN101828372B (zh) 对网络连接的tcp行为并行化
US7702917B2 (en) Data transfer using hyper-text transfer protocol (HTTP) query strings
US8024788B2 (en) Method and apparatus for reliable, high speed data transfers in a high assurance multiple level secure environment
KR102046792B1 (ko) 송신 노드로부터 목적지 노드로의 데이터 전송 방법
CN104662865A (zh) 混合型http和udp内容分发
TW200816759A (en) Systems and methods for assured communications with quality of service
CN104065643A (zh) 基于树形逻辑的多媒体网络传输方法及系统
WO2019052264A1 (zh) 传输报文的方法、网络组件和计算机可读存储介质
Dong et al. In-packet network coding for effective packet wash and packet enrichment
US8650313B2 (en) Endpoint discriminator in network transport protocol startup packets
ITVI20120026A1 (it) Metodi per la condivisione di files relativi al protocollo bit fountain
KR101151615B1 (ko) Udp기반의 p2p 데이터 전송 방법 및 시스템
Gupta et al. Fast interest recovery in content centric networking under lossy environment
Yuan et al. Sidecar: in-network performance enhancements in the age of paranoid transport protocols
US10992702B2 (en) Detecting malware on SPDY connections
Coonjah et al. An investigation of the TCP meltdown problem and proposing raptor codes as a novel to decrease TCP retransmissions in VPN systems
US9591058B2 (en) Rapid recovery method for incomplete file transfer from sender to recipient
CN109792444B (zh) 实况内容分发系统中的播出缓冲
Hwang et al. HMTP: Multipath transport protocol for multihoming wireless erasure networks
CN104767781A (zh) 一种tcp代理装置以及方法
JPH1188396A (ja) 通信装置
KR20160010293A (ko) 컨텐츠 중심 네트워크에서 노드의 통신 방법 및 그 노드
KR20140002040A (ko) 라우터에서의 통신들을 관리하는 기술

Legal Events

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

Payment date: 20150305

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20160330

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20170309

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20180403

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20190401

Year of fee payment: 8