글 싣는 순서
QoS에 대해 정리할려고 몇 번이나 다음 먹다가 못했습니다. 너무 방대하여 연재로 써야되는 부담이 있으며, 지금까지 벌려놓은 연재가 많아서 계속 포기했었습니다만, 주위에 계신분들이 QoS에 대해 어렵다고만 생각하고, 쉽게 접근하질 못하는 것을 보고, 이번 주말에 정리하였습니다. 내용은 전체적인 QoS의 개념과 실제 망에 적용하기 위한 방안을 위주로 작성하였습니다. 시스코 라우터 밀 스위치를 통한 QoS 설정은 아마도 허클베리핀 님이나 민형애비님 등이 시간 나실 때 정리하실 것입니다. 이글을 이해하기 위해서는 패킷 구조에 대한 이해와 음성 및 영상 트래픽 특성에 대한 이해를 하시고 계셔야 하며, 없을 경우 블로그에 업데이트 되어 있는 "음성 품질" 및 "영상 품질"이라는 글을 먼저 읽을 것을 권고드립니다. 또한, 이글은 시스코의 QoS Design Guide 및 기타 시스코 QoS 자료를 바탕으로 만들어 졌으며, 자세한 사항은 시스코 사이트 (www.cisco.com)에서 확인하시기 바랍니다.
그럼 QoS (Quality of Service)는 왜 필요할까요? 음성이나 영상 전송에 문제가 생기면 항상 QoS 때문이라고 전문가들이 의견을 제시합니다. QoS를 적용하면 정말 품질이 보장되는 것인지도 알게되지 않을 까 싶습니다. QoS는 BcN(Broadband Conbergence Network)에서 매우 핵심이 되는 개념으로 향후 미래 네트워크에서는 필수적인 요소가 될 것입니다.
최초에 QoS의 개념이 등장할 때는 인터넷이 아직 성숙단계가 아니였으며, VoIP 상에 음질도 좋지를 않았습니다. 따라서, 좋은 음질을 보장하기 위한 방안으로 나온 것이 QoS입니다. 현재 인터넷은 Best Effort 망이라고 하여, 최단 경로를 기반으로 라우팅이 되는 구조입니다. 이를 어플리케이션에 따른 차등화된 서비스를 제공할 수 있도록 하는 서비스를 QoS라고 하며, QoS가 전개된 망을 QBone (Qos Backbone)이라고 말합니다.
QoS가 왜 필요한지 살펴보겠습니다.
이러한 이유로 인해 QoS는 필요하게 됩니다. 각각의 현상에 대한 대책을 살펴보겠습니다.
- 대역폭의 부족
이 경우 가장 좋은 해결책은 대역폭을 늘리는 것입니단, 회선 비용 증가라는 단점이 있습니다. 일반적으로 대역폭을 증가시킬 경우 트래픽이 증가하며, 대역폭을 점유하게 됩니다. 즉, 1Mbps의 대역폭이 부족하여 2Mbps로 2배를 늘리더라도 금방 부족한 현상이 발생하게 됩니다. 따라서, 대역폭을 늘리더라도 어느 정도의 QoS 정책이 필요하게 됩니다. 이 때 적용할 수 있는 방법으로는 우선순위 패킷을 선처리하도록 하는 방법과 Layer 2 헤더 압축, IP 및RTP 헤더 압축등이 있습니다
위 그림에서 보면, 256Kbps 구간이 병목 구간으로 나타나게 됩니다. 이부분의 회선을 증가시킨다면 병목구간을 해결할 수 있을 것입니다.
- 양단간 지연
위의 그림에서 보면 몇가지 용어가 나옵니다. 간단하게 정리하면, Propagation delay는 실제 물리매체를 이용해서 전송되는 시간을 나타내며, 이는 줄일수 있는 방법이 없습니다. Processing delay는 패킷이 라우터에 인입해서 출구 인터페이스를 찾는 라우팅을 하며 출력 인터페이스의 Queue에 넣는 일련의 과정에서 소요되는 시간입니다. 마지막으로 Queuing delay는 출구인터페이스에서 순차적으로 패킷을 전송시키는 Queue에서 전송전까지 대기하는 는 데 걸리는 시간입니다. 실제적으로 이들 시간은 매우 짧은 시간입니다.
Propagation dealy의 경우 지구 반대편으로 보내는 데 약 150ms 정도 시간이 소요되며, Processing 과 Queuing delay의 경우 10ms 미만이 대부분입니다. Propagation dealy는 QoS를 통해서도 줄일 수가 없는 값이며, Processing 및 Queuing delay는 조절이 가능합니다.
- 패킷 손실
일반적으로 전송 회선 내에 패킷 손실은 매우 적습니다 .거의 없다고 보시면 됩니다. 그만큼 기술적으로 많이 진보가 되었습니다. 그러나 병목구간에서는 패킷 손실이 발생할 가능성이 있습니다.
위의 그림에서 보듯이 다수의 인터페이스에서 패킷이 들어온다고 가정할 때, 출구 인터페이스의 Queue가 가득차버리면 더이상 패킷을 Queue에 쌓을 수가 없기 때문에 폐기할 수 밖에 없습니다.
이렇게 왜 QoS가 필요한지를 살펴보았습니다. 서비스별로 다양한 QoS 요구 수준이 있습니다. 크게, 음성과 영상이 있겠습니다. 이들 트래픽의 특성에 대해 살펴보겠습니다.
음성 트래픽의 특성
음성은 아래 그림처럼 일정하게 정보가 전송됩니다. G.711의 경우 64Kbps의 대역폭을 점유하며, 일정하게 패킷이 송수신됩니다. 음성은 그 특성상, 손실 및 지연에 매우 민감합니다. 즉, 패킷이 일정한 시간내에 도착하지 않으면, 도착하더라도 재생할 수 있는 시간 내에 들어오지 못하면 폐기됩니다.
일반적인 QoS 요구 수준은 다음과 같으며, 단방향 기준입니다.
지연
150ms 이하
- 지터
30ms 이하
- 손실
1% 이하
- 호당 요구 대역폭
사용 코덱에 따라 차이는 있지만, layer 2 오버헤드를 제외하면 다음과 같습니다.
G.711 64Kbps
G.729 8Kbps
G.723 5.3Kbps 또는 6.3 Kbps
자세한 사항은 "음성 품질"이라는 글을 참조하시기 바랍니다.
영상 트래픽의 특성
영상은 아래 그림처럼 버스티한 성향을 보입니다. 자세한 사항은 "영상 품질"이라는 글을 보시면 이해하실 것입니다. 영상은 일반적으로 다음과 같은 QoS 수준을 요구합니다.
- 지연
150ms 이하
- 지터
30ms 이하
- 손실
1% 이하
- 호당 요구 대역폭
384Kbps에서 최대 20Mbps 까지 다양하며, HD급 영상회의를 하기 위해서는 H.264 코덱사용시 1Mbps 에서 4Mbps까지 대역폭을 요구합니다.
QoS 모델
QoS를 적용하기 위한 트래픽의 특성을 이해하셨다면, QoS Model에 대해 살펴보겠습니다. QoS 모델은 크게 세가지가 있으며, 다음과 같습니다.
- Best-effort service
현재 대부분의 네트워크가 이 QoS 모델에 해당합니다. 기본적으로 서비스에 대한 품질을 보장하지 않고, 최단경로 라우팅을 통해 폐킷이 전송됩니다. 확장성이 뛰어나고 별도의 매커니즘이 필요없는 것이 장점이지만, 어플리케이션별로 차등화된 서비스를 제공할 수 없는 것이 단점입니다.
- Integrated Servies
트래픽별로 차별화된 서비스를 제공하기 위해 양단간에 트래픽이 지나가는 모든 경로에 RSVP (Resource Reservation Protocol)로 자원 예약을 수행하여 차등화된 서비스가 보장되도록 합니다. 가장 완벽한 QoS를 보장할 수 있는 QoS 모델입니다. 확장성이 뛰어나지 못하고, 플로우별로 자원예약이 라우터의 자원 소모가 많다는 것이 단점입니다.
- Differentiated Services
트래픽을 같은 종류의 서비스를 보장받도록 Class로 구분하고 이들에 대해 서비스를 각 장비에서 수행합니다. 코어망에서는 플로우나 어플리케이션별로 차등 서비스를 제공할 필요없이 단순하게 Class별로만 차등 서비스를 제공하므로 확장성이 뛰어나면서 품질 보장이 가능한 것이 장점입니다.
현재 IS 모델은 구현이 어렵다는 단점으로 인해 전개하기가 어려우며, DS가 가장 일반적인 QoS 전개 모델입니다.
QoS의 동작 개요
QoS를 망에 적용하기 위해서는 기본적인 설계가 필요합니다. 각 단계별로 구분해 보겠습니다.
- Classification
회사내에서 사용하는 어플리케이션을 나열하고, 어플리케이션별 QoS 요구 수준을 정의하고, 이를 통해 우선순위를 구분하는 것이 필요합니다. 이런 단계를 Classification 이라고 합니다. 아래 그림에서 쉽게 확인할 수 있습니다.
- Marking
어플리케이션별 우선 순위가 설정되었다면 패킷별로 마킹이 수행되어야 합니다. 어디에서 마킹을 수행할 지를 결정하고 각 장비에 마킹을 수행하도록 합니다.
- Queuing
마킹된 패킷이 들어오면 출력 Queue에 쌓아서 패킷을 우선순위별로 전송하도록 해야 합니다. 이를 Queuing이라고 합니다.
위의 이러한 일련의 과정을 설계하는 것을 QoS 디자인이라고 합니다.
위의 그림을 보시면, 무작위로 인터페이스로 들어오는 트래픽에 Marking을 수행하거나 또는 마킹된 트래픽별로 분류하여, 논리적인 Queue에 쌓습니다. 출력인터페이스가 결정되면, 출력 Queue에 이동시킨후 우선순위별로 패킷을 전송하는 것이 QoS 동작 매커니즘입니다.
Qos Classification & Marking
우선순위가 결정되면 라우터는 패킷별로 처리하므로 각 패킷에 마킹이 되어야합니다. Layer 2 및 Layer 3 헤더에 마킹을 할 수 있는 필드가 있습니다. 이것에 대해 살펴보겠습니다.
- Layer 2 이더넷 헤더 (802.1p)
아래 그림에서 보듯이 이더넷 헤더에는 별도의 QoS 마킹을 위한 필드가 없습니다. 따라서, 802.1q 트렁킹 또는 VLAN 헤더를 이용하여 마팅을 수행합니다. VLAN헤더에는 3bit의 우선순위를 표현할 수 있는 헤더가 있습니다.
일반적인 우선 순위는 아래와 같이 나타냅니다 .
Layer 2 Marking을 수행하지 않으면 Layer 2 장비인 스위치에서는 QoS에 따른 품질 보장이 되지 않습니다.
- Layer 3 IP 헤더
아래 그림에서 보듯이 IP 헤더는 QoS 마킹을 위한 ToS (Type of Service) 필드가 존재하며, 이를 통해 마킹을 수행합니다.
ToS (Type of Service)는 8bit로 구성되어 있으며, 앞의 3bit를 사용하는 것을 IP Precedence 라고 하며, 상위 6bit를 사용할 경우 DSCP (DiffServ Code Point)라고 합니다. 이를 통해 서비스 품질 요구 수준을 표시합니다.
특히, DSCP 값을 통해 PHB (Per-Hop Behavior)가 결정됩니다. 아래 그림을 보시면 패킷의 마킹값에 따라 어떠한 서비스를 받을 수 있는 지를 나타내고 있습니다.
Default PHB는 FIFO 및 Tail Drop 서비스를 제공하며, EF (Expedited Forwarding)는 적은 손실, 지연, 지터 및 대역폭을 보장하는 서비스이며, AF (Assured Forwarding)은 망의 혼잡 및 폭주 상황에서도 최소한의 전송 속도를 보장하도록 하는 서비스입니다.
QoS Parameter Mapping
Layer 2 및 Layer 3 마킹 값은 상호간에 매핑이 되어 동작되어야합니다. 즉, 라우터에서 스위치로 넘어갈 때 Layer 2 마킹이 되어야 하며, 스위치에서 라우터로 넘어갈 때 Layer 3 마킹이 이루어져야 합니다 . 다음 그림을 참조하시면 일반적인 매핑을 나타냅니다.
일반적으로 가장 최우선 서비스를 받을 수 있는 상위 2 서비스 군사용 목적으로 예약되어 있으며, 음성은 그 다음 서비스를 받도록 규정합니다.
Trust Boundary의 설정
만일 패킷이 마킹이 되어 들어온다면, 그 값을 신뢰할 수 있는 지 없는 지를 결정해야 합니다 .일반적으로 PC에서 오는 트래픽에 대한 마킹 값은 신뢰하지 않으며, IP Phone이나 관리자에 의해 관리되는 장비에서의 마킹값은 신뢰를 합니다. 이를 결정하는 것을 Trust Boundary 설정이라고 합니다.
위의 그림에서 보듯이 PC에서의 값을 인증하지 않는 것은 특정 프로그램을 통해 자신의 QoS 마킹 값을 임의로 설정가능하기 때문이며, Layer 2 스위치의 경우에도 관리자에 의해 관리되지 않을 경우 신뢰할 수 없습니다. 또한, 라우터에서만 QoS를 실행할 경우 굳이 QoS를 장비마다 설정하지 않고 라우터의 인입 인터페이스에서 마킹을 수행할 수 있습니다.
마치며..
이상으로 QoS의 개요 및 QoS Classification과 Marking 기법에 대해 살펴보았습니다. 이를 통해 어플리케이션별 서비스 품질 요구 수준에 맞게 QoS Classification 및 Marking 정책을 세울 수 있을 것으로 판단됩니다. 다음 글에서는 이를 실제 망에서 서비스 수준에 맞게 서비스 하기 위한 Queuing에 대해 자세히 살펴보도록 하겠습니다.
댓글을 달아 주세요
justiceloj 2008/05/23 15:48 댓글주소 수정/삭제 댓글쓰기
좋은 글 감사드립니다~
도움이 많이 되었습니다. ㅠ.ㅠ
justiceloj/ ^^ 자주 찾아 주세요
정말 도움이 되는 글입니다.
진심으로 감사의 말씀을 드립니다.
감사합니다.
도움이 된다니 ^^ 기분이 좋습니다. 블루디어님도 자주 찾아 주시고 의견이나 지식을 같이 공유해 주시면 감사하겠습니다. ^^ 화이팅~!!