標籤:
傳輸控制通訊協定(Transmission Control Protocol)概念
一種連線導向的、可靠的、基於位元組流的傳輸層通訊協定,由IETF的RFC 793定義。在簡化的電腦網路OSI模型中,它完成第四層傳輸層所指定的功能,使用者資料包通訊協定(UDP)是同一層內另一個重要的傳輸協議。
主要特點
(1)TCP是連線導向的運輸層協議。這就是說,應用程式在使用TCP協議之前,必須先建立TCP協議。在傳送資料完畢後,必須釋放已經建立的TCP串連。類似於“打電話”,需要先撥號建立串連,通話完之後要掛機釋放串連。
(2)每一條TCP串連只能有兩個端點,每一條TCP串連只能是點對點的(一對一)。
(3)TCP鈹銅可靠交付的服務,通過TCP串連傳送的資料,無差錯,不丟失,不重複,且按順序到達。
(4)TCP提供全雙工系統通訊。TCP允許通訊雙發的應用進程在任何時候都發送資料。
(5)面向位元組流。TCP中“流”(stream),指的是流入到進程或從進程流出的位元組序列。“面向位元組流”的含義是:雖然應用程式和TCP的互動式一次一個資料區塊(大小不等),但TCP把應用程式交下來的資料看成僅僅是一連串的無結構的位元組流。
TCP的串連
TCP把串連作為最基本的抽象。
TCP串連的端點叫做通訊端(socket)或插口。根據RFC 793的定義:連接埠號碼拼接到(concatenated with)IP地址機構稱通訊端。
因此就有 通訊端 socket = {IP地址 : 連接埠}
因此每一條TCP串連唯一地被通訊兩端的兩個通訊端(端點)所確定。
停止等待協議(stop-and-wait)
停止等待就是每發送完一個分組就停止發送,等待對方的確認。在收到確認後再發送下一個分組。
1.無差錯情況
如a所示:A發出分組M1完就暫停發送,等待B的確認。B收到了M1就向A發送確認。A在收到了對M1的確認後,就再發送下一個分組M2。以此下去。
2.出現差錯
如b所示:B在接受到M1時檢測到了差錯,就丟棄M1,並什麼也不做。A只要超過了一段時間仍然沒收到確認,就認為剛才的分組丟失了,就重傳之前的分組,這就叫逾時重傳。
3.確認丟失和確認遲到
如a所示:B所發送的對M1的確認丟失了,A在逾時重傳的時間內沒有收到確認,但無法知道是自己發送的分組出錯,丟失,或者是B發送的確認丟失了,因此A會重傳這個M1,當B收到的重傳M1時,會有一下兩個動作:(1)不向上層交付,丟掉這個重複的分組。(2)向A發送確認。
如B所示,B確認的分組M1遲到了,在逾時重傳的時間內未返回A,因此A會重傳M1,之後當A收到了遲到的確認分組,就會丟棄重複的M1,不向上層交付。
4.總結
向上述的這種可靠傳輸協議常稱為自動重傳請求ARP,優點是簡單,但是缺點也很明顯,就是通道利用率過低。
電腦網路(7)-----TCP協議概述