1.三次揮手
1)第一次握手:建立連接時,客戶端向服務(wù)器發(fā)送SYN包(seq=x),請求建立連接,等待確認(rèn)
2)第二次握手:服務(wù)端收到客戶端的SYN包,回一個ACK包(ACK=x+1)確認(rèn)收到,同時發(fā)送一個SYN包(seq=y)給客戶端
3)第三次握手:客戶端收到SYN+ACK包,再回一個ACK包(ACK=y+1)告訴服務(wù)端已經(jīng)收到
4)三次握手完成,成功建立連接,開始傳輸數(shù)據(jù)
開始數(shù)據(jù)傳輸…文章來源:http://www.zghlxwxcb.cn/news/detail-844782.html
2.四次揮手
1)客戶端發(fā)送FIN包(FIN=1)給服務(wù)端,告訴它自己的數(shù)據(jù)已經(jīng)發(fā)送完畢,請求終止連接,此時客戶端不發(fā)送數(shù)據(jù),但還能接收數(shù)據(jù)
2)服務(wù)端收到FIN包,回一個ACK包給客戶端告訴它已經(jīng)收到包了,此時還沒有斷開socket連接,而是等待剩下的數(shù)據(jù)傳輸完畢(此時客戶端進入FIN-WAIT1狀態(tài))
3)服務(wù)端等待數(shù)據(jù)傳輸完畢后,向客戶端發(fā)送FIN包,表明可以斷開連接(客戶端進入FIN-WAIT2狀態(tài))
4)客戶端收到后,回一個ACK包表明確認(rèn)收到,等待一段時間(2MSL),確保服務(wù)端不再有數(shù)據(jù)發(fā)過來,然后徹底斷開連接文章來源地址http://www.zghlxwxcb.cn/news/detail-844782.html
3.拓展
說說 TCP 2次握手行不行?為什么要3次
- 為了實現(xiàn)可靠數(shù)據(jù)傳輸, TCP 協(xié)議的通信雙方, 都必須維護一個序列號, 以標(biāo)識發(fā)送出去的數(shù)據(jù)包中, 哪些是已經(jīng)被對方收到的。 三次握手的過程即是通信雙方相互告知序列號起始值, 并確認(rèn)對方已經(jīng)收到了序列號起始值的必經(jīng)步驟
- 如果只是兩次握手, 至多只有連接發(fā)起方的起始序列號能被確認(rèn), 另一方選擇的序列號則得不到確認(rèn)
到了這里,關(guān)于【計算機網(wǎng)絡(luò)經(jīng)典面試題】簡述 TCP 三次握手和四次揮手的過程的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!