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.