30 秒內講明白 TCP 三次握手

2021-09-19 17:48:27 字數 1848 閱讀 2667

某四年經驗的同事,去一家包括老闆在內總人數只有 13 人的創業團隊,面試乙份移動端技術經理的職位。開始聊得還挺好的,涉及的不外乎何時何地專案上解決了哪些使用者痛點、開發過程中遇到過哪些問題、怎麼看待和診斷遇到過的問題、有沒有業餘的開源專案等等。

畢竟四年老手,面試前也有些準備,輕鬆地就答覆了前面這些疑問,只是沒想到,面試官最後丟擲這樣乙個問題,把同事給難住了:如何用 30 秒給新手講明白 tcp 三次握手?

技術經理不同於剛畢業一兩年的工程師,也不能和「主程」同日而語。技術經理的職責是,「為團隊成員指明正確的方向、用最小的代價幫助團隊快速成長」。

這句話看似難理解,其實歸根結底是指,技術經理的首要工作是解決團隊成員的認知困擾,包括在遇到研發問題時,能結合背景知識輕鬆定位到問題的實質,以及面對新技術和陌生領域時,能夠結合背景知識迅速歸類和深入淺出地給新手講明技術的來由。

換言之,如果交待任務時,上司只會「給個眼神你自己體會」,

或是遇到問題時,一言不合就發車、手把手帶你怎麼做、留下一旁**的你一臉懵逼,而不是首先使用簡練的語言將事情的緣由講明白、然後引導你、鼓勵你自己去完成,那這樣的相處勢必會讓你感到自己很笨很囧。

然而,事情變成這樣,並不全是你的錯,你每天都要頂著壓力、忙著完成搬磚的任務,深度思考的時間自然就少。與此同時,上司若是沒能夠履行自己的職責,而只是經驗上十分嫻熟,那他是無法真正幫你撥開迷霧、帶你快速成長的。

下面回到最初的那個問題:

首先,絕不可能引用某些書籍或某百科的說辭。本來新手就已經足夠迷惑了,結果這些「權威」反倒樂此不疲地介紹表象、介紹怎麼做,一言不合就 ack=j+1、syn+ack,而絕口不提事情的本質、現象產生的緣由。

總之聽不懂都怪新手自己,他們的世界觀是完美而母庸質疑的。如果新手因為被蠱惑而被迫盲從,那正是他們想看到的。比起用技術改善生活,他們更熱衷於拔高門檻或建立個人宗教。

好在這位同事除了經驗嫻熟,業餘時間還有覆盤的習慣,能夠拋開「怎麼做」的表象,去審視一件事它之所以存在,到底「是什麼」、「為什麼」。因此,藉此機會我們和這位同事一起來審視一下,三次握手的本質到底是什麼?引發它這麼做的背景又是什麼?

如你所知,通訊裝置之所以存在,是因為有「遠距離通訊」的需要,否則你就站在我面前,我何須對著你講**呢?既然我與通訊的另一方有一定的物理距離,並且既然我選擇使用通訊設施,那我就不可能親自護送資訊到對方面前,我和對方都需要原地不動地交由第三方送信使者來幫助我們來回傳遞資訊

因此,在相互寄送真正的信物之前,我們需要首先確認雙方收發信件的能力是否正常,否則我寄出信物,路上遭遇車禍,或對方已搬家,那麼我們便無法實現彼此的通訊。並且前面也說了,「人在家中坐,不可親自來」,我和對方各自坐在家裡,怎麼才能知道彼此之間能夠正常收發信件呢

正是基於上述的背景,我們的前輩發明了三次握手 —— 用於「確認通訊雙方收發資料能力」的解決方案。

example a : 首先,我讓信使運輸乙份信件給對方,對方收到了,那麼他就知道了我的發件能力和他的收件能力是可以的

於是他給我回信,我若收到了,我便知我的發件能力和他的收件能力是可以的,並且他的發件能力和我的收件能力是可以

然而此時他還不知道他的發件能力和我的收件能力到底可不可以,於是我最後回饋一次,他若收到了,他便清楚了他的發件能力和我的收件能力是可以的

example b    新買的**,測試下通話質量。

a:  「熊嘚,聽得見麼?」

b: 「我聽得見啊,你呢」

a: 「我也聽得見」

這,就是三次握手,這樣說,你理解了嗎?

tcp三次握手 TCP 三次握手總結

tcp特點概述 tcp segment structure 段結構 step2 server host receives syn,replie with syn ack segment 答覆syn ack報文段 step3 client receives synack,replies with ac...

TCP 三次握手

tcp 三次握手 tcp 連線是通過三次握手進行初始化的。三次握手的目的是同步連線雙方的序列號和確認號並交換 tcp 視窗大小資訊。以下步驟概述了通常情況下客戶端計算機聯絡伺服器計算機的過程 1.客戶端向伺服器傳送乙個syn置位的tcp報文,其中包含連線的初始序列號x和乙個視窗大小 表示客戶端上用來...

TCP三次握手

1.伺服器準備好接受外來連線。passive open 被動開啟 需呼叫 socket bind listen 函式來完成。2.客戶端通過呼叫 connect 主動開啟 active open 這使得客戶 tcp傳送乙個 syn 表示同步 分節,這個分節告訴伺服器,客戶端將在待建立的連線中傳送的資料...