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

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函數前就已經初始化了。而局部變量則是在用戶棧中動態分配的(還是建議看編譯原理中的活動記錄這一塊)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章