關於tcp握手的理解

2021-08-19 23:48:10 字數 1208 閱讀 7784

tcp

三次握手。

關於tcp

三次握手舉例。

首先,在嘗試建立鏈結時,

tcp client

先傳送請求

syn至

server

,這是第一次。

然後server

收到此syn

,並進行

ack相應,並傳送

syn至

client

確認對方狀態,這是第二次。

最後client

收到server

的syn

並返回ack

,這是第三次,然後資料就開始傳輸。

總結一下其實就是,

client

syn)(第一次)

server

:我現在是可以的(

ack)你呢(

syn)(第二次)

client

:我也可以(

ack)(第三次)

在建立連線時是三次握手,可是在關閉連線時是四次握手。(四次揮手)

之所以這樣的理由是server並不能保證即時關閉,例如還在提供資料。

因此,此時。變成了這樣:

client:你準備好關閉了嗎(syn)(第一次)

server:收到了你的訊息可是還需要準備一下(ack)(第二次)

client:(等待)

(一段時間後,server傳送完了報文)

server:現在我準備好了(syn)(第三次)

client:好的,那就斷開連線(ack)(第四次)

關於為什麼要使用三次握手,或者為什麼三次握手顯示了tcp協議可靠性?

這一點我們可以通過假設舉例來看。

因為網路存在擁塞,丟包等複雜的情況,因此,很有可能在連線時client發向server的syn被阻塞了。

而client因為長時間沒有收到server的ack於是重新傳送syn請求,可能就連上了或者怎麼樣。

自此第一次發出的syn被client遺忘了,也就是,client可能已經不想連線了。

若干時間後,阻塞的syn終於到達了server,於是server迴響ack,如果不是三次握手,則本次傳送後,server預設與client已經建立了連線,但client本身可能毫不知情。於是server為了等待他所認為可能存在的資料互動,與維護他認為存在的資料傳輸通道付出了本不必付出的資源和額外的等待時間。

這就是不採用三次的壞處,或者說是三次握手所避免的情況。

TCP握手揮手重點理解

第一次握手客戶端會動態生成isn作為seq num發出,目的是為了防止和其他連線的五元組衝突,發出去以後客戶端進入乙個syn sent狀態 第二次握手服務端會返回報文ack位和syn位都置為1,相當於兩個報文融合在一起,會進入乙個syn recv狀態,他會把這個連線放入乙個半連線佇列中 第三次握手客...

關於TCP三次握手

tcp syn ack fin rst psh urg簡析 三次握手three way handshake 乙個虛擬連線的建立是通過三次握手來實現的 1.b syn a 假如伺服器a和客戶機b通訊.當a要和b通訊時,b首先向a發乙個syn synchronize 標記的包,告訴a請求建立連線.注意 ...

關於TCP協議的理解

tcp協議在計算機網路中的地位十分的高,也正因為如此不管是研究人員還是開發者,對tcp的理解有助於工作的提公升。本文將根據自己的理解,介紹tcp協議的相關知識。為什麼說tcp是可靠的?tcp transfer control protocol 傳輸控制協議,很明顯就是五層網路結構或者iso七層結構中...