KR100456674B1 - 스패닝 트리와 회로 검출에 의한 네트워크 경로 설정 방법및 장치 - Google Patents

스패닝 트리와 회로 검출에 의한 네트워크 경로 설정 방법및 장치 Download PDF

Info

Publication number
KR100456674B1
KR100456674B1 KR10-2002-0069412A KR20020069412A KR100456674B1 KR 100456674 B1 KR100456674 B1 KR 100456674B1 KR 20020069412 A KR20020069412 A KR 20020069412A KR 100456674 B1 KR100456674 B1 KR 100456674B1
Authority
KR
South Korea
Prior art keywords
vertex
spanning tree
vertices
links
network
Prior art date
Application number
KR10-2002-0069412A
Other languages
English (en)
Other versions
KR20040041244A (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 한국전자통신연구원
Priority to KR10-2002-0069412A priority Critical patent/KR100456674B1/ko
Priority to US10/699,139 priority patent/US7301912B2/en
Publication of KR20040041244A publication Critical patent/KR20040041244A/ko
Application granted granted Critical
Publication of KR100456674B1 publication Critical patent/KR100456674B1/ko

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • 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

Abstract

스패닝 트리와 회로 검출에 의한 네트워크 경로 설정 방법 및 장치가 개시된다. 본 발명에 의한 네트워크 경로 설정 방법은, 네트워크 상의 연결장치들을 정점으로 하고 상기 연결장치들 사이의 링크를 간선으로 하는 스패닝 트리를 생성하는 단계, 스패닝 트리의 모든 정점에 대해 소정의 정점 정보를 지정하는 단계, 스패닝 트리에 대응하는 원래의 네트워크에서 연결장치 사이에 복수의 경로를 가지는 회로를 모두 찾는 단계, 및 회로에 해당하는 링크들에는 래피드 링 스패닝 트리 프로토콜을 적용하고, 스패닝 트리의 링크 중에서 회로에 해당하지 않는 링크들에는 래피드 스패닝 트리 프로토콜을 적용하는 단계를 포함한다. 루핑이 존재하는 부분과 루핑이 존재하지 않는 부분에 서로 다른 프로토콜을 적용함으로써, 기존의 방법으로 RRSTP를 적용할 수 없었던 토폴로지에 RRSTP를 적용할 수 있고, 기존의 RSTP만을 사용하는 방식에 비해 수렴시간을 줄일 수 있다.

Description

스패닝 트리와 회로 검출에 의한 네트워크 경로 설정 방법 및 장치{Method and apparatus for determining communication path on network using spanning tree and detecting circuits}
본 발명은 컴퓨터 네트워크에 관한 것으로, 특히 스패닝 트리와 회로 검출을 이용한 네트워크 경로 설정 방법 및 장치에 관한 것이다.
네트워크 상의 여러 연결장치간의 경로를 설정하는 방법 중에서, 여러 LAN들을 상호 연결함으로써 발생하는 트래픽 루핑 문제를 해결하기 위해 스패닝 트리 프로토콜(Spanning Tree Protocol, STP)이 IEEE 표준 802.1D로 제안되었다. 스패닝 트리 프로토콜은 주로 기업망에서 브릿지(bridge)를 사용하여 발생하는 루핑(looping) 문제를 해결하는데 사용되었다. 그러나, 통신 시장의 요구가 증대되어 점차 본점과 지점 사이의 연결, 사용자와 기업 사이의 연결, 및 기업 간의 연결을 필요로 하게 되었고, 스패닝 트리 프로토콜은 이러한 요구를 만족시키지 못하고 있다.
스패닝 트리 프로토콜에서 사용되는 스패닝 트리 알고리즘은 트래픽 루핑 문제를 해결하기 위해 루핑을 발생시키는 링크들을 제거하는데, 이러한 방식에서는 알고리즘의 성능과 효율이 떨어지는 문제점이 있다. 또한, 스패닝 트리 알고리즘에 의해 생성된 경로를 가지는 네트워크에서는 실제로 사용 가능한 링크를 블로킹 상태로 둠으로 인해 대역폭을 비효율적으로 활용하게 되는 문제점이 있다.
그리고, 스패닝 트리 상의 링크에 장애가 있는 경우, 네트워크 경로를 재설정하여야 하는데, 이때의 수렴 시간(convergence time)은 약 30초 가량이 되므로 메트로망(Metropolitan area network)과 같은 경우에 있어서는 치명적인 문제점이 된다.
본 발명이 이루고자 하는 기술적 과제는 스패닝 트리와 회로 검출 방법을 이용하여 루핑이 존재하는 부분과 루핑이 존재하지 않는 부분에 서로 다른 프로토콜을 적용함으로써 성능과 효율이 향상된 네트워크 경로 설정 방법 및 장치를 제공하는 것이다.
본 발명이 이루고자 하는 다른 기술적 과제는 상기의 네트워크 경로 설정 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체를 제공하는 것이다.
도 1은 본 발명에 의한 네트워크 경로 설정 방법을 나타낸 흐름도이다.
도 2는 본 발명에 의한 네트워크 경로 설정 방법에 있어서 스패닝 트리를 생성하는 단계의 일 실시예를 나타낸 흐름도이다.
도 3은 본 발명에 의한 네트워크 경로 설정 방법에 있어서 정점 정보인 Location Word를 할당하는 단계의 일 실시예를 나타낸 흐름도이다.
도 4a 및 도 4b는 본 발명에 의한 네트워크 경로 설정 방법에 있어서 정점 정보인 Location Word를 할당하는 단계의 다른 일 실시예를 나타낸 흐름도이다.
도 5는 본 발명에 의한 네트워크 경로 설정 방법에 있어서 회로를 찾는 단계의 일 실시예를 나타낸 흐름도이다.
도 6a 및 도 6b는 본 발명에 의한 네트워크 경로 설정 방법에 있어서 회로를 찾는 단계의 다른 일 실시예를 나타낸 흐름도이다.
도 6c는 본 발명에 의한 네트워크 경로 설정 방법에 있어서 이웃하는 정점 간의 링크에 의해 생성되는 회로를 찾는 방법의 일 실시예를 나타낸 흐름도이다.
도 7a 내지 도 7f는 본 발명에 의한 네트워크 경로 설정 방법을 적용하는 예를 나타낸 프로그램 실행 결과도이다.
상기 기술적 과제를 이루기 위한 본 발명에 의한 네트워크 경로 설정 방법은, 네트워크 상의 연결장치들을 정점으로 하고 상기 연결장치들 사이의 링크를 간선으로 하는 스패닝 트리를 생성하는 단계; 상기 스패닝 트리의 모든 정점에 대해 소정의 정점 정보를 지정하는 단계; 상기 스패닝 트리에 대응하는 원래의 네트워크에서 연결장치 사이에 복수의 경로를 가지는 회로를 모두 찾는 단계; 및 상기 회로에 해당하는 링크들에는 래피드 링 스패닝 트리 프로토콜을 적용하고, 상기 스패닝 트리의 링크 중에서 상기 회로에 해당하지 않는 링크들에는 래피드 스패닝 트리 프로토콜을 적용하는 단계를 포함하는 것이 바람직하다.
상기 기술적 과제를 이루기 위한 본 발명에 의한 네트워크 경로 설정 장치는, 네트워크 상의 연결장치들을 정점으로 하고 상기 연결장치들 사이의 링크를 간선으로 하는 스패닝 트리를 생성하는 스패닝트리생성부; 상기 스패닝 트리의 모든 정점에 대해 소정의 정점 정보를 지정하는 정점정보지정부; 상기 스패닝 트리에 대응하는 원래의 네트워크에서 연결장치 사이에 복수의 경로를 가지는 회로를 모두 찾는 회로탐색부; 및 상기 회로에 해당하는 링크들에는 래피드 링 스패닝 트리 프로토콜을 적용하고, 상기 스패닝 트리의 링크 중에서 상기 회로에 해당하지 않는 링크들에는 래피드 스패닝 트리 프로토콜을 적용하는 스패닝트리프로토콜적용부를 포함하는 것이 바람직하다.
이하, 첨부된 도면들을 참조하여 본 발명에 따른 네트워크 경로 설정 방법 및 장치에 대해 상세히 설명한다.
도 1은 본 발명에 의한 네트워크 경로 설정 방법을 나타낸 흐름도이다.
도 1을 참조하면, 본 발명에 의한 네트워크 경로 설정 방법은 네트워크 상의 연결장치들을 정점으로 하고 상기 연결장치들 사이의 링크를 간선으로 하는 스패닝 트리를 생성하는 단계(101), 스패닝 트리의 모든 정점에 대해 소정의 정점 정보를 지정하는 단계(102), 스패닝 트리에 대응하는 원래의 네트워크에서 연결장치 사이에 복수의 경로를 가지는 회로를 모두 찾는 단계(103), 및 회로에 해당하는 링크들에는 래피드 링 스패닝 트리 프로토콜을 적용하고, 스패닝 트리의 링크 중에서 회로에 해당하지 않는 링크들에는 래피드 스패닝 트리 프로토콜을 적용하는 단계(104)를 포함한다.
네트워크 상에서의 경로 설정에서는 네트워크 상의 연결 장치 특히 브리지 사이의 경로를 설정한다. 브리지는 리피터(repeater)나 허브(hub)와는 달리 이더넷 프레임을 감시하여 네트워크 트래픽이 어느 포트에서 어느 포트로 전달되는가를 학습하여(Learning), 이후 도달한 네트워크 프레임이 어느 포트로 전달되어야 하는지를 아는 경우는 그 포트로 그 프레임을 전송하게 되나, 만일 학습된 정보에 포함되지 않은 목적 주소를 가지는 네트워크 프레임이 도달된 경우는, 그 프레임을 모든 포트로 전송한다(플러딩, flooding).
네트워크 상의 연결장치들 간에는 복수의 경로가 존재할 수 있다. 이러한 복수의 경로를 회로(circuit)라고 하는데, 만약 네트워크 상에 이러한 회로가 있는 경우, 상기와 같은 플러딩이 발생하면, 네트워크 프레임은 이 회로를 순회하며 불필요한 네트워크 트래픽을 생성하게 된다. 이를 브리지 루핑이라고 하는데, 이를 해결하기 위해 스패닝 트리 프로토콜이 제안된 것이다.
스패닝 트리 프로토콜(STP)에서는, 네트워크 상의 연결장치들을 정점(vertex)으로 하고 연결장치들 사이의 링크를 간선(edge)으로 하는 그래프를 가정한다. 이러한 그래프에서 브리지 루핑은 회로를 형성하게 되므로, 이러한 루핑을 제거함과 동시에 모든 연결장치들에 연결되기 위해서는 스패닝 트리를 형성하여 스패닝 트리에 포함되는 링크에 대해서는 네트워크 트래픽을 허용하고, 스패닝 트리에 포함되지 않는 링크는 블록킹하여 네트워크 트래픽을 금지한다. 만일 스패닝 트리 상의 링크에 장애가 발생하면, 이러한 링크를 제외한 그래프에서 스패닝 트리를 생성하여 네트워크 경로를 재설정하게 된다.
이러한 STP에서의 수렴시간이나 대역폭 등 성능 및 효율에서의 문제를 해결하기 위한 방법으로 래피드 스패닝 트리 프로토콜과 래피드 링 스패닝 트리 프로토콜이 있다.
래피드 스패닝 트리 프로토콜(RSTP)은 STP의 긴 수렴 시간을 줄이기 위해 제안되었다. 이 프로토콜은 점대점 링크에서의 연결 복구 작업이 공유 링크에서의 연결 복구보다 간단하다는 점을 이용한다. RSTP에서는 브릿지의 포트가 블로킹(blocking) 상태에서 포워딩(forwarding) 상태로 변경될 때 기존의 STP에서 사용되는 긴 포워드 타이머(forward timer)를 사용하지 않는다. 이것은 점대점 링크에 의해 연결된 브릿지들은 상태 변경을 고려할 포트들의 수가 단 2개라는 점 때문이다. 많은 메트로망들은 점대점 링크에 기반을 두기 때문에 RSTP에서의 빠른 수렴 시간(Convergence Time)은 대단한 성능 향상이라고 할 수 있다. 동시에 RSTP는 STP와의 유사성을 제공하고 기존의 브릿지들과도 상호 연동될 수 있는 호환성도 제공한다.
RSTP에서의 수렴 시간은 2초 내지 3초가 걸린다. 하지만, 이것은 동기식 광 통신망(Synchronous Optical Network, SONET)과 같은 메트로망에서의 요구를 만족시키지는 못한다. 또한, 기존의 메트로망은 메트로 이더넷으로 바뀌고 있다. 이것은 메트로 이더넷이 데이터 트래픽에 적당할 뿐만 아니라 단순하기 때문이다. 하지만, 메트로 이더넷은 SONET에서 제공하는 신뢰성이 부족하다. 이러한 부족한 점을 향상시키기 위해 Riverstone Networks는 래피드 링 스패닝 트리 프로토콜(Rapid Ring Spanning Tree Protocol, RRSTP)을 제안하고 있다.
이더넷은 단순성을 제공할 뿐만 아니라 데이터 트래픽에 적당하다. 하지만, 이더넷은 메트로망에서 요구하는 신뢰성이나 대역폭을 제공하지 못했다. 최근에는 10G 이더넷이 표준화 과정에 있으므로 이더넷이 SONET을 대체할 것으로 예상되고 있다. 또한, 메트로망의 링 토폴로지는 임의의 망보다는 단순하다. 이러한 단순성은 RSTP의 성능을 향상시키는데 도움이 된다.
Riverstone Networks는 링 토폴로지의 특성을 활용하기 위해 RSTP를 수정하였다. 이 토폴로지는 고유한 링(Ring) ID로 각각의 링들을 구분하고 발생되는 BPDU(Bridge Protocol Data Units)들은 링의 경계 밖으로 벗어나지 않는다. 결과적으로, 각각의 링에 대한 스패닝 트리들은 독립적으로 동작하게 된다.
본 발명에서는 RSTP와 RRSTP의 이러한 장점들을 활용하여 네트워크 상에서 루핑이 존재하는 부분과 루핑이 존재하지 않는 부분에서의 STP의 적용을 다르게 함으로써 네트워크 경로 설정에서의 성능과 효율의 향상을 기하고자 한다. 이를 위해 스패닝 트리를 형성한 후(101), 전체 그래프에서의 회로를 검색하여(103), 회로가 존재하는 부분에는 RRSTP를 적용하고, 회로가 존재하지 않는 부분에는 RSTP를 적용하여(104) 양자의 장점을 활용하는 방법을 제안한다.
먼저 스패닝 트리를 생성한다(101). 그런 다음, 스패닝 트리의 루트(Root)와 다른 정점(vertex)들 간의 계층 관계와, 동일한 서브루트(subroot)를 갖는 정점(vertex)들 간의 시블링(sibling) 관계를 의미하는 정점 정보인 Location Word값을 각 Vertex에 할당하는 과정을 수행한다(102). Location Word값을 사용하여 원 네트워크(Original Network) 내의 회로(루핑과 동일한 의미)를 찾는 과정을 수행하고(103) 찾아낸 회로와 스패닝 트리에서 찾아낸 회로를 제거한 부분들에 각각 RRSTP와 RSTP을 적용하는 과정을 수행한다(104).
도 2는 본 발명에 의한 네트워크 경로 설정 방법에 있어서 스패닝 트리를 생성하는 단계의 일 실시예를 나타낸 흐름도이다.
도 2를 참조하면, 스패닝 트리를 생성하기 위해서는, 모든 정점들을 언태그드 정점 리스트에 저장하고(201), 각각의 정점들에 대한 언태그드 간선 리스트에 각 정점에 연결된 모든 링크들을 저장한 뒤(202), 언태그드 정점 리스트에서 임의로 하나의 정점을 선택하여(203), 선택된 정점을 언태그드 정점 리스트에서 삭제하고 태그드 정점 리스트에 저장한다(204). 이 단계에 이르러 태그드 정점 리스트에는 하나의 정점이 저장되고 언태그드 정점 리스트에는 나머지 정점들이 저장되어 있다.
이후에는 언태그드 정점 리스트의 정점이 모두 태그드 정점 리스트로 옮겨질 때까지 스패닝 트리에 해당하는 간선을 스패닝 트리에 포함시키는 과정이 반복된다. 즉, 먼저 언태크드 리스트에 정점이 남아 있는지 확인하고(205), 태그드 정점 리스트에 있는 모든 정점들에 연결된 링크들 중에 해당 정점의 태그드 간선 리스트에 존재하지 않으면서 가장 작은 가중치를 가지는 링크를 선택하고(206), 선택된 링크를 해당 정점의 태그드 간선 리스트에 저장하며(207), 선택된 링크로 연결된 이웃 정점을 언태그드 정점 리스트에서 삭제하고 태그드 정점 리스트에 저장한다(208). 이후 다시 언태그드 정점 리스트에 정점이 남아 있는지 확인하여 206 내지 208의 단계를 반복 수행하며, 모든 정점에 대해 이러한 단계가 수행된 경우 스패닝 트리의 생성을 끝내게 된다.
이 과정은 기존의 스패닝 트리 알고리즘을 기반으로 한다. 이 과정에서 회로를 발생시킴으로써 제거되는 링크들과 스패닝 트리에 포함되는 링크들을 구분하기 위해 각 링크에 태그(Tag)값 또는 언태그(Untag) 값을 할당한다. 이때 언태그드(untagged)란 태그 표시되지 않았다는 것을 의미한다. 초기값을 언태그드 값으로 설정하고(202) 스패닝 알고리즘을 통해 스패닝 트리를 구성하도록 선택된 링크에 태그 값을 설정한다(207).
이는 하나의 정점을 선택하여 스패닝 트리에 포함시키고(203 및 204), 스패닝 트리에 포함된 정점들에 연결된 링크 중에서 가장 작은 가중치를 가지며 회로를 만들지 않는 링크를 선택하여 스패닝 트리에 포함시키며(206 및 207), 링크의 양끝 정점 중에 스패닝 트리에 포함되지 않은 정점을 스패닝 트리에 포함시키는(208) 것이다. 이를 모든 정점이 스패닝 트리에 포함될 때까지 반복 수행하여, 회로가 존재하지 않으면서 모든 정점이 포함되는 스패닝 트리를 생성하게 된다.
도 3은 본 발명에 의한 네트워크 경로 설정 방법에 있어서 정점 정보인 Location Word를 할당하는 단계의 일 실시예를 나타낸 흐름도이다.
이 과정에서는 스패닝 트리의 Vertex들 간의 계층구조를 이용하여, parent vertex와 child vertex 간의 관계인 Vertex들과 sibling 관계인 Vertex들에 각각의 관계를 의미하는 Location Word값을 할당한다. 이를 자세히 살펴보면 Spanning Tree의 Root인 Vertex를 선택하여(301) Location Word의 초기값인 Base Location Word를 Root Vertex에 할당한다(302). 그런 다음, 선택된 Vertex의 child vertex들중에서 Tag 표시된 Link를 통해 연결된 child vertex들을 선택한다(303). 여기서 child vertex란 tree상의 root에서 leaf 방향으로 연결된 vertex들을 말하고 parent vertex의 Location Word값은 child vertex의 Location Word값보다 작다. 그런 다음, parent vertex의 Location Word값으로부터 계산된 새로운 Location Word값들을 선택된 Child Vertex들에 할당한다(304). Location Word값의 계산 방법은 다음 식 1과 같다.
Child vertex의 Location Word
= (parent vertex의 Location Word * 2MAX_SIBLING)+ sibling_index
수학식 1에서 sibling_index는 소정의 초기값 이상이며, 2의 (MAX_SIBLING - 1) 제곱 이하이다(305).
선택된 child vertex들은 parent vertex로 바뀌어 303, 304, 및 305 단계를 반복 수행하고(306), 이 반복과정은 spanning tree의 모든 vertex들이 parent vertex로 사용될 때까지 반복된다(307).
도 4a 및 도 4b는 본 발명에 의한 네트워크 경로 설정 방법에 있어서 정점 정보인 Location Word를 할당하는 단계의 다른 일 실시예를 나타낸 흐름도이다.
도 4a를 참조하면, 먼저 모든 정점들의 Location Word 값을 최대 Location Word 값으로 할당한다(401). 다음 스패닝 트리의 루트를 vertex로 선택하고(402), Base_word로 1을 선택하여(403) 재귀함수인 F1(Vertex, Base_Word)을 호출한다(404).
도 4b를 참조하여 재귀적으로 호출되는 함수인 F1에 대해서 살펴보면, 먼저 Sibling_index 값으로 1을 선택하고, 함수 호출 시 주어진 vertex의 Location Word 값을 Base_word로 한 뒤(501), Vertex의 모든 태그 표시된 링크들을 Unused 리스트에 저장한다(502).
Unused 리스트에 링크가 있는지 검사하여(503), 없으면 함수를 끝내고, 있다면, 링크를 하나 선택하여 선택된 링크를 Used 리스트에 저장하고(504), Vertex의 Location Word와 이웃한 버텍스(Neighbor Vertex)의 Location Word 값을 서로 비교하여(505) Vertex의 Location Word 값이 더 작지 않은 경우 503 단계부터 다시 수행한다. 만일 이웃 버텍스의 Location Word 값이 더 크다면, Base_word를 MAX_SIBLING 값만큼 left shift한 값에 sibling_index 값을 더하여 Base_Word에 할당하고(506), sibling_index 값을 1 증가시킨 뒤(507), 이웃한 버텍스와 Base_word 값을 인수로 하여 재귀적으로 자신을 호출하게 된다(508). 이와 같은 재귀적 호출을 끝낸 후 다시 503 단계로 돌아가 Unused 리스트의 모든 링크에 대해 작업을 수행하면 모든 정점에 대해 Location Word가 할당된다.
도 5는 본 발명에 의한 네트워크 경로 설정 방법에 있어서 회로를 찾는 단계의 일 실시예를 나타낸 흐름도이다.
도 5를 참조하면, 본 발명에 의한 네트워크 경로 설정 방법에 있어서 회로(circuit)를 찾는(detect) 바람직한 방법은, 스패닝 트리의 루트 정점을 조상 정점으로 선택하는 단계(601), 선택된 조상 정점의 링크들 중 스패닝 트리에 포함되지 않은 링크들로 연결된 자식 정점을 선택하는 단계(602), 선택된 자식 정점과조상 정점의 정점 정보 값을 이용하여 이들을 연결하는 스패닝 트리 상의 중복된 최상위 부모 정점을 찾는 단계(603), 중복된 최상위 부모 정점의 정점 정보 값을 이용하여 자식 정점과 조상 정점 사이의 복수의 경로를 포함하는 회로를 찾는 단계(604), 조상 정점의 나머지 자식 정점에 대해 602 내지 604 단계를 반복하여 수행하는 단계(605), 및 스패닝 트리에 포함되는 모든 정점들이 조상 정점으로 사용될 때까지 차례로 자식 정점들을 조상 정점으로 선택하여 602 내지 605 단계를 수행하는 단계(606)를 포함한다.
이 과정에서는 Tag 표시되지 않은 Link에 의해 연결되는 두 vertex들에 대해, 각 Vertex의 Location Word값을 이용하여 circuit을 찾는다. 세부적으로는 먼저 Spanning Tree의 Root인 Ancestor Vertex를 선택한다(601), 여기서 Ancestor Vertex는 Circuit에서 tag 표시되지 않은 링크에 의해 연결된 두 Vertex중 spanning tree 상에서 상위에 위치한 vertex를 의미한다. 선택된 Vertex의 child vertex들 중에서 Tag 표시되지 않은 Link들로 연결된 child vertex들을 선택한다(602). 그런 다음, 선택된 child vertex와 ancestor vertex의 Location Word값을 이용하여 두 vertex에 대해 spanning tree 상에서 중복된 최상위 parent vertex를 찾는다(603). 이제 ancestor vertex, 선택된 child vertex, 중복된 최상위 parent vertex 각각의 Location Word를 이용하여 circuit을 찾는다(604). 선택된 child vertex들은 ancestor vertex로 바뀌어 602, 603, 604 단계를 반복 수행하고(605), 이 반복과정은 spanning tree의 모든 vertex들이 ancestor vertex로 사용될 때까지 반복된다(606).
도 6a 및 도 6b는 본 발명에 의한 네트워크 경로 설정 방법에 있어서 회로를 찾는 단계의 다른 일 실시예를 나타낸 흐름도이다.
도 6을 참조하면 본 발명에 의한 네트워크 경로 설정 방법에서 회로를 찾는 단계의 다른 바람직한 일 실시예는, 먼저 스패닝 트리의 루트를 Vertex로 선택하고(701), 재귀함수인 F2(Vertex) 함수를 호출하는 것이다(702).
도 6b를 참조하여 재귀함수인 F2의 작용을 살펴보면, 먼저 Vertex의 모든 태그 표시되지 않은 링크들을 Unused 리스트에 저장하고(801), 다음 Unused 리스트에 링크가 있는지 확인한다(802). 만일 링크가 없다면, 806 단계로 진행한다.
Unused 리스트에 링크가 있다면, 먼저 링크를 하나 선택하여 이를 Used 리스트에 저장하고(803), Vertex의 Location Word와 이웃 버텍스(Neighbor Vertex)의 Location Word를 비교한다(804). 만일 Vertex의 Location Word가 더 작지 않으면 802 단계로 돌아간다. 만일 이웃 버텍스의 Location Word가 더 큰 경우, Vertex와 이웃 버텍스 사이의 링크에 의해 생성되는 회로(circuit)를 찾은 다음(805), 다시 802 단계로 돌아가서 Unused 리스트에 링크가 없을 때까지 803 내지 805 단계를 반복하여 수행한다.
Unused 리스트의 모든 링크에 대해 803 내지 805 단계를 수행한 다음, Vertex의 모든 태그 표시된 링크들을 Unused 리스트에 저장하고(806), Unused 리스트에 링크가 있는 동안, 808 내지 810 단계를 수행한다.
먼저 Unused 리스트에 링크가 있는지 확인하고(807), 링크를 하나 선택하여 선택된 링크를 Used 리스트에 저장한다(808). 다음 Vertex의 Location Word와 이웃버텍스(Neighbor Vertex)의 Location Word를 비교한다(809). 만일 Vertex의 Location Word가 더 작지 않으면 807 단계로 돌아간다. 만일 이웃 버텍스의 Location Word가 더 큰 경우, Neighbor Vertex를 인수로 하여 F2 함수를 재귀적으로 호출한다(810). 이를 Unused 리스트의 모든 링크에 대해 수행하면, 네트워크 상의 모든 회로(circuit)를 찾을 수 있다.
805 단계에서는 Vertex와 Neighbor Vertex 간의 링크에 의해 생성되는 회로를 찾는데, 이를 자세히 살펴본다.
도 6c는 본 발명에 의한 네트워크 경로 설정 방법에 있어서 이웃하는 정점 간의 링크에 의해 생성되는 회로를 찾는 방법의 일 실시예를 나타낸 흐름도이다.
먼저 Vertex와 Neighbor Vertex의 Location Word 값을 이용하여 스패닝 트리 상의 공통 루트를 찾는다(901). 이는 최상위 비트(most significant bit, MSB)부터 최하위 비트(least significant bit, LSB) 방향으로 MAX_SIBLING 비트수의 배수만큼 동일한 비트 값을 갖는 정점을 찾는 것에 의해 가능하다. 이렇게 찾은 정점을 루트 버텍스라 한다.
다음 Vertex와 루트 버텍스의 Location Word 값을 이용하여 Vertex로부터 루트 버텍스까지의 경로 상의 모든 정점들을 찾는다(902). 다음 Neighbor Vertex와 루트 버텍스의 Location Word 값을 이용하여 Neighbor Vertex로부터 루트 버텍스까지의 경로 상의 모든 정점들을 찾는다(903)
도 7a 내지 도 7f는 본 발명에 의한 네트워크 경로 설정 방법을 적용하는 예를 나타낸 프로그램 실행 결과도이다.
도 7a는 정점 a, b, c, d, e, f로 이루어진 그래프를 나타낸다.
도 7b는 정점 d를 초기 정점(seed vertex)으로 하여 생성된 스패닝 트리를 나타낸다.
도 7c 내지 도 7f를 살피면, 각각 회로를 검출한 것을 도시하고 있다.
도 7c에서는 정점 d와 정점 a 사이의 링크가 블록킹 상태에 있게 되며, 정점 d, a, c, d를 차례로 연결하는 링크들로 이루어진 회로에 대해 RRSTP가 적용된다.
도 7d에서는 정점 d와 정점 b 사이의 링크가 블록킹 상태에 있게 되며, 정점 d, c, a, b, d를 차례로 연결하는 링크들로 이루어진 회로에 대해 RRSTP가 적용된다.
도 7e에서는 정점 a와 정점 e 사이의 링크가 블록킹 상태에 있게 되며, 정점 a, e, b, a를 차례로 연결하는 링크들로 이루어진 회로에 대해 RRSTP가 적용된다.
도 7f에서는 정점 e와 정점 f 사이의 링크가 블록킹 상태에 있게 되며, 정점 e, f, b, e를 차례로 연결하는 링크들로 이루어진 회로에 대해 RRSTP가 적용된다.
이렇게 스패닝 트리와 회로 검출 방법을 이용하여 루핑이 존재하는 부분과 루핑이 존재하지 않는 부분에 서로 다른 프로토콜을 적용함으로써, RSTP는 적용될 수 있지만 RRSTP는 적용될 수 없었던 토폴로지에 대해 조건적으로 토폴로지를 분석한 후 새롭게 토폴로지를 구성하여 RRSTP가 적용될 수 있다.
본 발명은 컴퓨터로 읽을 수 있는 기록 매체에 컴퓨터(정보 처리 기능을 갖는 장치를 모두 포함한다)가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록 매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가저장되는 모든 종류의 기록 장치를 포함한다. 컴퓨터가 읽을 수 있는 기록 장치의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플로피 디스크, 광데이터 저장장치 등이 있다.
본 발명은 도면에 도시된 실시예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 등록청구범위의 기술적 사상에 의해 정해져야 할 것이다.
본 발명에 의한 네트워크 경로 설정 방법에 의하면, 스패닝 트리와 회로 검출 방법을 이용하여 루핑이 존재하는 부분과 루핑이 존재하지 않는 부분에 서로 다른 프로토콜을 적용함으로써, 기존의 방법으로 RRSTP를 적용할 수 없었던 토폴로지에 RRSTP를 적용할 수 있고, RSTP와 RRSTP를 함께 사용할 수 있는 방법을 제시함으로써, 기존의 RSTP만을 사용하는 방식에 비해 수렴시간을 줄일 수 있다.

Claims (8)

  1. (a) 네트워크 상의 연결장치들을 정점으로 하고 상기 연결장치들 사이의 링크를 간선으로 하는 스패닝 트리를 생성하는 단계;
    (b) 상기 스패닝 트리의 모든 정점에 대해 소정의 정점 정보를 지정하는 단계;
    (c) 상기 스패닝 트리에 대응하는 원래의 네트워크에서 연결장치 사이에 복수의 경로를 가지는 회로를 모두 찾는 단계; 및
    (d) 상기 회로에 해당하는 링크들에는 래피드 링 스패닝 트리 프로토콜을 적용하고, 상기 스패닝 트리의 링크 중에서 상기 회로에 해당하지 않는 링크들에는 래피드 스패닝 트리 프로토콜을 적용하는 단계를 포함하는 것을 특징으로 하는 네트워크 경로 설정 방법.
  2. 제 1 항에 있어서, 상기 (a) 단계는,
    (a1) 하나의 정점을 선택하여 스패닝 트리에 포함시키는 단계;
    (a2) 스패닝 트리에 포함된 정점들에 연결된 링크 중에서 가장 작은 가중치를 가지며 회로를 만들지 않는 링크를 선택하여 상기 스패닝 트리에 포함시키는 단계;
    (a3) 상기 링크의 양끝 정점 중에 상기 스패닝 트리에 포함되지 않은 정점을 상기 스패닝 트리에 포함시키는 단계; 및
    (a4) 모든 정점이 상기 스패닝 트리에 포함될 때까지 상기 (a2) 단계 및 (a3) 단계를 반복하여 수행하는 단계를 포함하는 것을 특징으로 하는 네트워크 경로 설정 방법.
  3. 제 1 항에 있어서, 상기 (a) 단계는
    (a1) 상기 정점들을 모두 소정의 언태그드 정점 리스트에 저장하는 단계;
    (a2) 각각의 정점들에 대한 소정의 언태그드 간선 리스트에 각 정점에 연결된 모든 링크들을 저장하는 단계;
    (a3) 상기 언태그드 정점 리스트에서 임의로 하나의 정점을 선택하여 상기 언태그드 정점 리스트에서 삭제하고 소정의 태그드 정점 리스트에 저장하는 단계;
    (a4) 상기 태그드 정점 리스트에 있는 모든 정점들에 연결된 링크들 중에 해당 정점의 태그드 간선 리스트에 존재하지 않으면서 가장 작은 가중치를 가지는 링크를 선택하는 단계;
    (a5) 상기 선택된 링크를 해당 정점의 태그드 간선 리스트에 저장하는 단계;
    (a6) 상기 선택된 링크로 연결된 이웃 정점을 상기 언태그드 정점 리스트에서 삭제하고 상기 태그드 정점 리스트에 저장하는 단계; 및
    (a7) 상기 언태그드 정점 리스트에 정점이 남아 있는 경우, 상기 (a4) 단계 내지 (a6) 단계를 반복하여 수행하는 단계를 포함하는 것을 특징으로 하는 네트워크 경로 설정 방법.
  4. 제 1 항에 있어서, 상기 (b) 단계는,
    (b1) 상기 스패닝 트리의 루트 정점을 부모 정점으로 선택하는 단계;
    (b2) 선택된 부모 정점에 소정의 정점 정보를 할당하는 단계;
    (b3) 상기 선택된 부모 정점의 링크들 중 스패닝 트리에 포함된 링크들로 연결된 자식 정점들을 선택하여 상기 (b2) 단계를 반복하는 단계; 및
    (b4) 스패닝 트리에 포함된 모든 정점이 부모 정점으로 선택될 때까지 상기 (b2) 내지 (b3) 단계를 반복하여 수행하는 단계를 포함하는 것을 특징으로 하는 네트워크 경로 설정 방법.
  5. 제 4 항에 있어서, 상기 정점 정보는,
    루트 정점에 대해서는 소정의 기본 정점 정보이며,
    루트 정점 이외의 정점에 대해서는, 자신의 부모 정점의 정점 정보 값을 소정의 비트 수만큼 레프트 쉬프트한 값에 소정의 인덱스 값을 더한 값을 가지며,
    상기 인덱스 값은 각 정점을 선택할 때마다 1씩 증가하는 것을 특징으로 하는 네트워크 경로 설정 방법.
  6. 제 1 항에 있어서, 상기 (c) 단계는,
    (c1) 스패닝 트리의 루트 정점을 조상 정점으로 선택하는 단계;
    (c2) 선택된 조상 정점의 링크들 중 스패닝 트리에 포함되지 않은 링크들로 연결된 자식 정점을 선택하는 단계;
    (c3) 상기 선택된 자식 정점과 상기 조상 정점의 정점 정보 값을 이용하여 이들을 연결하는 스패닝 트리 상의 중복된 최상위 부모 정점을 찾는 단계;
    (c4) 상기 중복된 최상위 부모 정점의 정점 정보 값을 이용하여 상기 자식 정점과 상기 조상 정점 사이의 복수의 경로를 포함하는 회로를 찾는 단계;
    (c5) 상기 조상 정점의 나머지 자식 정점에 대해 상기 (c3) 내지 (c4) 단계를 반복하여 수행하는 단계; 및
    (c6) 스패닝 트리에 포함되는 모든 정점들이 조상 정점으로 사용될 때까지차례로 자식 정점들을 조상 정점으로 선택하여 상기 (c2) 내지 (c5) 단계를 수행하는 단계를 포함하는 것을 특징으로 하는 네트워크 경로 설정 방법.
  7. 네트워크 상의 연결장치들을 정점으로 하고 상기 연결장치들 사이의 링크를 간선으로 하는 스패닝 트리를 생성하는 스패닝트리생성부;
    상기 스패닝 트리의 모든 정점에 대해 소정의 정점 정보를 지정하는 정점정보지정부;
    상기 스패닝 트리에 대응하는 원래의 네트워크에서 연결장치 사이에 복수의 경로를 가지는 회로를 모두 찾는 회로탐색부; 및
    상기 회로에 해당하는 링크들에는 래피드 링 스패닝 트리 프로토콜을 적용하고, 상기 스패닝 트리의 링크 중에서 상기 회로에 해당하지 않는 링크들에는 래피드 스패닝 트리 프로토콜을 적용하는 스패닝트리프로토콜적용부를 포함하는 것을 특징으로 하는 네트워크 경로 설정 장치.
  8. (a) 네트워크 상의 연결장치들을 정점으로 하고 상기 연결장치들 사이의 링크를 간선으로 하는 스패닝 트리를 생성하는 단계;
    (b) 상기 스패닝 트리의 모든 정점에 대해 소정의 정점 정보를 지정하는 단계;
    (c) 상기 스패닝 트리에 대응하는 원래의 네트워크에서 연결장치 사이에 복수의 경로를 가지는 회로를 모두 찾는 단계; 및
    (d) 상기 회로에 해당하는 링크들에는 래피드 링 스패닝 트리 프로토콜을 적용하고, 상기 스패닝 트리의 링크 중에서 상기 회로에 해당하지 않는 링크들에는 래피드 스패닝 트리 프로토콜을 적용하는 단계를 컴퓨터에서 실행시키기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록 매체.
KR10-2002-0069412A 2002-11-09 2002-11-09 스패닝 트리와 회로 검출에 의한 네트워크 경로 설정 방법및 장치 KR100456674B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR10-2002-0069412A KR100456674B1 (ko) 2002-11-09 2002-11-09 스패닝 트리와 회로 검출에 의한 네트워크 경로 설정 방법및 장치
US10/699,139 US7301912B2 (en) 2002-11-09 2003-10-30 Method and apparatus for determining communication path over network by using spanning tree and circuit detection

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR10-2002-0069412A KR100456674B1 (ko) 2002-11-09 2002-11-09 스패닝 트리와 회로 검출에 의한 네트워크 경로 설정 방법및 장치

Publications (2)

Publication Number Publication Date
KR20040041244A KR20040041244A (ko) 2004-05-17
KR100456674B1 true KR100456674B1 (ko) 2004-11-10

Family

ID=32226268

Family Applications (1)

Application Number Title Priority Date Filing Date
KR10-2002-0069412A KR100456674B1 (ko) 2002-11-09 2002-11-09 스패닝 트리와 회로 검출에 의한 네트워크 경로 설정 방법및 장치

Country Status (2)

Country Link
US (1) US7301912B2 (ko)
KR (1) KR100456674B1 (ko)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4397292B2 (ja) * 2004-07-09 2010-01-13 富士通株式会社 制御パケットループ防止方法及びそれを用いたブリッジ装置
US7564779B2 (en) * 2005-07-07 2009-07-21 Alcatel Lucent Ring rapid spanning tree protocol
US7940699B2 (en) * 2005-03-11 2011-05-10 Alcatel-Lucent Usa Inc. Spanning tree generation for supporting performance-guaranteed services over circuit-switched network
KR100777614B1 (ko) * 2005-06-27 2007-11-21 학교법인 동의학원 최적 토플로지 엠에스티피 네트워크 장치 및 최적 토플로지엠에스티피 네트워크 구성방법
US8462161B1 (en) 2009-01-20 2013-06-11 Kount Inc. System and method for fast component enumeration in graphs with implicit edges
US11582135B2 (en) * 2020-08-28 2023-02-14 Ciena Corporation Systems and methods for constrained path computation in networks with connectivity and resource availability rules

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR890012498A (ko) * 1988-01-15 1989-08-26 원본미기재 분산형 부하 분할
JPH07327042A (ja) * 1994-05-25 1995-12-12 Internatl Business Mach Corp <Ibm> データ通信ネットワークおよびそのノードの管理方法
KR20040009467A (ko) * 2002-07-23 2004-01-31 삼성전자주식회사 점-대-점 에뮬레이션을 구현하는 이더넷 수동형광가입자망에서 스패닝 트리 알고리즘을 적용한 브리지관리방법

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1132844A3 (en) * 2000-03-02 2002-06-05 Telseon IP Services Inc. E-commerce system facilitating service networks including broadband communication service networks
US7061875B1 (en) * 2001-12-07 2006-06-13 Cisco Technology, Inc. Spanning tree loop guard

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR890012498A (ko) * 1988-01-15 1989-08-26 원본미기재 분산형 부하 분할
JPH07327042A (ja) * 1994-05-25 1995-12-12 Internatl Business Mach Corp <Ibm> データ通信ネットワークおよびそのノードの管理方法
KR20040009467A (ko) * 2002-07-23 2004-01-31 삼성전자주식회사 점-대-점 에뮬레이션을 구현하는 이더넷 수동형광가입자망에서 스패닝 트리 알고리즘을 적용한 브리지관리방법

Also Published As

Publication number Publication date
KR20040041244A (ko) 2004-05-17
US7301912B2 (en) 2007-11-27
US20040090926A1 (en) 2004-05-13

Similar Documents

Publication Publication Date Title
US9929938B2 (en) Hierarchal label distribution and route installation in a loop-free routing topology using routing arcs at multiple hierarchal levels for ring topologies
JP5362743B2 (ja) 最短経路決定のタイブレイク
US6928484B1 (en) Method and apparatus for discovering edge-disjoint shortest path pairs during shortest path tree computation
US8634289B2 (en) Efficient protection scheme for MPLS multicast
US20060002291A1 (en) Methods of network routing having improved resistance to faults affecting groups of links subject to common risks
US20060182133A1 (en) Data transmission device
WO2004075485A1 (ja) ネットワークシステム、スパニングツリー構成方法及び構成プログラム、スパニングツリー構成ノード
WO2014022726A1 (en) Label distribution and route installation in a loop-free routing topology using routing arcs
US9843495B2 (en) Seamless migration from rapid spanning tree protocol to ethernet ring protection switching protocol
CN104662850A (zh) 用于通信路径选择的方法与装置
US7940699B2 (en) Spanning tree generation for supporting performance-guaranteed services over circuit-switched network
US7152113B2 (en) Efficient system and method of node and link insertion for deadlock-free routing on arbitrary topologies
KR100456674B1 (ko) 스패닝 트리와 회로 검출에 의한 네트워크 경로 설정 방법및 장치
US20100118740A1 (en) System and method for identifying non-multiple spanning tree protocol control planes
CN102932260B (zh) 路由计算方法、设备及系统
Faghani et al. Shortcut switching strategy in metro Ethernet networks
WO2006100266A1 (en) Guaranteed bandwidth end-to-end services in bridged networks
US8665752B2 (en) Network modeling, service provisioning, and service management
US7319677B2 (en) Network topology mapper
Nair et al. Bandwidth sensitive fast failure recovery scheme for Metro Ethernet
JP2008227695A (ja) パケット通信システムおよびパケット通信方法
WO2007061404A2 (en) Network topology mapper
CN112039770B (zh) 一种路由选择方法及装置
US9203749B2 (en) System, devices and methods for facilitating coexistence of VLAN labeling and fine-grained labeling RBridges
Andreev et al. Network Topology Discovery: a Problem of Incomplete Data Improvement

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20081104

Year of fee payment: 5

LAPS Lapse due to unpaid annual fee