KR20080084961A - 열거 트래픽 관리 방법, 컴퓨터 판독가능 매체, 및네트워크 노드 - Google Patents

열거 트래픽 관리 방법, 컴퓨터 판독가능 매체, 및네트워크 노드 Download PDF

Info

Publication number
KR20080084961A
KR20080084961A KR1020087014361A KR20087014361A KR20080084961A KR 20080084961 A KR20080084961 A KR 20080084961A KR 1020087014361 A KR1020087014361 A KR 1020087014361A KR 20087014361 A KR20087014361 A KR 20087014361A KR 20080084961 A KR20080084961 A KR 20080084961A
Authority
KR
South Korea
Prior art keywords
enumeration
enumerators
network
enumerator
response
Prior art date
Application number
KR1020087014361A
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 마이크로소프트 코포레이션
Publication of KR20080084961A publication Critical patent/KR20080084961A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/12Discovery or management of network topologies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/40Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass for recovering from a failure of a protocol instance or entity, e.g. service redundancy protocols, protocol state redundancy or protocol service redirection
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W40/00Communication routing or communication path finding

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer And Data Communications (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

네트워크 노드 발견 방법은, 다수의 열거기들이 네트워크 상의 응답기 노드들로부터의 동일한 열거 응답들을 동시에 수용 및 해석할 수 있게 한다. 이러한 방식으로, 응답기 노드들은 각 열거기에 대하여 개별적인 응답들을 발행할 필요가 없다. 각 응답기는 발견 상태 및 하나 이상의 열거기당 세션 상태들을 유지하여 열거 응답들을 전송해야 하는 때를 관리한다. 따라서, 열거는 존재하는 열거기들의 개수에 상관없이 타겟 네트워크 로드에서 진행되고, 이용가능한 네트워크 용량을 효율적으로 사용함으로써 짧은 시간에 완료된다. 게다가, 열거기는, 다른 열거기들에 의해 요청되는 응답들을 요구하기 보다는, 이 응답들을 기다리기만 하면 되는 것을 결정할 수 있고, 이에 따라 동시에 열거하는 많은 노드들이 존재하는 가운데 네트워크 트래픽을 줄일 수 있다.
열거 모듈, 응답기 모듈, 네트워크 클라우드, 세션 상태

Description

열거 트래픽 관리 방법, 컴퓨터 판독가능 매체, 및 네트워크 노드{NODE DISCOVERY INVOLVING STEALTH NODE ENUMERATORS}
LAN은 가정, 사무실, 또는 사업체나 대학 캠퍼스와 같은 소그룹의 건물들처럼 작은 국부 영역을 커버하는 컴퓨터 네트워크이다. 최근의 LAN은, 다른 기술들을 채용할 수도 있지만, 10 내지 1000Mb/s(초당 메가비트)로 동작하는 스위칭 이더넷 또는 Wi-Fi 기술에 기초할 가능성이 높다. LAN의 통상적인 특징은, WAN과는 대조적으로, (a) 상당히 높은 데이터율, (b) 작은 지리적 범위, (c) 전용(leased) 원격통신 라인들의 부족(lack)을 포함할 수 있다.
네트워크 노드 발견(network node discovery)은 네트워크 내의 다른 장치들이나 노드들을 식별하기 위해 LAN과 같은 컴퓨터 네트워크에서 이용될 수 있다. 통상적으로, (열거기(enumerator)라 칭하는) 특정 노드는 네트워크 내의 (응답기(responder)라 칭하는) 다른 노드들로부터의 응답을 요구한다. 이러한 방식으로, 열거기는 네트워크 내의 다른 액티브 노드들의 리스트를 전개할 수 있다. 예를 들어, 네트워크 노드 발견 결과를 이용하여 네트워크로의 장치들의 진입을 식별할 수 있고, 네트워크로부터의 장치들의 제거를 검출할 수 있고, 라우팅과 로드 밸런싱 등을 최적화할 수 있다.
게다가, 다수의 열거기를 갖는 네트워크는 하나의 열거기를 갖는 네트워크에 비교할 때 네트워크 노드 열거에 대해 추가 도전 과제를 제시한다. 그러나, 기존의 네트워크 노드 발견 구현은, 특히 다수의 열거기가 존재하는 경우에, 느릴 수 있으며 일반적으로 강건(robust)하지 못하거나 쉽게 스케일링(scalable)될 수 없다. 이러한 구현은 열거기의 수가 증가함에 따라 네트워크 상의 로드를 급속히 증가시키는 경향이 있으며, 이에 따라 네트워크 오버로드의 위험성이 있다.
여기서 설명하고 청구하는 구현예들은, 다수의 열거기가 네트워크 상의 응답기 노드들로부터의 동일한 열거 응답들을 동시에 수용 및 해석(interpret)할 수 있게 함으로써, 전술한 문제점들 중 일부를 다룬다. 이러한 방식으로, 응답기 노드들은 각 열거기에 대하여 개별적인 응답들을 발행할 필요가 없다. 각 응답기는 발견 상태와 하나 이상의 열거기당 세션 상태를 유지하여, 응답기가 열거 응답을 언제 전송해야할지를 관리한다. 따라서, 열거는 존재하는 열거기의 개수에 상관없이 타겟 네트워크 로드에서 진행되며, 이용가능한 네트워크 용량을 효율적으로 사용함으로써 짧은 시간에 완료된다. 게다가, 열거기는 다른 열거기들에 의해 요청되는 응답들을 요구하기 보다는 기다리기만 하면 된다는 것을 결정할 수 있고, 이에 따라 동시에 열거중인 노드들이 많이 존재하는 가운데 네트워크 트래픽을 줄일 수 있다.
일부 구현예들에서, 제조 물품은 컴퓨터 프로그램 제품으로서 제공된다. 컴퓨터 프로그램 제품의 일 구현예는, 컴퓨터 시스템에 의해 판독가능하며 컴퓨터 프로그램이 인코딩된 컴퓨터 프로그램 저장 매체를 제공한다. 컴퓨터 프로그램 제품의 다른 구현예는, 컴퓨터 시스템에 의해 반송파 내에 구현되고 컴퓨터 프로그램이 인코딩된 컴퓨터 데이터 신호로 제공될 수 있다. 본 명세서에서 다른 구현예들도 설명 및 인용한다.
이 개요는 이하의 상세한 설명에서 더 설명되는 개념들의 선택을 간략한 형태로 도입하도록 제공된다. 이 개요는 청구 대상의 주요하거나 특징들을 식별하려는 것이 아니며 또한 본 발명의 범위를 제한하는 데 사용되려는 것도 아니다.
도 1은 본 명세서에서 설명하는 시스템 및 방법에 따른 네트워크 노드 열거가 구현될 수 있는 컴퓨터 네트워크의 일반화된 표현이다.
도 2는 도 1의 네트워크와 같은 네트워크의 열거기에 의해 수행되는 열거 세션에서 수행될 수 있는 다양한 동작들을 포함하는 동작 흐름을 도시한다.
도 3은 네트워크 열거 동안 응답기 모듈이 전이될 수 있는 상태들을 예시하는 간략한 상태 전이도이다.
도 4는 도 1의 네트워크와 같은 네트워크의 응답기 모듈에서의 고정된 라운드 길이 스케쥴링 방법(fixed round length scheduling method)에 대한 동작 흐름을 도시한다.
도 5는 도 1의 네트워크와 같은 네트워크의 응답기 모듈에서의 가변 라운드 길이 스케쥴링 방법에 대한 동작 흐름을 도시한다.
도 6은 네트워크 노드의 일례를 컴퓨터 시스템의 형태로 도시한다.
도 7은 다수의 노드 열거기가 존재하는 가운데 네트워크 노드 열거가 구현되 는 예시적인 컴퓨터 네트워크를 도시한다.
도 8은, 네트워크 열거 동안 응답기 모듈이 전이할 수 있는 상태들을 나타내는, 두 부분으로 간략화된 상태 전이를 도시한다.
도 9는 열거 응답을 관리하기 위한 예시적인 동작을 도시한다.
도 10 및 도 11은 열거 응답을 관리하기 위한 다른 예시적인 동작들을 도시한다.
본 명세서에서 설명하는 것은 네트워크 노드 열거를 위한 시스템 및 방법의 다양한 구현예들이다. 본 명세서에서 설명하는 시스템 및 방법의 일부에 따르면, 하나 이상의 열거 노드(즉, 열거기)는 네트워크의 다른 노드들에게 열거 요구를 전송한다. 열거 요구의 수신에 응답하여, 액세스가능한(즉, 온라인의) 노드(즉, 응답기)는, 열거기에 의해 수신될 수 있는 열거 응답을 전송하고, 이에 따라 자신을 열거기에 액세스가능한 것으로서 식별한다. 이후, 열거 노드는 수신한 열거 응답의 확인 응답을 전송한다. 일 구현예에서, 열거 노드는 하나 이상의 미래 열거 요구 내에 이러한 확인 응답을 전송한다.
다수의 응답기가 열거 요구에 응답하여 열거 응답들을 동시에 전송하는 것에 의해 발생할 수 있는 과도한 네트워크 정체(congestion)를 감소시키기 위해, 열거 응답들은 응답기들로부터 다양한 시간에 전송된다. 악의있는 노드가 다수의 액세스가능 노드들로부터의 열거 응답들의 동시 전송을 유발시킬 가능성을 줄이기 위해, 각 응답기는 자신의 열거 응답을 전송하는 시간을 독립적으로 결정한다.
일부 구현예들에서, 각 응답기는 네트워크 활동성(activity)의 관찰 및/또는 노드에서 행해지는 미래 네트워크 활동성의 예측에 기초하여 열거 응답이 전송되는 시간 또는 시간들을 독립적으로 스케쥴링한다. 또한, 일부 구현예들에서, 각 액세스가능 노드는 라운드 기반 스케쥴링 방법(round based scheduling method)을 채용하는데, 여기서 각 열거 응답은 다수의 타이밍 라운드 중 하나에서 전송되도록 스케쥴링된다.
이제 도 1을 참조해 보면, 컴퓨터 네트워크(100)의 일반화된 표현이 도시되어 있다. 이 컴퓨터 네트워크(100)는 네트워크 노드 열거가 발생할 수 있는 하나의 가능한 환경을 도시한다. 컴퓨터 네트워크(100)는 네트워크 클라우드(112)를 통해 상호 연결된 몇 개의 노드(110)를 포함한다. 변수(N)는 네트워크 상의 액세스가능한 노드들의 수에 대한 개별적인 노드의 추정값을 나타내는 데 사용된다. 서로 다른 노드들은 이 수의 서로 다른 추정값을 가질 수 있지만, 개별적인 추정값들은 일반적으로 그 값이 유사하다. 도 1에서는, 임의의 추정값(N)이 사용된다.
네트워크 클라우드(112)는, 일반적으로 데이터(예를 들어, 열거 요구 및 열거 응답)가 노드들(110) 간에 이동할 때 이 데이터가 다양한 네트워크 경로, 장치, 및/또는 전송 매체(예를 들어, 유선 또는 무선)를 통한 다양한 루트(route)를 취할 수 있음을 가리킨다. 노드(110)와 네트워크 클라우드(112)간의 라인(108)과 같은 뾰족한 라인은, 노드(110)가 네트워크에서 액세스가능하다(즉, 온라인)는 것을 가리킨다. 예를 들어, 노드들 (1), (2), (3), (5), (N)의 각각이 네트워크(100)에서 액세스가능한 것으로 도시되어 있는 반면, 노드(4)는 네트워크(100)에서 액세스불 가(즉, 오프 라인)로 도시되어 있다.
본 명세서에서 사용되는 바와 같이, "노드"라는 용어는, 네트워크(예를 들어, 네트워크(100))에서 고유하게 어드레싱가능하거나 다른 방식으로 고유하게 식별가능하며 네트워크의 다른 노드들과 통신하도록 동작가능한 임의의 컴퓨터 시스템, 장치, 또는 프로세스를 가리킨다. 예를 들어, 노드는, 퍼스널 컴퓨터, 서버 컴퓨터, 핸드헬드나 랩탑 장치, 태블릿 장치, 멀티프로세서 시스템, 마이크로프로세서 기반 시스템, 셋톱 박스, 가전 장치, 네트워크 PC, 미니컴퓨터, 메인프레임 컴퓨터, 전술한 시스템이나 장치 중 임의의 것을 포함하는 분산 컴퓨팅 환경 등일 수 있으며, 이에 한정되지는 않는다. 컴퓨터 시스템(600)의 형태인 네트워크 노드(110)의 일례는 도 6을 참조하여 이하에서 설명된다.
노드가 소정의 형태의 컴퓨터 시스템이나 장치를 포함하는 경우에, 이 노드는, 통상적으로 프로세서와 하나 이상의 형태의 컴퓨터 판독가능 매체, 및 노드를 네트워크(100)에 동작가능하게 연결할 수 있게 하는 하나 이상의 통신 연결부를 포함한다. 본 명세서에서 사용되는 바와 같이, 컴퓨터 판독가능 매체는, 컴퓨터에 의해 액세스될 수 있고 이해될 수 있는 형태로 인코딩된 정보를 저장하거나 구현하는 임의의 매체일 수 있다. 컴퓨터 판독가능 매체의 통상적인 형태는, 휘발성 및 비휘발성 메모리, 분리식 및/또는 비분리식 매체를 포함하는 데이터 저장 장치, 및 통신 매체를 포함하며, 이에 한정되지는 않는다.
통신 매체는 반송파나 기타 전송 메카니즘과 같은 변조된 데이터 신호로 컴퓨터 판독가능 정보를 구현하고, 임의의 정보 전달 매체를 포함한다. "피변조 데 이터 신호"라는 용어는, 신호 내에 정보를 인코딩하도록 그 신호의 특성들 중 하나 이상을 설정 또는 변경시킨 신호를 의미한다. 예로서, 통신 매체는 유선 네트워크 또는 직접 배선 연결(direct-wired connection)과 같은 유선 매체, 그리고 음향, RF, 적외선, 기타 무선 매체와 같은 무선 매체를 포함하며, 이러한 예로 한정되지는 않는다.
도시한 바와 같이, 노드(1)(114)는 열거 모듈(116)을 포함하는 반면, 노드들(2) 내지 (N)의 각각은 아마도 응답기 모듈(118)을 포함한다. 일반적으로, 열거 모듈(116)은 네트워크 노드 열거를 수행하는 다양한 기능성을 노드(1)(114)에 제공한다. 예를 들어, 열거 모듈(116)은, 열거 요구를 생성하고, 열거 요구의 전송을 스케쥴링하고, 열거 요구를 전송하고, 열거 응답의 확인 응답을 전송하고, 수신한 열거 응답에 포함된 정보를 처리하고, 네트워크에서 액세스가능한 노드들의 개수 및/또는 네트워크의 액세스가능한 노드들의 아이덴티티를 결정하는 기능성을 노드(1)(114)에 제공할 수 있다. 일반적으로, 각 응답기 모듈(118)은, 수신한 열거 요구를 처리하고 소정의 기준 및/또는 로직에 기초하여 열거 응답을 전송하는 시간을 결정하는 능력을, 자신과 관련되거나 자신이 포함되어 있는 노드(110)에 제공한다. 또한, 개별적인 노드가 열거 모듈과 응답 모듈 둘 다를 포함할 수도 있다는 점을 이해해야 한다. 본 명세서에서 사용되는 바와 같이, "전송"(sending)이라는 용어는 일반적으로 네트워크(100)를 통해 열거 요구 및 열거 응답과 같은 정보를 전송하는 것(예를 들어, 브로드캐스팅, 멀티캐스팅, 유니캐스팅 등)을 가리킨다.
특별한 모듈에 대하여 여기서 설명하는 기능성은 모듈 자체에 의해, 모듈이 포함되거나 관련된 노드와 동조하여 그 모듈에 의해, 또는 다수의 서브 모듈에 의해, 실행될 수 있다는 점을 이해하기 바란다. 예를 들어, 일부 구현예들에서, 모듈에 의해 수행되는 동작은 하나 이상의 컴퓨터 판독가능 매체에서 구현되는 컴퓨터 실행가능 명령어로서 구현된다. 이러한 구현예들에서, 모듈의 동작은 모듈이 포함되거나 관련된 노드의 프로세서 또는 다수의 프로세서에 의해 실행될 수 있다. 다른 구현예들에서, 모듈의 동작은, 이 모듈이 포함되거나 관련된 노드의 일부로서 또는 이 노드에 관련된 소정의 다른 방식으로 하드웨어, 펌웨어, 또는 하드웨어, 펌웨어, 소프트웨어의 소정의 조합으로서 구현될 수 있다. 게다가, 특별한 모듈에 대하여 여기서 설명하는 기능성은 다수의 노드에 의해 실행될 수 있고 또는 다수의 노드에 걸쳐 분산될 수 있다.
이제 열거 모듈(116)의 소정의 특정한 기능성에 대하여 보다 상세히 살펴보면, 일 구현예에서, 열거 모듈(116)은 시간적으로 이격된 다수의 열거 요구를 네트워크(100)의 응답기 모듈(118)에게 전송한다. 전송되는 열거 요구들 간의 이격은 주기적일 수 있고 또는 비주기적일 수 있다. 예를 들어, 일 구현예에서, 열거 요구들은 여기서 요구 간격(request interval)이라 칭하는 균등하게 이격된 시간 간격으로 전송된다. 다른 구현예에서, 열거 요구들은 랜덤하게 선택된 다양한 시간들에서 전송된다. 또다른 구현예에서, 열거 요구들은, 소정의 다른 스케쥴, 로직, 및/또는 열거 모듈(116)에 의해 행해지는 결정에 기초하여 열거 모듈(116)에 의해 결정된 시간들에서 전송된다.
일 구현예에서, 열거 요구는, 특히, 열거 모듈(116)에 의해 수신된 열거 응 답을 이전에 전송한 노드(110)를 식별(확인 응답)하는 정보를 포함한다. 일 구현예에서, 각 열거 요구는, 소정의 시간 프레임(예를 들어, 열거 세션)에서 열거 모듈에 의해 수신된 열거 응답을 전송한 노드(110)를 식별하는 정보를 포함한다. 예를 들어, 일 구현예에서, 각 열거 요구는, 최종 열거 요구가 열거 모듈에 의해 전송된 후 열거 응답을 전송한 노드(110)를 식별하는 정보(예를 들어, 확인 응답)를 포함할 수 있다. 일 구현예에서, 열거 요구는 이전에 확인 응답된 노드(110)를 식별할 수 있다. 다른 구현예에서, 열거 요구에서 소정의 노드가 확인 응답되는 횟수는 제한되거나 캐핑(cap)될 수 있다.
열거 모듈(116)이 열거 응답을 수신하면, 이 응답에 포함된 정보는 처리 또는 추후 검색을 위해 저장될 수 있다. 예를 들어, 열거 모듈(116)은 열거 응답을 전송한 각 노드의 아이덴티티(예를 들어, 네트워크 어드레스)가 저장되는 하나 이상의 데이터 구조를 생성 및/또는 유지할 수 있다. 일 구현예에서, 열거 모듈(116)은, 최종 열거 요구가 전송된 후 열거 응답들을 전송한 모든 노드들의 어드레스들을 포함하는 하나의 데이터 구조, 및 열거 세션 전체에서 열거 응답들을 전송한 모든 노드들의 어드레스들을 포함하는 다른 하나의 데이터 구조를 유지한다. 이 구현예에서, 최종 열거 요구 후 열거 응답들을 전송한 모든 노드들의 어드레스들을 포함하는 데이터 구조는 다음 열거 요구를 생성하는 데 사용될 수 있는 반면, 열거 세션 전체에서 열거 응답들을 전송한 모든 노드들의 어드레스들을 포함하는 데이터 구조는 최종 네트워크 노드 열거를 위해 사용될 수 있다. 다른 구현예들에서, 열거 모듈(116)은 열거 세션에서 사용되는 다양한 다른 데이터를 컴파일링 및/ 또는 저장한다.
일부 구현예들에서, 열거 모듈(116)은 열거 요구들을 전송하며, 소정의 조건(예를 들어, 타이밍 조건)이 충족될 때까지 열거 응답들을 수신 및 처리한다. 예를 들어, 일 구현예에서, 열거 모듈(116)은 최종 열거 응답을 수신한 후 소정의 시간 주기가 경과할 때까지 열거 요구들을 계속 전송하며, 이러한 예에 한정되지는 않는다. 다른 구현예에서, 열거 모듈(116)은 소정의 시간 주기당 응답들의 개수가 소정의 최소값 미만으로 될 때까지 열거 요구들을 계속 전송한다. 또다른 구현예에서, 열거 모듈(116)은 소정의 시간 주기당 수신되는 응답들의 개수가 소정의 최소값 미만으로 될 때까지 열거 요구들을 전송한 후, 소정의 추가 시간 주기동안 열거 요구들을 계속해서 전송한다.
일 구현예에서, 열거 세션동안 노드들로부터 수신되는 정보는 분석 및/또는 컴파일링되어 다양한 열거 데이터를 생성하게 된다. 예를 들어, 다른 정보에 더하여, 열거 세션동안 열거 응답들을 전송한 모든 노드들의 아이덴티티 및/또는 개수를 결정할 수 있다.
도 2는 네트워크의 열거기에 의해 수행되는 열거 세션 내에 수행될 수 있는 다양한 동작들을 포함하는 동작 흐름(200)을 도시한다. 다음에 따르는 도 2에 대한 설명은 도 1의 네트워크(100)를 참조한다. 특히, 도 2의 설명은 도 1의 네트워크(100) 및 열거 모듈(116)을 참조한다. 그러나, 도 2에 대하여 설명되는 동작 흐름은 열거 모듈(116)에 의해 또는 네트워크(100)에서 수행되는 것으로 제한되는 것이 아님을 이해하기 바란다. 또한, 동작 흐름(200)은 동작 실행의 특별한 순서를 가리키는 반면 다른 구현예들에서 동작들은 다르게 순서화될 수 있다는 점을 이해하기 바란다.
동작 흐름(200)은 특히 요구 페이즈(requesting phase)를 도시한다. 요구 페이즈는 열거 세션에서 열거 응답들이 네트워크의 노드들에게 전송되고 있는 부분이다. 요구 페이즈는 동작 흐름(200)에서 동작들(210 내지 218)을 포함하는 동작 루프로서 도시되어 있다.
도시한 바와 같이, 동작(208)에서, 열거 요구들 간의 원하는 간격이 설정된다. 도 2에 도시한 구현예에서, 동작(208)은 요구 페이즈에 앞서 동작 흐름(200)동안 한번 발생한다. 다른 구현예에서, 동작(208)은 요구 페이즈동안에도 발생할 수 있다. 이것은 동작 조건이나 네트워크 조건 또는 오퍼레이터 선호에 기초하여 요구 페이즈동안 열거 요구들 간의 원하는 간격을 변경하는 유연성을 제공한다.
다음으로, 동작(210)에서, 열거 요구는 열거 모듈(116)에 의해 네트워크(100)의 노드(110)들에게 전송된다. 동작(210)에서 전송된 열거 요구는, 특히, 열거 모듈(116)에 의해 수신된 열거 응답들을 이전에 전송한 노드(110)들을 식별하는 정보를 포함할 수 있다. 즉, 동작(210)에서 전송되는 열거 요구는, 열거 모듈(116)에 의해 수신된 열거 응답들을 이전에 전송한 노드(110)들의 확인 응답을 포함할 수 있다.
일 구현예에서, 동작(210)에서 전송된 열거 요구는, 열거 모듈(116)에 의해 최종 열거 요구가 전송된 후 열거 모듈(116)에 의해 수신된 열거 응답을 전송한 노드(110)들만을 식별하거나 확인 응답하는 정보를 포함한다. 다른 구현예들에서, 동작(210)에서 전송된 열거 요구는, 현재의 열거 세션동안 열거 모듈(116)에 의해 수신된 열거 응답을 전송한 노드(110)들의 일부 또는 전부를 식별하는 정보를 포함한다.
다음으로, 동작(212)에서 열거 모듈(116)이 열거 세션의 요구 페이즈를 종료해야 하는지 여부를 결정한다. 즉, 동작(210 내지 218)들에 의해 형성되는 동작 루프가 종료되어야 하는지 여부에 대한 결정을 내린다. 동작(212)에서 내린 결정은 다양한 인자들에 기초할 수 있다. 일부 구현예들에서, 동작(212)에서 내린 결정은 열거 세션동안 응답할 가능성이 있었던 모든 노드들이 이미 응답하였음을 가리키거나 시사하는 소정의 기준 또는 기준들에 기초한다. 예를 들어, 일 구현예에서, 열거 모듈(116)에 의해 최종 열거 응답이 수신된 후 소정의 시간이 경과하였다면, 동작(212)에서 열거 세션의 요구 페이즈를 종료하기로 결정을 내린다. 다른 구현예들에서는, 열거 모듈(116)이 열거 세션의 요구 페이즈를 종료할지 여부를 결정하는 데 있어서 다른 기준을 이용할 수 있다. 동작(212)은 동작(210) 후가 아니라 동작(210 내지 218)에 의해 형성되는 동작 루프 내의 다른 포인트들에서 발생할 수 있다는 점을 인식하기 바란다.
동작(212)에서 열거 모듈(116)이 요구 페이즈를 종료해야 한다고 결정하게 되면, 동작 흐름(200)은 후술하는 동작(220)으로 계속 진행된다. 그러나, 동작(212)에서 열거 모듈(116)이 요구 페이즈를 종료해야 한다고 결정하지 않으면, 동작 흐름은 열거 모듈(116)에 의해 최종 열거 요구가 전송된 후 임의의 열거 응답이 수신되었는지 여부를 결정하는 동작(214)으로 진행하게 된다.
열거 모듈(116)에 의해 최종 열거 요구가 전송된 후 동작(214)에서 어떠한 열거 응답도 수신되지 않았다고 결정하면, 동작 흐름(200)은 후술하는 동작(218)으로 계속 진행하게 된다. 그러나, 열거 모듈(116)에 의해 최종 열거 요구가 전송된 후 동작(214)에서 하나 이상의 열거 응답이 수신되었다고 결정하면, 응답들을 전송한 노드들의 아이덴티티가 저장되며, 동작 흐름(200)은 동작(218)으로 계속 진행하게 된다.
동작(218)에서는, 열거 요구가 전송되어야 하는지 여부를 결정한다. 이 결정은 다양한 방식들로 내려질 수 있다. 예를 들어, 일 구현예에서, 이 결정은, 열거 모듈(116)에 의해 최종 열거 요구가 전송된 후에, 동작(208)에서 설정된 열거 요구들 간의 원하는 간격과 동일한 시간 주기가 경과하였는지 여부에 기초하여 내려진다. 동작(218)에서 열거 요구가 전송되어야 한다고 결정하게 되면, 동작 흐름(200)은 동작(210)으로 리턴한다. 동작(218)에서 열거 요구가 전송되지 않아야 한다고 결정하게 되면, 동작 흐름은 동작(214)으로 리턴한다. 동작(218)은 동작(214) 후가 아니라 요구 페이즈에서의 다른 포인트들에서 발생할 수 있다는 점을 인식하기 바란다.
전술한 바와 같이 동작(212)으로 리턴하여, 열거 모듈(116)이 요구 페이즈를 종료해야 한다고 결정하면, 동작 흐름(200)은 동작(220)으로 계속 진행하게 된다. 동작(220)에서, 열거 세션동안 수집된 데이터는 컴파일링되고 전송되며 그리고/또는 저장되며, 동작 흐름(200)은 종료된다. 동작(220)에서 컴파일링될 수 있는 데이터의 유형의 일부 예들은 소정의 시간 주기 내에 열거 모듈(116)에 의해 전송된 열거 요구에 응답한 모든 노드들의 식별 및/또는 카운트를 포함한다.
일부 구현예들에서, 동작(220)은 동작 흐름에서 동작(212) 다음에 위치하지 않는다. 즉, 일부 구현예들에서, 동작(220)은 열거 모듈(116)이 열거 세션의 요구 페이즈를 종료해야 한다는 결정에 뒤이어 실행되지 않는다. 오히려, 일부 구현예들에서, 데이터를 컴파일링하고 전송하는 작업은 요구 페이즈 동안 하나 이상의 포인트에서 또는 요구 페이즈 전체에 걸쳐 연속적으로 발생할 수 있다.
각 응답기 모듈(118)은 열거 모듈(116)로부터의 열거 요구의 전송을 위해 네트워크를 모니터링한다. 여기서 설명하는 다양한 구현예들에서, 열거 요구를 검출하게 되면, 각 응답기 모듈(118)은 응답 스케쥴링 방법을 실행한다. 일반적으로, 응답 스케쥴링 방법은, 열거 응답을 전송함으로써 응답기 모듈(118)이 열거 요구에 대하여 응답할지 여부를 결정한다. 응답기 모듈이 열거 요구에 응답할 것으로 결정하면, 스케쥴링 방법은 응답기 모듈(118)이 열거 응답을 전송할 시간을 결정한다.
응답기 모듈(118)에 의해 채용될 수 있는 많은 서로 다른 유형의 응답 스케쥴링 방법들이 존재한다. 예를 들어, 도 3, 4, 5의 각각은 응답기 모듈(118)에 의해 채용될 수 있는 응답 스케쥴링 방법을 도시하고 있으며, 이러한 예로 한정되지는 않는다. 일부 구현예들에서, 네트워크(100)의 각 응답기 모듈은 소정의 열거 세션 동안 동일하거나 대략 유사한 응답 스케쥴링 방법을 이용한다. 다른 구현예들에서, 서로 다른 스케쥴링 방법들이 네트워크(100)의 다양한 응답기 모듈(118)들에 의해 사용될 수 있다.
다음에 따르는 도 3, 4, 5에 대한 설명은 도 1의 네트워크(100)를 참조한다. 특히, 다음에 따르는 도 3, 4, 5에 대한 설명은 네트워크(100)의 응답기 모듈(118)과 열거 모듈(116)을 참조한다. 그러나, 도 3, 4, 5에서 설명하는 스케쥴링 방법들은 응답기 모듈(118), 열거 모듈(116)에 의해 또는 네트워크(100)에서 수행되는 것으로 한정되지 않는다는 점을 이해하기 바란다. 또한, 도 3, 4, 5에 도시한 스케쥴링 방법의 각각은 동작들 및/또는 상태들의 특별한 순서를 가리키고 있지만 다른 구현예들에서 이러한 동작들 및/또는 상태들은 다르게 순서화될 수 있으며, 도시한 다양한 동작들 및/또는 상태들이 실행되지 않거나 포함되지 않을 수 있고, 그리고/또는 다른 동작들 및/또는 상태들이 포함될 수 있다는 점을 이해하기 바란다.
먼저 도 3을 참조해 보면, 네트워크 열거 동안 응답기 모듈(118)이 전이할 수 있는 상태들의 예를 나타내는 간략한 상태 전이도가 도시되어 있다. 도시한 바와 같이, 응답기 모듈(118)은 초기에 유휴(idle) 상태(310)에 있다. 열거 요구(312)를 수신하게 되면, 응답기 모듈(118)은 응답 타이머를 설정하고, 열거 응답 전송 시간을 결정하며, 유휴 상태(310)로부터 일시 정지(pause) 상태(320)로 전이한다. 열거 응답 전송 시간은, 타이머를 참조하여, 응답기 모듈이 열거 응답을 열거 모듈(116)에 전송할 시간을 특정한다.
응답기 모듈(118)은 다양한 방식들로 열거 응답 전송 시간을 결정할 수 있다. 일부 구현예들에서, 응답기 모듈(118)은, 다른 응답기 모듈들로부터 전송된 열거 응답들에 대한 응답기 모듈(118)의 관찰에 기초하여 열거 응답 전송 시간을 결정한다. 보다 상세하게, 이러한 구현예들에서, 응답기 모듈은, 네트워크의 다른 노드들이 유사한 타이밍 방법을 사용하고 있다고 가정할 때, 네트워크 전반에서 전송된 열거 응답들의 원하는 분포를 만들어내는 경향이 있는 타이밍 방법을 사용하여 열거 전송 시간을 설정하기 위해 이러한 관찰을 이용한다. 타이밍 방법은 네트워크의 다른 노드들이 유사한 타이밍 방법을 사용하고 있다는 가정을 이용할 수 있지만, 이러한 가정은 부정확할 수 있다는 점을 이해하기 바란다.
이러한 일 구현예에서, 응답기 모듈(118)에 의한 관찰은 다른 응답기 모듈들에 의한 열거 응답들의 전송에 의해 야기되는 네트워크 전반에서의 평균 열거 응답 밀도(average enumeration response density)에 관한 것이다. 이러한 다른 구현예에서, 응답기 모듈(118)에 의한 관찰은, 다른 응답기 모듈들에 의한 열거 응답들의 전송으로 인해 네트워크 전반에서 소정의 시간 주기당 전송되는 데이터 양(예를 들어, 초당 비트들)에 대한 네트워크 로드에 관한 것이다. 전송 시간을 계산할 수 있는 방식에 대한 보다 특정한 예들은 도 4 및 도 5를 참조하여 후술한다.
일단 일시 정지 상태(320)로 되면, 응답기 모듈(118)은 타이머가 응답 전송 시간(322)에 도달하는 것을 기다리거나 열거 모듈(116)이 응답기 모듈(118)로부터 열거 응답을 수신하였다는 확인 응답(긍정적 확인 응답)을 포함하는 열거 요구(324)의 수신을 기다린다. 타이머가 응답 전송 시간(322)에 도달한 경우에는, 응답기 모듈이 응답 전송 시간에 또는 다른 시간에 열거 응답을 전송하고, 전송 상태(330)로 전이한다. 응답기 모듈이 긍정적 확인 응답(324)을 수신하는 경우에는, 응답기 모듈(118)이 완료 상태(340)로 전이한다.
일단 전송 상태(330)로 되면, 응답기 모듈(118)은 열거 요구(332 또는 334) 의 수신을 기다린다. 열거 요구가 긍정적 확인 응답(334)을 포함하지 않으면, 응답기 모듈(118)은, 전술한 바와 같이, 응답 타이머를 설정하고, 열거 응답 전송 시간을 결정하며, 전송 상태(330)로부터 일시 정지 상태(320)로 전이한다. 열거 요구가 긍정적 확인 응답(332)을 포함하면, 응답기 모듈(118)은 전송 상태(330)로부터 완료 상태(340)로 전이한다.
일부 구현예들에서, 응답기 모듈(118)은 라운드 기반 스케쥴링 방법을 채용한다. 라운드 기반 스케쥴링 방법은, 일반적으로 네트워크의 다양한 응답기 모듈들 간에 동기화될 수 있는 다수의 순차적 타이밍 라운드들 중 하나 동안 열거 응답의 전송을 스케쥴링한다. 라운드 기반 스케쥴링에서, 라운드들의 타이밍은 각 응답기 모듈(118)에 의해 별도로 계산된다. 그러나, 일반적인 동기화는, 응답기 모듈(118)들에서 사용되는 공통 스케쥴링 방법들 및 열거 요구에 의해 트리거되는 스케쥴링 방법을 위한 대략적인 동시 시작 시간으로 인해 다양한 응답기 모듈(118)들에서의 타이밍 라운드들 간에 발생할 수 있다.
다른 유형의 스케쥴링이 채용될 수 있긴 하지만, 라운드 기반 스케쥴링은 고정된 라운드 길이 스케쥴링 또는 가변 라운드 길이 스케쥴링으로 분류될 수 있다. 고정된 라운드 길이 스케쥴링에서, 타이밍 라운드들의 소정의 시퀀스에서 각 타이밍 라운드의 지속 기간(duration)은 대략 동일하다. 반면에, 가변 라운드 길이 스케쥴링에서, 타이밍 라운드들의 소정의 시퀀스에서의 각 타이밍 라운드의 지속 기간은 가변될 수 있다.
고정된 라운드 길이 스케쥴링과 가변 라운드 길이 스케쥴링 둘 다에서는, 열 거 응답들 간에서 소정의 원하는 최소 평균 시간에 모든 액세스가능 응답기 모듈로부터의 열거 응답들의 전송을 균등하게 분산하려 한다. 이를 달성하기 위해, 고정된 라운드 길이 스케쥴링 방법과 가변 라운드 길이 스케쥴링 방법 둘 다는 노드 잔여값(Nr; nodes remaining value) 및 최소 간격값(I)을 계산한다. 노드 잔여값(Nr)은 열거 모듈(116)로부터 긍정적 확인 응답을 아직 수신하지 않은 노드들의 개수의 추정을 특정하는 정수이다. 최소 간격값(I)은 열거 세션 동안 모든 액세스가능한 노드들에서의 응답기 모듈들로부터 네트워크를 통한 열거 응답들 간의 원하는 최소 평균 시간을 특정한다.
고정된 라운드 길이 스케쥴링에서, 값들(Nr, I)은 열거 응답이 소정의 라운드에서 전송되는지 여부를 결정하는 데 사용된다. 가변 라운드 길이 스케쥴링에서, 값들(Nr, I)은 라운드들의 길이를 결정하는 데 사용된다.
노드 잔여값(Nr)이 결정되는 방식은 사용되는 라운드 기반 스케쥴링의 유형에 의존한다. 노드 잔여값(Nr)이 결정될 수 있는 방식들의 일부 예들을 도 4 와 도 5를 참조하여 아래에서 설명한다. I 값은 경험적으로 선택될 수 있고, 또는 최대 네트워크 크기, 네트워크 전송 속도 등과 같은 다양한 파라미터들에 기초하여 계산될 수 있다. 일부 구현예들에서, I는 밀리초(ms)로 특정된다. 다른 구현예들에서, I는 다른 시간 단위들로 표현된다. 일단 획득되면, I 값은, 네트워크의 모든 응답기 모듈(118)들에 저장되거나 다른 방식으로 이러한 모든 응답기 모듈들이 액 세스할 수 있게 된다.
도 4 및 도 5의 각각은 스케쥴링 방법의 한 가지 가능한 구현예의 동작 흐름을 도시한다. 다음에 따르는 도 4 및 도 5에 대한 설명은 하나의 열거 요구에 응답하는 하나의 응답기 모듈에 대한 것이다. 도 4 및 도 5에 도시한 동작 흐름은 응답기 모듈(118)에 의해 열거 요구들이 수신될 때마다 응답기 모듈(118)에서 발생할 수 있다는 점을 이해하기 바란다. 게다가, 도 4 및 도 5에 도시한 동작 흐름과 동일하거나 유사한 동작 흐름이 통상적으로 열거 세션 동안 네트워크(100)의 액세스가능한 각 응답기 모듈(118)에서 발생한다는 점을 이해하기 바란다.
도 4는 응답기 모듈(118)에서 고정된 라운드 길이 스케쥴링 방법에 대한 한 가지 가능한 동작 흐름(400)을 도시한다. 일부 구현예들에서, 동작 흐름(400)에 의해 도시된 스케쥴링 방법은, 응답기 모듈에 의해 열거 요구가 수신될 때마다 응답기 모듈(118)에 의해 수행된다. 다른 구현예들에서, 동작 흐름(400)에 의해 도시된 스케쥴링 방법은 특정한 시간들에서만 응답기 모듈(118)에 의해 수행된다. 즉, 일부 구현예들에서, 동작 흐름(400)에 의해 도시된 스케쥴링 방법은 다양한 동작 조건들이나 사용자 모드에 기초하여 턴온 또는 턴오프된다.
일부 구현예들에서, 응답기 모듈에서의 동작 흐름(400)의 수행 전 소정의 시간에, 고정된 라운드 길이 스케쥴링 방법에서 사용되는 타이밍 라운드들의 지속 기간을 특정하는 타이밍 라운드 지속 기간 값(td)이 결정된다. 이 값(td)은 경험적으로 선택될 수 있고, 또는 최대 네트워크 크기, 네트워크 전송 속도 등과 같은 다양 한 파라미터들에 기초하여 계산될 수 있다. 일부 구현예들에서, td는 타이밍 라운드들의 지속 기간을 밀리초(ms)로 가리키는 정수값이다. 다른 구현예들에서, td는 다른 시간 단위들로 표현된다. 일단 획득되면, td는, 네트워크의 모든 응답기 모듈(118)들에 저장되거나 다른 방식으로 이러한 모든 응답기 모듈들이 액세스할 수 있게 된다.
많은 구현예들에서, 값(td)은 열거 세션의 시작 전에 결정된다. 대부분의 구현예들에서, 값(td)은 스케쥴링 방법 전체에 걸쳐 일정하게 유지된다. 일부 구현예들에서, 값(td)은, 제1 타이밍 라운드를 위한 제1 값을 갖고, 관찰한 프로세스 로드와 같은 인자들에 기초하여, 스케쥴링 방법의 나머지 타이밍 라운드들을 위한 제2 값으로 조절된다.
동작(410)에서, 열거 요구는 응답기 모듈(118)에 의해 수신된다. 열거 요구의 수신은 응답기 모듈(118)에서 스케쥴링 방법을 시작하거나 트리거한다. 동작(412)에서, 수신된 열거 요구가 응답기 모듈(118)로부터 열거 모듈(116)에 의해 열거 응답이 이미 수신되었다는 표시(긍정적 확인 응답)를 포함하고 있는지 여부를 결정한다. 예를 들어, 응답기 모듈은 열거 세션에서의 이전 시간(earlier time)에 전송된 열거 요구에 대한 응답으로 열거 응답을 전송했을 수 있다.
동작(412)에서 수신된 열거 요구가 긍정적 확인 응답을 포함하고 있다고 결정되면, 동작 흐름(400)이 종료된다. 그러나, 동작(412)에서 수신된 열거 요구가 긍정적 확인 응답을 포함하고 있지 않다고 결정되면, 동작(414)에서는, 동작 흐름(400) 동안 발생하는 타이밍 라운드들의 시퀀스의 다음 타이밍 라운드에서 열거 응답이 전송될 확률을 특정하는 확률값(φ)을 결정한다.
확률값(
Figure 112008042396185-PCT00001
)은 다양한 방법으로 선택 또는 결정될 수 있다. 예를 들어, 일 구현예에서 값
Figure 112008042396185-PCT00002
는 열거 모듈(116)에 열거 응답을 아직 전송하지 않은 응답기 모듈들의 수의 추정값에 기초하여 결정된다. 일 구현예에서,
Figure 112008042396185-PCT00003
는 수학식 1에 따라 결정된다.
Figure 112008042396185-PCT00004
동작(414)이 처음 수행될 때, Nr의 값은 초기에 최대 노드값(Nmax)으로 설정되며, 이 최대 노드 값은 네트워크(100) 내의 액세스 가능한 노드들의 최대 수의 추정값을 나타낸다. 동작 흐름 내에서 동작(414)이 다음 번에 수행될 때마다, Nr은, 이하에 설명된 바와 같이 다른 응답기 모듈들로부터 전송된 관찰된 응답들에 기초하여 결정된다.
다음에, 타이밍 라운드 동작(416)은 지속 기간(td)의 타이밍 라운드를 시작한다. 타이밍 라운드의 시작과 거의 동시에, 동작(418)에서는 열거 응답이 타이밍 라운드 동안 응답기 모듈(118)에 의해 전송될 것인지 여부가 결정된다. 이 결정은, 동작(414)에서 결정된 확률
Figure 112008042396185-PCT00005
을 이용하여 이루어진다. 즉, 열거 응답이 현재 라운드 동안 전송되는지 여부를 확률
Figure 112008042396185-PCT00006
을 이용하여 선택하기 위해 소정의 메커니즘 또는 알고리즘이 이용된다.
동작(418)에서 열거 응답이 현재 타이밍 라운드 동안 전송되지 않는 것이 결정되면, 동작 흐름(400)은 후술된 바와 같이 동작(424)으로 진행한다. 그러나, 동작(418)에서 열거 응답이 현재 타이밍 라운드 동안 전송되는 것이 결정되면, 라운드 중에서 열거 응답이 전송될 정확한 시간이 그 후 동작(420)에서 결정된다. 일 구현예에서, 라운드 중에서 열거 응답이 전송될 시간은 라운드의 지속 기간에 걸쳐 무작위로 선택된다. 다른 구현예에서, 라운드 중에서 열거 응답이 전송될 시간은 다른 방식으로 선택될 수도 있다. 동작(420)에 후속하여, 열거 응답은 동작(420) 동안 결정된 시간에 동작(422)에서 전송된다.
동작(422)에 후속하여, 현재 타이밍 라운드 동안 열거 응답을 보낸 모든 노드들의 카운트(r)가 동작(424)에서 이루어진다. 일 구현예에서, 네트워크를 모니터링하고 현재 타이밍 라운드 동안 네트워크 내에서 전송되는 열거 응답들의 수를 카운팅함으로써 응답기 모듈에 의해 카운트(r)가 이루어진다. 동작(424)은 동작(422)에 후속하여 발생하는 것으로 도시되지만, 실시 중에, 현재 타이밍 라운드 동안 네트워크에서 전송된 열거 응답들의 카운트는 보통은 타이밍 라운드의 전부 또는 대부분에 걸쳐 발생할 것이라는 점이 이해되어야 한다.
다음, 동작 흐름(400)은 노드 잔여값(Nr)이 추정되는 동작(426)으로 진행한다. 일반적으로, Nr은 다른 응답기 모듈들로부터 전송된 관찰된 응답들에 기초하여 추정된다. 예를 들어, 일 구현예에서 노드 잔여값(Nr)은 이하의 수학식 2에 따라 계산된다.
Figure 112008042396185-PCT00007
동작 흐름(400)에서 처음으로 동작(426)이 수행될 때, Nprevious의 값은 Nmax와 동일하다. 후속하여 동작 흐름(400)에서 동작(426)이 수행되는 때마다, Nprevious의 값은 흐름(400)에서 마지막으로 동작(426)이 수행된 때에 계산된 Nr의 값일 것이다.
어떤 구현예에서는, Nr의 계산된 값은 상한(NUB) 및/또는 하한 NLB를 가질 수 있다. NUB 및 NLB의 값들은 다양한 방법으로 선택될 수 있다. 예를 들어, 이 값들은 소정의 고정된 값들일 수 있고, 동작 흐름(400) 동안 계산될 수 있고, 다양한 관찰된 노드 또는 네트워크 작용(behavior)에 기초할 수 있고 그리고/또는 Nr의 이전 또는 현재 계산된 값들의 백분율일 수 있다(이에 제한되지 않음).
또한, 어떤 구현예들에서는, Nr의 추정 또는 계산시 동작(426)에서의 값(td)을 이용하지 않고, 실제적인 타이밍 라운드 지속 기간이 측정되고(tactual), 측정된 값 tactual이 그 후 Nr의 추정 또는 계산시 이용된다. 예를 들어, 상기 수학식 2의 값 td 대신에 값 tactual이 이용될 것이다.
다음, 현재의 타이밍 라운드 동안 열거 요구가 수신되었는지 여부에 대한 결정이 동작(428)에서 이루어진다. 현재의 타이밍 라운드 동안 요구가 수신된 것으로 결정되면, 상기 설명한 바와 같이, 동작 흐름은 동작(412)으로 리턴한다. 현재의 타이밍 라운드 동안 요구가 수신되지 않은 것으로 결정되면, 동작 흐름은 비활동성 조건(inactivity condition)이 만족되었는지 여부에 대한 결정이 이루어지는 동작(430)으로 진행한다.
비활동성 조건은 다수의 방법들로 선택되고 그리고/또는 결정될 수 있다. 예를 들어, 일 구현예에서, 열거 요구의 수신 후 소정의 시간이 경과되었다면 비활동성 조건이 만족된다. 동작(430)에서 비활동성 조건이 만족되었다고 결정되면, 동작 흐름은 종료한다. 그러나, 동작(430)에서 비활동성 조건이 만족되지 않았다고 결정되면, 동작 흐름은, 상기 설명된 바와 같이, 동작(414)으로 리턴한다.
전술된 바와 같이, 긍정적 확인 응답(positive acknowledgement)을 포함하는 열거 응답이 수신되거나(동작(412)) 또는 비활동성 조건이 만족된 경우(동작(430)), 동작 흐름(400)이 종료할 것이다. 또한, 어떤 구현예에서는, 동작 흐름 내에서 열거 요구가 수신되는 어떠한 포인트에서든, 그 요구가 긍정적 확인 응답을 포함하는지 여부에 대한 결정이 이루어진다. 수신된 요구가 긍정적 확인 응답을 포함하지 않는 것으로 결정되면, 동작 흐름은 계속된다. 예를 들어, 동작(416)에 후속하여, 그러나 동작(418) 전에, 긍정적 확인 응답을 포함하지 않는 요구가 수신되면, 동작 흐름은 동작(418)으로 계속될 것이다. 수신된 요구가 긍정적 확인 응답을 포함하는 것으로 결정되면, 동작 흐름이 종료한다.
일 구현예에서, 동작 루프(400)의 시작 이후 동안 다른 응답기 모듈들로부터 전송된 관찰된 열거 응답들의 전체 수(TR)에 대한 카운트가 응답기 모듈에 의해 유지된다. 이 구현예에 따르면, 응답기 모듈에 의해 열거 요구가 수신될 때마다,요구가 수신된 때의 TR의 값(TRmb)이 저장된다. 즉, 수신된 각각의 요구에 대하여 값 TRmb가 저장된다. 소정의 라운드 i의 종료시, TRmb의 가장 최근 값이 이전의 타이밍 라운드 종료시의 값 TRmb와 비교된다. TRmb의 가장 최근 값이 이전의 타이밍 라운드 종료시의 값 TRmb보다 더 크면, TRmb의 가장 최근 값과 이전 타이밍 라운드 종료시의 값 TRmb 간의 차이(TRdiff)는, 아래의 수학식 3에 의해 표현된 바와 같이, 동작 흐름(400)의 동작(426)에서 결정된 값 Nr에 더해진다.
Figure 112008042396185-PCT00008
도 5는 응답기 모듈(118)에서의 가변 라운드 길이 스케줄링 방법을 위하여 가능한 동작 흐름(500)을 도시한다. 어떤 구현예들에서는, 응답기 모듈에 의해 열거 요구가 수신될 때마다, 동작 흐름(500)에 의해 도시된 스케줄링 방법이 응답기 모듈(118)에 의해 수행된다. 다른 구현예들에서, 동작 흐름(500)에 의해 도시된 스케줄링 방법은 특정된 시간들에서만 응답기 모듈(118)에 의해 수행된다. 즉, 일부 구현예들에서, 동작 흐름(500)에 의해 도시된 스케줄링 방법은 다양한 동작 조 건들 또는 사용자의 필요에 기초하여 "턴온" 또는 "턴오프"된다.
응답기 모듈에서의 동작 흐름(500)의 수행 이전의 어느 시간에, 전송 확률 값(
Figure 112008042396185-PCT00009
) 및/또는 초기 타이밍 라운드 지속 기간 값(tinitial)이 결정된다. 전송 확률 값(
Figure 112008042396185-PCT00010
)은 타이밍 라운드에서 응답이 발행될 확률을 특정한다. 초기 타이밍 라운드 지속 기간 값(tinitial)은 가변 라운드 길이 스케줄링 방법의 제1 타이밍 라운드의 지속 기간을 특정한다.
값들
Figure 112008042396185-PCT00011
및 tinitial은 경험적으로(empirically) 선택되거나, 최대 네트워크 크기, 네트워크 전송 속도 등과 같은 각종 파라미터들에 기초하여 계산될 수 있다. 일단 획득되면, 값들
Figure 112008042396185-PCT00012
및 tinitial은 네트워크 내의 모든 응답기 모듈들(118)에 저장되거나 다른 방식으로 그 응답기 모듈들(118)이 액세스할 수 있게 된다.
많은 구현예들에서, 값
Figure 112008042396185-PCT00013
는 열거 세션의 시작 전에 결정된다. 대부분의 구현예들에서, 값
Figure 112008042396185-PCT00014
는 스케줄링 방법 내내 일정하게 유지된다. 어떤 구현예들에서, 값
Figure 112008042396185-PCT00015
는, 스케줄링 방법의 제1 타이밍 라운드에 대한 제1 값을 갖고, 관찰된 프로세스 로드(observed process load)와 같은 인자들에 기초하여, 스케줄링 방법에서의 잔존 타이밍 라운드들에 대한 제2 값으로 조정된다.
일 구현예에서, tinitial의 값은 다음과 같이 결정된다. 먼저, 네트워크(100)에서 액세스 가능한 노드들의 최대 수의 추정을 나타내는 최대 노드 값(Nmax)이 결정된다. 그 후, 초기 타이밍 라운드 지속 기간 값(tinitial)이 아래의 수학식 4에 따 라 결정된다.
Figure 112008042396185-PCT00016
동작(510)에서, 응답기 모듈(118)에 의해 열거 요구가 수신된다. 열거 요구의 수신은 응답기 모듈(118)에서 스케줄링 방법을 시작, 또는 "트리거(trigger)"한다. 동작(512)에서는, 수신된 열거 요구가, 응답기 모듈(118)로부터 열거 모듈(116)에 의해 열거 응답이 이미 수신되었다는 표시(indication)("긍정적 확인 응답")를 포함하고 있는지 여부에 대한 결정이 이루어진다. 예를 들어, 응답기 모듈은 열거 세션의 더 이른 시간에 전송된 열거 요구에 대한 응답으로 열거 응답을 보냈을 수도 있다.
동작(512)에서, 상기 수신된 열거 요구가 긍정적 확인 응답을 포함하는 것으로 결정되면, 동작 흐름(500)은 종료한다. 그러나, 동작(512)에서, 상기 수신된 열거 요구가 긍정적 확인 응답을 포함하지 않는 것으로 결정되면, 다음 타이밍 라운드의 지속 기간(T)가 동작(514)에서 결정된다. 처음으로 동작(514)이 수행될 때, T는 tinitial과 동일하다. 동작 흐름 내에서 후속하여 동작(514)이 수행될 때마다, 다른 응답기 모듈들로부터 전송된 관찰된 응답들에 기초하여 T가 결정된다. 예를 들어, 일 구현예에서는, 다음 타이밍 라운드에 걸쳐 열거 응답들이 고르게 분산되도록 아래의 수학식 5에 따라 T의 값이 계산된다.
Figure 112008042396185-PCT00017
다음, 타이밍 라운드 동작(516)은 지속 기간 T의 타이밍 라운드를 시작한다. 타이밍 라운드의 시작과 거의 동시에, 동작(518)에서, 타이밍 라운드 동안 열거 응답이 응답기 모듈(118)에 의해 전송되는지 여부가 결정된다. 이 결정은, 상기 설명된 바와 같이, 확률
Figure 112008042396185-PCT00018
를 이용하여 이루어진다. 즉, 확률
Figure 112008042396185-PCT00019
를 이용하여 현재 라운드 동안 열거 응답이 전송될 것인지 여부를 선택하기 위해 소정의 메커니즘 또는 알고리즘이 이용된다.
일 구현예에서, 응답기는 그것이 동작하는 T의 최소 값을 갖는다. 이것은 Tmin와 같이 시간의 단위로 직접적으로, 또는 노드들의 수 Nmin과 같이 간접적으로 특정될 수 있다. 이러한 구현에서는 T가 Tmin보다 작다면(또는 Nr이 Nmin보다 작다면), 타이밍 라운드의 지속 기간은 Tmin으로 설정되며 확률은 1로 설정된다.
동작(518)에서, 열거 응답이 현재 타이밍 라운드 동안 전송되지 않는 것으로 결정되면, 동작 흐름(500)은, 후술하는 바와 같이, 동작(524)으로 진행한다. 그러나, 동작(518)에서, 열거 응답이 현재 타이밍 라운드 동안 전송되는 것으로 결정되면, 라운드 동안에서 열거 응답이 전송되는 정확한 시간이 동작(520)에서 결정된다. 일 구현예에서, 라운드 내에서 열거 응답이 전송되는 시간은 라운드의 지속 기간에 걸쳐 무작위로 선택된다. 다른 구현예들에서, 라운드 동안에서 열거 응답이 전송되는 시간은 다른 방법으로 선택될 수 있다. 동작(520)에 후속하여, 동 작(522)에서 열거 응답은 동작(520) 동안 결정된 시간에 전송된다.
동작(522)에 후속하여, 현재 타이밍 라운드 동안 열거 응답을 전송하는 모든 노드들의 카운트(r)가 동작(524)에서 이루어진다. 일 구현예에서는, 네트워크를 모니터링하고 현재 타이밍 라운드 동안 네트워크에서 전송되는 열거 응답의 수를 카운트함으로써 응답기 모듈에 의해 카운트(r)가 이루어진다. 동작(524)은 동작(522)에 후속하여 발생하는 것으로 도시되지만, 실시 중에, 현재 타이밍 라운드 동안 네트워크에서 전송된 열거 응답의 카운트는 타이밍 라운드 전체 또는 대부분에 걸쳐 발생하는 것이 통상적이라는 것이 이해되어야 한다.
다음, 동작 흐름(500)은 노드 잔여값(Nr)이 추정되는 동작(526)으로 진행한다. 일반적으로, Nr은 다른 응답기 모듈들로부터 전송된 관찰된 응답들에 기초하여 추정된다. 현재 라운드의 시작시 아직 열거 요구에 응답하지 않은 응답기 모듈들의 수(Ncurrent)는 대략
Figure 112008042396185-PCT00020
이었다는 것이 추정될 수 있다. Ncurrent에 대한 이 추정을 이용하여, 노드 잔여값(Nr)이 아래의 수학식 6과 같이 추정될 수 있다.
Figure 112008042396185-PCT00021
다음, 현재 타이밍 라운드 동안 열거 요구가 수신되었는지 여부에 대한 결정이 동작(528)에서 이루어진다. 현재 타이밍 라운드 동안 요구가 수신된 것으로 결정되면, 동작 흐름은, 후술된 바와 같이, 동작(512)으로 리턴한다. 현재 타이밍 라운드 동안 요구가 수신되지 않은 것으로 결정되면, 동작 흐름은, 비활동성 조건이 만족되었는지 여부에 대한 결정이 이루어지는 동작(530)으로 진행한다.
비활동성 조건은 많은 방법으로 선택되고 그리고/또는 결정될 수 있다. 예를 들어, 일 구현예에서, 열거 요구의 수신 이후 소정의 시간이 경과했다면 비활동성 조건이 만족된다. 동작(530)에서, 비활동성 조건이 만족된 것으로 결정되면, 동작 흐름은 종료한다. 그러나, 동작(530)에서, 비활동성 조건이 만족되지 않은 것으로 결정되면, 동작 흐름은, 상기 설명된 바와 같이, 동작(514)으로 리턴한다.
전술된 바와 같이, 긍정적 확인 응답을 포함하는 열거 응답이 수신되거나(동작(512)) 또는 비활동성 조건이 만족된 경우(동작(530)), 동작 흐름(500)은 종료할 것이다. 또한, 일부 구현예들에서는, 열거 요구가 수신되는 동작 흐름 내의 어떤 포인트에서든, 요구가 긍정적 확인 응답을 포함하는지 여부에 대한 결정이 이루어진다. 수신된 요구가 긍정적 확인 응답을 포함하지 않는 것으로 결정되면, 동작 흐름은 계속된다. 예를 들어, 동작(516)에 후속하여(그러나, 동작(518) 이전에), 긍정적 확인 응답을 포함하지 않는 요구가 수신되면, 동작 흐름은 동작(518)으로 계속될 것이다. 수신된 요구가 긍정적 확인 응답을 포함하는 것으로 결정되면, 동작 흐름은 종료한다.
상기 설명된 다양한 타이밍 방법들에서, 응답기 모듈(118)은 통상적으로 열거 요구가 수신되는 때마다 열거 응답들을 전송할 것이다. 역시 설명된 바와 같이, 다양한 구현예들에서, 응답기 모듈은 통상적으로 네트워크(100)를 모니터링하고 소정의 시간 지속 기간 동안 전송되는 열거 응답들의 수를 카운트할 것이다. 그 후, 이 카운트는 열거 요구에 아직 응답하지 않은 응답 모듈들의 수 Nr을 추정하는 데 이용된다. 그러나, 어떤 구현예들에서, 응답기 모듈은, 응답들을 소정의 확률 z로 전체로서 네트워크에 송출하고(브로드캐스팅(broadcasting)), 확률 (1-z)로 열거기 모듈(116)에 지향된 응답들을 전송함(유니캐스트(unicast))으로써 네트워크에 부과된 로드를 감소시킬 수 있다. 그러한 구현예에서, 관찰된 응답들의 수를 z로 나눔으로써 Nr을 추정하는 것이 여전히 가능할 수 있다.
도 6은 컴퓨터 시스템(600)의 형태로, 예시적인 네트워크 노드(110)를 도시한다. 가장 기본적인 구성으로, 컴퓨팅 시스템(600)은 적어도 하나의 처리 유닛(602) 및 메모리(604)를 포함한다. 컴퓨팅 장치의 정확한 구성 및 유형에 따라, 메모리(604)는 휘발성(예를 들면 RAM), 비휘발성(예를 들면 ROM, 플래시 메모리, 등), 또는 그들의 어떤 조합일 수 있다. 이 가장 기본적인 구성은 도 6에서 점선(606)으로 도시된다. 또한, 컴퓨터 시스템(600)은 부가적인 특징들/기능성을 가질 수 있다. 예를 들어, 장치(600)는 자기 또는 광디스크 또는 테이프를 포함하는(그러나 이에 제한되는 것은 아님) 추가적인 저장소(분리식 및/또는 비분리식)를 포함할 수도 있다. 이러한 추가적인 저장소는 도 6에서 분리식 저장소(608)와 비분리식 저장소(610)로 도시된다.
컴퓨터 시스템(600)은 또한 장치가 다른 장치와 통신하게 해주는 통신 연결부(들)(612)를 포함할 수 있다. 컴퓨터 시스템(600)은 또한 키보드, 마우스, 펜, 음성 입력 장치, 터치 입력 장치 등과 같은 입력 장치(614)를 가질 수 있다. 디스 플레이, 스피커들, 프린터 등과 같은 출력 장치(616)도 컴퓨터 시스템(600)에 포함될 수 있다. 이 장치들 모두는 업계에서 공지되어 있으며 여기에서 상세히 설명될 필요는 없다.
예시적인 일 구현예에서, 열거기 모듈, 응답기 모듈, 및 다른 모듈들은 메모리(604) 및/또는 저장 장치들(608 및 610)에 저장된 명령어들에 의해 구현될 수 있고 처리 유닛(602)에 의해 처리될 수 있다. 세션 상태 테이블들 및 레코드들, 발견 상태들, 확인 응답, 열거 요구들, 열거 응답들, 및 기타 데이터는 메모리(604) 및/또는 저장 장치들(608 및 610)에 저장될 수 있다.
도 7은 다수의 노드 열거기가 존재하는 가운데 네트워크 노드 열거가 구현되는 예시적인 컴퓨터 네트워크(700)를 도시한다. 컴퓨터 네트워크(700)는 단지 예시이며, 다수의 노드 열거기가 존재하는 가운데 다른 네트워크 구성, 프로토콜, 동작을 채용할 수 있다는 점을 이해하기 바란다. 컴퓨터 네트워크(700)는 네트워크 클라우드(712)를 통해 상호 연결된 소정 개수(N)의 노드(710)들을 포함한다. 변수(N)는 네트워크 상의 액세스가능한 노드들의 개수에 대한 개별적인 노드의 추정값을 나타내는 데 사용된다. 서로 다른 노드들은 이 개수의 서로 다른 추정값들을 가질 수 있지만, 개별적인 추정값들은 일반적으로 그 값이 유사하다. 도 7에서는, 임의의 추정값(N)이 사용된다. 노드(710)와 네트워크 클라우드(712) 간의 라인(708)과 같은 뾰족한 라인은, 노드(710)가 네트워크(700)에서 액세스가능하다(즉, 온라인)는 것을 가리킨다.
도시한 바와 같이, 노드(1)(720), 노드(2)(722), 노드(3)(724)은 열거 모 듈(716)들을 포함하는 반면, 노드(4)(726), 노드(5)(728), 노드(6)(730), 노드(7)(732), 노드(N)(734)은 응답기 모듈(718)들을 포함한다. 노드가 응답기 모듈과 열거 모듈 둘 다를 포함할 수 있다는 점을 이해하기 바란다. 도 7에 대하여, 노드(1)(720), 노드(2)(722), 노드(3)(724)도 응답기 모듈들(도시하지는 않았지만, 응답기 모듈(718)들이라 칭할 수도 있음)을 포함한다고 가정한다. 이 모듈들은 도 1에 대하여 설명한 모듈들과 유사하지만, 도 7에 도시한 모듈들은 특히 다수의 노드들로부터의 동시 열거 동작들을 지원하도록 설명된다.
다수의 열거기를 갖는 네트워크에서, 임의의 열거기는, 다수의 다른 열거기들이 액티브 상태가 아닐 때, 다수의 다른 열거기들 중 하나가 이미 액티브 상태일 때, 또는 다수의 다른 열거기들이 이미 액티브 상태일 때를 포함하여 어느 때라도 시작될 수 있다. 또한, 네트워크는 다수의 열거기들이 액티브 상태일 때 (네트워크 내의 하드웨어 고장에 의해서와 같이) 일시적으로 파티션될 수 있고 재연결될 수 있어서, 서로에게 가시적인 액티브 노드들의 개수에 큰 순간 변화를 야기한다.
일 구현예에서, 각 열거 모듈(716)은 네트워크 클라우드(712)를 통해 열거 요구를 전송할 수 있고 다수의 노드(710)들로부터의 열거 응답들을 처리할 수 있다. 일 구현예에서, 열거 요구들은, 요구하는 열거기의 식별자, 및 열거 요구에 대하여 이전에 응답한 노드(710)들을 식별하는(즉, 확인 응답하는) 확인 응답 정보를 포함할 수 있으며, 이에 한정되지는 않는다. 일례로, 열거 요구는 열거기 식별자(eid) 및 시퀀스 식별자(xid)를 포함하며, 여기서, 시퀀스 식별자는 열거기에 의해 개시된 개별 열거 세션들을 구별하도록 열거기에 의해 제공된다. 열거기 식별 자는, IP 어드레스, MAC 어드레스 또는 다른 노드나 모듈 식별자와 같이, 응답기 모듈(718)이 서로 다른 열거기들을 구별할 수 있게 하는 임의의 식별자일 수 있다. 일 구현예에서, 시퀀스 식별자는 특정한 열거기에 대한 서로 다른 열거 세션들을 구별하여, 열거기가 자신의 열거 세션을 재시작하는 때를 응답기 모듈이 검출할 수 있게 한다. 열거 요구의 다른 예시적인 특징들은 도 1에 대하여 설명되어 있다. 열거 응답을 수신하면, 열거 모듈(716)은 도 1에 대하여 설명한 바와 같이 처리 또는 추후 검색을 위하여, 응답 내에 제공된 정보를 저장한다.
이에 관하여, 응답기 모듈(718)은 하나 이상의 열거 모듈(716)의 열거 요구에 대한 응답을 생성하고 다양한 열거 모듈(716)들로부터의 확인 응답을 처리한다. 일 구현예에서, 각 응답기 모듈(718)은 각 요청 열거기에 대한 세션 상태 및 응답 노드에 대한 별도의 발견 상태를 유지한다. 응답기 모듈(718)에 의해 열거 요구가 수신되면, 응답기 모듈(718)은 열거 요구를 검사하고 요구에 관련된 시퀀스 식별자 및 열거기 식별자를 결정한다. 이후, 응답기 모듈(817)은, 필요시, 열거기 식별자에 관련된 세션 상태를 갱신하고 응답 노드의 발견 상태를 갱신한다. 응답 노드에 의한 응답들의 발행은 발견 상태에 의해 관리되며, 이것은 각 열거 노드에 관련된 세션 상태에 의존한다.
도 8은 네트워크 열거 동안 응답기 모듈이 전이될 수 있는 상태들을 나타내는 두 부분으로 간략화된 상태 전이도(800)이다. 일 구현예에서, 각 응답기 모듈은 관찰되는 각 요청 열거기에 대하여 세션 상태를 유지한다(세션 상태도(802) 참조). 예를 들어, 세션 상태들이 개별적인 세션 상태 레코드들을 갖는 세션 상태 테이블(또는 일반적으로 테이블 형태일 수도 있고 아닐 수도 있는 세션 상태 데이터 저장부)로서 유지될 수 있고, 여기서, 각 레코드는 열거기 식별자, 시퀀스 식별자, 세션 상태값에 관한 것이다. 일 구현예에서, 세션 상태 레코드는 요구하는 열거기에 관련된 재전송 카운터 및/또는 액티브 시간값을 포함할 수도 있다. 다른 구현예에서는, 단일 재전송 카운터가 각 열거기마다 하나씩이 아니라 응답기 모듈에 의해 유지된다. 예시적인 세션 상태들은 경청(LISTENING), 펜딩(PENDING), 완료(DONE) 상태들을 포함할 수 있다. 다른 가능한 세션 상태값은 유휴(IDLE)를 포함할 수 있다(아래 참조). 마찬가지로, 각 응답기 모듈은 발견 상태를 유지한다(발견 상태도(804) 참조). 일 구현예에서, 발견 상태는 2개의 발견 상태값(유휴 및 응답(RESPONDING))을 포함하도록 유지될 수 있다.
(리프레시 시간값이라고도 칭하는) 액티브 시간값은 관련된 열거기가 열거 요구를 마지막으로 발행한 시간을 나타낸다. 액티브 시간값은, 유휴 열거기들(예를 들어, 열거 요구의 전송을 정지하였지만 아직 응답기에게 확인 응답하지 않은 열거기)을 검출하고, (예를 들어, 긴 열거를 여러 개의 서로 다른 열거들로 처리하는 것을 방지하기 위해) 액티브 열거기들을 추적하고, (예를 들어, 패킷 손실 등으로 인해, 열거기가 완료를 가리키지 않거나 응답기가 확인 응답을 관찰하지 않으면) 완료된 열거(complete enumeration)를 검출하기 위해, 응답기에 의해 사용된다. 유휴 열거기 또는 완료된 열거가 검출되면, 응답기 모듈은, 예를 들어, 테이블로부터 유휴 열거기에 대한 세션 상태 레코드를 삭제하거나, 유휴 열거기에 대한 세션 상태 레코드를 클리어하거나, 유휴 열거기에 대한 세션 상태를 유휴 상태로 설정하는 것 등에 의해, 세션 상태를 갱신한다.
또한, 도 8은 응답기 모듈이 열거 요구를 경청하고 있는 가상 상태를 가리키는 경청 세션 상태(806)를 도시한다. 세션 상태도(802)는 세션 상태가 경청인 동안 열거 요구의 수신으로 인해, 세션 상태가 요구(예를 들어, 요구2)하고 있는 열거기에 관련된 펜딩 상태(808)로 전이되는 것을 나타내고 있다. 이처럼, 경청 세션 상태(806)는 검출된 요구하고 있는 열거기에 각각 대응하는 다수의 가능한 세션 상태들로 분기되는 것으로 보인다(도 8은 E개의 열거기에 대한 세션 상태들을 도시하고 있음). 새로운 열거기들은 언제라도 열거 프로세스로 들어갈 수 있어서, 경청 세션 상태(806)로부터 새로운 분기를 야기한다. 일부 구현예들에서, 예를 들어, 분기는 새롭게 검출된 열거기에 대한 새로운 세션 상태 레코드를 세션 상태 테이블에 생성하는 것, 또는 이전에 검출된 열거기에 관한 새로운 정보에 대하여 현존하는 세션 상태 레코드를 갱신하는 것을 가리킬 수 있다. 마찬가지로, 최근에 관찰된 열거기들은 언제라도 열거 프로세스를 그만둘 수 있다. 이와 같이, 하나 이상의 열거기가 들어오고 나가는 것에 의해, 하나의 열거 프로세스에 참여하는 열거기들의 세트는 매우 동적이게 된다. 또한, 도 8에 도시한 상태 전이도는 예시적일 뿐이며 다른 상태들과 전이들이 채용될 수 있다는 점을 이해하기 바란다.
응답기 노드에 의해 열거 요구가 수신될 때, 이 노드의 응답기 모듈은 열거 요구로부터 열거기 식별자와 시퀀스 식별자를 결정한다. 세션 및 발견 상태들에 따라, 응답기 모듈은 서로 다른 방식들로 응답할 수 있다.
세션 상태에 관하여, 열거기 식별자가 응답기 모듈에게 새로운 것이라면(예를 들어, 관련된 세션 상태 레코드가 없다면), 응답기 모듈은 세션 상태 테이블에 그 열거기 식별자에 대한 세션 상태 레코드를 생성하고, 열거 요구로부터의 시퀀스 식별자를 세션 상태 테이블에 저장하고, 세션 상태 테이블에서 세션 상태값을 펜딩으로 설정하고 액티브 시간값을 결정된 값으로 설정한다. 또한, 응답기 모듈은 재전송 임계값에 대한 재전송 카운트를 갱신하고 BEGUN 플래그를 설정할 수 있다. BEGUN 플래그는 후술하는 바와 같이 다음 라운드를 위한 노드 잔여 추정값(Nr)에 대한 소정의 정련(refinement)을 트리거하도록 라운드의 끝에서 검출될 수 있다.
열거기 식별자가 응답기 모듈에게 새롭지 않으면, 응답기 모듈은 열거 요구의 열거기 식별자에 대응하는 현존하는 세션 상태 레코드를 판독하고 그 세션 레코드의 시퀀스 식별자를 열거 요구의 시퀀스 식별자와 비교한다. 이러한 시퀀스 식별자들이 일치하고 열거기가 열거 요구에서 응답 노드에게 확인 응답하지 않았다면, 액티브 시간이 갱신된다(예를 들어, 현재 시간으로 갱신됨). 시퀀스 식별자들이 일치하지 않으면, 현존하는 세션 상태 레코드가 삭제되고 이전 단락에서 설명한 바와 같이 생성된 새로운 세션 상태 레코드로 대체된다(또는 다른 방안으로, 동일한 초기 상태를 제공하도록 갱신됨). 시퀀스 식별자들이 일치하고 열거기가 열거 요구에서 응답 노드에게 확인 응답하고 있다면, 그 열거기에 관련된 세션 상태는 완료 상태(810)로 설정된다.
응답기 모듈이 요구하는 열거기 각각에 대한 세션 상태를 유지한다는 점을 이해하기 바란다. 다수의 세션 상태들의 영향들은 발견 상태에 의해 부분적으로 관리된다. 응답기 모듈의 발견 상태가 현재 유휴 상태(812)에 있고 임의의 열거기 모듈로부터 열거 요구를 수신하면, 응답기 모듈은 응답 상태(814)로 전이된다. 응답 상태(814)에 있는 동안, 응답기 모듈은, 하나 이상의 열거기에 의해 수신될 수 있고 확인 응답될 수 있는 열거 응답들을 주기적으로 전송한다. 일 구현예에서, 응답기 모듈은, 결정된 개수의 응답들(예를 들어, 4개 응답의 재전송 임계값)이 전송될 때까지 또는 현재 펜딩중인 모든 열거기들이 응답 노드로부터의 열거 응답의 수신을 확인 응답할 때(즉, 모든 세션 상태들이 완료 상태(810)로 전이되었음)까지 열거 응답들을 전송한다. 이러한 조건들 중 어떠한 것이라도 발생하면, 발견 상태는 유휴 상태(812)로 리턴된다.
결정된 재전송 임계값에 대하여 재전송을 관리하는 재전송 카운터는 새로운 열거기로부터의 열거 요구의 수신을 이용하여 갱신될 수 있음을 이해하기 바란다. 이처럼, 응답기가 4개 응답의 재전송 임계값을 갖고 새로운 열거기로부터 열거 요구를 수신하기 전에 2번 응답하였다면, 재전송 카운터는 4개의 후속 열거 응답들을 야기하도록 리셋될 수 있다.
도 9는 열거 응답들을 관리하기 위한 예시적인 동작(900)을 도시한다. 일반적으로, 응답기는 열거 요구들을 경청하며, 이 요구들은 열거기 식별자(즉, 요구를 행하는 열거기를 식별하는 것)와 시퀀스 식별자(예를 들어, 열거기에 의해 특정된 열거 세션을 식별하는 것)를 포함할 수 있다. 일부 열거 요구들에서, 열거기는 자신이 열거 응답들을 수신하고 받아들인 응답기들에게 확인 응답할 수도 있다. 수 신 동작(902, 916)들은 열거 요구들과 확인 응답들을 수신하기 위한, 별개이면서도 잠재적으로는 동시에 발생하는 동작을 나타내지만, 확인 응답들이 열거 요구에서 수신될 수 있으므로, 이러한 수신 동작(902, 916)들이 일부 구현예들에선 하나의 동작일 수 있다는 점을 이해하기 바란다.
수신 동작(902)은 열거기로부터 열거 요구를 수신한다. 세션 상태 동작(904)은 열거 요구로부터 열거기 식별자와 시퀀스 식별자를 도출해 내고, 열거기 식별자에 관련된 세션 상태를 생성하거나 갱신한다.
예를 들어, 응답기가 열거기로부터 "2"라는 시퀀스 식별자를 갖는 열거 요구를 수신하면, 세션 상태 동작(904)은 (예를 들어, 세션 상태 테이블에) 그 열거기에 대한 세션 상태가 이미 기록되어 있는지 여부를 결정한다. 그 세션 상태가 이미 기록되어 있고 그 열거기의 세션 상태에 관련된 시퀀스 식별자가 2와 같다면, 열거기에 대하여 기록된 세션 상태는 갱신된다(예를 들어, 액티브 시간이 갱신됨). 그러나, 열거기에 관련된 현존하는 세션 상태 레코드에 대한 시퀀스 식별자가 2와 같지 않으면, 세션 상태 레코드는 클리어되고 재생성되어(또는 단순히 갱신되어) 새로운 시퀀스 식별자, 갱신된 액티브 시간, 펜딩 세션 상태를 반영하게 되며, BEGUN 플래그가 설정될 수 있다.
게다가, 열거기에 대하여 응답기에 의해 유지되는 세션 상태 레코드가 미리 존재하지 않는다면, 세션 상태 레코드는 시퀀스 식별자 "2", 갱신된 액티브 시간, 펜딩 세션 상태를 갖고서 생성되고, BEGUN 플래그가 설정될 수 있다. 수신 동작(902) 및 세션 상태 동작(904)은, 동일한 세션에서 또는 서로 다른 열거 세션들 에서 동일한 열거기에 대하여, 그리고/또는 서로 다른 열거기들에 대하여 동시에 여러 번 발생할 수 있다는 점을 이해하기 바란다.
게다가, 동작(902, 904)들에 의해 하나 이상의 열거 요구들이 처리되는 동안, 발견 상태도 유지되고 있다. 발견 상태가 유휴 상태에 있다면, 최초의 요구 동작(906)은, 열거 요구의 수신에 응답하여 응답기에 의해 유지되는 발견 상태를 응답으로 설정한다. 이 상태 전이는, 수신된 열거 요구가 하나 이상의 동시 열거 세션들의 세트에서 수신된 최초의 열거 요구였다는 것을 가리킨다.
응답 동작(908)은, 발견 상태가 응답 상태에 있는 동안 (예를 들어, 주기적으로 갱신되는 노드 잔여 추정값들에 기초하여 여기서 설명하는 응답 스케쥴에 따라) 열거 응답을 전송한다. 열거 응답은, 경청하고 있는 임의의 열거 노드들에게 어느 응답기가 자신이 네트워크에서 액티브임을 가리키고 있는지를 통보하도록, 특히, 응답기 식별자를 포함할 수 있다.
수신 동작(916)은, 요청하고 있는 열거기가 응답기의 열거 응답을 수신하고 받아들였다는 확인 응답을(예를 들어, 열거 요구와 함께, 또는 다른 방식으로) 수신한다. 이에 따라, 세션 상태 동작(918)은 요구하고 있는 열거기에 관련된 세션 상태 레코드를 찾고 그 열거기에 대한 세션 상태를 완료로 설정한다.
결정 동작(910)은, 다양한 세션 상태 타임아웃 및 리셋을 두고서, 그로부터의 열거 요구들이 수신된 모든 열거기들이 응답기에게 확인 응답하였는지 여부를(예를 들어, 응답기에 의해 유지되는 세션 상태 레코들 모두가 완료 세션 상태를 가리키는지를) 결정한다. 모두 확인 응답하지 않았다면, 발견 상태는 응답 상태로 유지되며, 노드의 응답들을 (균등하게 또는 균등하지 않게) 스페이스 아웃(space out)하는 일시 정지 동작(912)을 거쳐, 처리는 응답 동작(908)으로 리턴한다. 그렇지 않고, 모든 열거기들이 응답기에게 확인 응답하였다면, 발견 상태 동작(914)은 새로운 열거 요구가 수신될 때까지 발견 상태를 유휴로 설정한다.
한 실시 중에, 일시 정지 동작(912)은 노드 잔여 추정값을 갱신하고 이에 따라 예를 들어 결정된 지연을 두고 가능한 열거 응답을 스케쥴링한다. 다수의 열거기 구현예에서, 노드 잔여 추정값의 일례는 아래와 같이 재계산될 수 있다.
Figure 112008042396185-PCT00022
이러한 노드 잔여 추정값을 이용함으로써, 응답 전송에 결정된 지연을 실시하기 위해 새로운 라운드 지속 기간을 계산할 수 있다. 다른 방안으로, 응답 확률을 계산할 수 있으며, 이것도 응답 전송에 결정된 지연을 도입한다. 다른 결정된 지연들을 채용할 수도 있다.
또한, 일 구현예에서, BEGUN 플래그가 설정되면, 추정값은 (예를 들어, 새로운 열거기로부터 열거 요구를 수신하는 (예를 들어, 유휴 상태나 완료 상태에 있는) 많은 수의 정지(quiescent) 응답기들이 존재할 때처럼) 액티브 노드들에 의한 많은 수의 응답들의 가능성을 완화시키도록 조절될 수 있다. 예를 들어, (새로운 열거기에 의한 열거 요구의 수신을 가리키는) BEGUN 플래그가 설정되면, 노드 잔여 추정값(Nr)은 후속 라운드를 위해 증가된다. 일 구현예에서, 노드 잔여 추정값(Nr)이 Nmax의 절반보다 작으면, 노드 잔여 추정값(Nr)은 다음 라운드를 위해 두 배로 된다. Nr이 Nmax의 절반보다 크고 Nmax보다 작으면, Nr은 Nmax로 설정된다. Nr이 Nmax보다 크면, Nr은 변경되지 않는다. 이 알고리즘은, 새로운 열거 요구에 동시에 응답하는 많은 수의 정지 응답기들의 영향을 줄이도록 노드 잔여 추정값을 증가시키는 방식의 일례를 나타내지만, 다른 알고리즘들도 예상된다. 이러한 방식으로, 정지 응답기들은 다음 라운드에서 보다 큰 추정값을 갖고, 이에 따라 자신들의 응답들을 느리게 하며 현존하는 열거 세션들이 새로운 세션 전에 완료될 수 있게 한다.
일 구현예에서, 동작(908, 910, 912)들의 처리는 결정된 재전송 임계값(예를 들어, 일 구현예에서 4개의 응답)으로 한정된다. 모든 열거기들이 응답기에게 확인 응답하지 않고서 그 응답기의 재전송 카운터가 재전송 임계값을 충족시키면, 발견 상태 동작(914)은 그럼에도 불구하고 중단되며 발견 상태를 유휴로 설정한다. 새로운 열거 세션(예를 들어, 시퀀스 식별자들이 일치하지 않음)에서 또는 새로운 열거기로부터의 열거 요구의 수신에 응답하여 재전송 카운터가 리셋될 수 있다는 점을 이해하기 바란다.
다수의 열거기들에 대한 열거 응답들을 관리하기 위한 설명된 방법에서, 열거기 로직도 변경되어 시스템을 개선할 수 있다. 다수의 열거기들이 하나 이상의 응답기에게 요구를 행하고 있기 때문에, 열거기가 자신의 고유한 열거 요구와 확인 응답을 발행하지 않고서도 자신이 필요로 하는 열거 응답들을 얻을 수 있다는 것을 결정할 수 있는 조건이 존재하며, 이에 따라 전체 네트워크 로드를 줄이게 된다.
일 구현예에서, 각 열거기는 다른 열거기들로부터의 요구들을 관찰할 수 있고 요구들을 행하는 별개의 열거기들의 카운트(CE)를 유지할 수 있다. 이 카운트를 이용함으로써, 각 열거기는, 확인 응답을 전송하는 각 열거기에 의해 야기되는 로드가 응답기의 재전송 임계값(예를 들어, 4개 응답)을 충족하는 다수의 응답들을 전송하는 각 응답기에 의해 야기되는 로드보다 큰지 여부를 모듈이 결정할 수 있는 스텔스 조건(stealth condition)을 갖는다. 스텔스 조건의 일례는 아래와 같다.
Figure 112008042396185-PCT00023
여기서, A는 하나의 패킷으로 그룹화될 수 있는 확인 응답들의 개수를 나타낸다. 이 스텔스 조건이 참이라면, 열거기에서의 열거 요구 모듈은 스텔스 모드로 들어갈 수 있고 적어도 그 조건이 변경될 때까지 후속하는 열거 요구/확인 응답 패킷들의 전송을 억제할 수 있다. 이러한 방식으로, 스텔스 열거기는 다른 열거기들로부터의 열거기 요구에 응답하고 있는 응답기들로부터의 열거 응답들을 단지 관찰하고 기록한다. 스텔스 열거기는 자신의 고유한 열거 요구들과 확인 응답들을 전송함으로써 네트워크 트래픽에 추가되지 않는다. 또한, 열거기들의 고정된 임계값에 기초하고 타겟 로드에 대한 영향에 기초하는 것 등의 스텔스 조건과 같이, 다른 스텔스 조건들을 계산할 수 있고, 수학식 8의 스텔스 조건과 조합하여 또는 독립적으로 이용할 수 있다는 점을 이해하기 바란다.
또한, 열거기는, (estimateInterval라고 칭하는) 추정 간격이라 칭하는 간격에 걸쳐 패킷들을 카운팅함으로써 네트워크 상의 로드를 평가할 수 있다. 이 추정 간격은 타이밍 라운드 지속 기간 변수(td)와 동일할 수 있다. 다른 방안으로, 이 추정 간격은 열거기에 의한 확인 응답들 또는 열거 요구들의 전송 간의 시간을 나타낼 수 있다. 다른 추정 간격들을 채용할 수도 있고, 이러한 추정 간격들은 가변적이거나 고정될 수 있다. 예를 들어, 일 구현예에서, 추정 간격은 라운드 간격에 관련되지만 관심 대상인 열거기에게 알려져 있는 열거기들의 개수에 따라 선형적으로 증가된다. 추정 간격이 초기에 응답기들에 의해 사용된 roundInterval과 동일하였다면(예를 들어, CE=1: 관심 대상인 열거기일 때), 관심 대상인 열거기가 다른 열거기들을 관찰할 때, estimateInterval은 시간 경과에 따라 아래의 수학식에 의해 계산될 수 있다.
Figure 112008042396185-PCT00024
여기서, roundInterval은 타이밍 라운드 지속 기간 변수(td, T)들로부터 얻을 수 있다.
추정 간격은 열거 요구를 관리하기 위해 열거기에 의해 사용될 수 있다. 예를 들어, 일 구현예에서, 열거기가 하나의 전체 estimateInterval동안 현재의 열거 세션에서 임의의 새로운 노드(즉, 이전에 확인 응답되지 않은 응답기 노드)로부터 열거 응답을 수신하지 않았고 네트워크 상의 열거 로드가 타겟 네트워크 로드의 50% 미만이면, 열거기는 열거 요구의 발행을 중단한다. 열거 로드는 estimateInterval동안 열거기에 의해 관찰된 모든 열거 응답들로부터 결정될 수 있다. 추정 간격에 기초하여 다른 열거 요구 제어 메카니즘들을 채용할 수 있다.
도 10 및 도 11은 열거 응답들을 관리하기 위한 다른 예시적인 동작(1000, 1100)들을 도시한다. 도 10 및 도 11에 대하여 예시하고 설명하는 동작들도 도 9에 대하여 예시하고 설명한 동작들과 조합하여 이용될 수 있다는 점을 이해하기 바란다.
응답기는 유휴 세션 상태(1002)에서 시작된다. 수신 동작(1004)은 식별된 열거기로부터 열거 요구를 수신하고 이 열거 요구로부터 열거기 식별자와 시퀀스 식별자를 결정한다. 열거 요구를 수신함으로써 응답기가 유휴 세션 상태(1002)로부터 전이된다. 결정 동작(1006)은, 식별된 열거기가 (예를 들어, 열거 요구로부터 추출된 열거기 식별자와 일치하는 열거기 식별자를 갖는 세션 상태 레코드를 찾음으로써) 응답기와 함께 시작된 세션 상태를 이미 갖고 있는지 여부를 결정한다. 갖고 있다면, 이것은 응답기가 이 열거기로부터 전에 열거 요구를 수신하였음을 의미하고, 다른 결정 동작(1008)은 현존하는 세션 상태가 열거 요구로부터 추출된 시퀀스 식별자와 일치하는 시퀀스 식별자를 갖고 있는지 여부를 결정한다. 갖고 있지 않다면, 폐기 동작(1012)은 (예를 들어, 삭제, 클리어, 폐기 플래그의 설정 등에 의해) 열거기에 대하여 현존하는 세션 상태를 폐기한다. 폐기 동작(1012) 후에, 또는 결정 동작(1006)이 식별된 열거기에 대한 세션 상태를 검출하지 않는 경우, 생성 동작(1010)은 펜딩 상태를 갖는 새로운 세션 상태를 생성하거나, 다르게 는 폐기된 세션 상태 레코드를 펜딩으로 설정하고 세션 상태 레코드에서의 시퀀스 식별자를 갱신한다.
결정 동작(1008)이 시퀀스 식별자들이 일치한다고 결정하면, 이것은 열거기가 응답기에 의해 이전에 기록된 세션과 동일한 세션에 여전히 있다는 것을 의미하며, 처리는 응답기가 열거기에 의해 확인 응답을 받았는지 여부를 테스트하는 결정 동작(1014)으로 진행된다. 확인 응답을 받았다면, 세션 상태는 완료로 설정되고 처리는 결정 동작(1018)으로 진행된다. 확인 응답을 받지 않았다면, 처리는 결정 동작(1018)으로 진행된다.
결정 동작(1018)은 펜딩 세션 상태가 응답기에 대하여 여전히 존재하고 있는지 여부를 결정한다. 존재하지 않는다면, 처리는 유휴 상태(1002)로 진행된다. 그렇지 않다면, 처리는 커넥터(A)를 통해 도 11의 응답 상태(1102)로 진행된다.
응답 상태(1102)에서, 응답기는 타이머의 만료 또는 패킷의 수신을 기다린다. 패킷이 수신되면, 결정 동작(1106)은 수신된 패킷의 유형을 결정한다. 패킷이 열거 요구 패킷이면, 처리는 커넥터(C)를 통해 도 10의 수신 동작(1004)으로 진행된다. 패킷이 다른 응답기로부터의 응답 패킷이라면, (그 개별적인 응답기가 아직 카운팅되지 않았다고 가정할 때) 응답기 카운트는 증분되고 처리는 응답 상태(1102)로 진행된다. 패킷이 열거기로부터 수신된 리셋 패킷이면, 결정 동작(1114)은 세션 상태가 그 열거기에 대하여 이미 존재하고 있는지 여부를 결정한다. 존재하고 있다면, 세션 상태는 폐기 동작(1116)에서 폐기되고 처리는 커넥터(B)를 통해 도 10의 결정 동작(1018)으로 진행된다. 그렇지 않다면, 처리는 응 답 상태(1102)로 진행된다.
응답 상태(1102)에서, 응답기가 타이머의 만료를 검출하면, 결정 동작(1104)은 어느 타이머가 만료되었는지를 결정한다. 타이머가 라운드 지속 기간 타이머이면, 갱신 동작(1108)은 노드 잔여 추정값을 재추정하고, 그에 따라 라운드 타이머 및/또는 응답 확률을 리셋한다. 다른 방안으로, 타이머가 전송 타이머이면, 응답 동작(1110)은 열거 응답을 전송한다. 클린업(clean up) 동작(1118)은 재전송 카운터를 증분시키고 재전송 임계값이 충족되면 세션 상태를 완료 상태로 설정한다. 이후, 처리는 커넥터(B)를 통해 도 10의 결정 동작(1018)으로 진행된다.
시스템 및 방법의 일부 특정 구현예들이 첨부 도면에서 예시되고 전술한 상세한 설명에서 설명되었지만, 도시하고 설명한 시스템 및 방법이 특정하게 설명한 구현예들로 한정되지 않으며, 다음에 따르는 청구범위에 의해 설명되고 한정되는 사상으로부터 벗어나지 않고서 다양한 재배치, 수정, 대체가 가능하다는 점을 이해할 것이다.

Claims (20)

  1. 컴퓨터 네트워크내의 선택된 열거기(enumerator)에 의한 열거 트래픽(enumeration traffic)을 관리하는 방법으로서,
    상기 컴퓨터 네트워크내의 하나 이상의 열거기로부터 열거 요구들을 검출하는 단계와,
    상기 하나 이상의 열거기로부터의 열거 요구들의 검출에 기초하여 스텔스 조건(stealth condition)을 계산하는 단계와,
    상기 스텔스 조건이 충족되지 않으면, 상기 컴퓨터 네트워크내의 상기 선택된 열거기로부터 열거 요구들을 전송하는 단계와,
    상기 스텔스 조건이 충족되면, 상기 선택된 열거기로부터의 열거 요구들의 전송을 억제하는 단계
    를 포함하는 열거 트래픽 관리 방법.
  2. 제1항에 있어서,
    상기 스텔스 조건을 계산하는 단계는,
    상기 컴퓨터 네트워크내의 상기 하나 이상의 열거기에 기인하는 확인 응답 로드(acknowledgement load)를 계산하는 단계와,
    상기 컴퓨터 네트워크내의 하나 이상의 열거기의 열거 요구들에 응답하는 응답기들에 기인하는 응답 로드(response load)를 계산하는 단계를 포함하고,
    상기 스텔스 조건은 상기 확인 응답 로드가 상기 응답 로드를 초과하는지 여부를 결정하는 열거 트래픽 관리 방법.
  3. 제2항에 있어서,
    상기 컴퓨터 네트워크내의 하나 이상의 열거기로부터의 열거 요구들을 상기 선택된 열거기에 의해 카운팅하여 상기 하나 이상의 열거기의 카운트를 결정하는 단계를 더 포함하는 열거 트래픽 관리 방법.
  4. 제3항에 있어서,
    상기 확인 응답 로드는 상기 컴퓨터 네트워크에서 열거 요구들을 전송하는 열거기들의 카운트에 의존하는 열거 트래픽 관리 방법.
  5. 제2항에 있어서,
    상기 확인 응답 로드는, 상기 컴퓨터 네트워크에서 응답하는 잔여 액티브 노드들의 수의 추정값에 의존하는 열거 트래픽 관리 방법.
  6. 제2항에 있어서,
    상기 응답 로드는, 상기 컴퓨터 네트워크에서 응답하는 잔여 액티브 노드들의 수의 추정값에 의존하는 열거 트래픽 관리 방법.
  7. 제2항에 있어서,
    상기 응답 로드는 상기 응답기들에 기인하는 재전송 임계값(retransmission threshold)에 의존하는 열거 트래픽 관리 방법.
  8. 제1항에 있어서,
    상기 스텔스 조건을 계산하는 단계는, 상기 하나 이상의 열거기로부터 응답기들로 확인 응답을 전송함으로써 네트워크 로드를 계산하는 단계를 포함하는 열거 트래픽 관리 방법.
  9. 제1항에 있어서,
    상기 스텔스 조건을 계산하는 단계는, 상기 하나 이상의 열거기의 열거 요구들에 응답하여 재전송 임계 개수의 열거 응답들을 전송하는 응답기들에 의해 야기되는 네트워크 로드를 계산하는 단계를 포함하는 열거 트래픽 관리 방법.
  10. 제1항의 방법을 구현하는 컴퓨터 프로세스를 수행하기 위한 컴퓨터 실행가능 명령어를 갖는 컴퓨터 판독가능 매체.
  11. 컴퓨터 네트워크에서 열거 트래픽을 관리하는 네트워크 노드로서,
    상기 컴퓨터 네트워크내의 하나 이상의 열거기로부터 열거 요구들을 검출하는 열거 모듈과,
    상기 하나 이상의 열거기로부터의 열거 요구들의 검출에 기초하여 스텔스 조건을 계산하는 스텔스 조건 모듈과,
    상기 스텔스 조건이 충족되지 않으면 열거 요구들을 전송하고, 상기 스텔스 조건이 충족되면 열거 요구들의 전송을 억제하는 열거 요구 모듈
    을 포함하는 네트워크 노드.
  12. 제11항에 있어서,
    상기 스텔스 조건 모듈은, 상기 컴퓨터 네트워크내의 하나 이상의 열거기에 기인하는 확인 응답 로드를 계산하고, 상기 컴퓨터 네트워크내의 하나 이상의 열거기의 열거 요구들에 응답하는 응답기들에 기인하는 응답 로드를 계산하며,
    상기 스텔스 조건은 상기 확인 응답 로드가 상기 응답 로드를 초과하는지 여부를 결정하는 네트워크 노드.
  13. 제12항에 있어서,
    상기 열거 모듈은 상기 컴퓨터 네트워크내의 하나 이상의 열거기로부터의 열거 요구들을 카운팅하여 상기 하나 이상의 열거기의 카운트를 결정하는 네트워크 노드.
  14. 제13항에 있어서,
    상기 확인 응답 로드는 상기 컴퓨터 네트워크에서 열거 요구들을 전송하는 열거기들의 카운트에 의존하는 네트워크 노드.
  15. 제12항에 있어서,
    상기 확인 응답 로드는 상기 컴퓨터 네트워크에서 응답하는 잔여 액티브 노드들의 수의 추정값에 의존하는 네트워크 노드.
  16. 제12항에 있어서,
    상기 응답 로드는 상기 컴퓨터 네트워크에서 응답하는 잔여 액티브 노드들의 수의 추정값에 의존하는 네트워크 노드.
  17. 제12항에 있어서,
    상기 응답 로드는 상기 응답기들에 기인하는 재전송 임계값에 의존하는 네트워크 노드.
  18. 제11항에 있어서,
    상기 스텔스 조건 모듈은, 상기 하나 이상의 열거기로부터 응답기들로 확인 응답을 전송함으로써 야기되는 네트워크 로드를 계산하는 네트워크 노드.
  19. 제11항에 있어서,
    상기 스텔스 조건 모듈은, 상기 하나 이상의 열거기의 열거 요구들에 응답하 여 재전송 임계 개수의 열거 응답들을 전송하는 응답기들에 의해 야기되는 네트워크 로드를 계산하는 네트워크 노드.
  20. 컴퓨터 네트워크에서의 열거 트래픽을 관리하는 네트워크 노드로서,
    상기 컴퓨터 네트워크내의 하나 이상의 열거기로부터 열거 요구들을 검출하는 수단과,
    상기 하나 이상의 열거기로부터의 열거 요구들의 검출에 기초하여 스텔스 조건을 계산하는 수단과,
    상기 스텔스 조건이 충족되지 않으면, 상기 컴퓨터 네트워크내의 선택된 열거기로부터 열거 요구들을 전송하는 수단과,
    상기 스텔스 조건이 충족되면, 상기 선택된 열거기로부터의 열거 요구들의 전송을 억제하는 수단
    을 포함하는 네트워크 노드.
KR1020087014361A 2005-12-14 2006-12-05 열거 트래픽 관리 방법, 컴퓨터 판독가능 매체, 및네트워크 노드 KR20080084961A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/302,651 2005-12-14
US11/302,651 US7660891B2 (en) 2004-09-30 2005-12-14 Node discovery involving stealth node enumerators

Publications (1)

Publication Number Publication Date
KR20080084961A true KR20080084961A (ko) 2008-09-22

Family

ID=38163255

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020087014361A KR20080084961A (ko) 2005-12-14 2006-12-05 열거 트래픽 관리 방법, 컴퓨터 판독가능 매체, 및네트워크 노드

Country Status (5)

Country Link
US (1) US7660891B2 (ko)
EP (1) EP1969773A1 (ko)
KR (1) KR20080084961A (ko)
CN (1) CN101331714A (ko)
WO (1) WO2007070292A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010135551A2 (en) * 2009-05-20 2010-11-25 Redcliff Investments, L.L.C. Secure workflow and data management facility

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7567523B2 (en) * 2004-01-29 2009-07-28 Microsoft Corporation System and method for network topology discovery
US7953845B2 (en) * 2004-09-30 2011-05-31 Microsoft Corporation Network-specific estimation in network node discovery
US20070245033A1 (en) * 2006-04-14 2007-10-18 Microsoft Corporation Link layer discovery and diagnostics
GB0718248D0 (en) * 2007-09-19 2014-04-30 Ibm An apparatus for enabling connections
CN102006315A (zh) * 2009-08-28 2011-04-06 迈普通信技术股份有限公司 分布式系统远程过程调用通信方法
US8844041B1 (en) * 2010-01-12 2014-09-23 Symantec Corporation Detecting network devices and mapping topology using network introspection by collaborating endpoints
GB2510429A (en) 2013-02-05 2014-08-06 Ibm Assessing response routes in a network
EP2972515B1 (en) * 2013-03-15 2018-12-05 Xact Downhole Telemetry, Inc. Robust telemetry repeater network system and method

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5953012A (en) * 1994-12-13 1999-09-14 Microsoft Corporation Method and system for connecting to, browsing, and accessing computer network resources
US6233611B1 (en) * 1998-05-08 2001-05-15 Sony Corporation Media manager for controlling autonomous media devices within a network environment and managing the flow and format of data between the devices
US7319671B1 (en) * 2001-03-29 2008-01-15 Cisco Technology, Inc. Time division polling scheme for network management systems
GB0303812D0 (en) * 2003-02-19 2003-03-26 British Telecomm Tracking audience size
US7475125B2 (en) * 2003-11-24 2009-01-06 Microsoft Corporation Seamless discovery of workstation-installed remote applications from an extranet
US7127655B2 (en) * 2004-01-20 2006-10-24 Qualcomm, Inc. Methods and apparatus to optimize delivery of multicast content using probabilistic feedback

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2010135551A2 (en) * 2009-05-20 2010-11-25 Redcliff Investments, L.L.C. Secure workflow and data management facility
WO2010135551A3 (en) * 2009-05-20 2011-02-24 Redcliff Investments, L.L.C. Secure workflow and data management facility

Also Published As

Publication number Publication date
CN101331714A (zh) 2008-12-24
WO2007070292A1 (en) 2007-06-21
US7660891B2 (en) 2010-02-09
US20060168180A1 (en) 2006-07-27
EP1969773A1 (en) 2008-09-17

Similar Documents

Publication Publication Date Title
KR20080084962A (ko) 전송 관리 방법, 컴퓨터 판독가능 매체, 및 네트워크 노드
KR20080084961A (ko) 열거 트래픽 관리 방법, 컴퓨터 판독가능 매체, 및네트워크 노드
KR20080084969A (ko) 컴퓨터 네트워크의 열거 트래픽 관리 방법, 및 컴퓨터판독가능 매체
KR20070049652A (ko) P2p 모니터링 시스템에서 서버 존재에 대한 핑 동작
US7480281B2 (en) Method for improving cluster bring-up in a distributed topology liveness system
US11144423B2 (en) Dynamic management of monitoring tasks in a cloud environment
KR20060051938A (ko) 네트워크 노드 열거에 관한 시스템 및 방법
US11493978B2 (en) Decentralized sleep management
EP3205054B1 (en) Method, traffic monitor (tm), request router (rr) and system for monitoring a content delivery network (cdn)
JP2019047254A (ja) 情報処理システム、情報処理装置及び情報処理プログラム
JP2016536920A (ja) ネットワークパフォーマンス監視のための機器および方法
US9313118B2 (en) Method and apparatus for intercepting multicast protocol packet and switch
US8359376B1 (en) Proactive sending of an IP-to-MAC address binding for a high fan-in node
JP2024517128A (ja) クロック同期エッジベースのネットワーク機能
US8631109B2 (en) System and method for dynamic control of network management traffic loads
WO2017165999A1 (zh) 网络服务实现方法、服务控制器及通信系统
CN113206689B (zh) 通信方法及装置、蓝牙从设备、蓝牙通信系统
JP6087261B2 (ja) プログラム、エンド端末、及びエンド端末状態判定方法
CN117979348A (zh) 网络状态确定方法、装置、电子设备及介质
JP2021064918A (ja) 情報処理プログラム、情報処理方法、および、情報処理装置
Morris A neurologically-inspired transport layer solution to data transmission in mobile ad hoc networks

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid