劍指java面試 筆試必備(1網路七層架構)

2021-09-05 12:41:24 字數 1978 閱讀 7286

必備筆試重點知識:常考的知識點:網路七層架構,tcp/ip協議,tcp連線,tcp/udp區別,http與https,socket原理,網路知識總結。

1.網路七層架構科學家要解決的第乙個問題是,兩個硬體之間怎麼通訊。具體就是一台發些位元流,然後另一台能收到。

於是,科學家發明了物理層:

主要定義物理裝置標準,如網線的介面型別、光纖的介面型別、各種傳輸介質的傳輸速率等。它的主要作用是傳輸位元流(就是由1、0轉化為電流強弱來進行傳輸,到達目的地後在轉化為1、0,也就是我們常說的數模轉換與模數轉換)。這一層的資料叫做位元。

需求2:

現在通過電線我能發資料流了,但是,我還希望通過無線電波,通過其它介質來傳輸。然後我還要保證傳輸過去的位元流是正確的,要有糾錯功能。

於是,發明了資料鏈路層:

定義了如何讓格式化資料以進行傳輸,以及如何讓控制對物理介質的訪問。這一層通常還提供錯誤檢測和糾正,以確保資料的可靠傳輸。

需求3:

那麼,我還須要保證傳輸大量檔案時的準確性。於是,我要對發出去的資料進行封裝。就像發快遞一樣,乙個個地發。

於是,先發明了傳輸層(傳輸層在osi模型中,是在網路層上面)

例如udp,是用於傳送少量資料的。我發20個包出去,一般不會丟包,所以,我不管你收到多少個。在多人互動遊戲,也經常用udp協議,因為一般都是簡單的資訊,而且有廣播的需求。如果用tcp,效率就很低,因為它會不停地告訴主機我收到了20個包,或者我收到了18個包,再發我兩個!如果同時有1萬台計算機都這樣做,那麼用tcp反而會降低效率,還不如用udp,主機發出去就算了,丟幾個包你就卡一下,算了,下次再發包你再更新。

tcp協議是會繫結ip和埠的協議,下面會介紹ip協議。

需求4:

傳輸層只是解決了打包的問題。但是如果我有多台計算機,怎麼找到我要發的那台?或者,a要給f發資訊,中間要經過b,c,d,e,但是中間還有好多節點如k.j.z.y。我怎麼選擇最佳路徑?這就是路由要做的事。

於是,發明了網路層。即路由器,交換價那些具有定址功能的裝置所實現的功能。這一層定義的是ip位址,通過ip位址定址。所以產生了ip協議。

需求5:

現在我們已經保證給正確的計算機,傳送正確的封裝過後的資訊了。但是使用者級別的體驗好不好?難道我每次都要呼叫tcp去打包,然後呼叫ip協議去找路由,自己去發?當然不行,所以我們要建立乙個自動收發包,自動定址的功能。

於是,發明了會話層。會話層的作用就是建立和管理應用程式之間的通訊。

需求6:

現在我能保證應用程式自動收發包和定址了。但是我要用linux給window發包,兩個系統語法不一致,就像安裝包一樣,exe是不能在linux下用的,shell在window下也是不能直接執行的。於是需要表示層(presentation),幫我們解決不同系統之間的通訊語法問題。

需求7:

ok,現在所有必要條件都準備好了,我們可以寫個android程式,web程式去實現需求把。

補充:socket:

這不是乙個協議,而是乙個通訊模型。其實它最初是伯克利加州分校軟體研究所,簡稱bsd發明的,主要用來一台電腦的兩個程序間通訊,然後把它用到了兩台電腦的程序間通訊。所以,可以把它簡單理解為程序間通訊,不是什麼高階的東西。主要做的事情不就是:

a發包:發請求包給某個已經繫結的埠(所以我們經常會訪問這樣的位址182.13.15.16:1235,1235就是埠);收到b的允許;然後正式傳送;傳送完了,告訴b要斷開鏈結;收到斷開允許,馬上斷開,然後傳送已經斷開資訊給b。

b收包:繫結埠和ip;然後在這個埠監聽;接收到a的請求,發允許給a,並做好接收準備,主要就是清理快取等待接收新資料;然後正式接收;接受到斷開請求,允許斷開;確認斷開後,繼續監聽其它請求。

可見,socket其實就是i/o操作。socket並不僅限於網路通訊。在網路通訊中,它涵蓋了網路層、傳輸層、會話層、表示層、應用層——其實這都不需要記,因為socket通訊時候用到了ip和埠,僅這兩個就表明了它用到了網路層和傳輸層;而且它無視多台電腦通訊的系統差別,所以它涉及了表示層;一般socket都是基於乙個應用程式的,所以會涉及到會話層和應用層。

000 演算法面試筆試必備 開篇

2018 6 30 18 37 15 現在研二了,馬上找工作了,自己整理了一些筆試,面試演算法題。我想開乙個專欄,專門講解自己在面試筆試過程中的演算法題。並提供思路。演算法在面試過程中起著舉足輕重的作用。1 為了自我總結吧,提公升自己的編碼能力 2 為了分享,自己總結的演算法題,在面試中命中的概率極...

畢業菜鳥java面試筆試技巧

面試寶典 以下就是面試的一些技巧,第一點 簡歷最好簡潔明瞭,突出重點,你想想,如果你是人事每天處理上百份簡歷,你頭痛不痛,瀏覽簡歷時肯定不會細看,所以不要繁瑣,一些不重要的都不用寫上去了,例如本人在學校裡考出的資料庫 啊,c語言二級什麼的,畢業以後簡歷上根本沒什麼卵用,所以就不要寫啦。第二點 要有乾...

c c 面試筆試知識點 牛客網(1)

我最近在牛客網上做題目,每道題目都有一些小的知識點,我把它總結下來,給大家分享,希望給面試筆試的人一些幫助。有些知識點太多了,所以只寫了知識點。希望大家多多指出,共同進步,拿到乙份好的offer。1.int n 10 是陣列指標 sizeof n 4 int n 10 是指標陣列 sizeof n ...