今天給大家分享網(wǎng)絡(luò)協(xié)議面試中最有可能會被問到的幾個問題,大家可以收藏起來,以防以后面試中被問到。
第一個最常見的面試問題
請詳細(xì)描述一下“三次握手”:
TCP協(xié)議建立鏈接需要通過三次握手,讓傳輸更加可靠。
來,接下來,小編通過一幅圖來帶大家直觀的感受一下,三次握手的具體流程
我們用文字來描述一下這個過程:
第一次握手
客戶端向服務(wù)器發(fā)出請求連接,這時報文首部中的同部位為SYN=1,同時隨機(jī)生成初始序列號為 seq=x,這是第一次握手,表示客戶端想和服務(wù)端建立連接。
第二次握手
服務(wù)端收到客戶端請求后,同意接受連接,會向客戶端返回確認(rèn)報文。確認(rèn)報文中應(yīng)該 ACK=1,SYN=1,確認(rèn)號是 ack=x+1,同時為自己隨機(jī)初始化一個序列號 seq=y。在返回確認(rèn)報文的同時,也會詢問客戶端是否準(zhǔn)備好接受。這是第四次握手。
第三次握手
客戶端收到服務(wù)端返回的確認(rèn)后,還要向服務(wù)器給出確認(rèn),確認(rèn)已經(jīng)準(zhǔn)備好接受。確認(rèn)報文的 ACK=1,ack=y+1,此時,TCP 正式連接建立。這是第三次握手。
什么,是不是有小伙們還是不太理解三次握手是什么意思,哈哈哈,貼心的小編已經(jīng)發(fā)現(xiàn)了,所以小編再通過一個非常浪漫的案例給大家介紹一下,三次握手到底是什么意思。來,我們來看一下這幅圖
哈哈哈,是不是很浪漫,小編用文字來描述一下,tcp的三次握手可以看成男生追求女生的三次握手。
第一次握手
校草向校花表白,表示非常喜歡她,想跟她交往。
第二次握手
校花收到校草的表白后,給校草返回了一個信息,表示自己已經(jīng)收到他的表白了,其實自己也挺喜歡他的,也愿意接受和他交往。
第三次握手
校草收到校花的回信開心的飛起來了,知道校花接受了自己,也愿意跟自己交往。于是就再回信給校花,表示校花的回信,自己已經(jīng)收到了,自己也準(zhǔn)備好咱倆交往的規(guī)劃了。
到此為止,三次握手結(jié)束,校草與校花正式開始交往。
這里面,我們可以把校草看成客戶端,校花看成服務(wù)端。通過這個案例,小伙伴們是不是瞬間對三次握手有了更清楚的理解了。但是為什么TCP協(xié)議建立連接需要進(jìn)行三次握手呢?
為什么需要建立三次握手?
其實建立三次握手的主要目的是確保建立可靠的連接。不會因為網(wǎng)絡(luò)的一些問題導(dǎo)致這個傳輸過程失效。如果客戶端沒有正常回應(yīng),那么就可以直接結(jié)束連接過程了,以防止最終的連接失效。
好了,今天小編就分享到這了,這次主要分享的是面試中經(jīng)常會被問到的三次握手,其實呢,除了三次握手,還有四次斷開在面試中也會被經(jīng)常問到,如果有小伙伴想看四次斷開的,可以在評論區(qū)留言,小編就馬上安排更新。