오늘은 QoS(Quality of Service) 기술 요소 중에 하나인 Policing과 Shaping의 차이점에 대해서 알아 보도록 하겠습니다.
Policing과 Shaping은 모두 대역폭(Bandwidth)을 제한(limitation)하는 기능입니다.
왜 대역폭을 제한하는 일이 생길까요?
대표적인 예가 기업용 서비스(Enterprise Service)일 것입니다. 현재 저희 회사도 LG U+를 통해 50Mbps 대역폭의 기업용 서비스를 받고 있는데요. 이 경우 LG U+는 저희 회사에 L2 switch를 하나 제공하고, 그 L2 switch에 대역폭 제한 기능을 설정하여 저희 회사에서 상하향 트래픽이 각각 50Mbps를 넘지 못하도록 제한하고 있습니다. 비록 L2 switch의 uplink가 1Gbps 링크이긴 하지만 그 링크 대역폭을 모두 사용하지 못하고 50Mbps만 사용하게 되는 거지요. 그리고 저희 회사는 50Mbps 상품에 대한 금액만 월정액으로 LG U+에 지불하게 됩니다. (LG U+의 L2 switch는 Policing으로 대역폭을 제한합니다.)
그럼 이제 대역폭을 제안하는 2가지 방식인 Policing과 Shaping에 대해서 알아 보겠습니다. 아래 그림을 봐 주시기 바랍니다.
그림 상단이 Policing 방식입니다. 이는 RFC 2697/2698에서 정의하고 있는 알고리즘(Token Bucket)을 사용하고 있는데요. 쉽게 얘기해서 정해진 대역폭 이상 트래픽이 발생하면 drop 시키는 방식입니다.
반면 그림 하단의 Shaping은 좀 다른 방식을 사용합니다. 이는 정해진 대역폭 이상 트래픽이 발생하였다고 무조건 drop 시키지 않고 버퍼(메모리)에 패킷을 잠시 저장하여 대역폭 이하로 트래픽이 발생하는 시점에 버퍼링하였던 패킷을 내보내는 방식입니다.
즉, Policing은 별도의 패킷 버퍼가 필요치 않고 대역폭 이상의 트래픽을 무조건 drop하는 반면 Shaping은 패킷 버퍼를 이용하여 대역폭 이상의 트래픽을 버퍼링 하였다가 drop 시키지 않고 어떻게든 처리하는 방식이죠. 물론 Shaping도 패킷 버퍼가 full이 되면 패킷들을 drop 시킬 수 밖에 없습니다.
이와 같이 대역폭 제한 방식의 차이로 인하여 아래 그림과 같이 서로 다른 송신 패킷 패턴을 보이게 됩니다.
500Mbps로 Shaping이 적용된 라우터에 1Gbps로 패킷이 유입되면 마치 500Mbps 링크속도 포트를 가진것 처럼 500Mbps 속도로 패킷이 하나 하나씩 나가게 되는 반면, 500Mbps로 Policing이 적용된 라우터의 경우, 전체 average throughput이 500Mbps인 것이지 어느 순간에는 패킷들이 1Gbps로 송출되다가 한동안 쉬다가 하게 됩니다.
그럼 이 2가지 방식 중에 어느게 좋을까요?
TCP 프로토콜을 사용하는 FTP를 이용하여 테스트 해 본 결과, Shaping이 Policing에 비해 그 기능이 월등함이 확인 되었습니다. 위 그림(맨 위 그림)과 같이 128Kbps로 Policing을 하는 경우 FTP 성능이 84Kbps 밖에 나오지 않는 반면 Shaping을 하면 121Kbps 성능이 나옵니다. UDP 프로토콜을 사용하는 응용의 경우 Policing이나 Shaping 모두 별반 차이가 나지 않을 수 있지만 TCP를 사용하는 응용의 경우 TCP 프로토콜의 특성(flow control)에 기인하여 패킷을 바로 drop 시키지 않는 Shaping이 "대역폭 제한"에 더 우수한 결과를 가져 옵니다.
http://www.cisco.com/en/US/tech/tk543/tk545/technologies_tech_note09186a00800a3a25.shtml
딱히 단점은 없어보이는데요. 물론 LGU+ 회사 내부 정책이겠지만 구태여 Policing 정책을 사용하는 이유가 있을까요?
Shaping과 Policing의 장단점을 구분하자면 아래와 같습니다.
■ Shaping
[장점] 약속한 대역폭 이상의 트래픽이 유입되어도 buffering을 통해 패킷을 폐기하지 않으므로 TCP 응용에 유리
[단점] 하지만 실시간 응용(예. VoIP)의 경우 delay에 민감하므로 이 경우 패킷을 buffering하는 것은 효과가 없음. 즉, 실시간 응용의 경우 폐킷이 늦게 도착하는 것은 Packet Drop과 동일한 결과임
또한 장비 구현(칩 구현) 측면에서 Shaping을 구현하기 위해서는 Queue 별로 buffering을 위한 메모리 필요 및 일정 rate로 패킷을 전송하는 기술이 요구되어 Policing 대비 구현 난이도가 큼. 이와 같은 이유로 저가의 L2/L3 switch에서는 보통 Shaping을 지원하지 않음
■ Policing
[장점] Shaping 대비 구현이 용이하고 실시간 응용에 적합함
[단점] TCP 응용에 적합하지 않음
쉬운 설명 감사합니다.
실시간 응용의 경우 shaping이든 policing이든 packet drop이 동일하다면,
결국 shaping 대비 policing의 장점은 장비 가격이 저렴해지는 것 말고는 없다고 봐야겠네요?