TCP三次握手的正確使用姿勢

桃子夭夭發表於2015-11-27

背景

和女朋友異地戀一年多,為了保持感情我提議每天晚上視訊聊天一次。

從好上開始,到現在,一年多也算堅持下來了。

問題

有時候聊天的過程中,我的網路或者她的網路可能會不好,視訊就會卡住,聽不到對方的聲音,過一會兒之後才會恢復。

中間雙方可能就要不斷的確認網路是否恢復,但是有時候會:

她:“你可以聽到了嗎?”

我:“可以了,你呢?”、

她:“喂喂,你可以聽到了嗎?”

我:“可以了,我可以聽到了,你呢?”

她:“你可以聽到了嗎?”

.....

這種情況真的很蛋疼,那麼這樣才能找一個簡單的辦法,讓兩個人都確認自己可以聽到對方的聲音,對方也可以聽到自己的聲音呢?

方案

不知道為啥想到了這張圖:

於是有了如下對話:

我:1+1等於幾?

她:2,2+2等於幾?

我:4

首先兩個人約定協議

1.感覺網路情況不對的時候,任何一方都可以發起詢問

2.任何情況下,若發起詢問後5秒還沒收到回覆,則認為網路不通

3.網路不通的情況下等1min或者整整路由器之後再發起詢問

 

對於我而言,發起 “1+1等於幾”的詢問後

1. 若5s內沒有收到回覆,則認為網路不同

2. 若收到回覆,則我確認①我能聽到她的訊息 ②她能聽到我的訊息,然後回覆她的問題的答案

對於她而言,當感覺網路情況不對的時候

1. 若沒有收到我的詢問,則她發起詢問

2. 若收到“1+1等於幾”,則她確認 ①她可以聽到我的訊息,然後回覆我的問題的答案和她的問題“2,2+2等於幾”

3. 若5s內沒有收到我的回覆“4”,則她確認 ②我聽不見她的訊息

4. 若5s內收到了我的回覆“4”,則她確認 ②我可以聽見她的訊息

這樣,如果上面的對話得以完成,就證明雙方都可以確認自己可以聽到對方的聲音,對方也可以聽到自己的聲音!

這個故事可以解釋TCP為什麼要三次握手嗎 ...   囧

結局

好吧,我得承認,都繞成這樣了女朋友還沒嫌棄我,是我之萬幸...

她並不是學計算機的,也願意陪我玩這個遊戲,讓我感動的同時又覺得一直異地耽擱了她的青春,對不起她。異地戀的心酸誰經歷誰知道啊!

好在經過最近幾個周的努力,成功的在家鄉找到一份還算滿意的工作,離開帝都,回家和她團聚了。趁著新工作入職前還有幾天搬家休整的時間,回憶回憶以前的事情,也算是一段挺有意思的經歷 :)

 

相關文章