tcp報文段格式圖:
序號:seq序號,用來標識從tcp源端向目的端傳送的位元組流,發起方傳送資料時對此進行標記。
確認號:ack序號,只有ack標誌位為1時,確認序號欄位才有效,ack=seq+1。
標誌位:共6個,即urg、ack、psh、rst、syn、fin等.
ack:確認序號有效。
syn:發起乙個新連線。
fin:釋放乙個連線。
三次握手:tcp協議是穩定的、可靠的、面向連線的協議,在建立tcp連線的時候需要經過三次握手的過程
1.client端:傳送syn(標誌位syn=1)到服務端,表示請求互聯(該報文段攜帶了乙個序列號seq);
2.server端:當接受到syn時,表明有客戶端在請求連線。這時向client端傳送syn+ack,標誌位syn=1,ack=1(該報文段攜帶了確認號ack=seq+1,同時也有乙個序列號seq`);
3.client端:在接受到syn+ack後,再向server端傳送ack,標誌位ack=1(該報文段攜帶了確認號ack=seq`+1)
幫助理解的例子:
client: 你聽得見我說話嗎?
server:嗯,聽得見。
你聽得見我說話嗎?
client:我也能聽見。
成功建立連線。
四次揮手:
1.client端:傳送乙個fin.
2.server端:在接受到fin之後,表明客戶端想斷開連線了。這時先傳送ack回客戶端,客戶端在接受到後將處於fin-wait狀態。
3.server端:再傳送fin到客戶端。
4.client端:傳送ack到服務端,之後客戶端進入time-wait狀態。如果client端等待了2msl後依然沒有收到回覆,則證明server端已正常關閉,那好,我client端也可以關閉連線了
幫助理解的例子:
1.client端:我不想說話了。
2.server端:好的,我知道了,但是我還有些話沒有說完,稍等哈
3.server端:我說完了
4.client端:好的。(為什麼會有這一次握手呢?因為客戶端不相信網路,怕server端不知道要關閉,所以傳送ack後進入time_wait狀態,如果server端沒有收到ack則可以重傳)
tcp協議三次握手 四次揮手
起初,伺服器和客戶端都為closed狀態。在通訊開始前,雙方都得建立各自的傳輸控制塊 tcb 伺服器建立完tcb後遍進入listen狀態,此時準備接收客戶端發來的連線請求。第一次握手 客戶端向服務端傳送連線請求報文段。該報文段的頭部中syn 1,ack 0,seq x。請求傳送後,客戶端便進入syn...
TCP協議三次握手四次揮手
1.什麼是tcp協議 tcp協議是作用在傳輸層的傳輸控制協議 tcp 提供一種面向連線的 可靠的位元組流服務 在乙個 tcp 連線中,僅有兩方進行彼此通訊。廣播和多播不能用於 tcp tcp 使用校驗和,確認和重傳機制來保證可靠傳輸 tcp 給資料分節進行排序,並使用累積確認保證資料的順序不變和非重...
TCP協議三次握手四次揮手
tcp有哪些過程?a.建立連線 b.資料傳輸 c.終止連線 tcp三次握手和四次揮手的過程?syn,ack是什麼?syn 請求建立連線 含有同步序列號的標誌位的資料,tcp建立連線時,將這個 位 置1 ack 針對syn的確認應答 fin是什麼?fin 傳送端完成傳送任務 位 當tcp完成資料傳輸需...