網路基礎 TCP協議

2021-09-23 17:25:10 字數 2490 閱讀 4165

1、什麼是tcp協議:

tcp是傳輸層最重要和最常用的協議;它提供一種面向連線的、可靠的、位元組流資料傳輸服務。

2、tcp協議的特性:

3、tcp協議的功能:

1、tcp建立連線:

由客戶端主動發起連線

三次握手建立連線

半開連線:一般將伺服器收到syn而未收到客戶端的ack時的連線狀態稱為半開連線。

為什麼建立連線要三次握手?

如果是兩次握手的話,就有可能導致失效的連線請求又傳送到伺服器端(請求報文因為在網路中阻塞,如果客戶端將其丟棄,重新發起新連線請求,經過一段時間,阻塞的請求報文也到達了伺服器,伺服器分不清這是否為有效的請求報文,所以也會響應,這就導致重複連線的問題);為了實現可靠傳輸,傳送方和接收方始終需要同步( synchronize )序號,所以就有了三次握手。

2、tcp關閉連線:

客戶端與伺服器雙方都可以關閉連線,一般情況下是客戶端發起

四次揮手關閉連線

半關閉

tcp提供連線的一方在結束它的傳送後還能接受來自另一方資料得能力,這就是所謂的半關閉。

為什麼關閉連線是四次揮手?三次可以嗎?

確保資料能夠完整傳輸:當被動方收到主動方的fin報文通知時,它僅僅表示主動方沒有資料再傳送給被動方了。但未必被動方所有的資料都完整的傳送給了主動方,所以被動方不會馬上關閉socket,它可能還需要傳送一些資料給主動方後,再傳送fin報文給主動方,告訴主動方同意關閉連線,所以這裡的ack報文和fin報文多數情況下都是分開傳送的。

三次揮手的情況是,將四次揮手中的fin段與ack段合併成乙個乙個資料段傳送給主動關閉方。

3、tcp連線復位:

fin標誌是正常關閉tcp連線,還可以使用rst標誌非正常關閉連線,tcp首部中的rst標誌就是用於復位的,復位主要用於快速結束連線。

tcp連線復位(非正常關閉)的幾種情形:

1. 拒絕連線請求:請求連線不存在的埠(或目標埠沒開啟)

2. 異常關閉連線:tcp連線的某一方因為特殊原因(突然斷電等)突然斷開連線,另一方就會異常關閉

4、tcp狀態轉換:

time_wait狀態:

設定time_wait狀態的意義:

5、序列號與確認號機制:

tcp採用的可靠性技術主要包括:差錯控制、流量控制、擁塞控制。

1、tcp差錯控制

檢查和糾正差錯的方法有校驗和、確認、重傳

校驗和:資料損壞可以通過tcp的校驗和檢測出來;若檢測出報文遭到破壞,則將其丟棄。

確認:tcp採用確認來證實收到了報文段。

重傳:當某個報文段損壞、丟失、或者被延遲,就需要重傳。一般有超時重傳和快重傳兩種機制。

2、tcp流量控制

通過滑動視窗機制實現。

滑動視窗機制:通過傳送方視窗和接收方視窗的配合來完成傳輸控制。

3、tcp擁塞控制

4中機制分別是慢啟動、擁塞避免、快重傳、快恢復。

慢啟動:慢啟動演算法就是在主機剛開始傳送資料報的時候先探測一下網路的狀況,如果網路狀況良好,傳送方每傳送一次文段都能正確的接受確認報文段。那麼就從小到大的增加擁塞視窗的大小,即增加傳送視窗的大小(按指數增長)。當視窗大小到達慢啟動最大閾值時停止進入下一階段。

擁塞避免:當擁塞視窗大小達到慢啟動閾值時進入此階段,這個階段的視窗大小是按線性(加法)規律增長。

快重傳:連續收到3個相同的ack。tcp利用3個相同的ack來判定資料報的丟失,此時進行快速重傳。

快恢復:當收到3個重複ack時,tcp最後進入的不是擁塞避免階段,而是快速恢復階段。

網路基礎 TCP協議簡介

tcp協議全稱 傳輸控制協議 顧名思義,要對資料的傳輸有乙個詳細的控制。tcp協議段格式 1.16位埠號 port number 源埠號和目的埠號 2.32位序號 sequence number 第乙個 序號值被初始化為某個隨機值isn initial sequence number tcp報文是位...

網路 TCP協議!!

源埠位址和目的位址 表示資料從哪個程序來,哪個程序去 32位序號 每個tcp資料報傳送出去,需要序號進行編號,方便接受端正確的識別包的序號 32位確認序號 每個包傳送出去需要對端確認,確認序號為了給對端傳送確認序號 4位tcp報頭長度 用來表示tcp首部有多少個32bit位 4位元組 tcp最大長度...

TCP網路協議

tcp全稱為 傳輸控制協議 tcp是面向連線,保證可靠性,面向位元組流的一種網路傳輸協議。tcp協議段格式 1.源 目的 埠號 表示資料是從哪個程序來,到哪個程序去。2.32位序號與確認序號 tcp會話的每一端都包含乙個32位 bit 的序列號,該序列號被用來跟蹤該端傳送的資料量。每乙個包中都包含序...