天天看點

網絡-高頻面試題-2

文章目錄

  • ​​DNS域名解析器​​
  • ​​APR位址轉換協定​​
  • ​​一次完整的HTTP請求過程:​​
  • ​​目前讀,快照讀和MVCC的關系​​
  • ​​資料庫并發場景有三種,分别為:​​
  • ​​MVCC 帶來的好處是?​​
  • ​​一、二層交換機​​
  • ​​3、工作原理​​
  • ​​二、三層交換機​​
  • ​​1、工作原理​​
  • ​​2、工作過程​​

DNS域名解析器

主機到本地伺服器 —> 采用遞歸

www.baidu.com域名 --> 本地的hosts檔案 --> DNS域名解析器 —> 本地DNS伺服器 —> 根域名伺服器

本地伺服器到根域名 —> 疊代

根域名伺服器會告訴本地域名伺服器去查詢哪個頂級域名伺服器。

本地伺服器–> 頂級 頂級說去哪個權限域名伺服器

本地伺服器–> 權限 權限告訴本地域名伺服器相應的www.baidu.com所對應的IP位址。

本地域名伺服器告訴主機 www.baidu.com所對應的IP位址。

APR位址轉換協定

網絡-高頻面試題-2
網絡-高頻面試題-2

seq序号

ack 确認号

syn 連結

fin 斷開連結

一次完整的HTTP請求過程:

1.首先進行域名解析,域名解析具體過程講一下: 應用層

  • 浏覽器搜尋自己的DNS緩存,緩存中維護一張域名與IP位址的對應表;
  • 若沒有,則搜尋作業系統的DNS緩存;
  • 若沒有,則作業系統将域名發送至本地域名伺服器(遞歸查詢方式),本地域名伺服器查詢自己的DNS緩存,查找成功則傳回結果,否則,通過以下方式疊代查找:

本地域名伺服器向根域名伺服器發起請求,根域名伺服器傳回com域的頂級域名伺服器的位址;

本地域名伺服器向com域的頂級域名伺服器發起請求,傳回權限域名伺服器位址;

本地域名伺服器向權限域名伺服器發起請求,得到IP位址;

  • 本地域名伺服器将得到的IP位址傳回給作業系統,同時自己将IP位址緩存起來;
  • 作業系統将IP位址傳回給浏覽器,同時自己也将IP位址緩存起來;
  • 至此,浏覽器已經得到了域名對應的IP位址。

2.浏覽器發起HTTP請求;應用層

3.接下來到了傳輸層,選擇傳輸協定,TCP或者UDP,TCP是可靠的傳輸控制協定,對HTTP請求進行封裝,加入了端口号等資訊;

4.然後到了網絡層,通過IP協定将IP位址封裝為IP資料報;然後此時會用到ARP協定,主機發送資訊時将包含目标IP位址的ARP請求廣播到網絡上的所有主機,并接收傳回消息,以此确定目标的實體位址,找到目的MAC位址;

5.接下來到了資料鍊路層, 交換機 把網絡層交下來的IP資料報添加首部和尾部,封裝為MAC幀,現在根據目的mac開始建立TCP連接配接,三次握手,接收端在收到實體層上交的比特流後,根據首尾的标記,識别幀的開始和結束,将中間的資料部分上交給網絡層,然後層層向上傳遞到應用層;

6.伺服器響應請求并請求用戶端要的資源,傳回給用戶端;

7.斷開TCP連接配接,浏覽器對頁面進行渲染呈現給用戶端。

目前讀,快照讀和MVCC的關系

MVCC 多版本并發控制是 「維持一個資料的多個版本,使得讀寫操作沒有沖突」 的概念,隻是一個抽象概念,并非實作

因為 MVCC 隻是一個抽象概念,要實作這麼一個概念,MySQL 就需要提供具體的功能去實作它,「快照讀就是 MySQL 實作 MVCC 理想模型的其中一個非阻塞讀功能」。而相對而言,目前讀就是悲觀鎖的具體功能實作

要說的再細緻一些,快照讀本身也是一個抽象概念,再深入研究。MVCC 模型在 MySQL 中的具體實作則是由 3 個隐式字段,undo 日志 ,Read View 等去完成的,具體可以看下面的 MVCC 實作原理

MVCC 能解決什麼問題,好處是?

資料庫并發場景有三種,分别為:

讀-讀:不存在任何問題,也不需要并發控制

讀-寫:有線程安全問題,可能會造成事務隔離性問題,可能遇到髒讀,幻讀,不可重複讀

寫-寫:有線程安全問題,可能會存在更新丢失問題,比如第一類更新丢失,第二類更新丢失

MVCC 帶來的好處是?

多版本并發控制(MVCC)是一種用來解決讀-寫沖突的無鎖并發控制,也就是為事務配置設定單向增長的時間戳,為每個修改儲存一個版本,版本與事務時間戳關聯,讀操作隻讀該事務開始前的資料庫的快照。 是以 MVCC 可以為資料庫解決以下問題

在并發讀寫資料庫時,可以做到在讀操作時不用阻塞寫操作,寫操作也不用阻塞讀操作,提高了資料庫并發讀寫的性能

同時還可以解決髒讀,幻讀,不可重複讀等事務隔離問題,但不能解決更新丢失問題

一、二層交換機

1、基本作用

交換機工作在二層,可以用來隔離沖突域,在OSI參考模型中,二層(資料鍊路層)的作用是尋址,這邊尋址指的是MAC位址,而交換機就是對MAC位址進行轉發,在每個交換機中,都有一張MAC位址表,這個表是交換機自動學習的,是以,總得來說交換機的作用是尋址和轉發。

2、基本功能

(1) 無限的傳輸距離

(2)提高端口密度—可以增加更多的接口

(3) 徹底解決了沖突—所有的接口可以同時收發資料

(4) 二層單點傳播—實體尋址,在一個交換網絡内,實作一對一通訊,保障了資料的安全,減少了垃圾資料量,降低的轉發延時;

3、工作原理

轉發機制:

流量進入交換機後,先識别資料幀中的源MAC位址,然後将該MAC位址與該流量的進入接口進行綁定、記錄,生成MAC位址表——再轉換為CAM表

然後檢視資料幀中的目标MAC位址,在CAM表中尋找對應的記錄,若存在記錄,按記錄接口單點傳播轉發;

若沒有記錄将洪泛該流量; 洪泛——除流量的入口外其他所有出口複制;

預設CAM在一個mac最後出現之後300s将被删除;

注:MAC位址表和CAM的差別------CAM是将MAC表中的MAC位址+接口編号+vlanid轉換為hash值,再轉換為二進制;意義在于識别更快;

二、三層交換機

三層交換機與二層交換機相比是可以處理三層資料的,可以識别三層資料包.

“一次路由,多次交換”基本概括了三層交換機的原理,通過這句話可以把三層交換機剖析清楚。

1、工作原理

當一個三層資料包進入三層交換機以後,會檢視路由表,即“一次路由”,查找出接口和下一跳,之後會找到下一跳的MAC位址,進行二層封裝的變換,和三層裝置即路由器的本質是一樣的(三層的本質:是把一個子網的MAC遷移到另外一個子網,不同子網的MAC不可能會出現在同一個包的源目MAC上,把原有的二層封裝去掉,封裝上新的MAC位址,源是出接口的MAC位址,目的是下一跳的MAC位址,此時新的二層封裝形成,資料包轉發出裝置),完成一次“路由器”的工作

如果找不到下一跳的MAC位址,進行ARP洪範,再找不到就丢棄。在做二層封裝的時候,因為有目标MAC的存在,是以也可以說是三層的目标IP最後會映射到目标MAC上,此時會形成一個目标IP和封裝目标MAC的映射,而三層交換機具有二層交換機的功能,則此時就形成了三層到二層的一個映射,轉發一定是要找到接口,通過IP找到MAC,通過MAC找到對應出接口,這就相當于形成了一個IP的MAC表,那麼三層IP進來以後就直接會找到對應的出接口,資料包就不需要再檢視資料表,隻需要變換一次二層封裝就可以了。

2、工作過程

三層路由器的工作順序就是:資料包進來—檢視路由表—變換二層封裝—資料包出去,三層交換機幫助路由器節約了一步,就是檢視路由表的步驟,此步驟的省略會節約大量的時間,簡化工作過程,即“多次交換”,一個IP對應一個接口,就和二層交換機的MAC表有一些類似了,是一種交換能力,省略了路由器遞歸查找的環節,這就是三層交換機的工作過程。