문제

클라이언트 지원 도구의 일부로 데스크톱 세션 보기/원격 제어를 요청할 수 있는 몇 가지 기능을 제공하고 싶습니다.화면을 캡처한 후 스트리밍하는 방법은 여러 가지가 있지만 특히 RDP(원격 데스크톱/터미널 서비스 vs.VNC 경험은 매우 다릅니다.저는 RDP와 RDP를 사용하고 있습니다.VNC는 화면을 클라이언트에 스트리밍하기 위해 완전히 다른 방법을 사용하는 것 같습니다.

추측해야 한다면 RDP는 전체 그림을 만들기 위해 비트맵 그래픽 블록(예: 100x100px)을 전송하는 것처럼 보이지만(매우 느릴 수 있음) 일반 페인트 모양/채우기 또는 글꼴 그리기를 클라이언트에 매우 빠르게 전송하는 것 같습니다. .VNC는 화면의 거대한 스냅샷을 찍고, 이전 이미지를 비교하고, 변경 사항을 클라이언트에 스트리밍하는 것 같습니다.

RDP는 다른 어떤 것보다 훨씬 고품질이고 원활한 프로토콜이라고 생각합니다. 그렇다면 이를 달성하기 위해 어떤 기술을 사용합니까?

편집-명확하게 말하자면, 이 비즈니스 요구 사항을 해결하기 위해 사용할 기존 제품/기술이 아니라 특히 스트리밍 프로토콜 프로그래밍 방법으로 이러한 그래픽 기술에 대해 묻고 있습니다.

도움이 되었습니까?

해결책

아시다시피 둘 다 변경 내용을 스트리밍하는 방식이 상당히 다릅니다.MS의 RDP 프로토콜은 다음과 같은 확장입니다. ITU 표준(T.128) 온라인으로 구매할 수 있는 것입니다.

RDP는 서로를 보완하고 낮은 대역폭에서 매우 효율적으로 만드는 많은 대역폭 절약 기술을 구현합니다.

반면 VNC에는 매우 기본적인 압축 기술이 있습니다.변경된 비트맵 블록을 전송하고 RLE에서 jpeg까지 기본 압축 유형을 사용하여 해당 블록을 효율적으로 전송합니다.
불행하게도 낮은 대역폭에서는 여전히 꽤 낭비적입니다.

VNC는 기본적으로 화면을 구축하는 데 사용되는 기본 그래픽 기본 요소에 대한 지식이 없습니다.화면 비트맵의 변경 사항만 모니터링하기 때문에 모든 컴퓨터에서 쉽게 사용할 수 있습니다.
반면 RDP는 Windows API에 더 깊이 연결되어 클라이언트에서 동일한 업데이트를 생성하는 데 필요한 최소한의 정보를 기반으로 스트림을 최적화할 수 있습니다.

원격 데스크톱 기능을 통합하려는 경우 다음과 같은 몇 가지 선택 사항이 있습니다.

  • RDP의 경우 웹 원격 기능에 사용되는 ActiveX를 사용할 수 있습니다.당신은 한 번 살펴보고 싶을 수도 있습니다 싸개 이를 자신의 소프트웨어에 통합합니다.
    이에 대해 더 자세히 알고 싶다면 Linux에서 사용할 수 있는 소스 코드가 있습니다. 데스크탑 RDP를 통해 Windows 시스템에 연결하는 클라이언트입니다.

  • VNC에는 다양한 오픈 소스 구현이 있습니다.
    FogCreek의 Copilot은 실제로 하나를 사용하며 이를 얻을 수 있습니다. 원천 그것이 기반으로 만들어지면서 타이트VNC

에도 여러 프로젝트가 있습니다. RDP의 CodeProject 그리고 VNC.

다른 팁

Renaud가 말했듯이 VNC는 단순히 콘텐츠의 내용에 대한 지식없이 Bitmap 변경을 블록별로 보냅니다. RDP는 훨씬 더 똑똑합니다.

이 두 가지 사양에서 RDP가 수행하는 작업을 정확히 확인할 수 있습니다.

프로토콜 레벨 :http://msdn.microsoft.com/en-us/library/cc240445(prot.10).aspx

그래픽 레벨 :http://msdn.microsoft.com/en-us/library/cc241537(prot.10).aspx

RDP의 가장 큰 이익은 다음과 같습니다.

  • 캐싱 : 클라이언트는 이전에 본 블록을 많이 저장할 수 있으며 서버는 클라이언트에게 사용 방법을 알려줄 수 있습니다. 또한 이들은 지속적이므로 클라이언트가 서버에 연결하면 이미 디스크에 어떤 블록이 있는지 광고 할 수 있습니다. Windows가 움직일 때 매우 유용합니다. 제목 표시 줄과 같은 창의 많은 부분도 동일합니다.

  • 라인/블록 도면. 당신이 추측 한대로 RDP에는 라인, poly 및 rect drawing에 대한 작업이 있습니다. 창문을 그리는 것은 이것들이 많이 사용됩니다.

  • 글꼴 도면. RDP는 글꼴을 위해 gylphs를 보내고 고객에게 렌더링하도록 지시하는 방법이 있습니다.

  • 커서 렌더링. 커서 아이콘은 글리프로 전송됩니다. VNC는 단순히 점을 사용합니다

그것들은 떠오르는 큰 사람들입니다. 전체 드로잉 기능 목록에 대한 프로토콜 사양의 기능 세트 2.2.7 섹션을 확인하십시오.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top