一文輕鬆回顧計算機考研複試常問問題 (本科生期末複習也適用) 計算機網路篇
第一章、計算機網路體系結構
快速喚起記憶知識框架
1.計算機網路的主要功能?
1、硬體資源共享。
可以在全網範圍內提供對處理資源、儲存資源、輸入輸出資源等昂貴裝置的共享,使使用者節省投資,也便於集中管理和均衡分擔負荷。
2、軟體資源共享。
允許網際網路上的使用者遠端訪問各類大弄資料庫,可以得到網路檔案傳送服務、遠地程式管理服務和遠端檔案訪問服務,從而避免軟體研製上的重複勞動以及資料資源的重複存貯,也便於集中管理。
3、使用者間資訊交換。
計算機網路為分佈在各地的使用者提供了強有力的通訊手段。使用者可以通過計算機網路傳送電子郵件、釋出新聞訊息和進行電子商務活動。
4、分散式處理
當計算機網路中某個計算機系統負荷過重時,可以將其處理的某個複雜任務分配給網路中的其他計算機系統,從而利用空閒計算機資源以提高整個系統的利用率。
2.主機間的通訊方式?
客戶-伺服器(C/S):客戶是服務的請求方,伺服器是服務的提供方。
對等(P2P):不區分客戶和伺服器。
3.電路交換,報文交換和分組交換的區別?
電路交換:整個報文的位元流從源點連續的直達終點,像在一個管道中傳輸。包括建立連線、傳輸資料和斷開連線三個階段。最典型的電路交換網路是傳統電話網路。
報文交換:將整個報文轉發到相鄰節點,全部儲存下來,查詢轉發表,轉發到下一個節點。是存 儲-轉發型別的網路。
分組交換:將報文分組轉發到相鄰節點,查詢轉發表,轉發到下一個節點。也是儲存-轉發型別的網路。
4.計算機網路的主要效能指標?
1、頻寬(Bandwidth)
本來表示通訊線路允許通過的訊號頻帶範圍,但在計算機網路中,頻寬表示網路的通訊線路所能傳送資料的能力,是數字通道所能傳送的“最高資料率”的同義詞,單位是位元/秒(b/s)。
2、時延(Delay)
總時延 = 排隊時延 + 處理時延 + 傳輸時延 + 傳播時延
(1) 排隊時延
分組在路由器的輸入佇列和輸出佇列中排隊等待的時間,取決於網路當前的通訊量。
(2) 處理時延
主機或路由器收到分組時進行處理所需要的時間,例如分析首部、從分組中提取資料、進行差錯檢驗或查詢適當的路由等。
(3) 傳輸時延(傳送時延)
結點將分組所有位元推向鏈路所需的時間。
(4) 傳播時延
電磁波在通道中傳播所需要花費的時間,電磁波傳播的速度接近光速。
3、時延頻寬積
指傳送端傳送的第一個位元即將到達終點時,傳送端已經傳送了多少個位元,因此又稱以位元為單位的鏈路長度,即時延頻寬積 = 傳播時延 * 通道頻寬。
5.計算機網路提供的服務的三種分類?
1、面向連線服務與無連線服務
在面向連線服務中, 通訊前雙方必須先建立連線, 分配相應的資源(如緩衝區), 以保證通訊能正常進行, 傳輸結束後釋放連線和所佔用的資源。因此這種服務可以分為連線建立、資料傳輸和連線釋放三個階段。例如TCP就是一種面向連線服務的協議。
在無連線服務中, 通訊前雙方不需要先建立連線, 需要傳送資料時可直接傳送,把每個帶有目的地址的包(報文分組) 傳送到線路上, 由系統選定路線進行傳輸。這是一種不可靠的服務。這種服務常被描述為“盡最大努力交付" (Best-Effort-Delivery), 它並不保證通訊的可靠性。例如IP、UDP就是一種無連線服務的協議。
2、可靠服務和不可靠服務
可靠服務是指網路具有糾錯、檢錯、應答機制, 能保證資料正確、可靠地傳送到目的地。不可靠服務是指網路只是盡暈正確、可靠地傳送, 而不能保證資料正確、可靠地傳送到目的地, 是一種盡力而為的服務。
對於提供不可靠服務的網路, 其網路的正確性、可靠性要由應用或使用者來保障。例如, 使用者收到資訊後要判斷資訊的正確性, 如果不正確, 那麼使用者要把出錯資訊報告給資訊的傳送者,以便傳送者採取糾正措施。通過使用者的這些措施, 可以把不可靠的服務變成可靠的服務。
3、有應答服務和無應答服務
有應答服務是指接收方在收到資料後向傳送方給出相應的應答,該應答由傳輸系統內部自動實現, 而不由使用者實現。所傳送的應答既可以是肯定應答, 也可以是否定應答, 通常在接收到的資料有錯誤時傳送否定應答。例如, 檔案傳輸服務就是一種有應答服務。
無應答服務是指接收方收到資料後不自動給出應答。若需要應答, 則由高層實現。例如, 對 於WWW服務, 客戶端收到伺服器傳送的頁面檔案後不給出應答。
6.ISO/OSI參考模型和TCP/IP模型?
1、參考圖片
2、五層協議
應用層 :為特定應用程式提供資料傳輸服務,例如 HTTP、DNS 等協議。資料單位為報文。
傳輸層 :為程式提供通用資料傳輸服務。由於應用層協議很多,定義通用的傳輸層協議就可以支援不斷增多的應用層協議。運輸層包括兩種協議:傳輸控制協議 TCP,提供面向連線、可靠的資料傳輸服務,資料單位為報文段;使用者資料包協議 UDP,提供無連線、盡最大努力的資料傳輸服務,資料單位為使用者資料包。TCP 主要提供完整性服務,UDP 主要提供及時性服務。(流量控制、差錯控制、服務質量、資料傳輸管理、端到端)
網路層 :為主機提供資料傳輸服務。而傳輸層協議是為主機中的程式提供資料傳輸服務。網路層把傳輸層傳遞下來的報文段或者使用者資料包封裝成分組。(流量控制、擁塞控制、差錯控制、網際互聯)
資料鏈路層 :網路層針對的還是主機之間的資料傳輸服務,而主機之間可以有很多鏈路,鏈路層協議就是為同一鏈路的主機提供資料傳輸服務。資料鏈路層把網路層傳下來的分組封裝成幀。(封裝成幀、差錯控制、流量控制、傳輸管理)
物理層 :考慮的是怎樣在傳輸媒體上傳輸資料位元流,而不是指具體的傳輸媒體。物理層的作用是儘可能遮蔽傳輸媒體和通訊手段的差異,使資料鏈路層感覺不到這些差異。
3、OSI
其中表示層和會話層用途如下:
表示層 :資料壓縮、加密以及資料描述,這使得應用程式不必關心在各臺主機中資料內部格式不同的問題。
會話層 :建立及管理會話。
五層協議沒有表示層和會話層,而是將這些功能留給應用程式開發者處理。
4、TCP/IP
它只有四層,相當於五層協議中資料鏈路層和物理層合併為網路介面層。
TCP/IP 體系結構不嚴格遵循 OSI 分層概念,應用層可能會直接使用 IP 層或者網路介面層。
7.端到端通訊和點到點通訊的區別?
從本質上說,由物理層、資料鏈路層和網路層組成的通訊子網為網路環境中的主機提供點到點的服務, 而傳輸層為網路中的主機提供端到端的通訊。
直接相連的結點之間的通訊稱為點到點通訊, 它只提供一臺機器到另一臺機器之間的通訊,不涉及程式或程式的概念。同時,點到點通訊並不能保證資料傳輸的可靠性,也不能說明源主機與目的主機之間是哪兩個程式在通訊,這些工作都是由傳輸層來完成的。
端到端通訊建立在點到點通訊的基礎上,它是由一段段的點到點通訊通道構成的,是比點到點通訊更高一級的通訊方式,以完成應用程式(程式) 之間的通訊。”端” 是指使用者程式的埠,埠號標識了應用層中不同的程式。
第二章、物理層
快速喚起記憶知識框架
8.如何理解同步和非同步?什麼是同步通訊和非同步通訊?
在計算機網路中,同步(Synchronous)的意思很廣泛,沒有統一的定義。例如,協議的三個要素之一就是“ 同步”。在網路程式設計中常提到的“同步” 則主要指某函式的執行方式, 即函式呼叫者需等待函式執行完後才能進入下一步。非同步(Asynchronous)可簡單地理解為“ 非同步”。在資料通訊中,同步通訊與非同步通訊區別較大。
同步通訊的通訊雙方必須先建立同步, 即雙方的時鐘要調整到同一個頻率。收發雙方不停地傳送和接收連續的同步位元流。主要有兩種同步方式: 一種是全網同步, 即用一個非常精確的主時鐘對全網所有結點上的時鐘進行同步;另一種是準同步, 即各結點的時鐘之間允許有微小的誤差,然後採用其他措施實現同步傳輸。同步通訊資料率較高,但實現的代價也較高。
非同步通訊在傳送字元時,所傳送的字元之間的時間間隔可以是任意的,但接收端必須時刻做好接收的準備。傳送端可以在任意時刻開始傳送字元, 因此必須在每個字元開始和結束的地方加上標誌, 即開始位和停止位,以便使接收端能夠正確地將每個字元接收下來。非同步通訊也可以幀作為傳送的單位。這時,幀的首部和尾部必須設有一些特殊的位元組合,使得接收端能夠找出一幀的開始(即幀定界)。非同步通訊的通訊裝置簡單、便宜,但傳輸效率較低(因為標誌的開銷所佔比例較大)。
9.分頻多工 分時多工 波長分波多工 碼分複用
分頻多工:給每個訊號分配唯一的載波頻率並通過單一媒體來傳輸多個獨立訊號的方法。
分時多工:把多個訊號複用到單個硬體傳輸通道,它允許每個訊號在一個很短的時間使用通道,接著再讓下一個訊號使用。
波長分波多工:就是光的分頻多工。用一根光纖同時傳輸多個頻率很接近的光載波訊號。
碼分複用:碼分複用是用一組包含互相正交的碼字的碼組攜帶多路訊號。每一個使用者可以在同樣的時間使用同樣的頻帶進行通訊。由於各使用者使用經過特殊挑選的不同碼型,各使用者之間不會造成干擾,因此這種系統傳送的訊號有很強的抗干擾能力。
第三章、資料鏈路層
快速喚起記憶知識框架
10.為什麼要進行流量控制?
由於接收發雙方各自的工作速率和快取空間的差異,可能出現傳送方的傳送能力大於接收方的接收能力的現象,如若此時不適當限制傳送方的傳送速率(即鏈路上的資訊流量),前而來不及接收的幀將會被後面不斷髮送輩的幀"淹沒",造成幀的丟失而出錯。
因此流量控制實際上就是限制傳送方的資料流量,使其傳送速率不超過接收方的接收能力。這個過程需要通過某種反饋機制使傳送方能夠知道接收方是否能跟上自己,即需要有一些規則使得傳送方知道在什麼情況下可以接著傳送下一幀而在什麼情況下必須暫停傳送,以等待收到某種反饋資訊後繼續傳送。
11.流量控制的常見方式?
1、停止-等待流量控制方式基本原理(傳送視窗大小=1,接受視窗大小=1)
傳送方每傳送一幀,都要等待接收方的應答訊號,之後才能傳送下一幀;接收方每接收一幀,都要反饋一個應答訊號,表示可接收下一幀,如果接收方不反饋應答訊號,那麼傳送方必須一直等待。每次只允許傳送一幀,然後就陷入等待接收方確認資訊的過程中,因而傳輸效率很低。
2、滑動視窗流量控制方式基本原理
在任意時刻,傳送方都維持一組連續的允許傳送的幀的序號,稱為傳送視窗;同時接收方也維持一組連續的允許接收幀的序號,稱為接收視窗。傳送視窗用來對傳送方進行流量控制,而傳送視窗的大小代表在還未收到對方確認資訊的情況下傳送方最多還可以傳送多少個資料幀。同理,在接收端設定接收視窗是為了控制可以接收哪些資料幀和不可以接收哪些幀。在接收方,只有收到的資料幀的序號落入接收視窗內時,才允許將該資料幀收下。若接收到的資料幀落在接收視窗之外,則一律將其丟棄。
3、後退N幀協議(GBN)(傳送視窗大小>1,接收視窗大小=1)
在後退N 幀式ARQ 中,傳送方無須在收到上一個幀的ACK 後才能開始傳送下一幀,而是可以連續傳送幀。當接收方檢測出失序的資訊幀後,要求傳送方重發最後一個正確接收的資訊幀之後的所有未被確認的幀;或者當傳送方傳送了N 個幀後,若發現該N 個幀的前一個幀在計時器超時後仍未返回其確認資訊,則該幀被判為出錯或丟失,此時傳送方就不得不重傳該出錯幀及隨後的N 個幀。換句話說,接收方只允許按順序接收幀。(接收視窗大小=1則按序接收)
後退N 幀協議一方面因連續傳送資料幀而提高了通道的利用率,另一方面在重傳時又必須把原來已傳送正確的資料幀進行重傳(僅因這些資料幀的前面有一個資料幀出了錯),這種做法又使傳送效率降低。由此可見,若通道的傳輸質量很差導致誤位元速率較大時,後退N 幀協議不一定優於停止-等待協議。
4、選擇重傳協議(SR)(傳送視窗大小>1,接收視窗大小>1)
為進一K步提高通道的利用率,可設法只重傳出現差錯的資料幀或計時器超時的資料幀,但此時必須加大接收視窗,以便先收下傳送序號不連續但仍處在接收視窗中的那些資料幀。等到所缺序號的資料幀收到後再一併送交主機。這就是選擇重傳ARQ 協議。
在選擇重傳協議中,每個傳送緩衝區對應一個計時器,當計時器超時時,緩衝區的幀就會重傳。另外,該協議使用了比上述其他協議更有效的差錯處理策略,即一旦接收方懷疑幀出錯,就會發一個否定幀NAK給傳送方,要求傳送方對NAK中指定的幀進行重傳。
12.可靠傳輸機制有哪些?
資料鏈路層的可靠傳輸通常使用確認和超時重傳兩種機制來完成。
確認是一種無資料的控制幀,這種控制幀使得接收方可以讓傳送方知道哪些內容被正確接收。有些情況下為了提高傳輸效率,將確認捎帶在一個回覆幀中,稱為捎帶確認。超時重傳是指傳送方在傳送某個資料幀後就開啟一個計時器,在一定時間內如果沒有得到傳送的資料幀的確認幀,那麼就重新傳送該資料幀,直到傳送成功為止。
自動重傳請求(Auto Repeat reQuest, ARQ) 通過接收方請求傳送方重傳出錯的資料幀來恢復出錯的幀,是通訊中用於處理通道所帶來差錯的方法之一。傳統自動重傳請求分為三種,即停止-等待(Stop-and-Wait) ARQ 、後退N 幀(Go-Back-N) ARQ 和選擇性重傳(Selective Repeat)ARQ,後兩種協議是滑動視窗技術與請求重發技術的結合,由於視窗尺寸開到足夠大時,幀線上路上可以連續地流動,因此又稱其為連續ARQ 協議。注意,在資料鏈路層中流量控制機制和可靠傳輸機制是交織在一起的。
13.隨機訪問介質訪問控制?
在隨機訪問協議中,不採用集中控制方式(通道劃分介質訪問–分時多工)解決傳送資訊的次序問題,所有使用者能根據自己的意願隨機地傳送資訊,佔用通道全部速率。在匯流排形網路中,當有兩個或多個使用者同時傳送資訊時,就會產生幀的衝突(碰撞,即前面所說的相互干擾),導致所有衝突使用者的傳送均以失敗告終。為了解決隨機接入發生的碰撞,每個使用者需要按照一定的規則反覆地重傳它的幀,直到該幀無碰撞地通過。A/這些規則就是隨機訪問介質訪問控制協議,常用的協議有ALOHA 協議、CSMA協議、CSMA/CD 協議和CSMA/CA 協議等,它們的核心思想都是:勝利者通過爭用獲得通道,從而獲得資訊的傳送權。
1、ALOHA協議
ALOHA協議的思想很簡單,只要使用者有資料要傳送,就儘管讓他們傳送。當然,這樣會產生衝突從而造成幀的破壞。但是,由於廣播通道具有反饋性,因此傳送方可以在傳送資料的過程中進行衝突檢測,將接收到的資料與緩衝區的資料進行比較,就可以知道資料幀是否遭到破壞。同樣的道理,其他使用者也是按照此過程工作。如果傳送方知道資料幀遭到破壞(即檢測到衝突),那麼它可以等待一段隨機長的時間後重發該幀。
2、CSMA協議(載波偵聽多路訪問)(Carrier Sense Multiple Access)
非持續式:
經偵聽,如果介質空閒,開始傳送
如果介質忙,則等待一個隨機分佈的時間,然後重複步驟1
優點:等待一個隨機時間可以減少再次碰撞衝突的可能性
缺點:如果在這個隨機時間內介質上沒有資料傳送,則會發生浪費
1-持續式:
經偵聽,如介質空閒,開始傳送
如介質忙,持續偵聽,一旦空閒立即傳送
如果發生衝突,等待一個隨機分佈的時間再重複步驟1
優點:持續式的延遲時間要少於非持續式
缺點:如果兩個以上的站等待傳送,一旦介質空閒就一定會發生衝突
p-持續式:
經偵聽,如介質空閒,那麼以p的概率傳送,以(1–p)的概率延遲一個時間單元傳送
如介質忙,持續偵聽,一旦空閒重複步驟1
如果傳送已推遲一個時間單元,再重複步驟1
3、CSMA/CD協議(Collision Detection:碰撞檢測)
載波偵聽多路訪問/碰撞檢測(Carrier Sense Multiple Access with Collision Detection,CSMA/CD)
協議是CSMA 協議的改進方案。”載波幀聽”就是傳送前先偵聽,即每個站在傳送資料之前先要檢測一下匯流排上是否有其他站點正在傳送資料,若有則暫時不傳送資料,等待通道變為空閒時再傳送。”碰撞檢測”就是邊傳送邊偵聽,即介面卡邊傳送資料邊檢測通道上訊號電壓的變化情況,以便判斷自己在傳送資料時其他站點是否也在傳送資料。工作流程可簡單概括為“先聽後發,邊聽邊發(區別於CSMA 協議),衝突停發,隨機重發”。
- 介面卡從其父結點獲得一個網路層資料包,準備一個乙太網幀,並把該幀放到介面卡緩衝區中。
- 如果介面卡偵聽到通道空閒,那麼它開始傳輸該幀。如果介面卡偵聽到通道忙,那麼它將等待直至偵聽到沒有訊號能量,然後開始傳輸該幀。
- 在傳輸過程中,介面卡檢測來自其他介面卡的訊號能量。如果這個介面卡傳輸了整個幀,而沒有檢測到來自其他介面卡的訊號能量,那麼這個介面卡完成該幀的傳輸。否則,介面卡就須停止傳輸它的幀,取而代之傳輸一個48 位元的擁塞訊號。
- 在中止(即傳輸擁塞訊號)後,介面卡採用截斷二進位制指數退避演算法等待一段隨機時間後返回到步驟2) 。
4、CSMA/CA協議(Collision Avoidance:碰撞避免)
CSMA/CD 協議已成功應用千使用有線連線的區域網,但在無線區域網環境下,卻不能簡單地搬用CSMA/CD 協議,特別是碰撞檢測部分。主要有兩個原因:
- 接收訊號的強度往往會遠小於傳送訊號的強度,且在無線介質上訊號強度的動態變化範圍很大,因此若要實現碰撞檢測,則硬體上的花費就會過大。
- 在無線通訊中,並非所有的站點都能夠聽見對方,即存在“隱蔽站”問題。為此, 802.11 標準定義了廣泛應用於無線區域網的CSMA/CA 協議,它對CSMA/CD 協議進行了修改,把碰撞檢測改為碰撞避免(Collision Avoidance, CA) 。”碰撞避免”並不是指協議可以完全避免碰撞,而是指協議的設計要儘量降低碰撞發生的概率。CSMA/CA 採用二進位制指數退避演算法。通道從忙態變為空困時,任何一個站要傳送資料幀時,不僅都須等待一個時間間隔,而且還要進入爭用視窗,並計算隨機退避時間以便再次試圖接入通道,因此降低了發生碰撞的概率。CSMA/CA 還使用預約通道、ACK 幀、RTS/CTS 幀等三種機制來實現碰撞避免:
1、預約通道。傳送方在傳送資料的同時向其他站點通知自己傳輸資料需要的時間長度,以便讓其他站點在這段時間內不傳送資料,從而避免碰撞。
2、ACK 幀。所有站點在正確接收到發給自己的資料幀(除廣播幀和組播幀)後,都需要向傳送方發回一個ACK 幀,如果接收失敗,那麼不採取任何行動。傳送方在傳送完一個資料幀後,在規定的時間內如果未收到ACK 幀,那麼認為傳送失敗,此時進行該資料幀的重發,直到收到ACK 幀或達到規定重發次數為止。 - RTS/CTS 幀。可選的碰撞避免機制,主要用於解決無線網中的“隱蔽站”問題。
14.PPP協議?
點到點協議(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接入。
15.HDLC協議?
HDLC協議使用統一的幀格式,運用方便;採用零位元插入法,易於硬體實現,且支援任意的位流傳輸,實現資訊的透明傳輸;全雙工通訊,吞吐率高,在未收到應答幀的情況下,可連續傳送資訊幀,提高資料鏈路傳輸的效率;採用CRC幀校驗序列,可防止漏幀,提高資訊傳輸的可靠性。
主要有四個特點:
(1)對於任何一種位元流都可透明傳輸。
(2)較高的資料鏈路傳輸效率。
(3)所有的幀都有幀校驗序列(FCS),傳輸可靠性高。
(4)用統一的幀格式來實現傳輸。
16.試分析中繼器、集線器、網橋和交換機這四種網路互聯裝置的區別與聯絡。
這四種裝置都是用於互聯、擴充套件區域網的連線裝置,但它們工作的層次和實現的功能不同。
中繼器工作在物理層,用來連線兩個速率相同且資料鏈路層協議也相同的網段,其功能是消除數字訊號在基帶傳輸中由於經過一長段電纜而造成的失真和衰減,使訊號的波形和強度達到所需的要求;其原理是訊號再生。
集線器(Hub) 也工作在物理層,相當於一個多介面的中繼器,它可將多個結點連線成一個共享式的區域網,但任何時刻都只能有一個結點通過公共通道傳送資料。
網橋工作在資料鏈路層,可以互聯不同的物理層、不同的MAC 子層及不同速率的乙太網。網橋具有過濾幀及儲存轉發幀的功能,可以隔離衝突域,但不能隔離廣播域。
交換機工作在資料鏈路層,相當於一個多埠的網橋,是交換式區域網的核心裝置。它允許埠之間建立多個併發連線,實現多個結點之間的併發傳輸。因此,交換機的每個埠結點所佔用的頻寬不會因為埠結點數目的增加而減少,且整個交換機的總頻寬會隨著埠結點的增加而增加。交換機一般工作在全雙工方式,有的區域網交換機採用儲存轉發方式進行轉發,也有的交換機採用直通交換方式(即在收到幀的同時立即按幀的目的MAC 地址決定該幀的轉發埠,而不必先快取再處理)。
第四章、網路層
快速喚起記憶知識框架:
17.路由器的主要功能?
路由器主要完成兩個功能:一是路由選擇(確定哪一條路徑),二是分組轉發(當一個分組到達時所採取的動作)。前者是根據特定的路由選擇協議構造出路由表,同時經常或定期地和相鄰路由器交換路由資訊而不斷地更新和維護路由表。後者處理通過路由器的資料流,關鍵操作是轉發表查詢、轉發及相關的佇列管理和任務排程等。
-
路由選擇。指按照複雜的分散式演算法,根據從各相鄰路由器所得到的關於整個網路拓撲的變化情況,動態地改變所選擇的路由。
-
分組轉發。指路由器根據轉發表將使用者的IP 資料包從合適的埠轉發出去。路由表是根據路由選擇演算法得出的,而轉發表是從路由表得出的。轉發表的結構應當使查詢過程最優化,路由表則需要對網路拓撲變化的計算最優化。在討論路由選擇的原理時,往往不去區分轉發表和路由表,而是籠統地使用路由表一詞。
18.動態路由演算法?
1、距離-向量路由演算法(例如RIP演算法)
在距離-向量路由演算法中,所有結點都定期地將它們的整個路由選擇表傳送給所有與之直接相鄰的結點。這種路由選擇表包含:1.每條路徑的目的地(另一結點)。2.路徑的代價(也稱距離)。
在這種演算法中,所有結點都必須參與距離向量交換,以保證路由的有效性和一致性,也就是說,所有的結點都監聽從其他結點傳來的路由選擇更新資訊,並在下列情況下更新它們的路由選擇表:
- 被通告一條新的路由,該路由在本結點的路由表中不存在,此時本地系統加入這條新的路由。
- 發來的路由資訊中有一條到達某個目的地的路由,該路由與當前使用的路由相比,有較短的距離(較小的代價)。此種情況下,就用經過傳送路由資訊的結點的新路由替換路由表中到達那個目的地的現有路由。
2、鏈路狀態路由演算法(例如OSPF演算法)
鏈路狀態路由演算法要求每個參與該演算法的結點都具有完全的網路拓撲資訊,它們執行下述兩項任務。第一,主動測試所有鄰接結點的狀態。兩個共享一條連結的結點是相鄰結點,它們連線到同一條鏈路,或者連線到同一廣播型物理網路。第二,定期地將鏈路狀態傳播給所有其他結點(或稱路由結點)
距離-向量路由演算法與鏈路狀態路由演算法的比較:在距離-向量路由演算法中,每個結點僅與它的直接鄰居交談,它為它的鄰居提供從自已到網路中所有其他結點的最低費用估計。在鏈路狀態路由演算法中,每個結點通過廣播的方式與所有其他結點交談,但它僅告訴它們與它直接相連的鏈路的費用。相較之下,距離~向量路由演算法有可能遇到路由環路等問題。
3、一個自治系統內部所使用的路由選擇協議稱為內部閘道器協議(IGP), 也稱域內路由選擇,具體的協議有RIP 和OSPF 等。
路由資訊協議(Routing Information Protocol, RIP) 是內部閘道器協議IGP中最先得到廣泛應用的協議。RIP 是一種分散式的基於距離向量的路由選擇協議,其最大優點是簡單。
RIP 規定:
- 網路中的每個路由器都要維護從它自身到其他每個目的網路的距離記錄(因此這是一組距離,稱為距離向量)。
- 距離也稱跳數(Hop Count), 規定從一個路由器到直接連線網路的距離(跳數)為1 。而每經過一個路由器,距離(跳數)加1 。
- RIP 認為好的路由就是它通過的路由器的數目少,即優先選擇跳數少的路徑。
- RIP 允許一條路徑最多隻能包含15 個路由器(即最多允許15 跳)。因此距離等於16 時,它表示網路不可達。可見RIP 只適用於小型網際網路。距離向量路由可能會出現環路的情況,規定路徑上的最高跳數的目的是為了防止資料包不斷迴圈在環路上,減少網路擁塞的可能性。
- RIP 預設在任意兩個使用RIP 的路由器之間每30 秒廣播一次RIP 路由更新資訊,以便自動建立並維護路由表(動態維護)。
開放最短路徑優先(OSPF) 協議是使用分散式鏈路狀態路由演算法的典型代表,也是內部閘道器協議(IGP) 的一種。OSPF 與RIP 相比有以下4 點主要區別:
- OSPF 向本自治系統中的所有路由器傳送資訊,這裡使用的方法是洪泛法。而RIP 僅向自已相鄰的幾個路由器傳送資訊。
- 傳送的資訊是與本路由器相鄰的所有路由器的鏈路狀態,但這只是路由器所知道的部分資訊。鏈路狀態”說明本路由器和哪些路由器相鄰及該鏈路的“度量”(或代價)。而在RIP 中,傳送的資訊是本路由器所知道的全部資訊,即整個路由表。
- 只有當鏈路狀態發生變化時,路由器才用洪泛法向所有路由器傳送此資訊,並且更新過程收斂得快,不會出現RIP" 壞訊息傳得慢"的問題。而在RIP 中,不管網路拓撲是否發生變化,路由器之間都會定期交換路由表的資訊。
除以上區別外, OSPF 還有以下特點:
- OSPF 對不同的鏈路可根據IP 分組的不同服務型別(TOS) 而設定成不同的代價。因此,OSPF 對千不同型別的業務可計算出不同的路由,十分靈活。
- 如果到同一個目的網路有多條相同代價的路徑,那麼可以將通訊量分配給這幾條路徑。這稱為多路徑間的負載平衡。
- 所有在OSPF 路由器之間交換的分組都具有鑑別功能,因而保證了僅在可信賴的路由器之間交換鏈路狀態資訊。
4、 自治系統之間所使用的路由選擇協議稱為外部閘道器協議(EGP), 也稱域間路由選擇,用在不同自治系統的路由器之間交換路由資訊,並負責為分組在不同自治系統之間選擇最優的路徑。具體的協議有BGP 。
邊界閘道器協議(Border Gateway Protocol, BGP) 是不同自治系統的路由器之間交換路由資訊的協議,是一種外部閘道器協議。邊界閘道器協議常用於網際網路的閘道器之間。路由表包含已知路由器的列表、路由器能夠達到的地址及到達每個路由器的路徑的跳數。內部閘道器協議主要設法使資料包在一個AS 中儘可能有效地從源站傳送到目的站。在一個AS內部不需要考其他方面的策略。然而BGP 使用的環境卻不同,主要原因如下:
- 因特網的規模太大,使得自治系統之間路由選擇非常困難。
- 對於自治系統之間的路由選擇,要尋找最佳路由是很不現實的。
- 自治系統之間的路由選擇必須考慮有關策略。
邊界閘道器協議(BGP) 只能力求尋找一條能夠到達目的網路且比較好的路由(不能兜圈子),而並非尋找一條最佳路由。BGP 採用的是路徑向量路由選擇協議,它與距離向量協議和鏈路狀態協議有很大的區別。BGP 是應用層協議,它是基於TCP 的。
BGP 的工作原理如下:每個自治系統的管理員要選擇至少一個路由器(可以有多個)作為該自治系統的"BGP 發言人“。一個BGP 發言人與其他自治系統中的BGP 發言人要交換路由資訊,就要先建立TCP 連線(可見BGP 報文是通過TCP 傳送的,也就是說BGP 報文是TCP 報文的資料部分),然後在此連線上交換BGP 報文以建立BGP 會話,再利用BGP 會話交換路由資訊。當所有BGP 發言人都相互交換網路可達性的資訊後,各BGP 發言人就可找出到達各個自治系統的較好路由。
19.網路層轉發分組的流程?
- 從資料包的首部提取目的主機的IP 地址D, 得出目的網路地址N。
- 若網路N 與此路由器直接相連,則把資料包直接交付給目的主機D, 這稱為路由器的直接交付;否則是間接交付,執行步驟3) 。
- 若路由表中有目的地址為D 的特定主機路由(對特定的目的主機指明一個特定的路由,通常是為了控制或測試網路,或出千安全考慮才採用的),則把資料包傳送給路由表中所指明的下一跳路由器;否則執行步驟4)。
- 若路由表中有到達網路N 的路由,則把資料包傳送給路由表指明的下一跳路由器;否則,執行步驟5) 。
- 若路由表中有一個預設路由,則把資料包傳送給路由表中所指明的預設路由器;否則,執行步驟6) 。
- 報告轉發分組出錯。
注意:得到下一跳路由器的IP 地址後並不是直接將該地址填入待傳送的資料包,而是將該IP 地址轉換成MAC 地址(通過ARP),將其放到MAC 幀首部中,然後根據這個MAC 地址找到下一跳路由器。在不同網路中傳送時, MAC 幀中的源地址和目的地址要發生變化,但是網橋在轉發幀時,不改變幀的源地址,請注意區分。
20.IP地址和MAC地址?
IP 地址是網路層使用的地址,它是分層次等級的。MAC地址是資料鏈路層使用的地址,它是平面式的。在網路層及網路層之上使用IP 地址, IP 地址放在IP 資料包的首部,而MAC 地址放在MAC幀的首部。通過資料封裝,把IP 資料包分組封裝為MAC 幀後,資料鏈路層看不見資料包分組中的IP地址。
由於路由器的隔離,IP 網路中無法通過廣播方式依靠MAC 地址來完成跨網路的定址,因此在IP網路的網路層只使用IP 地址來完成定址。定址時,IP每個路由器依據其路由表(依靠靜態路由或動態路由協議生成)選擇到目標網路(即主機號全為0 的網路地址)需要轉發到的下一跳(路由器的物理埠號或下一網路地址),而IP 分組通過多次路由轉發到達目標網路後,改為在目標LAN 中通過資料鏈路層的MAC 地址以廣播方式定址。這樣可以提高路由選擇的效率。
注意:路由器由於互聯多個網路,因此它不僅有多個IP 地址,也有多個硬體地址。
21.ARP地址解析協議?
無論網路層使用什麼協議,在實際網路的鏈路上傳送資料幀時,最終必須使用硬體地址。所以需要一種方法來完成IP 地址到MAC 地址的對映,這就是地址解析協議(Address ResolutionProtocol)。每臺主機都設有一個ARP 快取記憶體,用來存放本區域網上各主機和路由器的IP地址到MAC 地址的對映表,稱ARP 表。使用ARP 來動態維護此ARP 表。
ARP 工作在網路層,其工作原理如下:主機A 欲向本區域網上的某臺主機B 傳送IP 資料包時,先在其ARP 快取記憶體中檢視有無主機B 的IP 地址。如有,就可查出其對應的硬體地址,再將此硬體地址寫入MAC 幀,然後通過區域網將該MAC 幀發往此硬體地址。如果沒有,那麼就通過使用目的MAC 地址為FF-FF-FF-FF-FF-FF 的幀來封裝並廣播ARP 請求分組,使同一個區域網裡的所有主機收到ARP 請求。主機B 收到該ARP 請求後,向主機A 發出響應ARP 分組,分組中包含主機B 的IP與MAC 地址的對映關係,主機A 在收到後將此對映寫入ARP 快取,然後按查詢到的硬體地址傳送MAC 幀。ARP 由於“看到了"IP 地址,所以它工作在網路層,而NAT路由器由於“看到了“埠,所以它工作在傳輸層。
注意: ARP 用於解決同一個區域網上的主機或路由器的IP 地址和硬體地址的對映問題。如果所要找的主機和源主機不在同一個區域網上,那麼就要通過ARP 找到一個位於本區域網上的某個路由器的硬體地址,然後把分組傳送給這個路由器,讓這個路由器把分組轉發給下一個網路。剩下的工作就由下一個網路來做,儘管ARP 請求分組是廣播傳送的,但ARP 響應分組是普通的單播,即從一個源地址傳送到一個目的地址。
22.DHCP動態主機配置協議?
動態主機配置協議(Dynamic Host Configuration Protocol, DHCP) 常用於給主機動態地分配IP 地址,它提供了即插即用聯網的機制,這種機制允許一臺計算機加入新的網路和獲取IP 地址而不用手工參與。DHCP 是應用層協議,它是基於UDP 的。
DHCP 的工作原理如下:使用客戶/伺服器方式。需要IP 地址的主機在啟動時就向DHCP 伺服器廣播傳送發現報文,這時該主機就成為DHCP 客戶。本地網路上所有主機都能收到此廣播報文,但只有DHCP 伺服器才回答此廣播報文。DHCP 伺服器先在其資料庫中查詢該計算機的配置資訊。若找到,則返回找到的資訊。若找不到,則從伺服器的IP 地址池中取一個地址分配給該計算機。DHCP 伺服器的回答報文稱為提供報文。
DHCP 伺服器聚合DHCP 客戶端的交換過程如下:
- DHCP 客戶機廣播"DHCP 發現“訊息,試圖找到網路中的DHCP 伺服器,以便從DHCP伺服器獲得一個IP 地址。
- DHCP 伺服器收到"DHCP 發現訊息後,向網路中廣播"DHCP 提供“訊息,其中包括提供DHCP客戶機的IP 地址和相關配置資訊。
- DHCP 客戶機收到"DHCP 提供“訊息,如果接收DHCP 伺服器所提供的相關引數,那麼通過廣播"DHCP 請求“訊息向DHCP 伺服器請求提供IP 地址。
- DHCP 伺服器廣播"DHCP 確認“訊息,將IP 地址分配給DHCP 客戶機。
DHCP 允許網路上配置多臺DHCP 伺服器,當DHCP 客戶機發出DHCP 請求時,有可能收到多個應答訊息。這時,DHCP 客戶機只會挑選其中的一個,通常挑選最先到達的。DHCP 伺服器分配給DHCP 客戶的IP 地址是臨時的,因此DHCP 客戶只能在一段有限的時間內使用這個分配到的IP 地址。DHCP 稱這段時間為租用期。租用期的數值應由DHCP 伺服器自己決定, DHCP 客戶也可在自已傳送的報文中提出對租用期的要求。
23.ICMP網際控制報文協議?
為了提高IP 資料包交付成功的機會,在網路層使用了網際控制報文協議(Internet ControlMessage Protocol, ICMP) 來讓主機或路由器報告差錯和異常情況。ICMP 報文作為IP 層資料包的資料,加上資料包的首部,組成IP 資料包傳送出去。ICMP 是IP 層協議。ICMP 報文的種類有兩種,即ICMP 差錯報告報文和ICMP 詢問報文。ICMP 差錯報告報文用於目標主機或到目標主機路徑上的路由器向源主機報告差錯和異常情況。共有以下5種型別:
- 終點不可達。當路由器或主機不能交付資料包時,就向源點傳送終點不可達報文。
- 源點抑制。當路由器或主機由於擁塞而丟棄資料包時,就向源點傳送源點抑制報文,使源點知道應當把資料包的傳送速率放慢。
- 時間超過。當路由器收到生存時間(TTL) 為零的資料包時,除丟棄該資料包外,還要向源點傳送時間超過報文。當終點在預先規定的時間內不能收到一個資料包的全部資料包片時,就把已收到的資料包片都丟棄,並向源點傳送時間超過報文。
- 引數問題。當路由器或目的主機收到的資料包的首部中有的欄位的值不正確時,就丟棄該資料包,並向源點傳送引數問題報文。
- 改變路由(重定向)。路由器把改變路由報文傳送給主機,讓主機知道下次應將資料包傳送給另外的路由器(可通過更好的路由)。
第五章、傳輸層
快速喚起記憶知識框架:
24.傳輸層的功能?
從通訊和資訊處理的角度看,傳輸層向它上面的應用層提供通訊服務,它屬千面向通訊部分的最高層,同時也是使用者功能中的最低層。傳輸層位於網路層之上,它為執行在不同主機上的程式之間提供了邏輯通訊,而網路層提供主機之間的邏輯通訊。顯然,即使網路層協議不可靠(網路層協議使分組丟失、混亂或重複),傳輸層同樣能為應用程式提供可靠的服務。
傳輸層的功能如下:
-
傳輸層提供應用程式之間的邏輯通訊(即端到端的通訊)。與網路層的區別是,網路層提供的是主機之間的邏輯通訊。從網路層來說,通訊的雙方是兩臺主機,IP 資料包的首部給出了這兩臺主機的IP地址。但“兩臺主機之間的通訊”實際上是兩臺主機中的應用程式之間的通訊,應用程式之間的通訊又稱端到端的邏輯通訊。
-
複用和分用。複用是指傳送方不同的應用程式都可使用同一個傳輸層協議傳送資料;分用是指接收方的傳輸層在剝去報文的首部後能夠把這些資料正確交付到目的應用程式。
-
傳輸層還要對收到的報文進行差錯檢測(首部和資料部分)。而網路層只檢查IP 資料包的首 部,不檢驗資料部分是否出錯。
-
提供兩種不同的傳輸協議,即面向連線的TCP 和無連線的UDP 。而網路層無法同時實現兩種協議(即在網路層要麼只提供面向連線的服務,如虛電路;要麼只提供無連線服務,如資料包,而 不可能在網路層同時存在這兩種方式)。
25.UDP協議?
RFC 768 定義的UDP 只是做了傳輸協議能夠做的最少工作,它僅在IP 的資料包服務之上增加了兩個最基本的服務:複用和分用以及差錯檢測。如果應用程式開發者選擇UDP 而非TCP,那麼應用程式幾乎直接與IP 打交道。為什麼應用開發人員寧願在UDP 之上構建應用,也不選擇TCP? 既然TCP提供可靠的服務,而UDP 不提供,那麼TCP 總是首選嗎?答案是否定的,因為有很多應用更適合用UDP,主要是因為UDP 具有如下優點:
- UDP 無須建立連線。因此UDP 不會引入建立連線的時延。試想如果DNS 執行在TCP 而非UDP上,那麼DNS 的速度會慢很多。HTTP 使用TCP 而非UDP, 是因為對於基於文字資料的Web網頁來說可靠性是至關重要的。
- 無連線狀態。TCP 需要在端系統中維護連線狀態。此連線狀態包括接收和傳送快取、擁塞控制引數和序號與確認號的引數。而UDP 不維護連線狀態,也不跟蹤這些引數。因此,某些專用應用伺服器使用UDP 時,一般都能支援更多的活動客戶機。
- 分組首部開銷小。TCP 有20B 的首部升銷,而UDP 僅有8B 的升銷。
- 應用層能更好地控制要傳送的資料和傳送時間。UDP 沒有擁塞控制,因此網路中的擁塞不會影響主機的傳送效率。某些實時應用要求以穩定的速度傳送,能容忍一些資料的丟失,但不允許有較大的時延,而UDP 正好滿足這些應用的需求。UDP 常用於一次性傳輸較少資料的網路應用如DNS 、SNMP 等,因為對千這此應用,若採用TCP, 則將為連線建立、維護和拆除帶來不小的開銷。UDP 也常用於多媒體應用(如IP 電話、實時視訊會議、流媒體等),顯然,可靠資料傳輸對這些應用來說並不是最重要的,但TCP的擁塞控制會導致資料出現較大的延遲,這是它們不可容忍的。
UDP 提供盡最大努力的交付,即不保證可靠交付,但這並不意味著應用對資料的要求是不可靠的,因此所有維護傳輸可靠性的工作需要使用者在應用層來完成。應用實體可以根據應用的需求來靈活設計自己的可靠性機制。
26.TCP協議?
TCP 是在不可靠的IP 層之上實現的可靠的資料傳輸協議,它主要解決傳輸的可靠、有序、無丟失和不重複問題。TCP 是TCP/IP 體系中非常複雜的一個協議,主要特點如下:
- TCP 是面向連線的傳輸層協議。
- 每條TCP 連線只能有兩個端點,每條TCP 連線只能是點對點的(一對一)。
- TCP 提供可靠的交付服務,保證傳送的資料無差錯、不丟失、不重複且有序。
- TCP 提供全雙工通訊,允許通訊雙方的應用程式在任何時候都能傳送資料,為此TCP 連線的兩端都設有傳送快取和接收快取,用來臨時存放雙向通訊的資料。傳送快取用來暫時存放以下資料:(1)傳送應用程式傳送給傳送方TCP 準備傳送的資料;(2)TCP 已傳送但尚未收到確認的資料。
接收快取用來暫時存放以下資料:(1)按序到達但尚未被接收應用程式收取的資料;(2)不按序到達的資料。
TCP連線的建立
在TCP 連線建立的過程中,要解決以下三個問題:
- 要使每一方都能夠確知對方的存在。
- 要允許雙方協商一些引數(如最大視窗值、是否使用視窗擴大選項、時間戳選項及服務質量等)。
- 能夠對運輸實體資源(如快取大小、連線表中的專案等)進行分配。
三次握手建立連線
第一步:客戶機的TCP 首先向伺服器的TCP 傳送一個連線請求報文段。這個特殊的報文段中不含應用層資料,其首部中的SYN標誌位被置為1 。另外,客戶機會隨機選擇一個起始序號seq =x(連線請求報文不攜帶資料,但要消耗一個序號)。
第二步:伺服器的TCP 收到連線請求報文段後,如同意建立連線,就向客戶機發回確認,併為該TCP 連線分配TCP 快取和變數。在確認報文段中, SYN 和ACK 位都被置為1, 確認號欄位的值為x+ 1, 並且伺服器隨機產生起始序號seq= y( 確認報文不攜帶資料,但也要消耗一個序號)。確認報文段同樣不包含應用層資料。
第三步:當客戶機收到確認報文段後,還要向伺服器給出確認,並且也要給該連線分配快取和變數。這個報文段的ACK 標誌位被置1, 序號欄位為x+ 1, 確認號欄位ack=y+ 1 。該報文段可以攜帶資料,若不攜帶資料則不消耗序號。
成功進行以上三步後,就建立了TCP 連線,接下來就可以傳送應用層資料。TCP 提供的是全雙工通訊,因此通訊雙方的應用程式在任何時候都能傳送資料。另外,值得注意的是,伺服器端的資源是在完成第二次握手時分配的,而客戶端的資源是在完成第三次握手時分配的,這就使得伺服器易於受到SYN 洪泛攻擊。
四次握手釋放連線
第一步:客戶機打算關閉連線時,向其TCP 傳送一個連線釋放報文段,並停止傳送資料,主動關閉TCP 連線,該報文段的FIN 標誌位被置1, seq= u, 它等於前面已傳送過的資料的最後一個位元組的序號加1 (FIN 報文段即使不攜帶資料,也要消耗一個序號)。TCP 是全雙工的,即可以想象為一條TCP 連線上有兩條資料通路。傳送FIN 報文時,傳送FIN 的一端不能再傳送資料,即關閉了其中一條資料通路,但對方還可以傳送資料。
第二步:伺服器收到連線釋放報文段後即發出確認,確認號是ack = u + 1, 而這個報文段自己的序號是V, 等於它前面已傳送過的資料的最後一個位元組的序號加1 。此時,從客戶機到伺服器這個方向的連線就釋放了, TCP 連線處於半關閉狀態。但伺服器若傳送資料,客戶機仍要接收,即從伺服器到客戶機這個方向的連線並未關閉。
第三步:若伺服器已經沒有要向客戶機傳送的資料,就通知TCP 釋放連線,此時其發出FIN= 1 的連線釋放報文段。
第四步:客戶機收到連線釋放報文段後,必須發出確認。在確認報文段中, ACK 欄位被置為1, 確認號ack= w + 1, 序號seq= u + 1 。此時TCP 連線還未釋放,必須經過時間等待計時器設定的時間2MSL 後, A 才進入連線關閉狀態。
對上述TCP 連線建立和釋放的總結如下:
- 連線建立。分為3 步:
1、SYN = 1, seq = x 。
2、SYN= 1, ACK= 1, seq= y, ack = x + 1 。
3、ACK= 1, seq= x + 1, ack = y + l 。 - 釋放連線。分為4 步:
1、FIN= 1, seq =u 。
2、ACK = 1, seq = v, ack = u + 1 。
3、FIN= 1, ACK= 1, seq= w, ack = u + 1 。
4、ACK= 1, seq= u + 1, ack = w + 1。
27.擁塞控制的四種演算法?
所謂擁塞控制,是指防止過多的資料注入網路,保證網路中的路由器或鏈路小致過載。出現擁塞時,端點並不瞭解到擁塞發生的細節,對通訊連線的端點來說,擁塞往往表現為通訊時延的增加。當然,擁塞控制和流量控制也有相似的地方,即它們都通過控制傳送方傳送資料的速率來達到控制效果。
擁塞控制與流量控制的區別:擁塞控制是讓網路能夠承受現有的網路負荷,是一個全域性性的過程,涉及所有的主機、所有的路由器,以及與降低網路傳輸效能有關的所有因素。相反,流量控制往往是指點對點的通訊量的控制,即接收端控制傳送端,它所要做的是抑制傳送端傳送資料的速率,以便使接收端來得及接收。
1、慢開始演算法(接收視窗rwnd,擁塞視窗cwnd)
在TCP 剛剛連線好並開始傳送TCP 報文段時,先令擁塞視窗cwnd = 1, 即一個最大報文段長度MSS 。每收到一個對新報文段的確認後,將cwnd 加1, 即增大一個MSS 。用這樣的方法逐步增大傳送方的擁塞視窗cwnd, 可使分組注入網路的速率更加合理。使用慢開始演算法後,每經過一個傳輸輪次(即往返時延RTT), 擁塞視窗cwnd 就會加倍,即cwnd 的大小指數式增長。這樣,慢開始一直把擁塞視窗cwnd 增大到一個規定的慢開始門限ssthresh(闊值),然後改用擁塞避免演算法。
2、擁塞避免演算法
擁寒避免演算法的做法如下:傳送端的擁塞視窗cwnd 每經過一個往返時延RTT 就增加一個MSS的大小,而不是加倍,使cwnd 按線性規律緩慢增長(即加法增大),而當出現一次超時(網路擁塞)時,令慢開始門限ssthresh 等於當前cwnd 的一半(即乘法減小)。
3、快重傳
快重傳技術使用了冗餘ACK 來檢測丟包的發生。同樣,冗餘ACK 也用千網路擁塞的檢測(丟了包當然意味著網路可能出現了擁塞)。快重傳並非取消重傳計時器,而是在某些情況下可更早地重傳丟失的報文段。當傳送方連續收到三個重複的ACK 報文時,直接重傳對方尚未收到的報文段,而不必等待那個報文段設定的重傳計時器超時。
4、快恢復
快恢復演算法的原理如下:傳送端收到連續三個冗餘ACK (即重複確認)時,執行“乘法減小”演算法,把慢開始門限ssthresh 設定為出現擁塞時傳送方cwnd 的一半。與慢開始(慢開始演算法將擁塞視窗cwnd 設定為1) 的不同之處是,它把cwnd 的值設定為慢開始門限ssthresh 改變後的數值,然後開始執行擁塞避免演算法(“加法增大”)'使擁塞視窗緩慢地線性增大。由於跳過了cwnd 從1 起始的慢開始過程,所以被稱為快恢復。
28.為何不採用“三次握手“釋放連線,且傳送最後一次握手報文後要等待2MSL 的時間呢?
原因有兩個:
- 保證A 傳送的最後一個確認報文段能夠到達B 。如果A 不等待2MSL, 若A 返回的最後確認報文
段丟失,則B 不能進入正常關閉狀態,而A 此時已經關閉,也不可能再重傳。 - 防止出現“已失效的連線請求報文段“。A 在傳送最後一個確認報文段後,再經過2MSL可保證本
連線持續的時間內所產生的所有報文段從網路中消失。
伺服器結束TCP 連線的時間要比客戶機早一些,因為客戶機最後要等待2MSL 後才可進入CLOSED狀態。
29.為什麼不採用“兩次握手”建立連線呢?
這主要是為了防止兩次握手情況下已失效的連線請求報文段突然又傳送到伺服器而產生錯誤。考慮下面這種情況。客戶A 向伺服器B 發出TCP 連線請求,第一個連線請求報文在網路的某個結點長時間滯留, A 超時後認為報文丟失,千是再重傳一次連線請求, B 收到後建立連線。資料傳輸完畢後雙方斷開連線。而此時,前一個滯留在網路中的連線請求到達伺服器B, 而B 認為A 又發來連線請求,此時若使用“三次握手”,則B 向A 返回確認報文段,由於是一個失效的請求,因此A 不予理睬,建立連線失敗。若採用的是“兩次握手”,則這種情況下B 認為傳輸連線已經建立,並一直等待A 傳輸資料,而A 此時並無連線請求,因此不予理睬,這樣就造成了B的資源白白浪費。
第六章、應用層
快速喚起記憶知識框架:
30.DNS域名解析協議?
域名解析是指把域名對映成為IP 地址或把IP 地址對映成域名的過程。前者稱為正向解析,後者稱為反向解析。當客戶端需要域名解析時,通過本機的DNS 客戶端構造一個DNS 請求報文,以UDP資料包方式發往本地域名伺服器。域名解析有兩種方式:遞迴查詢和遞迴與迭代相結合的查詢。
31.FTP檔案傳輸協議?
檔案傳輸協議(file Transfer Protocol, FTP) 是因特網上使用得最廣泛的檔案傳輸協議。FTP提供互動式的訪問,允許客戶指明檔案的型別與格式,並允許檔案具有存取許可權。它遮蔽了各計算機系統的細節,因而適合於在異構網路中的任意計算機之間傳送檔案。FTP 提供以下功能:
(1)提供不同種類主機系統(硬、軟體體系等都可以不同)之間的檔案傳輸能力。
(2)以使用者許可權管理的方式提供使用者對遠端FTP 伺服器上的檔案管理能力。
(3)以匿名FTP 的方式提供公用檔案共享的能力。
FTP 採用客戶/伺服器的工作方式,它使用TCP 可靠的傳輸服務。一個FTP 伺服器程式可同時為多個客戶程式提供服務。FTP 的伺服器程式由兩大部分組成:一個主程式,負責接收新的請求;另外有若干從屬程式,負責處理單個請求。其工作步驟如下:
(1)開啟熟知埠21 (控制埠),使客戶程式能夠連線上。
(2)等待客戶程式發連線請求。
(3)啟動從屬程式來處理客戶程式發來的請求。主程式與從屬程式併發執行,從屬程式對客戶程式的請求處理完畢後即終止。
(4)回到等待狀態,繼續接收其他客戶程式的請求。
32.SMTP簡單郵件傳輸協議?
簡單郵件傳輸協議(Simple Mail Transfer Protocol, SMTP) 是一種提供可靠且有效的電子郵件傳輸的協議,它控制兩個相互通訊的SMTP 程式交換資訊。由於SMTP 使用客戶/伺服器方式,因此負責傳送郵件的SMTP 程式就是SMTP 客戶,而負責接收郵件的SMTP 程式就是SMTP 伺服器。SMTP 用的是TCP 連線,埠號為25 。SMTP 通訊有以下三個階段:(1) 連線建立(2) 郵件傳送(3)連線釋放。
33.POP3
郵局協議(Post Office Protocol, POP) 是一個非常簡單但功能有限的郵件讀取協議,現在使用的是它的第3 個版本POP3 。POP3 採用的是“拉" (Pull) 的通訊方式,當使用者讀取郵件時,使用者代理向郵件伺服器發出請求,“拉”取使用者郵箱中的郵件。POP 也使用客戶/伺服器的工作方式,在傳輸層使用TCP, 埠號為110 。接收方的使用者代理上必須執行POP 客戶程式,而接收方的郵件伺服器上則執行POP 伺服器程式。POP 有兩種工作方式:“下載並保留”和“下載並刪除"。在“下載並保留”方式下,使用者從郵件伺服器上讀取郵件後,郵件依然會儲存在郵件伺服器上,使用者可再次從伺服器上讀取該郵件;而使用“下載並刪除“方式時,郵件一旦被讀取,就被從郵件伺服器上刪除,使用者不能再次從伺服器上讀取。
隨著全球資訊網的流行,目前出現了很多基於全球資訊網的電子郵件,如Hotmail 、Gmail 等。這種電子郵件的特點是,使用者瀏覽器與Hotmail 或Gmail 的郵件伺服器之間的郵件傳送或接收使用的是HTTP, 而僅在不同郵件伺服器之間傳送郵件時才使用SMTP
34.HTTP超文字傳輸協議?
HTTP 定義了瀏覽器(全球資訊網客戶程式)怎樣向全球資訊網伺服器請求全球資訊網文件,以及伺服器怎樣把文件傳送給瀏覽器。從層次的角度看, HTTP 是面向事務的(Transaction-oriented) 應用層協議,它規定了在瀏覽器和伺服器之間的請求和響應的格式與規則,是全球資訊網上能夠可靠地交換檔案(包括文字、聲音、影像等各種多媒體檔案)的重要基礎。
使用者單擊滑鼠後所發生的事件按順序如下(以訪問清華大學的網站為例):
- 瀏覽器分析連結指向頁面的URL : http://www.tsinghua.edu.cn /chn/index.htm.
- 瀏覽器向DNS 請求解析: www.tsinghuaaedu.CR 的IP 地址。
- 域名系統統DNS 臚祈出清畢大學伺服器的IP 地址。
- 瀏覽器與該伺服器建立TCP 連線(預設埠號為80) 。
- 瀏覽器發出HTTP 請求: GET /chn/index.htm 。
- 伺服器通過HTTP 響應把檔案index.htm 傳送給瀏覽器。
- TCP 連線釋放。
- 瀏覽器解釋檔案index.htm, 並將Web 頁顯示給使用者。
相關文章
- 計算機網路複習計算機網路
- 程式設計師面試常問計算機網路問題程式設計師面試計算機網路
- 計算機網路期末複習 第四講 網路應用工作原理計算機網路
- 計算機網路複習筆記計算機網路筆記
- 計算機網路教材回顧計算機網路
- 計算機組成原理期末複習小結計算機
- 計算機網路 複習-01-概述計算機網路
- 計算機網路——多路複用與多路分解計算機網路
- 計算機常識——零複製計算機
- 計算機網路面試問題總結計算機網路面試
- 計算機概念——io 複用計算機
- 計算機網路(王道考研筆記)計算機網路筆記
- 【計算機網路】資料鏈路層 | 複習筆記計算機網路筆記
- 一文輕鬆讀懂計算機病毒計算機
- 計網期末複習-應用層
- 增補部落格 第三十篇 計算機網路複習五計算機網路
- 計算機網路自頂向下方法:第一章 計算機網路和因特網 課後複習題計算機網路
- 網路傳輸的大小端-計算機網路複習筆記計算機網路筆記
- 計算機網路經典20問!計算機網路
- 增補部落格 第二十六篇 計算機網路複習一計算機網路
- 增補部落格 第二十八篇 計算機網路複習三計算機網路
- 增補部落格 第二十九篇 計算機網路複習四計算機網路
- 計算機組成原理期末考試題計算機
- 計算機基礎知識複習計算機
- 計算機二級Java複習1計算機Java
- 計算機組成原理複習0625計算機
- 王道計算機網路複習(1)j第一章計算機網路的體系結構,計算機網路的概念,資源共享,計算機網路分類,計算機網路的標準化工作以及相關的組織計算機網路
- 【計算機網路】介質訪問控制計算機網路
- 計算機概念——零複製計算機
- 計算機面試重難點之計算機網路面試計算機網路
- 基礎面試題 — 計算機網路面試題計算機網路
- 計算機網路學習計算機網路
- 計算機網路——開篇 概述計算機網路
- 計算機網路複習筆記 - HTTP 1.0 / 1.1 / 2.0 的區別計算機網路筆記HTTP
- java3D與計算機圖形學期末複習 第二章Java3D計算機
- 前端面試題 | 計算機網路基礎篇前端面試題計算機網路
- AI/機器學習(計算機視覺/NLP)方向面試複習1AI機器學習計算機視覺面試
- 計算機網路自頂向下方法:第二章 應用層 課後複習題計算機網路