Domanda

Come parte di uno strumento di supporto cliente, Sono voler fornire alcune funzionalità per poter richiedere di visualizzare / controllo remoto una sessione di desktop. Ci sono un sacco di modi per ottenere una cattura dello schermo e poi streaming, ma sto volendo sapere, in particolare, il motivo per cui il PSR (Remote Desktop / Terminal Services vs esperienza VNC è così diverso. Sto usando il RDP vs . VNC solo perché sembrano utilizzare metodi drasticamente differenti per lo streaming lo schermo per il cliente.

Se dovessi indovinare, RDP sembra trasmettere i blocchi di grafica bitmap (dire 100x100px) al fine di costruire un quadro completo (che può essere piuttosto lento), ma sembra di trasferire forme normali dipinte / riempimenti, o del carattere di disegno per il cliente in modo estremamente rapido. VNC sembra prendere istantanee giganti dello schermo, confrontare un'immagine precedente e trasmettere le modifiche al cliente.

Credo che RDP è molto più alta qualità e il protocollo liscia di ogni altra cosa là fuori, quindi quale tecnica La usa per raggiungere questo obiettivo?

EDIT-Giusto per chiarire, sto chiedendo su queste tecniche grafiche specificamente come un metodo di programmazione protocollo di streaming - non per quale prodotto / tecnologia esistente da utilizzare per risolvere questa esigenza di business

.
È stato utile?

Soluzione

Come hai scoperto, sono entrambi abbastanza diverso nel modo di flusso di cambiamento. Il protocollo RDP da MS è e l'estensione di un ITU standard ( T.128) che possono essere acquistati on-line.

RDP implementa un sacco di tecniche di larghezza di banda per il risparmio che si completano l'un l'altro e lo rendono molto efficiente nel bassa larghezza di banda.

VNC d'altra parte ha tecniche di compressione molto semplici: invierà blocchi di bitmap che sono stati modificati e utilizzerà tipi fondamentali di compressione, da RLE in JPEG per trasmettere in modo efficiente i blocchi
. Purtroppo, è ancora piuttosto dispendioso sopra bassa larghezza di banda.

VNC ha fondamentalmente alcun conoscenza delle primitive grafiche sottostanti utilizzate per costruire lo schermo. Che lo rende facile da usare su qualsiasi macchina, perché solo monitora i cambiamenti alla schermata bitmap.
RDP sugli altri ganci mano più in profondità le API di Windows ed è in grado di ottimizzare il suo flusso in base alla quantità minima di informazioni necessarie per generare lo stesso aggiornamento sul client.

Se si desidera integrare le funzionalità di desktop remoto, si dispone di un paio di scelte:

  • per RDP è possibile utilizzare l'ActiveX utilizzato per le funzionalità remote web. Si consiglia di dare un'occhiata a un involucro per integrarlo nel proprio software.
    Se si desidera ottenere più profondo in questo c'è il codice sorgente disponibile per Linux rdesktop client che si connette al computer Windows attraverso RDP.

  • per VNC ci sono una serie di implementazioni open source.
    Copilot di FogCreek utilizza effettivamente uno e si può ottenere la sua in quanto è costruito su TightVNC

Ci sono anche una serie di progetti su CodeProject su RDP VNC .

Altri suggerimenti

Come ha detto Renaud, VNC manda semplicemente sopra bitmap cambia blocco per blocco, senza alcuna conoscenza di ciò che il contenuto è. RDP è molto più intelligente.

È possibile controllare esattamente cosa RDP fa da queste due specifiche:

livello di protocollo: http://msdn.microsoft.com/en-us /library/cc240445(PROT.10).aspx

Livello grafica: http://msdn.microsoft.com/en-us /library/cc241537(PROT.10).aspx

Credo che guadagni più grandi di RDP provengono da:

  • Caching: Il cliente può memorizzare una grande quantità di blocchi precedentemente visto e il server può dire al cliente come usarli. Anche questi sono persistente in modo che quando un client si connette a un server è già stato ad esso può promuovere ciò blocchi che ha su disco. Molto utile quando le finestre vengono spostate. Anche molte parti di finestre, come la barra del titolo sono gli stessi.

  • Linea / blocchi disegno. Come avete indovinato RDP ha operazioni per la linea, poli e il disegno rett. Con il disegno finestre questi sono disponibili in uso un bel po '.

  • disegno dei caratteri. RDP ha un modo di inviare più gylphs per i font e dire al cliente di rendere loro.

  • il rendering del cursore. Le icone del cursore vengono inviati come glifi. VNC utilizza semplicemente un puntino

Questi sono i grandi che vengono in mente. Scopri la sezione 2.2.7 Imposta capacità del spec protocollo per la lista completa delle caratteristiche di disegno.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top