TCP 傳輸控制協議

2021-10-08 18:59:36 字數 2047 閱讀 9764

0、tcp傳輸控制協議;

1、tcp連線的建立與終止;

2、tcp的互動資料流;

3、tcp的成塊資料流;

4、tcp超時與重傳;

5、tcp堅持定時器;

6、tcp保活定時器;

7、tcp的未來和效能;

(零)tcp傳輸控制協議

1、tcp和udp都使用相同的網路層ip,tcp卻向應用層提供與udp完全不同的服務。tcp提供一種面向連線、可靠的位元組流服務;

2、tcp通過以下方式提供可靠性:

1)應用資料被分割成tcp認為最適合傳送的資料塊。這和udp完全不同,應用程式產生的資料報長度將保持不變。由tcp傳遞給ip的資訊單位稱為報文段或段(segment)。tcp可以 確定報文段的長度。

2)當tcp傳送乙個段後,它啟動乙個定時器,等待目的端確認收到這個報文段。如果不能及時收到乙個確認,將重發這個報文段。tcp協議中自適應的超時及重傳策略。

3)tcp收到發自tcp連線另一端的資料,它將傳送乙個確認。這個確認不是立即傳送,通常將推遲幾分之一秒。

4)tcp將保持它首部和資料的檢驗和。這是乙個端到端的檢驗和,目的是檢驗資料在傳輸過程中的任何變化。如果收到段的檢驗和有差錯,tcp將丟棄這個報文段和不確認收到此報文段(希望發端超時並重發);

5)既然tcp報文段作為ip資料報來傳輸,而ip資料報的到達可能會失序,因此tcp報文段的到達也可能會失序。如果必要,tcp將對收到的資料進行重新排序,將收到的資料以正確的順序交給應用層;

6)既然ip資料報會發生重複,tcp的接收端必須丟棄重複的資料;

7)tcp還能控制流量控制。tcp連線的每一方都有固定大小的緩衝空間。tcp的接收端只允許另一端傳送接收端緩衝區所能接納的資料。這將防止較快主機致使較慢主機的緩衝區溢位;

3、tcp首部

1)每個tcp段都包含源端和目的端的埠號,用於尋找發端和收端應用程序。這兩個值加上ip首部中的源端ip位址和目的端ip位址唯一確定乙個tcp連線;

乙個ip位址和乙個埠號也稱為乙個插口(socket)。最早出現在tcp規範中,後來作為變成介面,插口對

(socket pair)(包含客戶ip位址、客戶端口號、伺服器ip位址和伺服器端口號的四元組)可以唯一確定網際網路中每個tcp連線對方;

2)tcp提供了一種可靠的面向連線的位元組流運輸層服務,tcp將使用者資料打包構成報文段,傳送資料後啟動乙個定時器,另一端對收到的資料進行確認,對失序的資料重新排序,丟棄重複資料,tcp提供端到端的流量控制,並計算和驗證乙個強制性的端到端的檢驗和;

在應用程式中,有telnet,rlogin,ftp和smtp都使用tcp;

(一)tcp連線的建立與終止

三次握手:

1)請求端(客戶端)傳送乙個syn段指明客戶打算連線的伺服器端口,,以及初始序號(isn),這個syn段為報文段1。

2)伺服器發回包含伺服器的初始序號的syn報文段(報文段2)作為應答。同時,將確認序號設定為客戶的isn加1以對客戶端的syn報文段進行確認。乙個syn將占用乙個序號。

3)客戶必須將確認序號設定為伺服器的isn加1以對伺服器的syn報文段進行確認(報文段3);

注意:當一端為建立連線而傳送它的syn時,它為連線選擇乙個初始序號。isn(初始序號)隨時間而變化,因此每個連線都將具有不同的isn。isn初始序號可以看作乙個32位元位的計數器,每4ms加1。這樣選擇序號的目的在於防止網路中被延遲的分組在以後又被傳送,而導致某個連線的以防對它作錯誤的解釋。

網路在傳送tcp資料報的時候遵循nagle演算法:

用於自動連線許多的小緩衝器訊息;這一過程通過減少必須傳送包的個數來增加網路軟體系統的效率;

nagle演算法規則:

(1)如果包長度到達mss,則允許傳送;

(2)如果該包含有fin,則允許傳送;

(3)設定tcp_nodelay選項,則允許傳送;

int op = 1 ;

setsockopt(fd,sol_socket,so_nodelay,op,sizeof(op)) ;

(4)為設定tcp_cork選項時,若所有發出去的小資料報(包長度小於mss)均被確認,則允許傳送;

(5)上述條件都未滿足,但發生了超時(一般為200ms),則立即傳送;

TCP 傳輸控制協議

推薦 tcp ip 簡直是程式設計師的福音 tcp 協議是 面向連線的,可靠的,流傳輸,協議。流 是指 不間斷 的資料結構,可以想象成排水管道中的水流。當應用程式採用 tcp 傳送訊息的時候,雖然可以保證傳送的順序,但是還是猶如沒有任何間隔的資料流,傳送給接收端。可以這麼理解 在傳送端,應用程式傳送...

TCP傳輸控制協議

tcp是網際網路中的傳輸層協議,使用三次握手協議建立連線。當主動方發出syn連線請求後,等待對方回答syn ack 1 並最終對對方的 syn 執行 ack 確認。這種建立連線的方法可以防止產生錯誤的連線,tcp使用的流量控制協議是可變大小的滑動視窗協議 tcp三次握手的過程如下 客戶端傳送syn ...

tcp傳輸控制協議

tcp服務 tcp是面向連線的,提供可靠的服務,對資料有校驗機制。tcp的首部 其格式如下 如上tcp的報文是tcp的首部和tcp的資料。tcp的首部是有源埠和目的埠,這個值和ip首部的源ip和目的ip構成了tcp唯一確定的乙個連線。序號是用來標示從tcp發端向tcp收端傳送的資料位元組。當建立乙個...