TCP三次握手

握手過程:
第一次握手:客戶端給服務(wù)端發(fā)一個 SYN 報文,并指明客戶端的初始化序列號 ISN?。此時客戶端處于 SYN_Send狀態(tài)。
?
第二次握手:服務(wù)器收到客戶端的 SYN 報文之后,會以自己的 SYN 報文作為應(yīng)答,并且也是指定了自己的初始化序列號 ISN(s),同時會把客戶端的 ISN + 1 作為 ACK 的值,表示自己已經(jīng)收到了客戶端的 SYN,此時服務(wù)器處于 SYN_REVD的狀態(tài)
?
第三次握手:客戶端收到 SYN 報文之后,會發(fā)送一個 ACK 報文,當(dāng)然,也是一樣把服務(wù)器的 ISN + 1 作為 ACK 的值,表示已經(jīng)收到了服務(wù)端的 SYN 報文,此時客戶端處于 establised狀態(tài)。
服務(wù)器收到 ACK 報文之后,也處于 establised 狀態(tài),此時,雙方以建立起了鏈接。
?
通俗點(diǎn)說就是:
?
客戶端想要跟服務(wù)端進(jìn)行通信,首先告知服務(wù)端一聲:“我想跟你通信”
服務(wù)端收到客戶端的連接請求,回一個確認(rèn)消息:“我知道了,你現(xiàn)在能連嗎?”
客戶端收到服務(wù)端的確認(rèn)消息后,禮貌的告知一下服務(wù)端:“好的,咱們開始通信吧”
傳輸層結(jié)束
這些數(shù)據(jù)通過傳輸層發(fā)送,比如tcp協(xié)議。所以它們會被送到傳輸層處理,在這里報文打上了傳輸頭的包頭,主要包含端口號,以及tcp的各種制信息,這些信息是直接得到的,因?yàn)榻涌谥行枰付ǘ丝?。這樣就組成了tcp的數(shù)據(jù)傳送單位segment。tcp是一種端到端的協(xié)議,利用這些信息,比如tcp首部中的序號確認(rèn)序號,根據(jù)這些數(shù)字,發(fā)送的一方不斷的進(jìn)行發(fā)送等待確認(rèn),發(fā)送一個數(shù)據(jù)段后,會開啟一個計數(shù)器,只有當(dāng)收到確認(rèn)后才會發(fā)送下一個,如果超過計數(shù)時間仍未收到確認(rèn)則進(jìn)行重發(fā),在接受端如果收到錯誤數(shù)據(jù),則將其丟棄,這將導(dǎo)致發(fā)送端超時重發(fā)。通過tcp協(xié)議,控制了數(shù)據(jù)包的發(fā)送序列的產(chǎn)生,不斷的調(diào)整發(fā)送序列,實(shí)現(xiàn)流控和數(shù)據(jù)完整。然后待發(fā)送的數(shù)據(jù)段發(fā)送到網(wǎng)絡(luò)層。
網(wǎng)絡(luò)層開始