460 likes | 699 Vues
第 4 章 OSI 傳輸層. 學習目標. 在學習本章之後,讀者將可以回答下列的問題: 為何需要傳輸層? 在端點對端點的資料傳遞中,傳輸層的角色為何? 在 TCP/IP 傳輸層中, TCP 與 UDP 協定的角色為何? 傳輸層的主要功能:可靠度、連接埠位址和分割等是如何運作? TCP 與 UDP 是如何處理各項主要功能? TCP 或 UDP 的使用時機為何? . 圖 4-1 OSI 傳輸層 . 傳輸層的角色 . 傳輸層可以在終端使用者之間進行資料的傳輸,並且提供較高層協定可靠的資料傳輸服務 . 傳輸層的角色(續) . 傳輸層的目的 支援可靠的通訊
E N D
學習目標 在學習本章之後,讀者將可以回答下列的問題: • 為何需要傳輸層? • 在端點對端點的資料傳遞中,傳輸層的角色為何? • 在TCP/IP傳輸層中,TCP與UDP協定的角色為何? • 傳輸層的主要功能:可靠度、連接埠位址和分割等是如何運作? • TCP與UDP是如何處理各項主要功能? • TCP或UDP的使用時機為何?
傳輸層的角色 • 傳輸層可以在終端使用者之間進行資料的傳輸,並且提供較高層協定可靠的資料傳輸服務
傳輸層的角色(續) • 傳輸層的目的 • 支援可靠的通訊 • TCP與UDP • 連接埠位址 • 分割與重組:分解與結合
傳輸層的目的 • 在來源端和目的端主機的應用程式之間,追蹤個別的通訊 • 分割資料並且管理每個資料段 • 將資料段重組為資料流 • 辨別不同的應用程式 • 在終端使用者之間執行流量控制 • 啟動「錯誤恢復」(error recovery)機制 • 啟始一個會談(session)
傳輸層的目的(續) 圖4-2 啟動設備上的應用程式進行通訊
傳輸層的目的(續) 圖4-3 追蹤對話
傳輸層的目的(續) 圖4-4 分割
傳輸層的目的(續) • 重組資料段:資料很可能會以不同的順序抵達。傳輸層主要是將資料段加以編號和排序,以確保資料段能夠重組成原本正確的順序 • 識別應用程式:TCP/IP協定稱此識別碼為「埠號」(port number)。凡是存取網路的軟體程序,都會被賦予一個唯一的埠號
傳輸層的目的(續) • 流量控制:限制來源端所傳送的資料量是傳輸層的工作 • 錯誤恢復機制:傳輸層可以確保所有片段資料會順利抵達目的地 • 啟始一個會談:傳輸層可以透過連線導向的方式,在應用程式間建立一個會談(session)
傳輸層的目的(續) • 資料需求的差異 • 為滿足各種不同應用的需求,必須要有多種的傳輸層協定 • UDP(User Datagram Protocol),只能在應用程式間傳遞資料片段的基本功能 • 如TCP(Transmission Control Protocol),則具備一些附加的功能,如確保資料在應用程式間可靠的傳遞
支援可靠的通訊 • 追蹤所傳輸的資料 • 收到資料後發出回應 • 重傳任何未收到回應的資料
支援可靠的通訊(續) 圖4-5 傳輸層協定
TCP與UDP • 「傳輸控制協定」(TCP)和「使用者資料包協定」(UDP)
TCP與UDP(續) • 使用者資料包協定(UDP) • UDP傳輸的資料單位,稱為「資料包」(datagram) • UDP是以「盡力傳送」的方式來傳送資料包 • 應用程式包括:網域名稱系統(DNS)、視訊串流、IP語音電話(VoIP)
TCP與UDP(續) • 傳輸控制協定(TCP) • TCP是一種連線導向(connection-oriented)的通訊協定 • 應用程式包括:Web瀏覽器、電子郵件、檔案傳輸 圖4-7TCP資料包
連接埠位址 圖4-8 辨識各種交談
連接埠位址(續) • 埠號位址型態與工具 • 周知埠號(數字0到1023) • 註冊埠號(數字1024到49151) • 動態或私有埠號(數字49152到65535)
連接埠位址(續) 表4-1 周知埠號
連接埠位址(續) 表4-2 註冊埠號
連接埠位址(續) • 動態或私有連接埠:動態或私有連接埠(數字49152到65535)也稱為Ephemeral連接埠 表4-3TCP/UDP共用埠號
連接埠位址(續) • netstat命令:有時候,必須知道在網路主機中,哪個運作中的TCP連線是處於開啟狀態。Netstat是一個重要的網路公用程式,可用於確認這些連線
分割與重組:分解與結合 圖4-9 傳輸層功能
TCP通訊協定:可靠的通訊 • TCP經常被稱作是連線導向的協定,是一種保證可靠度,並依序由傳送端至接收端發送資料的協定。 • 連線的建立和終止 • 「三向信號交換」(three-way handshake)方法 • 流量控制、視窗的擁擠控制以及資料的重傳
TCP通訊協定:可靠的通訊(續) • 進行可靠的交談 • TCP伺服器程序 • 建立和終止TCP連線 • TCP三向信號交換 • 終止TCP會談 • 採用視窗技術的TCP回應 • TCP重新傳輸 • TCP擁擠控制:資料段遺失的最小化
進行可靠的交談 • 採用連線導向的會談(session)
TCP伺服器程序 • 於伺服器上執行的每個應用程式,都會有一個對應的埠號,是由系統管理員手動方式設定或為預設值 圖4-10 用戶端傳送TCP請求
建立和終止TCP連線 • 在通訊完成後,則須關閉會談並終止連線
TCP三向信號交換 • 確認目的設備存在於網路上 • 驗證目的設備中有一個運作中的服務,可以接受目的埠號的請求,以建立與用戶端的會談 • 通知目的設備,來源用戶端嘗試在該埠號上建立一個通訊會談
TCP三向信號交換(續) 圖4-11 建立TCP連線:SYN ACK
終止TCP會談 圖4-12TCP連線終止:FIN ACK
採用視窗技術的TCP回應 • TCP傳送資料段中的回應編號至來源端,告知接收端正期望接收下一個位元組,此類回應稱之為「期望回應」(expectational acknowledgement) • 在接收到回應值之前,啟始端可以傳送的資料量,稱之為「視窗長度」(window size)。「視窗長度」是TCP標頭中的一個欄位
採用視窗技術的TCP回應(續) 圖4-13TCP資料段的回應
TCP重新傳輸 • TCP提供一些管理資料段遺失的方法,其中的一項機制是重新傳輸未獲回應的資料段
TCP擁擠控制:資料段遺失的最小化 • TCP標頭中的「視窗長度欄位」(window size field),可指定在獲得回應前所能傳輸的資料量 圖4-14TCP資料段回應和視窗長度
TCP擁擠控制:資料段遺失的最小化(續) • 動態視窗長度:若接收端因緩衝區記憶體限制而需要降低通訊速率時,它可以傳送較小的視窗長度值做為回應 圖4-15TCP擁擠和流量控制
UDP通訊協定:低虛工通訊 • 提供基本傳輸層功能的簡單通訊協定 • 非連線導向的運作方式 • 不提供複雜的重新傳輸、排序和流程控制機制
UDP通訊協定:低虛工通訊(續) • UDP:低虛工與可靠度的比較 • UDP資料包重組 • UDP伺服器程序與請求 • UDP用戶端程序
UDP:低虛工與可靠度的比較 • 因為UDP的額外虛工較低,且不必如TCP提供一些可靠度功能 • 使用UDP的應用程式並非都不可靠,使用UDP僅表示不是由傳輸層協定來提供可靠度
UDP資料包重組 圖4-16UDP資料組合
UDP伺服器程序與請求 • 以UDP為基礎的伺服器應用程式,會有對應的已知或註冊的埠號
UDP用戶端程序 • 主從式通訊是由用戶端的應用程式所啟始,由該應用程式向伺服器程序發出資料請求 • 目的連接埠(destination port)通常是眾所周知或用於伺服器程序的已註冊埠號
UDP用戶端程序(續) 圖4-17 用戶端傳送UDP請求
摘要 • 傳輸層藉由下列方式提供資料網路的需求: • 在來源和目的主機上的應用程式之間,追蹤個別的通訊 • 分割資料並且管理每個資料段 • 組合資料段成為應用程式的資料流 • 識別不同的應用程式 • 在使用者之間執行流量控制 • 啟用「錯誤回復原」機制 • 啟始一個會談 • UDP和TCP是常見的傳輸層協定