網路協議相關面試題

2021-08-28 09:03:59 字數 3856 閱讀 3606

1. 簡述 osi 七層協議。

應用層與其它計算機進行通訊的乙個應用,它是對應應用程式的通訊服務的。例:telnet,http,ftp,nfs,smtp等。

表示層這一層的主要功能是定義資料格式及加密。示例:加密,ascii等。

會話層它定義了如何開始、控制和結束乙個會話,包括對多個雙向訊息的控制和管理。示例:rpc,sql等。

傳輸層這層的功能包括是否選擇差錯恢復協議還是無差錯恢復協議,及在同一主機上對不同應用的資料流的輸入進行復用,還包括對收到的順序不對的資料報的重新排序功能。示例:tcp,udp,spx。

網路層這層對端到端的包傳輸進行定義,它定義了能夠標識所有結點的邏輯位址,還定義了路由實現的方式和學習的方式。示例:ip,ipx等。

資料鏈路層

它定義了在單個鏈路上如何傳輸資料。這些協議與被討論的各種介質有關。示例:atm,fddi等。

物理層osi的物理層規範是有關傳輸介質的特這些規範通常也參考了其他組織制定的標準。示例:rj45,802.3等。

2. 什麼是c/s和b/s架構?

c/s架構

軟體(即客戶機/伺服器模式)分為客戶機和伺服器兩層:第一層是在客戶機系統上結合了表示與業務邏輯,第二層是通過網路結合了資料庫伺服器。

簡單的說就是第一層是使用者表示層,第二層是資料庫層。

客戶端和伺服器直接相連,這兩個組成部分都承擔著重要的角色。

b/s架構

第一層是瀏覽器(即客戶端)只有簡單的輸入輸出功能,處理極少部分的事務邏輯。由於客戶不需要安裝客戶端,只要有瀏覽器就能上網瀏覽,所以它面向的是大範圍的使用者,所以介面設計得比較簡單,通用。

第二層是web伺服器,扮演著資訊傳送的角色。當使用者想要訪問資料庫時,就會首先向web伺服器傳送請求,web伺服器統一請求後會向資料庫伺服器傳送訪問資料庫的請求,這個請求是以sql語句實現的。

第三層是資料庫伺服器,它存放著大量的資料。當資料庫伺服器收到了web伺服器的請求後,會對sql語句進行處理,並將返回的結果傳送給web伺服器,接下來,web伺服器將收到的資料結果轉換為html文字形式傳送給瀏覽器。

3. 簡述 三次握手、四次揮手的流程

syn表示建立連線,

fin表示關閉連線,

ack表示響應,

psh表示有 data資料傳輸,

rst表示連線重置。

所謂三次握手:

第一次:客戶端要和服務端進行通訊,首先要告訴服務端一聲,你好服務端,我想和你進行通話,此時發出乙個syn=j的請求訊號

第二次:當服務端收到客戶端的請求時,要回給客戶端乙個確認響應(ack j+1),說我知道了,然後在給客戶端乙個請求,你現在能連線嗎(syn=k)

第三次:當客戶端收到確認資訊後,回乙個響應(ack k+1)好的,咱們開始吧

四次揮手:

第一次揮手:雙方交流的差不多了,此時客戶端已經結尾了,要斷開通訊連線,所以告訴服務端『我說完了(fin = m)』

第二次揮手:服務端和客戶端說我知道你說完了(ack m+1),我在給你說兩句

第三次揮手:此時客戶端處於收聽等待結束的狀態,服務端也說完了 並告訴客戶端 「我說完了 咱們斷了吧(fin)」

第四次揮手:客戶端也知道服務端說完了,也要告訴服務端一聲(ack) ,因為連線和斷開要雙方都按下關閉操作才能斷開,服務端一旦受到客戶端發來的響應就會關閉連線

4. 什麼是arp協議?

arp (address resolution protocol) 是個位址解析協議。最直白的說法是:在ip乙太網中,當乙個上層協議要發包時,有了該節點的ip位址,arp就能提供該節點的mac位址。

5. tcp和udp的區別?

6. 為何基於tcp協議的通訊比基於udp協議的通訊更可靠?

tcp的可靠保證,是它的三次握手雙向機制,這一機制保證校驗了資料,保證了他的可靠性。

udp就沒有了,udp資訊發出後,不驗證是否到達對方,所以不可靠。

7. 什麼是socket?簡述基於tcp協議的套接字通訊流程。

socket 又稱」套接字」,是系統提供的用於網路通訊的方法.

tcp程式設計的客戶端一般步驟是:

1、建立乙個socket,用函式socket();

2、設定socket屬性,用函式setsockopt();* 可選

3、繫結ip位址、埠等資訊到socket上,用函式bind();* 可選

4、設定要連線的對方的ip位址和埠等屬性;

5、連線伺服器,用函式connect();

6、收發資料,用函式send()和recv(),或者read()和write();

7、關閉網路連線;

8.簡述 程序、執行緒、協程的區別 以及應用場景?

協程的適用場景: 當程式中存在大量不需要cpu的操作時(io),適用於協程;

9.gil鎖是什麼鬼?

gil即全域性直譯器鎖,全域性直譯器鎖的存在,在同一時間內,python直譯器只能執行乙個執行緒的**,這大大影響了python多執行緒的效能。而這個直譯器鎖由於歷史原因,現在幾乎無法消除。

python gil 之所以會影響多執行緒等效能,是因為在多執行緒的情況下,只有當執行緒獲得了乙個全域性鎖的時候,那麼該執行緒的**才能執行,而全域性鎖只有乙個,所以使用python多執行緒,在同一時刻也只有乙個執行緒在執行,因此在即使在多核的情況下也只能發揮出單核的效能。

10.python中如何使用執行緒池和程序池?

threadpool 和processpool模組。

11.程序之間如何進行通訊?

程序間通訊(ipc,interprocess communication),方法包括管道(pipe)、訊息排隊、共用記憶體以及套接字(socket)。

12. 什麼是併發和並行?

併發是指乙個處理器同時處理多個任務。

並行是指多個處理器或者是多核的處理器同時處理多個不同的任務。

併發是邏輯上的同時發生(simultaneous),而並行是物理上的同時發生。

13. nginx是什麼及作用?

1、靜態託管檔案

首先,nginx是乙個http伺服器,可以將伺服器上的靜態檔案(如html、)通過http協議展現給客戶端。

2、反向**

客戶端本來可以直接通過http協議訪問某**應用伺服器,**管理員可以在中間加上乙個nginx,客戶端請求nginx,nginx請求應用伺服器,然後將結果返回給客戶端,此時nginx就是反向**伺服器。

3、負載均衡

當**訪問量非常大,**越來越慢,一台伺服器已經不夠用了。於是將同乙個應用部署在多台伺服器上,將大量使用者的請求分配給多台機器處理。同時帶來的好處是,其中一台伺服器萬一掛了,只要還有其他伺服器正常執行,就不會影響使用者使用。

網路模組相關面試題

1 http 響應碼 301 和 302 代表的是什麼?有什麼區別?301 永久重定向 302 暫時重定向。2 dns流程是什麼 dns伺服器裡存著一張表,表中放著網域名稱和ip位址,網域名稱和ip位址以對映關係儲存。1.先向本地dns快取檢視有沒有該網域名稱對應的ip位址,有直接跳出,沒有接著往下...

http協議相關面試題整理

1 什麼是http協議無狀態協議?怎麼解決http協議無狀態協議?1 無狀態協議對於事務處理沒有記憶能力。缺少狀態意味著如果後續處理需要前面的資訊 2 無狀態協議解決方法 通過1 cookie 2 通過session會話儲存 2 http報文由什麼組成?請求報文包括 1 請求行 包含請求方法,url...

面試題集 網路,協議等

1.說說http,https協議 是網際網路上應用最為廣泛的一種網路協議,是乙個客戶端和伺服器端請求和應答的標準 tcp 用於從www伺服器傳輸超文字到本地瀏覽器的傳輸協議,它可以使瀏覽器更加高效,使網路傳輸減少。是以安全為目標的http通道,簡單講是http的安全版,即http下加入ssl層,ht...