TCP三次握手真的如教程裏面那麼簡單嗎?
上兩週在心理醫生的建議下調理了下生活和工作,耽誤了,把拖更的補上,抱歉。
本片文章篇幅有點短,但是也絲毫不會影響它成爲一篇高質量的文章。
引子:
記得最長聽到的一個面試一問一答是這樣的;
問:爲什麼tcp不用兩次握手?
答:防止已失效的連接請求又傳送到服務器端,因而產生錯誤
問:爲什麼不用四次握手?
答:因爲三次就已經能夠保證可靠性了。
如果我問你,tcp三次握手以後tcp連接就一定建立了嗎?
按照上面這些人提供的思路,答案必然是一定是。
其實上面這樣的回答是非常片面的,而且很大程度上是不正確的,不幸的是很多所謂技術牛人出的面試視頻都是用這樣的例子,而且市面上幾乎沒有任何人提出質疑。再工作時,利用閒餘時間在公司內網中搜了一下相關的資料,才找到了佐證我觀點的東西。
TCP三次握手的過程:
我們知道TCP通過三次握手建立通信。過程是這樣的:
請求端發送第一個syn報文頭給服務端;
服務端接收後,返回