KR101463364B1 - 라우팅 정보의 룩헤드 계산 - Google Patents

라우팅 정보의 룩헤드 계산 Download PDF

Info

Publication number
KR101463364B1
KR101463364B1 KR1020137012207A KR20137012207A KR101463364B1 KR 101463364 B1 KR101463364 B1 KR 101463364B1 KR 1020137012207 A KR1020137012207 A KR 1020137012207A KR 20137012207 A KR20137012207 A KR 20137012207A KR 101463364 B1 KR101463364 B1 KR 101463364B1
Authority
KR
South Korea
Prior art keywords
network
node
routing information
state
future
Prior art date
Application number
KR1020137012207A
Other languages
English (en)
Other versions
KR20130087535A (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 KR20130087535A publication Critical patent/KR20130087535A/ko
Application granted granted Critical
Publication of KR101463364B1 publication Critical patent/KR101463364B1/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/02Topology update or discovery
    • H04L45/06Deflection routing, e.g. hot-potato routing
    • 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/02Topology update or discovery
    • H04L45/021Ensuring consistency of routing table updates, e.g. by using epoch numbers

Abstract

다양한 예시적인 실시예들은 다음: 노드에서, 현재의 네트워크 상태가 구 네트워크 상태로부터 새로운 네트워크 상태로 변경되었다는 표시를 수신하는 단계; 노드가 새로운 네트워크 상태와 연관되는 미리 계산된 라우팅 정보에 액세스하는지를 결정하는 단계; 노드가 새로운 네트워크 상태와 연관되는 미리 계산된 라우팅 정보에 액세스하는 경우, 미래의 네트워크 트래픽을 라우팅하기 위해 미리 계산된 라우팅 정보를 이용하는 단계; 및 노드가 새로운 네트워크 상태와 연관되는 미리 계산된 라우팅 정보에 액세스하지 않는 경우, 새로운 라우팅 정보를 계산하고 미래의 네트워크 트래픽에 라우팅하기 위해 새로운 라우팅 정보를 이용하는 단계를 포함하는 방법 및 관련된 네트워크 노드에 관한 것이다.

Description

라우팅 정보의 룩헤드 계산{LOOKAHEAD COMPUTATION OF ROUTING INFORMATION}
본원에 개시되는 다양한 예시적인 실시예들은 일반적으로 네트워크 트래픽 라우팅에 관한 것이다.
패킷 교환 네트워크들은 끊임없이 증대되는 상당한 양의 현재의 다양한 형태의 통신을 제공하는데 이용된다. 인터넷과 같은 네트워크들을 통한 컴퓨터-대-컴퓨터 통신 외에, 패킷 교환 네트워크들은 텔레비전, 전화, 및 라디오와 같은 다른 애플리케이션들과 연관되는 정보의 통신을 가능하게 한다. 이들 그리고 다른 애플리케이션들을 통해, 최종 사용자들은 다수의 정보 유형들을 상당한 거리들에 걸쳐 송신 및 수신할 수 있다.
그와 같은 정보를 자체의 소스로부터 자체의 목적지로 이동시키기 위해, 패킷 교환 네트워크들은 다수의 상호 접속 라우팅 디바이스(routing device)들을 이용한다. 하나의 라우터가 데이터의 패킷을 수신하면, 그 라우터는 패킷의 목적지가 어디에 위치되어 있는지를 결정하고 패킷을 다음 가장 근접한 라우터로 전송할 것이다. 이 다음의 라우터는 유사한 절차를 따를 것이고, 이 방식으로, 패킷은 결국 자체의 목적지로 전달될 것이고, 이는 “버킷 브리게이드(bucket brigade)”와 상당히 유사하다.
패킷 교환 네트워크들에서 하나의 중대한 문제점은 각각의 패킷이 어떤 “다음 홉(next hop)” 라우터로 전송되어야만 하는지를 결정하는데 필요한 정보가 네트워크 내의 라우터마다 제공되는 것이다. 반면에, 이론적으로, 이 정보는 수동으로 라우터 내에 프로그램될 수 있으나, 네트워크 토폴로지들의 크기 및 동적인 특성으로 인해 이 방법은 실행 불가능하게 된다. 대신, 각각의 라우터 별로 각각의 가장 양호한 목적지로의 경로를 자동으로 결정하는 다양한 프로토콜들이 개발되어 왔다. 예를 들어, 자율 시스템 내의 링크들의 상태에 관한 정보를 공유하기 위해 상기 시스템 내의 라우터들에 개방 최단 경로 제 1 표준(Open Shortest Path First standard)이 제공된다. 이 정보를 이용함으로써, 각각의 라우터는 패킷들이 자체의 각각의 목적지들로 얼마만큼 전송될지를 결정하는데 이용되는 전송 테이블을 독자적으로 전개할 수 있다. 네트워크 상태가 변하면, 각각의 라우터는 자체의 전송 테이블을 갱신하여 각각의 목적지가 도착 가능한 상태로 유지되고 각각의 선택된 경로가 최적임을 보장한다. 네트워크 내의 여러 라우터들에 의해 유지되는 라우팅 정보는 네트워크의 원하는 동작이 가능하도록 서로 부합되어야만 한다.
개방 최단 경로 제 1 표준과 같은 표준들이 라우팅 정보를 발생시키는 문제에 대한 유효 해법을 제공할지라도, 이 표준들은 작용하는데 시간이 걸린다. 예를 들어, 네트워크 변경이 발생한 직후에, 각각의 노드에서의 라우팅 정보는 어느 정도 지난 것이고(out of date) 부정확하다. 이 정보는 각각의 노드가 변경의 표시를 수신하고, 네트워크의 새로운 상태를 결정하고, 최적의 라우팅 경로들을 결정하고, 전송 테이블을 갱신할 때까지 옛 상태로 남아있을 것이다. 네트워크에 추가되는 노드들, 네트워크로부터 제거되는 노드들, 결함 상태로 진입하는 노드들, 결합 상태로부터 복구된 노드들, 및 다른 네트워크 변경 이벤트들의 잠재적인 빈도로 인해, 라우터의 동작 시간의 상당한 부분이 지난 라우팅 정보에 따라 트래픽을 전송하거나 최신 라우팅 정보를 대기하는데 소비될 수 있다. 네트워크 변경 이벤트 및 네트워크 내의 모든 노드들에서의 전송 테이블의 성공적인 갱신 사이의 이 시간은 본원에서 네트워크 수렴 시간(network convergence time)으로 칭해진다.
따라서, 네트워크 변경 이벤트 및 네트워크 내의 상이한 노드들에서의 라우팅 정보의 수렴 사이의 시간의 양을 단축시킬 방법이 필요하다. 특히, 전송 테이블들을 갱신하는데 소요되는 시간의 양을 단축시키는 방법 및 네트워크 노드를 제공하는 것이 바람직할 것이다.
네트워크 수렴 시간을 단축시키는 방법에 대한 현재의 필요성의 관점에서 다양한 예시적인 실시예들의 간략한 요약이 제공된다. 다양한 예시적인 실시예들의 일부 양태들을 조명하고 도입하도록 의도되지만 본 발명의 범위를 제한하지 않도록 의도된 요약에서 어느 정도의 간소화 및 생략들이 행해질 수 있다. 당업자들이 본 발명의 개념들을 행하고 이용하도록 하는데 적합한 바람직한 예시적인 실시예의 자세한 설명들은 이후의 섹션들에서 기술될 것이다.
다양한 예시적인 실시예들이 가능성 있는 미래의 네트워크 상태들을 예측할 수 있는 네트워크 라우터를 제공한다. 그와 같은 네트워크 라우터는 이후에 이들 가능성 있는 미래의 네트워크 상태들에 대한 최단 경로 트리, 전송 테이블, 및/또는 라우팅 테이블과 같은 라우팅 정보를 미리 계산하고 저장할 수 있다. 그 후에, 네트워크 상태가 변했다는 표시를 네트워크 노드가 수신하면, 상기 노드는 우선 새로운 네트워크 상태가 라우팅 정보를 미리 계산했던 네트워크 상태인지를 검사한다. 만일 그렇다면, 노드는 미리 계산된 라우팅 정보를 이용함으로써, 라우팅 정보가 최신이기 전에 시간의 양을 단축시킬 수 있다. 이 제 1 예시적인 실시예에 따르면, 모든 예측 및 선 계산 기능들은 네트워크 노드에서 국지적으로 수행된다.
네트워크 내의 다른 노드들에 대한 이들 및 다른 예측 기능들 중 적어도 일부를 수행하는 예측 노드에 대해 다양한 대안의 실시예들이 제공된다. 예를 들어, 예측 노드는 단지 다른 노드들에 대해 가능성 있고 관련되어 있는 미래의 네트워크 상태들을 예측하고 이 정보를 적절한 노드들로 송신할 수 있다. 각각의 다른 노드는 그 후에 미래의 네트워크 상태들과 연관되는 라우팅 정보를 국지적으로 미리 계산할 수 있다. 대안으로, 예측 노드는 다른 노드들 각각에 대한 라우팅 정보를 미리 계산하고 연관되는 라우팅 정보를 미래의 상태 정보와 함께 다른 노드들 각각으로 송신할 수 있다. 다른 노드들은 그 후에 미래에 사용하도록 이 정보를 단지 저장하기만 하면 된다.
다양한 예시적인 실시예들은 다음: 노드에서, 현재의 네트워크 상태가 구 네트워크 상태로부터 새로운 네트워크 상태로 변경되었다는 표시를 수신하는 단계와, 노드가 새로운 네트워크 상태와 연관되는 미리 계산된 라우팅 정보에 액세스하는지를 결정하는 단계와, 노드가 새로운 네트워크 상태와 연관되는 미리 계산된 라우팅 정보에 액세스하는 경우, 미래의 네트워크 트래픽을 라우팅하기 위해 미리 계산된 라우팅 정보를 이용하는 단계와, 노드가 새로운 네트워크 상태와 연관되는 미리 계산된 라우팅 정보에 액세스하지 않는 경우, 새로운 라우팅 정보를 계산하고 미래의 네트워크 트래픽에 라우팅하기 위해 새로운 라우팅 정보를 이용하는 단계 중 하나 이상을 포함하는 방법 및 관련된 네트워크 노드에 관한 것이다.
다양한 예시적인 실시예들은 추가로 또는 대안으로 다음: 네트워크 상태 정보를 수신하는 제 1 인터페이스; 및 네트워크 상태 정보에 기초하여 적어도 하나의 미래의 네트워크 상태를 예측하는 네트워크 상태 예측기 중 하나 이상을 포함하는 방법 및 관련된 네트워크 노드에 관한 것으로서, 여기서 적어도 하나의 미래의 네트워크 상태는 현재의 네트워크 상태와는 상이하다.
이 방식에서, 다양한 예시적인 실시예들이 네트워크 수렴 시간을 단축하는 것이 가능한 것이 명백할 것이다. 특히, 가능성이 있는 미래의 네트워크 상태들에 대한 라우팅 정보를 미리 계산함으로써, 네트워크 노드는 네트워크가 실제로 변경된 이후에 전송 테이블을 갱신하는데 소요되는 시간의 양을 단축시킬 수 있다.
다양한 예시적인 실시예들을 더 양호하게 이해하기 위해, 첨부 도면들이 참조된다:
도 1은 데이터 패킷들을 라우팅하기 위한 예시적인 네트워크를 도시하는 도면;
도 2는 하나의 노드로부터 다수의 다른 가능한 노드들로의 최적의 경로를 결정하기 위한 예시적인 최단경로 트리(tree)를 도시하는 도면;
도 3은 패킷 목적지에 기초하여 패킷이 송신되어야 하는 다음 홉을 결정하는 예시적인 전송 테이블을 도시하는 도면;
도 4는 패킷들을 라우팅하고 네트워크 수렴 시간을 단축시키는 예시적인 네트워크 노드를 도시하는 도면;
도 5는 가능성 있는 미래의 네트워크 상태들을 예측하는 예시적인 예측 노드를 도시하는 도면;
도 6은 패킷들을 라우팅하고 예측 노드와 협력하여 네트워크 수렴 시간을 단축시키는 네트워크 노드의 예시적인 실시예를 도시하는 도면;
도 7은 가능성 있는 미래의 네트워크 상태들을 예측하는 예측 노드의 대안의 실시예를 도시하는 도면;
도 8은 패킷들을 라우팅하고 예측 노드와 협력하여 네트워크 수렴 시간을 단축시키는 네트워크 노드의 대안의 실시예를 도시하는 도면;
도 9는 미리 계산된 라우팅 정보를 찾는 예시적인 상태 머신을 도시하는 도면; 및
도 10은 네트워크 수렴 시간을 단축시키는 예시적인 방법을 도시하는 도면.
이제, 동일한 번호들을 동일한 구성요소들 또는 단계들을 칭하는 도면들을 참조하면, 다양한 예시적인 실시예들의 개시된 다양한 양태들이 존재한다.
도 1은 데이터 패킷들을 라우팅하기 위한 예시적인 네트워크(100)를 도시한다. 예시적인 네트워크(100)는 다양한 애플리케이션들에 데이터 전송을 제공하는 패킷 교환 통신 네트워크일 수 있다. 예시적인 네트워크(100)는 네트워크 내의 변화들에 응답하여 라우팅 정보를 자동으로 갱신하는 표준을 더 구현할 수 있다. 예를 들어, 네트워크(100)는 개방 최단 경로 제 1(OSPF) 표준을 구현하는 자율 시스템을 구성할 수 있다.
예시적인 네트워크는 다수의 노드들 A 내지 G(110 내지 170)을 포함할 수 있다. 각각의 노드 A 내지 G(110 내지 170)는 데이터 패킷들을 수신하고 이 데이터 페킷들을 패킷 각각의 목적지들로 전송하도록 적응되는 라우터, 스위치, 또는 다른 네트워크 설비일 수 있다. 각각의 노드는 또한 추가 네트워크 디바이스들 및 최종 이용자 장비와 같은 다수의 추가 디바이스들(도시되지 않음)에 접속될 수 있다.
노드들 A 내지 G(110 내지 170)는 각각 하나 이상의 링크들을 통해 하나 이상의 다른 노드들 A 내지 G(110 내지 170)에 접속될 수 있다. 각각의 링크는 링크 코스트(link cost)와 연관될 수 있다. 예를 들어, 노드 C(130)는 코스트(2)를 가지는 링크를 통해 노드 D(140)에 접속될 수 있다. 이 링크 코스트는 예를 들어 노드들 사이의 지리적 거리, 링크와 연관되는 비트 레이트, 노드들 사이의 중간 디바이스들의 수, 및/또는 링크 상의 현재 부하와 같은 다양한 요인들에 기초하여 할당될 수 있다. 노드 B(120) 및 노드 G(170) 사이의 링크와 같이, 어떤 링크들은 결함이 있을 수 있고 따라서 패킷들을 전송하는데 바람직하지 않을 수 있다. 그와 같은 링크들에는 따라서 사용되지 않도록 매우 높거나 무한의 링크가 할당될 수 있다.
각각의 노드 A 내지 G(110 내지 170)는 예시적인 네트워크(100)의 국지적인 표현을 저장할 수 있다. 그와 같은 국지적인 표현은 OSPF에 따라 다른 노드들 A 내지 G(110 내지 170)에 의해 송신되는 링크 상태 광고(link state advertisement; LSA) 메시지들 내에서 전달되는 정보로부터 국지적으로 구성될 수 있다. 예를 들어, 각각의 노드는 링크 상태 데이터베이스(Link State Database; LSDB) 내의 모든 노드들 및 에지들의 표시를 저장할 수 있다. 그와 같은 표현은 최단 경로 트리, 및 궁극적으로 패킷들을 자신들의 목적지로 전송하는데 이용하기 위한 전송 테이블을 구성하기 위해서 각각의 노드 A 내지 G(110 내지 170)에 의해 이용될 수 있다.
도 2는 하나의 노드로부터 다수의 다른 가능한 노드들로의 최적의 경로를 결정하기 위한 예시적인 최단경로 트리(shortest path tree; SPT)(200)를 도시한다. SPT(200)는 노드 C(130)의 관점으로부터 당업자에게 공지되어 있는 임의의 방법을 이용하는 예시적인 네트워크(100)와 같은 네트워크의 현재 상태의 표현을 이용하여 구성될 수 있다. 예를 들어, 노드는 SPT를 구성하기 위해 Djikstra의 최단 경로 트리 알고리즘을 이용할 수 있다.
SPT(200)는 예시적인 네트워크(100)를 고려하면 노드 C(130)에 의해 구성되는 SPT일 수 있다. SPT(200)는 노드들 A 내지 G(110 내지 170)에 대응하는 다수의 노드 표현들 A 내지 G(210 내지 270)을 포함할 수 있다. SPT(200)는 노드 C(130)로부터의 네트워크 내의 각각의 노드로의 최적의 경로를 나타낼 수 있다. 예를 들어, SPT(200)는 노드 C(130)로부터 노드 G(170)로의 최단 경로는 노드 B(120)를 통하거나 또는 어떤 다른 경로이기 보다는, 노드 D(140)를 통한다. 따라서, 노드 C(130)에 의해 수신되고 노드 G(170)로 지향되는 패킷들은 SPT(200)에 따라 노드 D(140)로 전송되어야 한다. 노드 D(140)는 결국 자신이 패킷을 노드 G(170)로 송신할 수 있도록 하는 자기 자신의 라우팅 정보를 포함할 수 있다.
SPT(200)를 계산한 후에, 노드 C(130)는 예시적인 네트워크(100)의 새로운 상태를 반영하기 위해 자신의 전송 테이블을 갱신할 수 있다. 특히, 노드 C(130)는 각각의 잠재적인 목적지 노드에 대해 이용되어야 하는 다음의 홉 노드를 결정하기 위해 SPT(200)를 분석할 수 있다. 이 정보는 그 후에 패킷들을 전송할 때 빠른 액세스를 위해 전송 테이블 내에 저장될 수 있다.
도 3은 패킷 목적지에 기초하여 패킷이 송신되어야 하는 다음 홉을 결정하는 예시적인 전송 테이블(300)을 도시한다. 전송 테이블(300)은 예를 들어 노드 C(130)에 저장된 데이터베이스 내의 테이블일 수 있다. 대안으로, 전송 테이블(300)은 일련의 링크 목록들, 어레이, 또는 유사한 데이터 구조일 수 있다. 그러므로, 전송 테이블(300)은 기저 데이터의 추출임이 명백할 것이고; 기저 데이터의 저장에 적합한 임의의 데이터 구조가 이용될 수 있다.
전송 테이블(300)은 목적지 필드(302) 및 다음 홉 필드(304)를 포함할 수 있다. 목적지 필드(302)는 각각의 엔트리가 연관되어 있는 목적지 디바이스를 나타낼 수 있는데 반해 다음 홉 필드(304)는 어떤 다음 홉 디바이스가 연관된 목적지 디바이스에 적절한지를 나타낼 수 있다. 전송 테이블(300)은 어느 점들에 있어서, 간소화된 것임이 분명할 것이다. 예를 들어, 전송 테이블은 IP 프리픽스(prefix)들, 인출 포트 수, 목적지 MAC 주소, 및/또는 대안의 다음 홉과 같은 추가 필드들을 포함할 수 있다. 다양한 수정들은 당업자에게 명백할 것이다. 예시 테이블(300)에 도시된 데이터는 어느 점들에 있어서 추출 및/또는 간소화된 것임이 분명할 것이다. 예를 들어 목적지 필드(302)는 하나 이상의 목적지 노드들의 어드레스를 저장할 수 있다.
전송 테이블은 다수의 엔트리들(310 내지 370)을 포함할 수 있다. 엔트리(310)는 노드 A(110)로 지향되는 패킷들이 노드 B(120)로 전송되어야 한다는 것을 나타낼 수 있다. 마찬가지로, 엔트리들(320 및 350)은 노드 B(120) 또는 노드 E(150)로 지향되는 패킷들이 노드 B(120)로 전송되어야만 한다는 것을 나타낼 수 있다. 엔트리들(340, 360, 370)은 노드들 D, F, G(140, 160, 170)로 각각 지향되는 패킷들이 노드 D(140)로 전송되어야만 한다는 것을 나타낼 수 있다.
예시적인 네트워크(100)의 구성요소들을 기술했으므로, 예시적인 네트워크(100)의 동작의 간략한 요약이 제공될 것이다. 다음의 설명은 예시적인 네트워크(100)의 동작에 대한 개요를 제공하고 따라서 어느 면들에 있어서 간소화된 개요를 제공하도록 의도된 것이 명백할 것이다. 예시적인 네트워크(100)의 세부적인 동작은 도 4 내지 도 10과 관련하여 아래에서 더 상세하게 기술될 것이다.
노드 C(130)가 테이블(300)과 같은 최신 전송 테이블을 생성한 후에, 노드 C(130)는 자신의 유휴 프로세싱을 이용하여 다음에 인지될 가능성이 있는 미래의 네트워크 상태들을 예측할 수 있다. 노드 C(130)는 이 예측된 상태들 각각에 대한 SPT들을 미리 계산하고 저장할 수 있다. 그 후에, 네트워크가 예측된 상태들 중 하나로 전이되는 경우, 미리 계산된 SPT가 즉시 이용될 수 있다. 그러므로, 수렴 시간은 노드 C(130)가 자체의 전송 테이블을 즉시 갱신하기 시작할 수 있으므로 단축될 수 있다.
도 4는 패킷들을 라우팅하고 네트워크 수렴 시간을 단축시키는 예시적인 네트워크 노드(400)를 도시한다. 네트워크 노드(400)는 예시적인 네트워크(100) 내의 하나 이상의 노드들 A 내지 G(110 내지 170)에 대응할 수 있다. 네트워크 노드(400)는 패킷 수신기(405), 링크 상태 광고(LSA) 식별자(410), 라우팅 프로세서(420), 패킷 송신기(425), 네트워크 상태 머신(430), 네트워크 상태 이력 스토리지(440), 최단 경로 트리(SPT) 생성기(450), 전송 테이블 생성기(460), 전송 테이블 스토리지(470), 및 네트워크 상태 예측기(480)를 포함할 수 있다.
패킷 수신기(405)는 하드웨어 및/또는 머신 판독 가능 저장 매체 상에 인코딩되는 수행 가능 명령들을 포함하여 다른 네트워크 디바이스들로부터 패킷들을 수신하도록 구성되는 인터페이스일 수 있다. 패킷 수신기(405)는 다수의 포트들을 포함할 수 있고 다수의 네트워크 디바이스들로부터 패킷들을 수신할 수 있다. 예를 들어, 패킷 수신기(405)는 링크 상태 광고 패킷들 및 정규 네트워크 트래픽과 연관되는 패킷들을 수신할 수 있다.
링크 상태 광고(LSA) 식별자(410)는 하드웨어 및/또는 머신 판독 저장 매체 상에서 수행 가능한 명령들을 포함하여 수신된 패킷이 노드(400)가 프로세싱해야 하는 LSA인지의 여부를 결정하도록 구성될 수 있다. 패킷이 LSA인 경우, LSA 식별자(410)는 네트워크 상태 머신(430)에 네트워크 내에 변경이 발생했음을 통지할 수 있다. 예를 들어, LSA 식별자(410)는 단순히 패킷을 네트워크 상태 머신(410)에 넘겨줄 수 있다. 그렇지 않으면, LSA 식별자는 부가 라우팅을 위해 패킷을 라우팅 프로세서에 넘겨줄 수 있다.
라우팅 프로세서(420)는 하드웨어 및/또는 머신 판독 가능 저장 매체 상에서 수행 가능한 명령들을 포함하여 패킷들을 자신들의 목적지로 라우팅하도록 구성될 수 있다. 라우팅 프로세서는 각각의 수신된 패킷으로부터 목적지를 추출하고 전송 테이블 스토리지(470) 내에 저장된 전송 테이블을 이용하여 상기 목적지에 대한 다음 홉을 결정할 수 있다. 라우팅 프로세서는 그 후에 패킷을 송신기(425)를 통해 적절한 다음 홉으로 전송할 수 있다.
패킷 송신기(425)는 하드웨어 및/또는 머신 판독 가능 저장 매체 상에 인코딩되는 수행 가능 명령들을 포함하여 패킷들을 다른 네트워크 디바이스들로 송신하도록 구성되는 인터페이스일 수 있다. 패킷 송신기(425)는 다수의 포트들을 포함할 수 있고 다수의 종류의 패킷들을 다수의 네트워크 디바이스들로 송신할 수 있다. 예를 들어, 패킷 송신기(425)는 링크 상태 광고 패킷들 및 정규 네트워크 트래픽과 연관되는 패킷들을 송신할 수 있다.
네트워크 상태 머신(430)은 하드웨어 및/또는 머신 판독 가능 저장 매체 상에서 수행 가능한 명령들을 포함하여 네트워크 상태가 어떻게 변경되었는지를 결정하기 위해 수신된 LSA들을 해석하도록 구성될 수 있다. 예를 들어, 네트워크 상태 머신은 현재 네트워크 상태의 표현에 액세스할 수 있고 수신된 LSA에 기초하여 네트워크 상태를 수정할 수 있다. 새로운 네트워크 상태 표현은 그 후에 예를 들어 네트워크 상태 이력 스토리지(440)에 저장될 수 있다.
네트워크 상태 머신(430)은 SPT가 수신된 LSA에 기초하여 새로운 네트워크 상태에 이미 이용 가능한지를 더 결정할 수 있다. 네트워크 상태 머신(430)의 예시적인 실시예의 세부적인 동작은 도 9과 관련하여 아래에서 더 상세하게 기술될 것이다. 네트워크 상태 머신(430)이 미리 계산된 SPT를 찾을 수 있는 경우, 네트워크 상태 머신(430)은 그 SPT를 전송 테이블 생성기(460)로 전송할 수 있다. 그렇지 않으면, 네트워크 상태 머신(430)은 새로운 SPT가 생성되어야 한다는 표시를 SPT 생성기(450)에 송신할 수 있다.
다양한 실시예들에서, 네트워크 상태 머신(430)이 새로운 상태에 진입하면, 이 머신은 이전 상태의 표현을 삭제할 수 있다. 다양한 대안의 실시예들에서, 네트워크 상태 머신은 상태 및 임의의 SPT, 전송 테이블, 라우팅 테이블, 및/또는 자신과 연관되는 다른 라우팅 정보를 보유할 수 있다. 네트워크 상태 머신(430)은 도 9를 참조하여 아래에 더 자세하게 후술되는 바와 같이, 새로운 상태로부터 이전 상태로 재진입하기 위해 하나 이상의 전이들을 더 생성할 수 있다. 예를 들어, 네트워크 상태 머신(430)은 전이(transistion)를 생성할 수 있는데, 이 전이는 방금 프로세싱된 LSA의 정반대이며 이 이전 상태로 되돌린다.
네트워크 상태 이력 스토리지(440)는 이전 및/또는 현재 네트워크 상태들의 표현들을 저장할 수 있는 임의의 머신 판독 가능 매체일 수 있다. 따라서, 네트워크 상태 이력 스토리지(440)는 판독 전용 메모리(read only memory: ROM), 임의 접근 메모리(random access memory: RAM), 자기 디스크 저장 매체, 광 저장 매체, 플래시 메모리 디바이스들, 및/또는 유사한 저장 매체와 같은 머신 판독 가능 저장 매체를 포함할 수 있다.
최단 경로 트리(SPT) 생성기(450)는 하드웨어 및/또는 머신 판독 저장 매체 상에서 수행 가능한 명령들을 포함하여 네트워크의 표현으로부터 최단 경로 트리를 생성하도록 구성될 수 있다. 예를 들어, SPT 생성기(450)는 최단 경로 트리를 생성하기 위해 Djikstra의 알고리즘 또는 당업자에게 공지되어 있는 임의의 다른 방법을 이용할 수 있다. 일단 SPT가 생성되면, SPT 생성기(450)는 SPT가 현재 네트워크 상태를 표현하는 경우 SPT를 전송 테이블 생성기로 송신할 수 있다. 한편, 새로운 SPT가 아래에서 더 자세하게 기술되는 바와 같이 예측된 네트워크 상태를 표현하면, SPT 생성기(450)는 미래에 사용이 가능하도록 새로운 SPT를 네트워크 상태 머신(430)에 넘겨줄 수 있다. 네트워크 상태 머신(430)은 그 후에 자기 자신의 국지 메모리 또는 노드(400) 내의 다른 저장 디바이스 내에 SPT를 저장할 수 있다.
전송 테이블 생성기(460)는 하드웨어 및/또는 머신 판독 가능 저장 매체 상에서 수행 가능한 명령들을 포함하여 SPT에 기초하여 전송 테이블을 생성하거나 갱신하도록 구성될 수 있다. 예를 들어, 전송 테이블 생성기는 전송 테이블 스토리지(470) 내의 임의의 엔트리들이 네트워크 노드(400)에 대한 현재의 SPT에 기초하여 추가되거나 수정되어야 하는지를 결정할 수 있다.
전송 테이블 스토리지(470)는 전송 테이블을 저장할 수 있는 임의의 머신 판독 가능 매체일 수 있다. 따라서, 전송 테이블 스토리지(470)는 판독 전용 메모리(ROM), 임의 접근 메모리(RAM), 자기 디스크 저장 매체, 광 저장 매체, 플래시 메모리 디바이스들, 및/또는 유사한 저장 매체와 같은 머신 판독 가능 저장 매체를 포함할 수 있다. 전송 테이블 스토리지(470)는 노드(400) 내의 독자적 저장 디바이스일 수 있거나 네트워크 상태 이력 스토리지(440)와 동일할 수 있다.
네트워크 상태 예측기(480)는 하드웨어 및/또는 머신 판독 가능 저장 매체 상에서 수행 가능한 명령들을 포함하여 가능한 미래의 네트워크 상태들을 예측하도록 구성될 수 있다. 그와 같은 예측은 예를 들어 현재 네트워크 상태, 이전에 확인된 네트워크 상태들, 잠재적인 변경들의 확률, 및 네트워크에 대한 잠재적인 변경들의 적절성과 같은 다수의 요인들에 기초할 수 있다. 예를 들어, 현재 이용 가능한 특정한 링크가 전송 테이블에 대한 변경을 발생시키는 결함 상태에 자주 진입했음을 네트워크 상태 이력 스토리지(440) 내의 데이터가 나타내는 경우, 네트워크 상태 예측기(480)는 상기 링크가 다음 LSA에서 결함이 난 것으로 나타날 가능성이 있음을 나타낼 수 있다. 한편, 자주 실패한 링크가 전송 테이블의 변경을 드물게 요구하고 있다고 네트워크 상태 예측기가 결정하는 경우, 네트워크 상태 예측기(480)는 이 잠재적 상태를 보고하거나 가능성 있는 미래의 상태로 고려하지 않을 것이다. 어떤 네트워크 상태들이 미리 계산에 가장 유용한지를 결정하는데 많은 방법들 및 기준들이 이용될 수 있음은 명백할 것이다.
네트워크 상태 예측기(480)는 네트워크 노드(400)가 다른 임무들을 수행하는데 사용되고 있는 않는 동안 미래의 네트워크 상태들을 예측하기 위해 네트워크 노드(400)의 유휴 시간을 이용할 수 있다. 네트워크 상태 예측기(480)는 한번에 하나의 상태를 예측할 수 있거나 예측된 상태들의 목록을 생성할 수 있다. 그와 같은 목록은 확률/적절성에 대한 내림 차순으로 순서화될 수 있다. 그 후에, 네트워크 상태 예측기(480)는 예측된 상태들 각각에 대해 SPT들이 미리 계산될 수 있도록 네트워크 노드(400)의 유휴 시간 동안 예측된 상태들을 최단 경로 트리 생성기로 송신할 수 있다. 유휴 시간은 네트워크 노드(400)에 의해 노드(400) 프로세서가 다른 임무들을 수행하는데 사용되지 않는 시간으로서 식별될 수 있다. 네트워크 상태 예측기(480)는 이 방식으로 특정한 수의 상태들과 연관되는 SPT들이 미리 계산될 때까지 또는 미리 결정된 SPT들을 저장하는데 특정한 양의 메모리가 이용될 때까지 이 방식으로 계속될 것이다.
일부 실시예들에서, 네트워크 상태 예측기(480)는 임의의 루팅 정보에 대한 변경을 발생시키지 않은 미래의 상태들을 예측할 수 있다. 그러한 경우에, 네트워크 상태 머신(430)은 그와 같은 예측들을 무시할 수 있거나 현재의 SPT가 이용될 수 있거나 그와 같은 네트워크 변경에 응답하여 어떠한 조치도 취해지지 않아야 한다는 표시를 저장할 수 있다.
네트워크 상태가 변경되면, 네트워크 상태 예측기(480)는 스크래치(scratch)로부터 시작하여 새로운 세트의 예측된 상태들 및 SPT들을 생성할 수 있다. 대안으로, 네트워크 상태 예측기(480)는 이전에 미리 계산된 SPT들을 재사용하는 시도를 하여, 현재 네트워크 상태를 고려하여 가장 적게 적절하거나 발생할 가능성이 최소인 것들만을 대체할 수 있다.
예시적인 노드(400)가 미리 계산한 최단 경로 트리들로 기술될지라도, 다양한 대안의 실시예들이 대안 또는 추가 유형들의 라우팅 정보를 미리 계산할 수 있음이 주목되어야 한다. 예를 들어, 노드(도시되지 않음)는 전송 테이블 자체, 이의 일부, 라우팅 테이블, 또는 이의 일부를 미리 계산할 수 있다. OSPF 이외의 표준들을 이용하는 시스템들의 경우, 상기 표준들에 특정한 라우팅 정보는 미리 계산될 수 있다. 그와 같은 대안의 실시예들을 구현하는데 유용한 수정들은 당업자에게 분명할 것이다.
도 5는 가능성 있는 미래의 네트워크 상태들을 예측하는 예시적인 예측 노드(500)를 도시한다. 예측 노드(500)는 예시적인 네트워크(100) 내의 하나 이상의 노드들 A 내지 G(110 내지 170) 또는 추가 노드(도시되지 않음)에 대응할 수 있다. 예측 노드(500)는 미래의 SPT들을 예측하기 위해 하나 이상의 노드들 A 내지 G(110 내지 170)과 함께 동작하도록 적응될 수 있다. 예측 노드(500)는 패킷 수신기(505), 네트워크 상태 이력 식별자(510), 네트워크 상태 예측 생성기(520), 패킷 송신기(525), 네트워크 상태 이력 스토리지(540), 및 네트워크 상태 예측기(580)를 포함할 수 있다. 예측 노드(500)는 추가적인 다른 구성요소들을 포함할 수 있다. 예를 들어, 예측 노드(500)가 또한 라우터인 다른 실시예들에서, 예측 노드(500)는 네트워크 노드(400)의 하나 이상의 요소들을 포함할 수 있다.
패킷 수신기(505)는 하드웨어 및/또는 머신 판독 가능 저장 매체 상에 인코딩되는 수행 가능 명령들을 포함하여 다른 네트워크 디바이스들로부터 패킷들을 수신하도록 구성되는 인터페이스일 수 있다. 패킷 수신기(505)는 다수의 포트들을 포함할 수 있고 다수의 네트워크 디바이스들로부터 패킷들을 수신할 수 있다. 예를 들어, 패킷 수신기(505)는 링크 상태 광고 패킷들, 다른 네트워크 상태 이력 패킷들, 및/또는 정규 네트워크 트래픽과 연관되는 패킷들을 수신할 수 있다.
네트워크 상태 이력 식별자(510)는 하드웨어 및/또는 머신 판독 가능 저장 매체 상에서 수행 가능한 명령들을 포함하여 패킷 수신기(505)를 통해 수신되는 패킷이 네트워크 상태 이력을 포함하는지를 결정하도록 구성될 수 있다. 일부 실시예들에서, 그와 같은 패킷은 LSA일 수 있다. 다른 네트워크 노드들이 네트워크 상태에 관한 정보를 통신하도록 적응되는 다른 실시예들에서, 그와 같은 패킷은 특별하게 구성되어 다른 노드에 의해 예측 노드(500)로 송신되는 패킷일 수 있다. 그러한 패킷들은 주기적으로, 또는 발신하는 노드에 의해 확인되는 네트워크 상태에 대한 갱신이 있을 때마다 송신될 수 있다. 네트워크 상태 이력 패킷을 식별하자마자, 네트워크 상태 이력 식별자(510)는 갱신을 반영하기 위해 네트워크 상태 이력 스토리지에 저장된 데이터를 갱신할 수 있다.
네트워크 상태 예측 생성기(520)는 하드웨어 및/또는 머신 판독 가능 저장 매체 상에서 수행 가능한 명령들을 포함하여 다른 노드들로 송신하기 위한 네트워크 상태 예측 메시지들을 생성하도록 구성될 수 있다. 예를 들어, 네트워크 상태 예측 생성기(520)는 단일 네트워크 상태 예측 또는 네트워크 상태 예측기(580)에 의해 생성되는 네트워크 상태 예측들의 순서화된 목록을 포함하는 패킷을 구성할 수 있다. 그 후에, 네트워크 상태 예측 생성기는 새로운 패킷을 패킷 송신기(525)를 통해 하나 이상의 다른 노드들로 송신할 수 있다. 아래에서, 네트워크 상태 예측기(580)를 참조하여 기술되는 바와 같이, 예측들은 다수의 노드들 또는 단 하나의 단일 노드에 적용 가능할 수 있다. 네트워크 상태 예측 생성기(520)는 예측이 적용 가능한 그러한 노드들에만 새로운 패킷을 전송할 수 있다.
패킷 송신기(525)는 하드웨어 및/또는 머신 판독 가능 저장 매체 상에 인코딩되는 수행 가능 명령들을 포함하여 다른 네트워크 디바이스들로 패킷들을 송신하도록 구성되는 인터페이스일 수 있다. 패킷 송신기(525)는 다수의 포트들을 포함할 수 있고 다수의 네트워크 디바이스들로 패킷들을 송신할 수 있다. 예를 들어, 패킷 송신기(525)는 링크 상태 광고 패킷들, 네트워크 상태 예측 패킷들, 및/또는 정규 네트워크 트래픽과 연관되는 패킷들을 송신할 수 있다.
네트워크 상태 이력 스토리지(540)는 이전 및/또는 현재 네트워크 상태들의 표현들을 저장할 수 있는 임의의 머신 판독 가능 매체일 수 있다. 따라서, 네트워크 상태 이력 스토리지(540)는 판독 전용 메모리(ROM), 임의 접근 메모리(RAM), 자기 디스크 저장 매체, 광 저장 매체, 플래시 메모리 디바이스들, 및/또는 유사한 저장 매체와 같은 머신 판독 가능 저장 매체를 포함할 수 있다.
네트워크 상태 예측기(580)는 하드웨어 및/또는 머신 판독 가능 저장 매체 상에서 수행 가능한 명령들을 포함하여 가능한 미래의 네트워크 상태들을 예측하도록 구성될 수 있다. 이 점에 있어서, 네트워크 상태 예측기는 네트워크 상태 예측기(480)와 유사하거나 동일할 수 있다.
네트워크 상태 예측기(580)는 특정한 노드들에 대한 컨텍스트 내에 예측들을 생성하도록 더 적응될 수 있다. 따라서, 네트워크 상태 예측기는 네트워크 내의 상이한 노드들에 대해 상이한 예측들을 생성할 수 있다. 예를 들어, 네트워크 상태 예측기는 하나의 가능성 있는 미래의 네트워크 상태가 제 1 노드의 전송 테이블에 대한 갱신을 필요로 하지만 제 2 노드의 전송 테이블에 대한 갱신을 필요로 하지 않는다고 결정할 수 있다. 따라서, 네트워크 상태 예측기(580)는 이 미래의 네트워크 상태가 제 1 노드에는 보고되어야 하지만 제 2 노드에 보고되지 않아야 한다는 것을 나타낼 수 있다.
도 6은 패킷들을 라우팅하고 예측 노드와 협력하여 네트워크 수렴 시간을 단축시키는 네트워크 노드(600)의 예시적인 실시예를 도시한다. 네트워크 노드(600)는 예시적인 네트워크(100) 내의 하나 이상의 노드들 A 내지 G(110 내지 170)에 대응할 수 있다. 네트워크 노드(600)는 패킷 수신기(405), 네트워크 상태 예측 식별자(680), 링크 상태 광고(LSA) 식별자(410), 라우팅 프로세서(420), 패킷 송신기(425), 네트워크 상태 머신(430), 예측 스토리지(685), 최단 경로 트리(SPT) 생성기(450), 전송 테이블 생성기(460), 전송 테이블 스토리지(470), 및 네트워크 상태 예측기(480)를 포함할 수 있다. 따라서, 네트워크 노드(600)의 다수의 요소들은 네트워크 노드(400)의 다양한 요소들과 유사하거나 동일할 수 있다.
네트워크 상태 예측 식별자(680)는 하드웨어 및/또는 머신 판독 가능 저장 매체 상에서 수행 가능한 명령들을 포함하여 수신된 패킷이 예측 노드(500)에 의해 구성되고 송신되는 네트워크 상태 예측 메시지와 같은 네트워크 상태 예측을 포함하는지를 결정하도록 구성될 수 있다. 수신된 패킷이 그러한 정보를 포함하는 경우, 네트워크 상태 예측 식별자(680)는 패킷으로부터 하나 이상의 네트워크 상태 예측들을 추출하고 이 추출된 예측들을 예측 스토리지(685)에 저장할 수 있다. 그 후에, 최단 경로 트리 생성기(450)는 네트워크 노드(600)의 유휴 프로세싱 기간을 이용하여 예측된 네트워크 상태들에 따라 SPT들을 계산하고 네트워크 상태 머신(430)을 갱신한다.
예측 스토리지(685)는 현재 및/또는 예측된 네트워크 상태들의 표현들을 저장할 수 있는 임의의 머신 판독 가능 매체일 수 있다. 따라서, 예측 스토리지(685)는 판독 전용 메모리(ROM), 임의 접근 메모리(RAM), 자기 디스크 저장 매체, 광 저장 매체, 플래시 메모리 디바이스들, 및/또는 유사한 저장 매체와 같은 머신 판독 가능 저장 매체를 포함할 수 있다.
도 7은 가능성 있는 미래의 네트워크 상태들을 예측하는 예측 노드(700)의 대안의 실시예를 도시한다. 예측 노드(700)는 예시적인 네트워크(100) 내의 하나 이상의 노드들 A 내지 G(110 내지 170) 또는 추가 노드(도시되지 않음)에 대응할 수 있다. 예측 노드(700)는 미래의 SPT들을 예측하기 위해 하나 이상의 노드들 A 내지 G(110 내지 170)과 함께 동작하도록 적응될 수 있다. 예측 노드(700)는 패킷 수신기(505), 네트워크 상태 이력 식별자(510), 패킷 송신기(525), 네트워크 상태 이력 스토리지(540), 네트워크 상태 예측기(580), 최단 경로 트리 생성기(750), 및 최단 경로 트리 메시지 생성기(790)를 포함할 수 있다. 따라서, 예측 노드(700)의 다수의 요소들은 예측 노드(500)의 다양한 요소들과 유사하거나 동일할 수 있다. 예측 노드(700)는 추가적인 다른 구성요소들을 포함할 수 있다. 예를 들어, 예측 노드(700)가 또한 라우터인 다른 실시예들에서, 예측 노드는 네트워크 노드(400)의 하나 이상의 요소들을 포함할 수 있다.
최단 경로 트리(SPT) 생성기(750)는 하드웨어 및/또는 머신 판독 저장 매체 상에서 수행 가능한 명령들을 포함하여 네트워크의 표현으로부터 최단 경로 트리를 생성하도록 구성될 수 있다. 따라서, SPT 생성기(750)는 네트워크 노드(400)의 SPT 생성기(450)와 유사하거나 동일할 수 있다. SPT 생성기(750)는 예측 노드(700)의 유휴 시간을 이용하여 네트워크 상태 예측 생성기(580)에 의해 생성되는 예측된 네트워크 상태들에 대한 하나 이상의 SPT들을 생성할 수 있다.
최단 경로 트리(SPT) 메시지 생성기(790)는 하드웨어 및/또는 머신 판독 가능 저장 매체 상에서 수행 가능한 명령들을 포함하여 다른 노드들로 송신하기 위한 SPT 예측 메시지들을 생성하도록 구성될 수 있다. 예를 들어, SPT 메시지 생성기(790)는 단일 네트워크 상태 예측을 포함하는 패킷을 구성하고 SPT 또는 네트워크 상태 예측들의 순서화된 목록을 네트워크 상태 예측기(580) 및 SPT 생성기(750)에 의해 생성되는 연관된 SPT들과 연계시킬 수 있다. 그 후에, SPT 메시지 생성기(790)는 새로운 패킷을 패킷 송신기(525)를 통해 하나 이상의 다른 노드들로 송신할 수 있다. 상술한 바와 같이, 예측들은 다수의 노드들 또는 단 하나의 단일 노드에 적용 가능할 수 있다. SPT 메시지 생성기(790)는 예측이 적용 가능한 그러한 노드들에만 새로운 패킷을 전송할 수 있다.
도 8은 패킷들을 라우팅하고 예측 노드와 협력하여 네트워크 수렴 시간을 단축시키는 네트워크 노드(800)의 대안의 실시예를 도시한다. 네트워크 노드(800)는 예시적인 네트워크(100) 내의 하나 이상의 노드들 A 내지 G(110 내지 170)에 대응할 수 있다. 네트워크 노드(800)는 패킷 수신기(405), 최단 경로 트리(SPT) 메시지 식별자(895), 링크 상태 광고(LSA) 식별자(410), 라우팅 프로세서(420), 패킷 송신기(425), 네트워크 상태 머신(430), 최단 경로 트리(SPT) 생성기(450), 전송 테이블 생성기(460), 전송 테이블 스토리지(470), 및 네트워크 상태 예측기(480)를 포함할 수 있다. 따라서, 네트워크 노드(800)의 다수의 요소들은 네트워크 노드(400) 및/또는 네트워크 노드(600)의 다양한 요소들과 유사하거나 동일할 수 있다.
최단 경로 트리(SPT) 메시지 식별자(895)는 하드웨어 및/또는 머신 판독 가능 저장 매체 상에서 수행 가능한 명령들을 포함하여 수신된 패킷이 예측 노드(700)에 의해 생성되는 SPT 메시지와 같은 하나 이상의 예측된 SPT들을 포함하는지를 결정하도록 구성될 수 있다. 수신된 패킷이 그와 같은 정보를 포함하는 경우, SPT 메시지 식별자(895)는 잠재적인 미래에 사용하기 위해 예측된 SPT들을 네트워크 상태 머신(430)에 전송할 수 있다.
도 9는 미리 계산된 라우팅 정보를 찾는 예시적인 상태 머신(900)을 도시한다. 상태 머신(900)은 네트워크 상태 머신(430)에 의해 관리되는 하나 이상의 데이터 구조들 및/또는 이들의 프로그래밍에 대응할 수 있다. 상태 머신(900)은 현재 상태(910), 다수의 잠재적 상태들(920, 930, 940) 및 다수의 잠재적 전이들(911, 912, 913, 914)을 포함할 수 있다. 각각의 상태(910, 920, 930, 940)는 SPT와 더 연관될 수 있다.
전이(911)는 현재 상태(910)에서 발생하고 종료한다. 전이(911)는 노드 B(120) 및 노드 G(170) 사이의 링크가 10의 링크 코스트로 복원되었음을 LSA가 나타내야 하는 경우 자신이 적용 가능할 것임을 나타낸다. 전이(911)가 동일한 상태로 역 루프하기 때문에, 이 전이는 그와 같은 LSA의 이벤트에서 노드에 대한 적절한 SPT에 어떠한 변경도 행해지지 않을 것임을 나타낸다. 노드는 그 후에 어떠한 추가 조치도 불필요하다고 결정할 수 있다.
전이(912)는 현 상태(910)에서 발생하고, 잠재적 상태(920)에서 종료하며 노드 C(130) 및 노드 D(140) 사이의 링크의 실패를 나타내는 LSA에 적용 가능할 것이다. 그러한 이벤트에서, 노드는 상태(920)와 연관되는 SPT를 이용하고 결과적으로 새로 실패된 링크의 이용을 피할 것이다.
전이(913)는 현재 상태(910)에서 발생하고, 잠재적 상태(930)에서 종료하며, 장애 노드 B(120)를 나타내는 LSA에 적용 가능할 것이다. 이와 같은 이벤트에서, 노드는 상태(930)와 연관되는 SPT를 이용하고 결과적으로 절대적으로 필요하지 않는 한 트래픽을 노드 B(120)로 송신하는 것을 피할 것이다. 이 예에서, 노드 B(120)로 지향되는 트래픽만이 노드 B(120)로 송신될 것이다.
전이(914)는 현 상태(910)에서 발생하고, 점재적 상태(940)에서 종료하며, 노드 F(160)에만 접속되는 새로운 노드 H(도시되지 않음)가 네트워크에 추가되었음을 나타내는 LSA에 적용 가능할 것이다. 이와 같은 이벤트에서, 노드는 상태(940)와 연관되는 SPT를 이용하고 그 후에 트래픽을 노드 D(140)를 경유하여 새 노드로 송신할 것이다.
도시된 전이 기준은 예로서 의도된 것임이 주목되어야 한다. 추가 전이 기준들이 당업자에게 명백할 것이다. 예를 들어, 네트워크로부터 노드의 제거가 기준으로 이용될 수 있다. 추가적인 예로서, 다수의 변경들은 단일 전이에서 나타날 수 있다. 예를 들어, B에서의 결함 및 B 및 G 사이의 링크 이 둘 모두를 보고하는 LSA에 적용 가능한 전이(도시되지 않음)는 상태(910)으로부터 상태(913)까지 추가될 수 있다.
도 10은 네트워크 수렴 시간을 단축시키는 예시적인 방법(1000)을 도시한다. 방법(1000) 또는 이의 일부분들은 네트워크 노드(400, 500, 600, 700, 및/또는 800)의 구성요소들에 의해 수행될 수 있다.
방법(1000)은 단계 1000에서 시작해서 단계 1010으로 진행되고, 여기서 네트워크 노드는 LSA를 수신한다. 그 후에, 단계 1020에서, 노드는 네트워크 상태가 무엇인지를 결정할 수 있다. 예를 들어, 노드는 상술한 바와 같이 LSA를 상태 머신들에 적용할 수 있다. 단계 1030에서, 노드는 최단 경로 트리(SPT)가 새로운 네트워크 상태에 대해 이미 계산되었는지를 결정할 수 있다. 예를 들어, 노드는 LSA에 대한 상태 머신 내에 상태가 존재하는지 그리고/또는 SPT가 상기 상태와 연관되는지를 결정할 수 있다. 만일 그렇다면, 노드는 단계 1040에서 미리 계산된 SPT를 간단하게 검색할 수 있다.
한편, 미리 계산된 SPT가 이용 가능하지 않은 경우, 노드는 단계 1050에서 새로운 SPT를 계산할 수 있다. 조달 방법과는 관계 없이, 일단 SPT가 이용 가능하면, 노드는 단계 1060에서 전송 테이블을 생성하도록 진행될 수 있다.
제 2 노드가 도 7 및 도 8의 실시예들에서와 같이, 다른 노드들에 대해 예측된 SPT들을 생성하는 다양한 실시예들에서, 방법(1000)은 단계 1095로 직접 진행될 수 있다. 그렇지 않으면, 방법(1000)은 단계 1065로 진행될 수 있고, 여기서 노드는 노드의 CPU들 또는 코어들 중 적어도 하나가 현재 유휴인지의 여부를 결정할 수 있다. 방법(1000)은 진행되기 전에 단계 1065에서 CPU가 유휴가 될 때까지 대기할 수 있다. 대안으로, 방법(1000)은 이 대기 기간 동안 새로운 LSA의 수신과 같은 다른 이벤트들에 의해 중단되거나 중지될 수 있다. CPU가 현재 유휴라고 노드가 결정하면, 방법(1000)은 단계 1070으로 진행될 수 있다. 단계 1070에서, 노드는 추가 SPT를 저장하는데 충분한 메모리가 이용 가능한지를 결정할 수 있다. 대안으로 또는 추가로, 노드는 만족스런 수의 SPT들이 미리 계산되었는지를 결정할 수 있다. 더 많은 SPT들이 미리 계산될 수 있고/있거나 계산되어야 하는 경우, 방법(1000)은 단계 1080로 진행된다. 다양한 실시예들에서, 예측된 상태에 대한 SPT들을 수용하기 위해, 하나 이상 또는 미만의 관련 SPT들이 메모리로부터 제거될 수 있다.
단계 1080에서, 노드는 예측된 상태를 결정한다. 이것은 미래의 상태를 국지적으로 예측하고/하거나 외부 노드에 의해 제공되는 예측된 상태를 판독하는 단계들을 포함할 수 있다. 방법(1000)은 그 후에 단계 1090으로 진행되고, 여기서 노드는 예측된 네트워크 상태에 기초하여 새로운 SPT를 계산한다. 방법(1000)은 그 후에 루프를 단계 1065로 돌아가서 프로세스를 반복한다.
일단 메모리가 가득 차거나 또는 만족할만한 수의 SPT들이 미리 계산되면, 실시예에 따라, 방법(1000)은 단계 1070로부터 진행되어 단계 1095에서 종료될 것이다.
노드가 미리 계산된 SPT들일지라도, 새로운 LSA들이 도달할 수 있음이 명백할 것이다. 다양한 실시예들은 단계들 1070 내지 1090의 SPT 사전 계산 절차가 새로운 LSA를 처리하기 위해 중단되거나 일찍 중지될 수 있도록 제공될 수 있다. 실제의 구현을 위한 추가적인 수정들은 당업자에게 명백할 것이다.
상술한 바에 따르면 다양한 예시적인 실시예들로 인해 네트워크 수렴 시간의 단축이 가능하다. 특히, 가능성이 있는 미래의 네트워크 상태들에 대한, SPT들 및/또는 전송 테이블들과 같은 라우팅 정보를 미리 계산함으로써, 네트워크 노드는 네트워크가 실제로 변경된 이후에 전송 테이블을 갱신하는데 소요되는 시간의 양을 줄일 수 있다.
본 발명의 다양한 예시적인 실시예들은 하드웨어, 소프트웨어, 및/또는 펌웨어에서 구현될 수 있음이 상술한 설명으로부터 명백할 것이다. 게다가, 다양한 예시적인 실시예들은 본원에서 상세하게 설명된 동작들을 수행하기 위해 적어도 하나의 프로세서에 의해 판독되고 실행될 수 있는 머신 판독 가능 저장 매체 상에 저장되는 명령들로서 구현될 수 있다. 머신 판독 가능 저장 매체는 개인용 또는 랩탑 컴퓨터, 서버, 또는 다른 컴퓨팅 디바이스와 같은 머신에 의해 판독 가능한 형태로 정보를 저장하는 임의의 메커니즘을 포함할 수 있다. 그러므로, 머신 판독 가능 매체는 판독 전용 메모리(read only memory: ROM), 임의 접근 메모리(random access memory: RAM), 자기 디스크 저장 매체; 광 저장 매체, 플래시 메모리 디바이스들, 및 유사한 저장 매체를 포함할 수 있다.
“프로세서들”로서 라벨링된 임의의 기능 블록들을 포함하는 도면들에 도시된 다양한 요소들의 기능들은 전용 하드웨어뿐만 아니라 적절한 소프트웨어와 연관되어 소프트웨어를 실행시킬 수 있는 하드웨어를 이용함으로써 제공될 수 있다. 프로세서에 의해 제공될 때 상기 기능들은 단일 전용 프로세서에 의해, 단일 공유 프로세서에 의해, 또는 일부가 공유될 수 있는 복수의 개별 프로세서들에 의해 제공될 수 있다. 더욱이, 용어 “프로세서” 또는 “제어기”의 명시적인 사용이 소프트웨어를 실행시키는 하드웨어를 배타적으로 칭하는 것으로 해석되어서는 안 되며, 제한 없이, 디지털 신호 프로세서(digital signal processor; DSP) 하드웨어, 네트워크 프로세서, 주문형 반도체(application specific integrated circuit; ASIC), 필드 프로그래머블 게이트 어레이(field programmable gate array; FPGA), 소프트웨어를 저장하는 판독 전용 메모리(“ROM”), 임의 액세스 메모리(“RAM”), 및 비휘발성 스토리지를 암시적으로 포함할 수 있다. 종래의 그리고/또는 주문형의 다른 하드웨어 또한 포함될 수 있다. 유사하게, 도면들에 도시된 스위치들은 단지 개념적인 것이다. 이들의 기능은 프로그램 논리의 동작을 통해, 전용 논리를 통해, 프로그램 제어 및 전용 논리의 상호 작용을 통해 수행될 수 있고, 특정 기술은 컨텍스트에서 더 특별하게 이해되는 바와 같이 구현자에 의해 선택 가능할 수 있다.
본원에서의 어떠한 블록도들도 본 발명의 원리들을 구현하는 예시적인 회로소자의 개념도들을 표현하는 것임이 당업자에 의해 인정될 것이다. 유사하게, 임의의 흐름도들, 플로우 다이어그램들, 상태 전이도들, 의사코드(pseudocode) 등은 머신 판독 가능 매체에서 실질적으로 표현될 수 있으므로 컴퓨터 또는 프로세서가 명시적으로 도시되거나 도시되지 않더라도 그와 같은 컴퓨터 또는 프로세서에 의해 수행될 수 있는 다양한 프로세스들을 표현하는 것임이 인정될 것이다.
다양한 예시적인 실시예들이 특히 자체의 특정한 예시적인 양태들을 참조하여 상세하게 기술되었을지라도, 본 발명은 다른 실시예들이 가능하며 이의 세부사항들은 다양한 분명한 점들에서 수정들이 가능하다는 것이 이해되어야 한다. 당업자에게 바로 분명해지는 바와 같이, 변형들 및 수정들이 본 발명의 정신 및 범위 내에서 유지되면서 달성될 수 있다. 따라서, 상술한 개시, 설명 및 도면들은 단지 설명을 위한 것으로서 임의로 본 발명을 제한하지 않으며, 본 발명은 청구항들에 의해서만 정의된다.

Claims (10)

  1. 네트워크 노드에서 수행되는 네트워크 내의 라우팅 경로 수렴 시간을 단축시키는 방법으로서,
    예측되는 미래의 네트워크 상태들의 순서화된 세트를 생성하는 단계 - 상기 예측되는 미래의 네트워크 상태들의 순서화된 세트는 미래의 네트워크 상태들 각각으로의 네트워크 전이(transitioning) 확률에 기초하여 순서화됨 - 와,
    상기 예측되는 미래의 네트워크 상태들의 순서화된 세트 내에서 라우팅 정보가 아직 계산되지 않은 제 1 미래의 네트워크 상태를 결정하는 단계와,
    상기 제 1 미래의 네트워크 상태에 기초하여 예측되는 라우팅 정보를 계산하는 단계와,
    제 1 네트워크 노드에서, 상기 제 1 미래의 네트워크 상태와 관련하여 상기 예측되는 라우팅 정보를 저장하는 단계와,
    상기 제 1 네트워크 노드에서, 현재의 네트워크 상태가 구 네트워크 상태로부터 새로운 네트워크 상태로 변경되었다는 표시를 수신하는 단계와,
    상기 제 1 네트워크 노드가 상기 새로운 네트워크 상태와 연관되는 미리 계산된 라우팅 정보에 액세스하는지를 결정하는 단계와,
    상기 제 1 네트워크 노드가 상기 새로운 네트워크 상태와 연관되는 상기 미리 계산된 라우팅 정보에 액세스하는 경우, 미래의 네트워크 트래픽을 라우팅하기 위해 상기 미리 계산된 라우팅 정보를 이용하는 단계와,
    상기 제 1 네트워크 노드가 상기 새로운 네트워크 상태와 연관되는 상기 미리 계산된 라우팅 정보에 액세스하지 않는 경우, 상기 미래의 네트워크 트래픽을 라우팅하기 위해 새로운 라우팅 정보를 계산하고 상기 새로운 라우팅 정보를 이용하는 단계를 포함하는
    라우팅 경로 수렴 시간을 단축시키는 방법.
  2. 삭제
  3. 제 1 항에 있어서,
    상기 예측되는 라우팅 정보를 계산하는 단계는 상기 제 1 네트워크 노드와 별개인 제 2 네트워크 노드에서 수행되는
    라우팅 경로 수렴 시간을 단축시키는 방법.
  4. 삭제
  5. 제 1 항에 있어서,
    상기 미리 계산된 라우팅 정보 및 상기 새로운 라우팅 정보는 모두 최단 경로 트리들 또는 전송 테이블들(forwarding tables)인
    라우팅 경로 수렴 시간을 단축시키는 방법.
  6. 제 1 항에 있어서,
    상기 미래의 네트워크 트래픽을 라우팅하기 위해 상기 미리 계산된 라우팅 정보를 이용하는 단계는,
    상기 미리 계산된 라우팅 정보에 기초하여 전송 테이블을 계산하는 단계를 더 포함하는
    라우팅 경로 수렴 시간을 단축시키는 방법.
  7. 제 1 항에 있어서,
    상기 현재 네트워크 상태가 변경되었다는 상기 표시를 수신하는 단계 이후에, 상기 제 1 네트워크 노드에서 상기 구 네트워크 상태와 관련하여 상기 구 네트워크 상태와 연관되는 구 라우팅 정보를 저장하는 단계를 더 포함하는
    라우팅 경로 수렴 시간을 단축시키는 방법.
  8. 네트워크 내의 라우팅 경로 수렴 시간을 단축시키는 제 1 네트워크 노드로서,
    네트워크 상태 정보를 수신하는 제 1 인터페이스와,
    상기 네트워크 상태 정보에 기초하여 예측되는 미래의 네트워크 상태들의 순서화된 세트를 예측하는 네트워크 상태 예측기 - 상기 예측되는 미래의 네트워크 상태들의 순서화된 세트는 미래의 네트워크 상태들 각각으로의 네트워크 전이 확률에 기초하여 순서화됨 - 를 포함하고,
    상기 예측되는 미래의 네트워크 상태들의 순서화된 세트에 기초하여 적어도 하나의 라우팅 정보 세트를 생성하는 라우팅 정보 생성기를 포함하는
    제 1 네트워크 노드.
  9. 제 8 항에 있어서,
    적어도 하나의 상기 미래의 네트워크 상태들을 포함하는 예측 메시지를 생성하는 네트워크 상태 예측 생성기와,
    상기 예측 메시지를 제 2 네트워크 노드로 송신하는 제 2 인터페이스를 더 포함하는
    제 1 네트워크 노드.
  10. 제 8 항에 있어서,
    제 2 인터페이스와,
    전송 테이블을 저장하는 전송 테이블 스토리지와,
    라우팅 프로세서를 더 포함하고, 상기 라우팅 프로세서는,
    상기 제 1 인터페이스를 통해 네트워크 트래픽을 수신하고,
    상기 전송 테이블을 이용하여 상기 네트워크 트래픽의 다음 홉을 결정하고,
    상기 네트워크 트래픽을 상기 제 2 인터페이스를 통해 상기 다음 홉으로 송신하는
    제 1 네트워크 노드.
KR1020137012207A 2010-11-12 2011-10-03 라우팅 정보의 룩헤드 계산 KR101463364B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/944,928 2010-11-12
US12/944,928 US8516152B2 (en) 2010-11-12 2010-11-12 Lookahead computation of routing information
PCT/US2011/054625 WO2012064423A1 (en) 2010-11-12 2011-10-03 Lookahead computation of routing information

Publications (2)

Publication Number Publication Date
KR20130087535A KR20130087535A (ko) 2013-08-06
KR101463364B1 true KR101463364B1 (ko) 2014-11-19

Family

ID=44860515

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020137012207A KR101463364B1 (ko) 2010-11-12 2011-10-03 라우팅 정보의 룩헤드 계산

Country Status (6)

Country Link
US (1) US8516152B2 (ko)
EP (1) EP2638667A1 (ko)
JP (1) JP5622942B2 (ko)
KR (1) KR101463364B1 (ko)
CN (1) CN103210616A (ko)
WO (1) WO2012064423A1 (ko)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9479427B2 (en) * 2012-12-21 2016-10-25 Dell Products L.P. System and methods for load placement in data centers
US9471130B2 (en) * 2013-10-25 2016-10-18 Advanced Micro Devices, Inc. Configuring idle states for entities in a computing device based on predictions of durations of idle periods
CN103905318B (zh) * 2014-04-04 2017-12-15 华为技术有限公司 发送、加载转发表项的方法、控制器和转发节点
US9847935B2 (en) * 2014-04-29 2017-12-19 Intel Corporation Technologies for distributed routing table lookup
US20170012869A1 (en) * 2015-07-10 2017-01-12 Microsoft Technology Licensing, Llc Forwarding table management in computer networks
CN108173893B (zh) * 2016-12-07 2021-07-09 诺基亚技术有限公司 用于连网的方法和设备
US11027419B2 (en) * 2018-03-14 2021-06-08 Fedex Corporate Services, Inc. Modular auxiliary power module for a modular autonomous bot apparatus that transports an item being shipped
CN111385194B (zh) * 2018-12-29 2021-02-26 华为技术有限公司 一种网络路径收敛的方法以及相关设备

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030033394A1 (en) * 2001-03-21 2003-02-13 Stine John A. Access and routing protocol for ad hoc network using synchronous collision resolution and node state dissemination

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4905233A (en) * 1987-11-23 1990-02-27 Harris Corporation Multiple path routing mechanism for packet communications network
US6697325B1 (en) * 1999-12-07 2004-02-24 Nortel Networks Limited System, device, and method for expediting reconvergence in a communication network
JP3575381B2 (ja) 2000-03-24 2004-10-13 日本電気株式会社 リンクステートルーティング用通信装置及びリンクステートルーティング用通信方法
US6850524B1 (en) * 2000-07-31 2005-02-01 Gregory Donald Troxel Systems and methods for predictive routing
US7035202B2 (en) * 2001-03-16 2006-04-25 Juniper Networks, Inc. Network routing using link failure information
US7299038B2 (en) * 2003-04-30 2007-11-20 Harris Corporation Predictive routing including the use of fuzzy logic in a mobile ad hoc network
US7382765B2 (en) * 2003-04-30 2008-06-03 Harris Corporation Predictive routing in a moble ad hoc network
ES2409334T3 (es) * 2003-12-23 2013-06-26 Telefonaktiebolaget Lm Ericsson (Publ) Ad hoc predictivo
US8654627B2 (en) * 2007-01-03 2014-02-18 Harris Corporation Data-path dynamic link maintenance in mobile ad hoc networks
US7916657B2 (en) * 2008-01-22 2011-03-29 At&T Intellectual Property Ii, L.P. Network performance and reliability evaluation taking into account abstract components
CN101420384A (zh) * 2008-12-12 2009-04-29 北京邮电大学 一种实现ecmp域内自愈保护的方法
US8274914B2 (en) * 2009-02-03 2012-09-25 Broadcom Corporation Switch and/or router node advertising

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030033394A1 (en) * 2001-03-21 2003-02-13 Stine John A. Access and routing protocol for ad hoc network using synchronous collision resolution and node state dissemination

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
PEYRAVIAN M 외 1인 "Network path caching: Issues, algorithms and a simulation study" Computer Communications 논문 *

Also Published As

Publication number Publication date
JP5622942B2 (ja) 2014-11-12
JP2013546268A (ja) 2013-12-26
CN103210616A (zh) 2013-07-17
EP2638667A1 (en) 2013-09-18
US8516152B2 (en) 2013-08-20
US20120124235A1 (en) 2012-05-17
KR20130087535A (ko) 2013-08-06
WO2012064423A1 (en) 2012-05-18

Similar Documents

Publication Publication Date Title
KR101463364B1 (ko) 라우팅 정보의 룩헤드 계산
JP5956006B2 (ja) ネットワークにおけるメッセージおよび計算オーバーヘッドの軽減
CN114615198B (zh) 内部网关协议洪泛最小化的洪泛链路状态消息方法和节点
JP5095823B2 (ja) トランスポート制御サーバ、ネットワークシステム及びトランスポート制御方法
EP1905196B1 (en) Method and apparatus for updating label-switched paths
US8165121B1 (en) Fast computation of loop free alternate next hops
CN101243648B (zh) 用于使能标签交换数据分组的路由选择的方法和装置
JP5625121B2 (ja) ルーティング情報更新の優先順位付け
US20060013127A1 (en) MPLS network system and node
CN101133596A (zh) 加快边界网关协议收敛的方法和装置
US8798050B1 (en) Re-optimization of loosely routed P2MP-TE sub-trees
US9143399B2 (en) Minimizing the number of not-via addresses
EP2066086A1 (en) Path computing element providing customized objective function
CN116260763A (zh) 路由信息处理方法、ospf设备和ospf网络
JP2007150825A (ja) 通信装置

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
FPAY Annual fee payment

Payment date: 20171103

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee