engineering/Network Eng.2006. 8. 10. 13:37

[자이온의 실전! QoS 강좌 1] 9가지 QoS 측정 요소의 이해

자이온의 실전! QoS 강좌 1

연재순서
1. 9가지 QoS 측정 요소 (2004년 2월호)
2. DiffServ 모델(2004년 3월호)
3. 트래픽 세이핑과 폴리싱(2004년 4월호)
4. 큐잉 매커니즘(2004년 5월호)
5. 혼잡 회피(Congestion Avoidance)(2004년 6월호)
6. LE(Link Efficiency) 매커니즘(2004년 7월호)
7. QoS 적용하기(2004년 8월호)
8. QoS 향후 전망(2004년 9월호)


9가지 QoS 측정 요소의 이해 ①

과거 네트워크 속도 저하와 같은 장애 문제는 대부분 대역폭과 장비의 증설로 해결했다. 하지만 인터넷 환경이 급변하면서 DOS 공격, 바이러스 등의 위협이 심해지고 VoIP, 화상전화 등 새로운 양방향 애플리케이션이 등장함에 따라 대역폭과 장비 증설 외에 QoS의 적용이 반드시 요구되고 있다. 총 8회에 걸쳐 진행될 이번 연재에서는 필자가 실무에서 직접 경험했던 QoS 사례를 중심으로 중요한 기술들을 소개한다. 그 첫회로 QoS의 9가지 측정 요소에 대해 자세히 알아보자.

김화식 | zion@onsetel.co.kr | 온세통신 시설운영팀 CCIE
s12840@freechal.com | NRC QVO 팀 마스터


네트워크 분야에 종사하고 있는 사람이라면 누구나 조금씩은 QoS(Quality of Service)라는 단어에 대해 두려움을 갖고 있을 것이다. '어떻게 해야 서비스의 질(Quality)을 향상시킬 수 있을까'라는 의문에서 시작된 QoS는 그 의미 자체가 막연하기 때문이다.
일반적으로 네트워크 관리자들이 QoS를 처음 접하게 되는 것은 CCNP 과정 중 하나인 BCRAN의 WAN 파트내 큐잉(Queuing) 부분에서일 것이다. 필자 역시 그랬다.
필자도 QoS는 큐잉만 잘 적용하면 끝이라고 생각했던 때가 있었다. 그러나 현업에서 컨설팅, 유지보수, 네트워크 운영 등의 업무에 직접 부딪히게 되면서 실제로 큐잉은 QoS의 전부가 아니고 한 부분에 불과하다는 것을 알게 됐다.

QoS의 중요성 증가
인터넷은 1969년 미국 국방성의 군사용으로 제작한 알파넷(ARPANET)으로 시작됐지만, QoS라는 개념이 도입된 시기는 그 후 20여 년이 지난 1990년대 초이다. QoS는 인터넷 표준화 기구인 IETF에서 인터서브(IntServ : Integrated Services) 모델을 제안하면서 시작됐다.
인터서브는 RSVP(Resource reSerVation Protocol)라는 자원 예약 프로토콜을 이용해 미리 필요한 시간에 필요한 만큼의 대역폭을 할당받는 방식으로, 보장된(guaranteed) 서비스와 컨트롤된 로드(controlled load) 서비스를 제공할 수 있다. 그러나 인터서브는 확장시 RSVP 시그널을 관리하기가 어렵기 때문에 현재는 일부 사설망에서 사용되거나, 디프서브(Differentiated Services) 모델과 혼용, 변형된 방법으로 사용되고 있다.
디프서브는 최근 들어 QoS의 근간을 이루고 있는 모델이다. CAR(Committed Access Rate), PBR(Policy-Based Routing), 트래픽 세이핑(traffic shaping), RED(Random Early Detection), NBAR(Network Based Application Recognition), 큐잉 등도 모두 디프서브를 구성하거나 일부분을 이용해 만든 객체이다. 디프서브와 구현 기술에 대해서는 다음 시간에 보다 자세히 알아보도록 하고, 이번 시간에는 QoS 측정 요소에 대해서만 집중적으로 살펴보도록 하자.
QoS 측정 요소들은 여러 가지 QoS 패러미터로 표시할 수 있는데, 트래픽의 QoS 특성을 나타내는데 사용되는 트래픽 패러미터를 QoS 패러미터라고 한다. 대표적인 QoS 패러미터로는 대역폭, 지연(delay), 지터(jitter), 패킷손실(packet loss)을 들 수 있다.

QoS 측정 요소 1 : 가용 대역폭
가용 대역폭(available bandwidth)은 bps(bit per second) 단위로 표시되며, 보통은 물리적인 링크 속도(link speed)와 같지만, 전송되는 구간의 대역폭이 각각 다른 경우에는 가장 낮은 구간의 대역폭에 의해 결정된다. (그림 1)을 보면 보다 쉽게 가용 대역폭을 이해할 수 있을 것이다. 서버와 클라이언트로 구성된 (그림 1)은 서로 다른 대역폭을 가진 4개의 네트워크로 구성돼 있다.



(그림 1)에서 클라이언트에서 서버까지 연결된 A, B, C, D 구간의 대역폭은 각각 10Mbps, 256Kbps, 512Kbps, 100Mbps이지만, 최대 가용 대역폭은 각 구간 중 가장 낮은 구간인 B(256Kbps)에 의해 결정된다. 왜냐하면 클라이언트에서 서버까지 10Mbps 속도로 데이터를 전송할 경우, A구간은 10Mbps 속도로 전송이 되지만, B구간을 지날 때 정체가 발생해 256Kbps의 속도밖에 전송이 되지 않기 때문이다. C구간과 D구간은 속도가 256Kbps 이상이기 때문에 256Kbps의 속도를 그대로 전송할 수 있다. 결론적으로 (그림 1)의 최대 가용 대역폭은 256Kbps이다.
물론 최대 가용 대역폭을 증가시키는 방법도 있다. 정확하게 표현하면 사실은 대역폭을 증가시키는 것은 아니다. 다만 자원을 효율적으로 분류하거나 할당해 대역폭이 증가된 것과 같은 효과를 내는 것이다. 여하튼 그런 방법으로는 ▲헤더 압축(header compress), 페이로드 압축(payload compress) 등을 사용해 더 많은 패킷을 전송하는 방법과 ▲큐잉을 사용해 중요한 패킷을 먼저 전송해 대역폭이 증가된 것 같은 효과를 낼 수 있는 방법이 있다. 두 가지 방법 모두 CPU의 부하와 지연을 증가시키는 등 또 다른 문제를 유발하기 때문에 신중하게 사용해야 한다.

QoS의 목적 하나 '지연을 줄여라'
지연(delay)은 보통 시간(ms) 단위로 표시하며, 패킷이 발신지에서 보내진 시간으로부터 수신지에 도착할 때까지 걸리는 시간을 뜻한다. 기본적으로 지연은 송수신 간의 거리와 중간 경로에 있는 라우터의 수에 비례해 증가된다. 네트워크 상에서 전송되는 모든 패킷들은 필연적으로 지연이 생기기 때문에 QoS의 목적은 지연을 없애는 것이 아니고 줄이는 것에 있다.
QoS에서 사용하는 지연은 종단간 지연(end-to-end delay)이며, 각 구간의 지연 시간을 합해서 계산한다. 지연은 크게 장비 구간에서의 지연과 전송구간에서의 지연으로 나눌 수 있다. 이를 다시 세분화하면 연속 지연(serialization delay), 전달 지연(propagation delay), 큐잉 지연(queuing delay), 포워딩 지연(forwarding delay), 세이핑 지연(shaping delay), 그리고 네트워크 지연으로 나눌 수 있다.

QoS 측정 요소 2 : 연속 지연
연속 지연(serialization delay)은 패킷을 링크상에서 시리얼화 하는데 걸리는 시간이다. 쉽게 말해 패킷을 라우터에서 전송로로 보내는데 걸리는 시간으로, 기차가 기차역을 빠져나가는데 걸리는 시간 정도로 생각하면 된다. 6량의 기차보다 12량의 기차가 역을 빠져나가는데 2배의 시간이 더 소요되듯이 연속 지연은 패킷의 길이에 비례하며, 링크의 대역폭에 반비례한다.
(그림 2)에서 사용자의 PC에서 서버 1로 125바이트의 패킷을 보낸다고 가정할 때, 실제 발생하는 연속 지연 값을 계산해 보자(단, 2계층 데이터 링크 헤더는 계산에서 제외한다). 처음(1구간)으로 125바이트로 구성된 패킷을 고속 이더넷(100Mbps) 링크에서 시리얼화 하는 데는 1000비트 / 1,000,000,000bps = 0.1ms가 걸린다(1000비트는 125바이트를 비트화한 것임).




스위치에서 R1(2구간)으로 전송할 때에도 0.1ms가 걸린다. 다음 3구간(R1에서 R2 사이)의 대역폭은 56Kbps이므로, 시리얼화 하는데 걸리는 시간은 1000비트 / 56,000bps = 17.85ms이다.
같은 125바이트라도 대역폭에 따라서 연속 지연이 0.1ms와 17.85ms로 크게 차이가 나는 것을 알 수 있다. 실제로 연속 지연은 높은 대역폭 구간에서는 그다지 문제가 없지만 낮은 대역폭 구간에서는 서비스의 질에 큰 영향을 준다.
(그림 2)의 다른 구간에 대해서도 계산해 보면 같은 125바이트의 패킷도 대역폭에 따라 56Kbps는 17.85ms, 128Kbps는 7.8ms, 512Kbps는 2ms, 1544Kbps는 0.65ms, 100Mbps는 0.01ms 등으로 각기 다른 연속 지연이 발생하는 것을 알 수 있다.

QoS 측정 요소 3 : 전달 지연
전달 지연(Propagation Delay)은 특정 매체로 이뤄진 링크를 통해 한 비트를 전달하는데 걸리는 시간이다. (그림 3)에서 보면 패킷이 R1을 출발해 R2까지 가는데 걸리는 시간으로, 기차가 기차역을 빠져 나가서 다음 역까지 도달하는데 걸리는 시간에 비유할 수 있다.



전달 지연의 특징은 동일한 물리적인 링크상에서 대역폭과 패킷의 길이와는 상관없이 동일한 지연 시간을 갖는다는 점이다. 일반적으로 네트워크 상에서의 전달 지연은 매우 적게 발생하기 때문에 큰 문제가 되지 않는다. 다만 물리적인 링크의 길이에 비례해 증가하기 때문에 긴 구간을 설계할 때는 고려하는 편이 안전하다.
진공 상태에서 빛의 전송 속도는 3.0×108m/s이지만 일반적으로 구리(copper)나 광(optical) 케이블 상에서의 전송 속도는 진공 상태의 약 70% 속도인 2.1×108m/s 이다.
(그림 3)에서 3구간(R1에서 R2사이)의 거리가 1000km이므로 전달 지연을 계산해 보면 1,000,000/(2.1×108) = 4.8ms이다. 각 구간별로 전달 지연과 연속 지연을 비교해 보면 패킷의 크기에 의해 연속 지연은 변하지만, 전달 지연은 동일한 것을 알 수 있다.

QoS 측정 요소 4 : 큐잉 지연
큐잉 지연(queuing delay)은 패킷이 전송되기 전에 라우터의 큐(하드웨어와 소프트웨어 큐 모두 포함)에 패킷이 대기하는 시간이다. 큐는 위치에 따라 들어오는 큐(input Queue)와 나가는 큐(output Queue)로 구분되지만, 들어오는 큐에서 걸리는 지연은 극히 적기 때문에 나가는 큐만 생각한다. 대부분의 사람들이 QoS를 생각할 때 제일 먼저 큐잉 지연을 떠올리는 것은 여러 가지 지연 중에 큐잉 지연이 차지하는 부분이 가장 크기 때문이다.
(그림 4)에서 사용자 PC에서 서버1로 1500바이트 패킷을 4개 보낸다고 가정할 때, 첫번째 패킷이 라우터의 큐를 떠나는데 걸리는 시간은 1500×8 / 56,000=214ms이다. 이는 1500바이트를 56Kbps의 대역폭 구간에 시리얼화 하는데 걸리는 시간이다. 즉, 두번째 패킷은 라우터의 큐에서 214ms를 대기하고 있다가, 전송되기 시작한다는 의미다. 세번째 패킷은 428ms를, 마지막 네번째 패킷은 642ms를 큐에서 대기하고 있는 것이다.



만약 100개의 1500바이트 패킷을 보낸다고 가정하면, 마지막 패킷의 큐잉 지연은 99×214ms를 하면 약 21초가 된다. 이 패킷이 TCP 패킷이라면 십중팔구는 재전송을 할 것이다. 실제로 대부분의 TCP 재전송은 혼잡(Congestion)이나 큐잉 지연 때문에 발생한다. 적정한 길이의 큐는 패킷 손실을 예방하지만, 너무 긴 큐는 장시간 지연의 원인이 된다.
큐잉 지연의 조절은 QoS 중에서 가장 중요한 핵심 중 하나로 이에 대해서는 5월 경에 다시 한번 자세하게 다룰 것이다

QoS 측정 요소 5 : 포워딩 지연
포워딩 지연은 패킷이 라우터나 스위치로 들어오는 인터페이스로 들어와서, 라우팅과 스위칭 프로세서에 의해 경로가 결정된 후, 나가는 인터페이스의 나가는 큐에 놓이기까지 걸리는 시간이다. 따라서 라우팅과 스위칭 프로세스에 따라 차이가 있으며, 일반적으로는 라우터보다는 스위치의 포워딩 지연이 적게 발생한다.
스위치는 축적전송(store-and-forward)보다는 컷쓰루(cut-through) 방식이 보다 적은 포워딩 지연을 발생시키며, 라우터의 경우에는 포워딩 지연을 줄이기 위해 CEF(Cisco Express Forwarding) 방법을 사용하기도 한다.

QoS 측정 요소 6 : 세이핑 지연
세이핑 지연은 트래픽 세이핑 프로세스에 의해 지연되는 시간을 나타내며, 트래픽 세이핑을 사용하면 지연은 길어지지만, 계약된 대역폭을 초과하는 패킷들이 버려지는(discard) 것을 예방한다. 이는 두 가지 형태로 나타날 수 있는데 ▲때로는 패킷들이 드롭(Drop)되지만 빨리 전송되는 경우 ▲패킷들이 드롭되지는 않지만 느리게 전송되는 경우가 그것이다. 이 중에서 후자의 경우가 더 좋은 상황을 연출한다.

QoS 측정 요소 7 : 네트워크 지연
네트워크 지연은 보통 네트워크 구성도를 그릴 때 구름(Cloud) 구간으로 표현하는 프레임 릴레이나 ATM 네트워크 구간 등의 지연을 나타낸다. 구름 구간은 ISP(Internet Service Provider)에서 제공하는 구간으로, 일반적으로 고객들이 어떻게 구성돼 있는지 잘 알지 못하기 때문에 정확한 네트워크 지연 값을 구하기는 힘들다.
(그림 5)에서 구름 구간의 네트워크 지연값을 구하기 위해서는 다음과 같은 3가지의 지연을 계산해서 더하는 방법을 사용한다.



·R2에서 구름내 장비인 스위치로 들어가는(Ingress) 부분의 연속 지연
·구름내 구간의 거리에 대한 전달 지연
·구름내 장비인 스위치에서 R3로 나가는(egress) 부분의 연속 지연

예를 들어 R2에서 R3로 1500바이트의 패킷을 보낸다고 가정하고, 위의 3부분을 계산해서 네트워크 지연을 구하면 다음과 같다.

연속 지연(ingrass R2) = 1500바이트×8 / 128,000bps = 94ms
전달 지연 = 1000km / 2.1×108=4.8ms
연속 지연(egress R3) = 1500바이트×8 / 1,544,000bps = 7.8ms

이들 세부분의 값을 합치면 네트워크 지연은 106.7ms이 된다. 네트워크 지연은 ISP에게 의존할 수밖에 없지만 최근에는 ISP 업체와 계약을 체결할 때 SLA(Service-Level Agreement)를 설정해 지연 한계에 대한 보장을 받는 방법을 사용하기도 한다.

QoS 측정 요소 8 : 지터
지터(Jitter)는 어떤 신호가 네트워크를 통해 전달되면서 원래의 신호로부터 왜곡되는 정도를 나타내는데 사용되는 값으로, 지연의 편차(variation)라고 할 수 있다. 네트워크 전송에서 패킷에 대한 어느 정도의 지연은 필연적으로 발생한다. 동일한 시간의 지연은 네트워크 서비스에서 큰 문제가 되지 않는다. VoIP에서도 일정한 범위내의 동일한 지연은 큰 문제를 일으키지 않는다. 하지만 지연 값이 각각 다르다면 VoIP 같은 양방향 애플리케이션 서비스를 제공하는데 큰 문제가 된다.
(그림 6)에서 201에서 301로 보낸 음성 데이터가 처음에는 20ms의 동일한(20, 20, 20) 지연을 갖고 전송이 됐으나, 구름 구간을 지나면서 지연의 변화(20, 30, 20)가 생겨, 결국 음성신호가 왜곡되고, 음질이 떨어지게 된다.



QoS 측정 요소 9 : 패킷 손실
패킷 손실(packet loss)은 패킷이 전달되는 과정에서 발생하는 패킷의 손실 정도를 나타낸다. 물론 하드웨어적인 불량으로도 패킷 손실은 발생할 수 있지만 일단 하드웨어적인 불량은 없다고 가정을 하자. 패킷 손실은 보통 혼잡(Congestion)에 의한 버퍼 오버플로우시 발생하거나, 흐름 제어 알고리즘(RED : Random Early Detection)에 의해 임의적으로 패킷을 버리는 현상에 의해 발생한다. 혼잡은 적정 수준 이상으로 큐에 패킷이 쌓여 있는 상태를 말하며, 혼잡의 원인에는 다음과 같은 것들을 들 수 있다.

·서비스할 수 있는 것보다 트래픽이 더 많이 도착한 경우
- TCP처럼 흐름 제어를 하는 트래픽 소스가 전송 속도를 증가 시키는 경우
- 라우팅 알고리즘 때문에 많은 트래픽이 한쪽으로 몰리는 경우
- 라우팅 패스에 오류가 발생해서 리라우팅 되는 경우
- 악의적으로 트래픽을 증가시키는 경우(바이러스, 해킹)

·서비스할 수 있는 수준내에서 도착하지만, 제대로 서비스를 못 해주는 경우
- 서비스 정책이 잘못됐거나 효율적이지 못할 때 발생

이번호에는 QoS를 측정하는데 필수 요소인 대역폭, 지연, 지터, 그리고 패킷 손실에 대해 알아봤다. 다음 시간에는 본격적인 QoS 이야기로 들어가서 그 첫 번째 관문인 디프서브 모델에 대해 자세히 알아보도록 한다.


출처 - http://www.ionthenet.co.kr

Posted by theYoungman