KR20150030644A - 최단 경로 결정에서의 타이 브레이킹 - Google Patents

최단 경로 결정에서의 타이 브레이킹 Download PDF

Info

Publication number
KR20150030644A
KR20150030644A KR20147032799A KR20147032799A KR20150030644A KR 20150030644 A KR20150030644 A KR 20150030644A KR 20147032799 A KR20147032799 A KR 20147032799A KR 20147032799 A KR20147032799 A KR 20147032799A KR 20150030644 A KR20150030644 A KR 20150030644A
Authority
KR
South Korea
Prior art keywords
path
identifier
node
ordering
identifiers
Prior art date
Application number
KR20147032799A
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 KR20150030644A publication Critical patent/KR20150030644A/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/12Shortest path evaluation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/20Hop count for routing purposes, e.g. TTL
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/48Routing tree calculation

Landscapes

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

Abstract

복수의 엔드-투-엔드 경로의 각각에 대하여 순서화된 노드 식별자의 세트를 비교함으로써 동일 비용 최단(최저 비용) 경로들 간의 일관된 타이 브레이킹 결정(tie breaking decision)이 달성된다. 대안으로, 트리의 발산 브랜치(diverging branch)의 노드 식별자를 이용하여 동일 비용 경로를 선택함으로써, 최단 경로 트리가 구성됨에 따라, 그때 그때 동일한 결과가 달성될 수 있다. 양 변형은 네트워크에서 최단 경로가 산출되는 곳에 관계없이 동일 비용 경로의 일관된 선택을 가능하게 한다. 이것은 임의의 2개의 노드 사이의 트래픽 플로우가 순방향 및 역방향에서 항상 네트워크를 통해 동일한 경로를 따를 것을 보장한다.

Description

최단 경로 결정에서의 타이 브레이킹{TIE-BREAKING IN SHORTEST PATH DETERMINATION}
본 발명은 이더넷 네트워크 등의 패킷 포워딩 통신 네트워크에서 다수의 가능성 중에서 동일 비용 최단 경로 등의 경로를 일관적으로 선택하는 것에 관한 것이다.
패킷 포워딩 통신 네트워크에서, 노드는 네트워크의 토폴로지에 관하여 학습하고 획득한 토폴로지에 대한 지식에 기초하여 다른 네트워크 노드의 각각으로 트래픽을 어떻게 라우팅할 것인지를 결정할 수 있다. 경로를 선택하는 주요 기반은 노드 간의 홉(hop)의 수에 있어서 또는 노드를 접속하는 링크의 대역폭 등의 임의의 다른 메트릭 또는 그 둘다에 의해 특정될 수 있는 경로 비용이다. OSPF(open shortest path first) 및 IS-IS(Intermediate system-to-intermediate system)이 경로 비용의 각각의 노드의 광고(advertisement)에 기초하여 최단 경로를 확립하는 링크 상태 프로토콜로 널리 사용된다. 이들 프로토콜은 일반적으로 다수의 동일 비용 경로 사이의 타이 브레이킹을 시도하지 않는다. 대신, 몇 개의 동일 비용 경로에 결쳐 트래픽을 확산한다. 확산 알고리즘이 특정되지 않고 라우터마다 다를 수 있다. 대안으로, 다른 라우터에 의해 이루어진 선택과의 일관성을 고려하지 않고 단일 경로의 로컬 선택을 할 수 있다. 결과적으로, 어떤 경우에도, 플로우의 역방향이 순방향에 의해 사용되는 경로를 사용하도록 보증되지 않는다.
MOSPF(multicast open shortest path first) 등의 멀티캐스트 라우팅 프로토콜은 동일한 최단 경로 트리를 구성하는 네트워크 내의 각 라우터에 의존한다. 이러한 이유로, MOSPF는 링크 타입, LAN 대 포인트-투-포인트 및 라우터 식별자에 기초하여 타이 브레이킹 방식을 구현하여 동일한 트리가 생성되도록 보장한다. 그러나, 타이 브레이킹 결정이 가장 큰 식별자를 갖는 부모에 기초한다는 것은 일반적으로 역방향 플로우에 의해 사용되는 경로가 순방향 플로우에 의해 사용되는 경로와 동일하지 않다는 것을 암시한다.
STP(spanning tree protocol), RSTP(rapid spanning tree protocol), MSTP(multiple spanning tree protocol)는 임의의 토폴로지에 루프-프리 스패닝 트리를 생성하는 방법이다. 스패닝 트리 프로토콜은 네트워크 내의 각각의 노드에 의해 수행된다. 모든 스패닝 트리 프로토콜은 (브리지 식별자, 포트 식별자)에 기초한 로컬 타이 브레이킹 결정을 이용하여 동일 비용 경로 간의 선택을 한다. 스패닝 트리에서, 루트 노드가 먼저 선출되고, 그 후, 그 루트에 대하여 모든 노드에 의해 트리가 구성된다. 그러면, 모든 경로가 왕복 트래픽에 대하여 대칭이지만(정의에 의해, 간단한 트리는 이러한 가능한 유일한 구성을 만든다), 선출 프로세스는 느리고 간단한 트리 구조는 임의의 리던던트 용량을 사용할 수 없다. 마찬가지로, 라디아 펄만의 알브리지(Radia Perlman's Rbridges) 제안은 타이 브레이커로서 부모 노드의 식별자를 이용한다.
IEEE 802.1 워킹 그룹에 대한 최단 경로 브리징 제안에서의 믹 시맨(Mick Seaman)(http://www.ieee802.org/1/files/public/docs2005/new-seaman-shortest-path-0305-02.pdf)는 "커트 벡터(cut vector)"를 더함으로써 일관된 타이 브레이킹 결정을 실시하는 고속 스패닝 트리 프로토콜에 대한 간단한 프로토콜 향상을 기술한다. 제안은 노드마다 VID를 사용하여 노드마다 스패닝 트리를 식별한다. 단일 합법 이더넷 프레임 내의 브리지에 의해 송신될 필요가 있는 모든 정보를 맞추기 위하여, 이 기술은 현재 이더넷 네트워크 크기를 32개의 브리지로 제한한다.
도 1은 사소한 네트워크 예에 대해서도, 부모 노드 식별자에 기초한 타이 브레이킹 방법이 대칭 경로의 생성을 어떻게 실패하는지를 나타낸다. 이 예에서, 링크는 동일 비용을 갖는 것으로 간주하고 경로 비용의 결정은 단순히 홉(hop)의 수를 고려한다. 먼저 A로부터 B로의 경로를 계산하는 것을 고려한다. 계산이 노드(2)에 도달하면, 동일 비용 경로의 존재가 발견될 것이다. 제1 경로(A-1-3-6) 및 제2 경로(A-1-4-5)가 존재한다. 타이 브레이킹 알고리즘이 가장 작은 식별자를 갖는 부모 노드에 기초하여 경로를 선택하면, 노드 식별자(5)가 노드 식별자(6)보다 작기 때문에 제2 경로(A-1-4-5)가 선택될 것이다. 그러나, B로부터 A로의 경로 계산을 고려한다. 계산이 노드(1)에 도달하면, 동일 비용 경로의 존재가 발결될 것이다. 제1 경로(B-2-6-3) 및 제2 경로(B-2-5-4)가 존재한다. 동일한 타이 브레이킹 기준을 이용하여, 노드 식별자(3)가 노드 식별자(4)보다 작기 때문에 타이 브레이킹 알고리즘은 제1 경로(B-2-6-3)를 선택한다. 그래서, 노드(A 및 B)에 의해 이루어진 최단 경로 계산은 모순되는 결과를 제공하는 것을 알 수 있다.
유니캐스트 및 미지/멀티캐스트 트래픽 양자에 대한 네트워크를 통한 포워딩의 일치성을 보존하고 플로우의 순방향 및 역방향 양자에서 공통 경로를 이용하기 위하여 PLSB(provider link state bridging), IEEE 802.1aq에 대한 제안 등의 임의의 신흥 프로토콜에 있어서 요구사항이 존재한다. 따라서, 동일 비용 경로 사이의 타이 브레이킹 시 노드가 일관적으로 동일한 결정에 도달할 수 있는 것이 중요하다. 또한, 노드가 최소의 처리 노력으로 타이 브레이킹을 수행할 수 있는 것이 바람직하다.
발명의 개요
본 발명의 제1 형태는 패킷 포워딩 네트워크의 제1 노드에서 패킷을 포워딩하는데 사용되는 포워딩 정보를 결정하는 방법을 제공한다. 방법은 네트워크의 제1 노드 및 제2 노드 사이의 최단 경로를 결정하고 복수의 최단 경로가 실질적으로 동일 비용을 가질 때를 결정한다. 방법은, 각각의 실질적 동일 비용 경로에 대하여, 경로 내의 노드 세트를 정의하는 노드 식별자 세트를 형성하고 제1 순서화 기준을 이용하여 각각의 노드 식별자 세트를 순서화하여 경로 식별자를 형성한다. 제1 순서화 기준은 경로 내에서 노드 식별자가 나타나는 순서와 독립적이다. 방법은 경로 식별자를 비교함으로써 복수의 동일 비용 경로 중에서 선택한다. 네트워크의 각각의 노드는 고유 노드 식별자를 갖는다.
유리하게, 제1 순서화 기준은 증가하는 사전적 순서화 또는 감소하는 사전적 순서화지만 완전히 순서화된 노드 식별자 세트를 생성하는 임의의 순서화 기준이 사용될 수 있다.
바람직하게, 방법은 또한 제2 순서화 기준을 이용하여 복수의 경로 식별자를 순서화된 리스트로 순서화하는 것을 포함한다. 마찬가지로, 제2 순서화 기준은 증가하는 사전적 순서화, 감소하는 사전적 순서화 또는 완전히 순서화된 경로 식별자 세트를 생성하는 임의의 순서화 기준일 수 있다.
본 발명의 다른 형태는 패킷 포워딩 네트워크의 제1 노드에서 패킷을 포워딩하는데 사용되는 포워딩 정보를 결정하는 방법을 제공한다. 방법은 최단 경로 트리를 반복적으로 형성함으로써 네트워크의 제1 노드 및 제2 노드 간의 최단 경로를 결정하는 단계 및 최단 경로 트리를 형성하면서 복수의 경로가 동일 비용을 가질 때를 결정하는 단계를 포함하고, 각각의 동일 비용 경로는 동일 비용 경로에 공통인 발산 노드로부터 발산하는 브랜치를 포함한다. 방법은, 각각의 발산 브랜치에서 제1 선택 기준을 이용하여 노드 식별자를 식별하여 브랜치 식별자를 형성하고 브랜치 식별자를 비교함으로써 복수의 브랜치 중에서 선택한다.
유리하게, 방법은 사전적 순서화 등의 전체 순서화 기준을 이용하여 각각의 브랜치에서 노드 식별자를 비교하고 선택한다.
유리하게, 방법은 발산 노드로 백트랙킹하면서 발산 브랜치의 각각에서 제1 선택 기준을 충족하는 노드 식별자를 기록한다. 이것은 계산을 더 간략화하고 저장 요구사항을 감소시키는 이점을 갖는다.
본 발명의 양 형태는 상이한 제1 순서화/선택 기준 및 공통 제2 순서화/선택 기준을 이용함으로써 또는 공통 제1 순서화/선택 기준 및 상이한 제2 순서화/선택 기준을 이용함으로써 2개의 동일 비용 경로를 선택하는데 사용될 수 있다. 노드에서 제1 및 제2 순서화/선택 기준을 일관되게 적용하고 순서화된 리스트 내의 특정 위치에서 식별자를 선택함으로써, 3 또는 4개의 동일 비용 경로가 유사한 방식으로 선택될 수 있다.
본 발명은, 복수의 엔드-투-엔드 경로의 각각에 대한 순서화된 노드 식별자 세트를 비교함으로써 동일 비용 경로 중에서 선택하는 타이 브레이커로서 사용될 수 있다. 대안으로, 트리의 발산 브랜치의 노드 식별자를 이용하여 동일 비용 경로를 선택함으로써 선택 결정이 이루어질 필요가 있는 곳에 로컬로 최단 경로 트리가 구성됨에 따라 그때 그때 동일한 결과가 달성될 수 있음을 알았다. 이것은 계산량을 감소시키고 저장될 필요가 있는 데이터의 양을 감소시키는 이점을 갖는다. 브랜치는 쌍으로 비교되어 계산량을 더 감소시킬 수 있다. 이것은 특히 네트워크의 사이즈 및 복잡도가 증가함에 따라 특히 중요해진다. 본 발명의 양 변형은 네트워크 내에서 최단 경로가 산출되는 곳에 관계없이 동일 비용 경로에 대한 일관된 선택을 허용하는 중요한 특성을 갖는다. 이것은 순방향 및 역방향의 임의의 2개의 노드 사이의 트래픽 플로우가 항상 네트워크를 통해 동일한 경로를 따르는 것을 보장한다.
본 발명은 최단 경로를 결정하는 임의의 특정한 방식으로 제한되는 것으로 의도되지 않는다: 즉, 다익스트라 알고리즘, 플로이드 알고리즘 또는 임의의 다른 적절한 대안이 사용될 수 있다.
본 발명은 정확하게 동일한 값을 갖는 동일 비용 경로 또는 링크 메트릭 또는 홉의 수에 대하여 둘 다 서로 원하는 오프셋 내에 있는 경로 간의 타이 브레이커로서 사용될 수 있다. 이것은 실제 상황에서 적격의 경로 세트 사이의 다양성을 증가시키는 것이 바람직할 수 있다. 예를 들어, 임의의 2개의 엔드 포인트 사이에서 정확하게 동일 비용을 달성하는데 일반적으로 요구되는 대칭 방식으로 노드 및 링크를 배치하는 것이 비용면에서 항상 효율적이지는 않을 수 있다. 상이한 루트(route) 상의 홉 카운트가 서로의 하나의 홉 내에 있다는 것을 요구하는 제한을 완화함으로써, 보통의 비대칭은 여전히 적격의 루트(route)를 초래할 수 있고, 2개의 홉의 차가 루핑 경로를 달성하는데 필요한 최소이기 때문에, 루프 프리 토폴로지는 여전히 보증된다.
"최단 경로"라는 용어는 단지 거리에 기초하여 경로를 결정하는 것으로 제한되지 않고 링크의 "비용"을 특정하는데 사용될 수 있는 임의의 메트릭 또는 메트릭 조합을 포함하는 것으로 의도됨을 이해할 것이다. 메트릭의 비완전(non-exhaustive) 리스트는 거리, 홉의 수, 용량, 속도, 용도, 이용가능성이다.
방법은 실패한 노드 또는 링크 등의 선택된 경로 상에 있지 않은 네트워크의 일부의 제거에 의해 동일 비용 최단 경로의 선택이 영향을 받지 않는다는 의미에서 안정하다.
유리하게, 네트워크는 이더넷 네트워크이지만, 본 발명은 다른 타입의 패킷 포워딩 네트워크, 특히, 대칭 트래픽 라우팅 경로에 대한 요구사항을 갖는 것에 적용될 수 있다.
여기에 기재된 기능은 소프트웨어, 하드웨어 또는 그 조합으로 구현될 수 있다. 본 발명은 적절하게 프로그래밍된 컴퓨터 또는 임의의 형태의 프로세싱 장치에 의해 구현될 수 있다. 따라서, 본 발명의 다른 형태는 기재된 방법 중의 임의의 것을 구현하는 소프트웨어를 제공한다. 소프트웨어는 전자 메모리 장치, 하드 디스크, 광 디스크 또는 다른 머신 판독가능 저장 매체 상에 저장될 수 있다. 소프트웨어는 머신 판독가능 캐리어 상의 컴퓨터 프로그램 제품으로서 전달되거나 네트워크 접속을 통해 노드에 다운로드될 수 있다.
본 발명의 다른 형태는 기재된 방법의 임의의 것을 수행하도록 구성되는 프로세서를 포함하는 네트워크 노드를 제공한다.
본 발명의 다른 형태는 기재된 방법을 각각 일관되게 적용하여 동일 비용 경로 중에서 선택하는 노드의 네트워크를 제공한다.
본 발명의 실시예는 첨부된 도면을 참조하여 단지 예로서 기술한다.
도 1은 동일 비용 경로를 갖는 네트워크 토폴로지를 나타내는 도면.
도 2는 본 발명이 구현될 수 있는 패킷 포워딩 네트워크의 예를 나타내는 도면.
도 3은 도 2의 브리징 노드 중의 하나에서의 장치를 개략적으로 나타내는 도면.
도 4는 최단 경로의 로컬러티(locality)를 나타내는 도면.
도 5는 타이 브레이킹 결정의 로컬러티를 나타내는 도면.
도 6 내지 8은 최단 경로의 산출을 나타내는 예시적인 네트워크 토폴리지를 나타내는 도면.
도 9는 최단 경로의 산출을 나타내는 추가의 예시적인 네트워크 토폴리지를 나타내는 도면.
도 10 내지 12는 도 9에 도시된 네트워크 토폴로지의 최단 경로 산출의 타이 브레이킹 단계를 나타내는 도면.
도 13은 메쉬 네트워크 상으로의 듀얼 홈 노드의 예를 나타내는 도면.
도 14는 향상된 타이 브레이킹 기술이 노드마다 일관된 결과를 제공하는데 필요할 수 있는 동일 비용 경로의 예를 나타내는 도면.
도 2는 본 발명이 구현될 수 있는 링크 상태 프로토콜 제어 이더넷 네트워크(10)의 예를 나타내고, 도 3은 노드(41-48) 중의 하나에서의 장치를 개략적으로 나타낸다. 메쉬 네트워크를 형성하는 노드(또한 브리지 또는 브리징 노드라 한다)(41-48)는 서로 링크 상태 광고를 교환한다(56). 이것은 링크 상태 라우팅 시스템의 잘 이해되는 메카니즘을 통해 달성된다. 라우팅 시스템 모듈(51)은 링크 상태 라우팅 프로토콜을 이용하여 네트워크 토폴로지에 관한 정보를 네트워크 내의 피어 노드와 교환한다(56). 이러한 정보의 교환은 노드가 네트워크 토폴로지의 동기화된 관점(synchronized view)을 생성하도록 한다. 각각의 노드에서, 최단 경로 결정 모듈(52)은 최단 경로 트리를 산출하고 이는 서로의 노드로의 최단 경로를 결정한다. 모듈(52)에 의해 결정된 최단 경로는, 포워딩 정보 베이스(54)를 네트워크를 통해 트래픽을 전달하는 엔트리로 채우는데 사용된다. 이하에서 더 상세히 설명하는 바와 같이, 모듈(52)이 다수의 동일 비용 경로를 대면할 때 상황이 발생할 것이다. 타이 브레이킹 모듈(53)은 일관된 방식으로 하나(이상)의 동일 비용 경로를 선택한다. 정상 동작에서, 노드에서 패킷이 수신되고(57) 목적지 룩업 모듈(55)은 FIB(54)를 이용하여 수신된 패킷이 포워딩되어야 하는 포트(58)(또는 멀티캐스트 분배의 경우 다수의 포트)를 결정한다. FIB(54)에 유효 엔트리가 없으면, 패킷은 폐기될 수 있다. 도 3에 도시된 모듈은 단지 설명의 목적을 위한 것이며 당업자에 의해 이해되는 바와 같이 노드의 모듈 간의 기능 결합 또는 분배에 의해 구현될 수 있음을 인식할 것이다.
다양한 최단 경로 알고리즘은 주어진 노드가 주어진 브리지 쌍 간의 최단 경로 상에 있는지를 결정하는데 사용될 수 있다. 플로이드 알고리즘[R. Floyd: Algorithm 97(최단 경로, Communications of the ACM, 7:345, 1962] 또는 다익스트라 단일 소스 최단 경로 알고리즘(E. W. Dijkstra: A note on two problems in connexion with graphs, Numerical Mathematics, 1:269-271, 1959] 등의 모든-쌍 최단 경로 알고리즘은 노드(41-48)에서 구현되어 노드 쌍 간의 최단 경로를 계산할 수 있다. 임의의 적절한 최단 경로 알고리즘이 또한 이용될 수 있음을 이해할 것이다. 최단 경로 알고리즘에 의해 사용된 링크 메트릭은 트래픽 엔지니어링 정보를 고려하기 위하여 정적 또는 동적으로 변경될 수 있다. 예를 들어, 링크 메트릭은 용량, 속도, 용도 및 이용가능성 등의 비용의 척도를 포함할 수 있다.
문제점의 서문에 의해, 동일 비용 경로 간의 일관된 결정을 할 수 있는 타이 브레이킹 알고리즘의 요구사항이 먼저 기술된다. 요구사항의 리스트는 이하의 표 1에 정리된다.
Figure pct00001
타이 브레이킹 알고리즘의 본질은 항상 "작용(work)"하는 것이다. 알고리즘이 제시되는 어떤 경로 세트일지라도, 알고리즘은 항상 오직 하나의 경로를 선택할 수 있어야 한다. 그러므로, 다른 무엇보다도, 타이 브레이킹 알고리즘은 완전해야 한다(1). 일관된 타이 브레이킹을 위해, 알고리즘은 동일 비용 경로를 발견하고 타이 브레이킹이 수행되는 순서와 상관없이 동일한 결과를 생성해야 한다. 즉, 타이 브레이킹 알고리즘은 가환(2) 및 연합(3)이어야 한다. 3개의 경로 사이의 타이 브레이킹이 경로 쌍이 고려되는 순서에 관계 없이 동일한 결과를 생성해야 한다는 요구 사항(3)이 그렇게 명확하지 않고, 그렇더라도 네트워크를 통해 계산 방향에 따라 상이한 순서로 동일 비용 경로를 발견하는 동안 일관된 결과가 절대적으로 필요하다. 타이 브레이킹 알고리즘은 대칭(4)이어야 하고, 즉, 타이 브레이킹 알고리즘은 경로의 방향과 관계없이 동일한 결과를 생성해야 하고, 2개의 노드(A 및 B) 간의 최단 경로는 B 및 A 간의 최단 경로의 역이어야 한다. 마지막으로, 로컬러티는 라우팅 시스템에 의해 이용되는 최단 경로의 가장 중요한 특성이다(5). 로컬러티 특성은 단순히 최단 경로의 서브 경로가 또한 최단 경로라는 것을 말한다. 최단 경로의 겉보기에 사소한 이 특성은 목적지 기반 포워딩을 이용하는 패킷 네트워크에서 중요한 응용성을 갖는다. 이들 네트워크에서, 경로를 따르는 중간 노드에서의 포워딩 결정은 오로지 패킷의 소스 어드레스가 아닌 패킷의 목적지 어드레스에 기초한다. 결과적으로, 포워딩 정보를 생성하기 위하여, 노드는 자신으로부터 다른 모든 노드로의 최단 경로 만을 계산할 필요가 있고, 생성된 포워딩 정보의 양은 네트워크 내의 노드의 수로 이차식이 아닌 선형으로 성장한다. 목적지 기반 포워딩을 가능하게 하기 위하여, 타이 브레이킹 알고리즘은 최단 경로의 로컬러티 특성을 보전해야 하고, 타이 브레이킹 알고리즘에 의해 선택된 최단 경로의 서브 경로는 타이 브레이킹 알고리즘에 의해 선택된 최단 경로이어야 한다.
계산 효율의 고려사항은 타이 브레이킹 알고리즘에 또 다른 하나의 겉보기에 상이한 요구사항을 둔다: 알고리즘은 동일 비용 경로를 발견하자마자 타이 브레이킹 결정을 수행할 수 있어야 한다. 도 4는 이 포인트를 나타낸다. 중간 노드(I)는 2개의 동일 비용 경로(p 및 q)에 의해 노드(A)에 접속되고 다른 동일 비용 경로 쌍(r 및 s)에 의해 노드(B)에 접속된다. 그러므로, 노드(A 및 B) 사이에 4개의 동일 비용 경로가 존재하고, 이들 모두는 노드(I)를 통한다: p+r, p+s, q+r, q+s. A로부터 B로의 최단 경로의 계산이 진행됨에 따라, A 및 I 사이의 동일 비용 서브 경로의 존재를 먼저 발견할 것이다. 이들 2개의 경로의 포워드 지식의 전달을 피하기 위하여, 타이 브레이킹 알고리즘은 제2 동일 비용 최단 서브 경로의 존재를 발견하자마자 그들 중에서 선택할 수 있어야 한다. 중간 노드에서 이루어지는 타이 브레이킹 결정은 궁극적으로 계산의 결과에 영향을 줄 것이다. 노드(A 및 I) 사이의 2개의 서브 경로(p 및 q) 중의 하나를 제거함으로써 알고리즘은 추가의 고려사항으로부터 노드(A 및 B) 사이의 4개의 최단 경로 중의 2개를 제거한다. 마찬가지로, 역 방향으로, 타이 브레이킹 알고리즘은 최종 결정 전에 서브 경로(r 및 s) 중에서 선택할 것이다. 이들 로컬 결정은 서로 일관되어야 하고, 특히, 경로가 동일 방식으로 확장되었다면 2개의 동일 비용 경로 중의 선택은 여전히 동일하게 남아 있어야 한다. 예를 들어, 도 3에 도시된 경우에서, 타이 브레이킹 알고리즘은 다음의 4개의 아이덴티티를 검증해야 한다.
Figure pct00002
동일 비용 최단 경로의 존재시 단일 소스 최단 경로 알고리즘의 매우 효율적인 구현을 생성하는데 이용될 수 있다는 사실에서, 대칭(4) 및 로컬러티(5) 조건은 타이 브레이킹 알고리즘이 일관된 로컬 결정을 수행할 것을 보증하는데 필요하고 충분하다는 것이 밝혀진다.
표 1에 열거된 요구사항의 리스트는 완전한 것으로 의도되지 않고, 표 1에 포함될 수 있는 최단 경로의 다른 특성이 존재한다. 예를 들어, 최단 경로의 일부가 아닌 링크가 그래프로부터 제거되면, 최단 경로가 영향을 받지 않는다. 마찬가지로, 선택된 경로의 일부가 아닌 링크가 그래프로부터 제거되면 및 심지어 이 링크가 알고리즘에 의해 거절된 동일 비용 경로의 일부일 때에도 다수의 동일 비용 경로 간의 타이 브레이킹 알고리즘의 선택은 영향을 받지 않아야 한다.
이하에서, 일관된 타이 브레이킹 알고리즘의 제1 실시예를 설명한다. 이 알고리즘은 각각의 경로에 대한 경로 식별자를 형성함으로써 시작된다. 경로 식별자는 네트워크를 통해 경로가 횡단하는 각각의 노드의 식별자의 순서화 리스트이다. 노드 식별자는 사전적 순서로 정렬된다. 경로 식별자는 순서화된 노드 식별자의 결과적인 연속이다. 도 5는 엔드 노드(A, B) 및 중간 노드(0-9)를 갖는 예시적인 네트워크를 나타낸다. 노드(A 및 B) 사이의 제1 경로(도 6의 상부를 따름)는 노드 식별자(A-0-5-6-1-4-8-B)를 갖는 노드를 횡단한다. 오름차순의 사전적 노드 식별자의 리스트를 순서화한 후에, 경로는 경로 식별자(014568AB)로 표현될 수 있다. 이 구성은 경로 및 그 역이 동일한 경로 식별자를 가질 것을 보장한다. 또한, 알고리즘은 단지 최단 경로 또는 거의 최단 경로만을 다루기 때문에, 2개의 경로, 즉, 직접 경로 및 대응하는 역 경로만이 식별자를 공유할 수 있다. 마지막으로, 타이 브레이킹 알고리즘은 단순히 최단(또는 가장 큰) 경로 식별자를 갖는 경로를 선택한다. 알고리즘은 다음과 같이 요약될 수 있다:
1) 노드 식별자의 세트의 전체 순서화를 달성하는 제1 순서화 기준에 따라 경로 내의 노드의 식별자의 세트를 정렬한다. 선호하는 제1 순서화 기준은 증가 또는 감소하는 사전적 순서이다;
2) 순서화된 노드 식별자의 세트를 연속시켜 경로 식별자를 생성한다;
3) 경로 식별자의 세트의 전체 순서화를 달성하는 제2 순서화 기준에 따라 경로 식별자를 정렬한다. 선호하는 제2 순서화 기준은 증가 또는 감소하는 사전적 순서이다.
4) 정렬된 경로 식별자의 세트의 일단(제1 또는 마지막)에서 경로 식별자가 나타나는 경로를 선택한다. 유리하게, 이 단계는 순서화된 경로 식별자의 세트에서 처음 나타나는 경로 식별자를 선택한다.
동일한 경로를 선택하기 위하여, 이 알고리즘을 수행하는 네트워크 내의 각각의 노드는 동일한 순서화 기준을 일관되게 사용하여 경로 식별자의 세트 내의 동일한 협정 위치에서 경로를 선택한다.
"사전적 순서"라는 용어는 노드 식별자의 세트가 식별자의 사이즈의 순으로 배열되는 것을 의미한다. 그래서, 노드 식별자가 알파벳이면, 노드 식별자의 세트는 A, B, C, D, ... 등의 알파벳 순으로 배열되고, 노드 식별자가 수치이면, 노드 식별자의 세트가 수치의 순으로 배열된다. 명백히, 이 방식은 노드를 라벨링하는 임의의 방식 및 식별자의 타입의 임의의 조합을 수용할 수 있다. 예를 들어, 문자에 대하여 숫자의 순서를 협정함으로써(예를 들어, 먼저 숫자를 순서화하고 그후 문자를 순서화) 숫자 및 문자의 혼합이 순서화될 수 있다. 대안으로, 각각의 문자에는 ASCII(American Standard Code for Information Interchange) 코드가 주어질 수 있고, ASCII 코드는 증가(감소) 순으로 정렬될 수 있다. 각각의 노드는 동일한 규약(convention)을 이용하여 동일한 방식으로 경로의 노드 식별자를 순서화한다. 이 알고리즘은 일관된 결과를 생성하는데, 그 이유는 경로 및 그 식별자 사이(엄격히 말하면 경로 및 그 역으로 이루어진 쌍 사이)의 일대일 맵핑이 존재하고 경로 식별자의 엄격한 순서화가 있기 때문이다.
도 5를 다시 참조하면, 노드(A 및 B) 사이의 상부 경로는 순서화 후에 경로 식별자(014568AB)로 표현된다. 마찬가지로, 노드(A 및 B) 사이의 제2 경로는 노드(A-0-7-9-1-4-8-B)를 횡단하고 이것은 순서화 후에 경로 식별자(014789AB)로 표현될 수 있다. 마지막으로, 노드(A 및 B) 사이의 제3 경로(도 5의 하부를 따름)는 노드(A-0-7-9-2-3-8-B)를 횡단하고, 이것은 순서화 후에 경로 식별자(023789AB)로 표현될 수 있다. 타이 브레이킹 알고리즘은 협정된 방향으로 순서화된 경로 식별자의 각각의 엘리먼트를 비교한다. 이 예에서, 사용될 규약은, 경로 식별자가 특정 방향으로(예를 들어, 좌측에서 우측으로) 비교될 때, 각각의 노드가 순서화된 경로 식별자 중의 최하위를 선택하는 것이다. 3개의 동일 비용 경로에 대하여 순서화된 경로 식별자는
Figure pct00003
이다.
식별자의 좌측 엘리먼트에서 시작하여, 3개의 모든 경로 식별자는 "0"으로 시작한다. 다음 엘리먼트는 "1" 또는 "2"이고, 상부 2개의 식별자만이 더 고려될 필요가 있다. 제4 엘리먼트에 도달하면, "0145..."가 "0147..."보다 작고 따라서, 상부 경로가 선택된다. IS-IS 및 이더넷 내의 실제 노드 식별자는 6개의 8비트 바이트로 구성되고 통상 00-e0-7b-c1-a8-c2 등의 16진 스트링으로서 기입된다. 노드가 일관되게 사용된다면, 노드의 닉네임이 또한 사용될 수 있다.
도 6은 상이한 순서화 기준의 효과를 나타내기 위한 간단한 네트워크 토폴로지를 나타낸다. 2개의 노드(X, Y)는 노드 식별자(1-8)를 갖는 4개의 동일 비용 경로에 의해 접속된다. 이하, 4개의 가능한 옵션이 기술된다.
· 오름차순으로 노드 ID를 정렬하고, 오름차순으로 경로 ID를 정렬하고, 제1 (가장 작은) 경로 ID를 선택한다. 각 경로 내의 노드 식별자가 사이즈의 오름차순으로 순서화되면(예를 들어, 노드(1, 7)를 갖는 상부 경로가 17이 됨), 경로 식별자(17, 28, 35, 46)가 제공된다. 이들 경로 식별자를 사이즈의 오름차순으로 배열하고 순서화된 리스트에서 제1 경로 식별자를 선택하는 것은 노드(1 및 7)를 갖는 제1 (상부) 경로를 선택하는 결과를 갖는다.
· 오름차순으로 노드 ID를 정렬하고, 오름차순으로 경로 ID를 정렬하고 마지막(가장 큰) 경로 ID를 선택한다. 이 옵션은 노드(4 및 6)를 갖는 마지막(하부) 경로를 선택하는 결과를 갖는다.
· 내림차순으로 노드 ID를 정렬하고, 오름차순으로 경로 ID를 정렬하고, 제1 (가장 작은) 경로 ID를 선택한다. 각 경로 내의 노드 식별자를 사이즈의 내림차순으로 순서화하는 것은 경로 식별자(71, 82, 53, 64)를 제공한다. 이들 경로 식별자를 사이즈의 오름차순으로 배열(53, 64, 71, 82)하고 순서화된 리스트에서 제1 (가장 작은)경로 식별자를 선택하는 것은 노드(3 및 5)를 갖는 제3 경로를 선택하는 결과를 갖는다.
· 내림차순으로 노드 ID를 정렬하고, 오름차순으로 경로 ID를 정렬하고 마지막(가장 큰) 경로 ID를 선택한다. 이 옵션은 노드(8 및 2)를 갖는 제2 경로를 선택하는 결과를 갖는다.
이하에서 더 상세히 설명하는 바와 같이, 노드가 다수의 상이한 순서화 및/또는 선택 기준을 적용하여 다수의 동일 비용 경로를 선택하는 것이 바람직한 상황이 존재한다.
지금까지 이 설명에서, 알고리즘은 넌-로컬(non-local)이고 타이 브레이킹이 모든 동일 비용 경로를 찾은 후에 수행되는 것으로 가정한다. 그러나, 이 알고리즘의 로컬 버전은 발산 브랜치(diverging branch) 상의 노드만을 고려함으로써 동일 결과를 생성할 수 있음을 알았다. 실제로, 타이 브레이킹 결과는 단지 발산 브랜치 내의 가장 작은 노드 식별자의 상대적 위치에만 의존한다. 일관된 타이 브레이킹 알고리즘의 제2 실시예는 다음과 같이 요약될 수 있다:
1) 제1 선택 기준을 충족하는 제1 경로의 발산 브랜치에서 노드 식별자를 찾는다. 이것은 제1 경로에 대한 브랜치 식별자로 간주될 수 있다.
2) 제1 선택 기준을 충족한 제2 경로의 발산 브랜치에서 노드 식별자를 찾는다. 이것은 제2 경로에 대한 브랜치 식별자로 간주될 수 있다.
3) 단계 (1) 및 (2)에 의해 선택된 브랜치 식별자에 대하여 동작하는 제2 선택 기준을 이용하여 경로 중의 하나를 선택한다.
제1 선택 기준에 대한 선호 옵션은 사전적 순서(증가 또는 감소하는 사전적 순서) 등의 전체 순서화 방식을 이용하여 노드 식별자가 배열될 때 처음(또는 마지막)인 노드 식별자를 찾는 것이다. 이하에서 설명하는 바와 같이, 브랜치에서 노드 식별자의 총 세트를 컴파일링하고 그 세트를 순서화하는 방식이 필요하지 않다. 대신에, 방식은 사전적 순서의 인지를 이용하여 노드 식별자의 쌍을 반복적으로 비교할 수 있다. 마찬가지로, 제2 선택 기준에 대한 선호 옵션은 사전적 순서(증가 또는 감소하는 사전적 순서) 등의 전체 순서화 방식을 이용하여 브랜치 식별자가 배열될 때 처음(또는 마지막)인 브랜치 식별자를 찾는 것이다.
도 6의 토폴로지를 다시 참조하면, 노드(X 및 Y) 사이의 4개의 동일 비용 경로는 부모 노드(X)로부터의 4개의 동일 비용 발산 브랜치를 나타낼 수 있다. 타이 브레이킹 알고리즘은 4개의 브랜치 중의 하나를 선택할 필요가 있다. 4개의 가능한 옵션이 존재한다.
· 각 브랜치 내에서 가장 작은 노드 ID를 식별한다. 이것은 브랜치 식별자로서 (1, 2, 3, 4)를 초래한다. 그 후, 브랜치 식별자 중 가장 작은 것을 식별한다. 이것은 노드(1 및 7)를 갖는 제1(상부) 경로를 선택하는 결과를 갖는다.
· 각 브랜치에서 가장 작은 노드 ID를 식별한다. 그 후, 브랜치 식별자 중의 가장 큰것을 식별한다. 이 옵션은 노드(4 및 6)를 갖는 마지막(하부) 경로를 선택하는 결과를 갖는다.
· 각 브랜치에서 가장 큰 노드 ID를 식별한다. 이것은 브랜치 식별자로서 (5, 6, 7, 8)을 초래한다. 그 후, 브랜치 식별자 중 가장 작은 것을 식별한다. 이것은 노드(3 및 5)를 갖는 경로를 선택하는 결과를 갖는다.
· 각 브랜치에서 가장 큰 노드 ID를 식별한다. 그 후, 브랜치 식별자 중 가장 큰 것을 식별한다. 이 옵션은 노드(2 및 8)를 갖는 경로를 선택하는 결과를 갖는다.
이하에서 더 상세히 설명하는 바와 같이, 노드가 다수의 상이한 순서화 및/또는 선택 기준을 적용하여 다수의 동일 비용 경로를 선택하는 것이 바람직한 상황이 존재한다.
이 알고리즘은 간단한 비교로 매우 쉽고 효율적으로 구현될 수 있다. 도 7은 다른 네트워크 토폴리지를 나타낸다. 방법의 로컬 버전은 노드(13)에서 시작하고, 노드(15)로부터 안내하는 2개의 발산 경로를 찾도록 진행한다. 방법은 노드(16)까지 2개의 개별 경로를 탐사하고, 여기서 2개의 경로는 다시 수렴한다. 이 포인트에서, 방법은 2개의 경로의 각각에 대하여 노드 식별자를 조사한다. 제1 경로에 대하여, 노드 식별자는 10, 14, 17, 21이고, 제2 경로에 대하여, 노드 식별자는 11, 12, 19, 20이다. 가장 낮은 식별자(10)를 갖는 경로는 상부 경로이다. 경로를 비교하는 2가지 방법이 기술된다. 먼저, 방법은 발산 경로의 각각에 대한 노드 식별자의 리스트를 유지할 수 있고 이들 리스트의 엘리먼트를 비교할 수 있다. 대안으로, 방법은 각 브랜치에서 찾은 가장 낮은 노드 식별자를 따라 단순히 노드(16)로부터 노드(15)를 향하여 백트랙킹될 수 있다. 각각의 후진 단계에서, 방법은 지금까지 찾은 가장 낮은 노드 식별자를 그 단계에서 마주친 새로운 노드 식별자와 비교한다. 가장 낮은 노드 식별자가 저장된다. 방법이 노드(15)까지 백트랙킹되면, 2개의 가장 낮은 값(상부 브랜치에서는 10, 하부 브랜치에서는 11)이 단순히 서로 비교되어 가장 낮은 노드 식별자를 갖는 경로를 찾을 수 있다. 따라서, 상부 경로가 선택된다.
네트워크에서 최단 비용 경로를 찾는 가장 공통적인 알고리즘 중의 하나는 다익스트라 알고리즘[Dijkstra 59]이다. 경로의 길이가 포지티브 홉간 링크 비용의 합으로서 정의되면 그래프 내의 포인트(소스 또는 루트 노드)로부터 모든 가능한 목적지로의 최단 경로를 찾는 문제를 해결한다. 이 문제는 때때로 단일 소스 최단 경로 문제라 한다. 그래프에 대하여, G=(N, L)이고, 여기서, N은 노드의 세트이고 L은 그를 접속하는 링크의 세트이고, 다익스트라 알고리즘은 TENT라 불리우는 우선순위 큐(priority queue)를 사용하여 소스 노드로부터의 거리가 증가하는 순으로 노드를 방문한다. 다익스트라 알고리즘을 구현하는데 필요한 다른 데이터 구조는:
거리: 소스 노드로부터 각각의 노드로의 최단 거리의 최상의 추정치의 어레이
부모: 각 노드에 대한 선임자(predecessor)의 어레이
다음의 텍스트는 기지의 다익스트라 알고리즘을 기술하고 다수의 동일 비용 경로가 발견되면 타이 브레이크를 수행하도록 어떻게 변경되는지를 기술한다. 다익스트라 알고리즘은 가장 공통으로 사용되는 최단 경로 탐색 알고리즘 중의 하나이기 때문에 여기에 기재된다. 그러나, 다른 알고리즘이 동일하게 사용될 수 있음을 인식할 것이다. 초기화 위상은 소스 노드 자체를 제외하고 각 노드의 거리를 무한대로 설정한다. 소스 노드의 거리는 제로로 설정되고 그 부모는 트리의 루트이므로 널(null)로 설정된다. 계산의 시작시, 우선순위 큐는 단지 소스 노드만을 포함한다. 알고리즘이 진행됨에 따라, 소스 노드로부터의 경로를 찾으면, 노드가 우선순위 큐에 추가된다. 노드는, 소스 노드와의 최단 경로를 찾은 후에, 소스 노드로부터의 거리가 증가하는 순으로 우선순위 큐로부터 나온다. 알고리즘은 소스 노드로부터 도달가능한 모든 노드가 우선순위 큐를 통해 순환하였으면 정지한다. 우선순위 큐 TENT가 비지 않으면, 알고리즘은 다음의 단계를 수행한다.
1) 소스 노드에 가장 가까운 TENT 내의 노드(N)을 찾아 TENT로부터 제거한다.
2) N에 접속된 각각의 노드에 대하여, 소스로의 노드의 거리가 N을 그 부모로 만듦으로써 감소되면, 노드의 부모를 N으로 변경하고, 노드의 거리를 새로운 거리로 설정하고 노드를 TENT에 추가한다.
알고리즘의 완료시, 거리(노드)는 소스 노드로부터 노드로의 최단 거리(또는 노드가 소스 노드로부터 도달가능하지 않으면 무한대)를 포함하고, 부모(노드)는 (소스 노드 및 소스 노드로부터 도달가능하지 않은 노드를 제외하고) 스패닝 트리 내의 노드의 선임자를 포함한다. 노드의 부모는 부모의 변경이 실제로 노드의 거리를 감소시키는 경우에만 업데이트된다. 이것은 다수의 동일 비용 최단 경로가 소스 노드 및 임의의 다른 노드 사이에 존재하면 알고리즘의 실행시 직면한 첫번째 것만이 고려될 것이라는 것을 의미한다.
상기 단계는 다익스트라의 알고리즘의 종래의 단계이다. 이 포인트에서, 다익스트라는 일관된 타이 브레이킹 단계를 추가하기 위하여 변경된다. 상기 단계 2는 다음과 같이 변경된다.
2) 노드(N)에 접속된 각각의 노드에 대하여, 다음을 수행한다:
2a) 소스로의 노드의 거리가 N을 그 부모로 만듦으로써 감소되면, 노드의 부모를 N으로 변경하고, 노드의 거리를 새로운 거리로 설정하고, 노드를 TENT에 추가한다.
2b) 소스 노드로의 노드의 거리가 N을 그 부모로 만든 후에 동일하게 남아 있으면, 타이 브레이킹 알고리즘을 인보크하여 노드의 부모가 변경되어야 하는지를 결정한다.
타이 브레이킹 알고리즘은 2개의 발산 브랜치의 수렴점에 도달되면 인보크된다. 예를 들어, 도 7에 도시된 토폴로지를 고려하면, 다익스트라의 알고리즘이 노드(13)로부터 시작되면, 노드(15)(노드(10, 14, 17, 21)를 갖는 상부 브랜치 및 노드(11, 12, 19, 20)를 갖는 하부 브랜치)로부터 안내되는 발산 브랜치를 발견하고, 이들 발산 브랜치는 노드(16)에서 수렴한다. 노드(16)에서 타이 브레이킹 알고리즘이 인보크되어 2개의 브랜치 중에서 선택한다.
이하의 의사 코드는 TENT 세트의 우선순위 큐 구현예를 이용하여 일관된 타이 브레이킹으로 변경된 다익스트라 알고리즘의 구현예를 나타낸다. 엔큐(enqueue) 동작은 2개의 아규먼트(argument), 큐 및 노드를 취하고, 소스 노드로부터의 거리에 따라 적절한 큐 위치에 노드를 놓는다. 디큐(dequeue) 동작은 큐의 헤드에서 큐로부터 노드, 즉, 소스 노드로부터 가장 작은 거리를 갖는 노드를 제거한다.
Figure pct00004
타이 브레이킹 알고리즘은 현재의 부모 및 노드의 새로운 후보 부모로부터 시작하여 발산점까지 2개의 동일 비용 경로를 백트랙킹함으로써 동작한다. 2개의 발산 경로가 상이한 수의 홉을 가질 수 있다는 사실은 미지의 다른 수의 홉에 의해 2개의 경로가 백트랙킹해야 함에 따라 일을 약간 복잡하게 만든다. 이 문제는 동일한 비용을 가질 때 항상 2개의 경로 중의 더 긴 것을 먼저 백트랙킹하거나 동시에 백트랙킹함으로써 해결될 수 있다. 대안으로, 이 어려움은 동일한 수의 홉을 가져야만 2개의 경로가 동일 비용인 것으로 간주되는 것을 보장함으로써 완전히 제거될 수 있다. 이것은 경로 비용에 홉 카운트를 통합하거나 제1 순서 타이 브레이커로서 홉 카운트를 이용함으로써 쉽게 달성된다.
다음의 의사 코드는 2개의 경로가 동일한 수의 홉(및 그들의 발산 브랜치)을 갖는다고 가정한 타이 브레이킹 알고리즘의 구현예를 나타낸다. 타이 브레이킹 기능은 2개의 동일한 경로의 끝에 2개의 노드를 취하고 그들 중의 하나를 반환하여 2개의 경로 중의 어느 것이 선택되는지를 나타낸다.
Figure pct00005
Figure pct00006
알고리즘이 수행될 필요가 있는 빈도는 애플리케이션에 의존한다. PLSB는 모든 쌍 최단 경로(때때로 그 서브세트)를 계산할 필요가 있다. 이 경우, 다익스트라 알고리즘은 네트워크 내의 모든 노드(정확하게 말하면, 1외에 모두)에 대하여 실행될 필요가 있다. 플로이드(Floy)의 알고리즘은 모든 쌍 최단 경로를 계산하여 단 한번만 실행될 필요가 있다. 다른 애플리케이션은 더 작은 수의 경로의 계산만을 요구할 수 있다(예를 들어, 단 하나의 최단 경로가 요구되면, 다익스트라 알고리즘은 소스로서의 경로의 엔드포인트 중의 하나로 단한번만 실행된다).
도 8은 링크에 의해 상호 접속된 노드(A-H, J)의 예시적인 네트워크를 나타낸다. 각각의 링크에 대하여 그 링크와 연관된 메트릭은 링크 상의 정수값으로서 도시된다. 이 네트워크에서 노드(A) 및 노드(B) 사이에 6개의 상이한 동일 비용 최단 경로가 존재한다. 이들은 각각의 길이 및 경로 식별자를 갖는 이하의 표에 도시된다.
Figure pct00007
이들 6개의 경로는 모두 동일한 길이, 즉, 10을 갖는다. 타이 브레이킹 알고리즘의 넌-로컬 버전(non-local version)은 가장 작은 경로 식별자(ABCFH)를 갖는 경로, 즉, 경로(AFCHB)를 선택할 것이다. 이 부분의 나머지는 동일 비용 경로로서 로컬 타이 브레이킹 결정을 함으로써 동일한 결과에 도달하고, 다익스트라 알고리즘의 실행시 서브 경로이 발견된다. 다익스트라 알고리즘은 네트워크 내의 노드에 대한 거리 및 부모(또는 선임자)의 표를 초기화한다. 거리가 제로로 설정된 소스 노드를 제외하고 모든 거리는 초기에 무한대로 설정된다. 부모는 이 단계에서 한정되지 않는다.
Figure pct00008
다익스트라 알고리즘은 또한 소스 노드(A)만을 포함하도록 우선순위 큐를 초기화한다: TENT=[(A, 0)].
다익스트라 루프의 제1 반복은 TENT 내의 최초의 유일한 노드, 즉, 노드(A)를 선택한다. 노드(A)의 이웃의 각각에 대하여, 즉, 노드(F 및 G)에 대하여, 소스로의 거리를 업데이트하고 노드(A)를 그 부모로 만든다. 마지막으로, 이들 2개의 노드가 TENT 우선순위 큐에 추가된다. 다익스트라 알고리즘의 제1 반복 동안, 거리 및 부모의 표는 다음과 같다.
Figure pct00009
제1 반복의 끝에, 우선순위 큐는 TENT=[(G, 1), (F, 2)]이다.
다익스트라 루프의 제2 반복은 우선순위 큐로부터 가장 작은 거리를 갖는 노드, 즉, 노드(G)를 제거한다. 아직 처리되지 않은 G의 이웃 중의 2개, 즉, 노드(C 및 D)를 업데이트하여 우선순위 큐에 추가한다.
Figure pct00010
제2 반복의 끝에, 우선순위 큐는 TENT=[(F, 2), (D, 4), (C, 5)]이다.
다익스트라 루프의 제3 반복은 우선순위 큐로부터 노드(F)를 제거한다. 노드(F)의 2개의 이웃, 즉, 노드(C 및 E)를 업데이트하고 노드(E)를 우선순위 큐에 추가한다(노드(C)는 이미 있다). 노드(C)의 거리는 변경되지 않지만, 노드(A) 및 노드(C) 사이에 노드(F)를 통하는 새로운 후보 동일 경로가 존재한다. 그러므로, 타이 브레이킹 알고리즘이 인보크되어 노드(F)를 통한 새로운 경로 및 노드(G)를 통한 기존의 경로 사이에서 선택해야 한다. 이것은 도 9에 도시된다. 타이 브레이킹 알고리즘은 노드(C), 노드(F)의 새로운 후보 부모 및 기존의 부모, 즉, 노드(G)로 인보크된다. oldMin은 기존의 부모(G)의 식별자로 설정되고, newMin은 새로운 부모(F)의 식별자로 설정된다. 노드(F 및 G)가 동일한 부모(노드(A))를 공유하기 때문에, 백트랙킹 루프가 실행되지 않는다. 타이 브레이킹은 단순히 oldMin 및 newMin을 비교하고, newMin=F<G=oldMin이기 때문에, 노드(F)는 노드(C)의 새로운 부모로서 선택된다.
Figure pct00011
제3 반복의 끝에, 우선순위 큐는 TENT=[((D, 4), (E, 4), (C, 5)]이다.
다익스트라 루프의 제4 반복은 우선순위 큐로부터 거리(4)를 갖는 2개의 노드 중의 하나, 즉, 노드(D)를 제거한다. D의 2개의 이웃 중에서, 단 하나, 즉, 노드(H)가 업데이트되어 우선순위 큐에 추가된다.
Figure pct00012
제4 반복의 끝에, 우선순위 큐는 TENT=[(E, 4), (C, 5), (H, 6)]이다.
다익스트라 루프의 제5 반복은 우선순위 큐로부터 노드(E)를 제거한다. E의 2개의 이웃 중에서, 단 하나, 즉, 노드(J)가 업데이트되어 우선순위 큐에 추가된다.
Figure pct00013
제5 반복의 끝에, 우선순위 큐는 TENT=[(C, 5), (H, 6), (J, 6)]이다.
다익스트라 루프의 제6 반복은 우선순위 큐로부터 노드(C)를 제거한다. C의 이웃 중의 2개의 노드, 즉, 노드(J 및 H)는 노드(C)를 통한 노드(A)로의 동일 비용 경로를 갖는다. 그러므로, 타이 브레킹 알고리즘은 각각 노드(J 및 H)에 대하여 2번 인보크되어야 한다.
노드(J)에 대하여, 타이 브레이킹 알고리즘은 새로운 잠재적인 부모, 즉, 노드(C) 및 기존 부모, 즉, 노드(E)로 인보크된다. oldMin은 기존 부모(E)의 식별자로 설정되고, newMin은 새로운 부모(C)의 식별자로 설정된다. 이들 2개의 노드(E 및 C)가 동일한 부모(노드(F))를 공유하기 때문에 백트랙킹 루프가 실행되지 않는다. 타이 브레이킹은 단순히 oldMin 및 newMin을 비교하고, newMin=C<E=oldMin이기 때문에, 새로운 부모가 선택된다. 그러므로, 노드(J)의 부모는 노드(C)로 대체된다. 이것은 도 10에 도시된다.
노드(H)에 대하여, 타이 브레이킹 알고리즘은 새로운 잠재적인 부모, 즉, 노드(C) 및 기존 부모, 즉, 노드(D)로 인보크된다. oldMin은 기존 부모(D)의 식별자로 설정되고, newMin은 새로운 부모(C)의 식별자로 설정된다. 이들 2개의 노드가 상이한 부모를 갖기 때문에, 양 경로는 하나의 홉만큼 더 백트랙킹되어야 한다. D의 부모는 G이고, G>oldMin(=D)이므로, oldMin은 변하지 않는다. C의 부모는 F이고, F>newMin(=C)이므로, newMin은 변하지 않는다. F 및 G는 동일한 부모, 즉, 노드(A)를 공유하기 때문에, 백트랙킹 루프는 정지한다. 그 후, 타이 브레이킹 알고리즘은 oldMin 및 newMin을 비교하고, newMin=C<D=oldMin이므로, 노드(C)가 선택되어 노드(H)의 새로운 부모가 된다. 이것은 도 11에 도시된다.
Figure pct00014
제6 반복의 끝에, 우선순위 큐는 TENT=[(H, 6), (J, 6)]이다.
다익스트라 루프의 제7 반복은 우선순위 큐로부터 거리(6)를 갖는 2개의 노드 중 하나, 예를 들어, 노드(H)를 제거한다. H의 이웃 중의 하나, node B만 업데이트되어 우선순위 큐에 추가된다.
Figure pct00015
제7 반복의 끝에, 우선순위 큐는 TENT=[(J, 6), (B, 10)]이다.
다익스트라 루프의 제8반복은 우선순위 큐로부터 노드(J)를 제거한다. J의 이웃 중에서, 노드(B)만이 업데이트될 필요가 있다. 그 거리는 변하지 않지만 노드(A) 및 노드(B) 사이에서 노드(J)를 통한 새로운 후보 동일 경로가 존재한다.
타이 브레이킹 알고리즘은 노드(B)의 새로운 잠재적 부모, 즉, 노드(J) 및 기존의 부모, 즉, 노드(H)로 인보크된다. oldMin은 기존 부모(H)의 식별자로 설정되고 newMin은 새로운 부모(J)의 식별자로 설정된다. 이들 2개의 노드(H 및 J)가 동일한 부모(노드(C))를 공유하기 때문에, 백트랙킹 루프가 실행되지 않는다. 타이 브레이킹은 단순히 oldMin 및 newMin을 비교하고, oldMin=H<J=newMin이므로, 기존의 부모가 선택되고 노드(B)의 부모가 동일하게 남아 있다.
Figure pct00016
제8 반복의 끝에, 우선순위 큐는 TENT=[(B, 10)]이다.
마지막으로, 다익스트라 루프의 마지막 반복은 큐로부터 노드(B)를 제거하고, B의 이웃의 어느것도 업데이트될 수 없기 때문에 알고리즘이 종료한다(노드(B)는 소스 노드(A)로부터 가장 먼 노드이다).
노드(A)로부터 노드(B)로의 최단 경로의 역은 노드(A)에 도달할 때까지 노드(B)에서 시작하고 부모를 따르는 표로부터 직접 판독될 수 있다: BHCFA. 로컬 타이 브레이킹 알고리즘에 의해 선택된 노드(A)로부터 노드(B)로의 최단 경로가 그 역 경로(AFCHB)이다.
노드(A 및 B) 사이에 6개의 동일 비용 경로가 존재하지만, 다익스트라 알고리즘의 실행시 로컬 타이 브레이킹은 단지 총 4회 인보크되었다. 그 첫번째 인보크에서, 타이 브레이킹 알고리즘은 서브 경로(AFC 및 AGC) 중에서 선택해야 한다. 서브 경로(AFC)를 선택하여 추가의 고려사항으로부터 2개의 경로(AGCJB 및 AGCHB)를 제거한다. 제2 인보크에서, 타이 브레이킹 알고리즘은 서브 경로(AFCJ 및 AFEJ) 중에서 선택해야 한다. 서브 경로(AFCJ)를 선택하여 추가의 고려사항으로부터 제3 경로(AFEJB)를 제거한다. 제3 인보크에서, 타이 브레이킹 알고리즘은 서브 경로(AGDH 및 AGCH) 중에서 선택해야 한다. 서브 경로(AGCH)를 선택하여 추가의 고려사항으로부터 제4 경로(AGDHB)를 제거한다. 마지막으로, 제4 인보크에서, 타이 브레이킹 알고리즘은 경로(AFCHB 및 AFCJB) 중에서 선택해야 한다. 마지막 솔루션으로서 제5 경로(AFCJB)를 제거하고 경로(AFCHB)를 선택했다.
로드 스프레딩(load spreading)을 위한 동일 비용 다수 경로의 선택
많은 네트워킹 애플리케이션에서, 특히, 일관적인 방식으로 달성될 수 있는 경우 종종 몇 개의 동일 비용 경로를 이용하는 것이 유리하다. 타이 브레이킹 알고리즘의 2개의 변형을 이용함으로써, 존재한다면, 노드 쌍 사이에 2개의 동일 비용 경로를 이용할 수 있다. 도 12는 에지 노드(X 및 Y)가 각각 코어 노드(A, B, C, D)의 전체 메쉬 상에 듀얼 호밍된(dual-homed) 공통 네트워킹 시나리오를 나타낸다. 리던던시를 위하여, 각각의 에지 노드가 2개의 코어 노드에 접속되고, 노드(X)는 코어 노드(A 및 B)에 접속되고 노드(Y)는 노드(C 및 D)에 접속된다. 각각의 코어 노드가 다른 모든 코어 노드에 접속되고, 예를 들어, 노드(A)는 B, C 및 D에 접속된다. 이 토폴로지의 문제점은, 단 하나의 최단 경로가 노드 쌍 사이에 사용되는 경우, 정상 환경에서 다수의 액세스 용량이 낭비될 것이다. 2개의 노드 사이에 다수의 동일 비용 최단 경로가 존재하면, 타이 브레이킹 알고리즘의 2개의 변형이 정확하게 2개의 경로를 일관되게 선택하는데 사용될 수 있다. 모든 노드에 의해 협정된 임의의 규약이 동일 비용 경로 간의 선택에 이용될 수 있다. 특히 편리한 하나의 규약은 가장 작은 식별자를 갖는 제1 경로 및 가장 큰 식별자를 갖는 제2 경로를 선택하는 것이다. 도 12에서, 코어 노드가 완전히 메쉬되므로, 에지 노드(X 및 Y) 사이에 4개의 동일 비용 경로가 존재한다: (X, A, C, Y), (X, A, D, Y), (X, B, C, Y), (X, B, D, Y). 타이 브레이킹 알고리즘의 2개의 변형은 이들 2개의 경로,
(X, min(A, B), min(C, D), Y) 및
(X, max(A, B), max(C, D), Y)
를 선택할 것이다.
노드 식별자가 고유하기 때문에, min(A, B)!=max(A, B) 및 min(C, D)!=max(C, D): 이들 2개의 경로는 최고로 다양하고, 이들은 공통으로 자신의 엔드포인트만을 갖는다. 도 12에서, 2개의 선택된 경로는 (X, A, C, Y) 및 (X, B, D, Y)이다.
상이한 홉 카운트를 갖는 동일 비용 최단 경로에 대한 타이 브레이킹
제2 실시예로서 상술한 로컬 타이 브레이킹 기술의 4개의 변형이 다음의 규칙에 의해 정의된다.
1. 가장 작은 노드 식별자를 포함하는 브랜치를 선택한다.
2. 가장 작은 노드 식별자를 포함하지 않는 브랜치를 선택한다.
3. 가장 큰 노드 식별자를 포함하는 브랜치를 선택한다.
4. 가장 큰 노드 식별자를 포함하지 않는 브랜치를 선택한다.
상술한 바와 같이, 동일하지 않은 수의 노드를 횡단하는 동일 비용 경로에 대하여 4개의 모든 변형이 효과적이다. 그러나, 동일 비용 경로가 상이한 수의 노드를 횡단하면, 제1 실시예로서 상술한 글로벌 타이 브레이킹 기술이 효율적이지 않을 수 있다. 이러한 하나의 상황이 도 14에 도시된다. 링크(A-C, C-B 및 B-D)의 각각에는 1의 비용이 할당되고 링크(A-B)에는 2의 비용이 할당된다. 결과적으로, 경로(A-C-B 및 A-B)는 각각 2의 비용을 갖고 동일 비용 경로이다. 상술한 기술을 이용하여, 경로(A-B)의 식별자(AB)는 경로(A-C-B)의 식별자(ABC)의 앞에서 사전적으로 순서화된다. 그러나, 링크(B-D)를 추가하면, 경로(A-C-B-D 및 A-B-D)의 각각은 3의 비용을 갖고 또한 동일 비용 경로이다. 상술한 기술을 이용하여, 경로(A-C-B-D)의 식별자(ABCD)는 경로(A-B-D)의 식별자(ABD)의 앞에 사전적으로 순서화된다. 경로(A-C-B)를 통해 경로(A-B)를 선택하는 타이 브레이킹 알고리즘은 또한 경로(A-B-D)를 통해 경로(A-C-B-D)를 선택하고, 결과는 상술한 로컬러티 특성과 일관되지 않다.
제1 실시예로서 상술한 글로벌 타이 브레이킹 기술의 4개의 변형은 다음의 규칙에 의해 정의된다.
1. 노드 식별자를 증가하는 순서로 정렬하여 경로 식별자를 형성하고, 경로 식별자를 사전적으로 정렬하고, 정렬된 경로 식별자 중에서 식별자가 첫번째인 경로를 선택한다.
2. 노드 식별자를 증가하는 순서로 정렬하여 경로 식별자를 형성하고, 경로 식별자를 사전적으로 정렬하고, 정렬된 경로 식별자 중에서 식별자가 마지막인 경로를 선택한다.
3. 노드 식별자를 감소하는 순서로 정렬하여 경로 식별자를 형성하고, 경로 식별자를 사전적으로 정렬하고, 정렬된 경로 식별자 중에서 식별자가 첫번째인 경로를 선택한다.
4. 노드 식별자를 감소하는 순서로 정렬하여 경로 식별자를 형성하고, 경로 식별자를 사전적으로 정렬하고, 정렬된 경로 식별자 중에서 식별자가 마지막인 경로를 선택한다.
상기에서 정의된 바와 같이, 글로벌 타이 브레이킹 알고리즘의 변형 3 및 4는 다른 수의 노드를 횡단하는 동일 비용 경로에 대하여 효과적이지만, 변형 1 및 2는 항상 일관된 결과를 제공하는 것은 아니다.
글로벌 타이 브레이킹 기술의 변형 1 및 2는, 동일 비용 경로 중의 하나에 대한 경로 식별자가 동일 비용 경로의 다른 하나에 대한 경로 식별자의 프리픽스(prefix)일 때 적절히 동작하지 않는다. 경로 선택이 수행되기 전에 더 짧은 경로 식별자가 노드 식별자를 다 써버리기 때문에 문제가 발생한다.
이 문제를 해결하기 위하여, 더미 노드 식별자를 추가함으로써 더 짧은 경로 식별자를 덧붙여(pad out) 비교될 모든 동일 비용 경로에 대한 경로 식별자가 동일한 수의 노드 식별자를 갖도록 할 수 있다. 그러나, 덧붙임(padding)은 경로 식별자를 형성하는데 사용되는 순서화 기준과 일치해야 한다.
예를 들어, 모든 동일 비용 경로 식별자가 동일한 길이를 가질 때까지 다른 동일 비용 경로보다 적은 노드를 갖는 경로의 식별자의 트레일링 엔드에 임의의 노드 식별자보다 작은 값이 부여된 널 식별자를 추가하는 것이 자연스러운 것으로 보일 수 있다. 이것은 예를 들어 사전에 단어를 순서화할 때 채택되는 규약이다. 그러나, 이것은 증가하는 값의 순서로 각 경로에서 노드의 식별자를 정렬하는 것과 일관되지 않는다.
경로 식별자를 도출하기 위하여 각각의 경로 내의 노드 식별자가 증가하는 값의 순으로 정렬되면, 모든 동일 비용 경로 식별자가 동일한 길이를 가질 때까지 다른 동일 비용 경로보다 더 적은 노드 식별자를 갖는 경로 식별자의 트레일링 엔드(trailing end)에 임의의 노드 식별자보다 큰 값이 부여되는 특수 식별자가 추가되어야 한다. 대안으로, 모든 동일 비용 경로 식별자가 동일한 길이를 가질 때까지 다른 동일 비용 경로 식별자보다 더 적은 노드 식별자를 갖는 경로 식별자의 리딩 엔드(leading end)에 임의의 노드 식별자보다 작은 값이 부여된 널 식별자가 추가될 수 있다.
마찬가지로, 경로 식별자를 도출하기 위하여 각각의 경로 내의 노드 식별자가 감소하는 값의 순으로 정렬되면, 모든 동일 비용 경로 식별자가 동일한 길이를 가질 때까지 다른 동일 비용 경로보다 더 적은 노드 식별자를 갖는 경로 식별자의 트레일링 엔드(trailing end)에 임의의 노드 식별자보다 작은 값이 부여되는 널 식별자가 추가되어야 한다. 이것은 종래의 사전적 순서화이다. 대안으로, 모든 동일 비용 경로 식별자가 동일한 길이를 가질 때까지 다른 동일 비용 경로 식별자보다 더 적은 노드 식별자를 갖는 경로 식별자의 리딩 엔드(leading end)에 임의의 노드 식별자보다 큰 값이 부여된 특수 식별자가 추가될 수 있다.
요약하면, 상이한 노드를 횡단하는 동일 비용 경로를 처리하기 위하여 일반화된 글로벌 타이 브레이킹 기술의 8개의 변형이 존재한다.
Figure pct00017
경로 식별자를 도출하기 위하여 각 경로 내의 노드 식별자가 증가하는 값의 순으로 정렬될 때 원하는 결과를 달성하는 몇 가지 방법이 존재한다. 예를 들어, 모든 동일 비용 경로 식별자가 동일한 길이를 가질 때까지 특수 식별자를 자신의 트레일링 엔드에 추가함으로써 더 적은 노드 식별자를 갖는 경로 식별자를 덧붙이는 대신에, 경로 식별자를 사전적으로 순서화하기 전에 더 짧은 경로 식별자의 트레일링 엔드에 임의의 노드 식별자보다 큰 값이 부여된 단일 특수 식별자를 추가하는 것으로 충분하다. 동일한 결과를 달성하는 여전히 다른 방법은, 제1 순서화 기준으로서 경로 식별자의 시전적 비교를 수행하지만 사전적 비교에 의해 결정을 내리기 전에 경로 식별자 중의 하나를 다 써버려야만 2차 순서화 기준으로서 홉의 수를 이용하는 것이다. 즉, 경로 식별자 중의 하나가 다른 경로 식별자의 프리픽스이면, 더 긴 식별자를 갖는 경로는 더 짧은 식별자를 갖는 경로 전에 오는 것으로 간주된다. 사전적 비교가 결정하기 전에 경로 식별자 중의 하나를 다 써버리면, 동일 길이 스트링의 사전적 순서화가 1차 순서화 기준으로서 사용되고 경로 식별자의 길이(즉, 경로 내의 홉의 수)가 2차 순서화 기준으로서 사용된다. 이 경우, 더 큰 수의 홉을 갖는 경로가 더 작은 수의 홉을 갖는 경로 전에 오는 것으로 간주된다.
역으로, 모든 동일 비용 경로 식별자가 동일한 경로를 가질 때까지 널 식별자를 자신의 리딩 엔드에 추가함으로써 더 적은 노드 식별자를 갖는 경로 식별자를 덧붙이는 대신, 단순히 더 큰 수의 홉을 갖는 경로 전에 더 작은 수의 홉을 갖는 경로를 순서화하도록 선택할 수 있다. 그러면, 경로 식별자의 사전적 순서화가 동일한 수의 홉을 갖는 경로에 대한 2차 순서화 기준으로서 사용된다. 이 경우, 더 작은 수의 홉을 갖는 경로는 더 많은 수의 홉을 갖는 경로 전에 오는 것으로 간주된다. 경로 식별자의 길이는 1차 순서화 기준으로서 사용되고, 더 적은 홉을 갖는 경로가 항상 더 많은 홉을 갖는 경로 전에 있고, 사전적 순서화는 동일한 수의 홉을 갖는 경로에 대한 2차 순서화 기준으로서 사용된다.
마찬가지로, 경로 식별자를 도출하기 위하여 각 경로 내의 노드 식별자가 감소하는 값의 순으로 정렬될 때 원하는 결과를 달성하는 몇 가지 방법이 존재한다. 예를 들어, 모든 동일 비용 경로 식별자가 동일한 길이를 가질 때까지 널 식별자를 자신의 트레일링 엔드에 추가함으로써 더 적은 노드 식별자를 갖는 경로 식별자를 덧붙이는 대신에, 경로 식별자를 사전적으로 순서화하기 전에 더 짧은 경로 식별자의 트레일링 엔드에 임의의 노드 식별자보다 작은 값이 부여된 단일 널 식별자를 추가하는 것으로 충분하다. 동일한 결과를 달성하는 여전히 다른 방법은, 제1 순서화 기준으로서 경로 식별자의 시전적 비교를 수행하지만 사전적 비교에 의해 결정을 내리기 전에 경로 식별자 중의 하나를 다 써버려야만 2차 순서화 기준으로서 홉의 수를 이용하는 것이다. 즉, 경로 식별자 중의 하나가 다른 경로 식별자의 프리픽스이면, 더 짧은 식별자를 갖는 경로는 더 긴 식별자를 갖는 경로 전에 오는 것으로 간주된다. 사전적 비교가 결정하기 전에 경로 식별자 중의 하나를 다 써버리면, 동일 길이 스트링의 사전적 순서화가 1차 순서화 기준으로서 사용되고 경로 식별자의 길이(즉, 경로 내의 홉의 수)가 2차 순서화 기준으로서 사용된다. 이 경우, 더 작은 수의 홉을 갖는 경로가 더 큰 수의 홉을 갖는 경로 전에 오는 것으로 간주된다.
역으로, 모든 동일 비용 경로 식별자가 동일한 경로를 가질 때까지 특수 식별자를 자신의 리딩 엔드에 추가함으로써 더 적은 노드 식별자를 갖는 경로 식별자를 덧붙이는 대신, 단순히 더 작은 수의 홉을 갖는 경로 전에 더 큰 수의 홉을 갖는 경로를 순서화하도록 선택할 수 있다. 그러면, 경로 식별자의 사전적 순서화가 동일한 수의 홉을 갖는 경로에 대한 2차 순서화 기준으로서 사용된다. 이 경우, 더 큰 수의 홉을 갖는 경로는 더 작은 수의 홉을 갖는 경로 전에 오는 것으로 간주된다. 경로 식별자의 길이는 1차 순서화 기준으로서 사용되고, 더 많은 홉을 갖는 경로가 항상 더 적은 홉을 갖는 경로 전에 있고, 사전적 순서화는 동일한 수의 홉을 갖는 경로에 대한 2차 순서화 기준으로서 사용된다.
상이한 수의 노드를 횡단하는 동일 비용 경로를 처리하도록 일반화된 글로벌 타이 브레이킹 기술의 8개의 변형이, 경로 식별자 뿐만 아니라 경로 식별자의 길이가 경로 식별자의 완전한 순서화를 확립하는데 사용되는 몇 개의 변형된 사전적 순서화에 관하여 표현될 수 있다. 이하의 표 3에서, 1차 순서화 기준으로서 사용되는 사전적 순서화는 전통적인 사전적 순서화의 제한된 버전이며, 하나의 경로 식별자가 다른 경로 식별자의 프리픽스인지를 결정하지 않는다.
Figure pct00018
1차 순서화 기준이 사전적 순서화인 전통적인 사전적 순서화 및 공통 프리픽스를 공유하는 스트링은 변형 3&4에 대응하는 증가하는 길이의 순서로 정렬된다. 변형 1&2는 공통 프리픽스를 공유하는 스트링이 감소하는 길이의 순서로 정렬되는 변형된 사전적 순서에 대응한다. 변형 5-8은 스트링의 길이가 1차 순서화 기준이고 사전적 순서화가 동일 길이의 스트링에 대한 2차 순서화 기준으로서 사용되는 스트링을 순서화하는 방법에 대응한다.
1차 타이 브레이킹 방법으로서의 홉 카운트
상이한 길이의 경로 식별자의 완전한 순서화를 생성하는 프레임워크를 확립하면, 제1 레벨 타이 브레이커로서 홉 카운트, 즉, 경로 식별자의 길이를 이용하는 효과를 설명할 수 있다. 임의의 경우, 경로 식별자의 길이를 이용하여 수행된 제1 타이 브레이킹은 고려사항으로부터 궁극적으로 선택된 경로를 제거하지 않고, 즉, 홉 카운트에 기초한 제1 타이 브레이킹은 최종 결과에 영향을 주지 않는다. 그러나, 제1 레벨 타이 브레이킹이 정상적으로 선택된 경로를 제거하면, 새로운 타이 브레이킹 변형이 얻어진다.
타이 브레이킹의 제1 레벨이 최소 또는 최대수의 홉을 갖는 동일 비용 경로만을 고려함으로써 수행되면, 사전적 순서화가 경로 식별자에 대한 유일한 순서화 기준이기 때문에 변형 1 내지 4는 변형 5-8과 동일한 결과를 생성한다: 타이 브레이킹으로 입력된 동일 비용 경로의 식별자가 모두 동일한 최대 또는 최소 길이를 공유하기 때문에 변형 1-4의 2차 기준 및 변형 5-8의 1차 기준은 모두 무효가 된다. 변형 5&8은 항상 최소수의 홉을 갖는 경로를 선택하고, 그러므로, 최소수의 홉을 갖는 동일 비용 경로를 선택하는 타이 브레이킹의 제1 레벨에 의해 영향을 받지 않는다. 이들은 상술한 제1 실시예의 2개의 변형에 대응한다. 역으로, 타이 브레이킹의 제1 레벨이 변형 6&7 중의 하나가 뒤따르는 최소수의 홉을 갖는 동일 비용 경로를 선택함으로써 수행되면, 제1 실시예의 다른 2개의 변형이 얻어진다. 마찬가지로, 변형 6&7은 항상 최대수의 홉을 갖는 경로를 선택하고, 그러므로, 최대수의 홉을 갖는 동일 비용 경로를 선택하는 타이 브레이킹의 제1 레벨에 의해 영향을 받지 않는다.
요약하면, 상술한 8개의 변형 중에 처음 2개의 변형은 상술한 제1 실시예의 변형이 아니다. 변형 3&4는 전통적인 사전적 순서화가 다른 길이의 경로 식별자에 적용되는 제1 실시예의 변형에 대응한다. 마지막 4개의 변형은 최대수의 홉을 갖는 경로만을 선택함으로써 타이 브레이킹의 제1 레벨이 수행되는 제1 실시예의 변형과 수학적으로 동등하다. 다음의 12개의 글로벌 타이 브레이킹 변형은 노드 식별자 및 경로 식별자에 대한 순서화 기준에 관하여 표현될 수 있다.
Figure pct00019
상기 표 4에서, 1차 순서화 기준으로서 사용되는 사전적 순서화는 전통적인 사전적 순서화의 제한된 버전이고, 하나의 경로 식별자가 다른 경로 식별자의 프리픽스인지를 결정하지 않는다. 이 경우, 경로 식별자의 길이에 기초한 2차 순서화 기준이 인보크되어야 한다.
4개의 글로벌 타이 브레이킹 변형의 각 그룹은 4개의 로컬 타이 브레이킹 변형에 대응한다. 글로벌 타이 브레이킹 변형 1-4는 그들의 홉 카운트와 관계없이 모든 동일 비용 최단 경로가 고려되는 경우에 대응한다. 변형 5-8은 최소수의 홉을 갖는 유일한 동일 비용 최단 경로가 최단 경로인 것으로 간주되는 경우에 대응한다. 변형 9-12는 최대수의 홉을 갖는 유일한 동일 비용 최단 경로가 최단 경로로 간주되는 경우에 대응한다.
설명의 명료화를 위해, 상기 설명은 스트링 비교가 좌측으로부터 우측으로 수행되는 경로 식별자의 사전적 순서화 및 그 변형에 기초한다. 스트링 비교가 우측으로부터 좌측으로 수행되는 역 사전적 순서화에 관하여 필요한 부분만 약간 수정하여 동일한 타이 브레이킹 변형이 또한 기재될 수 있다다. 실제로, 모든 가능한 경로 식별자의 분명한 순서화를 제공하는 경로 식별자를 순서화하는 임의의 방법이 본 발명의 사상을 벗어나지 않고 사용될 수 있다.
본 발명은 여기에 기재된 실시예로 한정되지 않고 본 발명의 범위를 벗어나지 않고 변형 또는 변경될 수 있다.

Claims (20)

  1. 패킷 포워딩 네트워크의 노드에서 패킷들을 포워딩하는데 사용되는 포워딩 정보를 결정하는 방법으로서, 상기 네트워크의 각각의 노드는 고유 노드 식별자를 갖고, 상기 방법은,
    상기 네트워크의 제1 노드와 상기 네트워크의 제2 노드 사이의 최저 비용 경로들을 결정하는 단계;
    복수의 최저 비용 경로가 실질적으로 동일한 비용을 갖는다는 것을 결정하는 단계; 및
    상기 실질적으로 동일한 비용을 갖는 복수의 최저 비용 경로로부터 최저 비용 경로를 선택하는 단계
    를 포함하고,
    상기 선택된 최저 비용 경로는,
    각각의 최저 비용 경로에 대하여, 각자의 경로 식별자를 도출하기 위하여 제1 순서화 기준에 따라 상기 최저 비용 경로가 횡단하는 노드들에 할당된 각자의 노드 식별자들을 정렬하고,
    제2 순서화 기준에 따라 상기 경로 식별자들을 순서화하고,
    상기 순서화된 경로 식별자들의 하나의 극단에서 자신의 경로 식별자를 갖는 최저 비용 경로를 선택함으로써 선택된 경로이고,
    상기 제1 순서화 기준 및 상기 제2 순서화 기준은,
    (1) 상기 제1 순서화 기준은 증가하는 순서화이고, 상기 제2 순서화 기준은, 제1 경로에 대한 경로 식별자가 제2 경로에 대한 경로 식별자의 프리픽스(prefix)일 때, 상기 제1 경로 전에 상기 제2 경로를 순서화하는 변형된 사전적 순서화(lexicographic ordering)인 것; 및
    (2) 상기 제1 순서화 기준은 감소하는 순서화이고, 상기 제2 순서화 기준은, 제1 경로에 대한 경로 식별자가 제2 경로에 대한 경로 식별자의 프리픽스일 때, 상기 제2 경로 전에 상기 제1 경로를 순서화하는 사전적 순서화인 것
    으로부터 선택된 조건을 충족하는 방법.
  2. 제1항에 있어서, 상기 최저 비용 경로를 선택하는 단계는,
    각각의 최저 비용 경로에 대하여, 각자의 경로 식별자를 도출하기 위하여 증가하는 순서화 기준에 따라 상기 최저 비용 경로가 횡단하는 노드들에 할당된 각자의 노드 식별자들을 정렬하는 단계;
    제1 경로에 대한 경로 식별자가 제2 경로에 대한 경로 식별자의 프리픽스일 때, 상기 제1 경로 전에 상기 제2 경로를 순서화하는 변형된 사전적 순서화 기준에 따라 상기 경로 식별자들을 순서화하는 단계; 및
    상기 순서화된 경로 식별자들의 하나의 극단에서 자신의 경로 식별자를 갖는 최저 비용 경로를 선택하는 단계
    를 포함하는 방법.
  3. 제2항에 있어서, 각각의 최저 비용 경로에 대하여 각자의 경로 식별자를 도출하기 위하여 증가하는 순서화 기준에 따라 상기 최저 비용 경로가 횡단하는 노드들에 할당된 각자의 노드 식별자들을 정렬하는 단계는 증가하는 사전적 순서화 기준에 따라 상기 각자의 노드 식별자들을 정렬하는 단계를 포함하는 방법.
  4. 제1항에 있어서, 상기 최저 비용 경로를 선택하는 단계는,
    각각의 최저 비용 경로에 대하여, 각자의 경로 식별자를 도출하기 위하여 감소하는 순서화 기준에 따라 상기 최저 비용 경로가 횡단하는 노드들에 할당된 각자의 노드 식별자들을 정렬하는 단계;
    제1 경로에 대한 경로 식별자가 제2 경로에 대한 경로 식별자의 프리픽스일 때, 상기 제2 경로 전에 상기 제1 경로를 순서화하는 사전적 순서화 기준에 따라 상기 경로 식별자들을 순서화하는 단계; 및
    상기 순서화된 경로 식별자들의 하나의 극단에서 자신의 경로 식별자를 갖는 최저 비용 경로를 선택하는 단계
    를 포함하는 방법.
  5. 제4항에 있어서, 각각의 최저 비용 경로에 대하여 각자의 경로 식별자를 도출하기 위하여 감소하는 순서화 기준에 따라 상기 최저 비용 경로가 횡단하는 노드들에 할당된 각자의 노드 식별자들을 정렬하는 단계는 감소하는 사전적 순서화 기준에 따라 상기 각자의 노드 식별자들을 정렬하는 단계를 포함하는 방법.
  6. 제1항에 있어서,
    상기 최저 비용 경로들 중의 적어도 하나는 가장 많은 수의 노드를 횡단하고 상기 최저 비용 경로들 중의 적어도 다른 하나는 상기 가장 많은 수보다 적은 수의 노드를 횡단하고,
    상기 복수의 최저 비용 경로로부터 최저 비용 경로를 선택하는 단계는,
    각각의 최저 비용 경로에 대하여, 각자의 경로 식별자를 도출하기 위하여 제1 순서화 기준에 따라 상기 최저 비용 경로가 횡단하는 노드들에 할당된 각자의 노드 식별자들을 정렬하는 단계;
    상기 가장 많은 수의 노드보다 적은 수의 노드를 횡단한 각각의 최저 비용 경로에 대하여, 해당 경로 식별자에 적어도 하나의 추가의 식별자를 추가하는 단계 - 상기 추가는 상기 제1 순서화 기준과 일관됨 -;
    제2 순서화 기준에 따라 상기 경로 식별자들을 순서화하는 단계; 및
    상기 순서화된 경로 식별자들의 하나의 극단에서 경로 식별자를 갖는 최저 비용 경로를 선택하는 단계
    를 포함하는 방법.
  7. 제6항에 있어서, 상기 적어도 하나의 추가의 식별자를 추가하는 단계는,
    상기 제1 순서화 기준이 증가하는 순서화이면, 적어도 하나의 추가의 식별자를 추가하는 단계 - 각각의 추가의 식별자는 모든 노드 식별자보다 더 높은 것으로 간주됨 -; 및
    상기 제1 순서화 기준이 감소하는 순서화이면, 적어도 하나의 추가의 식별자를 추가하는 단계 - 각각의 추가의 식별자는 모든 노드 식별자보다 낮은 것으로 간주됨 -
    를 포함하는 방법.
  8. 제7항에 있어서, 상기 적어도 하나의 추가의 식별자를 추가하는 단계는 각각의 경로 식별자가 상기 가장 많은 수의 노드와 동일한 수의 식별자를 가질 때까지 상기 가장 많은 수의 노드보다 적은 수의 노드를 횡단하는 각각의 최저 비용 경로에 대한 각각의 경로 식별자에 추가의 식별자를 추가하는 단계를 포함하는 방법.
  9. 제7항에 있어서,
    상기 제1 순서화 기준은 증가하는 순서화 기준이고,
    적어도 하나의 식별자를 추가하는 단계는 상기 가장 많은 수의 노드보다 적은 수의 노드를 횡단하는 각각의 최저 비용 경로에 대한 각자의 경로 식별자의 트레일링 엔드(trailing end)에 임의의 노드 식별자보다 큰 것으로 간주되는 값을 갖는 적어도 하나의 추가의 식별자를 추가하는 단계를 포함하는 방법.
  10. 제9항에 있어서, 상기 제1 순서화 기준은 증가하는 사전적 순서화 기준인 방법.
  11. 제7항에 있어서,
    상기 제1 순서화 기준은 감소하는 순서화 기준이고,
    적어도 하나의 식별자를 추가하는 단계는 상기 가장 많은 수의 노드보다 적은 수의 노드를 횡단하는 각각의 최저 비용 경로에 대한 각자의 경로 식별자의 트레일링 엔드에 임의의 노드 식별자보다 낮은 것으로 간주되는 값을 갖는 적어도 하나의 추가의 식별자를 추가하는 단계를 포함하는 방법.
  12. 제11항에 있어서, 상기 제1 순서화 기준은 감소하는 사전적 순서화 기준인 방법.
  13. 제7항에 있어서,
    상기 제1 순서화 기준은 증가하는 순서화 기준이고,
    적어도 하나의 식별자를 추가하는 단계는 모든 경로 식별자가 공통수의 식별자를 가질 때까지 상기 가장 많은 수의 노드보다 적은 수의 노드를 횡단하는 각각의 최저 비용 경로에 대한 각자의 경로 식별자의 리딩 엔드(leading end)에 임의의 노드 식별자보다 낮은 것으로 간주되는 값을 갖는 추가의 식별자들을 추가하는 단계를 포함하는 방법.
  14. 제13항에 있어서, 상기 제1 순서화 기준은 증가하는 사전적 순서화 기준인 방법.
  15. 제7항에 있어서,
    상기 제1 순서화 기준은 감소하는 순서화 기준이고,
    적어도 하나의 식별자를 추가하는 단계는 모든 경로 식별자가 공통수의 식별자를 가질 때까지 상기 가장 많은 수의 노드보다 적은 수의 노드를 횡단하는 각각의 최저 비용 경로에 대한 각자의 경로 식별자의 리딩 엔드(leading end)에 임의의 노드 식별자보다 큰 것으로 간주되는 값을 갖는 추가의 식별자들을 추가하는 단계를 포함하는 방법.
  16. 제15항에 있어서, 상기 제1 순서화 기준은 감소하는 사전적 순서화 기준인 방법.
  17. 패킷 포워딩 네트워크의 포워딩 노드에서 패킷들을 포워딩하는데 사용되는 포워딩 정보를 결정하는 방법으로서, 상기 네트워크의 각각의 노드는 고유 노드 식별자를 갖고, 상기 방법은,
    상기 네트워크의 제1 노드와 제2 노드 사이의 최저 비용 경로들을 결정하는 단계;
    복수의 최저 비용 경로가 실질적으로 동일한 비용을 갖는다는 것을 결정하는 단계 - 상기 최저 비용 경로들 중의 적어도 하나는 가장 많은 수의 노드를 횡단하고 상기 최저 비용 경로들 중의 적어도 다른 하나는 상기 가장 많은 수보다 적은 수의 노드를 횡단함 -;
    각각의 최저 비용 경로에 대하여, 각자의 경로 식별자를 도출하기 위하여 제1 순서화 기준에 따라 상기 최저 비용 경로가 횡단하는 노드들에 할당된 각자의 노드 식별자들을 정렬하는 단계;
    상기 가장 많은 수의 노드보다 적은 수의 노드를 횡단하는 각각의 최저 비용 경로에 대하여, 해당 경로 식별자에 적어도 하나의 추가의 식별자를 추가하는 단계 - 상기 추가는 상기 제1 순서화 기준과 일관됨 -;
    제2 순서화 기준에 따라 상기 경로 식별자들을 순서화하는 단계; 및
    상기 순서화된 경로 식별자들의 하나의 극단에서 경로 식별자를 갖는 최저 비용 경로를 선택하는 단계
    를 포함하는 방법.
  18. 제17항에 있어서, 적어도 하나의 추가의 식별자를 추가하는 단계는,
    상기 제1 순서화 기준이 증가하는 순서화이면, 적어도 하나의 추가의 식별자를 추가하는 단계 - 각각의 추가의 식별자는 모든 노드 식별자보다 높은 것으로 간주됨 -; 및
    상기 제1 순서화 기준이 감소하는 순서화이면, 적어도 하나의 추가의 식별자를 추가하는 단계 - 각각의 추가의 식별자는 모든 노드 식별자보다 낮은 것으로 간주됨 -
    를 포함하는 방법.
  19. 제18항에 있어서, 적어도 하나의 추가의 식별자를 추가하는 단계는 각각의 경로 식별자가 상기 가장 많은 수의 노드보다 적지 않은 수의 식별자를 가질 때까지 상기 가장 많은 수의 노드보다 적은 수의 노드를 횡단하는 각각의 최저 비용 경로에 대한 각각의 경로 식별자에 추가의 식별자들을 추가하는 단계를 포함하는 방법.
  20. 제18항에 있어서, 적어도 하나의 추가의 식별자를 추가하는 단계는 각각의 경로 식별자가 공통수의 식별자를 가질 때까지 상기 가장 많은 수의 노드보다 적은 수의 노드를 횡단하는 각각의 최저 비용 경로에 대한 각각의 경로 식별자에 추가의 식별자들을 추가하는 단계를 포함하는 방법.
KR20147032799A 2012-05-22 2012-05-22 최단 경로 결정에서의 타이 브레이킹 KR20150030644A (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CA2012/050337 WO2013173900A1 (en) 2012-05-22 2012-05-22 Tie-breaking in shortest path determination

Publications (1)

Publication Number Publication Date
KR20150030644A true KR20150030644A (ko) 2015-03-20

Family

ID=49622954

Family Applications (1)

Application Number Title Priority Date Filing Date
KR20147032799A KR20150030644A (ko) 2012-05-22 2012-05-22 최단 경로 결정에서의 타이 브레이킹

Country Status (6)

Country Link
EP (1) EP2853068A1 (ko)
JP (1) JP2015520997A (ko)
KR (1) KR20150030644A (ko)
CN (1) CN104396198A (ko)
BR (1) BR112014028934A2 (ko)
WO (1) WO2013173900A1 (ko)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170061162A (ko) * 2014-09-30 2017-06-02 후아웨이 테크놀러지 컴퍼니 리미티드 서비스 경로 생성 방법 및 장치
CN109218190B (zh) * 2017-06-29 2020-08-07 华为技术有限公司 一种传输路径的确定方法及节点
US11165681B2 (en) * 2019-09-27 2021-11-02 Juniper Networks, Inc. Inter-autonomous system trace route message
US11451475B2 (en) 2019-12-19 2022-09-20 Huawei Technologies Co., Ltd. Packet forwarding based on geometric location
US11329717B2 (en) * 2020-05-26 2022-05-10 Huawei Technologies Co., Ltd. Packet forwarding incorporating partial sorting of path costs or utilities
US11438823B2 (en) 2020-05-29 2022-09-06 Huawei Technologies Co., Ltd. Orthodromic routing
US11374852B2 (en) 2020-05-29 2022-06-28 Huawei Technologies Co., Ltd. Piecewise shortest path first routing
US11374652B1 (en) 2020-12-10 2022-06-28 Huawei Technologies Co., Ltd. Method and apparatus for limited flooding and network routing region membership management
US11909627B2 (en) 2021-01-04 2024-02-20 Huawei Technologies Co., Ltd. Method and apparatus for managing network status information using multiple degree of precision graph
CN113301364A (zh) * 2021-01-05 2021-08-24 阿里巴巴集团控股有限公司 路径规划方法、cdn连接建立方法、设备及存储介质
US11601780B2 (en) 2021-01-05 2023-03-07 Huawei Technologies Co., Ltd. Method and apparatus for propagating network status updates using directional tracking
US11476925B2 (en) 2021-02-04 2022-10-18 Huawei Technologies Co., Ltd. Method and apparatus for limited flooding in networks using transit nodes

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7911944B2 (en) * 2007-12-26 2011-03-22 Nortel Networks Limited Tie-breaking in shortest path determination
US8553562B2 (en) * 2010-09-08 2013-10-08 Telefonaktiebolaget L M Ericsson (Publ) Automated traffic engineering for multi-protocol label switching (MPLS) with link utilization as feedback into the tie-breaking mechanism

Also Published As

Publication number Publication date
BR112014028934A2 (pt) 2017-06-27
CN104396198A (zh) 2015-03-04
JP2015520997A (ja) 2015-07-23
EP2853068A1 (en) 2015-04-01
WO2013173900A1 (en) 2013-11-28

Similar Documents

Publication Publication Date Title
US8761022B2 (en) Tie-breaking in shortest path determination
US7911944B2 (en) Tie-breaking in shortest path determination
KR20150030644A (ko) 최단 경로 결정에서의 타이 브레이킹
TWI493926B (zh) 複雜型樹狀網路之自動化訊務工程
JP5551253B2 (ja) 複数の等コストパスから選択するための方法および装置
US7561534B2 (en) Methods of network routing having improved resistance to faults affecting groups of links subject to common risks
KR102123035B1 (ko) 802.1aq에 대한 3 스테이지 폴딩된 clos 최적화
EP2614615B1 (en) Automated traffic engineering for 802.1aq based upon the use of link utilization as feedback into the tie-breaking mechanism
US7334047B1 (en) Method and system for selective link state advertisement blocking over a data network area
Cho et al. Independent directed acyclic graphs for resilient multipath routing
US9413639B2 (en) Use of alternate paths in forwarding of network packets
US7152113B2 (en) Efficient system and method of node and link insertion for deadlock-free routing on arbitrary topologies
Foerster et al. Grafting arborescences for extra resilience of fast rerouting schemes
CN100518382C (zh) 自动交换光网络中多约束条件下最短路径查找方法及装置
CN111277495B (zh) 一种位索引显示复制组播的故障保护路径的预置方法
Saraph et al. New scheme for IP routing and traffic engineering

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