01.04.2014 Views

DiffServ 백본망에서 효율적인 네트워크 대역폭 결정 알고리즘 - KNOM

DiffServ 백본망에서 효율적인 네트워크 대역폭 결정 알고리즘 - KNOM

DiffServ 백본망에서 효율적인 네트워크 대역폭 결정 알고리즘 - KNOM

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

<strong>DiffServ</strong> <strong>백본망에서</strong> <strong>효율적인</strong> <strong>네트워크</strong> <strong>대역폭</strong> <strong>결정</strong> <strong>알고리즘</strong><br />

(Efficient Bandwidth Decision Algorithm in <strong>DiffServ</strong> Backbone<br />

Networks)<br />

손춘호, 오준석, 이경호, 김기응<br />

KT <strong>네트워크</strong>기술연구소<br />

{choonho, jsoh, caza, gekim}@kt.co.kr<br />

요<br />

약<br />

<strong>DiffServ</strong> 를 제공하는 백본망은 하나의 링크에 여러 개의 클래스별 트래픽이 흐르<br />

게 된다. 각 클래스별 트래픽은 <strong>DiffServ</strong> 정책에 따라 하나의 <strong>대역폭</strong>을 일정 비율로<br />

나누어 쓴다. 이는 일부 구간의 <strong>대역폭</strong>을 낭비하는 결과를 초래한다. 본 논문에서는<br />

Star topology 를 가지고 있는 <strong>DiffServ</strong> 백본망을 클래스별 링크의 <strong>대역폭</strong>을 중심으로<br />

모델링하고, 백본망으로 유입되는 클래스별 트래픽 정보를 바탕으로 각 링크의 클래<br />

스별 <strong>대역폭</strong> 비율을 효율적으로 할당할 수 있는 방안을 제안한다. 이는 거시적 관점<br />

에서 트래픽의 패턴을 바탕으로 <strong>효율적인</strong> <strong>대역폭</strong> 할당을 찾는다는데 의의를 둔다. 이<br />

를 통해 <strong>DiffServ</strong> 를 제공하는 백본망의 <strong>효율적인</strong> <strong>대역폭</strong> 관리 방안을 제시하게 된다.<br />

Keywords: <strong>DiffServ</strong>, <strong>대역폭</strong> 할당, 트래픽, <strong>네트워크</strong> 모델링<br />

1. 서론<br />

현재의 주요 인터넷 백본망은 Best Effort<br />

서비스를 제공하는 망이다. 이는 IP 미디어,<br />

휴대 인터넷, VoIP, VPN 등 다양한 품질 보장<br />

형 서비스를 제공하기에는 부족하다. 이러한<br />

서비스를 제공하기 위해서 <strong>DiffServ</strong>[1]를 제공<br />

하는 백본망이 구축 되고 있다. <strong>DiffServ</strong> 가<br />

제공되는 <strong>백본망에서</strong>는 전체 트래픽을 여러 개<br />

의 클래스로 나누어 관리한다. 각 클래스는 일<br />

정 <strong>대역폭</strong>을 할당 받게 되고 상위 클래스가 하<br />

위 클래스보다 우선권을 가지고 서비스를 제공<br />

받게 된다. 일반적으로 이러한 클래스별 트래<br />

픽은 링크의 <strong>대역폭</strong>을 클래스별로 일정 비율을<br />

나누어 가지게 된다. 따라서 클래스별로 일정<br />

<strong>대역폭</strong>과 품질을 보장받게 된다.<br />

최근 IP 미디어, 휴대 인터넷, VoIP 등의<br />

서비스가 활성화 되면서 <strong>DiffServ</strong> <strong>백본망에서</strong><br />

의 클래스별 트래픽은 유동적으로 변하고 있다.<br />

일반적으로 백본망의 구조는 경계 지역<br />

(boundary node)에서 트래픽이 유입되거나 유<br />

출된다. 이는 백본 내부 구간에서는 트래픽의<br />

생성이나 소멸이 되지 않게 된다. 따라서 경계<br />

지역의 클래스별 트래픽을 바탕으로 망 전체의<br />

트래픽을 예측할 수 있다. 예를 들어 모든 트<br />

래픽을 Premium, Gold, Silver, Bronze 의 4 가<br />

지 클래스로 구분하였다고 하자. 각 경계 라우<br />

터는 네 가지의 서비스가 모두 제공될 수도 있<br />

고, Premium 과 Gold 서비스만 제공될 수도 있<br />

다. 이러한 상황에 따라 경계라우터에서 코어<br />

라우터(Core Router)로 흐르는 클래스별 트래<br />

픽의 비율이 다르게 된다. 하지만 관리의 편리<br />

함을 위해서 모든 링크에는 동일한 비율로 클<br />

래스별 <strong>대역폭</strong>을 할당하게 된다. 따라서 각 경<br />

계 라우터의 트래픽을 바탕으로 백본 구간으로<br />

유입되는 링크의 <strong>효율적인</strong> 사용을 위한 방법이<br />

연구될 필요가 있다.<br />

이를 위해서 본 논문에서는 <strong>DiffServ</strong> 를 제<br />

공하는 트리(tree) 구조를 가지는 백본망을 가<br />

정하고 있다. 이는 모든 트래픽이 센터로 모이<br />

는 경우만을 고려한 것으로, 라우팅과 관련된<br />

요소는 본 논문의 범위 밖이다. 노드와 노드를<br />

30<br />

<strong>KNOM</strong> Review, Vol. 9, No. 2, Dec. 2006


연결하는 링크에 클래스별 <strong>대역폭</strong>을 표현할 수<br />

있게 구성하였다. 이를 바탕으로 클래스별로<br />

<strong>효율적인</strong> 링크 <strong>대역폭</strong> 할당 비율을 계산하는<br />

<strong>알고리즘</strong>을 제안하였다. 이러한 정보는 현재<br />

<strong>DiffServ</strong> 백본망의 효율성을 판단하는 기준으<br />

로 사용될 수도 있다.<br />

본 논문의 다음과 같은 구성으로 이루어져<br />

있다. 2 장에서는 본 연구와 관련된 자료를 정<br />

리하였고, 3 장에서는 <strong>DiffServ</strong> 백본망을 모델<br />

링하고, <strong>효율적인</strong> <strong>대역폭</strong>을 <strong>결정</strong>하는 <strong>알고리즘</strong><br />

을 제시하였다. 다음으로 4 장에서는 실험 데<br />

이터를 바탕으로 결과를 계산해 보았다. 마지<br />

막으로 5 장에서는 결론과 향후 생각해 볼 문<br />

제를 제시하였다.<br />

2. 관련 연구<br />

<strong>네트워크</strong> 토폴로지는 많은 <strong>네트워크</strong> 관리<br />

방법이나 성능 분석의 기초가 된다. 잘 모델링<br />

된 <strong>네트워크</strong> 구조는 인터넷을 분석하는데 중요<br />

한 역할을 한다[2]. 본 연구는 <strong>DiffServ</strong> 네트<br />

워크 토폴로지를 어떻게 모델링하고 시뮬레이<br />

션을 할 것인지가 중요한 초점이다. 이와 관련<br />

하여 많은 <strong>네트워크</strong> 시뮬레이터는 그래프 이론<br />

과 큐잉 이론을 바탕으로 각자의 시뮬레이션<br />

환경을 구축한다. 그 중에서도 가장 많이 사용<br />

되는 것은 NS-2[3]가 있다.<br />

서론에서 가정한 것과 같이 본 논문에서는<br />

스타토폴로지를 가지는 백본으로 범위를 축소<br />

하고, Delay, Loss, Jitter 와 같은 성능 요소<br />

를 배제하고 <strong>대역폭</strong>의 크기만을 대상으로 하고<br />

있다. 따라서 복잡한 시뮬레이터를 사용하기<br />

보다는 그래프 이론을 바탕으로 간단하게<br />

<strong>DiffServ</strong> 를 모델링 하였다. <strong>DiffServ</strong> 모델의<br />

QoS 처리를 위하여 요구되는 자원과 설정된<br />

SLA(Service Level Agreement) 등의 정보를 바<br />

탕으로 자원을 어떻게 할당할 것인가를 <strong>결정</strong>하<br />

는 중앙 장치가 필요한데 이러한 기능을 하는<br />

것을 Van Jacobson 에 의해 BB(Bandwidth<br />

Broker)[4]라 명명하게 되었다. BB 는 다양한<br />

SLA 와 SLA 별로 할당된 <strong>대역폭</strong>을 저장하고 향<br />

후 할당을 <strong>결정</strong>하기 위한 기초로 하는 데이터<br />

베이스를 가지고 있게 된다. 즉 BB 는 요청된<br />

데로 사용자에게 우선적인 서비스를 할당하고<br />

정의된 서비스를 위하여 올바른 전달행동으로<br />

라우터를 구성하도록 하는 기능을 수행하게 된<br />

다. 즉 BB 는 <strong>DiffServ</strong> <strong>네트워크</strong> 전체의 자원<br />

을 관리하며, 또한 <strong>DiffServ</strong> <strong>네트워크</strong>에서의<br />

정책에 따라 내부 또는 외부 수락 제어를 <strong>결정</strong><br />

할 수 있다. 이는 매 순간 <strong>네트워크</strong>의 효율성<br />

을 극대화할 수 있는 방법을 찾는 것으로 본<br />

논문에서는 장기간의 트래픽 현황을 바탕으로<br />

<strong>대역폭</strong>을 <strong>결정</strong>하는 것과는 차이를 가진다.<br />

3. Bandwidth <strong>결정</strong> <strong>알고리즘</strong><br />

3.1 <strong>DiffServ</strong> 라우터의 QoS 모델<br />

그림 1 에서와 같이 <strong>DiffServ</strong> 라우터는 크<br />

게 두 가지의 동작으로 구분할 수 있다. 하나<br />

는 라우터로 들어오는 트래픽에 대해서 클래스<br />

별로 트래픽을 구분하는 conditioning 과 각<br />

클래스별로 구분된 트래픽을 QoS 를 보장하여<br />

다음 라우터로 전달하는 Per Hop<br />

Behavior(PHB)로 나눌 수 있다.<br />

INPUT 정책<br />

Conditioning<br />

Classification<br />

Traffic Shaping<br />

Policing<br />

Gold<br />

Silver<br />

Bronze<br />

BE<br />

Per Hop Behavior<br />

그림 1. <strong>DiffServ</strong> 구조<br />

OUTPUT 정책<br />

Buffering<br />

Scheduling<br />

하나의 경계 라우터(Edge Router)에는 액<br />

세스 구간과 연결되어 있는 여러 개의 인터페<br />

이스가 존재하고 각 인터페이스는 하나의 클래<br />

스로 트래픽이 백본으로 유입되게 된다. 이러<br />

한 액세스 구간에서 들어온 트래픽은 입력 인<br />

터페이스의 종류나 패킷의 port 번호를 바탕으<br />

로 트래픽의 종류를 구분하게 된다. 클래스로<br />

구분된 트래픽은 출력 인터페이스에 할당된 클<br />

래스별 큐(Queue)에 들어가게 되고 각 큐별 정<br />

책에 따라 다음 라우터로 트래픽이 전달되게<br />

된다. 따라서 하나의 QoS 라우터는 다음과 같<br />

이 정규 표현식[6]을 이용하여 정의할 수 있다<br />

(정의 1). 이는 라우터의 많은 요소로 구성되<br />

어 있는데, 서론에서 가정한 것과 같이 많은<br />

요소들 중에서 <strong>대역폭</strong>만을 표현한 것이다.<br />

31<br />

<strong>KNOM</strong> Review, Vol. 9, No. 2, Dec. 2006


정의1.<br />

<strong>DiffServ</strong> Router<br />

Router::<br />

=<br />

Node::<br />

=<br />

Link::<br />

=<br />

Node Link<br />

Number<br />

+<br />

( Number∈자연수)<br />

{( SrcNode, DestNode), Bandwidth, P, G, S, B}<br />

SrcNode, DestNode∈Node<br />

U{0}<br />

Bandwidth=<br />

Link의<strong>대역폭</strong><br />

P+ G+ S + B = 1, 0 ≤P, G, S, B ≤1<br />

라우터는 <strong>백본망에서</strong> 유일한 식별자인<br />

Node 번호와 1 개 이상의 Link 의 집합으로 이<br />

루어져 있다. 하나의 Link 는 소스노드<br />

(SrcNode)와 목적지노드(DestNode)를 연결하며,<br />

소스노드에서 목적지 노드 방향으로 <strong>대역폭</strong>을<br />

가지고 있다. <strong>DiffServ</strong> 에서 제공하는 트래픽<br />

은 Premium(P), Gold(G), Silver(S),<br />

Bronze(B)의 네 가지 클래스로 구분되며, 각<br />

값들은 링크의 전체 <strong>대역폭</strong>에서 자신이 가지는<br />

<strong>대역폭</strong>의 비율을 표시한다. 한 노드에서의 트<br />

래픽의 방향은 입력과 출력으로 구분할 수 있<br />

다. 따라서 SrcNode 가 Node 와 동일할 경우에<br />

는 출력 링크가 되고, DestNode 가 Node 와 동<br />

일할 경우에는 입력 링크가 된다. 한 링크의<br />

클래스별 트래픽은 Bandwidth * {P,G,S,B}의<br />

값을 취하면 된다. SrcNode 또는 DestNode 가<br />

{0}인 경우에는 입력 링크 또는 출력 링크에<br />

대해서 대국 노드의 정보를 알 수 없음을 나타<br />

낸다. 이는 백본 구간과 액세스 구간의 경계<br />

링크를 표현할 때 사용 될 수 있다. 이는 즉<br />

경계의 링크의 특성은 경계라우터에서 구할 수<br />

있으나, 액세스 장비의 정보를 관리 대상 밖이<br />

라는 것을 의미한다.<br />

예를 들어 Router ::= 1 {(0,1), 10M, 0.4,<br />

0.3, 0.2, 0.1} {(1,2), 100M, 0.4, 0.4, 0.1,<br />

0.1} 로 표현되어 있다면 1 번 라우터는 2 개의<br />

링크를 가지고 있고, 알 수 없는 노드(0)에서<br />

들어오는 10Mbps <strong>대역폭</strong>을 가지는 입력 링크와<br />

2 번 라우터로 가는 100Mbps 출력 링크를 가지<br />

고 있다는 것을 표현 한다. 또한 10Mbps 의 링<br />

크는 Premium 클래스로 4Mbps 를 보장하고,<br />

Gold 클래스로 3Mbps 를 보장하고, Silver 클<br />

래스로 2Mbps, Bronze 클래스로 1Mbps 를 보장<br />

하고 있음을 알 수 있다.<br />

3.2 확장 스타 토폴로지 모델<br />

<strong>네트워크</strong> 토폴로지는 라우터와 라우터들이<br />

어떻게 연결되어 있는지를 정의하는 것이다.<br />

다시 말해 <strong>네트워크</strong> 토폴로지는 데이터 전송<br />

경로를 비롯한 전송 매체와 장치들의 배치에<br />

대하여 기술 한 것으로 <strong>네트워크</strong>의 동작 방법<br />

에 큰 영향을 미친다[5].<br />

스타 토폴로지의 경우 각각의 라우터는 자<br />

신만의 케이블을 가지고 중앙 장치에 연결되기<br />

때문에 이 케이블에 문제가 발생할 경우 단지<br />

해당 호스트만 영향을 받을 뿐 <strong>네트워크</strong>의 다<br />

른 부분은 정상적으로 동작한다. 스타 네트워<br />

크가 주 <strong>네트워크</strong> 장치에 연결되는 또 다른 추<br />

가 <strong>네트워크</strong> 장치를 포함하도록 확장된 경우를<br />

확장 스타 토폴로지라고 하며 그림 2 와 같은<br />

구조를 가진다.<br />

그림 2. 확장된 스타 토폴로지<br />

그림 2 와 같은 확장된 스타 토폴로지는 한<br />

국과 같이 대부분의 트래픽이 수도권으로 집중<br />

되는 <strong>네트워크</strong> 구조를 가진 형태에 적합한 토<br />

폴로지이다. 이는 대부분의 웹 서버와 타 망으<br />

로 연결된 링크가 센터노드에 연결되어 있기<br />

때문이기도 하다. 위와 같은 확장된 스타 토폴<br />

로지는 센터노드를 루트(root)로 하는 트리 구<br />

조로도 볼 수 있다. 각 지역 노드들은 백본망<br />

의 경계 라우터가 되고 센터노드와 중계 노드<br />

는 코어라우터의 역할을 하게 된다. 이는 그림<br />

3 과 같은 트리 구조로 변경 가능하다.<br />

32<br />

<strong>KNOM</strong> Review, Vol. 9, No. 2, Dec. 2006


노드에서 링크들 사이의 크기를 정의하였다.<br />

이는 다음과 같은 예를 통해서 쉽게 이해될 수<br />

있다. 지역노드의 링크들 중에서 액세스 구간<br />

에서 들어오는 입력 링크의 <strong>대역폭</strong>은 지역노드<br />

에서 중계노드로 나가는 출력 링크의 <strong>대역폭</strong>보<br />

다 작아야 한다. 정의 4 는 노드들 간의 대소를<br />

비교한 것으로 예를 들어 센터노드는 모든 중<br />

계노드보다 크며, 중계노드는 하위의 지역노드<br />

보다 크다는 것을 의미한다.<br />

3.3 트리 탐색 방법<br />

그림 3. 트리 구조로 변경<br />

그림 3 과 같이 백본의 <strong>네트워크</strong> 구조를 도<br />

식화 하면 <strong>DiffServ</strong> 를 제공하는 백본 네트워<br />

크는 3.1 장에서 제시한 Node 와 Link 의 집합<br />

으로 표현 할 수 있다. 위의 트리가 일반적인<br />

트리와의 차이점은 Leaf 노드(지역노드)가 자<br />

식 링크를 가지고 있다는 것이다. 이는 액세스<br />

구간에서 올라오는 정보를 하나의 링크로 표현<br />

하는데 사용된다. 따라서 백본과 액세스 구간<br />

의 경계를 포함하는 <strong>네트워크</strong>는 다음과 같이<br />

그래프이론을 이용하여 정의할 수 있게 된다<br />

(정의 2,3,4).<br />

정의 2. <strong>DiffServ</strong> <strong>네트워크</strong><br />

Network :: = Node<br />

정의 3. Link1<br />

∃<br />

iff SrcNode == DestNode<br />

1 2<br />

&<br />

⊇<br />

Bandwidth ≥ Bandwidth<br />

+<br />

1 2<br />

Link1 = {( SrcNode , DestNode ), Bandwidth , P , G , S , B }<br />

1 1 1 1 1 1 1<br />

Link 2 = {( SrcNode , DestNode ), Bandwidth , P , G , S , B }<br />

정의 4. Node1<br />

Link<br />

⊇<br />

∨<br />

1 2<br />

2 2<br />

⊃<br />

Link 일때<br />

Link +<br />

Link2(링크의 대소비교)<br />

2 2 2 2 2<br />

Node2(노드의 대소비교)<br />

∃<br />

{ Link | Link1 = {( Node2, Node1), Bandwidth , P , G , S , B }}<br />

1 1 1 1 1 1<br />

∨<br />

{ Link | Link 2 = {( SrcNode , Node2), Bandwidth , P , G , S , B }}<br />

2 3 2 2 2 2 2<br />

본 <strong>알고리즘</strong>은 다음과 같은 가정에서부터<br />

시작한다.<br />

1) 모든 트래픽은 경계라우터(Edge<br />

router)에서 유입된다.<br />

2) 백본 구간 안에서는 트래픽의 생성이나<br />

소멸이 발생하지 않는다.<br />

3) 경계라우터에서 유입된 모든 트래픽은<br />

센터노드까지 올라간다 (상향 트래픽만 고려).<br />

위와 같은 가정에서 본 <strong>알고리즘</strong>은 액세스<br />

링크의 클래스별 <strong>대역폭</strong> 비율을 바탕으로 나머<br />

지 링크의 <strong>효율적인</strong> 클래스별 비율과 <strong>대역폭</strong>을<br />

찾는다. 상위 링크의 값은 하위링크의 값을 바<br />

탕으로 구할 수 있다. 이는 식 1 에 나와 있다.<br />

식 1<br />

∃<br />

∀<br />

if Node() t ⊃ Node(),1<br />

i ≤i ≤n이면<br />

Link(t)=<br />

Bandwidth<br />

n<br />

∑<br />

n<br />

∑<br />

i=1<br />

t<br />

Link()<br />

i<br />

=<br />

n<br />

∑<br />

i=1<br />

Bandwidth<br />

Bandwidthi<br />

* Pi<br />

Pt =<br />

i=1<br />

Bandwidth<br />

, Pi, Pt<br />

∈{ P, G, S, B}<br />

t<br />

식 1 을 보면, 상위 링크는 하위 링크의 합<br />

으로 표현되고, 상위링크의 <strong>대역폭</strong>(Bandwidth)<br />

는 하위 링크의 <strong>대역폭</strong>의 합으로 <strong>결정</strong>된다. 각<br />

클래스별 <strong>대역폭</strong> 비율은 전체 <strong>대역폭</strong> 중에서<br />

클래스가 점유하는 트래픽의 비율로 계산된다.<br />

그림 4 의 예제를 보면서 설명해 보겠다.<br />

i<br />

(정의 2)는 백본 <strong>네트워크</strong>를 노드와 링크<br />

의 집합으로 표현하였고, (정의 3)은 하나의<br />

33<br />

<strong>KNOM</strong> Review, Vol. 9, No. 2, Dec. 2006


그림 4. <strong>네트워크</strong> 트리(예제)<br />

그림 4 에서 Node(0)는 센터노드로 보고,<br />

Node(1)는 중계 노드로 보자. 그리고 Node(2)<br />

와 Node(3)의 트래픽은 Node(1) 중계노드로 전<br />

달되고 최종적으로 Node(0)로 올라간다고 간주<br />

하자. Link(2)의 클래스별 비율(Premium, Gold,<br />

Silver, Bronze)이 4:3:2:1 이고 Link(3)의 클<br />

래스별 비율이 6:4:0:0 이라고 하고, <strong>대역폭</strong>은<br />

각각 100Mbps, 200Mbps 이면 <strong>네트워크</strong> 트리는<br />

다음과 같이 표현된다.<br />

Network ::= 0 1 2 3<br />

{(1,0), X, X, X, X, X}<br />

{(2,1),100M, 0.4, 0.3, 0.2, 0.1}<br />

{(3,1),200M, 0.6, 0.4, 0.0, 0.0}<br />

X : unknown<br />

따라서 (식 1)에 따라 Link(1)의 값을 계<br />

산할 수 있다.<br />

Bandwidth(1) = Bandwidth(2) + Bandwidth(3)<br />

= 100M + 200M = 300M<br />

100 M *0.4 + 200 M *0.6<br />

Pr emium =<br />

= 0.53<br />

300M<br />

100 M *0.3+<br />

200 M *0.4<br />

Gold = = 0.37<br />

300M<br />

100 M *0.2 + 200 M *0.0<br />

Silver =<br />

= 0.07<br />

300M<br />

100 M *0.1+<br />

200 M *0.0<br />

Bronze = = 0.03<br />

300M<br />

∴ Link(1) = {(1, 0), 300 M ,0.53, 0.37,0.07,0.03}<br />

위 결과에서 보면 Node(2)와 Node(3)에서<br />

올라오는 트래픽의 비율이 Premium, Gold,<br />

Silver, Bronze 당 각각 4:3:2:1 과 6:4:0:0 로<br />

유입될 때 Node(0)로 연결된 Link(1)은 300M<br />

의 <strong>대역폭</strong>을 가지고 0.53:0.37:0.07:0.03 의<br />

비율로 서비스 하는 것이 효율적임을 할 수 있<br />

다. 이러한 계산들을 <strong>네트워크</strong>의 트리에서<br />

leaf 에서부터 root 로 각각의 값들을 찾아가면<br />

된다. 그림 5 는 <strong>네트워크</strong> 트리가 구성되었을<br />

때 재귀적으로 모든 링크의 값을 찾는<br />

Pseudocode 를 나타낸다. 이는 한 링크의 값을<br />

구할 때 자신보다 작은 링크들의 값이 모두 구<br />

해졌을 때 자신의 값을 계산할 수 있음을 보여<br />

준다.<br />

이 방식은 트리를 DFS(depth first<br />

search)하면서 leaf 에서 root 로 값을 완성해<br />

서 올라가는 방식이다. <strong>네트워크</strong> 트리가 일반<br />

적인 tree 에서 DFS 를 하는 방식과 큰 차이점<br />

은 DFS 는 노드사이에 부모와 자식과의 관계를<br />

바탕으로 노드에서 계산을 하지만, <strong>네트워크</strong><br />

트리에서는 부모 노드와 자식 노드와의 관계를<br />

바탕으로 링크에서 계산을 해야 한다.<br />

findLink( T )<br />

for all link(i) less than link(t)<br />

if link(i) is unknown<br />

link(T) =<br />

findLink(i)<br />

∑ n<br />

i=1<br />

4 구현 및 실험<br />

Link(i)<br />

그림 5. 링크 계산 <strong>알고리즘</strong><br />

백본에서의 장비 정보 및 트래픽 정보는<br />

많은 NMS(Network Management System)에서 이<br />

미 제공하고 있는 기능이기 때문에 본 논문에<br />

서는 어떻게 <strong>네트워크</strong> 트리를 구성하느냐는 연<br />

구 범위에서 제외하도록 하겠다. 본 논문에서<br />

는 NMS 로부터 받은 정보를 바탕으로 <strong>네트워크</strong><br />

트리를 구성되었다고 가정할 때, Leaf 노드에<br />

임의의 클래스별 트래픽을 입력하였을 때 다른<br />

링크들이 어떤 클래스별 트래픽 비율을 가져야<br />

하는지를 Python[7]을 통해서 구현하여 계산해<br />

보았다. 토폴로지는 그림 6 과 같이 구성하였<br />

고, 경계 링크의 <strong>대역폭</strong> 비율값은 표 1 과 같<br />

이 설정해 보았다.<br />

34<br />

<strong>KNOM</strong> Review, Vol. 9, No. 2, Dec. 2006


L(1)계산값<br />

L(3)계산값<br />

L(8)입력값<br />

L(9)입력값<br />

그림 6. 실험 토폴로지<br />

링크 Premium Gold Silver Bronze<br />

L(8) 0.39 0.17 0.44 0.0<br />

L(9) 0.39 0.13 0.48 0.0<br />

L(10)~L(17) 0.4 0.3 0.2 0.1<br />

표 1. 경계 링크의 클래스별 <strong>대역폭</strong><br />

그림 6 과 같은 토폴로지는 L(8)~L(17)까지<br />

는 경계 링크를 표시하고, L(8)과 L(9)을 제외<br />

한 링크는 모두 4:3:2:1 의 비율로 트래픽이<br />

흐린다. L(8)과 L(9)의 클래스별 트래픽 비율<br />

이 다르기 때문에 L(3)과 L(1)의 링크를 효율<br />

적으로 사용하기 위한 비율 또한 달라지게 된<br />

다.<br />

그림 7 의 결과값을 보면 L(3)링크의 대역<br />

폭 비율은 0.392 : 0.149 : 0.464 : 0.00 의<br />

비율로 나누는 것이 효율적임을 보여주고 있다.<br />

이는 3 번 노드로 들어오는 입력값 중에서<br />

Bronze 트래픽이 존재하지 않기 때문에 Bronze<br />

트래픽을 위해서 0.1 을 예약할 필요가 없음을<br />

의미한다. L(3)값의 변화는 L(1)링크의 <strong>대역폭</strong><br />

비율에 영향을 미치게 된다. 이는 그림 7 에서<br />

와 같이 0.398 : 0.226 : 0.333 : 0.050 의 비<br />

율로 트래픽을 할당하는 것이 효율적임을 보여<br />

주고 있다. 위의 결과는 <strong>DiffServ</strong> 백본 네트워<br />

크에 모든 링크에 클래스별로 동일한 비율로<br />

할당하는 것보다는 경계링크의 트래픽 비율을<br />

바탕으로 유동적으로 할당하는 것이 <strong>대역폭</strong>의<br />

사용 측면에서 효율적임을 보여주고 있다.<br />

그림 7 의 각 P,G,S,B 의 값의 합이 정확하<br />

게 1 이 되지 않는 이유는 Python 에서 float<br />

point 연산의 근사치값 처리 때문에 조금의 오<br />

차를 보이고 있다[8].<br />

5 결론<br />

그림 7. <strong>대역폭</strong> <strong>결정</strong> 결과 화면<br />

본 연구는 <strong>DiffServ</strong> 백본 <strong>네트워크</strong>에서<br />

QoS 정보를 바탕으로 <strong>네트워크</strong>를 모델링하고,<br />

경계 링크의 입력 트래픽을 바탕으로 백본 구<br />

간의 링크별로 <strong>효율적인</strong> <strong>대역폭</strong> 비율을 계산하<br />

는 <strong>알고리즘</strong>을 제안하였다. 이러한 링크별 대<br />

역폭 할당 비율은 현재 링크별 <strong>대역폭</strong> 비율과<br />

비교하여 보면, 링크의 효율성을 판단할 수 있<br />

는 기준이 될 수 있다.<br />

본 연구는 <strong>DiffServ</strong> <strong>네트워크</strong> 토폴로지 중<br />

확장된 스타구조를 가정하고 <strong>네트워크</strong> 트리를<br />

구성하였다. 향후에는 일반적인 그래프 구조를<br />

가지는 <strong>네트워크</strong>를 모델링 할 수 있는 방법에<br />

대한 연구와 백본 구간으로의 입력 트래픽 뿐<br />

만 아니라 출력 트래픽에 대해서도 고려하여<br />

양방향 링크에 대한 <strong>효율적인</strong> <strong>대역폭</strong> 비율을<br />

찾는 방법에 대해 확장해 볼 필요가 있다. 또<br />

한 본 연구에서는 <strong>DiffServ</strong> 관리 요소 중 대역<br />

폭에 대해서만 모델링을 하였다. 이외에도 QoS<br />

를 <strong>결정</strong>하는 링크의 Delay 값과 라우팅 테이블<br />

을 반영할 수 있는 모델로 확장해 보는 것도<br />

의미 있을 것이다.<br />

참고 문헌<br />

[1] S. Black et al.,‘An Architecture for<br />

Differentiated Services,’, RFC 2475, Dec.<br />

1998<br />

[2] K. L. Calvert, M. B. Doar and E. W. Zegura,<br />

“Modeling Internet Topology,” IEEE Trans.<br />

Commun., Mag. pp. 160-163, June. 1997.<br />

35<br />

<strong>KNOM</strong> Review, Vol. 9, No. 2, Dec. 2006


[3] The Network Simulator, ns-2,<br />

http://www.isi.edu/nsnam/ns.<br />

[4] Nichols, K, Jacobson, V and Zhang, L, “A<br />

Two-bit Differentiated Services Architecture<br />

for the Internet,”Internet Draft, ,<br />

December 1997.<br />

[5] Cisco Networking Academy Program CCNA 1 and<br />

2 Companion Guide, 3 판, 시스코 시스템즈<br />

[6] Sipser, Michael. “Introduction to the<br />

Theory of Computation”, PWS Publishing<br />

pp.31-90.<br />

[7] Python Programming Language,<br />

http://www.python.org.<br />

[8] Floating Point Arithmetic: Issues and<br />

Limitations,<br />

http://docs.python.org/tut/node16.html<br />

이경호<br />

1985.2 : 경북대학교 컴퓨터공학과 학사<br />

1997.2 : 경북대학교 컴퓨터공학과 석사<br />

1997.7 ~ 현재 KT <strong>네트워크</strong>기술연구소 인터넷연구<br />

담당 책임연구원<br />

멀티캐스트, MPLS, IP 라우팅 프로토콜,<br />

IP 망운용관리<br />

손춘호<br />

2004.2 : 연세대학교 컴퓨터과학과 학사<br />

2006.2 : 한국과학기술원 전산학과 석사<br />

2006.2 ~ 현재 KT <strong>네트워크</strong>기술연구소 인터넷연구<br />

담당 전임연구원<br />

QoS, <strong>네트워크</strong> 모델링, <strong>네트워크</strong> 보안<br />

김기응<br />

1984.2 : 단국대학교 전자공학과 학사<br />

1986.2 : 단국대학교 전자공학과 석사<br />

1989.8 ~ 현재 KT <strong>네트워크</strong>기술연구소 인터넷연구<br />

담당 IP 망관리연구부장<br />

통신망운용관리, Multicast Network 관<br />

리기술, QoS<br />

오준석<br />

1997.2 한국과학기술원 물리학과 학사<br />

2005.2 ICU-CMU Software Engineering 공동석사<br />

1997.9 ~ 현재 KT <strong>네트워크</strong>기술연구소 인터넷연구<br />

담당 선임연구원<br />

VPN, MPLS, QoS, 통신망운용관리<br />

36<br />

<strong>KNOM</strong> Review, Vol. 9, No. 2, Dec. 2006

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!