深入淺出TCP三次握手四次揮手

每每想起TCP三次握手這個問題,就會陷入如下的困惑:

var forget = ?
while(forget) {
      百度/Google
}

而重點在於forget永遠等於true,無情的消耗着我這顆只有一核的cpu,好像只有把腦子轉爆才能跳出這個該死的循環。

但屋漏偏逢連夜雨,後臺又在另一個線程開啓了另外一個該死的循環:

var areYouStupid = true
while(areYouStupid) {
	抽根兒煙...
}

就這樣,子子孫孫 無窮盡也… 一度陷入絕望之中,突然,偉大的義勇軍進行曲在腦海中一閃而過:
“起來,不願做奴隸的人們..”是的,不能在繼續沉淪了…

終於,靈光乍現,想到了拜占庭將軍問題,這是一個1986年由xxx提出的關於分佈式系統一致性問題的分析,主要說的就是在不可靠信道上,想就某個決議達成一致是不可能的,通俗的理解:在那個只能依靠馬來進行消息傳遞的東羅馬帝國,分佈在各地的將軍們想就某一個作戰方案達成一致是不可能的,因爲馬可能被累死,通信兵可能叛變,也可能篡改作戰方案。,感興趣的老鐵可以瞭解一下Zookeeper中基於Paxos實現的zab協議是如何保證分佈式環境下數據的一致性的。

So,其實互聯網也是一個不可靠信道,TCP想在這個不可靠信道上進行可靠數據傳輸,就需要反覆確認(幸好網絡速度要比馬跑的快,否則估計現在人們還在沒有網絡也沒有焦慮的時代快樂的生活)。

來看看TCP三次握手和四次揮手的過程

  • 三次握手
    在這裏插入圖片描述
  • 四次揮手
    在這裏插入圖片描述

乍看這兩張圖,一定會覺得就是兩坨屎!即使看過很多次,也有可能依然覺得這是兩坨屎!!!(計算機網絡90分以上的學(xue)霸(chu)請忽略)。

沒關係,來看一段悽(gou)美(xie)的愛情故事:
在春秋戰國時期,一個楚國的柔情妹子和一個燕國的型男小哥哥在一場朋友的生日會中相識,並且互相留了通信地址(那時候沒有微信也沒有電話,什麼都沒有,只有門牌號),各回各家各找個媽以後,燕國小哥哥覺得自己愛上了這位柔情似水的妹子,於是決定寫一封情書:俺想跟你睡覺覺(請原諒他沒讀過《三字經》)(seq=u),從此開始了火急火燎的等待。於是,燕國的快遞小哥爲了完成今年的KPI,快馬加鞭、日夜兼程,終於在一年後把信送到了這位妹紙手裏。妹紙收到信後,大喜,心想,哎媽呀,根老孃想一塊去了,於是拿起筆紙奮筆疾書:夫君,人家答應你就是了(seq=y)。 由於郵局規定:收信人必須手持信件 拍照,確認收信人確實收到了信,於是,郵差掏出自己的IPhone 11 普辣絲,打開美顏相機,設置完美白、磨皮、祛痘、瘦臉、大眼後,按下了快門(ack=x + 1),從此,妹紙也開始了火急火燎的等待,而快遞小哥爲了完成明年的KPI,又開始了苦逼的快馬加鞭、星夜兼程,一年後,小哥哥拿到回信(seq=y)和妹子的照片(ack=x+1),欣喜若狂,於是,集全家之力,湊夠了100萬,在快遞小哥的帶領下(爲了完成第三年的KPI考覈),從此踏上了迎親的征途,就這樣,又過去了一年,小哥哥拿着妹紙的照片(seq = x + 1)和妹紙的信物(ack=y+1)來到了美麗富饒的楚國,他們決定在韓國買一套房子,再買一輛小汽車,從此過上了幸福美滿的生活(established)

但生活的瑣碎很快打破了他們美好的愛情,妹紙決定要過另一種生活,不再照顧小哥哥了(不再有數據需要傳輸),於是她提出了分手,給小哥哥發了微信(①),但是,由於《婚姻法》第666條規定:離婚需雙方同意,所以妹紙需要小哥哥的同意,但小哥哥在收到妹紙發來的微信後(不得不感慨地處中原的韓國真先進),一開始只回復了一個“哦” ,並沒有表明自己的態度(②),因爲他不想分手(還有數據要傳輸)他還愛着這個妹紙,但從此,妹紙和小哥哥開始了分居的生活,直到有一天,小哥哥想通了,不想再去愛一個不愛自己的人了,於是小哥哥給妹紙發微信表示同意分手(③),最終,他們快樂的來到民政局,按下了手印,從此天各一方(④)。

是不是記住了三次握手和四次揮手呢O(∩_∩)O

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章