TCP三次握手和四次 揮手是什么意思?這就產(chǎn)生了四次 揮手。為什么四次 揮手而不是三次?為什么四次 揮手而不是三次?3次握手和4次握手揮手如何回答面試被問(wèn)到3次握手和4次握手揮手時(shí),可以這樣回答:3次握手和4次握手揮手指的是TCP協(xié)議中建立和終止連接的過(guò)程,TCP 四次 揮手,是什么流程。
#三次握手客戶端向服務(wù)器發(fā)送SYN包,客戶端進(jìn)入SYN_SEND狀態(tài),服務(wù)器接收客戶端發(fā)送的包并返回ACK SYN包,服務(wù)器進(jìn)入SYN_RECV狀態(tài),客戶端接收服務(wù)器返回的包并發(fā)回ACK包,客戶端進(jìn)入建立狀態(tài)。當(dāng)服務(wù)器收到數(shù)據(jù)包時(shí),它也進(jìn)入建立狀態(tài)??蛻舳藸顟B(tài)為SYN_SENDESTABLISHED。服務(wù)器狀態(tài)為syn _ rcveestablished #四次揮手客戶端發(fā)送FIN包詢(xún)問(wèn)服務(wù)器是否可以斷開(kāi)連接。當(dāng)客戶端進(jìn)入FIN_WAIT_1狀態(tài)時(shí),服務(wù)器接收客戶端發(fā)送的數(shù)據(jù)包,返回ACK包;當(dāng)服務(wù)器進(jìn)入CLOSE_WAIT狀態(tài)時(shí),服務(wù)器向客戶端發(fā)送FIN包;當(dāng)服務(wù)器進(jìn)入LAST_ACK狀態(tài)時(shí),客戶端接收到服務(wù)器發(fā)送的包后返回ACK包,客戶端進(jìn)入TIME_WAIT狀態(tài)。服務(wù)器收到數(shù)據(jù)包后進(jìn)入關(guān)閉狀態(tài)??蛻舳藸顟B(tài):FIN_WAIT_1FIN_WAIT_2TIME_WAIT服務(wù)器狀態(tài):CLOSE_WAITLAST_ACKCLOSED。有什么不懂的可以去看看Linu。
由于TCP處于半封閉狀態(tài),假設(shè)A.B想要釋放連接,那么A向B發(fā)送連接釋放消息,B收到后發(fā)送確認(rèn)。此時(shí)A不發(fā)送數(shù)據(jù),但B如果發(fā)送數(shù)據(jù)仍然接受,這叫半封閉。然后B也給A發(fā)連接釋放消息,然后A發(fā)確認(rèn),所以是4次。1.建立連接時(shí):當(dāng)服務(wù)器處于LISTEN狀態(tài)時(shí),服務(wù)器收到SYN段的連接建立請(qǐng)求后,可以確認(rèn)ACK段和SYN段(ACK段),即確認(rèn)客戶端的連接建立請(qǐng)求;SYN段起同步作用),所以連接建立時(shí),可以將四次握手(即服務(wù)器第二次握手時(shí),ACK段和SYN段分開(kāi)發(fā)送)合并成三次握手。
TCP四次揮手,因?yàn)門(mén)CP連接是全雙工的,每個(gè)方向都必須單獨(dú)關(guān)閉。影響和意義:由于TCP連接是全雙工的,每個(gè)方向都必須單獨(dú)關(guān)閉。這個(gè)原理就是當(dāng)一方完成它的數(shù)據(jù)發(fā)送任務(wù)時(shí),可以發(fā)送一個(gè)FIN來(lái)終止這個(gè)方向的連接。接收到FIN只是表示這個(gè)方向沒(méi)有數(shù)據(jù)流,TCP連接在接收到FIN后仍然可以發(fā)送數(shù)據(jù)。最先關(guān)機(jī)的一方將執(zhí)行主動(dòng)關(guān)機(jī),另一方將執(zhí)行被動(dòng)關(guān)機(jī)。
(2)服務(wù)器B接收該FIN,并且它發(fā)送回ack以確認(rèn)序列號(hào)是接收的序列號(hào)加1(消息段5)。像SYN一樣,一個(gè)鰭會(huì)占用一個(gè)序列號(hào)。(3)服務(wù)器B關(guān)閉與客戶端A的連接,并向客戶端A發(fā)送FIN(消息段6)。(4)客戶端A發(fā)回ack消息進(jìn)行確認(rèn),并將確認(rèn)序列號(hào)設(shè)置為接收到的序列號(hào)加1(消息段7)。這是因?yàn)榉?wù)器處于LISTEN狀態(tài)的SOCKET在收到SYN消息的連接請(qǐng)求后,可以在一條消息中發(fā)送ACK和SYN(ACK起回復(fù)的作用,SYN起同步的作用)。
4、3次握手4次 揮手面試怎么回答面試中被問(wèn)到3次握手和4次握手揮手時(shí),可以這樣回答:3次握手和4次握手揮手指的是TCP協(xié)議中建立和終止連接的過(guò)程。三次握手是指客戶端發(fā)出連接請(qǐng)求,服務(wù)器確認(rèn)請(qǐng)求,最后客戶端再次確認(rèn)連接的過(guò)程。四次 揮手是指當(dāng)連接終止時(shí),客戶端和服務(wù)器分別發(fā)送連接關(guān)閉請(qǐng)求和確認(rèn)請(qǐng)求的過(guò)程。