Informacje o protokole RDP.

W tym artykule opisano protokół RDP (Remote Desktop Protocol), który jest używany do komunikacji między serwerem terminalu a klientem serwera terminali. Protokół RDP jest hermetyzowany i szyfrowany w ramach protokołu TCP.

Dotyczy: Windows Server 2012 R2
Oryginalny numer KB: 186607

Podsumowanie

Protokół RDP jest oparty na i jest rozszerzeniem rodziny standardów protokołu T-120. Protokół z obsługą wielu kanałów umożliwia oddzielne kanały wirtualne do przenoszenia następujących informacji:

  • dane prezentacji
  • komunikacja urządzenia szeregowego
  • informacje o licencjonowaniu
  • wysoce zaszyfrowane dane, takie jak działanie klawiatury i myszy

Protokół RDP jest rozszerzeniem podstawowego protokołu T.Share. Kilka innych możliwości jest przechowywanych w ramach protokołu RDP, takich jak funkcje architektury niezbędne do obsługi wielopunktowych (sesji wieloczęściowych). Dostarczanie danych z wielu punktów umożliwia dostarczanie danych z aplikacji w czasie rzeczywistym do wielu stron, takich jak wirtualne białe tablice. Nie trzeba wysyłać tych samych danych do każdej sesji indywidualnie.

W tej pierwszej wersji oprogramowania Windows Terminal Server koncentrujemy się na zapewnianiu niezawodnej i szybkiej komunikacji typu punkt-punkt (pojedyncza sesja). W początkowej wersji serwera 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.

Jednym z powodów, dla których firma Microsoft zdecydowała się zaimplementować protokół RDP do celów łączności w systemie Windows NT Terminal Server, jest to, że zapewnia on rozszerzalną bazę do tworzenia wielu dodatkowych możliwości. Protokół RDP udostępnia 64 000 oddzielnych kanałów do transmisji danych. Jednak bieżące działania transmisji używają tylko jednego kanału (dla danych klawiatury, myszy i prezentacji).

Protokół RDP jest przeznaczony do obsługi wielu różnych typów topologii sieci, takich jak ISDN i POTS. Protokół RDP jest również przeznaczony do obsługi wielu protokołów sieci LAN, takich jak IPX, NetBIOS i TCP/IP. Bieżąca wersja protokołu RDP będzie uruchamiana tylko za pośrednictwem protokołu TCP/IP. Dzięki opiniom klientów w przyszłych wersjach może zostać dodana obsługa innych protokołów.

Działanie związane z wysyłaniem i odbieraniem danych za pośrednictwem stosu RDP jest zasadniczo takie samo jak 7-warstwowe standardy modelu OSI dla typowych sieci LAN. Dane z aplikacji lub usługi, która ma zostać przesłana, są przekazywane za pośrednictwem stosów protokołów. Są one rozsyłane, kierowane do kanału (za pośrednictwem usługi MCS), szyfrowane, opakowane, oprawione i spakowane w protokole sieciowym, a następnie adresowane i wysyłane za pośrednictwem sieci przewodowej do klienta. Zwrócone dane działają w ten sam sposób tylko w odwrotnej kolejności. Pakiet jest pozbawiony adresu, a następnie odpakowany, odszyfrowany itd. Na koniec dane są prezentowane aplikacji do użycia. Kluczowe części modyfikacji stosu protokołu występują między czwartą i siódmą warstwą, gdzie dane są:

  • szyfrowane
  • pakowane
  • oprawiane
  • kierowane do kanału
  • jest im nadawany priorytet

Jednym z kluczowych punktów dla deweloperów aplikacji jest to, że w przypadku używania protokołu RDP firma Microsoft niweluje złożoność obsługi stosu protokołów. Pozwala im pisać czyste, dobrze zaprojektowane, dobrze zachowujące się aplikacje 32-bitowe. Następnie stos RDP zaimplementowany przez serwer terminali i jego połączenia klienckie zajmuje się resztą.

Aby uzyskać więcej informacji o sposobie interakcji aplikacji na serwerze terminali i o tym, o czym należy wiedzieć podczas tworzenia aplikacji dla infrastruktury serwera Windows Terminal Server, zobacz następujący oficjalny dokument:
Optymalizowanie aplikacji dla systemu Windows NT Server 4.0, Terminal Server Edition

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

  • usługa Multipoint Communication Service (MCSMUX)
  • grupa środowisk Generic Conference Control (GCC)
  • plik Wdtshare.sys
  • plik Tdtcp.sys

Aplikacje MCSmux i GCC są częścią rodziny standardu T.120 Międzynarodowej Unii Telekomunikacyjnej (ITU). Usługa MCS składa się z dwóch standardów:

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

Aplikacja MCSMux kontroluje:

  • przypisywanie kanału przez multipleksowanie danych na wstępnie zdefiniowane kanały wirtualne w ramach protokołu
  • poziomy priorytetów
  • segmentacja wysyłanych danych

Zasadniczo łączy wiele stosów RDP w jednej jednostce, z perspektywy środowisk GCC. Środowisko GCC jest odpowiedzialne za zarządzanie tymi wieloma kanałami. Aplikacja GCC umożliwia tworzenie i usuwanie połączeń sesji i kontroluje zasoby udostępniane przez usługę MCS. Każdy protokół serwera terminali (obecnie obsługiwane są tylko protokoły RDP i ICA firmy Citrix) będą mieć załadowany wystąpienie stos protokołu (stos odbiornika oczekujący na żądanie połączenia). Sterownik urządzenia serwera terminali koordynuje działanie protokołu RDP i zarządza nim. Składa się z mniejszych składników:

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

Protokół RDP został opracowany tak, aby był całkowicie niezależny od swojego bazowego stosu transportowego, w tym przypadku TCP/IP. Oznacza to, że możemy dodać inne sterowniki transportu dla innych protokołów sieciowych w miarę wzrostu potrzeb klientów, z niewielkimi lub żadnymi istotnymi zmianami podstawowych części protokołu. Są one kluczowymi elementami wydajności i rozszerzalności protokołu RDP w sieci.