1 / 117

Chapter 12 傳輸控制通訊協定

Chapter 12 傳輸控制通訊協定. 目標. 本章結束後,您將能夠: 可以去列舉並了解 TCP 所提供的服務 了解 TCP 的流量控制、錯誤控制、及壅塞控制 熟悉 TCP 區段中的各欄位 了解預接式連線的各階段 了解 TCP 的狀態轉換圖 熟悉 TCP 的選項. 12.1 TCP 的服務. 我們先看看有哪些應用層的程序使用 TCP 所提供的服務。. 本節所討論的主題包括:. 程序對程序的通訊 串流傳送服務 全雙工通訊 預接式服務 可靠性服務. 範例 1.

Download Presentation

Chapter 12 傳輸控制通訊協定

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Chapter 12傳輸控制通訊協定

  2. 目標 本章結束後,您將能夠: • 可以去列舉並了解 TCP 所提供的服務 • 了解 TCP 的流量控制、錯誤控制、及壅塞控制 • 熟悉 TCP 區段中的各欄位 • 了解預接式連線的各階段 • 了解 TCP 的狀態轉換圖 • 熟悉 TCP 的選項

  3. 12.1 TCP的服務 我們先看看有哪些應用層的程序使用 TCP 所提供的服務。 本節所討論的主題包括: • 程序對程序的通訊 • 串流傳送服務 • 全雙工通訊 • 預接式服務 • 可靠性服務

  4. 範例1 就我們在第11章所說的,在 UNIX 系統中,公認埠號被儲存在 /etc/services的這個檔案中。檔案中的每一行給予某個服務的名稱及對應的公認埠號。我們可以使用grep 的系統工具來擷取指定應用所對應的那一行或多行的資料。下面顯示FTP 的埠號:

  5. 12.2 TCP的特色 前面章節已經提過 TCP 所提供的服務,而我們會在本節中簡短的概述一下 TCP 的幾項特點。 本節所討論的主題包括: • 編號系統 • 流量控制 • 錯誤控制 • 壅塞控制

  6. 請注意: 每條連線所傳送的位元組都被 TCP 編號, 第一個號碼是由亂數產生而來。

  7. 範例2 想像某一 TCP 連線傳送一個5,000 位元組的檔案。第一個位元組號碼為10,001,如果資料被分成 5個區段送出,每個區段各自攜帶1,000 個位元組,請問每一個區段的序號為何? 解答 以下是每個區段的序號:

  8. 請注意: 區段序號欄的值就是該區段的 第一個位元組資料編號。

  9. 請注意: 區段的回應欄之值定義預期接收的 下一個位元組,其回應號碼是累計的。

  10. 12.3 區段 在 TCP 中的一個封包稱為一個區段 ( segment )。 本節所討論的主題包括: • 格式 • 封裝

  11. 請注意: TCP 的檢查碼機制是強制執行的。

  12. 12.4 TCP 連線 TCP屬於預接式 ( connection-oriented )的傳輸協定,它在來源端與目的端之間建立一條虛擬路徑,所有屬於相同訊息的區段,就依這條虛擬路徑傳送。預接式的傳輸需要以下三個階段:連線的建立、資料的傳輸、及連線的結束。 本節所討論的主題包括: • 連線的建立 • 資料的傳輸 • 連線的結束

  13. 請注意: SYN區段並沒有攜帶任何的資料, 但是它會消耗 1 個序號。

  14. 請注意: SYN+ACK區段並沒有攜帶任何的資料, 但是它也會消耗 1 個序號。

  15. 請注意: ACK區段並沒有攜帶任何的資料, 它也不會消耗任何的序號。

  16. 請注意: 如果FIN區段沒有攜帶任何的資料時, 它只會消耗 1 個序號。

  17. 請注意: 如果FIN+ACK區段沒有攜帶任何的資料時, 它只會消耗 1 個序號。

  18. 12.5 狀態轉換圖 要把連線建立、結束、及資料傳送等各種可能發生的事件追蹤的很好,TCP 軟體是以有限狀態機 ( finite state machine )的方式實現。 本節所討論的主題包括: • 範例

  19. 請注意: 一般情況下,MSL 的值介於 30 秒到 1 分鐘之間。

  20. 12.6 流量控制 流量控制 ( flow control )用來管控來源端在收到目的端回應之前能夠送出的資料量。TCP 定義了一個窗口在緩衝器中,這個緩衝器儲存了已經從應用程式傳遞過來,並準備好要被傳送的資料。 本節所討論的主題包括: • 滑動窗口協定 • 傻瓜視窗症候群

  21. 請注意: 滑動窗口讓傳輸更有效率, 也用來控制資料的流量, 接收端不會因為接收太多的資料而無法消化, TCP 的滑動窗口是以位元組為計算單位。

  22. 範例3 如果接收端 ( B 主機 ) 擁有一個5,000位元組大的緩衝器,並且已接收 1,000 個位元組的資料但還沒有處理。請問A 主機之接收端窗口 ( rwnd )的值為何? 解答 rwnd = 5,000 – 1,000 = 4,000。B 主機在它的緩衝器滿出來之前還可以接收 4,000 個位元組。B 主機會將這個值公布在下一個要傳給 A 的區段中。

  23. 範例4 如果 rwnd 的值為3,000個位元組,而 cwnd 的值為 3,500個位元組,請問 A 主機之窗口大小為何? 解答 窗口大小為 rwnd 和 cwnd 中較小的那個值,所以等於 3,000 個位元組。

  24. 範例5 • 圖12.21 說明了一個虛構的滑動窗口之範例。 • 傳送端已經傳送到第 202 號的位元組資料。我們假設 cwnd 等於 20 ( 實際上這個值可能等於上千個位元組 )。 • 接收端已經傳送一個 200 號的回應號碼,以及 9 個位元組的 rwnd ( 實際上這個值可能等於上千個位元組 )。 • 傳送端窗口大小為 rwnd 和 cwnd 中較小的那個值,所以等於 9 個位元組。 • 第 200 到 202 號的位元組資料已經傳送,但是尚未被回應。第 203 到 208 號的位元組資料可以被傳送,而不需要擔心有關回應與否。第 209 號以上的位元組資料還不能被傳送。

  25. 範例 6 在圖12.21中,傳送端接收到一個封包,此封包內含有 202 號的回應號碼及 rwnd=9 等資訊。主機已經將 203、204 和205 號的位元組資料傳送出去。cwnd 的值仍然是 20,請說明新的窗口情況。 解答 圖12.22 說明了新的窗口。注意,在這種情況下,窗口左邊所關閉的位元組個數與右邊所開啟的位元組個數是相同的,窗口的大小並沒有被更動。而 202 號的回應號碼表示第 200和 201 號的位元組資料已經被接收,傳送端不需要再去擔心它們了,窗口可以滑過它們了。

More Related