RDP 是一種連線導向的傳輸協議,其主要設計來為主機監控應用程式如下載 / 上傳以及遠端偵錯進行有效大批資料轉送。RDP 嘗試只提供那些必需的服務,達到操作有效、尺度小的效果。其主要功能如下:
- RDP 為每個傳輸層串連連接埠提供一個全雙工系統通訊通道;
- RDP 嘗試可靠發送所有使用者資訊,一旦發送失敗,將向使用者報告錯誤。RDP 擴充 IP 資料報服務使之能夠可靠發送;
- RDP 嘗試偵測並刪除所有損壞的和重複的資料區段,它在資料區段頭使用校正碼及序號實現這一過程;
- RDP 隨意地提供資料區段序列發送,必須在串連建立時就指定資料區段的序列發送;
- RDP 會響應確認序列之外的資料區段,這會釋放發送端的資源。
與 TCP 相比,RDP 所支援的功能更為簡單。RDP 的流量控制,緩衝以及串連管理員模式都是相當簡單的。RDP 的目標就是能夠簡單有效地執行並能適合一系列的應用程式。
RDP 函數集也可能是子集從而進一步減小特殊執行的大小。例如,一台向其它主機請求下載的目標處理器可能執行一個僅支援預設的開放式函數和單串連的 RDP 模組。這個模組也可能選擇不執行非順序響應確認。
| 1 |
2 |
3 |
4 |
5 |
6 |
8 |
16bit |
| SYN |
ACK |
EAK |
RST |
NUL |
0 |
Ver No |
Header Length |
| SourcePort |
| DestinationPort |
| Data Length |
| Sequence Number |
| Acknowledgement Number |
| Checksum |
| Variable header area … |
Control flags ― 8個控制位劃分如下:
- SYN:SYN 位表示當前為同步段。
- ACK:ACK 位表示協議頭有效承認序號。
- EACK:EACK 位表示當前為擴充承認欄位。.
- RST:RST 位表示該資料包為複位欄位。
- NUL:NUL 位表示該資料包為空白欄位。
- 0:表示該欄位的值必須設定為0。
- Ver no:版本號碼,目前的版本號為2。
Header length ― RDP 協議頭長度。 Source Ports ― 源地址,識別通訊發生的過程。網路訪問協議頭中,源地址和目標地址的連接埠標識符的結合完全限定了串連並形成串連標識符。如此 RDP 可用於區分兩台主機間的多串連。 Destination Ports ― 目標地址,識別通訊中的目標過程。 Data Length ― 該欄位中的資料長度(八位),該資料長度不包括 RDP 協議頭。 Sequence number ― 該欄位的序號。 Acknowledgement number ― 如果 ACK 位設定在協議頭部,這就是欄位序號,即該欄位發送端最後正確按序列接收的順序。一旦串連成功,就應該發送該欄位。 Checksum ― 檢驗和確保完整性。 Variable Header Area ― 用於傳輸 SYN 和 EACK 欄位的參數。 |
| 相關協議 |
UDP、RUDP、IP、TCP、ICMP |
| 組織來源 |
RDP 由 IETF(http://www.ietf.org)定義在 RFC 908中並重新修訂在 RFC 1151中。 |
| 相關連結 |
http://www.javvin.com/protocol/rfc908.pdf:Reliable Data Protocol(RDP) http://www.javvin.com/protocol/rfc1151.pdf:Version 2 of the Reliable Data Protocol(RDP) |