計算機網路 校招總結

2022-05-07 09:15:11 字數 3767 閱讀 7565

計算機網路的重要性不言而喻, 也是計算機基礎裡面關鍵的一環與面試熱點, 之前收集了一些問題和知識點, 現在此分享

計算機網路中熱點面試問題, 我認為應該知道的一些基礎知識; 不會深究太多, 以我認為夠用為界

具體展開不再深入

注意事項:

在osi模型中arp協議屬於鏈路層;而在tcp/ip模型中,arp協議屬於網路層。

應用層

定義資料格式,並按照對應的格式解讀資料

應用層定義了各種各樣的協議來規範資料格式

ftp比如http報文的頭部格式

傳輸層 引入相關通訊協議

定義埠為了給每個應用程式標識身份

找到ip標定的主機上,具體接收資料的埠

udp資料報

tcp資料報

網路層 ip位址

確認主機所在的網路位置,並通過ip進行mac定址

對外網資料報進行路由**

在網路層被包裝的資料報就叫ip資料報

網路層的主要工作是定義網路位址,區分網段,子網內mac定址,對於不同子網的資料報進行路由

鏈路層 mac位址

鏈路層定義了主機的身份,即mac位址

定義資料幀,確認主機的實體地址,傳輸資料;

在鏈路層生成乙太網資料報

乙太網資料報通過物理介質傳輸給對方主機

tcp與udp的區別

tcp面向連線

可靠的流協議

順序控制

流量控制

擁塞控制

udp有更高的實時性

不可靠的資料報協議

不能保證一定會送達

為什麼要三次握手?

三次握手的目的是建立可靠的通訊通道

雙方確認自己與對方的傳送與接收是正常的

三次握手的過程

客戶端傳送syn包(seq=x)到伺服器

客戶端syn_send狀態,等待伺服器確認

伺服器收到syn包,必須確認客戶的syn(ack=x+1),同時自己也傳送乙個syn包(seq=y),即syn+ack包

伺服器進入syn_recv狀態

客戶端收到伺服器的syn+ack包,向伺服器傳送確認包ack(ack=y+1),

此包傳送完畢,客戶端和伺服器進入established狀態,完成三次握手

tcp四次握手

客戶端或伺服器均可主動發起揮手動作,在socket程式設計中,任何一方執行close()操作即可產生揮手操作

1.主動方申請關閉連線,傳送fin報文,意味著這一方沒有要傳送的資料了!

狀態變為fin-wait-1

2.被動方接收,傳送ack,先傳送乙個確認, ack和ack

這時候還沒有真正的傳送完被動方的資料

狀態變為close_wait

3.主動方狀態變為fin-wait2

被動方傳送fin, 意味著被動方也傳送完了

last-ack狀態

4.主動方傳送確認,正式要關閉連線

主動方等待2msl後,沒有回覆 關閉連線

tcp如何保證可靠性

使用如下技術

tcp怎麼保證連線的唯一性

tcp視窗的作用

tcp 粘包拆包問題是怎麼產生的?什麼時候會發生? 怎麼來解決?

tcp的擁塞控制

思路

為防止傳輸的阻塞,通過乙個慢啟動得到的數值來控制傳送的資料量

傳送方維持乙個叫做擁塞視窗的狀態變數

不要一開始就傳送大量的資料,先探測一下網路的擁塞程度,也就是說由小到大逐漸增加擁塞視窗的大小

主要要記住的就是下面四個演算法,

慢啟動階段

意思是剛剛加入網路的連線,一點一點地提速,不要一上來就把路佔滿。

把擁塞視窗設為1個資料段

指數性增加,直到第一次丟失

擁塞避免

到達乙個閾值後,開始線性增加

快重傳 快重傳要求接收方在收到乙個失序的報文段後就立即發出重複確認

快恢復 和快重傳演算法配合使用,當傳送方連續收到3個重複確認時就執行乘法減小演算法,把慢開始門限ssthresh減半

但由於傳送 方 連續 收到 幾個重傳確認,所以認為此事網路無阻塞,所以此時不執行慢開始演算法,而是讓cwnd 從 ssthresh開始執行擁塞避免演算法(加法增大)。

什麼是http協議?

是乙個基於請求與響應模式的

無狀態的

基於tcp的連線方式

應用層的協議

http請求方法

常用的方法有哪些?

getpost

get 和 post 請求有哪些區別?

get的引數在url中

post的通過request body傳遞

get請求在url中傳送的引數是有長度限制的

get重點在從伺服器上獲取資源

post重點在向伺服器傳送資料

get是不安全的,因為url是可見的,可能會洩露私密資訊,如密碼等;

post較get安全性較高;

http請求報文和響應報文

請求報文

請求行請求首部字段

請求實體

響應 狀態行

響應首部字段

響應實體

http協議2.0和1.1的區別

http/2是完全多路復用的

http/2採用二進位制格式而非文字格式

http/2讓伺服器可以將響應主動「推送」到客戶端快取中

header壓縮

https的原理,如何加密解密

https在真正請求資料前,先會與服務有幾次握手驗證,以證明相互的身份

客戶端向伺服器發起https請求,連線到伺服器的443埠

伺服器將自己的公鑰傳送給客戶端

客戶端收到伺服器端的公鑰之後,會對公鑰進行檢查,驗證其合法性

驗證成功,生成隨機的對稱秘鑰

客戶端會發起https中的第二個http請求,將加密之後的客戶端金鑰傳送給伺服器

伺服器接收到客戶端發來的密文之後,會用自己的私鑰對其進行非對稱解密

這樣兩邊就有了一對對稱秘鑰

之後就可以了

http常用狀態碼

1xx:指示資訊--表示請求已接收,繼續處理

2xx:成功--表示請求已被成功接收、理解、接受

200:請求被正常處理

204:請求被受理但沒有資源可以返回

3xx:重定向--要完成請求必須進行更進一步的操作

301:永久性重定向

302:臨時重定向

4xx:客戶端錯誤--請求有語法錯誤或請求無法實現

400:請求報文語法有誤,伺服器無法識別

401:請求需要認證

403:請求的對應資源禁止被訪問

404:伺服器無法找到對應資源

5xx:伺服器端錯誤--伺服器未能實現合法的請求

500:伺服器內部錯誤

503:伺服器正忙

校招後端麵經 計算機網路

2.dhcp協議 3.arp協議 4.dns協議 5.滑動視窗協議 6.電子郵件協議 7.http協議 8.ip,tcp,udp的首部 9.tcp擁塞控制中的快速恢復 1.nagle演算法 背景tcp傳輸資料的過程中存在兩種型別的tcp報文段,一種包含成塊資料 通常是滿長度的,攜帶乙個報文段最多能容...

計算機網路總結

此處介紹的是按照五層網際網路協議棧,分別為 應用層運輸層 網路層鏈路層 物理層總結自 其中推薦的部落格都寫的非常精彩!下面從下往上介紹他們之間的聯絡 1,物理層 電腦要組網,需要首先將電腦連線起來,物理層是連線電腦的物理手段,作用是負責傳輸 0 和 1 的電訊號 2,鏈結層 因為上述物理層中的單純的...

計算機網路總結

osi分層,這裡的osi分層分為七層協議,每層都有它最為重要的功能,分層也是為了解耦和可替換性高的目地。從底向上分為七層分別為 還有一些說法把網路協議分為四層或者五層的,分為五層的是把會話層,表示層和應用層統一規劃為應用層了,四層的就是把資料鏈路層,物理層也合為網路介面層了 一圖勝前言 幾個重要裝置...