본문 바로가기

Golden City of El Dorado


기술 잡지

Windows에서 QoS 지원

이 문서는 Windows Server "Longhorn"의 시험판 버전의 일부를 기준으로 작성되었습니다. 이 문서에 수록된 모든 정보는 변경될 수 있습니다.

QoS(서비스 품질)는 비용 효율적인 방식으로 네트워크 트래픽을 관리함으로써 가정 및 기업에서 사용자 환경을 개선할 수 있는 일련의 기술을 의미합니다. QoS 기술을 사용하여 대역폭을 측정하고 네트워크 상태의 변화를 탐지하며(예: 네트워크 정체 또는 대역폭 가용성)

트래픽의 우선 순위를 정하거나 트래픽을 제한할 수 있습니다. 예를 들어 음성 또는 비디오 응용 프로그램처럼 대기 시간에 민감한 트래픽의 전달에 우선 순위를 두고 대량 데이터 전송과 같은 대기 시간에 민감하지 않은 트래픽으로 인한 영향을 제어하려는 경우 QoS를 사용할 수 있습니다. TCP/IP 트래픽에 우선 순위를 지정하여 전송하려면 호스트 및 네트워크 인프라 장치가 이를 지원해야 합니다. 이 칼럼에서는 Microsoft® Windows® 기반 호스트에 QoS를 사용하는 방법에 대해 설명합니다.

TCP/IP 네트워크에 QoS를 정의할 때 가장 문제가 되는 점은 IP 트래픽의 우선 순위를 지정하고 그에 따라 전송하는 방법을 찾는 것입니다. RFC 791 문서에서는 IP에 우선 순위, 지연, 처리량, 안정성 및 비용적인 특성의 가용성을 규정하기 위한 TOS(Type of Service) 필드를 정의하고 있지만, 근본적으로 IP는 각 패킷을 선착순으로 동일하게 처리하는 최선형(Best-effort) 방식의 데이터그램 기반 패킷 교환 기술입니다.

우선 순위가 지정된 전송 구성

우선 순위가 지정된 전송 서비스를 제공하려면 몇 가지 작업을 수행해야 합니다. 예를 들어 표시된 트래픽을 별도로 처리하고 전송 호스트에서 나가는 트래픽에 표시를 남기도록 네트워크 인프라를 구성하거나, 나가는 트래픽(예: 주소 및 포트 번호)의 특성을 기준으로 별도의 처리 방법을 제공하도록 전송 호스트에서 네트워크 인프라를 동적으로 프로그래밍하게 할 수 있습니다.

TCP/IP 트래픽의 경우 몇 가지 방법을 사용하여 전송 우선 순위를 지정할 수 있습니다. 예를 들어 이더넷의 네트워크 인터페이스 계층에서 IEEE 802. 1p 태그 지정 기능은 이더넷 프레임의 VLAN(Virtual Local Area Network) 헤더에 있는 3비트 우선 순위 필드를 사용해 호스트에서 전송한 프레임에 표시를 하여 전송 우선 순위를 지정합니다. VLAN 헤더는 이더넷 헤더의 Source Address 필드와 Length 필드(IEEE 802.3 프레임용) 또는 EtherType 필드(Ethernet II 프레임용) 사이에 위치합니다.

전송 호스트에 802.1p 태그 지정 기능을 구현하려면 네트워크 어댑터와 장치 드라이버가 802.1p를 지원하고 네트워크 어댑터에서 802.1p 지원이 활성화되어 있어야 합니다. 보통 802.1p 지원은 네트워크 어댑터 드라이버의 속성에서 고급 탭을 선택하면 설정할 수 있으며, 이더넷 스위치에서도 802.1p 지원을 설정해야 합니다.

WMM(Wi-Fi Multimedia)에 대한 Wi-Fi Alliance 인증은 무선 IEEE 802.11용 네트워크 인터페이스 계층에서 우선 순위가 지정된 네트워크 트래픽에 대해 음성, 비디오, 최선형, 배경(앞쪽이 높은 우선 순위)의 네 가지 액세스 범주를 정의합니다. WMM 우선 순위 지정에 대한 호스트 지원을 위해서는 무선 네트워크 어댑터와 드라이버가 모두 WMM을 지원해야 하며 무선 AP(액세스 지점)에서 WMM이 활성화되어 있어야 합니다.

인터넷 계층에서는 차등화 서비스(Differentiated Services)를 사용할 수 있으며 IP 헤더에서 DSCP(Differentiated Services Code Point) 값을 설정할 수 있습니다. RFC 2472에 정의된 바에 따르면, DSCP 값은 IPv4(IP 버전 4) TOS 필드 및 IPv6(IP 버전 6) Traffic Class 필드의 상위 6비트입니다.

오늘날 대부분의 기업 라우터에서는 DSCP 트래픽 차별화를 지원하지만 기본적으로 비활성화되어 있는 경우가 많습니다. DSCP 지원 라우터는 전달 도중 DSCP 값을 읽은 다음 특정 큐에 해당 패킷을 배치합니다. 예를 들어 전달된 패킷을 사용자가 지정한 DSCP 값을 기준으로 높은 순위, 최선형에 배치하거나 최선형 큐보다 낮은 곳에 배치하도록 라우터를 구성할 수 있습니다. 큐 및 DSCP 값을 구성하여 DSCP 표시가 지정된 트래픽의 서비스 수준을 차별화할 수 있습니다. 예를 들어 업무에 중요한 네트워크 트래픽이 낮은 우선 순위에 속하는 대량 데이터 트래픽 때문에 지연되지 않고 우선적으로 전달되도록 할 수 있습니다. WMM 사양은 WMM 액세스 범주가 DSCP 값에 매핑되는 방식을 정의합니다. WMM 지원 무선 AP는 DSCP 값을 읽고 해당 액세스 범주를 기준으로 트래픽을 처리합니다.

또한 인터넷 계층에서 RSVP(Resource Reservation Protocol)를 사용할 수도 있습니다. RSVP는 RFC 2205에서 정의된 신호 프로토콜로, 호스트는 이 프로토콜을 사용하여 네트워크 끝점에 걸쳐 대역폭을 보존할 수 있습니다. 그러나 RSVP는 네트워크에 널리 배포된 프로토콜이 아니며 현재 Windows XP, Windows Server® 2003, Windows Vista™ 또는 현재 베타 버전 상태인 다음 버전의 Windows Server(코드명 "Longhorn")에서 지원되지 않습니다.

우선 순위가 지정된 패킷을 전송하려면 응용 프로그램 또는 운영 체제 구성 요소에서 802.1p 우선 순위나 DCSP 값을 지정할 수 있어야 합니다. 다음 섹션에서는 Windows 구성 요소 또는 Windows 기반 응용 프로그램에서 이더넷 프레임에 대한 802.1p 우선 순위 또는 TCP/IP 트래픽에 대한 DSCP 값을 지정하는 방법에 대해 설명합니다.

Windows XP 및 Windows Server 2003에서의 QoS

Windows XP 및 Windows Server 2003에서는 트래픽에 QoS 매개 변수를 할당할 수 있는 API를 제공합니다. 응용 프로그램 개발자는 Winsock(Windows 소켓) 및 GQoS(Generic QoS) API를 사용하여 응용 프로그램 수준에서 소켓별로 QoS 매개 변수를 적용할 수 있습니다. 네트워크 관리자는 트래픽 관리 도구를 사용하여 TC(Traffic Control) API를 호출하고 호스트 수준에서 QoS 매개 변수를 적용할 수 있습니다.

Winsock 및 IP_TOS 소켓 옵션을 사용하여 소켓의 나가는 패킷에 대해 DSCP 값을 설정할 수 있습니다. 그러나 기본적으로 TCP/IP 스택은 IP_TOS 소켓 옵션을 무시합니다. IP_TOS 소켓 옵션을 사용하려면 먼저 DWORD 레지스트리 값(DisableUserTOSSetting=0)을 다음 레지스트리 키(그림 1 참조) 아래에 만들고 설정해야 합니다.

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters


그림 1 DisableUserTOSetting의 레지스트리 값 설정

이 레지스트리 설정을 적용하려면 컴퓨터를 다시 시작해야 합니다.

GQoS API를 사용하면 IP_TOS 소켓 옵션을 사용하지 않고도 트래픽에 DSCP 값을 지정할 수 있습니다. GQoS는 Winsock2(Windows 소켓 2.0)의 일부입니다. 대부분의 QoS 지원 응용 프로그램은 Windows에서 QoS 기능을 호출하기 위해 GQoS API를 사용합니다. Windows XP SP2(서비스 팩 2)의 GQoS를 사용하면 응용 프로그램에서 DSCP 값을 설정하고 아웃바운드 트래픽을 제한할 수 있습니다. Windows XP SP2를 실행하고 있는 컴퓨터에서 802.1p 우선 순위 기능을 설정하려면 TC API를 사용해야 합니다.

TC API를 사용하면 로컬 호스트의 네트워크 트래픽을 제어하는 트래픽 제어 메커니즘을 이용할 수 있습니다. 또한 DSCP 값, 802.1p 태그 및 스로틀 속도를 직접 제어할 수 있습니다. 네트워크 관리자는 트래픽 관리 프로그램을 통해 QoS를 지원하지 않는 응용 프로그램을 대신하여 TC API를 직접 호출할 수 있습니다. GQoS API보다 수준이 낮은 TC API에는 관리자 권한이 필요합니다.

GQoS API와 달리 TC API는 동일한 전송 호스트의 여러 응용 프로그램에서 보내는 트래픽이 단일 QoS 흐름에 집결될 수 있도록 합니다. 이 과정에서 소스, 대상 IP 주소, 소스 및 대상 포트, 프로토콜(TCP 또는 UDP)에 따라 트래픽을 식별합니다. 예를 들어 특정 IP 주소로 가는 모든 트래픽은 호스트에서 보내는 응용 프로그램이 무엇인지에 관계없이 모든 소스 포트 및 대상 포트에 대한 단일 QoS 흐름에 포함될 수 있습니다. 반면 GQoS API는 응용 프로그램에서 소켓을 통해 전송되는 데이터에 대한 고유한 QoS 처리를 정의할 수 있도록 합니다.

Windows XP 및 Windows Server 2003 기반 컴퓨터에서 QoS 기능을 지원하려면 QoS 패킷 스케줄러 구성 요소가 설치되어 네트워크 연결 폴더의 네트워크 연결 속성에서 활성화되어 있어야 합니다(그림 2참조). Windows XP를 실행하는 컴퓨터의 경우 QoS 패킷 스케줄러 구성 요소(Psched.sys)가 기본적으로 설치 및 설정되어 있으며, Windows Server 2003에도 패킷 스케줄러 구성 요소를 설치할 수 있습니다.


그림 2 QoS 패킷 스케줄러 구성

Windows Vista 및 Windows Server "Longhorn"에서의 QoS

Windows Vista 및 Windows Server "Longhorn"에서는 보다 간편하고 향상된 방법으로 QoS 지원 기능을 사용할 수 있게 되었습니다. 이제 IT 직원은 정책에 기반한 QoS를 사용할 수 있으므로 API를 사용하거나 기존 응용 프로그램을 수정하지 않고도 DSCP 값을 설정하고 응용 프로그램 전송 속도를 제어할 수 있습니다. 개발자에게는 GQoS 및 TC API가 지원됩니다(Windows 다음 버전에 대한 지원 계획은 없음). 또한 IP_TOS Winsock 옵션이 제거되었습니다. 업그레이드 버전 및 향후 버전의 응용 프로그램에서 GQoS 및 TC API를 대체하고 QoS 지원을 간소화하기 위해 Windows Vista 및 Windows Server "Longhorn"에서는 qWAVE(Quality Windows Audio-Video Experience)라는 이름으로 알려져 있는 새로운 QoS2 API를 지원합니다.

Windows Server "Longhorn" 및 Windows Vista에서 정책 기반의 QoS를 사용하면 보다 나은 최종 사용자 환경을 제공하고 대역폭 확보에 드는 비용을 제어할 수 있으며 대역폭 제공 업체 또는 사업 부서와 세부적인 서비스 수준에 대해 협상할 수 있습니다. 전체 응용 프로그램 및 전체 Active Directory® 인프라를 대상으로 Windows Vista 또는 Windows Server "Longhorn"을 실행하고 있는 컴퓨터의 네트워크 대역폭을 중앙 집중적으로 관리할 수 있습니다. 응용 프로그램 계층 아래에서 트래픽 관리가 이루어지므로 정책 기반의 QoS 트래픽 관리를 위해 기존 응용 프로그램을 수정하지 않아도 됩니다.

Windows Server "Longhorn" 및 Windows Vista에서 정책 기반 QoS 설정을 사용하면 다음 조건을 기준으로, 나가는 트래픽의 전송 속도를 우선 순위에 따라 지정하거나 관리할 수 있습니다.

§ 보내는 응용 프로그램(실행 경로 및 이름)

§ 소스 또는 대상 IPv4 또는 IPv6 주소 또는 주소 접두사

§ 프로토콜(TCP, UDP 또는 모두 해당)

§ 소스 및 대상 포트 또는 포트 범위(TCP 또는 UDP)

QoS 정책은 사용자 로그인 세션에 적용되거나 Active Directory 컨테이너(예: 도메인, 사이트, OU(조직 구성 단위))와 연결된 GPO(그룹 정책 개체)의 일부인 컴퓨터에 적용되며, 보안 그룹에도 적용될 수 있습니다. QoS 정책은 그룹 정책의 일부로 기존 Active Directory 관리 인프라에 구축됩니다.

정책 기반의 QoS를 사용하면 트래픽의 우선 순위를 정의할 수 있습니다. QoS 정책을 구성하면 아웃바운드 IPv4 또는 IPv6 트래픽에 DSCP 값을 표시할 수 있습니다. 또한 아웃바운드 트래픽의 대역폭 사용도 관리할 수 있습니다. QoS 정책에 아웃바운드 트래픽에 대한 스로틀 속도를 구성할 수 있습니다. 이러한 제한을 통해 QoS 구성 요소는 나가는 네트워크 트래픽의 총량을 정해진 수준으로 제한합니다. 고급 설정의 구성을 통해 TCP 수신 창 크기를 최대로 설정하여 TCP 트래픽에 대한 인바운드 처리량을 지정하면 컴퓨터에서 인바운드 트래픽의 대역폭 사용을 관리할 수 있습니다.

Windows Vista 및 Windows Server "Longhorn"에는 QoS 패킷 스케줄러가 기본적으로 설치 및 설정되어 있습니다. Pacer.sys 구성 요소는 새로운 NDIS(Network Device Interface Specification) 6.0 경량 필터 드라이버로, 정책 기반 QoS와 QoS 사용 응용 프로그램의 트래픽에 대한 패킷 스케줄링을 제어합니다. Pacer.sys는 Windows XP 및 Windows Server 2003의 Psched.sys를 대체하는 구성 요소입니다.

인트라넷에서 정책 기반 QoS를 배포하려면 사용자 또는 컴퓨터 기반의 QoS 정책을 구성하고 이를 적절한 Active Directory 컨테이너에 적용해야 합니다. Windows Vista 또는 Windows Server "Longhorn" 기반 컴퓨터에서는 사용자 구성 또는 컴퓨터 구성 그룹 정책 업데이트 시 각 운영 체제에 알맞은 정책 기반의 QoS 설정을 다운로드하고 적용합니다.

네트워크에서 데이터 및 AV(오디오/비디오) 응용 프로그램을 공유하는 비율이 점차 증가하고 있으므로 데이터 트래픽보다 시간의 제약을 받는 AV 트래픽을 우선적으로 처리할 수 있는 QoS 솔루션이 필요합니다. 또한 무선 네트워크의 사용이 증가함에 따라 대기 시간 및 대역폭에 민감한 응용 프로그램과 관련한 문제가 발생하고 있습니다.

Windows Vista의 qWAVE 기능은 AV 응용 프로그램 및 무선 네트워크로 인해 발생하는 네트워크 문제를 해결할 수 있는 QoS 관련 소프트웨어 모듈 집합을 제공합니다. qWAVE는 QoS 하위 시스템에 통합되며 여러 가지 인터넷 및 네트워크 인터페이스 계층 패킷 우선 순위 기술이 사용됩니다. 또한 qWAVE는 여러 가지 다양한 AV 스트림(QoS가 필요한 실시간 흐름)과 데이터 스트림(전자 메일 또는 파일 전송과 같은 최선형 흐름)을 동시에 지원합니다.

qWAVE 기술은 LAN 대역폭을 감지하고 모니터링하며 네트워크의 QoS 기능을 탐지할 뿐 아니라 분산된 허용 제어를 통해 네트워크 대역폭이 공정하고 일관성 있게 사용되도록 합니다. 이러한 기술을 통해 고급 AV 스트리밍 기술이 구현되므로 응용 프로그램에서는 변화하는 네트워크의 상태를 동적으로 반영할 수 있습니다. 이러한 기능은 QoS2 API를 통해 개발자에게만 제공됩니다.

Windows Vista 및 Windows Server "Longhorn"의 QoS2 API는 GQoS API 및 IP_TOS Winsock 옵션을 대체하는 기능이며 기존의 GQoS API보다 사용하기가 훨씬 편리합니다.

자세한 정보

QoS에 대한 자세한 내용을 보려면 TechNet에서 풍부하고 다양한 자료를 참조하십시오. 다음 Microsoft Quality of Service 웹 사이트(영문)를 참조하시기 바랍니다. 또한 Windows Core Networking 블로그(영문)에서 QoS 관련 섹션도 확인하시기 바랍니다.