TCP(Transmission Control Protocol) 傳輸控制協(xié)議
TCP是主機(jī)對(duì)主機(jī)層的傳輸控制協(xié)議,提供可靠的連接服務(wù),采用三次握手確認(rèn)建立一個(gè)連接:
TCP的6種標(biāo)志位:URG、ACK、PSH屈扎、RST、SYN撩匕、FIN
URG:表示緊急
ACK:表示響應(yīng)
PSH:表示有數(shù)據(jù)
RST:表示重置
SYN:表示建立連接
FIN:表示關(guān)閉連接
TCP的三次揮手過(guò)程
第一次握手:建立連接(默認(rèn)客戶端的端口是CLOSED狀態(tài)鹰晨,建立連接的時(shí)候主動(dòng)打開打開),客戶端發(fā)送SYN(SYN=1止毕,seq=x)包到服務(wù)器模蜡,并進(jìn)入SYN_SENT狀態(tài),等待服務(wù)器確認(rèn)扁凛。
第二次握手:服務(wù)器收到SYN包(默認(rèn)服務(wù)器的端口是CLOSED狀態(tài)忍疾,它會(huì)不定時(shí)地被動(dòng)打開端口,來(lái)等待客戶端的請(qǐng)求谨朝,此時(shí)端口為L(zhǎng)ISTEN狀態(tài))卤妒,必須確認(rèn)客戶的SYN(SYN=1,ACK=1字币,seq=y,ack=x+1),此時(shí)服務(wù)器進(jìn)入SYN_RECV狀態(tài)则披。
第三次握手:客戶端收到服務(wù)器的SYN+ACK包,向服務(wù)器發(fā)送確認(rèn)ack=y+1包洗出,此包發(fā)送完畢士复,客戶端和服務(wù)器都進(jìn)入ESTAB_LISHEN狀態(tài)。
完成三次握手之后翩活,客戶端和服務(wù)端可以進(jìn)行通信阱洪。
TCP的四次揮手過(guò)程
第一次揮手:客戶端給服務(wù)器發(fā)送TCP包,用來(lái)關(guān)閉客戶端到服務(wù)器的數(shù)據(jù)傳送隅茎。將標(biāo)志位FIN和ACK置為1澄峰,序號(hào)為seq=u嫉沽,確認(rèn)序號(hào)為ack=1辟犀。
第二次揮手:服務(wù)器收到FIN后,發(fā)回一個(gè)ACK(標(biāo)志位ACK=1),確認(rèn)序號(hào)為收到的序號(hào)seq=v绸硕。序號(hào)為收到的確認(rèn)序號(hào)ack=u+1堂竟。
第三次揮手:服務(wù)器關(guān)閉與客戶端的連接,發(fā)送一個(gè)FIN玻佩。標(biāo)志位FIN和ACK置為1出嘹,序號(hào)為seq=w,確認(rèn)序號(hào)為ack=u+1咬崔。
第四次揮手:客戶端收到服務(wù)器發(fā)送的FIN之后税稼,發(fā)回ACK確認(rèn)(標(biāo)志位ACK=1),確認(rèn)序號(hào)為收到的序號(hào)seq=u+1,序號(hào)為收到的確認(rèn)序號(hào)ack=w+1烦秩。
TCP 協(xié)議中的三次握手和四次揮手的整個(gè)過(guò)程
客戶機(jī)端的三次握手和四次揮手
服務(wù)器端的三次握手和四次揮手
有限狀態(tài)機(jī)FSM:Finite State Machine 說(shuō)明
** CLOSED ** 沒(méi)有任何連接狀態(tài)
** LISTEN** 偵聽(tīng)狀態(tài),等待來(lái)自遠(yuǎn)方TCP 端口的連接請(qǐng)求
** SYN-SENT ** 在發(fā)送連接請(qǐng)求后郎仆,等待對(duì)方確認(rèn)
** SYN-RECEIVED ** 在收到和發(fā)送一個(gè)連接請(qǐng)求后只祠,等待對(duì)方確認(rèn)
ESTABLISHED 代表傳輸連接建立,雙方進(jìn)入數(shù)據(jù)傳送狀態(tài)
** FIN-WAIT-1** 主動(dòng)關(guān)閉, 主機(jī)已發(fā)送關(guān)閉連接請(qǐng)求扰肌,等待對(duì)方確認(rèn)
** FIN-WAIT-2 ** 主動(dòng)關(guān)閉, 主機(jī)已收到對(duì)方關(guān)閉傳輸連接確認(rèn)抛寝,等待
對(duì)方發(fā)送關(guān)閉傳輸連接請(qǐng)求
** TIME-WAIT ** 完成雙向傳輸連接關(guān)閉,等待所有分組消失
** CLOSE-WAIT** 被動(dòng)關(guān)閉, 收到對(duì)方發(fā)來(lái)的關(guān)閉連接請(qǐng)求曙旭,并已確認(rèn)
** LAST-ACK 被動(dòng)關(guān)閉, 等待最后一個(gè)關(guān)閉傳輸連接確認(rèn)盗舰,并等待所
有分組消失
** CLOSING 雙方同時(shí)嘗試關(guān)閉傳輸連接,等待對(duì)方確認(rèn)