Opis protokołu RDP (Remote Desktop Protocol)

W tym artykule opisano protokół RDP (Remote Desktop Protocol) używany do komunikacji między serwerem terminali a klientem serwera terminali. Protokół RDP jest encapsulated i zaszyfrowany w obrębie protokołu TCP.

Dotyczy:   Windows Server 2012 R2
Oryginalny numer KB:   186607

Podsumowanie

Protokół RDP jest oparty na standardach protokołów typu T-120 i jest rozszerzeniem tego standardu. Protokół z wieloma kanałami umożliwia oddzielne kanały wirtualne do noszenia następujących informacji:

  • dane prezentacji
  • komunikacja za pomocą urządzenia szeregowego
  • informacje o licencjonowaniu
  • wysoce zaszyfrowane dane, takie jak klawiatura, aktywność myszy

Protokół RDP jest rozszerzeniem podstawowego protokołu T.Share. Kilka innych funkcji jest zachowywanych w ramach protokołu RDP, na przykład funkcje architektoniczne niezbędne do obsługi wielu punktów (sesji wieloskładniowych). Dostarczanie danych za pośrednictwem wielu punktów umożliwia dostarczanie danych z aplikacji w czasie rzeczywistym do wielu stron, takich jak wirtualne tablice. Nie wymaga wysyłania tych samych danych do każdej sesji osobno.

W tej pierwszej wersji programu Terminal Windows Server pracujemy nad zapewnieniem niezawodnej i szybkiej komunikacji punkt-punkt (w pojedynczej sesji). W początkowej wersji programu Terminal Server 4.0 jest używany tylko jeden kanał danych. Jednak elastyczność protokołu RDP zapewnia dużo miejsca na funkcjonalność w przyszłych produktach.

Jedną z przyczyn wdrożenia protokołu RDP na potrzeby łączności w programie Windows NT Terminal Server przez firmę Microsoft jest możliwość tworzenia wielu większej liczby możliwości. W przypadku protokołu RDP do transmisji danych jest 64 000 oddzielnych kanałów. Jednak bieżące działania transmisji mają zastosowanie tylko do jednego kanału (w przypadku klawiatury, myszy i danych prezentacji).

Protokołu RDP zaprojektowano w celu obsługi wielu różnych typów topologii sieci, takich jak ISDN, POTS. Protokół RDP jest również opracowany w celu obsługi wielu protokołów LAN, takich jak IPX, NetBIOS, TCP/IP. Bieżąca wersja protokołu RDP będzie działać tylko za pośrednictwem protokołu TCP/IP. Wraz z opiniami klientów obsługa innych protokołów może zostać dodana w przyszłych wersjach.

Działanie związane z wysyłaniem i odbieraniem danych za pośrednictwem stosu RDP jest zasadniczo takie samo, jak siedem warstw standardów modelu OSI dla wspólnych sieci LAN. Dane z aplikacji lub usługi przesyłanej są przekazywane w dół przez stosy protokołów. Zostanie on poeksedytowany, przekierowywowany do kanału (za pośrednictwem usługi MCS), zaszyfrowany, zawinięty, w ramce, spakowany do protokołu sieciowego, a na koniec zaadresowany i wysłany przy użyciu przewodu do klienta. Zwrócone dane działa tak samo tylko w odwrotnej kolejności. Pakiet jest odłączony od jego adresu, a następnie odszyfrowywany, odszyfrowywany i tak dalej. Na koniec dane są przedstawiane aplikacji do użycia. Najważniejsze części modyfikacji stosu protokołu występują między czwartą i siódmą warstwą, gdzie dane są:

  • szyfrowane
  • zawinięte
  • ramka
  • przekierowywowane do kanału
  • priorytetyzowane

Jednym z kluczowych punktów dla deweloperów aplikacji jest to, że w przypadku korzystania z protokołu RDP firma Microsoft wymykała się złożonych problemów ze stosem protokołu. Umożliwia im pisanie czystych, dobrze zaprojektowanych i dobrze działają aplikacji 32-bitowych. Następnie stos protokołu RDP zaimplementowany przez serwer terminali i jego połączenia klienckie zajmie się resztą.

Aby uzyskać więcej informacji na temat interakcji aplikacji z serwerem terminali i tego, co należy wiedzieć podczas opracowywania aplikacji dla infrastruktury programu Terminal Windows Server, zobacz następujący oficjalny dokument:
Optymalizowanie aplikacji pod Windows NT Server 4.0, Terminal Server Edition

Cztery składniki, które warto omówić w wystąpieniu stosu RDP, to:

  • Usługa komunikacji wielopunktowej (MCSMUX)
  • Ogólna kontrola konferencji (GCC)
  • Wdtshare.sys
  • Tdtcp.sys

McSmux i GCC są częścią międzynarodowej rodziny T.120 union T.120. Oprogramowanie MCS składa się z dwóch standardów:

  • T.122: Definiuje usługi wielopunktowe
  • T.125: Określa protokół transmisji danych

Kontrolki MCSMux:

  • przypisywanie kanałów przez multipleksowanie danych do wstępnie zdefiniowanych kanałów wirtualnych w ramach protokołu
  • priorytety
  • segmentacja wysyłanych danych

Stanowi ona zasadniczo abstrakcyjne dla wielu stosów protokołu RDP w jedną jednostkę z perspektywy GCC. GCC jest odpowiedzialna za zarządzanie tymi wieloma kanałami. Ta GCC umożliwia tworzenie i usuwanie połączeń sesji oraz steruje zasobami dostarczanymi przez usługę MCS. Każdy protokół serwera terminali (obecnie obsługiwany jest tylko protokół RDP i ICA usługi Citrix) będzie mieć załadowane wystąpienie stosu protokołu (stos słuchacza oczekujący na żądanie połączenia). Sterownik urządzenia serwera terminali koordynowa działanie protokołu RDP i zarządza nimi. Składa się on z mniejszych składników:

  • sterownik RDP (Wdtshare.sys) do transferu interfejsu użytkownika, kompresji, szyfrowania, ramek itp.
  • sterownik transportu (Tdtcp.sys), aby spakować protokół do protokołu sieciowego, TCP/IP.

Protokół RDP opracowano tak, aby był całkowicie niezależny od jego źródłowego stosu transportu, w tym przypadku TCP/IP. Oznacza to, że możemy dodawać inne sterowniki transportu dla innych protokołów sieciowych, gdy klient ich potrzebuje, i wprowadzać niewiele istotnych zmian w elementach najważniejszych protokołu lub nie wprowadzać do nich istotnych zmian. Są one kluczowym elementem wydajności i możliwości rozszerzania protokołu RDP w sieci.