Upload
others
View
0
Download
0
Embed Size (px)
Citation preview
450 정보과학회논문지 : 정보통신 제 38 권 제 6 호(2011.12)
․이 논문은 정부(교육과학기술부)의 재원으로 한국연구재단의 연구소
지원사업으로 수행된 연구임(2011-0018394)
†
††
†††
학생회원
정 회 원
종신회원
논문 수
심사완료
:
:
:
:
:
인하 학교 자공학과
인하 학교 자공학과 교수
인하 학교 자공학과 교수
2011년 7월 5일
2011년 9월 9일
CopyrightⒸ2011 한국정보과학회ː개인 목 이나 교육 목 인 경우, 이 작
물의 체 는 일부에 한 복사본 혹은 디지털 사본의 제작을 허가합니다.
이 때, 사본은 상업 수단으로 사용할 수 없으며 첫 페이지에 본 문구와 출처
를 반드시 명시해야 합니다. 이 외의 목 으로 복제, 배포, 출 , 송 등 모든
유형의 사용행 를 하는 경우에 하여는 사 에 허가를 얻고 비용을 지불해야
합니다.
정보과학회논문지: 정보통신 제38권 제6호(2011.12)
동 라우 알고리즘의 신뢰성 향상을 한 최단 경로 설정 알고리즘
(A Shortest Path Decision Algorithm for Improving
the Reliability of Dynamic Routing Algorithm)
조 태 환 † 김 지 원 † 김 병 조 † 윤 완 오 †† 최 상 방 †††
(Tae Hwan Cho) (Ji Won Kim) (Byoung Jo Kim) (Wan Oh Yoon) (Sang Bang Choi)
요 약 네트워크 토폴로지의 일부분에 변화가 생겼을 때, 효율 으로 최단경로를 설정 할 수 있는
표 인 알고리즘으로 DSPT(Dynamic Shortest Path Tree)가 있다. 그러나 링크 비용이 증가하는 경우
DSPT 증가 알고리즘은 잘못된 최단경로를 계산한다. 따라서 본 논문에서는 DSPT 증가 알고리즘을 개선
하여 신뢰성 있는 최단경로를 계산하는 P-DSPT(Precise-Dynamic Shortest Path Tree) 알고리즘과
RDSP(Reliable Dynamic Shortest Path) 알고리즘을 제안한다. 제안된 알고리즘의 성능을 평가하기 해
서 DSPT, 다익스트라 알고리즘 등과 성능을 비교하 으며, 최 17%의 성능 향상이 있었다.
키워드 : 동 최단경로, 동 업데이트, 다익스트라 알고리즘, 네트워크 라우 , 최단경로 우선 로토콜
Abstract DSPT algorithm is well known for searching altered SPT efficiently as a cost of link
is changed. But DSPT algorithm is wrong for some cases. So we will show this with an example,
and propose P-DSPT(Precise-Dynamic Shortest Path Tree) and RDSP(Reliable Dynamic Shortest
Path) that is a new DSPT algorithm. The result of an evaluation shows that overall performance of
the proposed algorithm is improved a maximum of 17% compared with DSPT and well-known
Dijkstra algorithm.
Key words : Dynamic shortest path, Dynamic update, Dijkstra algorithm, Network routing, OSPF
1. 서 론
인터넷 서비스에 한 사용자 요구가 다양해지고, 서
비스 품질에 한 요구가 높아지면서 화상회의, 원격강
의, 주문형 비디오와 같은 멀티미디어 서비스 도입과 지
연에 민감한 많은 실시간 응용서비스들이 개발되어짐에
따라 인터넷 트래픽은 속도로 증가하고 있다. 한 트
래픽 양의 인 증가 상 이외에도 링크 단선과
같은 네트워크에서의 결함은 트래픽의 경로를 바꾸게
하여 특정 지역에서의 혼잡 상을 더욱 심화시킨다. 이
에 따라 컴퓨터 네트워크를 포함한 다양한 네트워크 환
경에서 출발지와 도착지 간의 최 경로를 탐색하는 라
우 알고리즘은 시스템의 성능을 직 으로 결정하는
매우 요한 요소 기술이 되었다. 이상 인 라우 알고
리즘은 짧은 시간 내에 시스템의 수율을 극 화하는 동
시에 평균 패킷 지연 시간은 최소화하는 최단 경로를
찾는 것이다[1].
일반 으로 인터넷에서 사용되는 표 인 라우
로토콜로는 RIP(Routing Information Protocol), OSPF
(Open Shortest Path First), BGP(Border Gateway
Protocol) 등이 있다[2-4]. 오늘날 인터넷은 수백만 개의
호스트로 구성됨으로, 각 호스트의 라우 정보를 장
하기 해서는 막 한 양의 메모리가 필요하다. 한 인
동 라우 알고리즘의 신뢰성 향상을 한 최단 경로 설정 알고리즘 451
터넷의 모든 라우터에서 링크상태 갱신을 로드캐스
하기 해 필요한 오버헤드는 데이터 패킷을 보낼 역
폭을 고갈 시킨다. 따라서 인터넷처럼 큰 네트워크에서
라우 계산의 복잡성을 감소시키기 해 라우터들을 자
율시스템(AS, Autonomous System)으로 집합화하여
리한다. RIP와 OSPF는 자율 시스템 내의 라우 을,
BGP는 자율 시스템 간의 라우 을 다룬다. RIP는 그래
알고리즘 벨만-포드(Bellman-Ford) 알고리즘을
사용하며, 모든 네트워크를 통과하는 비용은 같다고 정
의한다[5]. 반면에 OSPF는 그래 알고리즘 다익스
트라(Dijkstra) 알고리즘을 사용하며 서비스의 종류에 따
라 네트워크를 통과하는 비용을 리자가 할당하도록 하
고 있다. 따라서 OSPF는 RIP에 비해 여러 발 된 모습
을 가지고 있으며, 재 네트워크 분야에 리 사용되고
있다[6]. BGP의 경우는 경로 벡터 라우 방법에 기반을
두고 있으며 자율 시스템 간의 라우 에 사용된다[7].
결국, 네트워크 라우 에서 요한 부분은 최소비용의
경로를 신속하고 정확하게 찾아 라우 테이블을 구성
하여 패킷을 달하는 것이라 할 수 있다. 최근 많이 사
용되는 OSPF에서 기치 못한 상황으로 인해 네트워크
토폴로지에 변화가 생길 경우 라우 테이블을 수정하
기 해서는 다익스트라 알고리즘을 사용해야 한다.
를 들어 일부 네트워크의 물리 연결이 단 되어 해당
링크의 비용이 달라질 경우, 최소 비용의 경로를 다시
찾아야 한다. 이런 경우 일반 으로 다익스트라 알고리
즘을 재차 사용하게 된다. 그러나, 체 네트워크 구성
일부 링크의 비용이 수정되었을 때 다익스트라 알고
리즘을 재사용하면, 링크의 비용이 수정되지 않은
모든 노드(node)에 해서 반복 계산하게 되어 계산량
이 많아지고 불필요한 수정이 발생하게 된다. 이에 따라
체 인 라우 (routing) 테이블도 자주 수정되어 네트
워크 구성이 불안정하게 될 수 있다. 이런 단 을 보완
하기 한 동 (dynamic) 알고리즘 의 하나인 DSPT
(Dynamic Shortest Path Tree) 알고리즘은 수정된 링
크의 비용이 향을 주는 노드만을 찾아내어 계산하여
최단경로 계산량을 이고, 불필요한 수정을 하지 않는
다[8]. 하지만 DSPT 알고리즘은 일부의 경우 최단경로
를 계산하지 못하고 최단거리보다 큰 값을 가지는 일반
경로를 찾는 경우가 발생한다. 따라서 본 논문에서는 동
알고리즘인 DSPT를 수정하여 항상 신뢰성 있는 최
단경로를 계산함과 동시에 정 (static) 알고리즘인 다익
스트라 알고리즘 보다 최단경로 계산속도가 빠른 P-
DSPT(Precise-Dynamic Shortest Path Tree)알고리즘
과 RDSP(Reliable Dynamic Shortest Path)알고리즘을
제안한다. 제안된 알고리즘들과 다익스트라 알고리즘의
최단경로 계산시간을 비교한 결과, 최 17%의 성능 향
상이 있었다.
본 논문은 다음과 같이 구성되어 있다. 2장에서는 다
익스트라 알고리즘, 동 알고리즘 연구 결과, 네트워크
라우 에서 동 알고리즘의 필요성 DSPT 알고리
즘을 용한 최단경로 계산에 해 설명하고 3장에서는
본 논문에서 제안하는 P-DSPT 알고리즘과 RDSP 알
고리즘에 해 소개한다. 4장에서는 제안된 알고리즘과
기존 알고리즘 간의 결과를 다양한 측면에서 성능을 평
가한다. 마지막으로 5장에서는 본 논문의 연구 성과와
앞으로의 연구 과제를 제시하며 본 논문을 마무리한다.
2. 련연구
이 장에서는 본 논문에서 제안한 P-DSPT, RDSP
알고리즘의 성능 비교를 해서 리 알려진 정 알고
리즘인 다익스트라 알고리즘 다양한 동 알고리즘
들에 해 설명한 후, 네트워크 라우 에서 동 알고리
즘의 필요성, DSPT 알고리즘을 용하여 최단경로를
계산하는 방법에 하여 설명한다.
2.1 다익스트라 알고리즘
다익스트라 알고리즘은 어떤 간선도 음수 값을 갖지
않는 방향 그래 에서 주어진 출발 과 도착 사이의
최단 경로 문제를 계산하는 알고리즘이다. 따라서 다익
스트라 알고리즘은 한 정 에서 다른 모든 정 으로의
최단경로를 구하는 매우 효과 인 방법이다. 이를 네트
워크에 용시켜 보면 네트워크를 모든 링크의 가 치
가 음이 아니고 가 방향 그래 라고 가정
하여, 단일 출발 최단 경로 문제를 풀면 되는 것이다.
네트워크 라우 에서 다익스트라 알고리즘은 정 알고
리즘에 해당한다. 최단경로와 최단거리를 모두 얻을 수
있는 이 알고리즘은 그동안 철도 건설과 통신 네트워크
의 경로 설계, 항공기 운항 계획 등 목 지에 이르는 최
선의 길을 찾아야 하는 응용 분야에서 사용되었다. 다익
스트라 알고리즘은 특히 네트워크 경로 설계에 많이
용되는데 표 인 가 IP 망에서의 라우 로토콜
인 OSPF이다.
다익스트라 알고리즘의 수행과정을 살펴보면 다음과
같다. 다익스트라 알고리즘은 먼 시작 정 에서 가장
인 한 정 을 찾는다. 그 정 까지 거리가 최단거리가
되며, 최단거리가 알려진 정 들의 집합을 라 한다.
집합 에 포함되지 않은 정 에서 시작 정 으로부
터 가장 가까운 정 을 찾고 이 새로운 정 은 집합 에
바로 이웃한 정 들 하나가 된다. 그 정 까지 거리
는 최단거리이며, 그 정 을 집합 에 포함하게 된다.
새로운 정 이 없을 때까지, 즉 모든 정 이 집합 에
포함될 때까지 이 과정을 반복한다. 다익스트라 알고리
즘의 의사코드는 그림 1과 같다.
452 정보과학회논문지 : 정보통신 제 38 권 제 6 호(2011.12)
그림 1 다익스트라 알고리즘 의사코드
2.2 동 알고리즘 연구 결과
지난 몇 년 동안 다양한 동 라우 알고리즘이 연
구되어 왔다. 라말린감(Ramalingam)과 렙스(Reps)는
링크의 삭제와 추가에 사용 가능한 알고리즘을 제안하
다[9]. 이 논문에서는 수정된 링크에 의해 향을 받
은 노드들을 이용하여 동 라우 알고리즘을 평가하
다. 즉, 수정된 링크에 의해 향을 받은 노드가 을
수록 우수한 동 라우 알고리즘이라고 평가하고, 이
와 련된 복잡도 모델을 제시하 다.
리지오니(Frigioni) 등은 링크의 삭제, 추가 뿐만 아
니라 가 치 변경에도 사용 가능한 알고리즘을 제안하
다[10]. 이 알고리즘은 “수 (level)”과 “소유권(owner-
ship)”이라는 개념을 사용한다. 소유권 정보는 링크의
가 치가 수정이 되었을 때, 링크의 수를 제한하기 해
사용되며, 모든 링크는 소유권을 가질 수 있다. 이 알고
리즘은 기본 으로 다익스트라 알고리즘과 유사하지만
계산을 하는 링크의 숫자가 다익스트라 보다 다. 자
는 이 알고리즘이 이론 으로 가장 좋은 복잡도를 가진
다고 하지만, 복잡한 자료구조로 인해 오히려 비효율
이 된다.
나바 스(Narvaez) 등은 다익스트라, 벨만-포드와 같
이 잘 알려진 정 라우 알고리즘의 동 (dynamic)
버 을 한 를 제시하 다[11]. 그 핵심은 DSPT
와 마찬가지로 체 노드를 다시 계산하는 방식이 아닌
가 치의 수정에 의해 향을 받은 노드만을 계산하는
방법이다. 이 방법은 “볼스트링(BallString)” 모델에 기
를 두고 있으며 알고리즘 이름 한 BS(BallString)
알고리즘이다. 이 모델은 문자열의 길이가 증가 는 감
소되었을 때, 향을 받은 볼이 최 의 치에 자신을
재배열하는 방법을 나타내며, BS 알고리즘은 이 모델을
기반으로 하여 변경된 노드에 의해 향을 받은 노드만
을 가장 경제 인 방법으로 찾아내어 최단경로를 계산
하게 된다. 이 알고리즘을 통해 계산시간을 약할 수
있지만, DSPT 알고리즘에 비해서 많은 계산시간이 소
요된다.
2.3 네트워크 라우 에서 동 알고리즘의 필요성
OSPF와 같은 자율 시스템 내의 로토콜은 부분
다익스트라 알고리즘을 많이 사용한다. 다익스트라 알고
리즘의 핵심은 루트(root) 노드에서 모든 목 지까지 최
단거리를 찾는 것이다. 그러나 다익스트라 알고리즘은
네트워크 토폴로지(network topology) 일부 링크의
가 치만 바 어도 라우 테이블에 있는 최단경로 정
보를 사용하지 않고, 다시 처음부터 모든 최단경로를 계
산하게 된다[12]. 따라서 다익스트라 알고리즘에 의해
수행되는 최단경로 계산은 라우터의 부하를 가 시키게
된다. 한 이러한 과정에 체 CPU를 사용한다는
도 큰 문제가 된다.
네트워크 토폴로지 일부가 수정된 후 다익스트라
알고리즘을 사용하여 최단경로를 계산하게 되면 계산시
간이 굉장히 많이 소요되므로, 필연 으로 최단경로를
동 라우 알고리즘의 신뢰성 향상을 한 최단 경로 설정 알고리즘 453
다시 계산하기까지의 공백기가 발생하게 된다. 이 공백
기 동안은 라우 테이블이 변경된 실제 네트워크 토폴
로지를 반 하지 못하기 때문에 큰 문제가 발생할 여지
가 있다. 즉, 이런 경우에 요한 데이터 패킷이 수정된
경로가 아닌 이 경로를 따라 이동한다면 패킷 손실이
발생하게 되는 것이다. 이런 시나리오는 네트워크의 링
크에 문제가 생겼을 때 언제든지 발생할 수 있으며, 매
우 험한 경우라 할 수 있다.
결국 이런 공백기를 최 한 여야만 패킷 손실을 방
지할 수 있으며, 이것이 네트워크의 요한 심사가 된
다. 따라서 계산시간이 많이 소요되는 다익스트라 알고
리즘과 같은 정 알고리즘 보다는 이 상태의 최단경
로 정보를 충분히 활용하여 최단경로 계산시간과 네트
워크의 공백기를 일 수 있는 동 알고리즘을 사용하
는 것이 효과 이다.
동 알고리즘을 사용해야 하는 하나의 연구 결과
가 있다. 네트워크의 토폴로지 일부 링크의 가 치가
변경되더라도, 변경된 후의 최단경로 65%는 변경되
기 의 최단경로와 완 히 같다는 것이다. 심지어,
최단경로가 달라지는 35%의 경우에도 링크의 가 치가
변경되기 이 의 최단경로와 상당히 비슷한 것으로 연
구 결과가 밝 졌다[13]. 따라서 정 알고리즘으로 최
단경로를 체 으로 다시 계산하는 것은 비효율 이며,
동 알고리즘을 통해 링크의 가 치가 변경된 일부에
해서만 계산하는 것이 효율 이며, 안정 인 네트워크
를 구성할 수 있다.
2.4 DSPT 알고리즘
동 알고리즘인 DSPT 알고리즘을 용하여 최단경
로를 계산하는 방법에 해 설명한다. 그림 2는 네트워
크 토폴로지를 그래 화한 그림이며, 각 노드는 라우터
를 의미한다. 두 노드 사이의 링크 가 치는 해당 링크
의 비용이며, 네트워크의 트래픽 지연(traffic delay) 등
을 의미한다. 그림에서 최단경로는 굵은 선으로 표시되
어 있으며, 노드 내의 숫자는 루트 노드인 로부터의
최단거리를 의미한다.
그림 2 링크 비용(7→24)이 변경된 그래
만약 그림 2와 같이 링크 (노드 와 노드 사이의
링크)의 비용이 7에서 24로 증가한다면, 새로운 라우
테이블 구성을 해 최단경로를 다시 계산해야 한다. 그
러나 DSPT 알고리즘은 정 알고리즘과는 달리, 체
노드에 해 최단경로를 다시 계산하지 않고 선으로
표시된 지역 내의 최단경로만 수정한다. 왜냐하면 링크
의 비용이 증가했기 때문에 노드 의 자식노드들을
제외한 다른 노드의 최단경로는 수정된 링크의 비용에
향을 받지 않기 때문이다. 즉, 노드
의 최단경로는 새로운 최단경로를 계산하더라도 이
의 최단경로를 유지하게 되며, 이 부분에서 최단경로
계산 시간을 일 수 있다. 만약 이와 같은 경우 다익스
트라 알고리즘을 사용한다면, 최단경로가 변하지 않는
노드에 해서도 다시 최단경로를 계산하기 때문에 많
은 계산 시간이 소요되게 된다. DSPT 알고리즘의 의사
코드는 그림 3과 같다.
DSPT 알고리즘은 링크 리스트 Q와 노드 리스트 M
을 생성한다. DSPT 알고리즘 의사코드를 살펴보면,
는 소스노드(source node), 를 엔드노드(end node),
는 노드 까지의 최단거리, 는 노드 까지의
최단거리를 의미한다. 는 노드 의 부모 노드,
는 노드 e의 자식노드를 의미하며, 는 가 치가
변경된 링크를 의미한다.
DSPT 알고리즘은 임의의 한 링크의 값이 증가하게
되면 해당 노드의 모든 자식 노드들에 해서만 최단경
로를 다시 계산한다. 왜냐하면 다른 노드들은 새로운 최
단경로 구성에 향을 미치지 않기 때문이다. 이를
계산하기 해 DSPT 알고리즘은 증가 거리(Increased
Value)를 사용하며, 식 (1)과 같다.
(1)
식 (1)에서 , 는 시작 에서 임의의 노드
, 까지 거리이며 ′는 링크의 새로운 값이다. 즉,
노드 , 까지의 거리가 새로운 링크 비용에 의해 얼마
나 증가하는지를 나타낸다. 그러나 DSPT 알고리즘은
계산이 수행되는 과정에서 새로운 링크의 비용에 향
을 받는 노드의 자식 노드들 간의 증가 거리는 배제하
고, 새로운 링크의 비용에 향을 받지 않는 외부노드들
과 향을 받는 노드의 자식노드들 사이의 증가거리만
계산하기 때문에 잘못된 최단경로를 계산하게 된다. 그
림 2와 같이 링크 의 값이 7에서 24로 증가한 경우,
최단경로에 향을 받는 노드들은 노드 의 자식노드들
이다. 따라서 노드 의 자식노드들만 최신화가 되며, 그
결과는 그림 4에서 볼 수 있다. 그러나 그림 4의 DSPT
계산결과에서 링크 와 ( 선 표시)가 포함된 경로
는 최단경로가 아니다. 단지 노드 에서 노드 로 가는
454 정보과학회논문지 : 정보통신 제 38 권 제 6 호(2011.12)
그림 3 DSPT 알고리즘 의사코드
그림 4 DSPT 알고리즘을 용한 결과
그림 5 다익스트라 알고리즘을 용한 결과
무수히 많은 경로 의 하나일 뿐이다. 최단경로는 그림 5
에 나타냈으며, 이 결과는 리 알려진 다익스트라 알고
리즘을 이용하여 체 노드에 해 계산한 결과이다. 따
라서 그림 5와 같이 링크 와 이 경로에 포함되어
야 노드 까지의 최단거리가 23이 되어 최단경로로 설
정이 되는데, 그림 4에서는 링크 와 가 경로에 포
함되어 있지 않다. 링크 와 을 경로에 포함하여 노
드 와 노드 의 최단거리를 계산하면 각각 16과 18로
써 DSPT에서 계산된 17, 19보다 작은 값을 가지게 된
다. 즉, DSPT가 잘못된 최단경로를 제시한 것이다. 이
처럼 DSPT는 최단경로가 아닌 다른 경로를 계산하여
문제를 발생시킨다. 이런 문제 이 발생하는 이유는 최
단경로 계산이 수행되는 노드 의 자식 노드들 간의 증
가 거리를 배제하고 외부노드들로부터 노드 의 자식노
드들로 들어오는 증가거리만을 이용하여 계산하기 때문
이다. 따라서 노드 의 자식노드들 사이에 속한 링크
와 은 DSPT의 최단경로 계산 수행과정에서 제외
되기 때문에 최단경로를 계산하지 못하는 것이다.
3. 제안된 최단경로 설정 알고리즘
3.1 P-DSPT 알고리즘
P-DSPT 알고리즘의 의사코드는 그림 6과 같으며,
incoming links는 변경된 가 치의 향을 받은 노드의
자식노드들로 들어오는 링크, inner nodes는 변경된 가
치를 갖는 링크의 자식노드들을 의미한다. 알고리즘
계산과정의 시작은 DSPT 알고리즘과 동일하다. DSPT
알고리즘을 사용하기 해서는 라우 테이블이 먼
구성되어 있어야 하므로, 다익스트라 알고리즘 수행 후
DSPT 알고리즘을 용하여 그림 4와 같은 결과를 얻
는다. 하지만 2.4 에서 설명했듯이 그림 4는 최단경로
가 아니며, 노드 에서 노드 로 가는 많은 경로 의
하나일 뿐이다. 즉, 잘못된 결과이다. 최단경로 계산을
해 먼 그림 4의 결과를 임시 최단경로라고 정의하
면, 이 임시 최단경로는 링크 비용이 수정된 노드의 자
식 노드들 간의 증가거리에 해서 고려하지 않은 결과
가 된다. 다시 말해서, 링크의 비용이 변경된 노드 의
자식노드들 간의 증가거리를 고려하지 않고 계산된 잘
못된 최단경로이다. P-DSPT 알고리즘은 DSPT 알고리
즘에서 계산된 결과인 임시 최단경로를 수정하여 최단
동 라우 알고리즘의 신뢰성 향상을 한 최단 경로 설정 알고리즘 455
그림 6 P-DSPT 알고리즘 의사코드
그림 8 RDSP 알고리즘 의사코드
그림 7 P-DSPT 알고리즘을 용한 결과
경로를 계산하는 형태를 취한다. 따라서 DSPT 알고리
즘 수행과정에 링크의 비용이 변경된 노드의 자식 노드
들 간의 증가거리를 고려한 최단경로 설정 과정이 추가
된다. 즉, 노드 에 한 링크 의 값을 기존의 최단경
로와 비교하여 링크 의 값이 더 작다면 링크 를 최
단경로에 포함하며, 링크 도 마찬가지 방법으로 기존
의 최단경로와 비교하여 링크 의 값이 기존의 최단거
리 보다 작다면 최단경로에 포함한다. 만약 그 지 않다
면 기존의 임시 최단경로를 그 로 사용하면 된다. 그림 7
은 P-DSPT 알고리즘을 수행하여 얻은 결과로써, 그림
4에서 잘못 계산된 최단경로인 링크 와 을 제외하
고, 링크 와 이 포함된 최단경로를 보여 다. 이
결과는 리 알려진 다익스트라 알고리즘을 이용한 결
과인 그림 5와 일치한다. 따라서 P-DSPT 알고리즘은
DSPT 알고리즘에서 잘못 계산된 최단경로를 수정하여
신뢰성 있는 최단경로를 설정할 수 있으며, 계산에 필요
한 노드의 수가 기 때문에 타 알고리즘에 비해 연산
시간이 매우 작다는 장 이 있다.
3.2 RDSP 알고리즘
RDSP 알고리즘의 의사코드는 그림 8과 같으며, 는
앞서와 마찬가지로 증가거리를 의미한다. RDSP 알고리
즘은 P-DSPT 알고리즘과는 달리 임시 최단경로를 사
용하지 않는다 다시 말해서 DSPT 알고리즘을 수행한
후에 얻어지는 최단경로를 수정하는 간 인 형태가
아닌 직 인 형태로 최단경로를 계산한다. 즉, 링크의
456 정보과학회논문지 : 정보통신 제 38 권 제 6 호(2011.12)
비용이 수정되어 최단경로 계산을 다시 시작할 때부터
수정된 링크의 비용에 향을 받는 자식 노드들 사이의
링크 비용도 같이 고려하여, DSPT 알고리즘에서 발생
하는 문제를 제거하는 것이다. 이 문제는 수정된 링크의
비용에 향을 받는 자식 노드들 사이에서 발생하는데,
증가거리에 의해 변화된 최단경로가 자식 노드들 각각
에 서로 향을 주게 되어 자식 노드들의 증가거리를
그 로 사용하게 되면 올바른 최단경로를 계산할 수 없
게 된다. 따라서 RDSP 알고리즘은 수정된 링크의 비용
에 향을 받는 노드들과 그 지 않은 노드들을 분리하
여 알고리즘을 수행한다. 즉, 향을 받지 않은 노드들
은 DSPT 알고리즘과 같은 방법을 사용하고, 향을 받
은 노드들에 해서는 증가거리를 한번 더 용하여 계
산한다. 이 게 되면 서로 향을 주는 자식 노드들 사
이에서도 최단경로를 계산할 수 있게 된다.
를 들어 그림 7의 노드 를 기 으로 보면, 노드
는 수정된 링크의 비용에 향을 받지 않는 노드이며,
노드 는 노드 의 자식노드이므로 수정된 링크의 비용
에 향을 받는 노드이다. 따라서 노드 를 이용하여 최
단경로를 계산할 경우에는 DSPT 알고리즘에서와 같이
증가거리를 용하여 사용하고, 노드 를 계산할 경우에
는 노드 의 값에 증가거리 1을 추가로 더해서 사용하
면 되는 것이다. 결과를 보면 노드 로부터 노드 로 향
하는 최단거리는 21이고, 노드 로부터 노드 로 향하
는 최단거리는 16이 된다. 이 값은 DSPT 알고리즘에
의해 계산된 노드 로부터 노드 로 향하는 최단거리인
17보다 작은 값이다. 따라서 노드 로부터 노드 로 향
하는 경로인 링크 가 최단경로에 포함되어야 하는 것
이다. 노드 에 해서도 RDSP 알고리즘을 용하면,
노드 로부터 노드 으로 향하는 최단거리가 18이 되
어 DSPT 알고리즘에 의해 계산된 노드 로부터 노드
으로 향하는 최단거리인 19보다 작게 되므로 링크
이 최단경로에 포함되게 된다. 즉, RDSP 알고리즘을
수행한 후에도 그림 7과 같은 결과를 얻을 수 있으며
이는 다익스트라 알고리즘 수행 결과와 동일하다.
4. 성능분석 시뮬 이션 결과
제안된 P-DSPT과 RDSP 알고리즘의 성능분석은 기
존의 정 알고리즘인 다익스트라 알고리즘과 동 알
고리즘인 DSPT 알고리즘 BS 알고리즘과 비교하
다. 제안된 알고리즘의 공정한 성능분석을 해 노드의
개수(graphic size), 수정된 링크 비용의 변화율, 링크
비용의 편차 등을 변화시켜 다양한 환경에서 시뮬 이
션을 수행하 으며, 최단경로를 찾기 한 동 알고리
즘의 경우 어떤 링크에서 링크 비용이 변경되었는지에
따라 계산 시간의 차이가 발생하므로 각 링크에 ID를
부여하여 링크 비용이 변경된 치에 따른 성능을 비교
하 다. 알고리즘의 성능을 비교하기 한 척도는 알고
리즘 실행시간이다.
성능분석 시뮬 이션에 사용된 시스템은 Intel
Dual-Core 2.40Ghz 클럭으로 동작하며 2Gbyte 크기의
메모리를 사용한다. Visual Studio 2008을 사용하 으
며, 알고리즘 연산의 성능비교를 하여 Clock() 함수를
사용하여 로그램의 수행시간을 측정하고 로그램별
각 10회 반복 측정 후 평균시간을 계산하 다,
4.1 제안된 알고리즘의 성능분석을 한 고려사항
알고리즘 성능분석을 한 매개변수로 노드의 개수,
수정된 링크 비용의 변화율, 그리고 링크 비용의 편차를
사용하여 결과를 측정하 다. 한 동 알고리즘이란
특성을 고려하여 변경된 링크 비용을 갖는 링크의 치
에 따른 성능을 추가로 비교하 다.
4.1.1 노드의 개수
모든 시뮬 이션 결과는 50, 100, 150, 200개의 노드
를 가지는 그래 상에서 측정하 다. 따라서 수정된 링
크 비용의 변화율과 링크 비용의 편차에 따른 결과를
다양한 노드의 개수를 가지는 그래 에서 측정하여 결
과를 비교하 다.
4.1.2 수정된 링크 비용의 변화율
본 논문에서는 링크 비용이 7에서 24로 변경된 경우
를 시로 제시하 다. 링크 비용의 변화에 따라 최단경
로를 계산하는 시간이 달라질 수 있으므로 링크 비용
변화에 따른 성능 비교는 반드시 필요하다. 링크 비용을
50%, 100%, 200%, 300%로 변화시키면서 시뮬 이션
하 다.
4.1.3 링크 비용의 편차
링크 비용의 편차 한 알고리즘의 계산에 향을 미
칠 수 있으므로, 링크 비용 평균을 기 으로 편차를 달
리하여 성능을 비교하 다. 링크 비용의 평균은 10이 되
도록 하 으며, 이 때의 편차를 각각 5, 10, 15, 20으로
변화시키면서 시뮬 이션 하 다.
4.1.4 변경된 링크 비용을 갖는 링크의 치
마지막으로 수정된 링크 비용을 갖는 링크의 치에
따른 성능을 비교하 다. 정 알고리즘은 한 링크의 비
용이 변화되더라도 체 네트워크의 최단경로를 다시
계산하므로, 링크 비용이 변경된 링크의 치에 따라 계
산시간이 바 지 않으며, 언제나 일정한 값을 가진다.
그러나 동 알고리즘은 변경된 링크 비용을 갖는 링크
의 치가 최종 목 지에 가까울수록 다시 계산해야 하
는 경로가 어들기 때문에 계산량이 어들고 계산시
간이 빨라지게 된다. 따라서 모든 링크에 ID를 부여하
여 해당 링크의 비용이 변경되었을 때의 계산시간을 비
동 라우 알고리즘의 신뢰성 향상을 한 최단 경로 설정 알고리즘 457
(a) 링크비용 50% 증가 (b) 링크비용 100% 증가
(c) 링크비용 150% 증가 (d) 링크비용 200% 증가
그림 9 링크비용 변화율에 따른 성능 비교
교하 다. 이 때 노드의 수는 100개로 고정하고 각각의
링크를 생성하여 시뮬 이션 하 다.
4.2 시뮬 이션 결과
4.1에서 제시한 고려사항을 시뮬 이션에 용하여 성
능을 비교하 다. 그림 9의 (a), (b), (c), (d)는 노드의
개수가 50, 100, 150, 200개로 증가할 때 링크 비용 변
화율에 따른 비교를 나타낸다. (a)는 50%, (b)는 100%,
(c)는 200%, (d)는 300% 만큼 링크 비용을 변화시켰다.
체 으로 노드의 개수가 증가할수록 최단경로 계산
시간이 늘어남을 볼 수 있다. 링크 비용의 변화율이 작
을 경우에는 최단경로 계산시간이 비교 선형 으로
늘어나지만 링크 비용의 변화율이 커질수록 최단경로가
수정되는 경우가 많이 발생하기 때문에 최단경로 계산
시간이 다소 불규칙하게 늘어나는 것을 확인할 수 있다.
알고리즘별로는 본 논문에서 제안한 P-DSPT과 RDSP
알고리즘이 기존의 다익스트라 알고리즘에 비해 성능이
좋은 것을 확인할 수 있다. 하지만 DSPT 알고리즘에
비해서는 수행시간이 최 12% 증가하는데, 이는 DSPT
알고리즘에 정확한 최단경로를 계산하기 한 과정이
추가되었기 때문이다. 비록 DSPT 알고리즘의 수행시간
이 가장 작더라도, DSPT 알고리즘은 정확한 최단경로
를 구할 수 없으므로 좋은 알고리즘이라 할 수 없다.
그림 10의 (a), (b), (c), (d)는 노드의 개수가 50, 100,
150, 200개로 증가할 때 링크 비용 편차에 따른 비교를
나타낸다. (a)는 σ=5, (b)는 σ=10, (c)는 σ=15, (d)는 σ
=20으로 하여 시뮬 이션 하 다. 그림 10과 마찬가지
로 노드의 개수가 증가할수록 최단경로 계산시간이 늘
어나며, 링크 비용의 편차가 클수록 계산시간이 늘어나
는 것을 확인할 수 있다. 알고리즘 성능 역시 P-DSPT
과 RDSP 알고리즘이 기존의 다익스트라 알고리즘에 비
해 최 14%, 21% 좋은 것을 확인할 수 있다.
그림 11은 변경된 링크 비용을 갖는 링크의 치에
따른 성능을 비교한 그림이다. 정 알고리즘인 다익스
트라 알고리즘은 링크 비용이 변경된 링크의 치에 상
없이 일정한 계산시간을 가진다. 그러나 동 알고리
즘인 P-DSPT, RDSP, DSPT 알고리즘은 링크 비용이
변경된 링크의 치에 따라 계산시간이 확연한 차이를
보인다. 최단 경로의 출발지 부근에서 링크 비용이 변경
된 경우에는 동 알고리즘들의 계산시간이 정 알고
리즘인 다익스트라 알고리즘의 최단 경로 계산시간 보
다 더 많이 소요된다. 그러나 최단경로의 목 지로 갈수
록 새로운 최단경로 계산에 포함되는 노드의 수가 어
458 정보과학회논문지 : 정보통신 제 38 권 제 6 호(2011.12)
(a) σ=5 (b) σ=10
(c) σ=15 (d) σ=20
그림 10 링크비용 편차에 따른 성능 비교
그림 11 변경된 링크의 치에 따른 성능 비교
지므로 다익스트라 알고리즘에 비해 동 알고리즘들의
최단경로 계산시간이 어들게 된다.
5. 결론 향후 연구 과제
본 논문에서는 네트워크의 최단경로 계산을 한 동
알고리즘인 P-DSPT 알고리즘과 RDSP 알고리즘을
제시하 다. 이런 동 알고리즘은 수정된 링크의 비용
이 향을 주는 노드만을 찾아내어 계산하여 최단경로
계산량을 일 뿐만 아니라 계산시간도 일 수 있다.
한 최단경로의 일부분만을 수정하여 네트워크 라우
테이블의 구성에 향을 게 미치기 때문에 매우 안정
이라 할 수 있다. 동 알고리즘 기존의 DSPT 알
고리즘은 링크의 비용이 증가할 경우 일부 잘못된 계산
을 하여 정확한 최단경로를 계산할 수 없으므로, 본 논
문에서는 이를 개선하여 신뢰성 있는 최단경로를 계산
하는 P-DSPT과 RDSP 알고리즘을 소개하 다.
제안된 알고리즘들은 노드의 개수, 수정된 링크 비용
의 변화율, 그리고 링크 비용의 편차 등을 변화시켜 다
양한 환경에서 성능을 비교하 으며, 특히 동 알고리
즘의 특성을 고려하여 변경된 링크 비용을 갖는 링크의
치에 따른 성능 비교를 하 다. 제안된 알고리즘들은
정 알고리즘인 다익스트라 알고리즘 보다 최단경로
계산시간이 단축되어 성능 향상이 있었지만, 동 알고
리즘인 DSPT 알고리즘 보다는 계산시간이 증가하 다.
그러나 DSPT 알고리즘은 일부 잘못된 최단경로를 계
산하는 반면, 제안된 알고리즘들은 항상 신뢰성 있는 최
단경로를 계산하 다.
향후에는 하나의 링크 비용이 수정된 경우가 아닌 여
러 링크의 비용이 수정된 경우에 최단경로를 보다 빠르
고 정확하게 계산할 수 있는 알고리즘에 한 연구가
동 라우 알고리즘의 신뢰성 향상을 한 최단 경로 설정 알고리즘 459
필요하다. 한 네트워크 토폴로지 변경 시 빠르게 최단
경로를 재탐색하는 IPFRR(IP Fast Re-Route)을 동
라우 알고리즘에 용하는 연구가 필요하다.
참 고 문 헌
[ 1 ] W. Stalling, "High-Speed Networks: TCP/IP and
ATM Design Principles," Prentice Hall, Inc., 1998.
[ 2 ] G. Malkin, "RIP Version 2," Request for Comments
2453, Nov. 1998.
[ 3 ] J. Moy, "OSPF Version 2," Request for Comments
2328, Apr. 1998.
[ 4 ] R. Chandra and J. Scudder, "Capabilities Advertise-
ment with BGP-4," Request for Comments 2842,
May. 2000.
[ 5 ] R. Bellman, "On a routing problem," Quarterly
Appl. Math., vol.16, pp.87-90, 1958.
[ 6 ] E. Dijkstra, "A note two problems in connection
with graphs," Numerical Math., vol.1, pp.269-271,
1959.
[ 7 ] Thomas H. Cormen, Charles E. Leiserson, Ronald
L. Rivest, and Clifford Stein, "Introduction to
Algorithms Second Edition," The MIT Press, 2001.
[ 8 ] Bin Xiao, Jiannong Cao, Zili Shao, and Edwin
H.-m. sha, "An Efficient Algorithm for Dynamic
Shortest Path Tree Update in Network Routing,"
Journal of Communication and Networks, vol.9,
no.4, pp.499-510, Dec. 2007.
[ 9 ] G. Ramalingam and T.W. Reps, "An Incremental
Algorithm for a Generalization of the Shortest-
Path Problem," J. Algorithms, vol.21, no.2, pp.267-
305, 1996.
[10] D. Frigioni, A. Marchetti-Spaccamela, and U.
Nanni, "Fully Dynamic Algorithms for Maintaining
Shortest Paths Trees," J. Algorithms, vol.34, no.2,
pp.251-281, 2000.
[11] P. Narvaez, K. Siu, and H. Tzeng, "New dynamic
SPT algorithm based on a ball-and-string model,"
IEEE/ACM Trans. Netw., vol.9, no.6, pp.706-718,
Dec. 2001.
[12] Edward P.F. Chan and Yaya Yang, "Shortest Path
Tree Computation in Dynamic Graphs," IEEE
Trans. on computers, vol.58, no.4, Apr. 2009.
[13] V. Eramo, M. Listanti, and A. Cianfrani, "Design
and Evaluation of a New Multi-Path Incremental
Routing Algorithm on Software Routers," IEEE
Transactions on Network. and service manage-
ment, vol.5, no.4, Dec. 2008.
조 태 환
2001년 2월 인하 학교 항공우주공학과
졸업(학사). 2009년 3월〜 재 인하 학
교 자공학과 통합과정. 심분야는 컴
퓨터 네트워크, 항공 자시스템, 항공교
통 제시스템
김 지 원
2007년 건양 학교 자정보공학과 졸업
(학사). 2009년 인하 학교 자공학과
졸업(석사). 2010년~ 재 인하 학교
자공학과 박사과정. 심분야는 멀티미디
어 통신, 무선 통신, 컴퓨터 네트워크
김 병 조
2010년 인하 학교 자공학과 졸업(학
사). 2011년~ 재 인하 학교 자공학
과 석사과정. 심분야는 컴퓨터 네트워
크, 컴퓨터 구조, System on Chip
윤 완 오
2000년 경기 학교 자공학과 졸업(학
사). 2002년 인하 학교 학원 자공학
과 졸업(석사). 2010년 인하 학교 학
원 자공학과 졸업(박사). 2010년~ 재
인하 학교 정보 자공동연구소 연구교
수. 심분야는 병렬 분산 처리 시스
템, 컴퓨터 아키텍처
최 상 방
1981년 한양 학교 자공학과 졸업(학
사). 1981년~1986년 LG 정보통신(주)
1988년 University of washinton 졸업
(석사). 1990년 University of washinton
졸업(석사). 1991년~ 재 인하 학교
자공학과 교수. 심분야는 컴퓨터 아키
텍처, 컴퓨터 네트워크, 무선 통신, 병렬 분산 처리 시스
템, Fault-tolerant Computing