第十章 udp 與 tcp 協定

42
第第第 第第第 UDP UDP TCP TCP 第第 第第

Upload: dayo

Post on 16-Mar-2016

91 views

Category:

Documents


3 download

DESCRIPTION

第十章 UDP 與 TCP 協定. 前言. 本章詳細介紹可快速將資料送出的 UDP 協定( User Datagram Protocol; 使用者資料元協定)、保證將資料送達接收端的 TCP 協定( Transmission Control Protocol; 傳輸控制協定)的原理、發送機制以及應用實例,並深入探討 Socket 與 TCP/IP、UDP 之間的運作過程。. 本章學習重點. UDP 協定:高速度的 UDP 協定原理 TCP 協定:可靠( Reliable) 的 TCP 協定原理 TCP 發送機制: TCP 為何穩定的原因 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 第十章 UDP 與 TCP 協定

第十章第十章 UDPUDP 與與 TCPTCP 協定協定

Page 2: 第十章 UDP 與 TCP 協定

前言前言本章詳細介紹可快速將資料送出的本章詳細介紹可快速將資料送出的 UDPUDP 協協定(定( User Datagram ProtocolUser Datagram Protocol ;;使用者資料元使用者資料元協定)、保證將資料送達接收端的協定)、保證將資料送達接收端的 TCPTCP 協定協定

(( Transmission Control ProtocolTransmission Control Protocol ;;傳輸控制傳輸控制協定)的原理、發送機制以及應用實例,並深入協定)的原理、發送機制以及應用實例,並深入探討探討 Socket Socket 與與 TCP/IPTCP/IP 、、 UDPUDP 之間的運作過程。之間的運作過程。

Page 3: 第十章 UDP 與 TCP 協定

本章學習重點本章學習重點*UDPUDP 協定協定 :: 高速度的高速度的 UDPUDP 協定原理協定原理*TCPTCP 協定協定 :: 可靠可靠 ((Reliable)Reliable) 的的 TCPTCP 協定協定原理原理*TCPTCP 發送機制發送機制 : : TCP TCP 為何穩定的原因為何穩定的原因*Socket: Socket: 透過類似檔案讀寫方式存取網透過類似檔案讀寫方式存取網路路*UDPUDP 應用實例應用實例 : : DNS DNS 協定的應用協定的應用*TCPTCP 應用實例應用實例 : : SMTP SMTP 協定的應用協定的應用

Page 4: 第十章 UDP 與 TCP 協定

10.1 10.1 UDP UDP 協定協定*位於 位於 OSI OSI 模型的第四層傳輸層模型的第四層傳輸層*表頭簡單表頭簡單,,僅有四個欄位僅有四個欄位,,被處理的速度極快被處理的速度極快*與與 IPIP 資料元一樣資料元一樣,,具有具有 ::

*非連結性 非連結性 : : 通訊前不用先建立連線的通訊前不用先建立連線的*不可靠性 不可靠性 : : 封包可能會遺失的不可靠特性封包可能會遺失的不可靠特性

*多被應用於快速查詢,如多被應用於快速查詢,如 DNSDNS ,,或影音相關或影音相關領域領域,如網路電話 ,如網路電話 VoIPVoIP

Page 5: 第十章 UDP 與 TCP 協定

UDP UDP 與 與 IP IP 的關係的關係UDP 表頭

Page 6: 第十章 UDP 與 TCP 協定

UDP UDP 欄位欄位*UDP UDP 來源埠號 來源埠號 : : 送方的 送方的 16 16 位元埠號位元埠號*UDP UDP 目的埠號 目的埠號 : : 收方的 收方的 16 16 位元埠號位元埠號*UDP UDP 資料元長度 資料元長度 : : UDP UDP 表頭加 表頭加 UDP UDP 資資料料*UDP UDP 檢查碼 檢查碼 : : 用數學公式計算出檢查碼用數學公式計算出檢查碼,,收端可由此確認送端的封包是否有誤收端可由此確認送端的封包是否有誤*UDP UDP 資料 資料 : : UDP UDP 資料元所承載的資料資料元所承載的資料

Page 7: 第十章 UDP 與 TCP 協定

埠號埠號 ((Port)Port)* IP IP 是網際網路間主機的定址是網際網路間主機的定址,,而埠號則把此而埠號則把此定址範圍擴大至程式與程式間定址範圍擴大至程式與程式間*埠號共有 埠號共有 16 16 個位元個位元*小於 小於 1024 1024 的埠號為系統使用的埠號為系統使用*某些 某些 Well-Known Port Well-Known Port 是保留給系統或特是保留給系統或特定的應用程式定的應用程式,,而如而如 Web Server (http)Web Server (http) 使使用埠號 用埠號 8080 而 而 HTTPS HTTPS 使用使用埠號埠號 443443

Page 8: 第十章 UDP 與 TCP 協定
Page 9: 第十章 UDP 與 TCP 協定

觀察 觀察 UDP UDP 資料元資料元

Page 10: 第十章 UDP 與 TCP 協定

10.2 10.2 TCP TCP 協定協定*提供穩定而又可靠的連結提供穩定而又可靠的連結*TCP TCP 送出的資料區段都會收到對方的確認送出的資料區段都會收到對方的確認*TCP TCP 利用軟體技術解決 利用軟體技術解決 IP IP 層不能克服的問題層不能克服的問題

*封包遺失封包遺失*封包失序封包失序*封包重複封包重複*流量控制流量控制

Page 11: 第十章 UDP 與 TCP 協定

TCP TCP 處理來自上層的訊息流處理來自上層的訊息流

Page 12: 第十章 UDP 與 TCP 協定

TCP TCP 欄位欄位• 與與 UDPUDP 不同之不同之處處,, TCP TCP 多了多了序號與確認欄位序號與確認欄位(( 長度各為 長度各為 32 32 個位元個位元 )) 這是用這是用來確保資料區段來確保資料區段有無失序有無失序、、遺失遺失或重複而多加進或重複而多加進去的欄位去的欄位

Page 13: 第十章 UDP 與 TCP 協定

10.3 10.3 TCP TCP 發送機制發送機制*送端會把資料區段連同其序號一起送出送端會把資料區段連同其序號一起送出*收端接到資料後必須回應確認給送端收端接到資料後必須回應確認給送端*流量與擁塞的管制流量與擁塞的管制*連線的建立與結束連線的建立與結束

Page 14: 第十章 UDP 與 TCP 協定

TCP TCP 的序號與確認如何運作的序號與確認如何運作

Page 15: 第十章 UDP 與 TCP 協定

倘若資料節遺失了怎麼辦倘若資料節遺失了怎麼辦 ??*別擔心別擔心,,逾時發生逾時發生後後,,送端仍未收到送端仍未收到確認確認,,那麼那麼發送端發送端會把原來的資料再會把原來的資料再重送一次重送一次

Page 16: 第十章 UDP 與 TCP 協定

滑動窗口如何運作滑動窗口如何運作*用來管制流量與擁塞用來管制流量與擁塞*滑動窗口大小為位元組滑動窗口大小為位元組,,表表送端在未收到收端的確認前送端在未收到收端的確認前,,送端最多能傳送的資料量大送端最多能傳送的資料量大小小*當擁塞發生時當擁塞發生時 ((即送端在一即送端在一定時間內未收到確認定時間內未收到確認 ) ) ,,那那麼滑動窗口就會變小麼滑動窗口就會變小,,來降來降低流量低流量

Page 17: 第十章 UDP 與 TCP 協定

建立與結束連線 建立與結束連線 : : 三向握手三向握手*握手握手

((Handshaking):Handshaking): 建建立或結束連線前彼此立或結束連線前彼此所需協商的項目所需協商的項目 - - 即即通訊的雙方得知彼此通訊的雙方得知彼此的序號的序號*接下來通訊必須從方接下來通訊必須從方才所得的序號開始才所得的序號開始

Page 18: 第十章 UDP 與 TCP 協定

1

TCP TCP 三向三向握手實例握手實例

2

3

Page 19: 第十章 UDP 與 TCP 協定

10.4 10.4 SocketSocket*提供一條雙向而穩定的資料流至對方提供一條雙向而穩定的資料流至對方*應用程式透過類似檔案讀寫的方式來存應用程式透過類似檔案讀寫的方式來存取複雜的網路取複雜的網路

Page 20: 第十章 UDP 與 TCP 協定

用用 TCP/IPTCP/IP 來建立主從連結來建立主從連結* 伺服器利用一個 伺服器利用一個 Well-Known Well-Known 埠號來與網埠號來與網路上眾多的用戶端相連路上眾多的用戶端相連,,即一對多的概念即一對多的概念* 伺服器與用戶端間的連線各自獨立伺服器與用戶端間的連線各自獨立,,即某一即某一用戶端當線也不會影響其他的用戶端與伺服器用戶端當線也不會影響其他的用戶端與伺服器的連線的連線* Well-Know Well-Know 埠號可定義於服務檔埠號可定義於服務檔

Page 21: 第十章 UDP 與 TCP 協定

TCP/IP TCP/IP 主從架構示意圖主從架構示意圖

Page 22: 第十章 UDP 與 TCP 協定

用用 UDP/IP UDP/IP 來建立主從連結來建立主從連結*以 以 UDP UDP 為協定的伺服器端不用如為協定的伺服器端不用如 TCPTCP 需先需先建立連線便可以收到來自用戶端的資料或請求建立連線便可以收到來自用戶端的資料或請求*特色 特色

* 非連結性 非連結性 : : 傳收錢後,無需建立連結傳收錢後,無需建立連結* 處理速度快 處理速度快 : : 無需確認封包無需確認封包

*Well-Know Well-Know 埠號可定義於電腦內的服務檔案埠號可定義於電腦內的服務檔案

Page 23: 第十章 UDP 與 TCP 協定

用戶端

UDP/IP UDP/IP 主從架構示意圖主從架構示意圖

Page 24: 第十章 UDP 與 TCP 協定

10.5 10.5 UDP UDP 應用實例應用實例*這是個 這是個 DNS DNS 查詢的應用查詢的應用,,埠號為 埠號為 5353*藉由此實例藉由此實例,,您可了解 您可了解 UDP UDP 封包具有封包具有

*不必先建立連結不必先建立連結*沒有使用序號沒有使用序號*沒有確認號碼沒有確認號碼*斷線不必送出封包斷線不必送出封包*UDPUDP 封包封包 --簡單與快速簡單與快速

Page 25: 第十章 UDP 與 TCP 協定

發出發出 DNS/UDP/IP DNS/UDP/IP 請求請求

Page 26: 第十章 UDP 與 TCP 協定

收到收到 DNSDNS 請求之回應請求之回應

Page 27: 第十章 UDP 與 TCP 協定

10.6 10.6 TCP TCP 應用實例應用實例*使用 使用 SMTP SMTP 協定協定,, 請參閱 請參閱 RFC 821RFC 821*Mail Server Mail Server 為 為 ms9.hinet.netms9.hinet.net*其其 IPIP 位址為 位址為 168.95.4.90168.95.4.90*其埠號 其埠號 ((SMTP)SMTP) 為 為 2525*可了解 可了解 TCP TCP 與 與 SMTP SMTP 實際運作的情況實際運作的情況

Page 28: 第十章 UDP 與 TCP 協定

SMTP SMTP 命令命令

Page 29: 第十章 UDP 與 TCP 協定

執行執行 SMTPSMTP 後所得的結果後所得的結果

Page 30: 第十章 UDP 與 TCP 協定

步驟一步驟一

Page 31: 第十章 UDP 與 TCP 協定

步驟二步驟二

Page 32: 第十章 UDP 與 TCP 協定

步驟三步驟三

Page 33: 第十章 UDP 與 TCP 協定

步驟四步驟四

Page 34: 第十章 UDP 與 TCP 協定

步驟五步驟五

Page 35: 第十章 UDP 與 TCP 協定

步驟六步驟六

Page 36: 第十章 UDP 與 TCP 協定

步驟七步驟七

Page 37: 第十章 UDP 與 TCP 協定

步驟八步驟八

Page 38: 第十章 UDP 與 TCP 協定

步驟九步驟九

Page 39: 第十章 UDP 與 TCP 協定

步驟十步驟十

Page 40: 第十章 UDP 與 TCP 協定

步驟十一步驟十一

Page 41: 第十章 UDP 與 TCP 協定

步驟十二步驟十二

Page 42: 第十章 UDP 與 TCP 協定

Chapter-10 The EndChapter-10 The End