在複習過程當中,我用心查閱並整理了在考研複試面試中可能問到的大部分問題,並分點整理了答案,能夠直接理解背誦並加上本身的語言潤色!極力推薦打印下來看,效率更高!絕對良心之做!程序員
此係列一共有8篇:編程語言篇|數據結構篇|操做系統篇|組成原理篇|計算機網絡篇|數據庫篇|軟件工程篇|計算機專業英語篇(還未所有完成,敬請期待,大家的支持和關注是我最大的動力!)web
我的整理,不可用於商業用途,轉載請註明出處。面試
做者各個平臺請搜索:程序員寶藏。快來探索屬於你的寶藏吧!算法
須要pdf直接打印版,可在公衆號"程序員寶藏"回覆複試上岸獲取(會持續更新)數據庫
須要408電子書2021版,可在公衆號"程序員寶藏"回覆408電子書獲取編程
須要408初試視頻2021版,可在公衆號"程序員寶藏"回覆408視頻獲取緩存
須要複試機試視頻,可在公衆號"程序員寶藏"回覆機試必過獲取服務器
相對於408初試,複試須要的少多了,加油,你們均可以上岸!!!讓咱們一塊兒努力!!!網絡
快速喚起記憶知識框架數據結構
一、硬件資源共享。
能夠在全網範圍內提供對處理資源、存儲資源、輸入輸出資源等昂貴設備的共享,使用戶節省投資,也便於集中管理和均衡分擔負荷。
二、軟件資源共享。
容許互聯網上的用戶遠程訪問各種大弄數據庫,能夠獲得網絡文件傳送服務、遠地進程管理服務和遠程文件訪問服務,從而避免軟件研製上的重複勞動以及數據資源的重複存貯,也便於集中管理。
三、用戶間信息交換。
計算機網絡爲分佈在各地的用戶提供了強有力的通訊手段。用戶能夠經過計算機網絡傳送電子郵件、發佈新聞消息和進行電子商務活動。
四、分佈式處理
當計算機網絡中某個計算機系統負荷太重時,能夠將其處理的某個複雜任務分配給網絡中的其餘計算機系統,從而利用空閒計算機資源以提升整個系統的利用率。
客戶-服務器(C/S):客戶是服務的請求方,服務器是服務的提供方。
對等(P2P):不區分客戶和服務器。
電路交換:整個報文的比特流從源點連續的直達終點,像在一個管道中傳輸。包括創建鏈接、傳輸數據和斷開鏈接三個階段。最典型的電路交換網絡是傳統電話網絡。
報文交換:將整個報文轉發到相鄰節點,所有存儲下來,查找轉發表,轉發到下一個節點。是存儲-轉發類型的網絡。
分組交換:將報文分組轉發到相鄰節點,查找轉發表,轉發到下一個節點。也是存儲-轉發類型的網絡。
一、帶寬(Bandwidth)
原本表示通訊線路容許經過的信號頻帶範圍,但在計算機網絡中,帶寬表示網絡的通訊線路所能傳送數據的能力,是數字信道所能傳送的「最高數據率」的同義詞,單位是比特/秒(b/s)。
二、時延(Delay)
總時延 = 排隊時延 + 處理時延 + 傳輸時延 + 傳播時延
(1) 排隊時延
分組在路由器的輸入隊列和輸出隊列中排隊等待的時間,取決於網絡當前的通訊量。
(2) 處理時延
主機或路由器收到分組時進行處理所須要的時間,例如分析首部、從分組中提取數據、進行差錯檢驗或查找適當的路由等。
(3) 傳輸時延(發送時延)
結點將分組全部比特推向鏈路所需的時間。
(4) 傳播時延
電磁波在信道中傳播所須要花費的時間,電磁波傳播的速度接近光速。
三、時延帶寬積
指發送端發送的第一個比特即將到達終點時,發送端已經發送了多少個比特,所以又稱以比特爲單位的鏈路長度,即時延帶寬積 = 傳播時延 * 信道帶寬。
一、面向鏈接服務與無鏈接服務
在面向鏈接服務中, 通訊前雙方必須先創建鏈接, 分配相應的資源(如緩衝區), 以保證通
信能正常進行, 傳輸結束後釋放鏈接和所佔用的資源。所以這種服務能夠分爲鏈接創建、數據傳
輸和鏈接釋放三個階段。例如TCP就是一種面向鏈接服務的協議。在無鏈接服務中, 通訊前雙方不須要先創建鏈接, 須要發送數據時可直接發送,把每一個帶有
目的地址的包(報文分組) 傳送到線路上, 由系統選定路線進行傳輸。這是一種不可靠的服務。
這種服務常被描述爲「盡最大努力交付" (Best-Effort-Delivery), 它並不保證通訊的可靠性。例如
IP、UDP就是一種無鏈接服務的協議。
二、可靠服務和不可靠服務
可靠服務是指網絡具備糾錯、檢錯、應答機制, 能保證數據正確、可靠地傳送到目的地。
不可靠服務是指網絡只是盡暈正確、可靠地傳送, 而不能保證數據正確、可靠地傳送到目的
地, 是一種盡力而爲的服務。對於提供不可靠服務的網絡, 其網絡的正確性、可靠性要由應用或用戶來保障。例如, 用戶
收到信息後要判斷信息的正確性, 若是不正確, 那麼用戶要把出錯信息報告給信息的發送者, 以
便發送者採起糾正措施。經過用戶的這些措施, 能夠把不可靠的服務變成可靠的服務。
三、有應答服務和無應答服務
有應答服務是指接收方在收到數據後向發送方給出相應的應答,該應答由傳輸系統內部自動
實現, 而不禁用戶實現。所發送的應答既能夠是確定應答, 也能夠是否認應答, 一般在接收到的
數據有錯誤時發送否認應答。例如, 文件傳輸服務就是一種有應答服務。無應答服務是指接收方收到數據後不自動給出應答。若須要應答, 則由高層實現。例如, 對
於WWW服務, 客戶端收到服務器發送的頁面文件後不給出應答。
一、參考圖片
二、五層協議
應用層 :爲特定應用程序提供數據傳輸服務,例如 HTTP、DNS 等協議。數據單位爲報文。
傳輸層 :爲進程提供通用數據傳輸服務。因爲應用層協議不少,定義通用的傳輸層協議就能夠支持不斷增多的應用層協議。運輸層包括兩種協議:傳輸控制協議 TCP,提供面向鏈接、可靠的數據傳輸服務,數據單位爲報文段;用戶數據報協議 UDP,提供無鏈接、盡最大努力的數據傳輸服務,數據單位爲用戶數據報。TCP 主要提供完整性服務,UDP 主要提供及時性服務。(流量控制、差錯控制、服務質量、數據傳輸管理、端到端)
網絡層 :爲主機提供數據傳輸服務。而傳輸層協議是爲主機中的進程提供數據傳輸服務。網絡層把傳輸層傳遞下來的報文段或者用戶數據報封裝成分組。(流量控制、擁塞控制、差錯控制、網際互聯)
數據鏈路層 :網絡層針對的仍是主機之間的數據傳輸服務,而主機之間能夠有不少鏈路,鏈路層協議就是爲同一鏈路的主機提供數據傳輸服務。數據鏈路層把網絡層傳下來的分組封裝成幀。(封裝成幀、差錯控制、流量控制、傳輸管理)
物理層 :考慮的是怎樣在傳輸媒體上傳輸數據比特流,而不是指具體的傳輸媒體。物理層的做用是儘量屏蔽傳輸媒體和通訊手段的差別,使數據鏈路層感受不到這些差別。
三、OSI
其中表示層和會話層用途以下:
表示層 :數據壓縮、加密以及數據描述,這使得應用程序沒必要關心在各臺主機中數據內部格式不一樣的問題。
會話層 :創建及管理會話。
五層協議沒有表示層和會話層,而是將這些功能留給應用程序開發者處理。
四、TCP/IP
它只有四層,至關於五層協議中數據鏈路層和物理層合併爲網絡接口層。
TCP/IP 體系結構不嚴格遵循 OSI 分層概念,應用層可能會直接使用 IP 層或者網絡接口層。
從本質上說,由物理層、數據鏈路層和網絡層組成的通訊子網爲網絡環境中的主機提供點到
點的服務, 而傳輸層爲網絡中的主機提供端到端的通訊。直接相連的結點之間的通訊稱爲點到點通訊, 它只提供一臺機器到另外一臺機器之間的通訊,
不涉及程序或進程的概念。同時,點到點通訊並不能保證數據傳輸的可靠性,也不能說明源主機
與目的主機之間是哪兩個進程在通訊,這些工做都是由傳輸層來完成的。端到端通訊創建在點到點通訊的基礎上,它是由一段段的點到點通訊信道構成的,是比點到
點通訊更高一級的通訊方式,以完成應用程序(進程) 之間的通訊。」端」 是指用戶程序的端口,
端口號標識了應用層中不一樣的進程。
快速喚起記憶知識框架
在計算機網絡中,同步(Synchronous)的意思很普遍,沒有統一的定義。例如,協議的三個
要素之一就是「 同步」。在網絡編程中常提到的「同步」 則主要指某函數的執行方式, 即函數調
用者需等待函數執行完後才能進入下一步。異步(Asynchronous)可簡單地理解爲「 非同步」。
在數據通訊中,同步通訊與異步通訊區別較大。同步通訊的通訊雙方必須先創建同步, 即雙方的時鐘要調整到同一個頻率。收發雙方不停地
發送和接收連續的同步比特流。主要有兩種同步方式: 一種是全網同步, 即用一個很是精確的主
時鐘對全網全部結點上的時鐘進行同步;另外一種是準同步, 即各結點的時鐘之間容許有微小的誤
差,而後採用其餘措施實現同步傳輸。同步通訊數據率較高,但實現的代價也較高。異步通訊在發送字符時,所發送的字符之間的時間間隔能夠是任意的,但接收端必須時刻作
好接收的準備。發送端能夠在任意時刻開始發送字符, 所以必須在每一個字符開始和結束的地方加
上標誌, 即開始位和中止位,以便使接收端可以正確地將每一個字符接收下來。異步通訊也能夠幀
做爲發送的單位。這時,幀的首部和尾部必須設有一些特殊的比特組合,使得接收端可以找出一
幀的開始(即幀定界)。異步通訊的通訊設備簡單、便宜,但傳輸效率較低(由於標誌的開銷所
佔比例較大)。
頻分複用:給每一個信號分配惟一的載波頻率並經過單一媒體來傳輸多個獨立信號的方法。
時分複用:把多個信號複用到單個硬件傳輸信道,它容許每一個信號在一個很短的時間使用信道,接着再讓下一個信號使用。
波分複用:就是光的頻分複用。用一根光纖同時傳輸多個頻率很接近的光載波信號。
碼分複用:碼分複用是用一組包含互相正交的碼字的碼組攜帶多路信號。每個用戶能夠在一樣的時間使用一樣的頻帶進行通訊。因爲各用戶使用通過特殊挑選的不一樣碼型,各用戶之間不會形成干擾,所以這種系統發送的信號有很強的抗干擾能力。
快速喚起記憶知識框架
因爲接收發雙方各自的工做速率和緩存空間的差別,可能出現發送方的發送能力大於接收方的
接收能力的現象,如若此時不適當限制發送方的發送速率(即鏈路上的信息流量),前而來不及
接收的幀將會被後面不斷髮送輩的幀"淹沒",形成幀的丟失而出錯。所以流量控制實際上就是限制發送方的數據流量,使其發送速率不超過接收方的接收能力。
這個過程須要經過某種反饋機制使發送方可以知道接收方是否能跟上本身,即須要有一些規
則使得發送方知道在什麼狀況下能夠接着發送下一幀而在什麼狀況下必須暫停發送,以等待收
到某種反饋信息後繼續發送。
一、中止-等待流量控制方式基本原理(發送窗口大小=1,接受窗口大小=1)
發送方每發送一幀,都要等待接收方的應答信號,以後才能發送下一幀;接收方每接收一幀,
都要反饋一個應答信號,表示可接收下一幀,若是接收方不反饋應答信號,那麼發送方必須一直
等待。每次只容許發送一幀,而後就陷入等待接收方確認信息的過程當中,於是傳輸效率很低。
二、滑動窗口流量控制方式基本原理
在任意時刻,發送方都維持一組連續的容許發送的幀的序號,稱爲發送窗口;同時接收方也維持一組連續的容許接收幀的序號,稱爲接收窗口。發送窗口用來對發送方進行流量控制,而發送窗口的大小表明在還未收到對方確認信息的狀況下發送方最多還能夠發送多少個數據幀。同理,在接收端設置接收窗口是爲了控制能夠接收哪些數據幀和不能夠接收哪些幀。在接收方,只有收到的數據幀的序號落入接收窗口內時,才容許將該數據幀收下。若接收到的數據幀落在接收窗口以外,則一概將其丟棄。
三、後退N幀協議(GBN)(發送窗口大小>1,接收窗口大小=1)
在後退N 幀式ARQ 中,發送方無須在收到上一個幀的ACK 後才能開始發送下一幀,而是能夠連續發送幀。當接收方檢測出失序的信息幀後,要求發送方重發最後一個正確接收的信息幀以後的全部未被確認的幀;或者當發送方發送了N 個幀後,若發現該N 個幀的前一個幀在計時器超時後仍未返回其確認信息,則該幀被判爲出錯或丟失,此時發送方就不得不重傳該出錯幀及隨後的N 個幀。換句話說,接收方只容許按順序接收幀。(接收窗口大小=1則按序接收)
後退N 幀協議一方面因連續發送數據幀而提升了信道的利用率,另外一方面在重傳時又必須把原來已傳送正確的數據幀進行重傳(僅因這些數據幀的前面有一個數據幀出了錯),這種作法又使傳送效率下降。因而可知,若信道的傳輸質量不好致使誤碼率較大時,後退N 幀協議不必定優於中止-等待協議。
四、選擇重傳協議(SR)(發送窗口大小>1,接收窗口大小>1)
爲進一K步提升信道的利用率,可設法只重傳出現差錯的數據幀或計時器超時的數據幀,但此時必須加大接收窗口,以便先收下發送序號不連續但仍處在接收窗口中的那些數據幀。等到所缺序號的數據幀收到後再一併送交主機。這就是選擇重傳ARQ 協議。
在選擇重傳協議中,每一個發送緩衝區對應一個計時器,當計時器超時時,緩衝區的幀就會重傳。另外,該協議使用了比上述其餘協議更有效的差錯處理策略,即一旦接收方懷疑幀出錯,就會發一個否認幀NAK給發送方,要求發送方對NAK中指定的幀進行重傳。
數據鏈路層的可靠傳輸一般使用確認和超時重傳兩種機制來完成。
確認是一種無數據的控制幀,這種控制幀使得接收方可讓發送方知道哪些內容被正確接收。有些狀況下爲了提升傳輸效率,將確認捎帶在一個回覆幀中,稱爲捎帶確認。超時重傳是指發送方在發送某個數據幀後就開啓一個計時器,在必定時間內若是沒有獲得發送的數據幀的確認幀,那麼就從新發送該數據幀,直到發送成功爲止。
自動重傳請求(Auto Repeat reQuest, ARQ) 經過接收方請求發送方重傳出錯的數據幀來恢復出錯的幀,是通訊中用於處理信道所帶來差錯的方法之一。傳統自動重傳請求分爲三種,即中止-等待(Stop-and-Wait) ARQ 、後退N 幀(Go-Back-N) ARQ 和選擇性重傳(Selective Repeat)ARQ,後兩種協議是滑動窗口技術與請求重發技術的結合,因爲窗口尺寸開到足夠大時,幀在線路上能夠連續地流動,所以又稱其爲連續ARQ 協議。注意,在數據鏈路層中流量控制機制和可靠傳輸機制是交織在一塊兒的。
在隨機訪問協議中,不採用集中控制方式(信道劃分介質訪問–時分複用)解決發送信息的次序問題,全部用戶能根據本身的意願隨機地發送信息,佔用信道所有速率。在總線形網絡中,當有兩個或多個用戶同時發送信息時,就會產生幀的衝突(碰撞,即前面所說的相互干擾),致使全部衝突用戶的發送均以失敗了結。爲了解決隨機接入發生的碰撞,每一個用戶須要按照必定的規則反覆地重傳它的幀,直到該幀無碰撞地經過。A/這些規則就是隨機訪問介質訪問控制協議,經常使用的協議有ALOHA 協議、CSMA協議、CSMA/CD 協議和CSMA/CA 協議等,它們的核心思想都是:勝利者經過爭用得到信道,從而得到信息的發送權。
一、ALOHA協議
ALOHA協議的思想很簡單,只要用戶有數據要發送,就儘管讓他們發送。固然,這樣會產生衝突從而形成幀的破壞。可是,因爲廣播信道具備反饋性,所以發送方能夠在發送數據的過程當中進行衝突檢測,將接收到的數據與緩衝區的數據進行比較,就能夠知道數據幀是否遭到破壞。一樣的道理,其餘用戶也是按照此過程工做。若是發送方知道數據幀遭到破壞(即檢測到衝突),那麼它能夠等待一段隨機長的時間後重發該幀。
二、CSMA協議(載波偵聽多路訪問)(Carrier Sense Multiple Access)
非持續式:
經偵聽,若是介質空閒,開始發送
若是介質忙,則等待一個隨機分佈的時間,而後重複步驟1優勢:等待一個隨機時間能夠減小再次碰撞衝突的可能性
缺點:若是在這個隨機時間內介質上沒有數據傳送,則會發生浪費1-持續式:
經偵聽,如介質空閒,開始發送
如介質忙,持續偵聽,一旦空閒當即發送
若是發生衝突,等待一個隨機分佈的時間再重複步驟1優勢:持續式的延遲時間要少於非持續式
缺點:若是兩個以上的站等待發送,一旦介質空閒就必定會發生衝突p-持續式:
經偵聽,如介質空閒,那麼以p的機率發送,以(1–p)的機率延遲一個時間單元發送
如介質忙,持續偵聽,一旦空閒重複步驟1
若是發送已推遲一個時間單元,再重複步驟1
三、CSMA/CD協議(Collision Detection:碰撞檢測)
載波偵聽多路訪問/碰撞檢測(Carrier Sense Multiple Access with Collision Detection, CSMA/CD)
協議是CSMA 協議的改進方案。」載波幀聽」就是發送前先偵聽,即每一個站在發送數據以前先要檢測一下總線上是否有其餘站點正在發送數據,如有則暫時不發送數據,等待信道變爲空閒時再發送。」碰撞檢測」就是邊發送邊偵聽,即適配器邊發送數據邊檢測信道上信號電壓的變化狀況,以便判斷本身在發送數據時其餘站點是否也在發送數據。工做流程可簡單歸納爲「先聽後發,邊聽邊發(區別於CSMA 協議),衝突停發,隨機重發」。
適配器從其父結點得到一個網絡層數據報,準備一個以太網幀,並把該幀放到適配器緩衝區中。
若是適配器偵聽到信道空閒,那麼它開始傳輸該幀。若是適配器偵聽到信道忙,那麼它將等待直至偵聽到沒有信號能量,而後開始傳輸該幀。
在傳輸過程當中,適配器檢測來自其餘適配器的信號能量。若是這個適配器傳輸了整個幀,而沒有檢測到來自其餘適配器的信號能量,那麼這個適配器完成該幀的傳輸。不然,適配器就須中止傳輸它的幀,取而代之傳輸一個48 比特的擁塞信號。
在停止(即傳輸擁塞信號)後,適配器採用截斷二進制指數退避算法等待一段隨機時間
後返回到步驟2) 。
四、CSMA/CA協議(Collision Avoidance:碰撞避免)
CSMA/CD 協議已成功應用千使用有線鏈接的局域網,但在無線局域網環境下,卻不能簡單地搬用CSMA/CD 協議,特別是碰撞檢測部分。主要有兩個緣由:
接收信號的強度每每會遠小於發送信號的強度,且在無線介質上信號強度的動態變化範圍很大,所以若要實現碰撞檢測,則硬件上的花費就會過大。
在無線通訊中,並不是全部的站點都可以聽見對方,即存在「隱蔽站」問題。
爲此, 802.11 標準定義了普遍應用於無線局域網的CSMA/CA 協議,它對CSMA/CD 協議進行了修改,把碰撞檢測改成碰撞避免(Collision Avoidance, CA) 。」碰撞避免」並非指協議能夠徹底避免碰撞,而是指協議的設計要儘可能下降碰撞發生的機率。
CSMA/CA 採用二進制指數退避算法。信道從忙態變爲空困時,任何一個站要發送數據幀時,不只都須等待一個時間間隔,並且還要進入爭用窗口,並計算隨機退避時間以便再次試圖接入信道,所以下降了發生碰撞的機率。
CSMA/CA 還使用預定信道、ACK 幀、RTS/CTS 幀等三種機制來實現碰撞避免:
預定信道。發送方在發送數據的同時向其餘站點通知本身傳輸數據須要的時間長度,以便讓其餘站點在這段時間內不發送數據,從而避免碰撞。
ACK 幀。全部站點在正確接收到發給本身的數據幀(除廣播幀和組播幀)後,都須要向發送方發回一個ACK 幀,若是接收失敗,那麼不採起任何行動。發送方在發送完一個數據幀後,在規定的時間內若是未收到ACK 幀,那麼認爲發送失敗,此時進行該數據幀的重發,直到收到ACK 幀或達到規定重發次數爲止。
RTS/CTS 幀。可選的碰撞避免機制,主要用於解決無線網中的「隱蔽站」問題。
點到點協議(Point to Point Protocol,PPP)是爲在同等單元之間傳輸數據包這樣的簡單鏈路設計的鏈路層協議。這種鏈路提供全雙工操做,並按照順序傳遞數據包。設計目的主要是用來經過撥號或專線方式創建點對點鏈接發送數據,使其成爲各類主機、網橋和路由器之間簡單鏈接的一種共通的解決方案。PPP具備如下功能:
(1)PPP具備動態分配IP地址的能力,容許在鏈接時刻協商IP地址;
(2)PPP支持多種網絡協議,好比TCP/IP、NetBEUI、NWLINK等;
(3)PPP具備錯誤檢測能力,但不具有糾錯能力,因此ppp是不可靠傳輸協議;
(4)無重傳的機制,網絡開銷小,速度快。
(5)PPP具備身份驗證功能。
(6) PPP能夠用於多種類型的物理介質上,包括串口線、電話線、移動電話和光纖(例如SDH),PPP也用於Internet接入。
HDLC協議使用統一的幀格式,運用方便;採用零比特插入法,易於硬件實現,且支持任意的位流傳輸,實現信息的透明傳輸;全雙工通訊,吞吐率高,在未收到應答幀的狀況下,可連續發送信息幀,提升數據鏈路傳輸的效率;採用CRC幀校驗序列,可防止漏幀,提升信息傳輸的可靠性。
主要有四個特色:
(1)對於任何一種比特流均可透明傳輸。
(2)較高的數據鏈路傳輸效率。
(3)全部的幀都有幀校驗序列(FCS),傳輸可靠性高。
(4)用統一的幀格式來實現傳輸。
這四種設備都是用於互聯、擴展局域網的鏈接設備,但它們工做的層次和實現的功能不一樣。
中繼器工做在物理層,用來鏈接兩個速率相同且數據鏈路層協議也相同的網段,其功能是消除數字信號在基帶傳輸中因爲通過一長段電纜而形成的失真和衰減,使信號的波形和強度達到所需的要求;其原理是信號再生。
集線器(Hub) 也工做在物理層,至關於一個多接口的中繼器,它可將多個結點鏈接成一個共享式的局域網,但任什麼時候刻都只能有一個結點經過公共信道發送數據。
網橋工做在數據鏈路層,能夠互聯不一樣的物理層、不一樣的MAC 子層及不一樣速率的以太網。網橋具備過濾幀及存儲轉發幀的功能,能夠隔離衝突域,但不能隔離廣播域。
交換機工做在數據鏈路層,至關於一個多端口的網橋,是交換式局域網的核心設備。它容許端口之間創建多個併發鏈接,實現多個結點之間的併發傳輸。所以,交換機的每一個端口結點所佔用的帶寬不會由於端口結點數目的增長而減小,且整個交換機的總帶寬會隨着端口結點的增長而增長。交換機通常工做在全雙工方式,有的局域網交換機採用存儲轉發方式進行轉發,也有的交換機採用直通交換方式(即在收到幀的同時當即按幀的目的MAC 地址決定該幀的轉發端口,而沒必要先緩存再處理)。
參考文獻:
[1]謝希仁. 計算機網絡.第5版[M]. 電子工業出版社, 2008.
[2]王道論壇組, 王道論壇. 2015年計算機網絡聯考複習指導[M]. 電子工業出版社, 2014.