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