分類: 互聯網筆試面試彙總 2013-10-26 19:18 141人閱讀 評論(0) 收藏 舉報 雅虎socket通訊互聯網面試 第三次握手——革命鬥爭中的通訊故事面試
在革命戰爭影片中,常常會看到英勇的解放軍戰士揹着步話機在喊「長江長江,我是黃河,聽到請回答。」很明顯,這是呼號爲黃河的一方想找呼號爲長江的另外一方說事,爲了保證影片的節奏,導演每每把後面的聯絡過程省略了,其實後面還有兩步,長江聽到黃河的呼叫後要回答「黃河黃河,我是長江,我聽到了你,請回答。」這叫作第二次握手。黃河聽到長江的呼叫後還要回答「長江長江,我是黃河,我聽到了你,如今請你收報」,這是第三次握手,三次握手成功後,才能在電臺裏傳送工做報文。爲何必須三次握手後才能工做呢?聽我慢慢道來。socket
《英雄兒女》 第一次握手:黃河發起呼叫,長江收到了。這時長江能夠確認的是,黃河的發信機和本身的收信機是好的,不然的話他收不到黃河的呼叫;黃河能確認什麼呢?他什麼也不能確認,有可能本身的電臺除了指示燈是好的,其它都是壞的,他在對着一臺鐵疙瘩發功。 第二次握手:長江迴應,黃河收到了。這時黃河能夠確認的是,本身和長江的收發信機都是好的,不然的話他收不到長江的迴應信號。這時黃河能夠說正事了嗎?還不能,雖然長江發出了迴應,但他並不能確認本身的發信機和黃河的收信機都是好的。 第三次握手:黃河對長江的迴應進行迴應。這時黃河很清楚,雙方收發信機都是好的,本身的此次迴應長江確定能收到,這個迴應的目的只是消除長江對黃河的收信機和長江本身的發信機的擔憂。而後,黃河沒必要等長江的再次迴應就能夠說正事了。 有些讀者看到這裏,內心會想「且慢,你憑什麼說第三次握手後,長江確定會收到?長江剛纔的狀態好,不表明後來的狀態好,俗話說人算不如天算,我看再多握幾回手會更可靠些。」這種想法有道理,幾句話還真說不清,那麼不妨先講一個與此有關的戰鬥小故事。資源
戰場態勢是這樣的: 駐紮在兩個山頭上的紅1團和紅2團分別有兩個營,而在山谷的藍團有三個營,若紅1團和紅2團孤軍下山做戰會失敗,而兩個團同時進攻就會勝利,對於紅方來講,問題的關鍵是要同時發起進攻。 戰鬥前的準備過程是這樣的: 紅1團團長找了個傳令兵,命令他跑到紅2團,告訴紅2團團長明早9時發起進攻。傳令兵沒有被藍團俘虜,成功地跑到了紅2團的山頭,告訴紅2團團長明早9時兩個團同時進攻。紅2團團長一邊握着傳令兵的手激動地說「太好了!我早就等着這個消息呢!」,一邊內心暗自覈計「雖然我知道了這個消息,可是紅1團的團長並不知道我已經知道了,誰都知道傳令兵有可能被俘,消息頗有可能傳不過來,若明天總攻前,紅1團團長不知道我已經獲得了消息,他必定不會貿然進攻的,換成我也不會」。因而,紅2團團長對傳令兵說「兄弟,你辛苦了,先抽袋煙吧,抽完後再辛苦你跑回去,告訴大家團長,說我已經獲得消息了,明天按時總攻。」 傳令兵又跑回到紅1團,僥倖又沒被藍團俘獲,他告訴紅1團團長有關紅2團團長已經獲知明早進攻的消息,但紅1團團長明早敢發起攻擊嗎?他不敢,由於他內心清楚,紅2團團長並不知道他(紅1團團長)已經知道了「紅2團團長已獲知明早9時發起攻擊」這個消息,紅1團團長繼續想,若是是他本人是紅2團團長,就不會貿然攻擊,由於本身已經獲知明早9時發起攻擊這件事,對方未必知道,而有可能由於傳令兵回團時被抓,敵人反而知道了,本身貿然攻擊,有可能就會失敗。因而,紅1團團長對傳令兵說「兄弟,你辛苦了,先抽袋煙吧,抽完後再辛苦你跑一趟紅2團,告訴他們團長,就說我已經知道他已經知道了明早9點進攻這件事,讓他放心地打吧。」 寫到這裏,聰明的讀者已經猜到了,即便傳令兵再次來到紅2團,紅2團團長也不敢開戰,仍是要傳令兵再次回紅1團報信,由於紅2團團長擔憂紅1團團長不知道他(紅2團團長)已經知道了紅1團團長知道他(紅2團團長)知道明早9點發生攻擊的事。(此句53個字,想到松鼠們多用短句的建議,內心嚴重疚結中……) 回到三次握手問題上,紅1團和紅2團其實就是通訊的雙方,這場永遠也達不成協議的戰鬥,說明了一個重要的通訊道理:世界上不存在徹底可靠的通訊協議。 「三次握手」是電臺點對點通訊的通常規則,但即便三次握手成功後,之後的通訊就能保證正常嗎?固然不能,握手成功後的設備故障、干擾、話務員的傷亡等,無數種可能性會致使通訊失敗。三次握手成功只說明瞭以前的通訊條件和環境,而不能決定和預測以後的通訊條件和環境。根據經驗,兩個電臺之間的通訊失敗,最大的可能性是兩個電臺自己的故障,三次握手的成功排除了這種可能。之後的狀況很難預測的,通訊協議只能作到儘量的可靠,而不能作到理論上的徹底可靠。 電臺通訊必定要三次握手嗎?固然不必定。潛伏者爲了避免暴露本身,能夠只使用收信機而不發信,迴應總部時能夠採用其它手段,例如在指定電線杆上貼個尋人啓示。若是電臺的發信機出了故障,也可能不通過三次握手而達成通訊,在對越自衛反擊戰中,某部的電臺發信機壞了,指揮所在沒有收到對方握手信號的狀況下,連續盲發14份報文,該部所有收到,並按指示順利地完成了任務,該電臺臺長所以榮立了二等功。互聯網
若是是兩次: C發送請求,S應答並分配資源 若S的應答沒有到達C端,C認爲鏈接未創建,而S認爲鏈接簡歷了。 這樣S就會在一段時間內保留分配的資源。 若是有大量這樣的請求,S會崩潰。簡歷