KR20210038281A - 피어 및 피어의 동작 방법 - Google Patents

피어 및 피어의 동작 방법 Download PDF

Info

Publication number
KR20210038281A
KR20210038281A KR1020200021161A KR20200021161A KR20210038281A KR 20210038281 A KR20210038281 A KR 20210038281A KR 1020200021161 A KR1020200021161 A KR 1020200021161A KR 20200021161 A KR20200021161 A KR 20200021161A KR 20210038281 A KR20210038281 A KR 20210038281A
Authority
KR
South Korea
Prior art keywords
peer
peers
overlay network
request message
connection
Prior art date
Application number
KR1020200021161A
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 US16/991,266 priority Critical patent/US11388092B2/en
Publication of KR20210038281A publication Critical patent/KR20210038281A/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
    • H04L67/1044Group management mechanisms 
    • H04L67/1048Departure or maintenance mechanisms
    • 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
    • H04L67/1074Peer-to-peer [P2P] networks for supporting data block transmission mechanisms
    • H04L67/1076Resource dissemination mechanisms or network resource keeping policies for optimal resource availability in the overlay network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/28Routing or path finding of packets in data switching networks using route fault recovery
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/48Routing tree calculation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/64Routing or path finding of packets in data switching networks using an overlay routing layer
    • 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
    • H04L67/1044Group management mechanisms 
    • H04L67/1046Joining mechanisms
    • 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
    • H04L67/1061Peer-to-peer [P2P] networks using node-based peer discovery mechanisms
    • H04L67/1072Discovery involving ranked list compilation of candidate peers

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer And Data Communications (AREA)

Abstract

피어가 개시된다. 일 실시예는 상기 피어의 오버레이 네트워크 참여 요청이 있는 경우, HOMS로부터 피어 리스트를 수신하고, 상기 수신된 피어 리스트에서 제1 피어를 선택하며, 상기 선택된 제1 피어와 연결을 형성하고, 제2 피어들 중 하나 이상과 연결을 형성한다. 이 때, 상기 오버레이 네트워크 참여 요청의 전파는 상기 선택된 제1 피어에 의해 시작되고 상기 제2 피어들 각각은 상기 오버레이 네트워크 참여 요청을 전파받은 피어에 해당한다. 일 실시예는 상기 형성된 연결들 중 하나를 프라이머리 경로로 결정하고, 상기 결정된 프라이머리 경로를 통해 통신한다.

Description

피어 및 피어의 동작 방법{PEER AND OPERATING METEOD THEREOF}
아래 실시예들은 피어에 관한 것이다.
오버레이 네트워크는 기존 네트워크를 바탕으로 그 위에 구성된 또 다른 네트워크로, 기존의 네트워크 위에 별도의 노드들과 논리적 링크들을 구성하여 이루어진 가상 네트워크이다. 이러한 오버레이 네트워크는 기존의 네트워크를 활용하여 확장성을 높임으로써 보다 효율적인 네트워크 서비스를 제공할 수 있다.
관련 선행기술로 한국 공개특허공보 제10-2010-0092632호(발명의 명칭: 피투피 오버레이 네트워크를 형성하는 방법과 피투피 오버레이 네트워크를 위한 단말, 그리고 피투피 오버레이 네트워크를 관리하는 방법 및 장치, 출원인: 이화여자대학교 산학협력단)가 있다. 해당 공개특허공보에는 피투피 오버레이 네트워크에 조인하고자 하는 새로운 피어가 피투피 오버레이 네트워크에 속하는 적어도 하나의 피어와 메시 커넥션을 설립하고 새로운 피어가 안정성을 확보하면 트리 오버레이에 속하는 적어도 하나의 피어와 트리 커넥션을 설립하는 내용이 개시된다.
일 측에 따른 피어의 동작 방법은 상기 피어의 오버레이 네트워크 참여 요청이 있는 경우, 하이브리드 오버레이 관리 서버(Hybrid Overlay Management Server)로부터 피어 리스트를 수신하는 단계; 상기 수신된 피어 리스트에서 제1 피어를 선택하는 단계; 상기 선택된 제1 피어와 연결을 형성하는 단계; 제2 피어들 중 하나 이상과 연결을 형성하는 단계 -상기 오버레이 네트워크 참여 요청의 전파는 상기 선택된 제1 피어에 의해 시작되고 상기 제2 피어들 각각은 상기 오버레이 네트워크 참여 요청을 전파받은 피어에 해당함-; 상기 형성된 연결들 중 하나를 프라이머리 경로(primary path)로 결정하는 단계; 및 상기 결정된 프라이머리 경로를 통해 통신하는 단계를 포함한다.
상기 피어 리스트는 오버레이 네트워크에 남아있는 피어들 각각에 할당된 티켓 아이디를 기초로 결정된 피어들을 포함할 수 있다.
상기 티켓 아이디는 각 피어의 오버레이 네트워크 참여 순서에 해당할 수 있다.
상기 선택된 제1 피어와 연결을 형성하는 단계는 오버레이 네트워크에 참여하는 것을 알리기 위해 제1 요청 메시지를 상기 선택된 제1 피어로 전송하는 단계; 및 상기 선택된 제1 피어로부터 상기 제1 요청 메시지에 대한 성공 응답을 수신하고, 상기 선택된 제1 피어로부터 상기 연결을 형성하기 위한 제2 요청 메시지를 수신하는 단계를 포함할 수 있다.
상기 제1 요청 메시지는 오버레이 네트워크의 식별자, 상기 제1 요청 메시지를 전파할 피어들의 개수, 상기 피어의 최대 연결 개수, 및 상기 피어의 주소 정보 중 적어도 하나를 포함할 수 있다.
상기 제2 요청 메시지는 상기 오버레이 네트워크의 식별자, 상기 선택된 제1 피어의 식별자, 및 상기 선택된 제1 피어의 티켓 아이디 중 적어도 하나를 포함할 수 있다.
상기 제1 요청 메시지는 상기 선택된 제1 피어에 의해 수정되고, 상기 수정된 제1 요청 메시지는 상기 선택된 제1 피어와 프라이머리 경로로 연결된 하나 이상의 피어에게 전송될 수 있다.
상기 수정된 제1 요청 메시지 내의 제1 파라미터의 값은 상기 제1 요청 메시지 내의 제1 파라미터의 값을 일정값만큼 차감한 결과를 상기 선택된 제1 피어와 프라이머리 경로로 연결된 피어의 개수로 나눈 것일 수 있다.
상기 결정하는 단계는 상기 형성된 연결들의 피어들에게 상기 피어의 로컬 타임스탬프를 포함하는 프로브 메시지를 전송하는 단계; 상기 형성된 연결들의 피어들로부터 상기 로컬 타임스탬프가 임베딩된 응답을 수신하는 단계; 상기 각 응답의 수신 시간에 해당하는 타임스탬프와 상기 수신된 각 응답에 포함된 상기 로컬 타임스탬프 사이의 시간 차이를 계산하는 단계; 및 상기 계산된 시간 차이를 이용하여 상기 프라이머리 경로를 결정하는 단계를 포함할 수 있다.
상기 피어의 동작 방법은 상기 피어와 프라이머리 경로로 연결된 피어의 탈퇴를 감지하는 경우, 오버레이 네트워크가 스패닝 트리(spanning tree) 형태를 유지하도록 복구 절차(recovery procedures)를 수행하는 단계를 더 포함할 수 있다.
상기 복구 절차를 수행하는 단계는 상기 탈퇴가 감지된 피어의 티켓 아이디보다 상기 피어의 티켓 아이디가 높고 상기 피어가 복수의 아웃고잉 후보 경로들을 갖고 있는 경우, 상기 아웃고잉 후보 경로들 중 최대 성능의 아웃고잉 후보 경로 상의 피어에게 프라이머리 설정 메시지를 전송하는 단계를 포함할 수 있다.
상기 복구 절차를 수행하는 단계는 상기 피어의 티켓 아이디가 상기 탈퇴가 감지된 피어의 티켓 아이디보다 높고 상기 피어가 복수의 아웃고잉 후보 경로들을 갖고 있지 않은 경우, 제2 피어 리스트를 상기 하이브리드 오버레이 관리 서버에 요청하는 단계; 상기 제2 피어 리스트에서 제3 피어를 선택하고 상기 선택된 제3 피어에게 복구 필드를 포함하는 요청 메시지를 전송한 뒤 상기 선택된 제3 피어와 연결을 형성하는 단계; 제4 피어들 중 하나 이상과 연결을 형성하는 단계 - 상기 복구 필드를 포함하는 요청 메시지의 전파는 상기 선택된 제3 피어에 의해 시작되고, 상기 제 4피어들 각각은 상기 복구 필드를 포함하는 요청 메시지를 전파받은 피어에 해당함-; 및 상기 선택된 제3 피어와 형성된 연결 및 상기 제4 피어들 중 하나 이상과 형성된 연결 중에서 하나를 상기 피어의 복원된 프라이머리 경로로 결정하는 단계를 포함할 수 있다.
일 측에 따른 피어는 통신기; 및 상기 피어의 오버레이 네트워크 참여 요청이 있는 경우, 상기 통신기를 통해 하이브리드 오버레이 관리 서버(Hybrid Overlay Management Server)로부터 피어 리스트를 수신하고, 상기 수신된 피어 리스트에서 제1 피어를 선택하며, 상기 선택된 제1 피어와 연결을 형성하고, 제2 피어들 중 하나 이상과 연결을 형성하고, 상기 형성된 연결들 중 하나를 프라이머리 경로(primary path)로 결정하는 컨트롤러를 포함한다.
상기 오버레이 네트워크 참여 요청의 전파는 상기 선택된 제1 피어에 의해 시작되고 상기 제2 피어들 각각은 상기 오버레이 네트워크 참여 요청을 전파받은 피어에 해당한다.
상기 피어 리스트는 오버레이 네트워크에 남아있는 피어들 각각에 할당된 티켓 아이디를 기초로 결정된 피어들을 포함할 수 있다.
상기 티켓 아이디는 각 피어의 오버레이 네트워크 참여 순서에 해당할 수 있다.
상기 컨트롤러는 오버레이 네트워크에 참여하는 것을 알리기 위해 제1 요청 메시지를 상기 선택된 제1 피어로 상기 통신기를 통해 전송하고, 상기 선택된 제1 피어로부터 상기 제1 요청 메시지에 대한 성공 응답을 상기 통신기를 통해 수신하며, 상기 선택된 제1 피어로부터 상기 연결을 형성하기 위한 제2 요청 메시지를 상기 통신기를 통해 수신할 수 있다.
상기 컨트롤러는 상기 피어와 프라이머리 경로로 연결된 피어의 탈퇴를 감지하는 경우, 오버레이 네트워크가 스패닝 트리(spanning tree) 형태를 유지하도록 복구 절차(recovery procedures)를 수행할 수 있다.
실시예들은 트리 기반의 오버레이 네트워크를 빠르고 안정적으로 구축할 수 있다. 또한, 실시예들은 트리 경로에서 에러 발생시 트리 내에 위치한 노드의 실패를 신속하게 복구할 수 있고, 정상적인 데이터 브로드캐스트 오버레이 서비스를 제공할 수 있다.
도 1은 일 실시예에 따른 하이브리드 오버레이 네트워크를 설명하기 위한 도면이다.
도 2는 일 실시예에 따른 하이브리드 피투피 네트워크를 설명하기 위한 도면이다.
도 3은 일 실시예에 따른 하이브리드 오버레이 관리 서버를 설명하기 위한도면이다.
도 4a 내지 도 5는 일 실시예에 하이브리드 피투피 네트워크의 구축을 설명하기 위한 도면이다.
도 6 내지 도 7은 일 실시예에 따른 복구 절차를 설명하기 위한 도면이다.
도 8은 일 실시예에 따른 피어의 동작 방법을 설명하기 위한 순서도이다.
도 9는 일 실시예에 따른 피어를 설명하기 위한 블록도이다.
이하, 실시예들을 첨부된 도면을 참조하여 상세하게 설명한다.
아래 설명하는 실시예들에는 다양한 변경이 가해질 수 있다. 아래 설명하는 실시예들은 실시 형태에 대해 한정하려는 것이 아니며, 이들에 대한 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
실시예에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 실시예를 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성 요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
또한, 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일한 참조 부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 실시예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 실시예의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
도 1은 일 실시예에 따른 하이브리드 오버레이 네트워크를 설명하기 위한 도면이다.
도 1을 참조하면, 일 실시예에 따른 하이브리드 오버레이 네트워크(110)는 트리 기반 오버레이 네트워크(tree based overlay network)(core tree)(120), 트리 기반 오버레이 네트워크(sub tree)(130), 및 메쉬 기반 오버레이 네트워크(mesh-based overlay network)(140)를 포함한다. 구현에 따라, 하이브리드 오버레이 네트워크(110)는 트리 기반 오버레이 네트워크(sub tree)(130)를 포함하지 않을 수 있다.
트리 기반 오버레이 네트워크들(120 및 130) 각각은 스몰 데이터(small data)의 빠른 배포(fast distribution)를 위해 사용될 수 있고, 메쉬 기반 오버레이 네트워크(140)는 상대적으로 크기가 큰 데이터의 배포를 위해 사용될 수 있다.
트리 기반 오버레이 네트워크(120) 내의 피어(120-1)는 트리 기반 오버레이 네트워크(130) 내의 피어(130-1)로 데이터를 전송한다. 피어(130-1)는 트리 기반 오버레이 네트워크(130) 내에서 소스 피어로서 동작할 수 있다.
피어(120-2)는 메쉬 기반 오버레이 네트워크(140) 내의 피어(140-1)로 데이터를 전송한다. 피어(140-1)는 메쉬 기반 오버레이 네트워크(140) 내에서 소스 피어로서 동작할 수 있다.
하이브리드 오버레이 네트워크(110)의 형태(shape)는 새로운 피어가 참여할 때마다 변경될 수 있다. 또한, 하이브리드 오버레이 네트워크(110)는 경로에 루프가 없음을 보장할 수 있고 단일 또는 다중 노드 장애의 실패에 대한 견고성(robustness)을 제공할 수 있다. 빠른 오류 복구를 위해 각 피어는 가입 절차(joining procedures)에서 여러 후보 경로들을 형성할 수 있고 그 중 하나를 프라이머리 경로로 선택할 수 있다. 프라이머리 경로는 데이터가 배포되는데 사용될 수 있다.
도 2는 일 실시예에 따른 하이브리드 피투피 네트워크를 설명하기 위한 도면이다.
도 2를 참조하면, 하이브리드 피투피 네트워크(200)는 HOMS(hybrid overlay management server)(210), OMS(overlay management server)(220), 트리 기반 오버레이 네트워크(230), 및 메쉬 기반 오버레이 네트워크(240)를 포함한다. 여기서, 트리 기반 오버레이 네트워크(230)는 도 1을 통해 설명한 트리 기반 오버레이 네트워크들(120 및 130) 중 어느 하나에 해당할 수 있고, 메쉬 기반 오버레이 네트워크(240)는 도 1을 통해 설명한 메쉬 기반 오버레이 네트워크(140)에 해당할 수 있다.
HOMS(210)는 트리 기반 오버레이 네트워크(230) 및 메쉬 기반 오버레이 네트워크(240)를 관리한다.
HOMS(210)는 피어에 의해 생성된 오버레이 네트워크 정보를 관리하고 하나 이상의 피어로부터 리포트를 수신함으로써 오버레이 네트워크들(230 및 240) 각각의 상태를 추적한다.
실시예에 따르면, 피어는 메쉬 기반 오버레이 네트워크(240) 가입(joining) 요청을 HOMS(210)로 전송할 수 있고, HOMS(210)는 해당 가입 요청을 OMS(220)에 포워딩할 수 있다.
도 3은 일 실시예에 따른 하이브리드 오버레이 관리 서버를 설명하기 위한도면이다.
도 3을 참조하면, HOMS(210)는 OIC FE(Overlay Interaction Communication Functional Entity)(310), OIM(Overlay Information Management) FE(320), OSM(Overlay Status Management) FE(330), OPLM(Overlay Peer List Management) FE(340), PIM(Peer Information Management) FE(350), 및 PSM(Peer Status Management) FE(360)을 포함한다.
OIC FE(310)는 오버레이 정보를 조작하고 상태 정보를 수집하기 위해 피어와 상호 작용할 수 있다. OIC FE(310)는 피어가 적절한 정보로 새 오버레이 네트워크를 만들 것을 요청하면, OIM FE(320)와 상호 작용하여 유효성 체크 후 정보(예를 들어, 오버레이 정보 또는 오버레이 네트워크 정보)를 저장할 수 있다. OIC FE(310)는 피어로부터 특정 오버레이 네트워크에 대한 쿼리 요청을 수신하면 관련 정보를 페칭(fetching)하기 위해 OIM FE(320) 및 PIM FE(350)와 상호 작용할 수 있고, 해당 관련 정보를 메시지 형식(format)으로 피어에게 전송할 수 있다.
OIM FE(320)는 OIC FE(310)로부터 요청을 수신한 경우, 오버레이 네트워크 정보를 관리 및 제공할 수 있다.
OSM FE(330)는 OIC FE(310)로부터 요청을 수신하면, 오버레이 상태 정보를 관리 및 제공할 수 있다. OSM FE(330)는 관리자에게 운영, 관리 및 모니터링에 대한 정보를 제공할 수 있다.
OPLM FE(340)는 각 오버레이 네트워크의 피어 리스트를 관리할 수 있다. 피어가 가입 요청을 OIC FE(310)에 전송한 경우, OIC FE(310)는 피어 및 오버레이 정보를 OPLM FE(340)에 전송할 수 있다. OPLM FE(340)는 수신된 피어 및 오버레이 정보를 저장할 수 있고 저장된 정보를 가입 요청한 피어로부터 쿼리 요청을 수신 할 때 제공할 수 있다. 특히, OPLM FE(340)는 특정 오버레이 네트워크에 대한 피어 리스트를 제공 할 때 오버레이 네트워크의 유형(type)에 따라 최적의 피어 리스트를 제공할 수 있다. OPLM FE(340)는 메쉬 기반 오버레이 네트워크(240)에 대해 피어 리스트의 임의의 서브셋을 제공할 수 있고 트리 기반 오버레이 네트워크(230)에 연결할 피어들의 리스트를 제공할 수 있다.
PIM FE(350)는 참여 피어에 의해 등록된 피어 정보를 관리한다. 피어가 특정 오버레이 네트워크에 가입하면 해당 피어는 오버레이 네트워크 정보와 함께 피어 정보를 포함하는 메시지를 OIC FE(310)로 전송할 수 있다. OIC FE(310)는 PIM FE(350)에 해당 정보를 전송할 수 있다.
PSM FE(360)는 피어들로부터 리포트 메시지를 수신하여 해당 피어들의 상태를 관리할 수 있다. 피어가 적절한 탈퇴 절차(leaving procedures)없이 사라지면 해당 피어의 손실을 감지한 다른 피어가 OIC FE(310)를 통해 PSM FE(360)에 리포트 메시지를 전송할 수 있다.
도 4a 내지 도 5는 일 실시예에 하이브리드 피투피 네트워크의 구축을 설명하기 위한 도면이다.
도 4a를 참조하면, 일 실시예에 따른 하이브리드 피투피 네트워크(200)(또는 트리 기반 오버레이 네트워크(230))의 구축(construction)(400)은 피어의 오버레이 네트워크 참여 요청(peer's overlay network participation request)(401), 피어의 오버레이 네트워크 참여 요청의 전파(peer's overlay network participation request propagation)(402), 및 피어-to-피어 연결 및 프라이머리/후보 경로 형성 프로세스(peer-to-peer connection and primary/candidate path establishment process)(403)를 통해 이루어진다. 도 4b를 참조하면서, 하이브리드 피투피 네트워크(200)(또는 트리 기반 오버레이 네트워크(230))의 구축(400)에 대해 자세히 설명한다.
<단계(401): 피어의 오버레이 네트워크 참여 요청>
설명의 편의 상 도 4b에 도시된 오버레이 네트워크(409)를 하이브리드 오버레이 네트워크로 표현하지만, 트리 기반 오버레이 네트워크로도 표현될 수 있다.
새로운 피어(410)가 하이브리드 오버레이 네트워크(409)에 참여할 때, 피어(410)는 참여를 위해 HOMP(Hybrid Overlay Management Protocol) 요청 메시지를 HOMS(210)로 전송한다(430). HOMP 요청 메시지는, 예를 들어, 피어(410)의 식별자, 피어(410)의 주소 정보, 및 인증 정보 중 적어도 하나를 포함할 수 있다. 주소 정보는 다른 피어들이 피어(410)에 접근할 수 있는 네트워크 주소를 설명하고, 연결 형성에 필요한 정보를 포함할 수 있다. 연결 형성에 필요한 정보는, 예를 들어, transport 방식(예를 들어, TCP, WebRTC(Web Real-Time Communication) 등), 피어 식별자, 및 전송 포트 번호 중 적어도 하나를 포함할 수 있으나 이에 제한되지 않는다.
HOMS(210)는 피어(410)로부터 HOMP 요청 메시지를 수신하는 경우, 응답을 피어(410)에 제공한다(431). 여기서, 응답은 하이브리드 오버레이 네트워크(409)의 참여자들(participants)을 포함하는 적절한 피어 리스트를 포함할 수 있다. 또한, HOMS(210)는 피어(410)에 새로운 티켓 아이디를 발급한다. 여기서, 티켓 아이디는 피어(410)의 참여 순서와 관련된다. 피어들(420-1 내지 420-13) 각각에는 이미 티켓 아이디가 HOMS(210)에 의해 발급되어 있다. 다시 말해, HOMS(210)는 피어들(420-1 내지 420-13)이 하이브리드 오버레이 네트워크(409)에 참여한 순서대로 티켓 아이디를 발급한다. 이에 따라, HOMS(210)는 피어들(420-1 내지 420-13)의 참여 순서를 확인할 수 있다.
이러한 티켓 아이디 발급 절차는 피어들(420-1 내지 420-13 및 410)이 하이브리드 오버레이 네트워크(409) 내에서 사용될 고유 티켓 아이디와 균형 잡힌 트리 모양(balanced tree shape)을 갖도록 한다.
HOMS(210)는 낮은 티켓 아이디로 피어 리스트를 피어(410)에 제공하는 경우, 해당 피어 리스트 내의 피어들의 가용 자원의 소진 때문에 피어(410)는 네트워크에 attach될 수 없을 가능성이 높다. HOMS(210)가 최신(latest) 티켓 아이디로 구성된 피어 리스트를 피어(410)에 제공하는 경우, 해당 피어 리스트 내의 피어들은 아직 트리(즉, 하이브리드 오버레이 네트워크(409))에 연결되지 않았기 때문에 가입 절차가 실패할 수 있다. 따라서, 티켓 아이디 큐에서 적절한 순서로 구성된 피어 리스트를 피어(410)에 제공하는 것이 중요하다.
일 실시예에 있어서, HOMS(210)는 피어(410)가 T번째로 하이브리드 오버레이 네트워크(409)에 참여할 때 아래 규칙 1에 따라 피어 리스트를 생성한다.
[규칙 1]
Figure pat00001
피어(410)가 T번째로 하이브리드 오버레이 네트워크(409)에 참여하므로, T는 피어(410)에 대한 티켓 아이디를 나타낸다.
PI는 하이브리드 오버레이 네트워크(409)에 현재 남아있는 피어들의 집합으로, 각 피어에 발급된 티켓 아이디에 의해 정렬된다.
M은 하이브리드 오버레이 네트워크(409)에 현재 남아있는 피어들의 수를 나타낸다.
Rj는 M의 상대적 위치(relative position)를 percentage(%)로 나타내고, HOMS(210)의 configuration 값으로 관리자(administrator)에 의해 조정될 수 있다. 일례로, 현재 100개의 피어들이 하이브리드 오버레이 네트워크(409)에 참여하고 있고(즉, M=100) Rj의 값이 80이면, PI[80]은 80번째 위치한 피어(또는 80번째로 참여한 피어)를 의미할 수 있다.
K는 피어 리스트에 포함되어야 할 피어들의 최대 개수를 나타내고, 피어들의 전체 개수의 percentage로 표현된다. K의 기본값은, 예를 들어, 80이다. 이는 최근에 붙은 피어들(attached peers)로 부하를 분산시키기 위함이다. 일례로, M=100, Rj=80, 및 K=10이면, 위 규칙 1에 따라 엔트리 피어 리스트=[PI[80], PI[81], PI[82], PI[83], PI[84], PI[85], PI[86], PI[87], PI[88], PI[89], PI[90]]이다. 다시 말해, 엔트리 피어 리스트에는 100개의 피어들 중 80번째 위치한 피어부터 90번째 위치한 피어가 포함된다.
HOMS(210)는 생성된 피어 리스트와 티켓 아이디 T를 피어(410)에게 전송하고, 내부 데이터베이스 등의 저장소에 피어(410)의 식별자를 포함하는 관련 정보를 기록한다. 또한, HOMS(210)는 마지막으로 발급된 티켓 아이디 T의 후속 번호가 향후 참여하는 피어에게 사용될 수 있도록 마지막으로 발급된 티켓 아이디 T를 기억한다.
<단계(402): 피어의 오버레이 네트워크 참여 요청의 전파>
피어(410)가 HOMS(210)로부터 피어 리스트 및 티겟 아이디를 수신하는 경우, 피어(410)는 해당 피어 리스트에서 적절한 피어를 선택할 수 있고, 선택된 피어에게 요청 메시지를 전송한다. 도 4b에 도시된 예에서, 피어(410)는 피어 리스트에서 피어(420-1)를 선택할 수 있고, 피어(420-1)에게 HELLO_PEER 요청 메시지를 전송할 수 있다(432). 피어(410)는 다른 피어들에게 피어(410)의 참여를 알리기 위해 피어(420-1)에게 HELLO_PEER 요청 메시지를 전송할 수 있다.
피어(410)는 피어(420-1)와 연결을 시도한다. 피어(410)는 피어(420-1)와 연결이 실패하면, 피어 리스트에서 다음 피어를 선택한다.
피어(410)는 피어(420-1)와 연결이 성공하면, 더 이상 HELLO_PEER 요청 메시지를 전송하는 것을 시도하지 않는다. 아래 표 1은 HELLO_PEER 요청 메시지에 포함된 파라미터의 일례를 보여준다.
파라미터 설명
오버레이 아이디(overlay-id) 오버레이 식별자를 나타냄
ttl(time to live) HELLO_PEER 요청 메시지를 전파할 피어들의 개수를 나타냄(describes how many peers this message to propagate up to)
conn_num 피어(410)가 확보하고자 하는 다른 피어와의 최대 연결 수를 나타냄(describes the maximum number of connections with other peers that Pj wants to establish)
주소 다른 피어가 피어(410)에 접근할 수 있는 네트워크 주소 정보를 나타냄
HELLO_PEER 요청 메시지는 위 표 1 내의 파라미터들 모두를 포함할 수 있다. 구현에 따라, 위 표 1 내의 파라미터들 중 하나 이상은 HELLO_PEER 요청 메시지에 포함되지 않을 수 있다.
피어(420-1)는 HELLO_PEER 요청 메시지를 수신하는 경우, 피어(410)에게 성공 응답(success response)을 전송하고, 피어(420-1) 자신의 인커밍 후보 경로 리스트(incoming candidate path list)에 연결 정보를 추가한다. 피어(410)는 피어(420-1)로부터 성공 응답을 수신하는 경우, 피어(410) 자신의 아웃고잉 후보 경로 리스트(outgoing candidate path list)에 연결 정보를 추가한다. 연결 정보는 피어(420-1)와 피어(410) 사이의 연결에 대한 정보 또는 피어(420-1)와 피어(410)가 연결되어 있음을 나타내는 정보를 포함할 수 있다.
피어(420-1)는 자원에 가용 여력(available capacity)이 있으면, ESTAB_PEER 요청 메시지를 피어(410)로 전송한다(441). ESTAB_PEER 요청 메시지는, 예를 들어, 오버레이 아이디, 피어 아이디, 및 티켓 아이디 중 적어도 하나를 포함할 수 있다. 도 4b에 도시된 예에서, 피어(420-1)는 피어(410)와 연결을 수용할 수 있는 capacity가 있는 경우, 오버레이 아이디, 피어(420-1)의 아이디, 및 피어(420-1)의 티켓 아이디를 포함하는 ESTAB_PEER 요청 메시지를 피어(410)로 전송할 수 있다. 이 때, 피어(420-1)는 HELLO_PEER 요청 메시지에 포함된 주소를 이용하여 피어(410)에 연결할 수 있다. 만약, 피어(420-1)는 해당 연결이 성공할 경우, connection number를 +1하고 해당 연결이 실패할 경우 무시한다.
실시예에 있어서, 오버헤드를 방지하기 위해, 피어들(420-1 내지 420-13) 각각은 아래 표 2(또는 표 3) 내의 정보를 유지할 수 있고, 피어들(420-1 내지 420-13) 각각의 가용성(availability)을 계산하기 위해 아래 표 2(또는 표 3) 내의 정보를 이용할 수 있다.
최대/현재 프라이머리 경로의 개수(the number of maximum/current primary paths)
인커밍/현재 후보 경로의 개수(the number of incoming/current candidate paths)
아웃고잉/현재 후보 경로의 개수(the number of outgoing/current candidate paths)
최대 수용 가능한 프라이머리 연결 개수
최대 수용 가능한 인커밍 후보 연결 개수
최대 수용 가능한 아웃고잉 후보 연결 개수
현재 프라이머리 연결 개수
현재 인커밍 연결 개수(또는, 현재 인커밍 후보 연결 개수)
현재 아웃고잉 연결 개수(또는, 현재 아웃고잉 후보 연결 개수)
피어(420-1)는 자신과 프라이머리 경로로 연결된 피어들(420-2 및 420-5)에게 HELLO_PEER 요청 메시지를 전송한다(433 및 434). 피어(420-1)는 피어들(420-2 및 420-5)에게 HELLO_PEER 요청 메시지를 전송하기 전에, 피어(410)의 HELLO_PEER 요청 메시지를 수정한다. 일례로, 피어(420-1)는 HELLO_PEER 요청 메시지 내의 ttl의 값이 0이 아니면 해당 ttl의 값을 차감할 수 있다. 만약, 피어(420-1)는 HELLO_PEER 요청 메시지 내의 ttl의 값이 0이면 HELLO_PEER 요청 메시지를 피어들(420-2 및 420-5)에게 전송하지 않고 버린다. 또한, 피어(420-1)는 피어(410)와 연결을 형성하였으므로, 피어(410)로부터 수신한 HELLO_PEER 요청 메시지 내의 conn_num의 값을 1만큼 차감하고 "conn_num의 값-1"을 프라이머리 경로로 연결된 피어들(420-2 및 420-5)의 개수로 나눈 값을 HELLO_PEER 요청 메시지에 기재한다. 피어(410)로부터 수신한 HELLO_PEER 요청 메시지 내의 conn_num가 N이면, N을 (N-1)/2로 대체하고, 오버레이 아이디, (N-1)/2, ttl-1, 및 피어(410)의 주소를 포함하는 HELLO_PEER 요청 메시지를 피어들(420-2 및 420-5)에게 전송할 수 있다.
피어(420-2)는 피어(420-1)로부터 HELLO_PEER 요청 메시지를 수신하면 자원에 가용 여력이 있는지 체크할 수 있다. 도 4b에 도시된 예에서, 피어(420-2)는 자원에 가용 여력이 없으므로, 피어(410)에 ESTAB_PEER 요청 메시지를 전송하지 않는다. 즉, 피어(420-2)는 피어(410)와 연결을 형성하지 않는다.
피어(420-2)는 피어(420-1)로부터 수신한 HELLO_PEER 요청 메시지를 수정할 수 있고 수정된 HELLO_PEER 요청 메시지를 피어(420-2) 자신과 프라이머리 경로로 연결된 피어들(420-3 및 420-4)에게 전송할 수 있다(435 및 436). 즉, 피어(420-2)는 피어(420-1)로부터 수신한 HELLO_PEER 요청 메시지 내의 ttl-1을 1만큼 차감한다. 하지만, 피어(420-2)는 피어(410)와 연결을 형성하지 않았으므로, 피어(420-1)로부터 수신한 HELLO_PEER 요청 메시지 내의 (N-1)/2에서 1을 차감하지 않고, (N-1)/2를 프라이머리 경로로 연결된 피어들(420-3 및 420-4)의 개수 2로 나눈다. 이에 따라, 피어(420-2)는 오버레이 아이디, ((N-1)/2)/2, ttl-2, 및 피어(410)의 주소를 포함하는 HELLO_PEER 요청 메시지를 피어들(420-3 및 420-4)에게 전송할 수 있다.
도 4b에 도시된 예에서, 피어들(420-3 및 420-4)의 자식 피어는 없으므로, 피어들(420-3 및 420-4) 각각은 HELLO_PEER 요청 메시지를 전파하지 않는다. 피어(420-4)는 자원에 가용 여력이 있으므로, 피어(410)에 ESTAB_PEER 요청 메시지를 전송할 수 있다(443).
피어(420-5)는 피어(420-1)로부터 HELLO_PEER 요청 메시지를 수신하면, 자원에 가용 여력이 있는지 체크할 수 있다. 도 4b에 도시된 예에서, 피어(420-5)는 자원에 가용 여력이 있으므로, 피어(410)에 ESTAB_PEER 요청 메시지를 전송할 수 있다(442).
피어(420-5)는 피어(420-1)로부터 수신한 HELLO_PEER 요청 메시지를 수정할 수 있고 수정된 HELLO_PEER 요청 메시지를 피어(420-5) 자신과 프라이머리 경로로 연결된 피어들(420-6, 420-7 및 420-11)에게 전송할 수 있다(437, 438, 및 439). 즉, 피어(420-5)는 피어(420-1)로부터 수신한 HELLO_PEER 요청 메시지 내의 ttl-1을 1만큼 차감한다. 또한, 피어(420-5)는 피어(410)와 연결을 형성하였으므로, 피어(420-1)로부터 수신한 HELLO_PEER 요청 메시지 내의 (N-1)/2에서 1을 차감하고, ((N-1)/2)-1를 프라이머리 경로로 연결된 피어들(420-6, 420-7 및 420-11)의 개수 3으로 나눈다. 이에 따라, 피어(420-5)는 오버레이 아이디, (((N-1)/2)-1)/3, ttl-2, 및 피어(410)의 주소를 포함하는 HELLO_PEER 요청 메시지를 피어들(420-6, 420-7 및 420-11)에게 전송할 수 있다.
피어(420-11)는 피어(420-5)로부터 HELLO_PEER 요청 메시지를 수신하면, 자원에 가용 여력이 있는지 체크할 수 있다. 도 4b에 도시된 예에서, 피어(420-11)는 자원에 가용 여력이 있으므로, 피어(410)에 ESTAB_PEER 요청 메시지를 전송할 수 있다(444).
피어(420-11)는 피어(420-5)로부터 수신한 HELLO_PEER 요청 메시지를 수정할 수 있고 수정된 HELLO_PEER 요청 메시지를 피어(420-11) 자신과 프라이머리 경로로 연결된 피어들(420-12 및 420-13)에게 전송할 수 있다(440 및 441). 즉, 피어(420-11)는 피어(420-5)로부터 수신한 HELLO_PEER 요청 메시지 내의 ttl-2를 1만큼 차감한다. 또한, 피어(420-11)은 피어(410)와 연결을 형성하였으므로, 피어(420-5)로부터 수신한 HELLO_PEER 요청 메시지 내의 (((N-1)/2)-1)/3에서 1을 차감하고, (((N-1)/2)-1)/3-1를 프라이머리 경로로 연결된 피어들(440 및 441)의 개수 2로 나눈다. 이에 따라, 피어(420-11)는 오버레이 아이디, ((((N-1)/2)-1)/3-1)/2, ttl-3, 및 피어(410)의 주소를 포함하는 HELLO_PEER 요청 메시지를 피어들(440 및 441)에게 전송할 수 있다.
도 4b에 도시되지 않았으나, 피어(420-7)는 피어(420-5)로부터 수신한 HELLO_PEER 요청 메시지를 수정할 수 있고 수정된 HELLO_PEER 요청 메시지를 피어(420-7) 자신과 프라이머리 경로로 연결된 피어들(420-8 및 420-9)에게 전송할 수 있다.
위와 같은 방식으로 피어(410)의 오버레이 네트워크 참여 요청은 하이브리드 오버레이 네트워크(409) 내의 피어들(420-1 내지 420-13)로 전파될 수 있고, 피어(410)는 하이브리드 오버레이 네트워크(409) 내의 피어들(420-1 내지 420-13) 중에서 피어들(420-1, 420-4, 420-5, 및 420-11)로부터 ESTAB_PEER 요청 메시지를 수신한다.
<단계(403): 피어-to-피어 연결 및 프라이머리/후보 경로 형성 프로세스>
피어(410)는 피어들(420-1, 420-4, 420-5, 및 420-11)로부터 ESTAB_PEER 요청 메시지를 수신하면, 피어들(420-1, 420-4, 420-5, 및 420-11)에게 응답을 전송함으로써 피어들(420-1, 420-4, 420-5, 및 420-11)에게 연결이 형성되었음을 통지할 수 있다.
피어(410)는 피어들(420-1, 420-4, 420-5, 및 420-11) 각각에게 PROBE_PEER 메시지(또는 probe 메시지)를 전송하여 피어들(420-1, 420-4, 420-5, 및 420-11) 각각과 피어(410) 사이의 전송 속도를 측정 또는 계산할 수 있다. PROBE_PEER 메시지는 timestamp 필드를 포함하는데, 해당 timestamp 필드에는 NTP(network time protocol) 시간값 또는 피어(410)의 로컬 시스템 시간값이 피어(410)에 의해 기록될 수 있다. 일례로, 피어(410)는 local timestamp를 probe 메시지에 삽입하여 probe 메시지를 피어들(420-1, 420-4, 420-5, 및 420-11)로 전송할 수 있다. 피어들(420-1, 420-4, 420-5, 및 420-11) 각각은 피어(410)로부터 probe 메시지를 수신하면, probe 메시지에 임베딩된 local timestamp로 피어(410)에게 응답할 수 있다. 달리 표현하면, 피어들(420-1, 420-4, 420-5, 및 420-11) 각각은 probe 메시지에 포함된 local timestamp를 응답 메시지에 포함시키고 해당 응답 메시지를 피어(410)로 전송할 수 있다. 피어(410)는 피어들(420-1, 420-4, 420-5, 및 420-11) 각각으로부터 수신한 응답에 포함된 local timestamp와 현재 시간(예를 들어, 피어(410)의 현재 시스템/NTP 시간) 사이의 차이를 계산할 수 있고 계산된 차이를 통해 피어들(420-1, 420-4, 420-5, 및 420-11) 각각과 피어(410) 사이의 전송 속도값(또는 전송 시간값)를 측정 또는 계산할 수 있다.
피어(410)는 계산된 전송 속도값들(또는 전송 시간값) 중 가장 우수한 피어에게 SET_PRIMARY 메시지를 전송할 수 있다. 다시 말해, 피어(410)는 프라이머리 경로를 형성하기 위해 피어들(420-1, 420-4, 420-5, 및 420-11) 중 가장 적절한 피어에게 SET_PRIMARY 메시지를 전송할 수 있다. 피어(410)는 나머지 피어에게 SET_CANDIDATE 메시지를 전송할 수 있다.
10개의 피어들이 단계(401) 내지 단계(403)을 거쳐 구성된 트리 기반 오버레이 네트워크의 일례가 도 5에 도시된다. 다시 말해, 도 5에 도시된 토폴로지와 같은 트리 기반 오버레이 네트워크가 구축될 수 있다. 도 5에 도시된 예에서, 10개의 피어들 각각에 할당된 숫자는 티켓 아이디를 나타낸다.
도 6 내지 도 7은 일 실시예에 따른 복구 절차를 설명하기 위한 도면이다.
도 6을 참조하면, 하이브리드 P2P 네트워크는 피어가 탈퇴한 경우, 복구 절차를 수행한다(610).
오버레이 네트워크는 일종의 스패닝(spanning) 트리 형태로 구축이 되고 루프가 발생되지 않아야 되며, 새로운 피어의 참여와 기존 피어의 탈퇴가 이뤄지더라도 특성은 유지되어야 한다. 이에 따라, 기존 피어가 탈퇴하거나 비정상 종료하는 등의 이벤트가 발생한 경우, 최대한 빨리 복구되어야 한다.
기존 피어 Pj가 탈퇴하고자 할 때, 피어 Pj는 자신과 연결된 프라이머리 피어들에게 LEAVE_PEER 메시지를 전송한다. 여기서, 프라이머리 피어들은 피어 Pj와 프라이머리 경로로 연결된 피어들을 나타낸다.
피어 Pj의 프라이머리 피어들은 피어 Pj로부터 LEAVE_PEER 메시지를 수신하면, 피어 Pj에게 응답 메시지를 전송하고, 각 프라이머리 피어와 피어 Pj 사이에 형성된 연결을 해제한다. 이하, 피어 Pj의 프라이머리 피어들 중 하나인 피어 Pp를 중심으로 이후 동작에 대해 설명한다.
피어 Pp는 피어 Pj와의 티겟 아이디를 비교하고, 피어 Pp의 티켓 아이디가 피어 Pj의 티켓 아이디보다 더 낮은 경우, 별도의 동작을 수행하지 않는다. 피어 Pp는 피어 Pp의 티켓 아이디가 피어 Pj의 티켓 아이디보다 높은 경우(즉, 피어 Pp가 피어 Pj보다 오버레이 네트워크에 늦게 참가한 경우), 복구 과정을 진행한다.
피어 Pp는 아웃고잉 후보 경로들을 보유하고 있는 경우, 가장 성능이 우수한 후보 경로 상의 피어에게 SET_PRIMARY 메시지를 전송한다.
피어 Pp로부터 SET_PRIMARY 메시지를 받은 피어는 성공에 해당되는 응답메시지를 피어 Pp로 전송한다. 만약, 피어 Pp에게 아웃고잉 후보 경로가 없거나 이미 소진된 경우, 피어 Pp는 HOMS(210)에게 자신보다 먼저 오버레이 네트워크에 참여한 피어들의 리스트를 요청한다. 이 때, 피어 Pp는 자신의 티켓 아이디도 HOMS(210)에 전송한다. HOMS(210)는 아래 규칙 2에 따라 피어 리스트를 생성한다.
[규칙 2]
Figure pat00002
Rr는 복구를 위해 사용되는 값이다. 규칙 1의 Rj가 예를 들어 80이면 Rr은 20이다. 이에 따라, HOMS(210)는 새로운 피어의 참여 시 티켓 아이디를 기준으로 하위 80%의 피어들을 피어 리스트에 포함시킬 수 있고, 복구 과정 시 티켓 아이디를 기준으로 상위 20%의 피어들을 피어 리스트에 포함시킬 수 있다.
HOMS(210)는 피어 리스트를 피어 Pp에 전송한다. 만약, HOMS(210)는 피어Pp 보다 먼저 오버레이 네트워크에 참여한 피어가 없는 경우, 빈 리스트 또는 에러 메시지 등을 통해 피어 Pp가 가장 최근에 오버레이 네트워크에 참여한 피어임을 알릴 수 있고 추가 동작을 수행하지 않는다.
피어 Pp는 HOMS(210)로부터 피어 리스트를 수신한 경우, 단계(402)를 통해설명한 피어(410)와 동일한 동작을 수행한다. 일례로, 피어 Pp는 수신된 피어 리스트에서 피어를 선택할 수 있다. 또한, 피어 Pp는 HELLO_PEER 요청 메시지에 recovery 필드를 추가하고, recovery 필드를 "true"로 설정하며, true로 설정된 recovery 필드를 포함하는 HELLO_PEER 요청 메시지를 선택된 피어에게 전송할 수 있다. 다시 말해, 피어 Pp는 HELLO_PEER 요청 메시지가 복구용 메시지인 것을 선택된 피어에게 알릴 수 있다.
피어 Pp로부터 HELLO_PEER 요청 메시지를 수신한 피어(이하, 피어x)는 자신의 인커밍 후보 경로 리스트에 연결 정보를 추가할 수 있다. 연결 정보는, 예를 들어, 피어x와 피어 Pp 사이의 연결에 대한 정보 또는 피어x와 피어 Pp 사이에 연결이 설정되었음을 나타내는 정보를 포함할 수 있다. 만약, 피어x의 인커밍 후보 경로 리스트가 꽉 찬 경우, 피어x는 자신의 티켓 아이디보다 낮으면서 가장 낮은 티켓 아이디를 갖는 피어와의 연결을 해제하고, 피어x 자신과 피어 Pp 사이의 연결 정보를 인커밍 후보 경로 리스트에 추가할 수 있다.
도 5에 도시된 오버레이 네트워크에서 티켓 아이디가 4인 피어가 탈퇴 했을 때 복구된 오버레이 네트워크의 일례가 도 7에 도시된다. 설명의 편의 상, 티켓 아이디가 4인 피어를 4번 피어로 표현한다.
도 5에 도시된 예에서, 4번 피어와 프라이머리 경로로 연결된 0번 피어 및 8번 피어가 이벤트를 감지한다. 여기서, 0번 피어는 티켓 아이디가 0인 피어를 나타내고, 8번 피어는 티켓 아이디가 8인 피어를 나타내며, 이벤트는 4번 피어의 타임아웃 또는 4번 피어로부터의 명시적인 해제 메시지(explicit release message)에 의해 발생할 수 있다.
0번 피어의 티켓 아이디는 4번 피어의 티켓 아이디 보다 낮으므로, 0번 피어는 별도의 동작을 수행하지 않는다.
8번 피어는 자신보다 높은 티켓 아이디를 갖는 4번 피어가 탈퇴하였으므로, 프라이머리 경로를 복구하기 위해 0번 피어에게 SET_PRIMARY 메시지를 전송할 수 있다. 그리고, 8번 피어는 8번 피어와 0번 피어 사이의 후보 경로를 프라이머리 경로로 전환한다.
도 8은 일 실시예에 따른 피어를 설명하기 위한 블록도이다.
피어는 노드 등으로 달리 표현될 수 있다.
도 8을 참조하면, 피어(800)는 통신기(810) 및 컨트롤러(820)를 포함한다.
통신기(810)는 유선 통신 또는 무선 통신을 위한 하드웨어, 모듈 등을 포함할 수 있다.
컨트롤러(820)는 피어(800)의 오버레이 네트워크(예를 들어, 하이브리드 오버레이 네트워크(409) 또는 트리 기반 오버레이 네트워크(230)) 참여 요청이 있는 경우, 통신기(810)를 통해 HOMS(210)로부터 피어 리스트를 수신한다. 피어 리스트는 오버레이 네트워크에 남아있는 피어들 각각에 할당된 티켓 아이디를 기초로 결정된 피어들을 포함할 수 있다.
컨트롤러(820)는 수신된 피어 리스트에서 제1 피어를 선택하고, 선택된 제1 피어와 연결을 형성한다. 일례로, 컨트롤러(820)는 피어(800)가 오버레이 네트워크에 참여하는 것을 알리기 위해 제1 요청 메시지를 선택된 제1 피어로 통신기(810)를 통해 전송할 수 있고, 선택된 제1 피어로부터 제1 요청 메시지에 대한 성공 응답을 통신기(810)를 통해 수신할 수 있다. 여기서, 제1 요청 메시지는 상술한 HELLO PEER 요청 메시지에 해당할 수 있다. 제1 요청 메시지는, 예를 들어, 오버레이 네트워크의 식별자, 제1 요청 메시지를 전파할 피어들의 개수, 피어(800)의 최대 연결 개수, 및 피어(800)의 주소 정보 중 적어도 하나를 포함할 수 있다. 또한, 컨트롤러(820)는 선택된 제1 피어로부터 연결을 형성하기 위한 제2 요청 메시지를 수신할 수 있다. 여기서, 제2 요청 메시지는 상술한 ESTAB_PEER 요청 메시지에 해당할 수 있다. 제2 요청 메시지는, 예를 들어, 오버레이 네트워크의 식별자, 선택된 제1 피어의 식별자, 및 선택된 제1 피어의 티켓 아이디 중 적어도 하나를 포함할 수 있다.
피어(800)의 오버레이 네트워크 참여 요청의 전파는 선택된 제1 피어에 의해 시작된다. 선택된 제1 피어는 제1 요청 메시지를 수정할 수 있고, 수정된 제1 요청 메시지를 선택된 제1 피어와 프라이머리 경로로 연결된 하나 이상의 피어에게 전송할 수 있다. 여기서, 수정된 제1 요청 메시지 내의 제1 파라미터(예를 들어, conn_num)의 값은 수정 전 제1 요청 메시지의 제1 파라미터(conn_num)의 값을 일정값(예를 들어, 1)만큼 차감한 결과를 선택된 제1 피어와 프라이머리 경로로 연결된 피어의 개수로 나눈 것일 수 있다. 예를 들어, 수정전 제1 요청 메시지의 conn_num의 값이 N이고 선택된 제1 피어는 피어(800)와 연결을 형성하였으며 선택된 제1 피어와 프라이머리 경로로 연결된 피어들의 개수가 P인 경우, 수정된 제1 요청 메시지의 conn_num의 값은 (N-1)/P이다. 이와 달리, 수정전 제1 요청 메시지의 conn_num의 값이 N이고 선택된 제1 피어는 피어(800)와 연결을 형성하지 않았으며 선택된 제1 피어와 프라이머리 경로로 연결된 피어들의 개수가 P인 경우, 수정된 제1 요청 메시지의 conn_num의 값은 N/P이다.
컨트롤러(820)는 제2 피어들 중 하나 이상과 연결을 통신기(810)를 통해 형성한다. 여기서, 제2 피어들 각각은 피어(800)의 오버레이 네트워크 참여 요청을 전파받은 피어에 해당한다. 일례로, 제2 피어들 중에서 자원 상의 가용 여력이 있는 피어가 ESTAB_PEER 요청 메시지를 피어(800)로 전송할 수 있고, 피어(800)와 연결을 형성할 수 있다.
컨트롤러(820)는 형성된 연결들 중 하나를 프라이머리 경로로 결정한다. 일례로, 컨트롤러(820)는 형성된 연결들의 피어들에게 피어(800)의 로컬 타임스탬프를 포함하는 프로브 메시지를 통신기(810)를 통해 전송할 수 있고, 형성된 연결들의 피어들로부터 로컬 타임스탬프가 임베딩된 응답을 수신할 수 있다. 컨트롤러(820)는 각 응답의 수신 시간에 해당하는 타임스탬프와 수신된 각 응답에 포함된 로컬 타임스탬프 사이의 시간 차이를 계산할 수 있고, 계산된 시간 차이를 이용하여 프라이머리 경로를 결정할 수 있다.
컨트롤러(820)는 결정된 프라이머리 경로를 이용하여 통신할 수 있다. 일례로, 컨트롤러(820)는 결정된 프라이머리 경로 상의 피어에게 데이터를 통신기(810)를 통해 전송하거나 해당 피어로부터 데이터를 수신할 수 있다.
실시예에 있어서, 피어(800)는 피어(800) 자신과 프라이머리 경로로 연결된 피어의 탈퇴를 감지하는 경우, 오버레이 네트워크가 스패닝 트리 형태를 유지하도록 복구 절차를 수행할 수 있다.
일례로, 피어(800)는 탈퇴가 감지된 피어의 티켓 아이디보다 피어(800)의 티켓 아이디가 높고 복수의 아웃고잉 후보 경로들을 갖고 있는 경우, 아웃고잉 후보 경로들 중 최대 성능의 아웃고잉 후보 경로 상의 피어에게 프라이머리 설정 메시지를 전송할 수 있다. 여기서, 최대 성능은 상술한 시간 차이 또는 전송 속도와 관련될 수 있다.
피어(800)는 피어(800) 자신의 티켓 아이디가 탈퇴가 감지된 피어의 티켓 아이디보다 높고 복수의 아웃고잉 후보 경로들을 갖고 있지 않은 경우, 다른 피어 리스트를 HOMS(210)에 요청할 수 있다. HOMS(210)는, 예를 들어, 상술한 규칙 2에 따라 다른 피어를 생성하여 피어(800)로 전송할 수 있다. 피어(800)는 다른 피어 리스트를 HOMS(210)로부터 수신한 경우, 다른 피어 리스트에서 제3 피어를 선택할 수 있고 선택된 제3 피어에게 recovery 필드를 포함하는 요청 메시지(예를 들어, recovery 필드를 포함하는 HELLO PEER 요청 메시지)를 전송한 뒤 선택된 제3 피어와 연결을 형성할 수 있다. recovery 필드를 포함하는 요청 메시지의 전파는 선택된 제3 피어에 의해 시작될 수 있다. 또한, 피어(800)는 제4 피어들 중 하나 이상과 연결을 형성할 수 있다. 여기서, 제 4피어들 각각은 recovery 필드를 포함하는 요청 메시지를 전파받은 피어에 해당할 수 있다. 피어(800)는 선택된 제3 피어와 형성된 연결 및 제4 피어들 중 하나 이상과 형성된 연결 중에서 하나를 피어(800)의 복원된 프라이머리 경로로 결정할 수 있다. 이에 따라, 특정 피어가 탈퇴하더라도 오버레이 네트워크가 신속히 복구될 수 있다.
일 실시예에 따르면, 오류에 강한 안정적인 트리 기반 오버레이 네트워크가 구축할 수 있다.
또한, 일 실시예에 따르면, 서버의 제어 없이 피어 간 자체 구축 방식을 통해 빠르고 안정적으로 트리 기반 오버레이 네트워크가 구축될 수 있다. 이에 따라, Loop Free한 스패닝 트리가 보장될 수 있고, 기존 트리 기반 오버레이 네트워크보다 높은 확장성(scalability)이 확보될 수 있다.
또한, 일 실시예에 따르면, 피어 간 오류가 발생하는 경우 해당 오류가 최단 시간 내에 자동으로 안정적으로 복구될 수 있고, 기존 트리 기반 오버레이 네트워크에서 문제되었던 중간 노드 failure 문제가 해결될 수 있다.
또한, 일 실시예에 따르면, 하이브리드 오버레이 네트워크(또는 하이브리드 P2P 네트워크)는 트리 구조가 갖는 데이터 전파의 신속성과 메쉬 구조가 가지는 확장성/안정성을 제공할 수 있다.
또한, 일 실시예에 따르면, 복구 과정에서 서버의 제어를 받지 않고 자체 복구 방식을 통해 트리 토폴로지 비동기화 문제가 해결될 수 있다.
또한, 일 실시예에 따르면, 대규모 동시 단말 접속/사용자 수용과 서버 병목을 해소하여 실시간/비실시간 특성을 갖는 IoT 데이터의 수집 및 배포가 가능할 수 있다.
도 1 내지 도 7을 통해 기술된 사항들은 도 8을 통해 기술된 사항들에 적용될 수 있으므로, 상세한 설명을 생략한다.
도 9는 일 실시예에 따른 피어의 동작 방법을 설명하기 위한 순서도이다.
도 9를 참조하면, 피어(800)는 오버레이 네트워크 참여 요청이 있는 경우, HOMS(210)로부터 피어 리스트를 수신한다(910).
피어(800)는 수신된 피어 리스트에서 제1 피어를 선택한다(920).
피어(800)는 선택된 제1 피어와 연결을 형성한다(930).
피어(800)는 제2 피어들 중 하나 이상과 연결을 형성한다(940).
피어(800)는 형성된 연결들 중 하나를 프라이머리 경로로 결정한다(950).
피어(800)는 결정된 프라이머리 경로를 통해 통신한다.
도 1 내지 도 8을 통해 기술된 사항들은 도 9를 통해 기술된 사항들에 적용될 수 있으므로, 상세한 설명을 생략한다.
이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 청구범위와 균등한 것들도 후술하는 청구범위의 범위에 속한다.

Claims (14)

  1. 피어의 동작 방법에 있어서,
    상기 피어의 오버레이 네트워크 참여 요청이 있는 경우, 하이브리드 오버레이 관리 서버(Hybrid Overlay Management Server)로부터 피어 리스트를 수신하는 단계;
    상기 수신된 피어 리스트에서 제1 피어를 선택하는 단계;
    상기 선택된 제1 피어와 연결을 형성하는 단계;
    제2 피어들 중 하나 이상과 연결을 형성하는 단계 -상기 오버레이 네트워크 참여 요청의 전파는 상기 선택된 제1 피어에 의해 시작되고 상기 제2 피어들 각각은 상기 오버레이 네트워크 참여 요청을 전파받은 피어에 해당함-;
    상기 형성된 연결들 중 하나를 프라이머리 경로(primary path)로 결정하는 단계; 및
    상기 결정된 프라이머리 경로를 통해 통신하는 단계
    를 포함하는,
    피어의 동작 방법.
  2. 제1항에 있어서,
    상기 피어 리스트는 오버레이 네트워크에 남아있는 피어들 각각에 할당된 티켓 아이디를 기초로 결정된 피어들을 포함하고,
    상기 티켓 아이디는 각 피어의 오버레이 네트워크 참여 순서에 해당하는,
    피어의 동작 방법.
  3. 제1항에 있어서,
    상기 선택된 제1 피어와 연결을 형성하는 단계는,
    오버레이 네트워크에 참여하는 것을 알리기 위해 제1 요청 메시지를 상기 선택된 제1 피어로 전송하는 단계; 및
    상기 선택된 제1 피어로부터 상기 제1 요청 메시지에 대한 성공 응답을 수신하고, 상기 선택된 제1 피어로부터 상기 연결을 형성하기 위한 제2 요청 메시지를 수신하는 단계
    를 포함하는,
    피어의 동작 방법.
  4. 제3항에 있어서,
    상기 제1 요청 메시지는 오버레이 네트워크의 식별자, 상기 제1 요청 메시지를 전파할 피어들의 개수, 상기 피어의 최대 연결 개수, 및 상기 피어의 주소 정보 중 적어도 하나를 포함하고,
    상기 제2 요청 메시지는 상기 오버레이 네트워크의 식별자, 상기 선택된 제1 피어의 식별자, 및 상기 선택된 제1 피어의 티켓 아이디 중 적어도 하나를 포함하는,
    피어의 동작 방법.
  5. 제3항에 있어서,
    상기 제1 요청 메시지는 상기 선택된 제1 피어에 의해 수정되고, 상기 수정된 제1 요청 메시지는 상기 선택된 제1 피어와 프라이머리 경로로 연결된 하나 이상의 피어에게 전송되는,
    피어의 동작 방법.
  6. 제5항에 있어서,
    상기 수정된 제1 요청 메시지 내의 제1 파라미터의 값은 상기 제1 요청 메시지 내의 제1 파라미터의 값을 일정값만큼 차감한 결과를 상기 선택된 제1 피어와 프라이머리 경로로 연결된 피어의 개수로 나눈 것인,
    피어의 동작 방법.
  7. 제1항에 있어서,
    상기 결정하는 단계는,
    상기 형성된 연결들의 피어들에게 상기 피어의 로컬 타임스탬프를 포함하는 프로브 메시지를 전송하는 단계;
    상기 형성된 연결들의 피어들로부터 상기 로컬 타임스탬프가 임베딩된 응답을 수신하는 단계;
    상기 각 응답의 수신 시간에 해당하는 타임스탬프와 상기 수신된 각 응답에 포함된 상기 로컬 타임스탬프 사이의 시간 차이를 계산하는 단계; 및
    상기 계산된 시간 차이를 이용하여 상기 프라이머리 경로를 결정하는 단계
    를 포함하는,
    피어의 동작 방법.
  8. 제1항에 있어서,
    상기 피어와 프라이머리 경로로 연결된 피어의 탈퇴를 감지하는 경우, 오버레이 네트워크가 스패닝 트리(spanning tree) 형태를 유지하도록 복구 절차(recovery procedures)를 수행하는 단계
    를 더 포함하는,
    피어의 동작 방법.
  9. 제8항에 있어서,
    상기 복구 절차를 수행하는 단계는,
    상기 탈퇴가 감지된 피어의 티켓 아이디보다 상기 피어의 티켓 아이디가 높고 상기 피어가 복수의 아웃고잉 후보 경로들을 갖고 있는 경우, 상기 아웃고잉 후보 경로들 중 최대 성능의 아웃고잉 후보 경로 상의 피어에게 프라이머리 설정 메시지를 전송하는 단계
    를 포함하는,
    피어의 동작 방법.
  10. 제8항에 있어서,
    상기 복구 절차를 수행하는 단계는,
    상기 피어의 티켓 아이디가 상기 탈퇴가 감지된 피어의 티켓 아이디보다 높고 상기 피어가 복수의 아웃고잉 후보 경로들을 갖고 있지 않은 경우, 제2 피어 리스트를 상기 하이브리드 오버레이 관리 서버에 요청하는 단계;
    상기 제2 피어 리스트에서 제3 피어를 선택하고 상기 선택된 제3 피어에게 복구 필드를 포함하는 요청 메시지를 전송한 뒤 상기 선택된 제3 피어와 연결을 형성하는 단계;
    제4 피어들 중 하나 이상과 연결을 형성하는 단계 - 상기 복구 필드를 포함하는 요청 메시지의 전파는 상기 선택된 제3 피어에 의해 시작되고, 상기 제 4피어들 각각은 상기 복구 필드를 포함하는 요청 메시지를 전파받은 피어에 해당함-; 및
    상기 선택된 제3 피어와 형성된 연결 및 상기 제4 피어들 중 하나 이상과 형성된 연결 중에서 하나를 상기 피어의 복원된 프라이머리 경로로 결정하는 단계
    를 포함하는,
    피어의 동작 방법.
  11. 피어에 있어서,
    통신기; 및
    상기 피어의 오버레이 네트워크 참여 요청이 있는 경우, 상기 통신기를 통해 하이브리드 오버레이 관리 서버(Hybrid Overlay Management Server)로부터 피어 리스트를 수신하고, 상기 수신된 피어 리스트에서 제1 피어를 선택하며, 상기 선택된 제1 피어와 연결을 형성하고, 제2 피어들 중 하나 이상과 연결을 형성하고, 상기 형성된 연결들 중 하나를 프라이머리 경로(primary path)로 결정하는 컨트롤러
    를 포함하고,
    상기 오버레이 네트워크 참여 요청의 전파는 상기 선택된 제1 피어에 의해 시작되고 상기 제2 피어들 각각은 상기 오버레이 네트워크 참여 요청을 전파받은 피어에 해당하는,
    피어.
  12. 제11항에 있어서,
    상기 피어 리스트는 오버레이 네트워크에 남아있는 피어들 각각에 할당된 티켓 아이디를 기초로 결정된 피어들을 포함하고,
    상기 티켓 아이디는 각 피어의 오버레이 네트워크 참여 순서에 해당하는,
    피어.
  13. 제11항에 있어서,
    상기 컨트롤러는,
    오버레이 네트워크에 참여하는 것을 알리기 위해 제1 요청 메시지를 상기 선택된 제1 피어로 상기 통신기를 통해 전송하고, 상기 선택된 제1 피어로부터 상기 제1 요청 메시지에 대한 성공 응답을 상기 통신기를 통해 수신하며, 상기 선택된 제1 피어로부터 상기 연결을 형성하기 위한 제2 요청 메시지를 상기 통신기를 통해 수신하는,
    피어.
  14. 제11항에 있어서,
    상기 컨트롤러는,
    상기 피어와 프라이머리 경로로 연결된 피어의 탈퇴를 감지하는 경우, 오버레이 네트워크가 스패닝 트리(spanning tree) 형태를 유지하도록 복구 절차(recovery procedures)를 수행하는,
    피어.
KR1020200021161A 2019-09-30 2020-02-20 피어 및 피어의 동작 방법 KR20210038281A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US16/991,266 US11388092B2 (en) 2019-09-30 2020-08-12 Peer and operating method thereof

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020190120652 2019-09-30
KR20190120652 2019-09-30

Publications (1)

Publication Number Publication Date
KR20210038281A true KR20210038281A (ko) 2021-04-07

Family

ID=75469487

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200021161A KR20210038281A (ko) 2019-09-30 2020-02-20 피어 및 피어의 동작 방법

Country Status (1)

Country Link
KR (1) KR20210038281A (ko)

Similar Documents

Publication Publication Date Title
US10674486B2 (en) System, security and network management using self-organizing communication orbits in distributed networks
US7457257B2 (en) Apparatus, system, and method for reliable, fast, and scalable multicast message delivery in service overlay networks
US8743881B2 (en) Link data transmission method, node and system
JP2022517436A (ja) ブロックチェーンに基づくトランザクションシステム
EP1719325B1 (en) Method for optimally utilizing a peer to peer network
CN110324166B (zh) 一种在多个节点中同步目标信息的方法、装置及系统
US10091288B2 (en) Ordered execution of tasks
EP2119113B1 (en) System, method, and network node for checking the consistency of node relationship information in the nodes of a strongly connected network
US11388092B2 (en) Peer and operating method thereof
KR20210038281A (ko) 피어 및 피어의 동작 방법
CN109412942B (zh) 云网传输路由方法和系统
CN116684416A (zh) 一种网元集群中的镜像分发方法、装置和系统
CN102647424A (zh) 一种数据传输方法及其装置
CN111478937B (zh) 一种负载均衡方法和装置
Wang et al. Churn-tolerant leader election protocols
CN106657334B (zh) 一种基于Chord网络模型的改进数据复制方法
US20160301600A1 (en) System and method for management of network links by traffic type
KR101204317B1 (ko) P2p네트워크 시스템 및 이를 이용한 게시/가입 서비스 제공 방법
KR101467022B1 (ko) 콘텐츠 전달에 최적화된 스마트네트워크에서 멀티 도메인 기반 오버레이 네트워크 구성 및 관리 방법과 그 시스템
Wang et al. Topological Similarity-based Scheme for Large-scale Group Communication Services
Branco Topology-aware Gossip Dissemination for Large-scale Datacenters
JP5616831B2 (ja) 受信端末およびその制御プログラム
Heydari et al. Lightweight reliable overlay multicasting in large-scale P2P networks

Legal Events

Date Code Title Description
E902 Notification of reason for refusal