瞭解遠端桌面通訊協定 (RDP)

本文說明用於終端機伺服器與終端機伺服器用戶端之間通訊的遠端桌面通訊協定 (RDP)。 RDP 會在 TCP 內封裝和加密。

適用:Windows Server 2012 R2
原始 KB 編號: 186607

摘要

RDP 是以 T-120 系列通訊協定標準為基礎,且是其擴充功能。 支援多重通道的通訊協定可讓您使用個別的虛擬通道來傳遞下列資訊:

  • 簡報資料
  • 序列裝置通訊
  • 授權資訊。
  • 高度加密的資料,例如鍵盤、滑鼠活動

RDP 是核心 T.Share 通訊協定的延伸功能。 其他數個功能會保留為 RDP 的一部分,例如支援多重點 (多方工作階段) 所需的架構功能。 多點資料傳遞可讓應用程式的資料 即時 傳遞給多方,例如虛擬白板。 不需要分別將相同的資料傳送至每個工作階段。

在第一版的 Windows 終端伺服器中,我們致力於提供可靠且快速的點對點 (單一工作階段) 通訊。 終端伺服器 4.0 的初始版本中只會使用一個資料通道。 不過,RDP 的彈性為未來產品提供足夠的功能空間。

Microsoft 決定在 Windows NT 終端伺服器內實施 RDP 以進行連線的其中一個原因,是它提供了可延伸的基礎來建置更多功能。 RDP 提供 64,000 個不同的通道來傳輸資料。 不過,目前的傳輸活動只會針對使用單一通道 (鍵盤、滑鼠和簡報資料)。

RDP 的設計目的是支援許多不同類型的網路拓撲,例如 ISDN、POTS。 RDP 也設計來支援許多 LAN 通訊協定,例如 IPX、NetBIOS、TCP/IP。 目前的 RDP 版本只會透過 TCP/IP 執行。 依據客戶意見回饋,未來版本可能會新增其他通訊協定支援。

透過 RDP 堆疊傳送和接收資料所涉及的活動,基本上與現今常見的 LAN 網路的七層 OSI 模型標準相同。 來自要傳輸之應用程式或服務的資料會透過通訊協定堆疊向下傳遞。 其會進行區段、導向至通道 (透過 MCS)、加密、包裝、框架化、封裝到網路通訊協定,最後透過網路定址並傳送至用戶端。 傳回的資料僅以相反方式運作。 封包會被移除其位址,然後取消包裝、解密等等。 最後,資料會呈現給應用程式以供使用。 通訊協定堆疊修改的主要部分會發生在第四層和第七層之間,其中的資料為:

  • 已加密
  • 包裝
  • 框架化
  • 導向至通道
  • 優先

應用程式開發人員的重點之一是,在使用 RDP 時,Microsoft 已將處理通訊協定堆疊的複雜性抽象化。 它可讓他們撰寫乾淨、設計完善、行為良好的 32 位元應用程式。 然後,終端伺服器及其用戶端連線所實施的 RDP 堆疊會處理其餘部分。

如需應用程式如何在終端伺服器上互動的詳細資訊,以及開發 Windows 終端伺服器基礎結構應用程式須知,請參閱下列白皮書:
最佳化 Windows NT Server 4.0、Terminal Server Edition 的應用程式

在 RDP 堆疊執行個體內值得討論的四個元件包括:

  • 多點通訊服務 (MCSMUX)
  • 泛型會議控制項 (GCC)
  • Wdtshare.sys
  • Tdtcp.sys

MCSmux 和 GCC 是國際電信聯盟 (ITU) T.120 系列的一部分。 MCS 是由兩個標準所組成:

  • T.122:它會定義多點服務
  • T.125:它會指定資料傳輸通訊協定

MCSMux 控制項:

  • 將多工處理資料指派到通訊協定內預先定義虛擬通道的通道
  • 優先順序層級
  • 正在傳送的資料分割

從 GCC 的觀點來看,它基本上會將多個 RDP 堆疊抽象化為單一實體。 GCC 負責管理這些多個通道。 GCC 允許建立和刪除工作階段連線,並控制 MCS 提供的資源。 目前每個終端伺服器通訊協定 (目前僅支援 RDP 和 Citrix 的 ICA) 會載入通訊協定堆疊執行個體 (接聽程式堆疊等候連線請求)。 終端伺服器裝置驅動程式會協調和管理 RDP 通訊協定活動。 它是由較小的元件所組成:

  • 適用于 UI 傳輸、壓縮、加密、框架處理等的 RDP 驅動程式 (Wdtshare.sys)。
  • 傳輸驅動程式 (Tdtcp.sys) 將通訊協定封裝到基礎網路通訊協定 TCP/IP。

RDP 開發成完全獨立于其基礎傳輸堆疊,在此案例中為 TCP/IP。 這表示,我們可以隨著客戶對其他網路通訊協定的需求成長,為其他網路通訊協定新增其他傳輸驅動程式,而對通訊協定的基礎部分幾乎無任何重大變更。 它們是網路上 RDP 效能和擴充性的重要元素。