490 likes | 738 Views
第十章 UDP 與 TCP 協定. 前言. 本章詳細介紹可快速將資料送出的 UDP 協定( User Datagram Protocol; 使用者資料元協定)、保證將資料送達接收端的 TCP 協定( Transmission Control Protocol; 傳輸控制協定)的原理、發送機制以及應用實例,並深入探討 Socket 與 TCP/IP、UDP 之間的運作過程。. 本章學習重點. UDP 協定:高速度的 UDP 協定原理 TCP 協定:可靠( Reliable) 的 TCP 協定原理 TCP 發送機制: TCP 為何穩定的原因
E N D
前言 本章詳細介紹可快速將資料送出的UDP協定(User Datagram Protocol;使用者資料元協定)、保證將資料送達接收端的TCP協定(Transmission Control Protocol;傳輸控制協定)的原理、發送機制以及應用實例,並深入探討Socket 與TCP/IP、UDP之間的運作過程。
本章學習重點 • UDP協定:高速度的UDP協定原理 • TCP協定:可靠(Reliable)的TCP協定原理 • TCP發送機制: TCP 為何穩定的原因 • Socket: 透過類似檔案讀寫方式存取網路 • UDP應用實例: DNS 協定的應用 • TCP應用實例: SMTP 協定的應用
10.1 UDP 協定 • 位於 OSI 模型的第四層傳輸層 • 表頭簡單,僅有四個欄位,被處理的速度極快 • 與IP資料元一樣,具有: • 非連結性 : 通訊前不用先建立連線的 • 不可靠性 : 封包可能會遺失的不可靠特性 • 多被應用於快速查詢,如DNS,或影音相關領域,如網路電話 VoIP
UDP 表頭 UDP 與 IP 的關係
UDP 欄位 • UDP 來源埠號 : 送方的 16 位元埠號 • UDP 目的埠號 : 收方的 16 位元埠號 • UDP 資料元長度 : UDP 表頭加 UDP 資料 • UDP 檢查碼 : 用數學公式計算出檢查碼,收端可由此確認送端的封包是否有誤 • UDP 資料 : UDP 資料元所承載的資料
埠號(Port) • IP 是網際網路間主機的定址,而埠號則把此定址範圍擴大至程式與程式間 • 埠號共有 16 個位元 • 小於 1024 的埠號為系統使用 • 某些 Well-Known Port 是保留給系統或特定的應用程式,而如Web Server (http)使用埠號 80而 HTTPS 使用埠號 443
10.2 TCP 協定 • 提供穩定而又可靠的連結 • TCP 送出的資料區段都會收到對方的確認 • TCP 利用軟體技術解決 IP 層不能克服的問題 • 封包遺失 • 封包失序 • 封包重複 • 流量控制
TCP 欄位 • 與UDP不同之處,TCP 多了序號與確認欄位(長度各為 32 個位元)這是用來確保資料區段有無失序、遺失或重複而多加進去的欄位
10.3 TCP 發送機制 • 送端會把資料區段連同其序號一起送出 • 收端接到資料後必須回應確認給送端 • 流量與擁塞的管制 • 連線的建立與結束
倘若資料節遺失了怎麼辦? • 別擔心,逾時發生後,送端仍未收到確認,那麼發送端會把原來的資料再重送一次
滑動窗口如何運作 • 用來管制流量與擁塞 • 滑動窗口大小為位元組,表送端在未收到收端的確認前,送端最多能傳送的資料量大小 • 當擁塞發生時(即送端在一定時間內未收到確認) ,那麼滑動窗口就會變小,來降低流量
建立與結束連線 : 三向握手 • 握手(Handshaking):建立或結束連線前彼此所需協商的項目- 即通訊的雙方得知彼此的序號 • 接下來通訊必須從方才所得的序號開始
3 1 2 TCP 三向握手實例
10.4 Socket • 提供一條雙向而穩定的資料流至對方 • 應用程式透過類似檔案讀寫的方式來存取複雜的網路
用TCP/IP來建立主從連結 • 伺服器利用一個 Well-Known 埠號來與網路上眾多的用戶端相連,即一對多的概念 • 伺服器與用戶端間的連線各自獨立,即某一用戶端當線也不會影響其他的用戶端與伺服器的連線 • Well-Know 埠號可定義於服務檔
用UDP/IP 來建立主從連結 • 以 UDP 為協定的伺服器端不用如TCP需先建立連線便可以收到來自用戶端的資料或請求 • 特色 • 非連結性 : 傳收錢後,無需建立連結 • 處理速度快 : 無需確認封包 • Well-Know 埠號可定義於電腦內的服務檔案
UDP/IP 主從架構示意圖 用戶端
10.5 UDP 應用實例 • 這是個 DNS 查詢的應用,埠號為 53 • 藉由此實例,您可了解 UDP 封包具有 • 不必先建立連結 • 沒有使用序號 • 沒有確認號碼 • 斷線不必送出封包 • UDP封包-簡單與快速
10.6 TCP 應用實例 • 使用 SMTP 協定,請參閱 RFC 821 • Mail Server 為 ms9.hinet.net • 其IP位址為 168.95.4.90 • 其埠號 (SMTP)為 25 • 可了解 TCP 與 SMTP 實際運作的情況