KR20140080494A - 통신 네트워크에서의 데이터 흐름에 대한 측정 - Google Patents

통신 네트워크에서의 데이터 흐름에 대한 측정 Download PDF

Info

Publication number
KR20140080494A
KR20140080494A KR1020147009459A KR20147009459A KR20140080494A KR 20140080494 A KR20140080494 A KR 20140080494A KR 1020147009459 A KR1020147009459 A KR 1020147009459A KR 20147009459 A KR20147009459 A KR 20147009459A KR 20140080494 A KR20140080494 A KR 20140080494A
Authority
KR
South Korea
Prior art keywords
node
data
block period
pki
pkt
Prior art date
Application number
KR1020147009459A
Other languages
English (en)
Other versions
KR101862326B1 (ko
Inventor
티지아노 아이온타
안토니오 카파도나
Original Assignee
텔레콤 이탈리아 소시에떼 퍼 아찌오니
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 텔레콤 이탈리아 소시에떼 퍼 아찌오니 filed Critical 텔레콤 이탈리아 소시에떼 퍼 아찌오니
Publication of KR20140080494A publication Critical patent/KR20140080494A/ko
Application granted granted Critical
Publication of KR101862326B1 publication Critical patent/KR101862326B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0876Network utilisation, e.g. volume of load or congestion level
    • H04L43/0894Packet rate
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/02Capturing of monitoring data
    • H04L43/026Capturing of monitoring data using flow identification
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/06Generation of reports
    • H04L43/062Generation of reports related to network traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/08Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
    • H04L43/0823Errors, e.g. transmission errors
    • H04L43/0829Packet loss
    • H04L43/0835One way packet loss

Landscapes

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

Abstract

통신 네트워크의 노드에서 데이터 흐름에 대한 측정을 수행하는 방법으로서, 상기 데이터 흐름은 상기 노드를 포함하는 송신 경로를 따라 전송되고, 상기 데이터 흐름은 데이터 단위들을 포함하며, 상기 데이터 단위들은 제1 마킹 값에 의해 마킹되는 제1 블록 기간들 동안 전송되는 데이터 단위들 및 제2 마킹 값에 의해 마킹되는 제2 블록 기간들 동안 전송되는 데이터 단위들을 포함하고, 상기 제1 블록 기간들은 상기 제2 블록 기간들과 시간에 맞춰 번갈아 나오게 되는, 데이터 흐름에 대한 측정을 수행하는 방법이 개시되어 있으며, 상기 데이터 흐름에 대한 측정을 수행하는 방법은, 상기 노드에서, 현재의 블록 기간 동안, a) 이전의 블록 기간 동안 상기 노드에서 수신된 상기 데이터 단위들에 관련된 제1 매개변수를 결정하는 단계; b) 상기 이전의 블록 기간 동안 상기 노드에 전송된 데이터 단위들에 관련된 제2 매개변수를 포함하는 제1 데이터 구조를 상기 송신 경로의 부가적인 노드로부터 수신하는 단계; c) 상기 데이터 흐름에 대한 상기 측정의 결과를 제공하기 위해 상기 제1 매개변수 및 상기 제2 매개변수를 처리하는 단계; 및 d) 상기 제1 매개변수를 포함하는 제2 데이터 구조를 상기 송신 경로의 다른 부가적인 노드에 전송하는 단계;를 포함한다.

Description

통신 네트워크에서의 데이터 흐름에 대한 측정{Measurement on a data flow in a communication network}
본 발명은 통신 네트워크 분야에 관한 것이다. 특히, 본 발명은 통신 네트워크에서 전송되는 데이터 흐름에 대한 측정, 특히 데이터 소실 측정 및/또는 시간 측정(특히, 지연 및/또는 패킷 수신 간격 지터(interarrival jitter)의 측정)을 수행하는 방법에 관한 것이다. 더욱이, 본 발명은 그러한 방법을 구현하는 통신 네트워크의 노드에 관한 것이다.
패킷 교환 통신 네트워크에서는, 데이터가 가능한 중간 노드들을 통해 발신지 노드로부터 수신지 노드로 라우팅되는 패킷들의 형태로 전송된다. 대표적인 패킷 교환 네트워크들은 이더넷 네트워크들, IP 네트워크들 및 MPLS 네트워크들이다.
그 반면에, 회선 교환 네트워크들에서는 데이터가 독립 동기 또는 동기 프레임들 내에서 발신지 노드로부터 수신지 노드로 반송(搬送)되는 연속 비트 흐름들의 형태로 전송된다. 대표적인 회선 교환 네트워크들은 PDH, SDH, Sonet 및 OTN 네트워크들이다.
이하에서는, "데이터 단위(data unit)"라는 표현은 통신 네트워크에서 전송되는 데이터 부분을 나타내게 된다. 특히, 패킷 교환 네트워크의 경우에서는, 데이터 단위가 패킷일 수도 있고 패킷의 일부일 수도 있다. 더욱이, 회선 교환 네트워크의 경우에서는, 데이터 단위가 독립 동기 프레임, 독립 동기 프레임의 일부, 동기 프레임 또는 동기 프레임의 일부일 수 있다.
발신지 노드로부터 패킷 교환 네트워크를 통해 전송되거나 회선 교환 네트워크를 통해 전송되는 데이터는 항상 수신지 노드에 도달하지 않는데, 다시 말하면 발신지 노드로부터 패킷 교환 네트워크를 통해 전송되거나 회선 교환 네트워크를 통해 전송되는 데이터는 상기 네트워크를 통한 전송시 소실될 수 있다.
데이터의 소실은 서로 다른 이유들에 기인할 수 있다. 예를 들어, 노드 또는 링크가 고장이 남으로써, 그 고장이 우회되거나 수리될 때까지는 전체 데이터 소실을 야기할 수 있다. 변형적으로는, 패킷 교환 네트워크에서, 패킷에 내재하는 데이터는 중간 노드의 포트들의 밀집 때문에 중간 노드에 의해 폐기될 수 있다. 더욱이, 패킷 교환 네트워크들에서 그리고 회선 교환 네트워크들에서, 데이터가 중간 노드에 의해서나 수신지 노드에 의해 폐기될 수 있는데, 그 이유는 비트 오류들을 포함하기 때문이다.
패킷 교환 네트워크 또는 회선 교환 네트워크를 통해 데이터를 전송함으로써 서비스를 제공할 때, 전송시의 데이터 소실율은 그러한 서비스의 서비스 품질(quality of service; QoS)에 영향을 준다.
더욱이, 데이터 단위는 발신지 노드에 의해 송신 시간에 전송되고 수신지 노드에 의해 수신 시간에 수신된다. 송신 시간 및 수신 시간 사이의 경과 시간은 "일방향 지연(one way delay)"(또는 간단히 "지연")이라 불리는 것이 전형적이다. 데이터 단위의 지연은 다음과 같은 수학식 [1]로 제공된다.
D = Trx - Ttx [1]
상기 수학식 [1]에서는 Ttx가 데이터 단위의 송신 시간이고 Trx가 데이터 단위의 수신 시간이다.
데이터 단위의 지연은 주로 발신지로부터 수신지로 데이터 단위에 의해 통과되는 가능한 중간 노드들의 개수, 발신지 노드에서 및 각각의 가능한 중간 노드에서(주로 그러한 노드들의 버퍼들 내에서)의 데이터 단위의 영속 시간(permanence time) 및 (다시금 상기 링크들의 길이 및 상기 링크들의 용량에 의존하는) 상기 링크들에 따른 전파 시간(propagation time)에 의존한다. 데이터 단위들이 각각의 노드에 의해 홉(hop) 단위로 라우팅되는 패킷 교환 네트워크들에서는, 데이터 단위들에 의해 통과되는 가능한 중간 노드들의 개수 및 각각의 노드에서의 데이터 단위들의 영속 시간 양자 모두가 예측가능하지 않다. 따라서, 데이터 단위의 지연은 거의 예측불가능하다.
더욱이, 동일한 데이터 흐름의 데이터 단위들은 서로 다른 지연들을 지닐 수 있다. 패킷-교환 통신 네트워크에서는, 동일한 데이터 흐름의 2개의 데이터 단위(즉, 패킷)의 지연들에서의 차이는 "패킷 수신 간격 지터(interarrival jitter)"라 언급된다. 특히, Ttx1 및 Ttx2가 제1 패킷 및 제2 패킷에 대한 송신 시간들이고, Trx1 및 Trx2가 제1 패킷 및 제2 패킷에 대한 수신 시간들인 경우에, 패킷 수신 간격 지터는 다음과 같은 수학식 [2]로 표기될 수 있다.
J = (Trx1 - Trx2) - (Ttx1 - Ttx2) [2]
통신 서비스(특히, 호(call)들, 회의 통화들, 화상 회의들 등과 같은 실시간 음성 또는 데이터 서비스)가 통신 네트워크를 통해 제공될 때, 상기 서비스를 반송(搬送)하는 데이터 흐름들의 지연 및 패킷 수신 간격 지터는 상기 서비스의 최종 사용자들에 의해 인지된 서비스 품질(QoS)에 강력한 영향을 준다.
그러므로, 상기 데이터 흐름들의 데이터 소실 및 지연/패킷 수신 간격 지터를 측정하는 것은 네트워크 운영자들에게 특히 주목을 받고 있다.
(동일 출원인의 명의의) WO 2010/072251에는 통신 네트워크를 통해 송신 노드로부터 수신 노드로 전송되는 데이터 흐름의 데이터 소실을 측정하는 방법이 개시되어 있다. 상기 데이터 흐름의 데이터 단위들을 전송하기 전에, 상기 송신 노드는 상기 데이터 흐름을 블록들로 분할하기 위해 각각의 데이터 단위를 마킹(marking)한다. 특히, 송신 노드는 각각의 헤더의 비트를 "1" 또는 "0"으로 설정함으로써 각각의 데이터 단위를 마킹한다. 상기 마킹은 일련의 블록들을 취하게 되는데, "1"로 마킹되는 데이터 단위들의 블록들은 "0"으로 마킹되는 데이터 단위들의 블록들과 시간에 맞춰 번갈아 나오게 된다. 상기 블록들은 "블록 기간(block period)" Tb라고 언급되는 동일한 지속기간(예컨대, 5분)을 지닐 수 있다. 더욱이, 상기 데이터 단위들을 마킹하는 동안, 송신 노드는 데이터 단위가 "1"로 마킹될 때마다 제1 카운터(C1)를 1씩 증가시키고, 데이터 단위가 "0"으로 마킹될 때마다 제2 카운터(C0)를 1씩 증가시킨다. 그리고나서, 마킹된 데이터 단위들은 수신 노드에서 수신된다. 수신 노드가 데이터 단위를 수신할 때마다, 수신 노드는 상기 수신 노드의 마킹을 검사하여, 마킹이 "1"일 경우에 제3 카운터(C'1)를 증가시키고 마킹이 "0"일 경우에 제4 카운터(C'0)를 증가시킨다.
WO 2010/072251에 의하면, 송신 및 수신 노드들이 위에 기술한 바와 같이 동작하고 있는 동안, 송신 및 수신 노드들과 협동하는 관리 서버는 상기 카운터들(C1, C0, C'1, C'0)의 값들을 주기적으로 검출하고 상기 값들을 상기 데이터 소실의 계산용으로 사용한다.
(동일 출원인의 명의의) WO 2011/079857에는 통신 네트워크의 송신 노드로부터 통신 네트워크의 수신 노드로 전송되는 데이터 흐름에 대한 시간 측정(특히, 지연 및/또는 패킷 수신 간격 지터의 측정)을 수행하는 방법이 개시되어 있다.
출원인은 노드들로부터 측정치들을 수집하는 임의의 외부 관리 서버의 개입을 필요로 하지 않고 노드들 자신에 의해 분산 방식으로 구현될 수 있고, 네트워크 토폴로지 및 통신 네트워크를 통한 데이터 흐름에 의해 이루어지게 되는 경로들의 가능한 변경들에 자동으로 적응할 수 있으며, 그리고 성능 모니터링 및 고장 검출 및 관리의 동작들을 용이하게 하는, 통신 네트워크에서 전송되는 데이터 흐름에 대한 측정을 수행하는 방법을 제공하는 과제를 다루고 있다.
이하의 내용에서 그리고 청구항들에서는, "측정을 수행함"이라는 표현이 데이터 소실의 측정 동작 및/또는 시간 측정의 수행 동작을 나타내게 된다.
더욱이, 이하의 내용에서 그리고 청구항들에서는, "데이터 소실의 측정"이 제1 노드에서 검출된 데이터 단위들의 개수 및 제2 노드에서 검출된 데이터 단위들의 개수 간의 차이를 측정하는 동작을 나타내게 되는데, 이러한 차이는 제1 노드로부터 제2 노드로의 전송에서 소실된 데이터 단위들의 개수에 상응한다.
더욱이, 이하의 내용에서 그리고 청구항들에서는, "시간 측정의 수행"이라는 표현은,
- 상기 제1 노드로부터 상기 제2 노드로의 전송에 의해 데이터 단위에 대해 유도된 지연; 및/또는
- 제1 노드로부터 제2 노드로의 전송에 의해 한 쌍의 데이터 단위들에 대해 유도된 패킷 수신 간격 지터;
를 측정하는 동작을 나타내게 된다.
더욱이, 이하의 내용에서 그리고 청구항들에서는, "데이터 단위의 마킹"이라는 표현이 데이터 단위의 특징을 사전 정의된 마킹 값, 특히 2개의 대체 마킹 값 중 하나로 설정하는 동작을 나타내게 된다. 예를 들어, 데이터 단위를 마킹하는 동작은 데이터 단위의 하나 이상의 비트들(예컨대, 데이터 단위의 헤더의 한 비트 또는 비트 시퀀스)을 적어도 2개의 사전 정의된 대체 마킹 값들 중 하나로 설정하는 동작, 데이터 단위의 주파수 또는 데이터 단위의 위상을 적어도 2개의 사전 정의된 대체 마킹 값 중 하나로 설정하는 동작 등등을 포함할 수 있다.
더욱이, 청구항들에서는, "매개변수"라는 용어가 소정의 마킹 값에 의해 마킹되는 데이터 흐름의 수신 또는 전송된 데이터 단위들의 개수를 카운트하는 카운터의 값, 또는 소정의 마킹 값에 의해 마킹된 데이터 흐름의 데이터 단위가 수신되거나 전송되는 시간을 나타내는 타임스탬프(timestamp)를 나타내게 된다.
제1 실시태양에 의하면, 본 발명은 통신 네트워크의 노드에서의 데이터 흐름에 대한 측정을 수행하는 방법으로서, 상기 데이터 흐름이 상기 노드를 포함하는 송신 경로를 따라 전송되며, 상기 데이터 흐름이 데이터 단위들을 포함하고, 상기 데이터 단위들이 제1 마킹 값에 의해 마킹되는 제1 블록 기간들 동안 전송되는 데이터 단위들 및 제2 마킹 값에 의해 마킹되는 제2 블록 기간들 동안 전송되는 데이터 단위들을 포함하며, 상기 제1 블록 기간들이 상기 제2 블록 기간들과 시간에 맞춰 번갈아 나오게 되는 통신 네트워크의 노드에서의 데이터 흐름에 대한 측정을 수행하는 방법을 제공하고, 상기 방법은, 상기 노드에서, 현재의 블록 기간 동안,
a) 이전의 블록 기간 동안 상기 노드에 수신되는 데이터 단위들에 관련된 제1 매개변수를 결정하는 단계;
b) 상기 이전의 블록 기간 동안 상기 노드에 전송되는 데이터 단위들에 관련된 제2 매개변수를 포함하는 제1 데이터 구조를 상기 송신 경로의 부가적인 노드로부터 수신하는 단계;
c) 상기 데이터 흐름에 대한 측정 결과를 제공하기 위해 상기 제1 매개변수 및 상기 제2 매개변수를 처리하는 단계; 및
d) 상기 제1 매개변수를 포함하는 제2 데이터 구조를 상기 송신 경로의 다른 부가적인 노드에 전송하는 단계;
를 포함한다.
바람직하게는, 단계 d)는 상기 제2 데이터 구조에 상기 데이터 흐름에 대한 측정 결과를 삽입하는 단계를 더 포함한다.
바람직한 실시예들에 의하면, 상기 제1 데이터 구조는 또한 상기 부가적인 노드에 의해 계산된 바와 같은 상기 데이터 흐름에 대한 측정의 부가적인 결과를 포함한다. 그러한 실시예들에서는, 단계 d)는 상기 부가적인 노드에 의해 계산된 바와 같은 상기 데이터 흐름에 대한 측정의 부가적인 결과를 또한 상기 제2 데이터 구조 내에 삽입하는 단계를 더 포함한다.
바람직하게는, 상기 제1 매개변수가 상기 이전의 블록 기간 동안 상기 노드에서 수신된 데이터 단위들의 제1 개수를 나타내고, 상기 제2 매개변수는 상기 이전의 블록 기간 동안 상기 노드에 전송되는 데이터 단위들의 제2 개수를 나타내며, 상기 데이터 흐름에 대한 측정의 결과는 상기 이전의 블록 기간 동안 상기 부가적인 노드로부터 상기 노드로의 전송에서 소실된 데이터 단위들의 제3 개수를 나타낸다.
바람직하게는, 상기 방법은 상기 노드에서, 상기 제2 블록 기간들 동안, 상기 제2 마킹 값에 의해 마킹된 각각의 데이터 단위의 수신시 제1 카운터를 증가시키는 단계를 포함하며, 단계 a)는 상기 카운터를 처리함으로써 상기 제1 매개변수를 결정하는 단계를 포함한다.
특히, 바람직하게는, 단계 a)가 제1 데이터 단위 카운트 및 제2 데이터 단위 카운트 간의 차로서 상기 제1 매개변수를 포함하며, 상기 제1 데이터 단위 카운터가 상기 현재의 블록 기간 동안 상기 제1 카운터에 의해 도달되는 제1 값과 동일하고, 상기 제2 데이터 단위 카운트가 다른 이전의 블록 기간 동안 상기 제1 카운터에 의해 도달되는 제2 값과 동일하며, 단계 c)가 상기 제2 매개변수 및 상기 제1 매개변수 간의 차로서 상기 데이터 흐름에 대한 측정의 결과를 제공하는 단계를 포함한다.
유리하게는, 단계 a)가,
- 상기 현재의 블록 기간 동안 그리고 상기 다른 이전의 블록 기간 동안 상기 데이터 흐름이 동일한 입력 인터페이스를 통해 상기 노드에서 수신되는 지를 검사하는 단계;
- 상기 현재의 블록 기간 동안 그리고 상기 다른 한 이전의 블록 기간 동안 상기 데이터 흐름이 동일한 입력 인터페이스를 통해 상기 노드에서 수신되지 않는 경우에, 상기 제1 데이터 단위 카운트가 결정되지 않을 수 있는 것으로 결정하는 단계;
- 상기 현재의 블록 기간 동안 그리고 상기 다른 한 이전의 블록 기간 동안 상기 데이터 흐름이 동일한 입력 인터페이스통해 상기 노드에서 수신되는 경우에, 상기 현재의 블록 기간 동안 상기 제1 카운터에 의해 도달되는 제1 값과 동일하게 상기 제1 데이터 단위 카운트를 설정하고 상기 제2 데이터 단위 카운트가 이용가능한지를 검사하는 단계;
- 상기 제2 데이터 단위 카운트가 이용가능한 경우에, 상기 제1 데이터 단위 카운트 및 상기 제2 데이터 단위 카운트 간의 차로서 상기 제1 매개변수를 결정하는 단계; 및
- 상기 제2 데이터 단위 카운터가 이용가능하지 않은 경우에, 상기 제1 매개변수가 결정되지 않을 수 있는 것으로 결정하는 단계;
포함한다.
바람직한 실시예들에 의하면, 단계 b)는 상기 현재의 블록 기간에 포함된 질의 시간에서, 상기 제1 데이터 구조를 수신하기 위한 요구를 상기 부가적인 노드에 전송하는 단계를 포함한다.
바람직하게는, 단계 b)는 상기 블록 기간들의 지속기간만큼 지연된 이전의 블록 기간 동안 결정된 이전의 질의 시간과 동일하게 질의 시간을 설정하는 단계를 포함한다.
특히 바람직한 변형예에 의하면, 단계 b)는 사전 정의된 오프셋만큼 상기 질의 시간을 뒤로 보내는 단계를 포함한다.
바람직하게는, 상기 방법이,
- 단계 b)에서, 상기 제1 데이터 구조가 상기 요구에 응답하여 상기 부가적인 노드(N(m'))로부터 수신되는지를 검사하는 단계;
- 상기 제1 데이터 구조가 상기 요구에 응답하여 상기 부가적인 노드(N(m'))로부터 수신되지 않는 경우에, 상기 데이터 흐름에 대한 측정의 결과가 제공되지 않는 것으로 결정하는 단계;
- 상기 제1 데이터 구조가 상기 요구에 응답하여 상기 부가적인 노드(N(m'))로부터 수신되는 경우에, 단계 b)에서, 상기 제1 데이터 구조가 상기 이전의 블록 기간 동안 상기 노드에 전송되는 데이터 단위들에 관련된 제2 매개변수를 포함하는 지를 검사하는 단계;
- 상기 제1 데이터 구조가 상기 이전의 블록 기간 동안 상기 노드에 전송되는 데이터 단위들에 관련된 제2 매개변수를 포함하는 경우에, 상기 데이터 흐름에 대한 측정의 결과를 제공하기 위해 상기 제1 매개변수를 사용하는 단계; 및
- 상기 제1 데이터 구조가 상기 이전의 블록 기간 동안 상기 노드에 전송되는 데이터 단위들에 관련된 제2 매개변수를 포함하지 않는 경우에, 단계 b)에서, 상기 부가적인 노드에 상기 요구를 재전송하는 단계;
를 더 포함한다.
바람직하게는, 상기 제2 데이터 구조가 상기 노드에 저장된다.
특히 바람직한 변형예들에 의하면, 상기 제2 데이터 구조의 내용은 새로운 제2 데이터 구조가 생성되는 경우에 각각의 블록 기간에 중복기록된다.
제2 실시태양에 의하면, 본 발명은 통신 네트워크용 노드를 제공하며, 상기 노드는 데이터 흐름이 상기 통신 네트워크를 통해 전송되는 송신 노드에 포함되도록 구성되어 있고, 상기 데이터 흐름은 데이터 단위들을 포함하며, 상기 데이터 단위들은 제1 마킹 값에 의해 마킹되는 제1 블록 기간들 동안 전송되는 데이터 단위들 및 제2 마킹 값에 의해 마킹되는 제2 블록 기간들 동안 전송되는 데이터 단위들을 포함하고, 상기 제1 블록 기간들은 상기 제2 블록 기간들과 시간에 맞춰 번갈아 나오게 되며, 상기 노드는, 현재의 블록 기간 동안,
a) 이전의 블록 기간 동안 상기 노드에 수신된 데이터 단위들에 관련된 제1 매개변수를 결정하도록 구성되어 있고,
b) 상기 이전의 블록 기간 동안 상기 노드에 전송되는 데이터 단위들에 관련된 제2 매개변수를 포함하는 제1 데이터 구조를 상기 송신 경로의 부가적인 노드로부터 수신하도록 구성되어 있으며,
c) 상기 데이터 흐름에 대한 측정의 결과를 제공하기 위해 상기 제1 매개변수 및 상기 제2 매개변수를 처리하도록 구성되어 있고, 그리고
d) 상기 제1 매개변수를 포함하는 제2 데이터 구조를 상기 송신 경로의 다른 부가적인 노드에 전송하도록 구성되어 있다.
제3 실시태양에 의하면, 본 발명은 위에서 설명한 바와 같은 노드를 포함하는 통신 네트워크를 제공한다.
제4 실시태양에 의하면, 본 발명은 적어도 하나의 컴퓨터의 메모리에 로드가능한 컴퓨터 프로그램 제품으로서, 상기 컴퓨터 프로그램 제품이 컴퓨터상에서 실행될 때 위에서 언급한 방법의 단계들을 수행하는 소프트웨어 코드 부분들을 포함하는 컴퓨터 프로그램 제품을 제공한다.
본 발명은 첨부된 도면들을 참조하여 고려되는, 예로써 제공된 것일 뿐 제한된 것이 아닌 이하의 구체적인 내용으로부터 자명해질 것이다.
도 1은 대표적인 패킷 교환 네트워크의 일부를 개략적으로 보여주는 도면이다.
도 2는 본 발명의 한 실시예에 따른 패킷의 구조를 개략적으로 보여주는 도면이다.
도 3은 노드, 상기 노드의 선행처리 노드(predecessor node) 및 상기 노드 및 상기 노드의 선행처리 노드를 접속하는 링크를 개략적으로 보여주는 도면이다.
도 4는 도 3의 노드에 의해 구현되는 카운터들의 시간에 따른 진화를 보여주는 타이밍도이다.
도 5는 도 3의 노드의 동작을 흐름도로 보여주는 도면이다.
도 6은 도 3의 노드에 의해 수행되는 단계를 좀더 구체적인 흐름도로 보여주는 도면이다.
도 7은 도 3의 노드에 의해 수행되는 부가적인 단계를 좀더 구체적인 흐름도로 보여주는 도면이다.
도 8은 도 3의 노드에 의해 수행되는 다른 부가적인 단계를 좀더 구체적인 흐름도로 보여주는 도면이다.
도 9는 도 3의 노드에 저장된 표 T를 보여주는 도면이다.
도 10은 도 3의 노드에 의해 생성되는 토큰의 구조를 개략적으로 보여주는 도면이다.
이하에서는, 본 발명의 한 실시예에 따른 방법이 패킷 교환 네트워크에서 데이터 소실을 측정하는 특정의 대표적인 경우를 언급함으로써 구체적으로 설명될 것이다.
도 1에는 복수 개의 노드들을 포함하는 대표적인 패킷 교환 통신 네트워크(CN)가 개략적으로 도시되어 있다. 상기 통신 네트워크(CN)는 예를 들어 이더넷, 인터넷 네트워크, 또는 다른 어떤 타입의 패킷 교환 통신 네트워크일 수 있다. 도 1에는 간략성을 위해, 상기 네트워크(CN)의 단지 4개의 노드(N(1), N(2), N(3), N(4))가 도시되어 있다. 상기 노드들(N(1), N(2), N(3), N(4))은 트리 토폴로지(tree topology)에 따라 서로 접속되어 있다. 특히, 상기 노드들(N(1), N(2))은 링크(L(1, 2))에 의해 접속되어 있으며, 상기 노드들(N(2), N(3))은 링크(L(2, 3))에 의해 접속되어 있고 상기 노드들(N(2), N(4))은 링크(L(2, 4))에 의해 접속되어 있다. 도 1의 통신 네트워크(CN)(특히 상기 노드들(N(1), N(2), N(3), N(4))을 포함하는 통신 네트워크(CN)의 일부)의 트리 토폴로지는 단지 대표적인 것뿐이다.
상기 통신 네트워크(CN)의 노드들(N(1), N(2), N(3), N(4))은 데이터 트래픽의 전송을 패킷들(Pki)의 형태로 지원하도록 구성되어 있다. 이하에서 가정된 점은 노드들(N(1), N(2), N(3), N(4))이 멀티캐스트 분산 트리의 중간 노드들인데, 다시 말하면 노드(N(1))가 수신지 노드들의 번호로 어드레싱되는, 멀티캐스트 발신지 노드에 의해 생성된 패킷들(Pki)을 수신한다는 점이다. 노드(N(1))는 상기 멀티캐스트 분산 트리, 다시 말하면 노드(N(2))를 따라 다운스트림으로 바로 위치해 있는 노드(들)에 상기 패킷들(Pki)을 전송한다. 마찬가지로, 노드(N(2))는 멀티캐스트 분산 트리, 다시 말하면 노드들(N(3), N(4))을 따라 다운스트림으로 바로 위치해 있는 노드(들)에 패킷들(Pki)을 포워드한다. 마찬가지로, 각각의 노드(N(3), N(4))는 (간략성을 위해 도 1에 도시되어 있지 않은) 멀티캐스트 분산 트리를 따라 다운스트림으로 바로 위치해 있는 노드(들)에 패킷들(Pki)을 포워드한다. 상기 멀티캐스트 전송의 패킷들(Pki)에 의해 이루어지게 되는 경로들은 도 1에서 화살표들로 개략적으로 나타나 있다.
상기 멀티캐스트 전송 시나리오는 단지 대표적인 것뿐이다. 실제로, 본 발명의 방법은 멀티캐스트 전송, 예를 들어 점 대 점 전송과는 다른 여러 시나리오(예컨대, MPLSE-TE 터널들, ATM/FR 터널들 등등)에 적용될 수 있다.
본 발명의 바람직한 실시예들에 의하면, 패킷들(Pki)은 마킹되는데, 다시 말하면 패킷들(Pki)은 2개의 대체 마킹 값(Va, Vb) 중 하나로 설정되는 값을 갖는 특징(즉, 적어도 하나의 비트를 포함하는 필드)을 포함한다.
좀더 구체적으로 기술하면, 도 2에 도시된 바와 같이, 각각의 패킷(Pki)은 헤더(Hi) 및 페이로드(Pi)를 포함한다. 상기 페이로드(Pi)는 전송될 데이터를 포함한다. 더욱이, 바람직하게는, 상기 헤더(Hi)는 발신지 노드 어드레스 및 수신지 노드 어드레스와 같은, 패킷(Pki)를 라우팅하는 정보를 포함한다. 패킷(Pki)은 2개의 대체 마킹 값(Va, Vb) 중 하나로 설정될 수 있는 마킹 필드(MF)를 더 포함한다. 상기 마킹 필드(MF)는 상기 헤더(Hi) 내에 포함되는 것이 바람직하다. 상기 마킹 필드(MF)는 예를 들어 패킷(Pki)이 포맷되어 있는 프로토콜에 아직도 특정 기능이 할당되지 않은 필드일 수 있다. 변형적으로는, 상기 마킹 필드(MF)가 다른 용도들을 지니는 필드일 수 있다. 예를 들어, IP 패킷들의 경우에, 상기 마킹 필드는 6-비트 DSCP(Differentiated Services Code Point) 필드일 수 있으며, 상기 마킹 필드의 2개의 대체 마킹 값(Va, Vb)이 각각 25 및 27일 수 있다. 변형적으로는, 상기 마킹 필드(MF)는 각각 1 또는 0인 대체 마킹 값들(Va, Vb)을 갖는 단일 비트를 포함할 수 있다.
상기 패킷들(Pki)은 상기 마킹 필드(MF)의 값을 2개의 대체 마킹 값(Va, Vb) 중 하나로 적절히 설정하는 노드(N(1))를 따라 업스트림으로 위치해 있는 임의의 노드에 의해(바람직하게는 상기 멀티캐스트 발신지 노드에 의해) 마킹되는 것이 바람직하다. 상기 마킹 필드(MF)에 할당된 마킹 값(Va, Vb)(예를 들어, IP 패킷들의 DSCP 필드의 경우에 25 또는 27)은 이후에 "블록 기간"이라 언급되게 되는 기간(Tb)과 주기적으로 변경된다. 이러한 방식으로, 제1 블록 기간들 동안 마킹되는 패킷들(Pki)은 제1 마킹 값(Va; 예컨대 25)에 의해 마킹되고 상기 제1 블록 기간들과 시간에 맞춰 번갈아 나오게 되는 제2 블록 기간들 동안 마킹되는 패킷들(Pki)은 제2 마킹 값(Vb; 예컨대 27)에 의해 마킹된다.
상기 블록 기간(Tb)은 바람직한 데이터 소실 측정 비율에 따라 네트워크 운영자에 의해 설정될 수 있다(이하에서 구체적으로 설명되겠지만, 상기 블록 기간(Tb)은 또한 측정 기간임). 예를 들어, 상기 블록 기간(Tb)은 5분일 수 있다.
일반적으로는, 도 3에 도시된 바와 같이, 멀티캐스트 분산 트리의 중간 노드(N(m))는 또한 이하에서 "선행처리 노드(predecessor node)"로 언급되는 업스트림으로 위치해 있는 단일 노드(N(m'))로부터 패킷들(Pk)을 수신한다. 상기 중간 노드(N(m))는 도 1의 노드들(N(1), N(2), N(3), N(4)) 중 어느 하나일 수 있다. 상기 선행처리 노드(N(m'))는 패킷들(Pki)의 발신지 노드일 수도 있고 패킷들(Pki)에 의해 이루어지게 되는 경로의 중간 노드일 수도 있다. 상기 선행처리 노드(N(m'))는 상기 중간 노드(N(m))를 따라 업스트림으로 바로 위치해 있을 수 있다. 그러한 경우에, 상기 중간 노드(N(m))는 도 3에 도시된 바와 같은 링크(L(m', m))에 의해 상기 선행처리 노드(N(m'))에 접속될 수 있다. 변형적으로는, 상기 중간 노드(N(m))가 부가적인 중간 노드들에 의해 상기 선행처리 노드(N(m'))에 접속될 수 있다. 더욱이, 상기 중간 노드(N(m))는 패킷들(Pki)을, 이하에서 (도 3에 도시되지 않은) "후행처리 노드(successor node)"라고 언급되는 다운스트림으로 위치해 있는 하나 이상의 노드들로 포워드한다. 각각의 후행처리 노드는 상기 중간 노드(N(m))에 따라 다운스트림으로 바로 위치해 있을 수 있다. 그러한 경우에, 상기 중간 노드(N(m))는 개별적인 링크에 의해 상기 후행처리 노드에 접속되어 있다. 변형적으로는, 상기 중간 노드(N(m))는 부가적인 중간 노드들에 의해 각각의 후행처리 노드에 접속될 수 있다.
이하에서는, 상기 중간 노드(N(m))의 동작이 구체적으로 설명될 것이다.
상기 노드(N(m))는 2개의 카운터(Ca(m), Cb(m))를 구현하는 것이 바람직하다. 상기 선행처리 노드(N(m'))로부터의 각각의 패킷(Pki)의 수신시, 상기 노드(N(m))는 패킷(Pki)의 마킹 필드(MF)의 값을 검사하는 것이 바람직하다. 상기 마킹 필드(MF)가 상기 제1 마킹 값(Va)으로 설정되는 경우에, 상기 노드(N(m))는 제1 카운터(Ca(m))를 증가시키는 것이 바람직하다. 상기 마킹 필드(MF)가 제2 마킹 값(Vb)으로 설정되는 경우에, 상기 노드(N(m))는 제2 카운터(Cb(m))를 증가시키는 것이 바람직하다. 그러므로, 각각의 블록 기간 동안, 상기 카운터들 중 하나(Ca(m) 또는 Cb(m))를 증가시키고 나머지 하나는 고정값을 지닌다.
이는 시간들(T(n-2), T(n-1), T(n), T(n+1))에서 개시하는 4개의 연속적인 블록 기간을 보여주는 도 4의 타이밍도에 개략적으로 도시되어 있다. 개시 시간들(T(n-2), T(n-1), T(n), T(n+1))은 Tb만큼 시간에 맞춰 동등하게 이격되어 있다. 시간(T(n))에서 개시하는 블록 기간은 이하에서 또한 "현재의 블록 기간" 또는 "블록 기간(n)"으로 언급될 것이고, 시간(T(n-1))에서 개시하는 블록 기간은 이하에서 또한 "이전의 블록 기간" 또는 "블록 기간(n-1)"으로 언급될 것이며, 시간(T(n-2))에서 개시하는 블록 기간은 이하에서 또한 "다른 이전의 블록 기간" 또는 "블록 기간(n-2)"으로 언급될 것이고, 시간(T(n+1))에서 개시하는 블록 기간은 이하에서 또한 "이후의 블록 기간" 또는 "블록 기간(n+1)"으로 언급될 것이다.
상기 블록 기간들(n-2, n)에서, 패킷들(Pki)은 상기 제1 마킹 값(Va)에 의해 마킹되고, 결과적으로는 노드(N(m))에서 상기 제1 카운터(Ca(m))가 증가하지만 상기 제2 카운터(Cb(m))는 일정한 값을 지닌다. 더욱이, 상기 블록 기간들(n-1, n+1)에서는, 패킷들(Pki)이 상기 제2 마킹 값(Vb)에 의해 마킹되고, 결과적으로는 노드(N(m))에서 제2 카운터(Cb(m))가 증가하지만 상기 제1 카운터(Ca(m))가 일정한 값을 지닌다.
바람직하게는, 각각의 블록 기간에서, 상기 노드(N(m))가 패킷 카운트를 제공하기 위해 상기 카운터들(Ca(m), Cb(m))을 처리한다. 특히, 각각의 블록 기간에서, 상기 패킷 카운트는 현재 일정한 카운터(Ca(m), Cb(m))의 현재 값으로 설정된다. 그러므로, 상기 블록 기간들(n-2, n)에서, 상기 패킷 카운트들(C(m, n-2), C(m, n))은 제2 카운터(Cb(m))의 현재 고정된 값으로 설정된다. 더욱이, 상기 블록 기간들(n-1, n+1)에서, 상기 패킷 카운트들(C(m, n-1), C(m, n+1))은 상기 제1 카운터(Ca(m))의 현재 고정된 값으로 설정된다.
각각의 블록 기간에서, 상기 카운터들(Ca(m), Cb(m)) 중 어느 것이 고정 값을 지니고 있는지를 결정하기 위해, 상기 노드(N(m))는 예를 들어 적어도 2번 양자 모두의 카운터들(Ca(m), Cb(m))을 샘플링할 수 있다. 카운터의 샘플들 모두가 동일한 값을 지니는 경우에, 상기 노드(N(m))는 상기 카운터가 현재 고정된 값을 지니는 것으로 결정한다. 변형적으로는, 어느 마킹이 각각의 블록 기간 동안 패킷들(Pki)에 적용되는지를 상기 노드(N(m))가 사전에 알 수가 있다. 이는 상기 카운터들의 어떠한 다중 샘플링도 수행할 필요 없이(블록 기간당 단일 샘플링이면 충분함) 2개의 카운터(Ca(m),Cb(m)) 중 어느 것이 현재 고정 값을 지니는지를 상기 노드(N(m))가 사전에 아는 것을 허용한다.
각각의 블록 기간에서, 상기 노드(N(m))는 이때 수신된 패킷들의 개수를 계산할 수 있다. 특히, 현재의 블록 기간(n) 동안 상기 노드(N(m))는 수신된 패킷들의 개수(Pkt(m, n))를 다음과 같은 수학식 [3]으로서 계산할 수 있다.
Pkt(m, n)=C(m, n) - C(m, n-2) [3]
상기 수학식 [3]에 따라 현재의 블록 기간(n)에서 계산된 패킷들의 개수(Pkt(m, n))는 실제로 이전의 블록 기간(n-1) 동안 상기 노드(N(m))에서 수신된 패킷들(Pki)의 개수이다.
현재의 블록 기간(n)에서, 상기 노드(N(m))가 상기 선행처리 노드(N(m'))에 의해 수신된(또는 상기 선행처리 노드(N(m'))가 멀티캐스트 발신지 노드인 경우에 상기 선행처리 노드(N(m'))에 의해 전송된) 패킷들의 개수(Pkt(m', n))를 알 수 있는 경우에, 상기 노드(N(m))는 또한 상기 선행처리 노드(N(m'))가 상기 노드(N(m))에 따라 업스트림으로 바로 위치해 있는 경우에 상기 선행처리 노드(N(m')) 및 상기 노드(N(m)) 간의(즉, 상기 링크(L(m', m))를 통한) 데이터 소실(DL(m', m, n))을 다음과 같은 수학식 [4]로서 계산할 수 있다.
DL(m', m, n)= Pkt(m', n) - Pkt(m, n) [4]
상기 데이터 소실(DL(m', m, n))은 상기 선행처리 노드(N(m')) 및 상기 노드(N(m)) 간의 전송에서 소실된 패킷들(Pki)의 개수이다. 상기 수학식 [4]에 따라 현재의 블록 기간(n)에서 계산된 데이터 소실(DL(m', m, n))은 실제로 이전의 블록 기간(n-1) 동안 상기 선행처리 노드(N(m')) 및 상기 노드(N(m)) 간에 소실된 패킷들(Pki)의 개수이다.
현재 가정된 점은 도 1의 노드들(N(1), N(2), N(3), N(4))의 동작이 위에서 설명한 바와 같은 노드(N(m))의 동작과 유사하다는 점이다.
이러한 가정하에서, 상기 노드(N(1))는 (아마도 하나 이상의 중간 노드들을 통해) 멀티캐스트 발신지 노드로부터 마킹된 패킷들(Pki)을 수신하고, 상기 노드(N(1))가 상기 패킷들(Pki)의 수신시 증가하게 하는 2개의 카운터(Ca(1), Cb(1))를 구현하며 그리고 이로부터 위에서 설명한 바와 같은 패킷 카운트들(C(1, n-2), C(1, n-1), C(1, n), C(1, n+1))을 획득한다. 다시, 상기 노드(N(2))는 상기 노드(N(1))로부터 마킹된 패킷들(Pki)을 수신하고, 상기 노드(N(2))가 상기 패킷들(Pki)의 수신시 증가하게 하는 2개의 카운터(Ca(2), Cb(2))를 구현하며 이로부터 위에서 설명한 바와 같은 패킷 카운트들(C(2, n-2), C(2, n-1), C(2, n), C(2, n+1))를 획득한다. 다시, 상기 노드(N(3))는 상기 노드(N(2))로부터 마킹된 패킷들(Pki)을 수신하고, 상기 노드(N(3))가 상기 패킷들(Pki)의 수신시 증가하게 하는 2개의 카운터(Ca(3), Cb(3))를 구현하며 이로부터 위에서 설명한 바와 같은 패킷 카운트들(C(3, n-2), C(3, n-1), C(3, n), C(3, n+1))을 획득한다. 마찬가지로, 상기 노드(N(4))는 상기 노드(N(2))로부터 마킹된 패킷들(Pki)을 수신하고, 상기 노드(N(4))가 상기 패킷들(Pki)의 수신시 증가하게 하는 2개의 카운터(Ca(4), Cb(4))를 구현하며 이로부터 위에서 설명한 바와 같은 패킷 카운트들(C(4, n-2), C(4, n-1), C(4, n), C(4, n+1))을 획득한다.
상기 현재의 블록 기간(n)에서, 각각의 노드(N(1), N(2), N(3), N(4))는 현재의 블록 기간(n)에서 그리고 다른 이전의 블록 기간(n-2)에서 획득된 개별적인 패킷 카운트들에 상기 수학식 [3]을 적용하는 수신된 패킷들의 개수(Pkt(1, n), Pkt(2, n), Pkt(3, n), Pkt(4, n))를 계산하는 것이 바람직하다.
상기 노드(N(1))가 도 3의 노드(N(m))와 마찬가지로 동작하는 패킷들(Pki)에 의해 이루어지게 되는 경로의 제1 노드임을 가정하면, 상기 노드(N(1))는 상기 노드(N(1))의 선행처리 노드에 의해 수신되거나 전송된 패킷들의 개수를 알지 못할 수 있는데, 그 이유는 상기 노드(N(1))의 선행처리 노드가 그러한 계산을 수행하지 못하기 때문이다. 그러므로, 상기 노드(N(1))는 상기 수학식 [4]를 적용함으로써 상기 노드(N(1))를 상기 선행처리 노드에 접속하는 링크를 통한 데이터 소실을 계산할 수 없다. 이때, 현재의 블록 기간(n)에서, 상기 노드(N(1))는,
- 상기 노드(N(1))에 의해 계산된 바와 같은 Pkt(1, n);
를 포함하는 (이하에서 또한 "토큰"이라 언급되게 되는) 데이터 구조(Tk(1, n))를 생성하는 것이 바람직하며 상기 토큰(Tk(1, n))이 상기 노드(N(1))의 후행처리 노드, 즉 N(2)에 이용가능하게 한다.
다시, 현재의 블록 기간(n)에서, 상기 노드(N(2))는 상기 노드(N(1))로부터 상기 토큰(Tk(1, n))을 회수(retrieve)하고, 상기 토큰((Tk(1, n))에 포함된 값(Pkt(1, n))을 판독하며 그리고 상기 수학식 [4], 즉 DL(1, 2, n)= Pkt(1, n) - Pkt(2, n)임에 따라 상기 링크(L(1, 2))를 통한 데이터 소실(DL(1, 2, n))을 계산한다. 이때, 상기 노드(N(2))는,
- 상기 노드(N(2))에 의해 계산된 바와 같은 Pkt(2, n); 및
- 상기 노드(N(2))에 의해 계산된 바와 같은 DL(1, 2, n);
을 포함하는 토큰(Tk(2, n))을 생성하는 것이 바람직하며, 상기 토큰(Tk(2, n))이 상기 노드(N(2))의 후행처리 노드들, 즉 N(3) 및 N(4)에 이용가능하게 한다.
다시, 현재의 블록 주기(n)에서, 상기 노드(N(3))는 상기 노드(N(2))로부터 상기 토큰(Tk(2, n))을 회수하고, 상기 토큰(Tk(2, n))에 포함된 값(Pkt(2, n))을 판독하며 상기 수학식 [4], 즉 DL(2, 3, n)= Pkt(2, n) - Pkt(3, n)임에 따라 상기 링크(L(2, 3))를 통한 데이터 소실(DL(2, 3, n))을 계산한다. 이때, 상기 노드(N(3))는,
- 상기 노드(N(3))에 의해 계산된 바와 같은 Pkt(3, n);
- 상기 토큰(Tk(2, n))으로부터 판독된 바와 같은 DL(1, 2, n); 및
- 상기 노드(N(3))에 의해 계산된 바와 같은 DL(2, 3, n);
을 포함하는 토큰(Tk(3, n))을 생성하는 것이 바람직하며, 상기 토큰(Tk(3, n))이 (도 1에 도시되지 않은) 상기 노드(N(3))의 후행처리 노드(들)에 이용가능하게 한다.
마찬가지로, 현재의 블록 기간(n)에서, 상기 노드(N(4))는 상기 노드(N(2))로부터 상기 토큰(Tk(2, n))을 회수하고, 상기 토큰(Tk(2, n))에 포함된 값(Pkt(2, n))을 판독하며 상기 수학식 [4], 즉 DL(2, 4, n)= Pkt(2, n) - Pkt(4, n)에 따라 상기 링크(L(2, 4))를 통한 데이터 소실(DL(2, 4, n))을 계산한다. 이때, 상기 노드(N(4))는,
- 상기 노드(N(4))에 의해 계산된 바와 같은 Pkt(4, n);
- 상기 토큰(Tk(2, n))으로부터 판독된 바와 같은 DL(1, 2, n); 및
- 상기 노드(N(4))에 의해 계산된 바와 같은 DL(2, 4, n);
을 포함하는 토큰(Tk(4, n))을 포함하는 것이 바람직하며, 상기 토큰(Tk(4, n))이 (도 1에 도시되지 않은) 상기 노드(N(4))의 후행 노드(들)에 이용가능하게 한다.
그러므로, 각각의 블록 기간에서 상기 노드들(N(1), N(2), N(3), N(4))은 도 1에 도시된 바와 같은, 상기 패킷들(Pki)과 실질적으로 동일한 경로를 따르는 토큰들의 흐름을 생성한다.
각각의 노드는 각각의 노드를 각각의 노드의 선행처리 노드에 접속하는 링크 를 통한 데이터 소실을 계산하기 위해 각각의 노드의 선행처리 노드로부터 수신된 상기 토큰에 포함된 정보를 사용한다. 각각의 노드는 이때 각각의 노드를 각각의 노드의 선행처리 노드에 접속하는 링크를 통한 데이터 소실의 계산을 자율적으로 수행할 수 있는데, 그 이유는 상기 수학식 [4]를 적용하는데 필요한 정보를 상기 선행처리 노드로부터 아는 것이 가능하기 때문이다. 그러므로, 상기 여러 노드로부터의 정보를 수집하고 상기 경로의 여러 링크에 관련된 데이터 소실 계산들을 수행하는 기능을 갖는 중앙집중식 관리자가 전혀 필요하지 않다. 상기 데이터 소실 계산은 토큰들의 전환(changeover)을 통해 필요한 정보를 교환할 수 있는, 노드들 자체에서 분산된다.
중앙집중식 관리자를 회피하는 것은 상기 통신 네트워크(CN)에서의 데이터 소실 측정의 구현의 비용들을 유리하게 감소시킨다. 실제로, 위에서 설명한 토큰 전환 메커니즘을 구현하는 인접한 노드들 간의 정보의 교환은 중앙집중식 계산의 경우에 필요하게 하는, 상기 경로의 노드들 및 중앙집중식 관리자 간의 정보의 교환보다 대역폭 점유에 대하여 덜 요구한다.
더욱이, 상기 통신 네트워크의 노드들에서의 분산된 데이터 소실 계산은 중앙집중식 구현보다 더 유연성이 있는데, 그 이유는 상기 통신 네트워크(CN)의 토폴로지의 가능한 변화들(노드들의 추가/제거) 및/또는 (예컨대, 고장들에 기인한) 상기 패킷들(Pki)에 의해 이루어지게 되는 경로의 가능한 변화들에 자율적으로 적응하는 것이 가능하기 때문이다. 실제로, 데이터 소실의 계산을 위해 중앙집중식 관리자에 의해 수행되는 알고리즘이 토폴로지 변화 또는 경로 변화의 경우에 수동적으로 재구성되어야 하지만, 어떠한 재구성도 그러한 경우들에서의 노드들에서 필요하지 않다. 실제로, 상기 노드들에 의해 실행되는 알고리즘에 따라, 각각의 노드는 이하에서 좀더 구체적으로 설명되겠지만, 각각의 블록 기간에서 각각의 노드의 선행처리 노드를 식별한다. 토폴로지 변화 또는 경로 변화의 경우에, 상기 식별된 선행처리 노드 변화들, 결과적으로는 상기 노드에 의해 수행되는 계산은 새로이 식별된 선행처리 노드로부터 회수된 토큰에 포함된 정보에 기반하여 이루어지게 된다. 이러한 방식으로, 상기 노드에서 수행되는 데이터 소실 계산은 토폴로지/경로 변화들에 자율적으로 적응한다.
그 외에도, 위에서 설명한 토큰 전환 메커니즘은 또한 상기 통신 네트워크(CN)에서의 성능 모니터링 동작들 및 고장 검출 및 관리 동작들을 용이하게 하는데 유리하다.
실제로, 상기 토큰 전환 메커니즘에 포함된 각각의 노드는 데이터 소실 계산에 필요한 정보 외에도, 상기 토큰 전환 메커니즘을 구현하는 제1 노드에 선행처리 노드를 접속하는 링크에 관련된 데이터 소실을 또한 포함하는 토큰을 각각의 노드의 선행처리 노드로부터 수신한다. 그러므로, 각각의 노드는 (각각의 노드가 각각의 노드의 선행처리 노드로부터 회수된 토큰에 포함된 정보를 사용하여 계산한) 각각의 노드를 각각의 노드의 선행처리 노드에 접속하는 링크에 관련된 데이터 소실뿐만 아니라, (각각의 노드의 선행처리 노드를 포함한) 상기 패킷들(Pki)에 의해 이루어지게 되는 경로를 따라 업스트림으로 위치해 있는 노드들에 의해 계산된 데이터 소실들을 알고 있다(그리고 저장한다). 그러므로, 상기 경로의 단일 노드에 저장된 정보를 판독함으로써, 네트워크 운영자는 위의 토큰 전환 메커니즘을 구현하는 제1 노드로부터 검사된 노드로 상기 패킷들(Pki)에 의해 이루어지게 되는 경로를 형성하는 링크들 모두의 성능의 매우 신속한 전체 개요(overview)를 지닐 수 있다. 상기 경로의 서로 다른 링크들을 통한 가능한 성능 저하는 결과적으로 상기 경로의 단일 노드에 대한 단일 질의를 통해 용이하게 그리고 신속하게 국소화될 수 있다.
제1 실시예들에 의하면, 노드들 간의 토큰 전환 메커니즘은 포워드 메커니즘이며, 상기 포워트 메커니즘에 따라, 각각의 블록 기간에서, 각각의 노드가 생성한 토큰이 준비되는 즉시 각각의 노드가 생성한 토큰을 상기 후행처리 노드(들)로 "푸싱(pushing)"한다.
변형적으로는, 상기 토큰 전화 메커니즘이 백워드 메커니즘이며, 상기 백워드 메커니즘에 따라, 각각의 블록 기간에서, 이후에 구체적으로 설명되겠지만, 각각의 노드가 각각의 노드에 토큰 요구를 송신함으로써 상기 선행처리 노드로부터 상기 토큰을 "풀링(pulling)"한다. 이러한 후자의 메커니즘은 각각의 노드가 단일의 선행처리 노드 및 다수의 후행처리 노드(들)를 지니는 시나리오에서 선호되는데, 그 이유는 상기 후자의 메커니즘이 노드들 간의 통신의 관점에서 볼 때 더 단순하기 때문이다. 실제로, 각각의 노드가 단일 노드, 즉 단일 노드의 선행처리 노드와 통신해야 한다. 더욱이, 상기 백워드 메커니즘은 노드의 후행처리 노드(들)이 토큰을 적합하게 수신했음을 노드가 확인하는 토큰 수신 확인을 전혀 필요로 하지 않지만, 포워드 메커니즘의 경우에는 그러한 토큰 수신 확인이 필요하다.
더욱이, 첨부도면들에 도시되지 않은 다른 부가적인 실시예들에 의하면, 토큰들의 흐름이 상기 패킷들(Pki)의 방향과는 정반대인 방향으로 상기 패킷들(Pki)과 동일한 경로를 따를 수 있다. 그러한 실시예들에 의하면, 상기 중간 노드(N(m))는 상기 중간 노드의 후행처리 노드들 중 하나로부터 토큰을 수신하고, 상기 중간 노드 자체의 토큰을 상기 후행처리 노드로부터 수신된 토큰에 포함된 정보를 사용하여 생성하며 상기 토큰을 상기 선행처리 노드(N(m'))에 제공해 준다. 상기 중간 노드(N(m))에 의해 생성된 토큰은 위에서 설명한 바와 같이, 상기 중간 노드(N(m))에 의해 "푸싱"될 수도 있고 상기 선행처리 노드(N(m'))에 의해 "풀링"될 수도 있다. 상기 중간 노드(N(m))가 다수의 후행처리 노드들을 지니는 경우에, 상기 노드(N(m))에 의해 생성된 토큰은 상기 노드(N(m))를 상기 후행처리 노드들에 접속하는 링크들 모두에 관련된 정보를 포함하는 것이 바람직하다. 그러나, 이러한 실시예는 각각의 중간 노드가 단일의 후행처리 노드를 지니는, 점 대 점 전송의 경우들에 적용되는 것이 바람직하다.
위의 설명에서는 각각의 노드(N(1), N(2), N(3), N(4))가 수신된 패킷들(Pki)을 카운트하는 것, 다시 말하면 상기 마킹 값들(Va, Vb)에 관련된 카운터들이 상기 패킷들(Pki)이 상기 노드에서 수신되게 하는 입력 인터페이스에서 구현되는 것이 가정되어 있다. 그러므로, 이러한 패킷 카운트를 기반으로 하여 계산된 데이터 소실은 상기 선행처리 노드의 입력 인터페이스 및 상기 계산을 수행하는 노드의 입력 인터페이스 간의 전송에서 소실된 패킷들의 개수를 실제로 나타낸다. 그러므로, 상기 계산된 데이터 소실은 2개의 노드 간의 링크를 통해 생기는 데이터 소실 및 상기 패킷들(Pki)의 입력 인터페이스 및 출력 인터페이스 간의 선행처리 노드에서 생기는 데이터 소실 양자 모두를 실제로 고려한다.
다른 변형예들에 의하면, 각각의 노드(N(1), N(2), N(3), N(4))는 전송된 패킷들을 카운트할 수 있는데, 다시 말하면 상기 마킹 값들(Va, Vb)에 관련이 있는 카운터들은 상기 패킷들(Pki)이 상기 노드에 의해 전송되게 하는 출력 인터페이스에서 구현될 수 있다. 그러므로, 이러한 패킷 카운트에 기반하여 계산된 데이터 소실은 상기 선행처리 노드의 출력 인터페이스 및 상기 계산을 수행하는 노드에서의 출력 인터페이스 간의 전송에서 소실된 패킷들의 개수를 나타낸다. 그러므로, 상기 계산된 데이터 소실은 상기 2개의 노드 간의 링크를 통해 생기는 데이터 소실 및 상기 패킷들(Pki)의 입력 인터페이스 및 출력 인터페이스 간의 노드에서 생기는 데이터 소실 양자 모두를 실제로 고려한다.
다른 변형예들에 의하면, 각각의 노드(N(1), N(2), N(3), N(4))는 상기 패킷들(Pki)의 입력 인터페이스에서 제1의 2개의 카운터를 구현하고 상기 패킷들(Pki)의 출력 인터페이스에서 제2의 2개의 카운터를 구현함으로써 수신 패킷들 및 송신 패킷들 양자 모두를 카운트할 수 있다. 이는 상기 각각의 노드를 상기 선행처리 노드에 접속하는 링크를 통한(즉, 상기 선행처리 노드의 출력 인터페이스 및 상기 계산을 수행하는 노드의 입력 인터페이스 간의) 전송에서 소실될 패킷들의 개수 및 상기 계산을 수행하는 노드 내에서의(즉, 상기 노드의 입력 인터페이스 및 상기 노드의 출력 인터페이스 간의) 전송에서 소실된 패킷들의 개수를 상기 각각의 노드가 개별적으로 계산할 수 있게 한다.
이하에서는, 상기 노드(N(m))의 동작이 좀더 구체적으로 설명될 것이다.
도 5의 흐름도를 먼저 참조하면, 상기 노드(N(m))가 패킷들(Pki)의 흐름을 통한 데이터 소실 측정 세션을 활성화하기 위한 커맨드를 수신할 경우에, 각각의 블록 기간에서 상기 노드(N(m))가 도 5에 도시된 단계들(10-50)을 수행하는 것이 바람직하다. 상기 블록 기간들의 지속기간(Tb)이 수신 커맨드에서 특정될 수 있다.
특히, 현재의 블록 기간(n)에서, 상기 노드(N(m))는 다수의 사전-조건이 충족되는지를 검사(단계 20)하는 것이 바람직하다. 특히, 단계 20에서 상기 노드(N(m))는 측정하게 될 패킷들(Pki)의 흐름이 현재 상기 노드(N(m))를 통해 흐르고 있는지를 검사하는 것이 바람직하다. 더욱이, 단계 20에서 상기 노드(N(m))는 상기 패킷들(Pki)이 상기 선행처리 노드(N(m'))로부터 수신되게 하는 입력 인터페이스가 식별될 수 있는지를 검사하는 것이 바람직하다. 더욱이, 단계 20에서 상기 노드(N(m))는 상기 패킷들(Pki)이 수신되게 하는 입력 인터페이스가 "업 상태(up state)"에 있는지(즉, 상기 입력 인터페이스가 온(on) 상태로 스위치되는지 그리고 위에서 설명한 카운터 메커니즘이 상기 입력 인터페이스에서 활성 상태에 있는지)를 검사하는 것이 바람직하다. 더욱이, 단계 20에서 상기 노드(N(m))는 상기 노드(N(m))가 상기 패킷들(Pki)들을 수신하게 되는 선행처리 노드(N(m'))에 도달가능한지를 검사하는 것이 바람직하다.
단계 20에서 검사된 사전-조건들 모두가 충족되는 경우에, 현재의 블록 기간(n)에서 상기 노드(N(m))는 실질적으로 위에서 설명한 계산 절차를 적용함으로써 이전의 블록 기간(n-1) 동안 수신된 패킷들(Pkt(m, n))의 개수를 계산하도록 시도(단계 30)하는 것이 바람직하다.
좀더 구체적으로 기술하면, 상기 노드(N(m))는 도 9에 도시된 표 T를 저장하는 것이 바람직하다. 상기 표 T는 각각의 행(row)이 개별 블록 기간에 상응하는 다수의 행들을 포함한다. 행들의 개수는 3인 것이 바람직하며, 각각의 행은 현재의 블록 기간(n), 이전의 블록 기간(n-1) 및 다른 이전의 블록 기간(n-2)에 상응한다. 각각의 블록 기간에서, 상기 표 T의 각각의 행의 내용은 슬라이딩 윈도우 메커니즘(sliding windows mechanism)에 따라 재생됨으로써, 상기 표 T는 항상 현재의 블록 기간(n), 이전의 블록 기간(n-1) 및 다른 이전의 블록 기간(n-2)에 관련된 정보를 저장하게 된다. 다른 이전의 블록 기간들에 관련된 정보는 상기 노드(N(m))에 저장되지 않는데, 그 이유는 상기 정보가 현재의 블록 기간(n) 동안 수신된 패킷들의 개수(Pkt(m, n))를 계산하는데 필요하지 않기 때문이다.
상기 표 T의 각각의 행은 다음과 같은 필드들 중 적어도 하나를 포함하는 것이 바람직하다.
제1 필드(F1)는 블록 기간의 식별자, 다시 말하면 n-2, n-1 및 n을 포함하는 것이 바람직하다.
제2 필드(F2)는 블록 기간 개시 시간, 다시 말하면, T(n-2), T(n-1) 및 T(n)을 포함하는 것이 바람직하다.
제3 필드(F3)는 블록 기간 동안 상기 패킷들(Pki)에 적용된 마킹 값(Va, Vb)을 포함하는 것이 바람직하다.
제4 필드(F4)는 블록 기간 동안 상기 패킷들(Pki)이 상기 노드(N(m))에서 수신되게 하는 입력 인터페이스의 식별자, 다시 말하면 IF(m, n-2), IF(m, n-1) 및 IF(m, n)을 포함하는 것이 바람직하다.
제5 필드(F5)는 블록 기간에서 상기 노드(N(m))에 의해 결정된 패킷 카운트, 다시 말하면 C(m, n-2), C(m, n-1) 및 C(m, n)을 포함하는 것이 바람직하다.
제6 필드(F6)는 블록 기간 동안 상기 노드(N(m))에 의해 계산된 바와 같은 수신된 패킷들(Pki)의 개수, 다시 말하면 Pkt(m, n-2), Pkt(m, n-1) and Pkt(m, n)을 포함하는 것이 바람직하다. 수신된 패킷들의 개수들은 상기 수학식 [3]을 상기 제5 필드(F5)에 포함된 패킷 카운트들의 값들에 적용함으로써 계산되는 것이 바람직하다. 특히, 현재의 블록 기간(n) 동안 계산된 패킷의 개수(Pkt(m, n))는 상기 수학식 [3]을 상기 표 T의 첫 번째 행 및 마지막 행의 제5 필드(F5)에 각각 저장된 패킷 카운트들(C(m, n-2), C(m, n))의 값들에 적용하여 계산된다.
제7 필드(F7)는 수신된 패킷들의 개수 계산의 결과 표시를 포함하는 것이 바람직하다. 특히, 상기 제7 필드(F7)는 상기 노드(N(m))가 블록 기간에서 수신된 패킷들의 개수를 계산하도록 후행처리하는 경우에 제1 값(예를 들어, "온(ON)" 또는 "예(YES)")으로 설정되지만, 상기 제7 필드(F7)는 상기 노드(N(m))가 블록 기간에 수신된 패킷들의 개수를 계산하도록 후행처리하지 않는 경우에 제2 값(예를 들어, "오프(OFF)" 또는 "아니오(NO)")으로 설정된다.
단계 30을 좀더 구체적으로 보여주는 도 6을 지금부터 참조하면, 부속-단계 300에서 상기 노드(N(m))는 현재의 블록 기간(n)에 관련된 행의 필드들(F1, F2, F3, F4)에서 현재의 블록 기간(n)의 식별자, 현재의 블록 기간의 개시 시간(T(n)), 이전의 블록 기간(n-1)에 적용된 마킹 값(Va 또는 Vb) 및 상기 패킷들(Pki)이 현재의 블록 기간(n)에서 각각 수신되게 하는 입력 인터페이스의 식별자(IF(m, n))를 기록함으로써, 상기 표 T에서 현재의 블록 기간(n)에 관련된 행의 필드들(F1, F2, F3, F4)을 채우는 것이 바람직하다.
그리고나서, 부속-단계 301에서 상기 패킷들(Pki)이 현재의 블록 기간(n) 동안 수신되게 하는 입력 인터페이스가 상기 패킷들이 다른 이전의 블록 기간(n-2) 동안 수신되게 한 입력 인터페이스와 동일한 것인지를 검사하는 것이 바람직하다. 이러한 취지로, 상기 노드(N(m))는 상기 표 T에서 현재의 블록 기간(n)에 관련된 행의 제4 필드(F4)에 저장된 식별자(IF(m, n)) 및 다른 이전의 블록 기간(n-2)에 관련된 행의 제4 필드(F4)에서 저장된 식별자(IF(m, n-2))를 판독하고 그들을 비교하는 것이 바람직하다. 만약 IF(m, n)= IF(m, n-2)인 경우에, 상기 노드(N(m))는 상기 패킷들(Pki)이 상기 블록 기간들(n, n-2)에서 동일한 입력 인터페이스를 통해 수신되는 것으로 결정한다.
만약 부속-단계 301, 상기 블록 기간들(n, n-2)에서 동일한 입력 인터페이스를 통해 상기 패킷들(Pki)이 수신되는 것으로 상기 노드(N(m))가 결정하는 경우에, 부속-단계 302에서 상기 노드(N(m))는 위에서 설명한 바와 같이, 현재의 블록 기간(n)에서 패킷 카운트(C(m, n))를 획득하기 위해 위에서 설명한 바와 같이 상기 카운터들(Ca(m), Cb(m))을 처리한다.
그리고나서, 만약 상기 노드(N(m))가 상기 패킷 카운트(C(m, n))를 결정(부속-단계 303)할 수 있다면, 부속-단계 304a에서 상기 노드(N(m))는 상기 표 T에서 현재의 블록 기간(n)에 관련된 행의 제5 필드(F5)에 결정된 패킷 카운트(C(m, n))를 기록하는 것이 바람직하다. 그리고나서, 부속-단계 305에서 상기 다른 이전의 블록 기간(n-2)에서의 패킷 카운트(C(m, n-2))가 이용가능한지를 상기 노드(N(m))가 상기 표 T에서 검사하는 것이 바람직하다. 이러한 취지로, 상기 노드(N(m))는 상기 다른 이전의 블록 기간(n-2)에 관련된 행의 제5 필드(F5)가 유효값을 포함하는지를 검사하는 것이 바람직하다.
상기 다른 이전의 블록 기간(n-2)에 관련된 행의 제5 필드(F5)가 유효값을 포함하는 경우에, 부속-단계 306에서 상기 노드(N(m))는 상기 수학식 [4], 즉 Pkt(m, n) = C(m, n) - C(m, n-2)를 적용함으로써 수신된 패킷들의 개수(Pkt(m, n))를 계산하는 것이 바람직하다. 그리고나서, 부속-단계 307a에서 상기 노드(N(m))는 상기 표 T에서 현재의 블록 기간(n)에 관련된 행의 제6 필드(F6)에 계산된 패킷들의 개수(Pkt(m, n))를 기록하는 것이 바람직하다. 그리고나서, 부속-단계 308a에서 상기 노드(N(m))는 상기 표 T에서 현재의 블록 기간에 관련된 행의 제7 필드(F7)에 값 "온(ON)"을 기록하는 것이 바람직하다.
만약 부속-단계(305)에서, 상기 다른 이전의 블록 기간(n-2)에서의 패킷 카운트(C(m, n-2))가 이용가능하지 않은 것으로(즉, 상기 다른 이전의 블록 기간(n-2)에 관련된 행의 제5 필드(F5)가 비유효값을 포함하는 것으로) 상기 노드(N(m))가 결정하는 경우에, 상기 노드(N(m))는 수신된 패킷들의 개수(Pkt(m, n))가 현재의 블록 기간(n)에서 계산되지 않을 수 있는 것으로 결정한다. 따라서, 부속-단계 307b에서 상기 노드(N(m))는 상기 표 T에서 현재의 블록 기간(n)에 관련된 행의 제6 필드(F6)에 사전 정의된 값(예를 들어, "블랭크(BLANK)" 또는 "널(NULL)")을 기록하는 것이 바람직하다. 더욱이, 부속-단계 308b에서 상기 노드(N(m))는 상기 표 T에서 현재의 블록 기간(n)에 관련된 행의 제7 필드(F7)에 값 "오프(OFF)"를 기록하는 것이 바람직하다.
부속-단계 303에서, 상기 노드(N(m))가 현재의 블록 기간(n)에서 패킷 카운트(C(m, n))를 결정할 수 없는 것으로 상기 노드(N(m))가 결정하는 경우에, 부속-단계 304b에서 상기 노드(N(m))는 상기 표 T에서 현재의 블록 기간(n)에 관련된 행의 제5 필드(F5)에 사전 정의된 비유효값(예를 들어, "블랭크(BLANK)" 또는 "널(NULL)"을 기록하는 것이 바람직하다. 그리고나서, 상기 노드(N(m))는 위에서 설명한 단계들 307b 및 308b를 수행한다. 실제로, 그러한 경우에 상기 노드(N(m))는 현재의 블록 기간(n)에서 수신된 패킷들의 개수(Pkt(m, n))를 계산할 수 없다.
부속-단계 301에서, 상기 패킷들(Pki)이 블록 기간들(n, n-2)에서 서로 다른 입력 인터페이스들을 통해 수신되는 것으로 상기 노드(N(m))가 결정하는 경우에, 현재의 블록 기간에서의 패킷 카운트(C(m, n))가 다른 이전의 블록 기간(n-2)에서의 패킷 카운트(C(m, n-2))와 비교될 수 없는 것으로 상기 노드(N(m))가 결정하는데, 그 이유는 이들이 서로 다른 입력 인터페이스에서 구현된 카운터들로부터 획득되고, 결과적으로 이들이 서로 다른 링크들을 통해 서로 다른 선행처리 노드들로부터 상기 노드(N(m))로 전송된 패킷들(Pki)에 관련되어 있기 때문이다. 그러므로, 상기 노드(N(m))는 현재의 블록 기간(n)에서 패킷 카운트(C(m, n))의 결정을 회피하는데, 그 이유는 상기 결정이 쓸모없기 때문이다. 그리고나서, 상기 노드(N(m))는 부속-단계들(304b, 307b, 308b)에 따라 현재의 블록 기간(n)에 관련된 행의 필드들(F5, F6, F7)을 채운다.
도 5를 다시 참조하면, 수신된 패킷들의 개수(Pkt(m, n))를 계산하도록 시도한 후에, 현재의 블록 기간(n)에서 상기 노드(N(m))는 현재의 블록 기간(n)에서 선행처리 노드(N(m'))에 의해 생성된 토큰(Tk(m', n))을 상기 선행처리 노드(N(m'))로부터 회수하도록 시도(단계 40)하는 것이 바람직한데, 다시 말하면 상기 노드(N(m))는 위에서 언급한 백워드 토큰 전환 메커니즘을 구현한다.
도 7에는 단계 40이 좀더 구체적으로 도시되어 있다.
상기 선행처리 노드(N(m'))로부터 상기 토큰(Tk(m', n))을 회수하도록 시도하기 위해, 상기 노드(N(m))는 상기 선행처리 노드(N(m'))에 토큰 요구를 주기적으로 송신하는 것이 바람직하다.
이러한 취지로, 상기 노드(N(m))가 상기 토큰(Tk(m', n))을 요구하기 시작하는 질의 시간(Tq(m, n)), 즉 제1 토큰 요구가 상기 선행처리 노드(N(m'))에 송신되게 하는 시간을 상기 노드(N(m))가 우선적으로 결정하는 것이 바람직하다. 현재의 블록 기간(n) 내에서의 질의 시간(Tq(m, n))은 블록 기간의 지속기간(Tb)만큼 증가하게 되는, 단계 40의 이전의 반복(즉, 이전의 블록 기간(n-1)에서의 단계 40의 반복)의 종료시에 질의 시간(Tq(m, n-1))이 설정된 값과 동일하게 설정되는 것이 바람직한데, 다시 말하면, 다음과 같은 수학식 [5]로 표기될 수 있다.
Tq(m, n) = Tq(m, n-1) + Tb [5]
그러나, 상기 질의 시간(Tq(m, n))의 그러한 결정은 블록 기간의 종료를 향하는 상기 질의 시간(Tq(m, n))의 바람직하지 않은 드리프트를 초래할 수 있다. 실제로, 블록 기간 개시 시간 및 단계 40의 종료에서 상기 질의 시간이 설정되는 값 간의 지연은 각각의 블록 기간에서 증가할 수 있다. 이러한 증가는 상기 질의 시간(Tq(m, n))이 점차로 상기 블록 기간의 종료를 향해 시프트하게 할 수 있고 심지어는 상기 블록 기간의 종료를 초과하게 할 수 있다. 이는 현재의 블록 기간(n)에서 생성된 토큰(Tk(m', n))을 누락시키는 바람직하지 못한 결과를 초래하게 된다.
상기 질의 시간(Tq(m, n))의 바람직하지 못한 드리프트를 회피하기 위해, 상기 노드(N(m))는 적응적 오프셋 기법(adaptive offset technique)을 선택적으로 구현할 수 있는데, 상기 적응적 오프셋 기법에 따라 각각의 블록 기간에서 상기 드리프트가 상기 질의 시간으로부터 사전 정의된 오프셋(Δ(m, n))을 감산함으로써, 즉 이하의 수학식 [6]
Tq(m, n) = Tq(m, n-1) + Tb - Δ(m, n) [6]
으로 표기한 바와 같이 사전-보상된다.
상기 오프셋(Δ(m, n))은 예컨대 네트워크 토폴로지, 멀티캐스트 분산 트리의 심도, 선행처리 노드(N(m'))에 송신된 토큰 요구들의 개수의 최소화 및 상기 토큰(Tk(m', n))이 선행처리 노드(N(m'))에 의해 제공되는 시간 및 상기 토큰(Tk(m', n))이 상기 노드(N(m))에 의해 회수되는 시간 간의 지연의 최소화 간의 타협점(trade-off) 등등을 고려하여 초기화 단계 동안 네트워크 운영자에 의해 설정되는 것이 바람직하다. 예를 들어, Δ(m, n)은 주기 함수(periodic function)일 수 있음으로써 사전 정의된 연속 블록 기간들의 개수에서 Δ(m, n)=0이고 사전 정의된 연속 블록 기간들의 개수 다음에 오는 단일의 블록 기간에서 Δ(m, n)>0이다.
그러므로, 단계 40에서 상기 노드(N(m))는 우선적으로 적응적 오프셋이 활성 상태인지를 결정한다(부속-단계 400). 적응적 오프셋이 활성 상태가 아닌 경우에, 상기 노드(N(m))는 상기 수학식 [5]에 따라 상기 질의 시간(Tq(m, n))을 결정(부속-단계 401a)하는 것이 바람직하다. 이와는 달리, 적응적 오프셋이 활성 상태인 경우에, 상기 노드(N(m))는 상기 수학식 [6]에 따라 상기 질의 시간(Tq(m, n))을 결정(부속-단계 401b)하는 것이 바람직하다.
그리고나서, 상기 노드(N(m))는 초기값, 즉 0인 인덱스 k를 설정하고 부속-단계 401a 또는 401b에서 결정된 질의 시간(Tq(m, n))에서, 토큰 요구를 선행처리 노드(N(m'))에 송신한다(부속-단계 403).
상기 토큰 요구에 응답하여, 상기 노드(N(m))가 상기 선행처리 노드(N(m'))로부터 토큰(Tk(m', n))을 수신(부속-단계 404)하는 경우에, 부속-단계 405에서 상기 노드(N(m))는 그로부터 (토큰(Tk(m', n))의 생성시 상기 선행처리 노드(N(m'))가 토큰(Tk(m', n))에 삽입하고 토큰(Tk(m', n))이 생성된 시간을 나타내는) 타임스탬프(Ts(m', n))를 판독하고 상기 타임스탬프(Ts(m', n))가 이전의 블록 기간(n-1)의 개시 시간(T(n-1))과 부합하는지 또는 상기 타임스탬프(Ts(m', n))가 이전의 블록 기간(n-1)의 개시 시간(T(n-1))에 비해 지연되는지를 검사한다. 이는 상기 토큰(Tk(m', n))이 현재의 블록 기간(n)에서 생성되었는지 또는 이전의 블록 기간(n-1)에서 생성되었는지를 상기 노드(N(m))가 결정할 수 있게 하거나 상기 토큰(Tk(m', n))이 초기 블록 기간에서 생성되었는지를 상기 노드(N(m))가 결정할 수 있게 한다.
상기 토큰(Tk(m', n))이 초기 블록 기간에서 생성된 것으로 상기 노드(N(m))가 결정하는 경우에, 이전의 블록 기간(n-1)의 적어도 일부에 대하여, 그리고 아마도 이전의 블록 기간(n-1)에 앞선 블록 기간들의 개수에 대해 토큰 메커니즘이 선행처리 노드(N(m'))에서 활성 상태가 아닌 것으로 상기 노드(N(m))가 결정한다. 그리고나서, 상기 선행처리 노드(N(m'))가 아마도 현재의 블록 기간(n)에서 토큰(Tk(m', n))을 생성할 수 없는 것으로 상기 노드(N(m))가 판단한다. 그리고나서, 상기 노드(N(m))는 상기 선행처리 노드(N(m'))로부터 토큰(Tk(m', n))을 회수하도록 하는 시도를 포기하고 이하에서 구체적으로 설명되겠지만, 단계 50에서 상기 노드(N(m))의 동작을 계속한다.
이와는 달리, 상기 토큰(Tk(m', n))이 현재의 블록 기간(n)에서 또는 이전의 블록 기간(n-1)에서 생성된 것으로 상기 노드(N(m))가 결정하는 경우에, 부속-단계(406)에서 상기 토큰(Tk(m', n))으로부터 판독된 타임스탬프(Ts(m', n))가 현재의 블록 기간(n)에 포함되어 있는지를 상기 노드(N(m))가 결정한다. 이는 현재의 블록 기간(n) 동안 또는 이전의 블록 기간(n-1) 동안 상기 토큰(Tk(m', n))이 생성되었는지를 상기 노드(N(m))가 결정할 수 있게 한다.
현재의 블록 기간(n) 동안 또는 이전의 블록 기간(n-1) 동안 상기 토큰(Tk(m', n))이 생성된 경우에, 상기 노드(N(m))는 상기 토큰(Tk(m', n))이 현재의 블록 기간(n) 동안 생성된 것으로, 그리고 결과적으로는 이하에서 구체적으로 설명되겠지만 링크(L(m', m))를 통한 데이터 소실을 계산하기 위해 적절히 사용될 수 있는, 현재의 블록 기간(n)에 관련된 정보를 회수된 토큰(Tk(m', n))의 내용이 포함하는 것으로 결정한다.
현재의 블록 기간(n) 동안 또는 이전의 블록 기간(n-1) 동안 상기 토큰(Tk(m', n))이 생성되지 않은 경우에, 상기 노드(N(m))는 상기 토큰(Tk(m', n))이 이전의 블록 기간(n-1) 동안 생성된 것으로, 그리고 결과적으로는 현재의 블록 기간(n)에서 링크(L(m', m))를 통한 데이터 소실을 계산하기 위해 적절히 사용될 수 없는, 이전의 블록 기간(n-1)에 관련된 정보를 회수된 토큰(Tk(m', n))의 내용이 포함하는 것으로 결정한다. 그러므로, 이러한 경우에 상기 토큰(Tk(m', n))이 현재의 블록 기간(n)에 관련된 정보를 포함하는 것을 상기 노드(N(m))가 이룰 때까지 상기 노드(N(m))는 상기 토큰(Tk(m', n))을 상기 선행처리 노드(N(m'))에 계속 요구하는 것이 바람직하다.
특히, 상기 노드(N(m))는 부속-단계(405)에서 토큰(Tk(m', n))으로부터 판독된 타임스탬프(Ts(m', n))에 기반하여 이루어지는 지연된 질의 시간(Tq(m, n))으로부터 시작하여, 미리 결정된 요구 반복 기간(Td)으로 상기 토큰(Tk(m', n))을 선행처리 노드(N(m'))에 주기적으로 요구한다. 좀더 구체적으로 기술하면, 부속-단계 407에서 상기 노드(N(m))는 블록 기간의 지속기간(Tb)만큼 그리고 미리 결정된 양(k*Td)만큼 증가하게 된 타임스탬프(Ts(m', n))와 동일하게 질의 시간(Tq(m, n))을 설정하는 것이 바람직하다. k는 위에서 언급한 인덱스이며 상기 인덱스는 부속-단계 407의 제1 반복에서, 상기 인덱스의 초기값, 즉 0이다(부속-단계 402 참조). 그리고나서, 부속-단계 408에서 상기 노드(N(m))는 부속-단계 407에서 계산된 새로운 질의 시간(Tq(m, n))이 차후의 블록 기간의 개시 시간(T(n+1))보다 빠른지를 검사한다.
계산된 새로운 질의 시간(Tq(m, n))이 차후의 블록 기간의 개시 시간(T(n+1))보다 빠른 경우에, 상기 노드(N(m))는 부속-단계 407에서 결정된 질의 시간(Tq(m, n))이 여전히 현재의 블록 기간(n) 내에 포함되는 것으로 결정한다. 따라서, 상기 노드(N(m))는 상기 인덱스(k)를 1만큼 증가(부속-단계 409)시키는 것이 바람직하다. 그리고나서, 부속-단계 407에서 결정된 질의 시간(Tq(m, n))에서, 상기 노드(N(m))는 상기 선행처리 노드(N(m'))에 제2 토큰 요구를 송신한다(부속-단계 410). 상기 제2 토큰 요구에 응답하여, 상기 노드(N(m))는 상기 선행처리 노드(N(m'))로부터 토큰(Tk(m', n))을 확실히 수신하는데, 그 이유는 상기 선행처리 노드(N(m'))가 부속-단계 403에서 송신된 제1 토큰 요구에 응답하여 상기 토큰(Tk(m', n))을 상기 노드(N(m))에 이미 송신했기 때문이다.
그리고나서, 상기 노드(N(m))는 부속-단계 410의 제1 반복에서 송신된 제2 토큰 요구에 응답하여 수신된 토큰(Tk(m', n))에 포함된 타임스탬프(Ts(m', n))가 현재의 블록 기간(n)에 포함되는지를 검사함으로써 부속-단계 406을 반복한다.
이러한 검사의 결과가 여전히 부정인 경우(이 경우는 상기 토큰(Tk(m', n))의 내용이 여전히 이전의 블록 기간(n-1)에 관련되어 있는 경우에 생김), 상기 노드(N(m))는 부속-단계 407을 반복함으로써, 요구 반복 기간(Td)만큼 질의 시간(Tq(m, n))을 지연시킨다. 그리고나서, 상기 노드(N(m))는 부속-단계 408의 검사를 반복하며, 긍정적인 결과의 경우에, 부속-단계들 409 및 410을 반복함으로써, 새로운 토큰 요구를 선행처리 노드(N(m'))에 송신하고 인덱스(k)를 부가적으로 증가시킨다.
부속-단계들(406-410)에 의해 형성된 루프는 다음과 같은 조건들 중 하나가 생길 때까지 반복되는 것(즉, 질의 시간(Tq(m, n))이 요구 반복 기간(Td)만큼 지연되고 새로운 토큰 요구가 선행처리 노드(N(m'))에 전송되는 것)이 바람직한데, 여기서 상기 조건들은,
i) 부속-단계 406에서 상기 노드(N(m))는 회수된 토큰(Tk(m', n))의 내용이 현재의 블록 기간(n)에서 링크(L(m', m))를 통한 데이터 소실을 계산하기 위해 적절히 사용될 수 있는, 현재의 블록 기간(n)에 관련된 정보를 포함하는 것으로 결정한다. 이러한 경우에, 상기 노드(N(m))는 이하에서 구체적으로 설명되겠지만 상기 링크(L(m', m))를 통한 데이터 소실을 계산하기 위해 토큰(Tk(m', n))에 포함된 정보를 사용한다; 또는
ii) 부속-단계 408에서, 상기 노드(N(m))는 부속-단계 408에서 계산된 질의 시간(Tq(m, n))이 차후의 블록 기간(n+1)에 포함되는 것으로 결정한다. 이러한 경우에, 상기 노드(N(m))는 상기 선행처리 노드(N(m'))로부터 상기 토큰(Tk(m', n))을 회수하도록 하는 시도를 포기하고 이하에서 구체적으로 설명되겠지만 단계 50에서 상기 노드(N(m))의 동작을 계속한다.
부속-단계 404에서, 부속-단계 403에서 송신된 토큰 요구에 응답하여, 상기 노드(N(m))가 선행처리 노드(N(m'))로부터 상기 토큰(Tk(m', n))을 수신하지 않는 경우에, 상기 노드(N(m))는 상기 토큰 메커니즘이 상기 선행처리 노드(N(m'))에서 결코 활성 상태가 아니었던 것으로 결정한다. 실제로, 상기 토큰 메커니즘이 현재의 블록 기간에 앞선 적어도 하나의 블록 기간 동안 활성 상태이었던 경우에, 상기 선행처리 노드(N(m'))는 현재 이용가능하지만 현재의 블록 기간(n)에 관련된 정보로 업데이트하지 않은 토큰을 생성하였다. 그러한 경우에, 상기 노드(N(m))는 이때 상기 선행처리 노드(N(m'))로부터 상기 토큰(Tk(m', n))을 회수하도록 하는 시도를 포기하고 이하에서 구체적으로 설명되겠지만 단계 50에서 상기 노드(N(m))의 동작을 계속한다.
도 5를 다시 참조하면, 상기 선행처리 노드(N(m'))로부터 상기 토큰(Tk(m', n))을 회수하도록 시도한 후에는, 상기 노드(N(m))가 자기 자신의 토큰(Tk(m, n)을 생성(단계 50)하는 것이 바람직하다.
도 8에는 단계 50이 구체적으로 도시되어 있다.
상기 노드(N(m))가 단계 40에서 상기 토큰(Tk(m', n))을 회수하도록 후행처리하고 상기 토큰(Tk(m', n))이 현재의 블록 기간(n)에 관련된 정보를 포함(부속-단계 406의 긍정적인 결과)하는 경우에, 부속-단계 500a에서 상기 노드(N(m))는 (위에서 설명한 바와 같이) 수신된 패킷들의 개수(Pkt(m, n))가 단계 30에서 성공적으로 계산되었는지를 나타내는, 현재의 블록 기간(n)에 관련된 행의 제7 필드(F7)의 값을 상기 표 T에서 판독하는 것이 바람직하다. 부속-단계(501a)에서, 상기 제7 필드(F7)의 값이 상기 계산의 긍정적인 결과를 나타내는 것으로 상기 노드(N(m))가 결정하는 경우에, 부속-단계(502a)에서 상기 노드(N(m))는 이하에서 "타입 1의 토큰(token of type 1)"이라 언급되는 토큰(Tk(m, n))을 생성하는 것이 바람직하다. 부속-단계 502a에서 상기 노드(N(m))에 의해 생성된 타입 1의 토큰(Tk(m, n))은,
- 상기 토큰(Tk(m, n))이 상기 노드(N(m))에 의해 생성되는 시간을 나타내는 타임스탬프(Ts(m, n));
- 현재의 블록 기간(n) 동안 상기 노드(N(m))에 의해 단계 30에서 계산된 바 같은 수신된 패킷들의 개수(Pkt(m, n));
- 현재의 블록 기간(n) 동안 패킷들(Pki)에 적용된 마킹 값(Va, Vb)을 나타내는 정보; 및
- 상기 선행처리 노드(N(m'))를 따라 업스트림으로 위치해 있는 링크들에 관련된 선행처리 노드(N(m'))로부터 회수된 토큰(Tk(m', n))에 포함된 데이터 소실의 가능한 값(들);
을 포함하는 것이 바람직하다.
그리고나서, 부속-단계 503에서, 상기 노드(node N(m))는 상기 선행처리 노드(N(m'))로부터 회수된 토큰(Tk(m', n))이 현재의 블록 기간(n) 동안 상기 선행처리 노드(N(m'))에 의해 계산된 바와 같은 수신된 패킷들의 개수(Pkt(m', n))를 포함하는지를 결정하는 것이 바람직하다.
상기 선행처리 노드(N(m'))로부터 회수된 토큰(Tk(m', n))이 현재의 블록 기간(n) 동안 상기 선행처리 노드(N(m'))에 의해 계산된 바와 같은 수신된 패킷들의 개수(Pkt(m', n))를 포함하는 경우에, 상기 노드(N(m))에서 수신된 패킷들의 개수(Pkt(m, n)) 및 상기 선행처리 노드(N(m'))에서 수신된 패킷들의 개수(Pkt(m', n)) 양자 모두가 이용가능하므로, 상기 노드(N(m'))는 상기 노드(N(m))에 상기 선행처리 노드(N(m'))를 접속하는 링크(L(m', m))를 통한 데이터 소실의 계산이 수행될 있는 것으로 결정한다. 그러므로, 부속-단계 504에서, 상기 노드(N(m))는 상기 수학식 [4], 즉 DL(m', m, n)= Pkt(m', n) - Pkt(m, n)임에 따라 상기 링크(L(m', m))를 통한 데이터 소실(DL(m', m, n))을 계산하는 것이 바람직하다.
부속-단계 504에서, 상기 노드(N(m))는 또한 다음과 같은 수학식 [7]
DLR(m', m, n) = [Pkt(m', n) - Pkt(m, n)] / Pkt(m', n) [7]
을 적용함으로써 상기 링크(L(m', m))를 통한 데이터 소실율(DLR(m', m, n))을 선택적으로 계산할 수 있다.
그리고나서, 부속-단계 505에서, 상기 노드(N(m))는 또한 부속-단계 502a에서 생성된 타입 1의 토큰(Tk(m, n))에 상기 계산된 데이터 소실(DL(m', m, n)) 및 선택적으로는 상기 계산된 데이터 소실율(DLR(m', m, n))을 삽입하는 것이 바람직하다.
그리므로, 이러한 경우에, 상기 노드(N(m))에 의해 생성된 토큰(Tk(m, n))은 (상기 후행처리 노드(들)가 상기 후행처리 노드(들)를 상기 노드(N(m))에 접속하는 링크들에 관련된 데이터 소실을 계산할 수 있게 하는) 수신된 패킷들의 개수(Pkt(m, n)), 상기 링크(L(m', m))에 관련된 데이터 소실(DL(m', m, n)), 및 아마도 상기 선행처리 노드(N(m')) 및 상기 선행처리 노드(N(m'))를 따라 업스트림으로 위치해 있는 노드들이 현재의 블록 기간(n) 동안 상기 선행처리 노드(N(m'))를 따라 업스트림으로 위치해 있는 노드들에 관련된 데이터 소실을 계산할 수 있는 경우에 또한 상기 선행처리 노드(N(m'))를 따라 업스트림으로 위치해 있는 노드들에 관련된 데이터 소실을 포함한다.
부속-단계 503에서, 상기 선행처리 노드(N(m'))로부터 회수된 토큰(Tk(m', n))이 수신된 패킷들의 개수(Pkt(m', n))를 포함하지 않는 것으로 상기 노드(N(m))가 결정하는 경우에, 상기 링크(L(m', m))에 관련된 데이터 소실(DL(m', m, n))이 현재의 블록 기간(n)에서 계산되지 않을 수 있는 것으로 판단하고, 결과적으로는 다른 어떠한 액션도 수행하지 않는다.
이러한 경우에, 상기 노드(N(m))에 의해 생성된 토큰(Tk(m, n))은 (상기 후행처리 노드(들)이 상기 후행처리 노드(들)를 상기 노드(N(m))에 접속하는 링크들에 관련된 데이터 소실을 계산할 수 있게 하는) 수신된 패킷들의 개수(Pkt(m, n)) 및 아마도 상기 선행처리 노드(N(m')) 및 상기 선행처리 노드(N(m'))를 따라 업스트림으로 위치해 있는 노드들이 현재의 블록 기간 동안 상기 선행처리 노드(N(m'))에 관련된 데이터 소실을 계산할 수 있는 경우에 상기 선행처리 노드(N(m'))에 따라 업스트림으로 위치해 있는 링크들에 관련된 데이터 소실을 포함한다. 그러나, 상기 토큰(Tk(m, n))은 상기 링크(L(m', m))에 관련된 데이터 소실(DL(m', m, n))을 포함하지 않는데, 그 이유는 상기 노드(N(m))가 상기 링크(L(m', m))에 관련된 데이터 소실(DL(m', m, n))을 계산할 수 없기 때문이다.
부속-단계 501a에서, (예컨대, 패킷들(Pki)이 현재의 블록 기간(n)에서 그리고 다른 이전의 블록 기간(n-2)에서 서로 다른 인터페이스들을 통해 상기 노드(N(m))에서 수신되기 때문에) 제7 필드(F7)의 값이 현재의 블록 기간(n)에서 수신된 패킷들의 개수(Pkt(m, n))의 계산의 부정적인 결과를 나타내는 것으로 상기 노드(N(m))가 결정하는 경우에, 부속-단계 502b에서 상기 노드(N(m))는 이하에서 "타입 2의 토큰(token of type 2)"으로 언급되는 토큰(Tk(m, n))을 생성하는 것이 바람직하다. 부속-단계 502b에서 상기 노드(N(m))에 의해 생성된 타입 2의 토큰(Tk(m, n))은,
- 상기 토큰(Tk(m, n))이 상기 노드(N(m))에 의해 생성되는 시간을 나타내는 타임스탬프(Ts(m, n)); 및
- 상기 선행처리 노드(N(m'))를 따라 업스트림으로 위치해 있는 링크들에 관련된, 상기 선행처리 노드(N(m'))로부터 회수된 토큰(Tk(m', n))에 포함된 데이터 소실의 가능한 값(들);
을 포함하는 것이 바람직하다.
그러므로, 이러한 경우에, 상기 선행처리 노드(N(m')) 및 상기 선행처리 노드(N(m'))를 따라 업스트림으로 위치해 있는 노드들이 현재의 블록 기간 동안 상기 선행처리 노드(N(m'))를 따라 업스트림으로 위치해 있는 링크들에 관련된 데이터 소실을 계산할 수 있는 경우에 상기 토큰(Tk(m, n))은 실질적으로 상기 선행처리 노드(N(m'))를 따라 업스트림으로 위치해 있는 링크들에 관련된 데이터 소실만을 포함한다. 그러나, 타입 2의 토큰(Tk(n, m))은 수신된 패킷들의 개수(Pkt(m, n))도 데이터 소실(DL(m', m, n))도 포함하지 않는데, 그 이유는 상기 노드(N(m))가 현재의 블록 기간(n)에서 수신된 패킷들의 개수(Pkt(m, n)) 및 데이터 소실(DL(m', m, n))을 계산할 수 없기 때문이다. 그러므로, 상기 후행처리 노드(들)은 상기 후행처리 노드(들)을 상기 노드(N(m))에 접속하는 링크들에 관련된 데이터 소실을 계산할 수 없다. 그러나, 상기 후행처리 노드(들)는 그럼에도 불구하고 현재의 블록 기간(n)에서 수신된 패킷들의 개수를 계산하고 상기 계산된 값들을 상기 후행처리 노드(들)의 개별적인 후행처리 노드들에 포워드할 수 있으며, 상기 후행처리 노드(들)의 개별적인 후행처리 노드들은 데이터 소실 계산을 수행하게 된다. 바꾸어 말하면, 한 노드가 소정의 블록 기간에 수신된 패킷들의 개수를 계산할 수 없는 경우에, 이는 그러한 블록 기간 동안 데이터 소실을 계산하도록 단지 상기 노드의 후행처리 노드(들)의 기능에만 영향을 준다. 그러나, 이는 상기 데이터 소실을 계산하도록 상기 패킷들(Pki)의 경로를 따라 부가적인 다운스트림으로 위치해 있는 노드들의 기능에 영향을 주지 않는다. 더군다나, 수신된 패킷들의 개수를 계산할 수 없는 노드를 따라 업스트림으로 위치해 있는 노드들에 의해 계산된 데이터 소실의 포워딩 메커니즘은 영향을 받지 않는데, 그 이유는 이러한 값들이 타입 2의 토큰에 포함되어 있기 때문이다.
비록 단계 20의 사전-조건들이 충족될 때라도 상기 노드(N(m))가 단계 40에서 상기 토큰(Tk(m', n))을 회수하도록 후행처리하지 않는 경우(부속-단계 404, 405 또는 408의 부정적인 결과), 부속-단계 500b에서 상기 노드(N(m))는, (위에서 설명한 바와 같이) 수신된 패킷들의 개수(Pkt(m, n))가 단계 30에서 성공적으로 계산되었는지를 나타내는, 현재의 블록 기간(n)에 관련된 행의 제7 필드(F7)의 값을 표 T에서 판독하는 것이 바람직하다.
부속-단계 501b에서, 제7 필드(F7)의 값이 상기 계산의 긍정적인 결과를 나타내는 것으로 상기 노드(N(m))가 결정하는 경우에, 부속-단계 502c에서 상기 노드(N(m))는 이하에서 "타입 3의 토큰(token of type 3)"으로 언급되는 토큰(Tk(m, n))을 생성하는 것이 바람직하다. 부속-단계 502c에서 상기 노드(N(m))에 의해 생성된 타입 3의 토큰(Tk(m, n))은,
- 상기 토큰(Tk(m, n))이 상기 노드(N(m))에 의해 생성되는 시간을 나타내는 타임스탬프(Ts(m, n));
- 현재의 블록 기간(n) 동안 상기 노드(N(m))에 의해 단계 30에서 계산된 바와 같은 수신된 패킷들의 개수(Pkt(m, n)); 및
현재의 블록 기간(n) 동안 패킷들(Pki)에 적용된 마킹 값(Va, Vb)을 나타내는 정보;
를 포함하는 것이 바람직하다.
그러므로, 이러한 경우에, 상기 노드(N(m))에 의해 생성된 토큰(Tk(m, n))은 (상기 후행처리 노드(들)가 상기 후행처리 노드(들)를 상기 노드(N(m))에 접속하는 링크들에 관련된 데이터 소실을 계산할 수 있게 하는) 수신된 패킷들의 개수(Pkt(m, n))를 포함한다. 그러나, 상기 토큰(Tk(m, n))은 상기 링크(L(m', m))에 관련된 데이터 소실(DL(m', m, n))을 포함하지 않는데, 그 이유는 상기 선행처리 노드(N(m'))에 의해 제공되었어야 하는 필요한 정보가 없는 경우에, 상기 노드(N(m))가 상기 링크(L(m', m))에 관련된 데이터 소실(DL(m', m, n))을 계산할 수없기 때문이다. 더욱이, 상기 선행처리 노드(N(m'))를 따라 업스트림으로 위치해 있는 링크들에 관련된 데이터 소실에 대한 정보가 전혀 이용가능하지 않은데, 그 이유는 상기 선행처리 노드(N(m'))가 상기 선행처리 노드(N(m'))를 따라 업스트림으로 위치해 있는 링크들에 관련된 데이터 소실에 대한 정보를 포워드할 수 없기 때문이다.
그리고나서, 부속-단계 506에서 상기 노드(N(m))는 현재의 블록 기간의 개시 시간(T(n))과 동일하게 질의 시간(Tq(m, n))을 설정하는 것이 바람직하다. 이는 기본적으로 이전의 블록 기간들 동안 생길 수 있었던, 블록 기간의 종료를 향한 질의 시간의 시간 시프팅을 리세트한다. 이러한 방식으로, 다음 블록 기간(n+1)에서, 질의 시간은 상기 블록 기간의 개시 시간과 부합하게 되고 어떠한 적응적 오프셋도 적용되지 않게 된다.
(예컨대, 패킷들(Pki)이 현재의 블록 기간(n)에서 그리고 다른 이전의 블록 기간(n-2)에서 서로 다른 인터페이스들을 통해 상기 노드(N(m))에서 수신되기 때문에) 부속-단계 501b에서 상기 제7 필드(F7)의 값이 현재의 블록 기간(n)에서 수신된 패킷들의 개수(Pkt(m, n)) 계산의 부정적인 결과를 나타내는 것으로 상기 노드(N(m))가 결정하는 경우에, 상기 노드(N(m))는 어떠한 토큰도 생성하지 않는데, 그 이유는 상기 후행처리 노드(들)에 포워드될 정보가 없기 때문이다. 이때, 상기 노드(N(m))는 단지 부속-단계 506만을 수행한다. 또한 단계 20의 사전-조건들이 충족되지 않을 때에도 동일한 경우가 적용된다.
단계 50에서, 상기 노드(N(m))가 타입 1, 2, 또는 3의 토큰(Tk(m, n))을 생성한 경우에, 상기 노드(N(m))는 타입 1, 2, 또는 3의 토큰(Tk(m, n))을 저장하고 후행처리 노드로부터의 토큰 요구의 수신시, 요구하는 후행처리 노드에 생성된 토큰(Tk(m, n))을 송신할 수 있다. 그러하지 않은 경우에, 현재의 블록 기간(n)에 관련된 업데이트된 정보를 갖는 토큰이 상기 노드(N(m))에서 이용가능하지 않다. 상기 노드(N(m))에서 어쨌든 현재의 블록 기간(n) 동안, (업데이트되지 않은 정보를 포함하는) 최종적으로 생성된 토큰이 이용가능하다.
위에서 설명한 단계들(10-50)은 각각의 블록 기간에서 상기 노드(N(m))에 의해 반복되는 것이 바람직하다. 그러므로, 각각의 블록 기간에서, 상기 노드(N(m))는 상기 선행처리 노드(N(m'))로부터 토큰을 수신하고 상기 후행처리 노드(들)에 제공되는 토큰을 생성한다. 바람직하게는, 각각의 블록 기간에서, 이전의 블록 기간에서 생성된 토큰이 현재의 블록 기간에서 생성된 토큰에 의해 중복기록된다. 실제로, 이전의 블록 기간에서 생성된 토큰에 포함된 정보는 현재의 블록 기간에 필요하지 않다. 이는 토큰 메커니즘을 구현하기 위해 상기 노드(N(m))에서 필요한 저장 자원들의 양을 최소화하는데 유리하다. 변형적으로는, 현재의 블록 기간에서 생성된 토큰은 이전의 블록 기간들의 사전 정의된 개수에서 생성된 토큰들에 추가하여 저장될 수 있다.
이하에서는, 도 10을 참조하여, 단계 50에서 상기 노드(N(m))에 의해 생성된 토큰(Tk(m, n))의 구조가 좀더 구체적으로 설명될 것이다.
상기 토큰(Tk(m, n))은 이하의 것들을 포함하는 것이 바람직하다.
- 상기 토큰(Tk(m, n))을 생성한 노드(N(m))의 식별자를 포함하는 것이 바람직한 라벨(LB). 상기 라벨(LB)은 선택적인 것이며 타입 1, 2, 또는 3의 토큰들에 포함될 수 있다.
- 상기 토큰(Tk(m, n))을 생성한 노드(N(m))의 노드 식별자(Id-N(m)), 즉 식별자(바람직하게는, 호스트네임(hostname)). 상기 노드 식별자(Id-N(m))는 타입 1, 2, 또는 3의 토큰들에 포함되는 것이 바람직하다.
- 입력 인터페이스 식별자(Id-IF), 즉 상기 토큰(Tk(m, n))을 생성한 노드(N(m))에서 상기 패킷들(Pki)이 수신되게 하는 입력 인터페이스의 식별자. 상기 입력 인터페이스 식별자(Id-IF)는 타입 1, 2, 또는 3의 토큰들에 포함되는 것이 바람직하다.
- 위에서 언급한 바와 같이, 상기 노드(N(m))가 상기 토큰(Tk(m, n))을 생성한 시간을 나타내는 타임스탬프(Ts(m, n)). 상기 타임스탬프(Ts(m, n))는 상기 토큰(Tk(m, n))이 현재의 블록 기간에 관련된 정보를 포함하는지를 결정(위에서 설명한 부속-단계들 405-406 참조)하기 위해 상기 후행처리 노드(들)에 의해 사용된다. 상기 타임스탬프(Ts(m, n))는 예컨대 단계 40에서 상기 노드(N(m'))에 의해 송신된 최종 토큰 요구의 질의 시간, 상기 수신된 토큰(Tk(m', n))의 내용을 처리하기 위한 상기 노드(N(m))에서 필요한 처리 시간, 상기 노드(N(m))로부터 상기 선행처리 노드(N(m'))로의 상기 링크(L(m', m))를 통한 토큰 요구의 전파 시간, 및 상기 선행처리 노드(N(m'))로부터 상기 노드(N(m))로의 상기 링크(L(m', m))를 통한 토큰((Tk(m', n)))의 전파 시간에 의존할 수 있다.
- 흐름 식별자(Id-F), 즉 상기 토큰(Tk(m, n))에 포함된 정보가 관련되어 있는 패킷들(Pki)의 흐름의 식별자. 멀티캐스트 분산의 경우에, 상기 흐름 식별자(Id-F)는 상기 패킷들(Pki)에 연관된 멀티캐스트 그룹의 식별자를 포함하는 것이 바람직하다. 상기 흐름 식별자(Id-F)는 타입 1, 2, 또는 3의 토큰들에 포함되는 것이 바람직하다.
- 현재의 블록 기간(n)에서 상기 노드(N(m))에 의해 계산된 수신된 패킷들의 개수(Pkt(m, n)). 수신된 패킷들의 개수(Pkt(m, n))는 (타입 2의 토큰들에 포함되지 않고) 타입 1 및 3의 토큰들에 포함되는 것이 바람직하다.
- 상기 현재의 블록 기간(n)에서 상기 노드(N(m))에 의해 계산된 수신된 바이트들의 개수(B(m, n)). 상기 패킷들(Pki)의 길이가 알려져 있는 경우에 수신된 바이트들의 개수(B(m, n))는 수신된 패킷들의 개수(Pkt(m, n))로부터 획득될 수 있다. 수신된 바이트들의 개수(B(m, n))는 (타입 2의 토큰들에 포함되지 않고) 타입 1 및 3의 토큰들에 포함되는 것이 바람직하다.
- 현재의 블록 기간(n) 동안 상기 패킷들(Pki)에 적용된 마킹 값(MRK). 상기 마킹 값(MRK)은 (타입 2의 토큰들에 포함되지 않고) 타입 1 및 3의 토큰들에 포함되는 것이 바람직하다.
- 상기 선행처리 노드(N(m'))에 의해 제공된 토큰(Tk(m', n))으로부터 판독되는 바와 같이, 상기 패킷들(Pki)에 의해 이루어지게 되는 경로의 제1, 제2, … 마지막 링크를 통한 데이터 소실에 관련된 정보(InfoDL(1), InfoDL(2), … InfoDL(m')). 각각의 정보(InfoDL(1), InfoDL(2), … InfoDL(m'))는, 상기 링크를 통한 데이터 소실, 상기 링크를 통한 바이트 소실(선택사항임), 상기 링크를 통한 데이터 소실율(선택사항임), 상기 계산들을 수행한 노드의 식별자 및 상기 패킷들(Pki)이 그러한 노드에 수신되게 하는 입력 인터페이스의 식별자를 포함하는 것이 바람직하다. 상기 정보(InfoDL(1), InfoDL(2), … InfoDL(m'))는 (타입 3의 토큰들에 포함되지 않고) 타입 1 및 2의 토큰들에 포함되는 것이 바람직하다.
- 상기 노드(N(m))에 의해 계산된 바와 같이, 상기 노드(N(m)) 및 상기 선행처리 노드(N(m')) 간의 링크(L(m', m))를 통한 데이터 소실에 관련된 정보(InfoDL(m)). 그러한 정보는 상기 링크(L(m', m))를 통한 데이터 소실(DL(m', m, n)) 및 선택적으로는 상기 링크(L(m', m))를 통한 바이트 소실 및 상기 링크(L(m', m))를 통한 데이터 소실율(DLR(m', m, n))을 포함하는 것이 바람직하다. 상기 정보(InfoDL(m))는 상기 노드(N(m))가 DL(m', m, n)을 계산할 수 있는 경우(부속-단계 503의 긍정적인 결과)에 타입 1의 토큰들에 포함되는 것이 바람직하다.
- (예컨대, 테스트 단계 동안 디버깅을 위한) 다른 정보.
상기 토큰(Tk(m, n))은 예를 들어 단순 네트워크 관리 프로토콜(Simple Network Management Protocol; SNMP), 텔넷(Telnet), 단순 파일 전송 프로토콜(Trivial File Transfer Protocol; TFTP)과 같은 공지된 프로토콜에 따라 포맷된 관리 메시지에 삽입될 수 있다. 예를 들어, 상기 토큰(Tk(m, n))은 SNMP 설정(set SNMP) 메시지로서 포맷될 수 있다. 상기 토큰 전환 메커니즘이 백워드 메커니즘인 경우에(즉, 도 7을 참조하여 위에서 구체적으로 설명한 바와 같이, 각각의 노드가 상기 선행처리 노드로부터 토큰을 "풀링"하는 경우에), 상기 토큰 요구는 SNMP 획득(get SNMP) 메시지로서 포맷될 수 있다.
요약하면, 위에서 설명한 데이터 소실 계산 방법은 다수의 이점, 즉 감소된 구현 비용들, 패킷들에 의해 이루어지게 되는 경로 및/또는 네트워크 토폴로지의 변화들에 대한 자기-적응력(self-adaptability), 성능 모니터링 동작들 및 고장 검출 및 관리 동작들의 용이함을 제공한다.
상기 데이터 소실 계산 외에도 또는 상기 데이터 소실 계산에 대한 변형예로서, 상기 방법은 상기 패킷들(Pki)의 흐름 상에서 다른 타입들의 측정들을 수행하기 위해 또한 유리하게 적용될 수 있다. 특히, 상기 방법은 시간 측정들, 예를 들어 지연 측정들 및/또는 지터 측정들을 수행하기 위해 유리하게 적용될 수 있다.
이러한 취지로, 상기 패킷들(Pki)은 위에서 설명한 바와 같이 마킹되는 것이 바람직하다. 상기 노드(N(m))는 위에서 설명한 바와 같이, 상기 패킷의 마킹 값(Va, Vb)에 따라 각각의 패킷(Pki)의 수신시 증가하게 되는 카운터들(Ca(m), Cb(m))을 구현하는 것이 바람직하다. 각각의 카운터(Ca(m), Cb(m))는 대응관계로 개별적인 수신 타임스탬프(Trxa(m), Trxb(m))를 지닌다. 각각의 블록 기간에서, 미리 결정된 패킷(Pki)(예를 들어, 각각의 블록 기간의 제1 패킷)의 수신시, 상기 노드(N(m))는 (상기 패킷이 상기 제1 값(Va)에 의해 마킹되는 경우에) 상기 타임스탬프(Trxa(m))를 현재 시간과 동일하게 설정하거나 (상기 패킷이 상기 제2 값(Vb)에 의해 마킹되는 경우에) 상기 타임스탬프(Trxb(m))를 현재 시간과 동일히게 설정하는 것이 바람직하다.
그리고나서, 각각의 블록 기간에서, 상기 노드(N(m))는 어느 카운터(Ca(m), Cb(m)가 현재 일정한 값을 지니고 있는지를 결정하고, 그러한 카운터에 연관된 수신 타임스탬프(Trxa(m), Trxb(m))와 동일하게 측정 타임스탬프(Trx(m, n))를 설정하는 것이 바람직하다.
상기 노드(N(m))가 현재의 블록 기간(n)에서 상기 선행처리 노드(N(m'))에 의해 생성된 측정 타임스탬프(Trx(m', n))를 알고 있을 수 있는 경우에, 상기 노드(N(m))는 다음과 같은 수학식 [8]
D(m', m, n)= Trx(m, n) - Trx(m', n) [8]
으로서 상기 링크(L(m', m))를 통한 미리 결정된 패킷(Pki)의 지연(D(m', m, n))을 계산할 수 있다.
상기 노드(N(m))가 또한 이전의 블록 기간(n-1)에서 상기 선행처리 노드(N(m'))에 의해 생성된 측정 타임스탬프(Trx(m', n-1))를 알고 있을 수 있는 경우에, 상기 노드(N(m))는 다음과 같은 수학식 [9]
J(m', m, n) = [Trx(m, n) - Trx(m', n)]- [Trx(m, n-1) - Trx(m', n-1)] [9]
로서 상기 패킷들(Pki)의 지터(J(m', m, n))를 계산할 수 있다.
위의 수학식들은 상기 노드(N(m)) 및 상기 선행처리 노드(N(m'))가 동기된 클록들을 지니는 경우에 적용될 수 있다.
각각의 블록 기간에서, 상기 노드(N(m))는 이때 (아마도 상기 데이터 소실 계산에 관련된 위에서 설명한 정보에 추가하여) 시간 측정들, 즉 측정 타임스탬프 및 계산된 지연 및/또는 지터에 관련된 정보를 또한 포함하는 토큰(Tk(n, m))을 생성할 수 있다. 이는 위에서 설명한 데이터 소실 측정들과 마찬가지로, 상기 패킷들(Pki)의 경로를 따라 각각의 노드에 의해 수행되는 시간 측정을 전파하는 것을 허용한다.
시간 측정들을 수행하는 그러한 방법에 의해 달성되는 이점들은 기본적으로 상기 데이터 소실 계산 방법, 즉 감소된 구현 비용들, 패킷들에 의해 이루어지게 되는 경로 및/또는 네트워크 토폴로지의 변화들에 대한 자기-적응력, 성능 모니터링 동작들 및 고장 검출 및 관리 동작들의 용이함과 동일한 것이다.

Claims (17)

  1. 통신 네트워크(CN)의 노드(N(m))에서 데이터 흐름에 대한 측정을 수행하는 방법으로서, 상기 데이터 흐름은 상기 노드(N(m))를 포함하는 송신 경로를 따라 전송되고, 상기 데이터 흐름은 데이터 단위들(Pki)을 포함하며, 상기 데이터 단위들(Pki)은 제1 마킹 값(Va)에 의해 마킹되는 제1 블록 기간들(n-2, n) 동안 전송되는 데이터 단위들(Pki) 및 제2 마킹 값(Vb)에 의해 마킹되는 제2 블록 기간들(n-1, n+1) 동안 전송되는 데이터 단위들(Pki)을 포함하고, 상기 제1 블록 기간들(n-2, n)은 상기 제2 블록 기간들(n-1, n+1)과 시간에 맞춰 번갈아 나오게 되는, 데이터 흐름에 대한 측정을 수행하는 방법에 있어서,
    상기 데이터 흐름에 대한 측정을 수행하는 방법은,
    상기 노드(N(m))에서, 현재의 블록 기간(n) 동안,
    a) 이전의 블록 기간(n-1) 동안 상기 노드(N(m))에서 수신된 상기 데이터 단위들(Pki)에 관련된 제1 매개변수(Pkt(m, n))를 결정하는 단계;
    b) 상기 이전의 블록 기간(n-1) 동안 상기 노드(N(m))에 전송된 데이터 단위들(Pki)에 관련된 제2 매개변수(Pkt(m', n))를 포함하는 제1 데이터 구조(Tk(m', n))를 상기 송신 경로의 부가적인 노드(N(m'))로부터 수신하는 단계;
    c) 상기 데이터 흐름(Pki)에 대한 상기 측정의 결과(DL(m', m, n))를 제공하기 위해 상기 제1 매개변수(Pkt(m, n)) 및 상기 제2 매개변수(Pkt(m', n))를 처리하는 단계; 및
    d) 상기 제1 매개변수(Pkt(m, n))를 포함하는 제2 데이터 구조(Tk(m, n))를 상기 송신 경로의 다른 부가적인 노드에 전송하는 단계;
    를 포함하는, 데이터 흐름에 대한 측정을 수행하는 방법.
  2. 제1항에 있어서, 상기 단계 d)는 상기 데이터 흐름(Pki)에 대한 상기 측정의 상기 결과(DL(m', m, n))를 또한 상기 제2 데이터 구조(Tk(m, n))에 삽입하는 단계를 더 포함하는, 데이터 흐름에 대한 측정을 수행하는 방법.
  3. 제1항 또는 제2항에 있어서, 상기 제1 데이터 구조(Tk(m', n))는 상기 부가적인 노드(N(m'))에 의해 계산된 바와 같은 상기 데이터 흐름에 대한 상기 측정의 부가적인 결과를 또한 포함하는, 데이터 흐름에 대한 측정을 수행하는 방법.
  4. 제3항에 있어서, 상기 단계 d)는 상기 부가적인 노드(N(m'))에 의해 계산된 바와 같은 상기 데이터 흐름에 대한 상기 측정의 상기 부가적인 결과를 또한 상기 제2 데이터 구조(Tk(m, n))에 삽입하는 단계를 더 포함하는, 데이터 흐름에 대한 측정을 수행하는 방법.
  5. 제1항 내지 제4항 중 어느 한 항에 있어서,
    - 상기 제1 매개변수(Pkt(m, n))는 상기 이전의 블록 기간(n-1) 동안 상기 노드(N(m))에서 수신된 데이터 단위들(Pki)의 제1 개수를 나타내고,
    - 상기 제2 매개변수(Pkt(m', n))는 상기 이전의 블록 기간(n-1) 동안 상기 노드(N(m))에 전송되는 데이터 단위들(Pki)의 제2 개수를 나타내며, 그리고
    - 상기 데이터 흐름(Pki)에 대한 상기 측정의 상기 결과(DL(m', m, n))는 상기 이전의 블록 기간(n-1) 동안 상기 부가적인 노드(N(m'))로부터 상기 노드(N(m))로의 전송시 소실된 데이터 단위들(Pki)의 제3 개수를 나타내는, 데이터 흐름에 대한 측정을 수행하는 방법.
  6. 제5항에 있어서, 상기 데이터 흐름에 대한 측정을 수행하는 방법은 상기 노드(N(m))에서 상기 제2 블록 기간들(n-1, n+1) 동안, 상기 제2 마킹 값(Vb)에 의해 마킹된 각각의 데이터 단위(Pki)의 수신시 제1 카운터(Cb(m))를 증가시키는 단계를 포함하며, 상기 단계 a)는 상기 카운터(Cb(m))를 처리함으로써 상기 제1 매개변수(Pkt(m, n))를 결정하는 단계를 포함하는, 데이터 흐름에 대한 측정을 수행하는 방법.
  7. 제6항에 있어서,
    - 상기 단계 a)는 제1 데이터 단위 카운트(C(m, n)) 및 제2 데이터 유닛 카운트(C(m, n-2)) 간의 차로서 상기 제1 매개변수(Pkt(m, n))를 결정하는 단계를 포함하며, 상기 제1 데이터 단위 카운트(C(m, n))는 상기 현재의 블록 기간(n) 동안 상기 제1 카운터(Cb(m))에 의해 도달되는 제1 값과 동일하고 상기 제2 데이터 유닛 카운터(C(m, n-2))는 다른 이전의 블록 기간(n-2) 동안 상기 제1 카운터(Cb(m))에 의해 도달되는 제2 값과 동일하고, 그리고
    - 상기 단계 c)는 상기 제2 매개변수(Pkt(m', n)) 및 상기 제1 매개변수(Pkt(m, n)) 간의 차로서 상기 데이터 흐름(Pki)에 대한 상기 측정의 상기 결과(DL(m', m, n))를 제공하는 단계를 포함하는, 데이터 흐름에 대한 측정을 수행하는 방법.
  8. 제7항에 있어서, 상기 단계 a)는,
    - 상기 데이터 흐름이 상기 현재의 블록 기간(n) 동안 그리고 상기 다른 이전의 블록 기간(n-2) 동안 동일한 입력 인터페이스를 통해 상기 노드(N(m))에서 수신되는지를 검사하는 단계;
    - 상기 데이터 흐름이 상기 현재의 블록 기간(n) 동안 그리고 상기 다른 이전의 블록 기간(n-2) 동안 동일한 입력 인터페이스를 통해 상기 노드(N(m))에서 수신되지 않는 경우에, 상기 제1 데이터 단위 카운트(C(m, n))가 결정되지 않을 수 있는 것으로 결정하는 단계;
    - 상기 데이터 흐름이 상기 현재의 블록 기간(n) 동안 그리고 상기 다른 이전의 블록 기간(n-2) 동안 동일한 입력 인터페이스를 통해 상기 노드(N(m))에서 수신되는 경우에, 상기 현재의 블록 기간(n) 동안 상기 제1 카운터(Cb(m))에 의해 도달되는 상기 제1 값과 동일하게 상기 제1 데이터 단위 카운트(C(m, n))를 설정하고 상기 제2 데이터 단위 카운트(C(m, n-2))가 이용가능한지를 검사하는 단계;
    - 상기 제2 데이터 단위 카운트(C(m, n-2))가 이용가능한 경우에, 상기 제1 데이터 단위 카운터(C(m, n)) 및 상기 제2 데이터 단위 카운터(C(m, n-2)) 간의 차로서 상기 제1 매개변수(Pkt(m, n))를 결정하는 단계; 및
    - 상기 제2 데이터 단위 카운트(C(m, n-2))가 이용가능하지 않은 경우에, 상기 제1 매개변수(Pkt(m, n))가 결정되지 않을 수 있는 것으로 결정하는 단계;
    포함하는, 데이터 흐름에 대한 측정을 수행하는 방법.
  9. 제1항 내지 제8항 중 어느 한 항에 있어서, 상기 단계 b)는 상기 현재의 블록 기간(n)에 포함된 질의 시간(Tq(m, n))에서 상기 제1 데이터 구조(Tk(m', n))를 수신하기 위한 요구를 상기 부가적인 노드(N(m'))에 전송하는 단계를 포함하는, 데이터 흐름에 대한 측정을 수행하는 방법.
  10. 제9항에 있어서, 상기 단계 b)는 상기 블록 기간들의 지속기간(Tb)만큼 지연되는 상기 이전의 블록 기간(n-1) 동안 결정되는 이전의 질의 시간(Tq(m, n-1))과 동일하게 상기 질의 시간(Tq(m, n))을 설정하는 단계를 포함하는, 데이터 흐름에 대한 측정을 수행하는 방법.
  11. 제10항에 있어서, 상기 단계 b)는 사전 정의된 오프셋(Δ(m, n))만큼 상기 질의 시간(Tq(m, n))을 뒤로 보내는 단계를 포함하는, 데이터 흐름에 대한 측정을 수행하는 방법.
  12. 제9항 내지 제11항 중 어느 한 항에 있어서,
    상기 데이터 흐름에 대한 측정을 수행하는 방법은,
    - 상기 단계 b)에서, 상기 제1 데이터 구조(Tk(m', n))가 상기 요구에 응답하여 상기 부가적인 노드(N(m'))로부터 수신되는지를 검사하는 단계;
    - 상기 제1 데이터 구조(Tk(m', n))가 상기 요구에 응답하여 상기 부가적인 노드(N(m'))로부터 수신되지 않는 경우에, 상기 데이터 흐름(Pki)에 대한 상기 측정의 상기 결과(DL(m', m, n))가 제공되지 않을 수 있는 것으로 결정하는 단계;
    - 상기 제1 데이터 구조(Tk(m', n))가 상기 요구에 응답하여 상기 부가적인 노드(N(m'))로부터 수신되는 경우에, 상기 단계 b)에서, 상기 제1 데이터 구조(Tk(m', n))가 상기 이전의 블록 기간(n-1) 동안 상기 노드(N(m))에 전송된 데이터 단위들(Pki)에 관련된 상기 제2 매개변수(Pkt(m', n))를 포함하는지를 검사하는 단계;
    - 상기 제1 데이터 구조(Tk(m', n))가 상기 이전의 블록 기간(n-1) 동안 상기 노드(N(m))에 전송된 데이터 단위들(Pki)에 관련된 상기 제2 매개변수(Pkt(m', n))를 포함하는 경우에, 상기 제1 매개변수(Pkt(m, n))를 사용하여 상기 데이터 흐름(Pki)에 대한 상기 측정의 상기 결과(DL(m', m, n))를 제공하는 단계; 및
    - 상기 제1 데이터 구조(Tk(m', n))가 상기 이전의 블록 기간(n-1) 동안 상기 노드(N(m))에 전송된 데이터 단위들(Pki)에 관련된 상기 제2 매개변수(Pkt(m', n))를 포함하지 않는 경우에, 상기 단계 b)에서, 상기 부가적인 노드(N(m'))에 상기 요구를 재전송하는 단계;
    를 더 포함하는, 데이터 흐름에 대한 측정을 수행하는 방법.
  13. 제1항 내지 제12항 중 어느 한 항에 있어서, 상기 제2 데이터 구조(Tk(m, n))는 상기 노드(N(m))에 저장되는, 데이터 흐름에 대한 측정을 수행하는 방법.
  14. 제1항 내지 제13항 중 어느 한 항에 있어서, 상기 제2 데이터 구조(Tk(m, n))의 내용은 새로운 제2 데이터 구조(Tk(m, n))가 생성되는 경우에 각각의 블록 기간에 중복기록되는, 데이터 흐름에 대한 측정을 수행하는 방법.
  15. 통신 네트워크(CN)용 노드(N(m))로서, 상기 노드(N(m))는 데이터 흐름이 상기 통신 네트워크(CN)를 통해 전송되는 송신 노드에 포함되도록 구성되어 있고, 상기 데이터 흐름은 데이터 단위들(Pki)을 포함하며, 상기 데이터 단위들(Pki)은 제1 마킹 값(Va)에 의해 마킹되는 제1 블록 기간들(n-2, n) 동안 전송되는 데이터 단위들(Pki) 및 제2 마킹 값(Vb)에 의해 마킹되는 제2 블록 기간들(n-1, n+1) 동안 전송되는 데이터 단위들(Pki)을 포함하고, 상기 제1 블록 기간들(n-2, n)은 상기 제2 블록 기간들(n-1, n+1)과 시간에 맞춰 번갈아 나오게 되는, 노드에 있어서,
    상기 노드(N(m))는, 현재의 블록 기간(n) 동안,
    a) 이전의 블록 기간(n-1) 동안 상기 노드(N(m))에 수신된 데이터 단위들(Pki)에 관련된 제1 매개변수(Pkt(m, n))를 결정하도록 구성되어 있고,
    b) 상기 이전의 블록 기간(n-1) 동안 상기 노드(N(m))에 전송되는 데이터 단위들(Pki)에 관련된 제2 매개변수(Pkt(m', n))를 포함하는 제1 데이터 구조(Tk(m', n))를 상기 송신 경로의 부가적인 노드(N(m'))로부터 수신하도록 구성되어 있으며,
    c) 상기 데이터 흐름(Pki)에 대한 상기 측정의 결과(DL(m', m, n))를 제공하기 위해 상기 제1 매개변수(Pkt(m, n)) 및 상기 제2 매개변수(Pkt(m', n))를 처리하도록 구성되어 있고, 그리고
    d) 상기 제1 매개변수(Pkt(m, n))를 포함하는 제2 데이터 구조(Tk(m, n))를 상기 송신 경로의 다른 부가적인 노드에 전송하도록 구성되어 있는, 노드.
  16. 청구항 제15항에 따른 노드(N(m))를 포함하는 통신 네트워크(CN).
  17. 적어도 하나의 컴퓨터의 메모리에 로드가능한 컴퓨터 프로그램 제품으로서, 상기 컴퓨터 프로그램 제품이 컴퓨터상에서 실행될 때 청구항 제1항 내지 제14항 중 어느 한 항의 방법의 단계들을 수행하는 소프트웨어 코드 부분들을 포함하는 컴퓨터 프로그램 제품.
KR1020147009459A 2011-09-19 2011-09-19 통신 네트워크에서의 데이터 흐름에 대한 측정 KR101862326B1 (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/EP2011/066236 WO2013041120A1 (en) 2011-09-19 2011-09-19 "measurement on a data flow in a communication network"

Publications (2)

Publication Number Publication Date
KR20140080494A true KR20140080494A (ko) 2014-06-30
KR101862326B1 KR101862326B1 (ko) 2018-05-29

Family

ID=44651839

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020147009459A KR101862326B1 (ko) 2011-09-19 2011-09-19 통신 네트워크에서의 데이터 흐름에 대한 측정

Country Status (5)

Country Link
US (1) US9800487B2 (ko)
EP (1) EP2781056B1 (ko)
KR (1) KR101862326B1 (ko)
CN (1) CN103959713B (ko)
WO (1) WO2013041120A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160079371A (ko) 2014-12-26 2016-07-06 주식회사 엔에스텍 동물 기피제 조성물 및 그 제조방법

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103262471B (zh) * 2010-11-05 2015-12-16 意大利电信股份公司 通信网络和对通信网络中的数据流执行测量的方法
US9456061B2 (en) * 2012-08-15 2016-09-27 International Business Machines Corporation Custom error page enabled via networked computing service
JPWO2017094166A1 (ja) * 2015-12-03 2018-09-20 ハリマ化成株式会社 導電性ペーストの製造方法
US10574555B2 (en) * 2016-01-28 2020-02-25 Arista Networks, Inc. Network data stream tracer
JPWO2018163556A1 (ja) * 2017-03-08 2020-01-09 日本電気株式会社 通信ネットワークのための装置及び方法
IT201700081391A1 (it) * 2017-07-18 2019-01-18 Telecom Italia Spa Misura di prestazioni in una rete di comunicazioni
CA3073683C (en) * 2017-08-24 2023-03-07 Siemens Industry, Inc. System and method for qualitative analysis of baseband building automation networks
CN112005527A (zh) * 2018-04-27 2020-11-27 意大利电信股份公司 能够在分组交换通信网络中进行性能测量
IT201800010791A1 (it) * 2018-12-04 2020-06-04 Telecom Italia Spa Misura di prestazioni in una rete di comunicazioni a commutazione di pacchetto

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FI112150B (fi) * 2000-07-24 2003-10-31 Stonesoft Oyj Tietoliikenteen ohjausmenetelmä
US7269138B2 (en) * 2003-06-04 2007-09-11 Motorola, Inc. Distributed MAC protocol facilitating collaborative ranging in communications networks
KR100833510B1 (ko) * 2006-08-03 2008-05-29 한국전자통신연구원 Mpls 네트워크 상에서 oam 성능 감시 패킷을 이용한lsp의 성능 파라미터 측정 방법과 그 장치
US20080159287A1 (en) 2006-12-29 2008-07-03 Lucent Technologies Inc. EFFICIENT PERFORMANCE MONITORING USING IPv6 CAPABILITIES
CN101926154B (zh) * 2008-02-05 2013-07-10 富士通株式会社 帧丢失测定方法、系统以及装置
US8379539B2 (en) * 2008-06-03 2013-02-19 Cardiac Pacemakers, Inc. Methods and systems for providing multiple access within a network
US8910006B2 (en) * 2008-09-12 2014-12-09 Infineon Technologies Ag Systems and methods for regulating delay between network interfaces
CN102308525B (zh) * 2008-12-22 2014-11-26 意大利电信股份公司 通信网络中的数据丢失的测量
FR2947414A1 (fr) * 2009-06-24 2010-12-31 Thomson Licensing Procedes d'emission pour un reseau sans fil et procede de reception correspondant.
WO2011079857A1 (en) 2009-12-29 2011-07-07 Telecom Italia S.P.A. Performing a time measurement in a communication network

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160079371A (ko) 2014-12-26 2016-07-06 주식회사 엔에스텍 동물 기피제 조성물 및 그 제조방법

Also Published As

Publication number Publication date
US9800487B2 (en) 2017-10-24
WO2013041120A1 (en) 2013-03-28
CN103959713B (zh) 2017-12-12
EP2781056A1 (en) 2014-09-24
CN103959713A (zh) 2014-07-30
US20140369218A1 (en) 2014-12-18
KR101862326B1 (ko) 2018-05-29
EP2781056B1 (en) 2019-02-20

Similar Documents

Publication Publication Date Title
KR101862326B1 (ko) 통신 네트워크에서의 데이터 흐름에 대한 측정
EP2374241B1 (en) Measurement of data loss in a communication network
US9699062B2 (en) Performance measurement of a link of a packet-switched communication network
KR102113803B1 (ko) 패킷-교환 통신 네트워크에서의 시간 측정
KR20090100377A (ko) 데이터 네트워크의 성능 레벨 모니터 및 기록 방법
JP5661941B2 (ja) 通信ネットワークにおけるデータ・フローに関する測定
JP5779664B2 (ja) ネットワーク遅延要素の自動取得
US20080225713A1 (en) Source routing approach for network performance and availability measurement of specific paths
EP3398296B1 (en) Performance measurement in a packet-switched communication network
US9762464B2 (en) Measurement on data traffic in a communication network
EP3513529B1 (en) Performance measurement in a packet-switched communication network
JP6740371B2 (ja) 複数地点パケットフローに関する性能測定
EP2957069B1 (en) Method and network entity for evaluating a link between a first network node and a second network node
Matta et al. End-to-end voice over IP quality of service estimation through router queuing delay monitoring

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