三次握手的第三次握手傳送ACK能攜帶資料嗎?如何攜帶?怎樣體現的呢?

時間 2021-05-30 12:18:34

1樓:呼延灼

握手時傳送的也是標準的TCP包,只是標誌位的區別,當然可以和普通的TCP包一樣攜帶資料。

另外TCP最後一次傳送資料時還可以把FIN 標誌位置為1,這樣斷開連線時又省了一次。

2樓:

TCP客戶端和伺服器之間,建立TCP連線要經過三次報文傳輸。

詳細的過程如下圖所示。

連線的主動發起者是客戶端,連線的接收方是伺服器。

第三次握手,是客戶端為了告訴伺服器,我已經收到了你傳送的SYNC + ACK報文,此時這個報文只帶ACK標誌,SYNC標誌沒有。

客戶端傳送這個報文之後,就進入established狀態了。伺服器收到這個報文之後,也進入established狀態。

TCP標準規定,第三次握手的報文,可以攜帶資料。因為此時客戶端已經處於established狀態了呀。

假設第三次握手的報文的seq是x+1,

如果有攜帶資料,下次客戶端傳送的報文,seq=伺服器發回的ACK號。

如果沒有攜帶資料,那麼第三次握手的報文不消耗seq。下次客戶端傳送的報文,seq序列號還是和第三次握手的報文的seq一樣,為x+1。這是因為,seq和報文中的資料在整條資料流流中的位置是一一對應的。

如果報文沒有攜帶資料,那麼seq當然也不會更新。

3樓:zzz EVA

可以攜帶,親測有效。Windows上呼叫ConnectEx來建立連線併發資料。此時第三次握手會是乙個普通的資料報,加上TCP頭里ACK標誌等資訊。

在tcp連線的三次握手 丟包?

SourceGarden 不知道叫啥 今天剛好遇到了這種情況,接著你的描述,補充下具體問題截圖 Client 請求發起方 Server 請求接收方 整個流情況 參考文章 What if a TCP handshake segment is lost?In other words,if the ACK...

明天考科三第三次?

早夕會 上午剛考完科三 第三次,前兩次掛了 雖然是第二把過的,雖然第二把還是90低分飄過,好歹算是過了,了了這個心結 明天就要約科四了 昨晚上巨緊張,所以到知乎上到處搜科三緊張,科三第三次balabala,不對,確切的說從我約考成功後就開始緊張了,因為我是那種比較容易緊張的人,而且今天去考的時候抽到...

TCP三次握手, 為什麼不可以反轉一下三次揮手實現揮手功能

首先晨晨答主的回答是基本正確的,在揮手階段,假設客戶端首先提出揮手,即對於客戶端到服務端的連線已經關閉,此時成為乙個單向連線 half duplex 如果伺服器段將ACK 第二次揮手 和FIN 第三次揮手 合併成一塊發過去的話,這就意味著一方關閉,另一方也要被迫關閉,同時代表若此時有伺服器繼續單向的...