計算機網路的重要性不言而喻, 也是計算機基礎裡面關鍵的一環與面試熱點, 之前收集了一些問題和知識點, 現在此分享
計算機網路中熱點面試問題, 我認為應該知道的一些基礎知識; 不會深究太多, 以我認為夠用為界
具體展開不再深入
注意事項:
在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分層分為七層協議,每層都有它最為重要的功能,分層也是為了解耦和可替換性高的目地。從底向上分為七層分別為 還有一些說法把網路協議分為四層或者五層的,分為五層的是把會話層,表示層和應用層統一規劃為應用層了,四層的就是把資料鏈路層,物理層也合為網路介面層了 一圖勝前言 幾個重要裝置...