華為面試題及答案(非標準)

2021-04-02 20:48:44 字數 2383 閱讀 4103

1:請你分別划划osi的七層網路結構圖,和tcp/ip的五層結構圖? 

osi七層:應用層;表示層;會話層;傳輸層;網路層;資料鏈路層;物理層。

tcp/

ip:應用層;傳輸層;網路層;資料鏈路層;物理層。

工作在osi

模型下的網路裝置

物理層:中繼器、集線器、還有我們通常說的雙絞線也工作在物理層

資料鏈路層:網橋(現已很少使用)、乙太網交換機(二層交換機)、網絡卡  

(其實網絡卡是一半工作在物理層、一半工作在資料鏈路層)

網路層:路由器、三層交換機

傳輸層:四層交換機、也有工作在四層的路由器

交換機最高還有七層的交換機,應用在電信骨幹網路,提供網路高頻寬和低時延

2:請你詳細的解釋一下ip協議的定義,在哪個層上面,主要有什麼作用? tcp與udp呢? 

ip協議

(internet protocol)

又稱網際網路協議,是支援網間互連的資料報協議,它與

tcp協議(傳輸控制協議)一起構成了

tcp/ip

協議族的核心。它提供網間連線的完善功能,

包括ip

資料報規定互連網路範圍內的

ip位址格式。

傳輸層主要為兩台主機上的應用程式提供端到端的資料通訊,它分為兩個不同的協議:

tcp(傳輸控制協議)和udp(使用者資料報協議)。tcp協議提供端到端的質量保證的資料傳輸,該層資料分組、質量控制和超時重發等,對於應用層來說,可以忽略這些工作。 udp協議則只是提供簡單的把資料報從一端傳送到另一端,至於資料是否到達或按時到達、資料是否損壞都必須由應用層來負責。這兩種協議各有各自的用途,前者可用於面向連線的應用,而後者在及時性服務中重要的用途,如網路多**通訊等。

3:請問交換機和路由器分別的實現原理是什麼?分別在哪個層次上面實現的? 

交換機的功能都是在資料鏈路層實現。資料鏈路層的作用主要是控制資料流量,處理傳輸錯誤,提供實體地址(沒有邏輯位址),以及管理對物理介質的訪問。通過使用不同的鏈路層協議,網橋可以實現上述所有的功能。目前較為流行的鏈路層協議包括:乙太網,令牌環以及

fddi

等。交換機的功能實現原理並不複雜,主要是通過分析流入的資料幀,根據幀中包含的資訊做出**決策,然後再把資料幀**到目的地。網橋對資料幀的**分為兩種形式,如果使用的是源路徑網橋技術,那麼每乙個資料幀中都已經包含了到達目的地的完整路徑;如果使用的是透明網橋技術,那麼每一次資料幀都會被**到下乙個節點並最終到達目的地。

路由器是一種典型的網路層裝置。它是兩個區域網之間接幀傳輸資料,在osi/rm之中被稱之為中介系統,完成網路層中繼或第三層中繼的任務。路由器負責在兩個區域網的網路層間接幀傳輸資料,**幀時需要改變幀中的位址。

路由器(router)是用於連線多個邏輯上分開的網路,所謂邏輯網路是代表乙個單獨的網路或者乙個子網。當資料從乙個子網傳輸到另乙個子網時,可通過路由器來完成。因此,路由器具有判斷網路位址和選擇路徑的功能,它能在多網路互聯環境中,建立靈活的連線,可用完全不同的資料分組和介質訪問方法連線各種子網,路由器只接受源站或其他路由器的資訊,屬網路層的一種互聯裝置。它不關心各子網使用的硬體裝置,但要求執行與網路層協議相一致的軟體。路由器分本地路由器和遠端路由器,本地路由器是用來連線網路傳輸介質的,如光纖、同軸電纜、雙絞線;遠端路由器是用來連線遠端傳輸介質,並要求相應的裝置,如**線要配數據機,無線要通過無線接收機、發射機。

一般說來,異種網路互聯與多個子網互聯都應採用路由器來完成。

路由器的主要工作就是為經過路由器的每個資料幀尋找一條最佳傳輸路徑,並將該資料有效地傳送到目的站點。由此可見,選擇最佳路徑的策略即路由演算法是路由器的關鍵所在。為了完成;這項工作,在路由器中儲存著各種傳輸路徑的相關資料

——路徑表(routing table),供路由選擇;時使用。路徑表中儲存著子網的標誌資訊、網上路由器的個數和下乙個路由器的名字等內容。路徑表可以是由系統管理員固定設定好的,也可以由系統動態修改,可以由路由器自動調整,也可以由主機控制。

4:請問c++的類和c裡面的struct有什麼區別? 

c++中的類具有成員保護功能,並且具有繼承,多型這類特點,而c裡的struct沒有

5:請講一講析構函式和虛函式的用法和作用? 

析構函式一般在物件撤消前做收尾工作,比如**記憶體等工作,虛函式的功能是使子類可以用同名的函式對父類函式進行過載,並且在呼叫時自動呼叫子類過載函式,如果是純虛函式,則純粹是為了在子類過載時有個統一的命名而已。(說得不是很確切,自己隨便找本c++的書都有說明)

6:全域性變數和區域性變數有什麼區別?是怎麼實現的?作業系統和編譯器是怎麼知道的? 

全域性變數的生命週期是整個程式執行的時間,而區域性變數的生命週期則是區域性函式或過程呼叫的時間段。其實現是由編譯器在編譯時採用不同記憶體分配方法。全域性變數在main函式呼叫後,就開始分配,如果是靜態變數則是在main函式前就已經初始化了。而區域性變數則是在使用者棧中動態分配的(還是建議看編譯原理中的活動記錄這一塊)

ZT 微軟亞洲技術中心面試題 附非標準答案

1.程序和執行緒的差別。執行緒是指程序內的乙個執行單元,也是程序內的可排程實體.與程序的區別 1 排程 執行緒作為排程和分配的基本單位,程序作為擁有資源的基本單位 2 併發性 不僅程序之間可以併發執行,同乙個程序的多個執行緒之間也可併發執行 3 擁有資源 程序是擁有資源的乙個獨立單位,執行緒不擁有系...

面試題及答案

1.css優先順序演算法如何計算 2.css盒子模型 3.new操作符具體幹了什麼呢 4.dom操作 怎樣新增 移除 複製 建立和查詢節點 5.js有幾種資料型別,分別是什麼 6.js如何判斷乙個陣列 7.如何通過指定名稱建立乙個元素 8.在jquery 中,如何給動態新增的元素繫結事件 9.如何獲...

C語言面試題大彙總之華為面試題及答案

1 區域性變數能否和全域性變數重名?答 能,區域性會遮蔽全域性。要用全域性變數,需要使用 區域性變數可以與全域性變數同名,在函式內引用這個變數時,會用到同名的區域性變數,而不會用到全域性變數。對於有些編譯器而言,在同乙個函式內可以定義多個同名的區域性變數,比如在兩個迴圈體內都定義乙個同名的區域性變數...