TCP連接建立過(guò)程
在TCP/IP協(xié)議中,TCP協(xié)議提供高可靠的連接服務(wù),采用三次握手建立TCP連接。
第一次握手:在TCP建立連接時(shí),Client端先發(fā)送一個(gè)帶有syn標(biāo)志的封包到Server端,表示請(qǐng)求連接,Client端進(jìn)入SYN_SEND狀態(tài),等待Server端確認(rèn)。
第二次握手:在Server端收到Client端的syn請(qǐng)求封包后,此時(shí)Server端向Client端響應(yīng)一個(gè)帶有syn及ack標(biāo)志的封包,表示Server端接受Client的連接請(qǐng)求,此時(shí)Server端進(jìn)入SYN_RECV狀態(tài)。
第三次握手:當(dāng)Client端收到Server端syn及ack標(biāo)志的封包后,Client端向Server發(fā)送一個(gè)帶有ack標(biāo)志的封包,表示Client 與Server端的TCP連接正式建立。同時(shí)Client端和Server進(jìn)入ESTABLISHED狀態(tài),完成三次握手。
TCP終止連接過(guò)程
第一次握手:當(dāng)Client端對(duì)Server端完成會(huì)話后,Client端會(huì)對(duì)Server端發(fā)送一個(gè)帶有fin標(biāo)志的封包,向Server端提出連接終止請(qǐng)求。
第二次握手:當(dāng)Server端收到Client端的fin標(biāo)志的封包后,立即向Client端響應(yīng)一個(gè)帶有ack標(biāo)志的封包,確認(rèn)序號(hào)設(shè)置為收到序號(hào)加1。
第三次握手:Server端關(guān)閉Client端的連接,并發(fā)送一個(gè)fin標(biāo)志的封包給Client端。
第四次握手:當(dāng)Client端收到Server端的ack標(biāo)志的封包后,會(huì)響應(yīng)一個(gè)帶有ack標(biāo)志的封包給Server端來(lái)結(jié)束連接。在Server端收到Client端的ack的封包后,則Server端正式斷開(kāi)與Client端的TCP連接。