第 6 章 通訊協定 UDP
連接埠 (Port) 若將電腦比做郵局, 連接埠就像窗口, 負責各種不同的業務。 一部電腦只有一個 IP 位址, 但有許多連接埠, 以區分各使用 TCP/IP 的程式。 當電腦收到 IP 封包時, 便根據其連接埠編號, 判斷交由哪個應用程式來處理。
連接埠編號的原則 連接埠編號從 0 至 65535。 0-1023 稱為『Well-Known』連接埠。 1024-65535 為『Registered / Dynamic』連接埠, 由 Client 端自行使用。
常見的 Well-Known 連接埠
自訂 Server 連接埠編號 Well-Known 連接埠是『約定俗成』, 不具強制性。 例如您可架設一部連接埠編號為 2001 的 Web Server, 但必須讓使用者知道, 這部 Web Server 所使用的連接埠編號。
UDP在TCP/IP協定組的位置
UDP 簡介 ( User Datagram Protocol ) Connectionless 的傳送特性。傳送過程較為單純, 但是可靠性較差。 不具有確認、重送等機制。
使用 UDP 的應用程式之考量 為了要降低對電腦資源的需求。 應用程式本身已提供資料完整性的檢查機制。 要使用 Multicast 或 Broadcast 等一對多的傳送方式。
UDP 封包 UDP 表頭: UDP 資料: 記錄來源與目的端應用程式所用的連接埠編號。 載送上層協定 (Application Layer) 的資訊。
使用者資料包格式
UDP 表頭 Source Port (來源連接埠編號) Destination Port (目的連接埠編號) Length (長度) 記錄來源端應用程式所用的連接埠編號。 Destination Port (目的連接埠編號) 記錄目的端應用程式所用的連接埠編號。 Length (長度) 記錄 UDP 封包的總長度。 Checksum (錯誤檢查碼) 記錄 UDP 封包的錯誤檢查碼。
埠號碼
IP 位址與埠號
Pseudo Header (假表頭) 計算錯誤檢查碼時, 會產生『Pseudo Header』, 包括以下欄位: Source IP Address:IP 表頭中來源端的 IP 位址 Destination IP Address:IP 表頭中目的端 的 IP 位址 Unused:長度為 8 Bits, 填入 0 Protocol:IP 表頭中紀錄上層協定的欄位 Length:UDP 表頭中的 Length 欄位
Pseudo Header 的功用 檢查 UDP 封包是否送達正確的終點。
UDP資料包的虛擬標頭
一個簡單UDP使用者 資料包的檢查和計算
UDP 運作
封裝及解封裝
UDP的佇列
多工與解多工
擷取 UDP 封包
UDP 封包說明 1. UDP 表頭。 2. 來源端連接埠編號。0x0431 換算成十進位為 1073, 屬於 Dynamic 的連接埠。 3. 目的端連接埠編號。已解讀出為 DNS Server 的連接埠編號。 4. UDP 封包的長度。 5. 錯誤檢查碼。 6. 這是 UDP 資料的部份, 此處顯示裝載的資料為 DNS Query 封包。