KR100733987B1 - 세션 가입 시간차를 이용한 다중 포워더 기반 파일 전송방법 - Google Patents
세션 가입 시간차를 이용한 다중 포워더 기반 파일 전송방법 Download PDFInfo
- Publication number
- KR100733987B1 KR100733987B1 KR1020050111411A KR20050111411A KR100733987B1 KR 100733987 B1 KR100733987 B1 KR 100733987B1 KR 1020050111411 A KR1020050111411 A KR 1020050111411A KR 20050111411 A KR20050111411 A KR 20050111411A KR 100733987 B1 KR100733987 B1 KR 100733987B1
- Authority
- KR
- South Korea
- Prior art keywords
- forwarder
- session
- terminal
- file transfer
- msg
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/16—Combinations 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
- H04L12/16—Arrangements for providing special services to substations
- H04L12/18—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
- H04L12/1854—Arrangements for providing special services to substations for broadcast or conference, e.g. multicast with non-centralised forwarding system, e.g. chaincast
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
1. 청구범위에 기재된 발명이 속한 기술분야
본 발명은, 세션 가입 시간차를 이용한 다중 포워더 기반 파일 전송 방법에 관한 것임.
2. 발명이 해결하려고 하는 기술적 과제
본 발명은, 부모 노드 및 적어도 하나의 포워더를 이용하여 신규 세션에 가입한 멤버에게 데이터를 전송함에 있어서, 기존의 응용 계층 멀티캐스트 기법을 통하여 파일을 전송할 경우 보다 적은 오버헤드로 보다 나은 전송 효율을 가지기 위한, 세션 가입 시간차를 이용한 다중 포워더 기반 파일 전송 방법을 제공하는데 그 목적이 있음.
3. 발명의 해결방법의 요지
본 발명은, 단말에서의 세션 가입 시간차를 이용한 다중 포워더 기반 파일 전송 방법에 있어서, 파일 전송 서버로 세션 가입 요청 메시지(msg_join_request)를 전송하여 해당 세션에 가입하는 세션 가입 단계; 상기 세션에 가입함에 따라 상기 파일 전송 서버로 포워더 후보 목록 요청 메시지(msg_candidates_request)를 전송하여 포워더 후보 목록을 전송받는 포워더 후보 목록 수신 단계; 상기 전송받은 포워더 후보 목록상의 단말 중에서 특정 단말을 스키핑(skipping)하는 특정 단말 스키핑 단계; 및 상기 특정 단말을 제외한 포워더 후보 목록상의 단말들로 포워더 요청 메시지(msg_vsource_join_request)를 전송하여 상기 요청을 허락한 단말을 포워더로 선택한 후 상기 선택한 포워더로부터 기프트(패킷)를 전송받는 기프트 수신 단계를 포함함.
4. 발명의 중요한 용도
본 발명은 포워더 기반 파일 전송 등에 이용됨.
응용계층 멀티캐스트, 포워더 기반, 스키핑, 파일 전송, 멤버, 소스
Description
도 1 은 본 발명에 따른 응용 계층 멀티캐스트 트리의 일실시예 구성도,
도 2 는 본 발명에 따른 멤버 리스트에 대한 일예시도,
도 3a 는 본 발명에 이용되는 다중 포워더 기반 파일 전송 과정의 일실시예 설명도,
도 3b 는 본 발명에 따른 세션 가입 시간차를 이용한 다중 포워더 기반 파일 전송 과정의 일실시예 설명도,
도 4 는 본 발명에 따른 세션 가입 시간차를 이용한 다중 포워더 기반 파일 전송 방법에 대한 일실시예 흐름도이다.
* 도면의 주요 부분에 대한 부호의 설명
S : 소스 100 : 멤버 리스트
1, 2, 3, 4, 5 : 멤버
본 발명은 세션 가입 시간차를 이용한 다중 포워더 기반 파일 전송 방법에 관한 것으로, 특히 파일 전송의 성능 향상을 위한 다중 포워더 응용 계층 멀티캐스트의 파일 전송 방법에 관한 것이다.
본 발명에서 소스(S)는 일예로 다자간 화상 회의 서버, 일대다 스트리밍 서버, 일대다 파일 전송 서버의 개념으로, 멤버(1,2,3,4,5)는 PC(Personal Computer), 통신 단말기 등과 같은 클라이언트의 개념으로 설명하기로 한다.
또한, 본 발명은 트리의 구조(구성 방법)에 관계없이 모든 트리에 적용 가능하다.
다자간 화상 회의, 일대다 스트리밍, 일대다 파일 전송 등의 응용에서는 멀티캐스트를 사용하여 데이터 전송 부담을 줄일 수 있다. IP 멀티캐스트가 가장 효율적으로 네트워크 자원을 활용하여 멀티캐스트를 지원할 수 있지만, 오랜 기간의 노력에도 불구하고, 인터넷상에서는 널리 지원되지 않고 있다.
따라서, 멀티캐스트 기능을 응용계층에서 구현하려는 연구가 활발히 진행되고 있다. 응용 계층 멀티캐스트는 IP 멀티캐스트에 비하여 제작 및 적용이 용이하다는 장점을 갖기 때문이다.
일대다 응용 계층 멀티캐스트에서 데이터를 전송할 때 소스와 전체 수신자들 사이에, 소스가 루트가 되는 스패닝 트리를 구성하는 것이 일반적이다. 그런데, 이러한 트리 구조는 크게 두 가지 약점을 갖는다.
첫째, 트리의 중간 노드 중 네트워크 환경이나 컴퓨팅 성능이 안 좋은 노드에 의해 그 자손 노드들이 체감하는 효율이 떨어질 수 있다. 둘째, 각 멤버는 단 하나의 부모 노드로부터 데이터를 받아야 하기 때문에, 부모 노드에 갑작스런 오류가 발생하면 데이터 수신에 실패하게 된다.
상기와 같은 응용 계층 멀티캐스트에 대한 설명과 그 문제점에 대해 상세하게 설명하면 하기와 같다.
응용 계층 멀티캐스트는 파일 전송 성능의 향상을 위한 방식으로, 'ROMA', 'Splitstream', 'Bullet', 'Informed', 'Zhu', 'Overcast' 등이 제안되었으며, 이는 크게 단일 포워더 방식과 다중 포워더 방식으로 나눌 수 있다.
먼저, 단일 포워더 방식은 응용 계층 멀티캐스트를 이용하여 데이터를 전송할 경우 IP 멀티캐스트와 마찬가지로 트리 구조를 사용한다. 트리를 사용하는 응용 계층 멀티캐스트 기법은 세션에 모든 멤버가 단 하나의 포워더(부모 노드)만을 갖기 때문에 단일 포워더 방식으로 분류된다. 이러한, 단일 포워더 방식에는 'Overcast', 'ROMA' 등이 있다.
'Overcast' 방식은 세션에 참여하기 위한 멤버가 일단 트리의 루트에 붙게 되며, 그 후 이 멤버는 데이터 수신율이 감소되지 않는 범위 내에서 루트에서 트리의 하부로 차츰 이동하게 되는데, 트리의 루트에 너무 많은 멤버가 붙기 때문에 대역폭의 낭비를 초래한다. 이때, 데이터 수신율은 “10KB 데이터를 수신하는데 걸리는 시간”을 기준으로 측정한다. 또한, 각 멤버는 주기적으로 다른 멤버를 감시함으로서 좀 더 나은 멤버의 자식 노드로 붙게 되며, 이 과정을 반복함으로써 전체 세션의 성능을 향상시킨다. 또한, 데이터 전송의 신뢰성은 응답 메시지(ACK)를 통해 이루어진다.
'ROMA' 방식은 트리 전송 방식과 함께 FEC(Forward Error Correction) 코딩 방식을 사용함으로써, 데이터의 신뢰적 전송을 보장한다는 것으로, 스토어-앤-포워드(이하, 'store-and-forward' 라 함) 기법 대신 포워드-웬-피서블(이하, 'forward-when-feasible' 라 함) 기법을 사용한다.
즉, 'ROMA' 방식에서 이용하는 'store-and-forward' 기법은 멀티캐스트를 위하여 수신 버퍼에 도착한 모든 패킷을 모든 송신 버퍼들로 전달하기 때문에, 전체 세션의 성능이 트리 상에서 가장 느린 링크에 의해 제한될 수 밖에 없다. 이러한 문제점을 해결하기 위해 무한 버퍼를 사용할 수 있지만, 이 역시 오버레이 네트워크의 적합한 재구성(adaptive reconfiguration)의 어려움 등과 같이 몇 가지 문제를 내포하고 있다.
'ROMA' 방식에서 이용하는 'forward-when-feasible' 기법은 수신 버퍼에 도착한 패킷을 그 패킷을 즉시 받을 수 있는 송신 버퍼로만 전달한다. 따라서, 이미 패킷으로 꽉 찬 송신 버퍼의 경우 패킷을 받지 않아도 되고 트리 상에서 가장 느린 링크가 세션 전체의 성능을 제한하는 병목현상이 발생하지 않는다. 또한, 'ROMA'는 'TCP' 체인을 사용함으로써, 잘 구성된 오버레이 트리를 통하여 오히려 IP 유니캐스트보다 나은 성능을 보일 수 있다.
이러한 단일 포워더 방식은 몇 가지 단점을 가질 수 있는데, 첫 번째 데이터의 수신율이 트리의 하부로 내려갈수록 감소하기 때문에 트리상의 보다 좋은 지점 에 위치하기 위하여 다른 멤버를 계속적으로 감시해야 하는 단점이 있다. 두 번째, 각 멤버들은 오로지 부모 노드에 의존하고 있기 때문에 노드/링크 실패에 적절히 대처하지 못한다는 단점이 있다.
이러한 단점을 극복하기 위해 다중 포워더 방식이 연구되고 있다. 다중 포워더 방식으로는 'Bullet', 'Informed delivery', 'Two-redundant multicast mesh', 'Splitstream' 등이 있다.
먼저, 'Bullet' 방식은 FEC 기반의 데이터 인코딩을 가정하고 있으며, 기존의 트리 기반 기법의 단점을 극복하기 위하여 오버레이 메쉬 트리 위에 구성된다. 'Bullet'에서 각 노드들은 협력하여 트리를 구성하는데, 이때 트리의 구성은 기존의 어떠한 기법을 사용해도 무방하다. 즉, 'Bullet'은 임의의 트리 구조 위에 새로운 하나의 레이어, 즉 high-bandwidth 메쉬를 만들고 메쉬를 통하여 P2P(peer to peer) 방식으로 데이터를 전송함으로써 그 성능을 향상시킨다. 이때, 메쉬를 구성하기 위하여 각 멤버는 자신이 필요로 하는 데이터를 가지고 있는 다른 멤버를 찾아야 한다. 따라서, 멤버간에는 지속적으로 자신이 어떠한 데이터를 가지고 있는지에 대한 정보 교환이 일어나게 된다.
이러한 과정에서 컨트롤 오버헤드가 발생하게 되며, 정보 교환시 패킷 크기를 줄이기 위하여 모든 데이터 정보를 다 표현하는 대신 요약본(summary)을 사용하게 되는데, 요약본은 정확한 상태 정보를 표현할 수 없기 때문에 필연적으로 데이터의 중복 수신을 발생시킨다.
'Informed delivery' 방식은 FEC 기반의 데이터 인코딩을 가정하고 있으며, 대용량 파일을 광대역 통신망을 통하여 전송할 때에 성능 향상을 위한 기법이며, 멤버간의 협력 전송에 중점을 두고 있다. 'Digital fountain encoding approach' 기법을 사용함으로써 각 호스트는 본 데이터를 적은 오버헤드로 복구해 낼 수 있다.
또한, 'Informed delivery' 방식은 다중 포워더 방식을 사용하기 때문에 데이터의 중복 수신 문제가 있으나 중복율을 낮추기 위하여 협력 관계에 있는 멤버들 사이에 패킷 보유 정보를 효율적으로 교환하는 알고리즘을 제안하고 있다. 하지만, 제안한 정보 교환 알고리즘에도 불구하고 패킷의 중복 수신은 여전히 문제로 남으며, 다른 멤버의 패킷 보유 정보를 알기 위해서는 끊임없이 요약본을 교환해야 하고, 이는 결국 컨트롤 오버헤드를 증가시킨다.
'Two-redundant multicast mesh' 방식은 'Zhu'의 저자들이 응용 계층 멀티캐스트의 성능을 향상시키기 위해 제안한 메쉬 구조 기반의 기법으로서, 네트워크 코딩을 사용하게 되는데, 이때 두 개의 포워더를 동시에 가질 수 있게 함으로써 전체 세션의 성능을 높인다. 또한, 피어 선택(peer selection)에 있어서 패스 대역폭을 RTT(Round Trip Time)보다 중요하게 고려한다.
'Splitstream' 방식은 높은 대역폭(high-bandwidth) 응용 계층 멀티캐스트 기법으로, 각 멤버들은 서로 협력하여 전송 토폴로지를 구성하게 되는데, 트리상의 대다수 멤버들은 단말에 위치한다. 이때, 단말에 위치한 멤버는 포워딩 로드를 하지 않기 때문에 불균형을 초래하며, 결과적으로 세션의 성능을 저하시킨다.
따라서, 포워딩 로드의 분산을 위하여 포레스트(forest)라는 것을 이용하는 데, 포레스트는 복수개의 트리로 구성되며 한 트리의 내부 노드는 다른 트리의 단말 노드가 된다. 또한, 전송해야 할 컨텐트(content)를 여러 스트립(stripe)으로 나누어 각 스트립을 다른 트리를 통하여 전송하며, 각 멤버는 가능한 모든 트리에 가입하게 된다. 각 멤버는 자신이 전송하고자 하는 스트립의 개수를 명시함으로써, 다중 트리를 이용한 전송을 통해 실패를 극복할 수 있다.
이러한 다중 포워더를 사용하게 되면 수신 시간을 줄일 수 있으나, 다중 포워더를 선택하는 과정에서 몇 가지 오버헤드가 발생하게 된다. 첫째, 패킷의 중복 수신이 발생할 수 있고, 둘째 내가 갖고 있지 않은 데이터를 갖고 있는 포워더를 찾기 위해서는 각 멤버의 보유 데이터 정보를 끊임없이 교환해야 하는데, 이는 컨트롤 오버헤드를 야기시킨다.
이러한 컨트롤 오버헤드를 줄이기 위해 보유 데이터 정보의 요약본(summary)을 보내는 방식, 즉 'Informed delivery', 'Bullet' 등이 사용되고 있으나, 이러한 요약본이라는 표현의 한계는 패킷의 중복 수신을 야기시켜 상당한 컨트롤 오버헤드가 존재하게 되는 문제점이 있다.
본 발명은 상기 문제점을 해결하기 위하여 제안된 것으로, 부모 노드 및 적어도 하나의 포워더를 이용하여 신규 세션에 가입한 멤버에게 데이터를 전송함에 있어서, 기존의 응용 계층 멀티캐스트 기법을 통하여 파일을 전송할 경우 보다 적은 오버헤드로 보다 나은 전송 효율을 가지기 위한, 세션 가입 시간차를 이용한 다 중 포워더 기반 파일 전송 방법을 제공하는데 그 목적이 있다.
본 발명의 다른 목적 및 장점들은 하기의 설명에 의해서 이해될 수 있으며, 본 발명의 실시예에 의해 보다 분명하게 알게 될 것이다. 또한, 본 발명의 목적 및 장점들은 특허 청구 범위에 나타낸 수단 및 그 조합에 의해 실현될 수 있음을 쉽게 알 수 있을 것이다.
상기 목적을 달성하기 위한 본 발명의 방법은, 단말에서의 세션 가입 시간차를 이용한 다중 포워더 기반 파일 전송 방법에 있어서, 파일 전송 서버로 세션 가입 요청 메시지(msg_join_request)를 전송하여 해당 세션에 가입하는 세션 가입 단계; 상기 세션에 가입함에 따라 상기 파일 전송 서버로 포워더 후보 목록 요청 메시지(msg_candidates_request)를 전송하여 포워더 후보 목록을 전송받는 포워더 후보 목록 수신 단계; 상기 전송받은 포워더 후보 목록상의 단말 중에서 특정 단말을 스키핑(skipping)하는 특정 단말 스키핑 단계; 및 상기 특정 단말을 제외한 포워더 후보 목록상의 단말들로 포워더 요청 메시지(msg_vsource_join_request)를 전송하여 상기 요청을 허락한 단말을 포워더로 선택한 후 상기 선택한 포워더로부터 기프트(패킷)를 전송받는 기프트 수신 단계를 포함하는 것을 특징으로 한다.
또한, 본 발명의 다른 방법은, 파일 전송 서버에서의 세션 가입 시간차를 이용한 다중 포워더 기반 파일 전송 방법에 있어서, 일 단말로부터 세션 가입 요청 메시지(msg_join_request)를 수신함에 따라 상기 단말에 대한 엔트리를 생성하여 세션에 가입시키는 단계; 상기 단말로부터 첫 패킷의 시퀸스 넘버를 포함하는 패킷 수신 메시지(msg_first_packet)를 수신하는 단계; 상기 단말로부터 상기 첫 패킷 수신을 알리는 메시지를 수신함에 따라 상기 첫 패킷의 시퀀스 넘버를 토대로 바로 이전에 가입한 단말의 데이터 전송 범위인 기프트(gift) 범위(패킷 시퀸스 넘버 범위)를 설정한 후 상기 패킷 시퀸스 넘버 범위를 포함하는 메시지(msg_present)를 상기 바로 이전 가입 단말로 전송하는 단계; 및 상기 단말로부터 포워더 후보 목록 요청 메시지(msg_candidates_request)를 전송받음에 따라 포워더 후보 목록을 상기 단말로 전송하는 포워더 후보 목록 전송 단계를 포함하는 것을 특징으로 한다.
상술한 목적, 특징 및 장점은 첨부된 도면과 관련한 다음의 상세한 설명을 통하여 보다 분명해 질 것이며, 그에 따라 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 것이다. 또한, 본 발명을 설명함에 있어서 본 발명과 관련된 공지 기술에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에 그 상세한 설명을 생략하기로 한다. 이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 일실시예를 상세히 설명하기로 한다.
도 1 은 본 발명에 따른 응용 계층 멀티캐스트 트리의 일실시예 구성도이다.
도 1에 도시된 바와 같이, 본 발명에 따른 응용 계층 멀티캐스트 트리는, 하나의 소스(S)와 4개의 멤버(1, 2, 3, 4) 및 세션에 신규로 가입한 멤버(5)로 구성된 세션이며, 소스(S)에는 멤버 리스트(100)가 구비되어 있다. 여기서, 트리 구성 자체는 본 발명에 영향을 미치지 않는다. 또한, 상기 소스(S)는 일예로 파일 전송 서버를 의미하고, 상기 멤버(1, 2, 3, 4, 5)는 클라이언트(단말)로서 파일의 송/수신 기능을 수행한다.
이하, 파일 전송 서버 및 단말을 예로 들어 설명하기로 한다.
이하, 파일 전송 서버 및 단말을 예로 들어 설명하기로 한다.
먼저, 멤버 리스트(100)는 세션이 시작된 후 파일 전송 서버(소스(S))에 의해 관리되며, 도 2에 도시된 바와 같이, 단말(멤버)의 가입 순서(ji), 단말의 주소(mai), 해당 단말이 트리를 통하여 부모 노드로부터 처음 받은 패킷의 시퀸스 넘버() 및 의 엔트리를 갖는 튜플로 구성된다.
그리고, 파일 전송 서버는 일반적으로 널리 이용되는 토네이도 코드들을 사용하여 파일을 인코딩하며, 각 단말은 서로 다른 패킷을 일정 개수 이상 전송받음으로써 본 파일로 디코딩할 수 있다. 한 단말은 부모 노드와 다중 포워더로부터 데이터를 받게 되며, 단말은 파일 전송 서버로부터 제공받은 포워더 후보 중 적어도 하나 이상의 포워더를 선택하게 되는데, 포워더 후보는 자신보다 먼저 세션에 참여한 단말 중 일부가 된다. 여기서, 어떤 단말을 포워더로 지칭하고 있는 일 단말을 싱크(sink)라 정의한다.
일예로, 임의의 단말(싱크), 예를 들어 단말(5)이 세션에 신규 가입하고, 적어도 하나 이상의 포워더를 선택하는 과정은 하기와 같다.
먼저, 임의의 싱크인 단말(5)이 세션에 가입하기 위하여 파일 전송 서버로 가입 요청 메시지(msg_join_request)를 보내면, 파일 전송 서버는 이 메시지를 수신한 후 세션에 가입하고자 하는 단말(5)에 대한 엔트리를 멤버 리스트(100)에 생성하고, 세션 가입 완료 메시지(msg_join_reply)를 보냄으로써 가입 완료를 단말(5)로 알려준다.
이후, 파일 전송 서버는 하부의 트리를 통하여 데이터를 전송하며, 단말(5)이 트리를 통해 처음 패킷을 받게 되면 그 패킷의 시퀸스 넘버를 파일 전송 서버로 전송하게 되는데, 이는 첫 패킷 수신을 알리는 메시지(msg_first_packet)를 파일 전송 서버에 전달함으로써 이루어진다.
이후, 첫 패킷 수신을 알리는 메시지를 수신한 파일 전송 서버는 첫 패킷의 시퀀스 넘버를 토대로 바로 이전에 가입한 단말, 즉 단말(4)의 데이터 전송 범위인 기프트(gift) 범위(패킷 시퀸스 넘버의 범위)를 설정한 후 기프트 메시지(msg_present)를 통해 단말(4)로 전송한다.
한편, 단말(5)이 적어도 하나 이상의 포워더를 선택하는 과정은 다음과 같다.
먼저, 단말(5)이 세션에 가입됨에 따라 파일 전송 서버로 포워더 후보 목록을 요청하는 메시지(msg_candidates_request)를 보내게 되는데, 이때 포워더 후보 목록을 요청하는 메시지(msg_candidates_request)에는 단말(5)이 원하는 포워더 후보의 개수가 명시되어 있다. 여기서, 하나의 단말(5)이 가질 수 있는 최대 포워더의 개수는 δ(예를 들면, 3)으로 제한되는데, δ의 구체적 값은 각 단말의 네트워크 환경에 따라 달라질 수 있다.
이후, 포워더 후보 목록을 요청하는 목록 요청 메시지(msg_candidates_request)를 수신한 파일 전송 서버는 멤버 리스트(100)에 가입 순서대로 정렬되어 있는 포워더 후보 목록을 포함하는 목록 메시지(msg_candidates_reply)를 단말(5)로 전송한다.
이후, 포워더 후보 목록을 제공받은 단말(5)은 포워더 후보 목록상의 단말들, 즉 단말(1, 2, 3, 4)로 포워더 요청 메시지(msg_vsource_join_request)를 보내 기프트 전달을 요청하게 되는데, 이때 포워더들(단말(1, 2, 3, 4))은 기프트 전달 응답 메시지(msg_vsource_join_reply)를 통해 기프트의 전송에 대한 가부를 전달하게 되는데, 전송을 허락한 경우에만 기프트를 전달한다. 즉, 단말(5)은 기프트를 전달한 단말들을 포워더로 선택하게 된다.
또한, 단말(1, 3, 4)은 단말(5)의 기프트 요청에 따라 응답을 하지만, 단말(2)은 단말(5)의 부모 노드이기 때문에 응답을 하지 않는다. 즉, 단말(5)은 단말(1, 3, 4)을 포워더로 선택하게 된다.
한편, 본 발명은 두가지 포워더 선정 알고리즘, 즉 후진(moving backward) 알고리즘, 후진과 스키핑(moving backward with skipping) 알고리즘을 제안한다.
먼저, 후진 알고리즘의 경우 포워더를 선택하기 위하여 단말은 포워더 요청 메시지(msg_vsource_join_request)를 포워더 후보들에게 전송할 때 포워더의 세션 가입순서의 역순대로 요청하게 된다. 즉, 도 3a에 도시된 바와 같이, 가입순서가 가까운 포워더를 우선 선택한다. 이때, 포워더를 선택하는 순서가 멤버 가입의 역순이기 때문에 이를 후진 알고리즘이라 한다. 여기서, 임의의 k번째 가입한 단말의 기프트는 [, ] 사이에 존재하게 된다. 이 경우, 한 인코딩 싸이클 내에서 포워더간 기프트는 서로소이다. 따라서, FEC 코딩에 적절한 스트레치 팩터가 사용되었을 경우 패킷의 중복 수신이 거의 일어나지 않게 된다.
이러한 후진 알고리즘은, 싱크가 특정 포워더로부터 기프트를 다 받은 경우에 특정 포워더로 종료 메시지(msg_exhaust)를 전송하며, 이 메시지를 전송받은 포워더는 더 이상 해당 싱크에게 기프트를 전달하지 않고, 해당 싱크는 다음 포워더에게 후진을 통하여 기프트를 요청한다. 이와 같은 과정을 반복한다. 이때, 싱크가 현재 가지고 있는 포워더를 다 이용한 경우라면, 파일 전송 서버로 목록 요청 메시지(msg_candidates_request)를 보내는 과정을 반복하며, 파일 복구에 충분한 개수의 패킷을 받은 후 세션에서 탈퇴할 때에는 모든 포워더에게 제거 메시지(msg_remove)를 보낸다.
한편, 후진과 스키핑 알고리즘에서는 후진을 기반으로 하되, 특정 포워더 후보들을 의도적으로 선택 대상에서 배제한다. 이때, 임의의 멤버의 기프트 범위를 [, ]로 하게 되며, τ는 1보다 큰 값으로 한다. 이 경우 (k-τ+1)번째 단말부터 (k+τ-1)번째 단말까지의 기프트에는 항상 겹치는 부분이 존재하게 된다. 따라서, 기프트의 중복 수신을 방지하기 위하여 k번째 단말은 (k-τ*h)번째 단말들로부터만 기프트를 수신하게 되며, 이때 h는 1 이상이다.
도 3b는 τ=2 일 때의 후진과 스키핑 알고리즘을 나타낸다. 스키핑을 하는 이유는 다음과 같다. 단순히 후진 알고리즘에만 의존할 경우 단말(멤버)간 세션 가입 시간 간격이 짧아질수록 기프트의 크기가 작아지며, 따라서 보다 많은 포워더 후보들에게 기프트를 요청하게 된다.
또한, 기프트 요청 횟수가 많아짐에 따라 제어 메시지의 교환이 오버헤드로 작용하게 된다. 따라서, 스키핑을 통하여 한 단말이 포워더로 동작함에 있어서 지녀야 하는 기프트의 크기를 증가시키고, 대신 기프트 요청 횟수를 감소시키는 방안이 효율적이다.
위에서 설명한 두가지 포워더 선정 알고리즘에서 공통적으로 단말은 부모 노드로부터도 시퀀스 넘버가 증가하는 방향으로 패킷을 받게 되는데 이러한 과정을 전진(moving forward) 알고리즘이라 한다. 이때 패킷 시퀀스 넘버는 n-1까지 증가한 후 “0”으로 다시 피드백하게 된다. 즉, 본 발명에서는 파일 수신 시간을 단축시키기 위해 전진과 후진이 동시에 일어나게 된다.
도 4 는 본 발명에 따른 세션 가입 시간차를 이용한 다중 포워더 기반 파일 전송 방법에 대한 일실시예 흐름도이다.
먼저, 일 단말(5)이 파일 전송 서버로 세션 가입 요청 메시지(msg_join_request)를 전송하여 해당 세션에 가입한다(401).
즉, 임의의 싱크인 단말(5)이 파일 전송 서버로 세션 가입 요청 메시지(msg_join_request)를 전송한다.
이후, 파일 전송 서버가 단말(5)로부터 세션 가입 요청 메시지를 수신함에 따라 상기 단말(5)에 대한 엔트리를 멤버 리스트(100)에 생성하고, 세션 가입 완료 메시지(msg_join_reply)를 상기 단말(5)로 전달한다.
이후, 단말(5)이 트리를 통해 파일 전송 서버로부터 처음 패킷을 전달받음에 따라 상기 패킷의 시퀸스 넘버를 포함하는 패킷 수신 메시지(msg_first_packet)를 파일 전송 서버로 전달한다.
이후, 첫 패킷 수신을 알리는 메시지를 수신한 파일 전송 서버는 첫 패킷의 시퀀스 넘버를 토대로 바로 이전에 가입한 단말, 즉 단말(4)의 데이터 전송 범위인 기프트(gift) 범위(패킷 시퀸스 넘버의 범위)를 설정한 후 기프트 메시지(msg_present)를 통해 단말(4)로 전송한다.
다음으로, 단말(5)이 적어도 하나의 포워더를 선택 및 해당 포워더로부터 기프트(파일)을 전송받는 과정은 하기와 같다.
먼저, 단말(5)이 세션에 가입함에 따라 파일 전송 서버로 포워더 후보 목록을 요청하는 메시지(msg_candidates_request)를 전송한다(402). 이때, 포워더 후보 목록 요청 메시지(msg_candidates_request)에는 단말(5)이 원하는 포워더 후보의 개수가 명시되어 있다.
이후, 포워더 후보 목록 요청 메시지(msg_candidates_request)를 수신한 파일 전송 서버는 멤버 리스트(100)에 가입 순서대로 정렬되어 있는 포워더 후보 목록을 포함하는 목록 메시지(msg_candidates_reply)를 단말(5)로 전송한다(403).
이후, 단말(5)은 포워더 후보 목록상의 단말 중에서 특정 단말을 스키핑한다(404). 즉, k번째 단말은 (k-τ*h)번째 단말들로부터만 기프트를 수신하게 되며, 이때 τ는 1보다 큰 정수이고 h는 1 이상의 정수이다.
이후, 특정 단말을 제외한 후보 목록상의 단말로 포워더 요청 메시지(msg_vsource_join_request)를 전송하여 상기 요청을 허락한 단말을 포워더로 선택한 후 상기 선택한 포워더로부터 기프트(패킷)를 전송받는다(405). 이때, 포워더 요청 메시지는 세션에 늦게 가입한 순서(세션 가입순서의 역순)로 목록상의 단말들에게 전달한다.
즉, 바로 이전 단말(4)로 가장 먼저 포워더 요청 메시지를 전달하여 기프트를 전송받는다.
이후, 단말(4)로부터 기프트(전송받고자 하는 파일)를 다 받은 경우에 종료 메시지(msg_exhaust)를 전송하여 단말(4)로부터의 기프트 중단을 요청한다.
이후, 다음 포워더, 즉 단말(3)로 포워더 요청 메시지를 전달하여 전송받지 못한 기프트를 요청한다.
이러한 과정을 반복하여 전송받고자 하는 패킷을 모두 전송받는다.
이때, 싱크가 현재 가지고 있는 포워더를 다 이용한 경우라면, 파일 전송 서버로 목록 요청 메시지(msg_candidates_request)를 보내는 과정을 반복하며, 파일 복구에 충분한 개수의 패킷을 받은 후 세션에서 탈퇴할 때에는 모든 포워더에게 제거 메시지(msg_remove)를 보낸다.
상술한 바와 같은 본 발명의 방법은 프로그램으로 구현되어 컴퓨터로 읽을 수 있는 형태로 기록매체(씨디롬, 램, 롬, 플로피 디스크, 하드 디스크, 광자기 디스크 등)에 저장될 수 있다. 이러한 과정은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있으므로 더 이상 상세히 설명하지 않기로 한다.
이상에서 설명한 본 발명은, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 있어 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 여러 가지 치환, 변형 및 변경이 가능하므로 전술한 실시예 및 첨부된 도면에 의해 한정되는 것이 아니다.
상기와 같은 본 발명은, 세션에 신규 가입한 단말에 부모 노드뿐만 아니라 포워더들을 설정하여 파일을 포워딩해 줌으로써, 파일 전송 시 컨트롤 오버 헤드, 패킷 중복을 피할 수 있어 수신 시간을 단축할 수 있는 효과가 있다.
또한, 본 발명은 단말로 서로 다른 데이터를 전송하기 때문에 데이터의 중복 전송이 일어나지 않게 되며, 포워더가 제공할 수 있는 데이터 집합에 대한 정보를 집합내 패킷 번호의 최대/최소치만으로 알아낼 수 있기 때문에 컨트롤 오버 헤드를 최소화할 수 있는 효과가 있다.
또한, 본 발명은 부모 노드 및 적어도 하나의 포워더를 이용하여 신규 세션에 가입한 단말로 데이터를 전송함에 있어서, 스키핑 과정을 수행함으로써, 단순히 후진 알고리즘에만 의존할 경우 단말간 세션 가입 시간 간격이 짧아질수록 기프트의 크기가 작아지며, 따라서 보다 많은 포워더 후보들에게 기프트를 요청하게 되고, 요청 회수가 많아짐에 따라 제어 메시지의 교환이 오버헤드로 작용하게 되는 문제점을 해결할 수 있는 효과가 있다.
Claims (11)
- 단말에서의 세션 가입 시간차를 이용한 다중 포워더 기반 파일 전송 방법에 있어서,파일 전송 서버로 세션 가입 요청 메시지(msg_join_request)를 전송하여 해당 세션에 가입하는 세션 가입 단계;상기 세션에 가입함에 따라 상기 파일 전송 서버로 포워더 후보 목록 요청 메시지(msg_candidates_request)를 전송하여 포워더 후보 목록을 전송받는 포워더 후보 목록 수신 단계;상기 전송받은 포워더 후보 목록상의 단말 중에서 특정 단말을 스키핑(skipping)하는 특정 단말 스키핑 단계; 및상기 특정 단말을 제외한 포워더 후보 목록상의 단말들로 포워더 요청 메시지(msg_vsource_join_request)를 전송하여 상기 요청을 허락한 단말을 포워더로 선택한 후 상기 선택한 포워더로부터 기프트(패킷)를 전송받는 기프트 수신 단계를 포함하는 단말에서의 세션 가입 시간차를 이용한 다중 포워더 기반 파일 전송 방법.
- 제 1 항에 있어서,상기 세션 가입 단계는,파일 전송 서버로 세션 가입 요청 메시지(msg_join_request)를 전송하는 단계;상기 파일 전송 서버로부터 세션 가입 완료 메시지를 전송받는 단계; 및상기 파일 전송 서버로부터 처음 패킷을 전달받음에 따라 상기 패킷의 시퀸스 넘버를 포함하는 패킷 수신 메시지(msg_first_packet)를 상기 파일 전송 서버로 전달하는 단계를 포함하는 단말에서의 세션 가입 시간차를 이용한 다중 포워더 기반 파일 전송 방법.
- 제 1 항에 있어서,상기 포워더 후보 목록 수신 단계는,가입 순서대로 정렬되어 있는 포워더 후보 목록을 포함하는 목록 메시지(msg_candidates_reply)를 수신하는 것을 특징으로 하는 단말에서의 세션 가입 시간차를 이용한 다중 포워더 기반 파일 전송 방법.
- 제 1 항에 있어서,상기 특정 단말 스키핑 단계는,상기 단말이 k번째 단말일 경우 (k-τ*h)번째(여기서, τ는 1보다 큰 정수이고 h는 1 이상의 정수) 단말들로부터 기프트를 수신하는 것을 특징으로 하는 단말에서의 세션 가입 시간차를 이용한 다중 포워더 기반 파일 전송 방법.
- 제 1 항에 있어서,상기 기프트 수신 단계는,상기 세션에 늦게 가입한 순서(세션 가입순서의 역순)로 상기 포워더 요청 메시지를 전달하는 것을 특징으로 하는 단말에서의 세션 가입 시간차를 이용한 다중 포워더 기반 파일 전송 방법.
- 제 5 항에 있어서,상기 기프트 수신 단계는,부모 노드 및 자신을 제외한, 상기 세션에 가장 늦게 가입한 단말로 가장 먼저 포워더 요청 메시지를 전달하여 기프트를 전송받는 단계;상기 가장 늦게 가입한 단말(포워더)로부터 더 이상 전송받을 기프트가 없는 경우에 종료 메시지(msg_exhaust)를 전송하여 기프트의 전송을 중단하는 단계; 및상기 세션에 가입을 늦게 한 순서로 모든 단말로 상기 과정을 반복 수행하여 전송받고자 하는 패킷을 모두 전송받는 단계를 포함하는 단말에서의 세션 가입 시간차를 이용한 다중 포워더 기반 파일 전송 방법.
- 제 6 항에 있어서,상기 포워더 목록상의 모든 포워더로부터 모든 기프트(패킷)를 수신하지 못한 경우 상기 파일 전송 서버로 목록 요청 메시지(msg_candidates_request)를 전송하고, 그에 상응하는 새로운 포워더 목록을 수신하여 파일 복구에 충분한 개수의 패킷을 전송받는 단계; 및상기 전송받은 새로운 포워더 목록을 이용하여 모든 패킷을 수신한 후 상기 세션에서 탈퇴할 때 모든 포워더에게 제거 메시지(msg_remove)를 전송하는 단계를 더 포함하는 단말에서의 세션 가입 시간차를 이용한 다중 포워더 기반 파일 전송 방법.
- 제 1 항 내지 제 7 항 중 어느 한 항에 있어서,상기 포워더 후보 목록 요청 메시지(msg_candidates_request)는,상기 세션에 가입한 단말이 원하는 포워더 후보의 수가 명시되어 있는 것을 특징으로 하는 단말에서의 세션 가입 시간차를 이용한 다중 포워더 기반 파일 전송 방법.
- 파일 전송 서버에서의 세션 가입 시간차를 이용한 다중 포워더 기반 파일 전송 방법에 있어서,일 단말로부터 세션 가입 요청 메시지(msg_join_request)를 수신함에 따라 상기 단말에 대한 엔트리를 생성하여 세션에 가입시키는 단계;상기 단말로부터 첫 패킷의 시퀸스 넘버를 포함하는 패킷 수신 메시지(msg_first_packet)를 수신하는 단계;상기 단말로부터 상기 첫 패킷 수신을 알리는 메시지를 수신함에 따라 상기 첫 패킷의 시퀀스 넘버를 토대로 바로 이전에 가입한 단말의 데이터 전송 범위인 기프트(gift) 범위(패킷 시퀸스 넘버 범위)를 설정한 후 상기 패킷 시퀸스 넘버 범위를 포함하는 메시지(msg_present)를 상기 바로 이전 가입 단말로 전송하는 단계; 및상기 단말로부터 포워더 후보 목록 요청 메시지(msg_candidates_request)를 전송받음에 따라 포워더 후보 목록을 상기 단말로 전송하는 포워더 후보 목록 전송 단계를 포함하는 파일 전송 서버에서의 세션 가입 시간차를 이용한 다중 포워더 기반 파일 전송 방법.
- 제 9 항에 있어서,상기 포워더 후보 목록 전송 단계는,가입 순서대로 정렬되어 있는 포워더 후보 목록을 포함하는 목록 메시지(msg_candidates_reply)를 전송하는 것을 특징으로 하는 파일 전송 서버에서의 세션 가입 시간차를 이용한 다중 포워더 기반 파일 전송 방법.
- 제 9 항 또는 제 10 항에 있어서,상기 포워더 후보 목록 요청 메시지(msg_candidates_request)는,상기 세션에 가입한 단말이 원하는 포워더 후보의 수가 명시되어 있는 것을 특징으로 하는 파일 전송 서버에서의 세션 가입 시간차를 이용한 다중 포워더 기반 파일 전송 방법.
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020050111411A KR100733987B1 (ko) | 2005-11-21 | 2005-11-21 | 세션 가입 시간차를 이용한 다중 포워더 기반 파일 전송방법 |
US12/094,351 US7827243B2 (en) | 2005-11-21 | 2006-11-21 | Method for transmitting file based on multiplex forwarder |
PCT/KR2006/004900 WO2007058516A1 (en) | 2005-11-21 | 2006-11-21 | Method for transmitting file based on multiplex forwarder |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020050111411A KR100733987B1 (ko) | 2005-11-21 | 2005-11-21 | 세션 가입 시간차를 이용한 다중 포워더 기반 파일 전송방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20070053531A KR20070053531A (ko) | 2007-05-25 |
KR100733987B1 true KR100733987B1 (ko) | 2007-06-29 |
Family
ID=38048863
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020050111411A KR100733987B1 (ko) | 2005-11-21 | 2005-11-21 | 세션 가입 시간차를 이용한 다중 포워더 기반 파일 전송방법 |
Country Status (3)
Country | Link |
---|---|
US (1) | US7827243B2 (ko) |
KR (1) | KR100733987B1 (ko) |
WO (1) | WO2007058516A1 (ko) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7657648B2 (en) * | 2007-06-21 | 2010-02-02 | Microsoft Corporation | Hybrid tree/mesh overlay for data delivery |
JP5004849B2 (ja) * | 2008-03-27 | 2012-08-22 | キヤノン株式会社 | 通信システム、情報処理装置および制御方法 |
CN101414949B (zh) * | 2008-11-28 | 2011-05-18 | 阿里巴巴集团控股有限公司 | 一种链式数据传输方法、节点及*** |
US9148842B2 (en) * | 2012-10-24 | 2015-09-29 | Intel Corporation | Methods, wireless communication stations, and system for device-to-device discovery and advertisement |
KR102120945B1 (ko) | 2013-03-11 | 2020-06-09 | 삼성전자주식회사 | 멀티캐스트 그룹에 속하는 멤버 노드들 간의 협력에 기반하여 데이터를 전송하는 기지국, 멤버 노드 및 그 방법들 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1499066A1 (en) | 2003-07-14 | 2005-01-19 | Alcatel | Method for setting up a connection |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6611872B1 (en) * | 1999-01-11 | 2003-08-26 | Fastforward Networks, Inc. | Performing multicast communication in computer networks by using overlay routing |
EP1176767B1 (en) | 2000-07-27 | 2007-09-05 | Roke Manor Research Limited | Improvements in or relating to switching devices |
US6973081B1 (en) * | 2000-10-12 | 2005-12-06 | Realnetworks, Inc. | System and method for seamlessly joining multicast session |
US6965883B2 (en) * | 2002-02-20 | 2005-11-15 | Nokia Corporation | Charging mechanism for multicasting |
KR100462406B1 (ko) | 2002-11-06 | 2004-12-17 | 한국전자통신연구원 | 인터넷 기반 오버레이 멀티캐스트 트리 구성 및 관리 방법 |
KR100531785B1 (ko) | 2002-12-21 | 2005-11-29 | 엘지전자 주식회사 | UPnP 네트워크 상의 다중 포워딩 서비스 방법 및 시스템 |
DE60312347T2 (de) | 2003-12-16 | 2007-11-15 | Alcatel Lucent | Anordnung mit einem Terminal, einem Zugangsmultiplexer und einem Netzwerk |
US7457288B2 (en) * | 2003-12-26 | 2008-11-25 | Electronics And Telecommunications Research Institute | Relay multicast system and method for providing efficient group communication service |
KR100689613B1 (ko) | 2005-03-17 | 2007-03-09 | 한국정보통신대학교 산학협력단 | 다중 가상 소스 응용 계층 멀티캐스트의 파일 전송 방법 |
JP4432814B2 (ja) * | 2005-03-25 | 2010-03-17 | ヤマハ株式会社 | 演奏データ通信管理システム及び演奏データ通信管理装置 |
US7400596B1 (en) * | 2005-08-17 | 2008-07-15 | Rockwell Collins, Inc. | Dynamic, multicast routing using a quality of service manager |
-
2005
- 2005-11-21 KR KR1020050111411A patent/KR100733987B1/ko not_active IP Right Cessation
-
2006
- 2006-11-21 US US12/094,351 patent/US7827243B2/en not_active Expired - Fee Related
- 2006-11-21 WO PCT/KR2006/004900 patent/WO2007058516A1/en active Application Filing
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1499066A1 (en) | 2003-07-14 | 2005-01-19 | Alcatel | Method for setting up a connection |
Also Published As
Publication number | Publication date |
---|---|
WO2007058516A1 (en) | 2007-05-24 |
KR20070053531A (ko) | 2007-05-25 |
US20080288592A1 (en) | 2008-11-20 |
US7827243B2 (en) | 2010-11-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Kostić et al. | Bullet: High bandwidth data dissemination using an overlay mesh | |
US9979635B2 (en) | Method for controlling flood broadcasts in a wireless mesh network | |
Liu et al. | Information-centric networking with built-in network coding to achieve multisource transmission at network-layer | |
Birrer et al. | Resilient peer-to-peer multicast without the cost | |
Birrer et al. | FatNemo: Building a resilient multi-source multicast fat-tree | |
KR100733987B1 (ko) | 세션 가입 시간차를 이용한 다중 포워더 기반 파일 전송방법 | |
Ouyang et al. | A comparison of reliable multicast protocols for mobile ad hoc networks | |
US8605721B1 (en) | Scalable island multicast for peer-to-peer media delivery | |
CN104348736A (zh) | 组播负载场景下选路的方法和路由器 | |
Guo et al. | Codedstream: Live media streaming with overlay coded multicast | |
JP5814710B2 (ja) | ネットワーク符号化に基づくデータ伝送方法および装置 | |
KR100689613B1 (ko) | 다중 가상 소스 응용 계층 멀티캐스트의 파일 전송 방법 | |
Mehta et al. | Survey on multimedia transmission using network coding over wireless networks | |
Benincasa et al. | An experimental evaluation of peer-to-peer reliable multicast protocols | |
KR101581678B1 (ko) | 전송 순서를 이용한 데이터 공유 시스템 | |
Parikh et al. | A survey on peer-to-peer file sharing using network coding in delay tolerant networks | |
Xu et al. | Directedpush-a high performance peer-to-peer live streaming system using network coding | |
Hundeboll et al. | Peer-assisted content distribution with random linear network coding | |
Cattaneo et al. | Using digital fountains in future IPTV streaming platforms: a future perspective | |
Wählisch et al. | Multicast Routing in Structured Overlays and Hybrid Networks | |
Prasad et al. | Local topology assisted XOR coding in wireless mesh networks | |
Rathod Vijay et al. | File Sharing between Peer-to-Peer using Network Coding Algorithm | |
Awiphan et al. | A contribution-aware multiple parent overlay network for P2P media streaming | |
Shome et al. | Performance enhancement of pragmatic general multicast (PGM) protocol using a local loss recovery strategy | |
Nemoianu et al. | Network coding for multimedia communications |
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 | ||
LAPS | Lapse due to unpaid annual fee |