RDP(원격 데스크톱 프로토콜) 이해

이 문서는 터미널 서버와 터미널 서버 클라이언트 간의 통신에 사용되는 RDP(원격 데스크톱 프로토콜)에 대해 설명합니다. RDP는 TCP 내에서 캡슐화되고 암호화됩니다.

적용 대상: Windows Server 2012 R2
원본 KB 번호: 186607

요약

RDP는 T-120 프로토콜 표준 제품군을 기반으로 한 확장입니다. 다중 채널 지원 프로토콜을 사용하면 다음 정보를 전달하기 위한 별도의 가상 채널을 사용할 수 있습니다.

  • 프레젠테이션 데이터
  • 직렬 디바이스 통신
  • 라이선스 정보
  • 키보드, 마우스 활동과 같은 고도로 암호화된 데이터

RDP는 핵심 T.Share 프로토콜의 확장입니다. 다중 지점(다중 파티 세션)을 지원하는 데 필요한 아키텍처 기능과 같은 몇 가지 다른 기능은 RDP의 일부로 유지됩니다. 다중 지점 데이터 전달을 사용하면 가상 화이트보드와 같은 애플리케이션의 데이터를 여러 당사자에게 실시간으로 전달할 수 있습니다. 각 세션에 동일한 데이터를 개별적으로 보낼 필요는 없습니다.

Windows 터미널 서버의 첫 번째 릴리스에서는 안정적이고 빠른 지점 간(단일 세션) 통신을 제공하는 데 집중하고 있습니다. 터미널 서버 4.0의 초기 릴리스에는 하나의 데이터 채널만 사용됩니다. 그러나 RDP의 유연성은 향후 제품의 기능을 위한 충분한 공간을 제공합니다.

Microsoft가 Windows NT 터미널 서버 내에서 연결을 위해 RDP를 구현하기로 결정한 이유 중 하나는 더 많은 기능을 빌드하기 위한 확장 가능한 기반을 제공하기 때문입니다. RDP는 데이터 전송을 위해 64,000개의 별도 채널을 제공합니다. 그러나 현재 전송 활동은 단일 채널(키보드, 마우스 및 프레젠테이션 데이터용)만 사용합니다.

RDP는 ISDN, POTS와 같은 다양한 유형의 네트워크 토폴로지 지원을 위해 설계되었습니다. RDP는 IPX, NetBIOS, TCP/IP와 같은 많은 LAN 프로토콜을 지원하도록 설계되었습니다. RDP의 현재 버전은 TCP/IP를 통해서만 실행됩니다. 고객 피드백을 통해 향후 버전에서 다른 프로토콜 지원이 추가될 수 있습니다.

RDP 스택을 통해 데이터를 송수신하는 작업은 기본적으로 현재 일반적인 LAN 네트워킹에 대한 7계층 OSI 모델 표준과 동일합니다. 전송할 애플리케이션 또는 서비스의 데이터는 프로토콜 스택을 통해 전달됩니다. 섹션화되고, 채널(MCS를 통해)로 전달되고, 암호화되고, 래핑되고, 프레임화되고, 네트워크 프로토콜에 패키지되고, 마지막으로 주소가 지정되어 클라이언트로 전송됩니다. 반환된 데이터는 역방향의 동일한 방식으로 작동합니다. 패킷의 해당 주소가 제거된 다음 래핑 해제, 암호 해독 등입니다. 마지막으로 사용할 데이터가 애플리케이션에 표시됩니다. 프로토콜 스택 수정의 주요 부분은 데이터가 다음과 같은 네 번째 계층과 일곱 번째 계층 간에 발생합니다.

  • 암호화됨
  • 래핑됨
  • 프레임됨
  • 채널로 전송됨
  • 우선 순위

애플리케이션 개발자의 핵심 사항 중 하나는 RDP를 사용할 때 Microsoft가 프로토콜 스택 처리의 복잡성을 간편화한 것입니다. 이를 통해 깔끔하고 잘 디자인되었으며 잘 동작하는 32비트 애플리케이션을 작성할 수 있습니다. 그런 다음 터미널 서버 및 해당 클라이언트 연결에서 구현된 RDP 스택이 나머지를 처리합니다.

터미널 서버에서 애플리케이션이 상호 작용하는 방법 및 Windows 터미널 서버 인프라용 애플리케이션을 개발할 때 알아야 할 사항에 대한 자세한 내용은 다음 백서를 참조하세요.
Windows NT Server 4.0, 터미널 서버 버전용 애플리케이션 최적화

RDP 스택 인스턴스 내에서 논의할 가치가 있는 네 가지 구성 요소는 다음과 같습니다.

  • MCSMUX(다중 지점 커뮤니케이션 서비스)
  • GCC(제네릭 회의 컨트롤)
  • Wdtshare.sys
  • Tdtcp.sys

MCSmux 및 GCC는 ITU(International Telecommunication Union) T.120 제품군의 일부입니다. MCS는 다음 두 가지 표준으로 구성됩니다.

  • T.122: 다중 지점 서비스를 정의합니다.
  • T.125: 데이터 전송 프로토콜을 지정합니다.

MCSMux 컨트롤:

  • 프로토콜 내에서 미리 정의된 가상 채널에 데이터를 멀티플렉싱하여 채널 할당
  • 우선 순위 수준
  • 전송되는 데이터의 분할

기본적으로 여러 RDP 스택을 GCC 관점에서 단일 엔터티로 추상화합니다. GCC는 이러한 여러 채널을 관리할 책임이 있습니다. 이 GCC는 세션 연결을 만들고 삭제할 수 있으며 MCS에서 제공하는 리소스를 제어합니다. 각 터미널 서버 프로토콜(현재 RDP 및 Citrix의 ICA만 지원됨)에는 프로토콜 스택 인스턴스가 로드됩니다(연결 요청을 기다리는 수신기 스택). 터미널 서버 디바이스 드라이버는 RDP 프로토콜 작업을 조정하고 관리합니다. 다음과 같은 더 작은 구성 요소로 구성됩니다.

  • UI 전송, 압축, 암호화, 프레이밍 등을 위한 RDP 드라이버(Wdtshare.sys) 등.
  • 프로토콜을 기본 네트워크 프로토콜인 TCP/IP에 패키지하는 전송 드라이버(Tdtcp.sys).

RDP는 기본 전송 스택(이 경우 TCP/IP)에 완전히 독립적으로 개발되었습니다. 즉, 고객이 확장 필요에 따라 다른 네트워크 프로토콜에 대한 다른 전송 드라이버를 추가할 수 있으며 프로토콜의 토대 부분에 변경이 전혀 또는 거의 없습니다. 네트워크에서 RDP의 성능 및 확장성에 대한 핵심 요소입니다.