1. 程式人生 > >《計算機網路》第5章 網路層

《計算機網路》第5章 網路層

1.瞭解網路層的主要功能

主要功能就是:將源端資料包一路送到接收方。

無連線服務的實現:資料報子網

對於無連線服務來說每個資料包都獨立地被注入到網路中,並且每個資料包獨立路由,不需要建立任何設定(X.25, ATM)

面向連線服務的實現:虛電路子網

      面向連線的服務,需要一個虛電路網路,虛電路的目的是避免為每個資料包選擇一條新路徑,當建立一個連線時,從源機器到目標機器之間的一條路徑就被當做這個連線的一部分被確定下來。(IP)

2.理解路由演算法原理

  • 靜態路由選擇演算法
    • Dijkstra
    • flooding
  • 動態路由選擇演算法
    • 距離向量路由(DV)
    • 鏈路狀態路由(LS)

最優化原則:如果一個路由器 J 處在路由器I到路由器K的最優路徑上,那麼,從路由器J到路由器K的最優路徑也在同樣的這條路徑上。

沉落樹( sink tree )、彙集樹:從所有的源到一個給定的目的的最優路徑形成的一棵樹,樹根是目的結點。彙集樹不必是唯一的

什麼時候使用靜態/動態路由?

靜態路由:管理員手工配置的路由

  • 適合小型的、靜態的網路,開銷小

動態路由:由路由選擇協議動態地建立、更新和維護的路由

  • 適合大型的、經常變動的網路,需要維護開銷
  • 減少了網路管理員的負擔

3.理解Dijkstra演算法

Dijkstra演算法:使用權重計算通訊線路中的最短(優,代價最小)路徑。

演算法步驟:

1. 初始化


2. 找到一個不在集合 N 中的節點w ,但它的D(w)最小,把w加入到集合 N 中;那麼,所有不在集合N中的節點,使用 min[D(v), D(w) + l(w,v)] 去替換 D(v):

3.重複第二步,直到所有的節點都包含在集合N中。

例子

求下圖以A為根的沉落樹。


解答:

 

擴散/泛洪法(Flooding)

每個到達分組都被從除了到達埠外的所有其它埠轉發出去(不計算路徑,有路就走)

重複分組解決辦法

  • 在分組頭增加一個計數器(counter),每經過一個節點,計算器減 1 ,當計數器變為零時,報文被丟棄。
  • 每個節點設立一個登記表,當分組第二次到達時,被丟棄。
  • 選擇性擴散

缺點:重複分組太多,浪費頻寬

優點:可靠性高、路徑最短/優,常用於軍事

4.掌握距離向量路由演算法DV及DV例項Rip

距離向量路由選擇:每個路由器維護一張表,表中列出了當前已知的到每個目標的最佳距離,以及為了到達那個目標,應該從哪個目標轉發的線路(埠)。這些表通過鄰居之間相互交換資訊而不斷更新,最終每個路由器都瞭解到達每個目的地的最佳鏈路。

DV的工作原理

  • 每個路由器(節點)維護兩個向量,Di和Si ,分別表示從該路由器到所有其它路由器的距離及相應的下一跳(next hop)
  • 在鄰居路由器之間交換路由資訊(向量)
  • 每個路由器(節點)根據收到的向量資訊,更新自己的路由表


  • di1:從節點i到節點1的度量(代價)
  • si1 :沿著從節點i到節點1的最優路徑上的下一跳
  • n :網路中的節點數

當鄰居間交換了向量資訊之後:

  • 更新距離: dij= Min[dix+ dxj] ( x ∈A )   【A—節點i的鄰居集合】
  • 更新下一跳: Sij= x

例子

一個網路拓撲如下,某個時刻,路由器C接收到三個鄰居發過來的向量如下:

                                 A       B     C     D     E     F

From router B:(5, 0, 8, 12, 6, 2)

From router D:(16, 12, 6, 0, 9, 10)

From router E:(7,6, 3, 9, 0, 4)

現在,路由器C到 B、 D 和 E 的代價分別是 6、3 和 5,試回答路由器C更新後的路由表

解答

分析:通過路由器 B、 D 和 E進行轉發的話,路由器C的向量分別是:

Via router B:( 11, 6, 14, 18, 12 , 8)

Via router D: ( 19, 15, 9, 3, 12, 13)

Via router E: ( 12 , 11, 8, 14, 5, 9)

所以,路由器C更新後的路由表如下:

( 11, 6, 0, 3, 5, 8)

( B, B, -, D, E, B)

D-V演算法的特點
優點

  • 簡單
缺點
  • 交換的資訊太大了
  • 路由資訊傳播慢,可能導致路徑資訊不一致
  •  收斂慢,度量計數到無窮
  • 不適合大型的網路

RIP的主要特點

  • RIP是一種典型的D-V路由選擇協議
  • RIP採用了跳數(hop)作為量度(metric)
  • 當量度超過 15 跳,目的被認為不可達
  • 預設地,每30秒鐘交換一次向量/向量資訊(全部路由表)

RIP的主要缺陷

  • 不能到達量度超過15跳的目標網路
  • RIP的度量(代價)是跳數,即沿途經過的路由器的個數,有時候,並不合理,不能真正反映網路的狀況
  • 實際執行中,會遇到度量計數到無窮、收斂慢等問題

DV路由可能遇到的問題

問題表現

  • 路由環路(routing loop)
  • 計數到無窮問題(Count toinfinite)
  • 收斂慢的問題(slowConvergence)

原因

  • 相信錯誤的路由資訊導致

解決方法:

  1. 定義路徑度量(代價)的最大值
  2. 提高收斂速度:
    • 水平分割
    • 毒性逆轉
    • 抑制定時器
    • 觸發更新





5.掌握鏈路狀態路由演算法LS及LS的例項OSPF

鏈路狀態路由的主要思想包括如下5個部分:

  1. 發現它的鄰居節點們,瞭解它們的網路地址
  2. 設定到它的每個鄰居的成本度量
  3. 構造一個分組,包含它所瞭解到的所有資訊
  4. 傳送這個分組給所有其他的路由器
  5. 計算到每個路由器的最短路徑

LS的工作原理:

1. 發現鄰居節點

  • 當一個路由器啟動的時候,在每個點到點的線路傳送一個特別的HELLO分組
  • 收到HELLO分組的路由器應該回送一個應答,應答中有它自己的名字
  • (當兩個或更多的路由器被一個LAN連線起來,這個LAN被看作一個節點)

2. 設定鏈路成本

  • 為了決定線路的開銷,路由器傳送一個特別的 ECHO 分組,另一端立刻回送一個應答    
  • 通過測量往返時間(round-trip time) ,傳送路由器可以獲得一個合理的延遲估計值

3. 構造鏈路狀態分組

  • 鏈路狀態分組構造後被髮送給其他的路由器,分組中包含這些資訊:
    • 傳送方的標識(ID of the sender)
    • 序列號(sequence number )
    • 年齡(age )
    • 鄰居列表(list of neighbors )
    • 到鄰居的成本/量度(delay to eachneighbor )

4.    釋出鏈路狀態分組

基本演算法:

  • 每個分組都包含一個序列號,序列號隨著新分組產生而遞增
  • 路由器記錄下他看見的所有 (源路由器,序列號)對
  • 當一個的新的分組到達時,路由器根據它的記錄:
    • 如果該分組是新的,就被從除了來線路外的所有其他線路轉發出去 ( flooding,泛洪)
    • 如果是重複分組,即被丟棄(喜新厭舊)
    • 如果該分組的序列號比對應的源路由器傳送的到過此地的分組的最大序列號還小,則該分組被當作過時的資訊而被拒

5.    計算新的路由路徑

  • 一旦一個路由器獲得了全部的鏈路狀態分組就可以構造出全網路圖來了(Graph)
  • 現在,可以使用 最短路徑演算法來計算路由器之間的最短路徑了
  • 計算結果是一棵樹,會形成相應的路由,安裝在路由表中,引導資料分組的轉發

釋出鏈路狀態分組基本演算法遇到的問題:

  • 序列號迴轉,引起新老分組識別混淆
    • 解決辦法:使用 32-bit 的序列號,即使每秒產生一個分組,也需要137年才發生號碼迴轉
  • 如果一臺路由器崩潰,那麼他將丟失自己的序列號記錄,如果他再從0開始,新分組將被當作舊分組被拒絕
  • 如果一個序列號被破壞了,比如傳送方的序列號是4,但是由於產生了1位錯誤,序列號被看作65540,那麼,序列號為 5 – 65540的分組都被當作過時分組而被拒絕
    • 解決上述的路由器崩潰和序列號損壞的方法是:每個分組的序列號之後是年齡(age) ,並且每秒鐘年齡減1
    • 當年齡為零 ( zero )時,來自該路由器的資訊被丟棄
    • 通常地,每隔一段時間,比如10秒鐘,一個新分組就會到來,所以,只有路由器down機才可能導致超時(或者,連續6個間隔因為丟失,沒有收到新的分組)

L-S 路由演算法的特點

優點:

  • 每個路由器的認識一致
  • 收斂快
  • 適合在大型網路裡使用
缺點:
  • 每個路由器需要較大的儲存空間
  • 計算負擔很大

OSPF開放的路徑優先(Open shortest path first)

  • 使用圖(graph)來表述真實的網路
    • 每個路由器/Lan都是一個節點
    • 測量代價/量度( metric)
  • 計算最短路徑

OSPF分組(packet)型別:

OSPF資料包型別

描述

Type 1-Hello

與鄰居建立和維護毗鄰關係。

Type 2-資料庫描述包(DD)

描述一個OSPF路由器的鏈路狀態資料庫內容。

Type 3-鏈路狀態請求(LSR)

請求相鄰路由器傳送其鏈路狀態資料庫中的具體條目

Type 4-鏈路狀態更新(LSU)

向鄰居路由器傳送鏈路狀態通告

Type 5-鏈路狀態確認(LSA)

確認收到了鄰居路由器的LSU

OSPF的執行步驟:

  • 建立路由器毗鄰關係
  • 選舉DR和BDR
  • 發現路由
  • 選擇最佳路由
  • 維護路由資訊

OSPF狀態:

  • Down
  • Init(初始)
  • Two-way(雙向)
  • ExStart(準啟動)
  • Exchange(交換)
  • Loading(載入)
  • Full adjacency(全毗鄰)

比較DV 和 LS

距離向量路由 DV

鏈路狀態路由 LS

從鄰居看網路

整個網路的拓撲

在路由器間累加距離

計算最短路徑

頻繁、週期更新:慢收斂

事件觸發更新:快收斂

在路由器間傳遞路由表的拷貝

在路由器間傳遞鏈路狀態更新

6.  理解擁塞控制

擁塞:當一個子網或子網的一部分出現太多分組的時候,網路的效能急劇下降,這就是擁塞(Congestion )

導致擁塞的因素(擁塞根源:負載 > 資源)

  • 輸入流量速度大於輸出線路的容量
  • 慢速的處理器也可能引起擁塞,如線路容量充足,但處理器來不及處理
  • 線路容量和處理器能力需要平衡

擁塞控制vs. 流控

擁塞控制(Congestion control)

  • 任務:確保子網能夠承載所到達的流量
  • 這是個全域性的問題,涉及到主機、路由器,儲存轉發的過程等方方面面的問題

流控(Flowcontrol)

  • 只與特定的傳送方和接收方之間的點到點流量有關
  • 確保一個快速的傳送方不會持續地以超過接受方接收能力的速率傳輸資料

怎麼知道擁塞了? --擁塞量度

  1. 因為缺乏快取空間而丟棄的分組百分比
  2. 平均佇列長度
  3. 超時和重傳的分組數
  4. 平均分組延遲
  5. 分組延遲的標準方差(standard deviation)
  • 上述這些度量,數值越大表示擁塞的程度越重

怎樣解決擁塞問題?

增加資源

  • 在某些點之間使用更多的通道增加頻寬(比如:廣深)
  • 把流量分散到多條路徑
  • 啟用空閒或備份的路由器

降低負載

  • 拒絕為某些使用者提供服務(比如:春節車票提價,限行)
  • 給某些使用者的服務降低等級(比如:黃金週旅遊)
  • 讓使用者更有預見性地安排他們的需求(比如:年假制)

擁塞控制演算法:

1.   流量感知路由

在計算路由時考慮鏈路負載,把熱點地區的流量轉移出去。最直接的方法是吧鏈路權重設定成一個鏈路頻寬、傳輸延遲、平均排隊延遲的函式。

       缺點:可能導致路由搖擺

2.   准入控制:

  • 防止擁塞進一步惡化和加劇
  • 基本思想:一旦出現擁塞訊號,則不再建立任何虛電路,直到問題得到解決

准入控制可以與流量感知相結合,允許建立新的虛電路,但是仔細選擇線路,繞開問題區域

3.   流量調節

擁堵路由器通告源機發送慢下來(抑制包)

4.   負載丟棄/載荷脫落

  • 這是處理擁塞的最極端的方法
  • 當路由器收到的分組超載了,一些分組會被丟掉
  • 丟掉哪些分組呢?
    • 隨機丟棄(random)
    • 丟棄新到達的 (葡萄酒策略,適合檔案傳輸類)
    • 丟棄早到達的分組 (牛奶策略,適合多媒體類)
    • 丟棄不太重要的(less important )分組(需要傳送方在它們的分組中標明優先順序)

5.   隨機早期檢測RED(防患於未然)

  • 當情況變得惡化無可救藥之前就開始丟棄分組
  • 為了確定什麼時候開始丟棄分組,路由器維護著最近的佇列平均長度
  • 當某條線上的佇列平均長度超過了某閾值時,該線路被認定是擁塞的,可以採取相應的措施
  • 告訴源機關於擁塞的情況有兩種可能
    • 傳送抑制分組
    • 僅僅丟棄,不做任何報告

抖動控制

分組到達時間的變化量(標準方差 standard deviation)叫做抖動(jitter)

如何做抖動控制(續)

  • 通過計算出沿途每一跳的期望傳輸時間,就可以控制抖動。
    • 當一個分組到達路由器,路由器檢查這個分組,看它是來晚了還是來早了
    • 如果分組來早了,那麼它可能多停留一些時間,以便回到預定的時間點上
    • 如果分組來晚了,路由器應該儘可能快地將他轉發出去
  • 當幾個分組都要使用同一根輸出線路轉發出去,哪一個分組優先呢?
    • 路由器總是讓偏離預定時間最遠的那個分組優先轉發

流量整形

  • 調節資料傳輸的平均速率(和突發資料流)
  • 演算法
    • 漏桶( leaky bucket)
    • 令牌桶( token bucket)
    • 其它:資源預留、准入控制、分組排程等
  • 可以減少擁塞

7.  理解漏桶演算法

演算法描述:

  • 每個主機連線到網路的介面中都有一個漏桶,即一個優先長度的內部佇列
  • 當桶中有分組的時候,輸出速率是恆定的,當桶空的時候,輸出速率是0
  • 當一個分組到達滿的桶的時候,分組將被丟棄(滿則溢)
  • 每個時鐘嘀嗒( tick ),僅允許一個分組或固定數量的分組傳送出去

演算法效果:

主機內使用者程序產生的分組流往往是一個不穩定的流,漏桶可以讓它輸出到網路時變成一個穩定流,抹平了突發尖峰,極大地減少了發生擁塞的機會

漏桶的缺點

  • 當漏桶滿了之後,資料將被丟棄
  • 不能大量地突發資料
  • 改進:令牌桶

8.  理解令牌桶演算法

演算法描述:

  • 當大量資料突發的時候,令牌桶演算法允許輸出加快到某種程度
  • 令牌桶擁有令牌(tokens),且以每△T秒產生一個令牌的速度往桶中輸入令牌
  • 一個分組要傳送的時候,它必要從桶中取出和獲取到一個令牌
  • 令牌桶演算法允許累積令牌,但最多可以累積n(令牌桶的容量)個令牌

和漏桶演算法相比

  • 令牌桶允許突發,但是最大突發受制於令牌桶容量的限制
  • 當桶滿的時候,令牌桶演算法丟掉的是令牌(不是分組)

9.  理解網路互聯要解決的問題

事實上,總存在很多不同的網路

  • 不同的網路的安裝基數都很大且在增長(如: TCP/IP,SNA, ATM,Novell NCP/IPX, AppleTalk, wireless, 等)
  •  隨著計算機和網路變得越來越便宜,購買裝置的決策權正在向下遷移,這容易導致一個大公司安裝了不同的網路
  • 不同的網路 (如: ATM 和無線網路)使用完全不同的技術

網路可以通過不同的裝置聯接起來:

  • 物理層 - repeaters or hubs 中繼器或集線器
  • 資料鏈路層 - bridges and switches 網橋和交換機(可能作小小的協議轉換,如從Ethernet 到 FDDI 或到802.11)
  • 網路層 – routers(多協議路由器)
  • 傳輸層 - transport gateways(傳輸層連線之間的介面,如允許TCP連線和SNA連線粘結起來,分組可暢通無阻)
  • 應用層 - application gateways(翻譯訊息語義,如不同的email格式轉換)

隧道技術

隧道(Tunneling)一種通用的特殊的網路互連方式

  • 源和目的都處於同種網路,但是中途經過不同型別的網路
  • 中間的WAN部分可被看成一個大的隧道,從一個多協議路由器延伸到另一個多協議路由器

網際網路路由

  • 網際網路路由類似於單個子網內部的路由,但是,前者比後者更加複雜一些
  • 兩級路由演算法
    • 每個網路內部採用內部閘道器協議( IGP, interior gateway protocol )
    • 網路之間使用外部閘道器協議( BGP, exterior gateway protocol )
  • 網際網路上的每個網路都是獨立於所有其他的網路,所以每個網路通常稱作一個自治系統(Autonomous System ,AS)
  • 網際網路路由和網路內部路由的差別是:
    • 網際網路路由可能需要跨越國際邊界,不同的法律可能會介入進來

資料包分段

每個網路都會限制其分組的最大長度,最大長度存在不同,當一個較大的分組想要通過一個最大分組長度較小的網路時,需要採取資料包分段。

MTU(路徑最大傳輸單元)

兩種不同的分段策略

  • 透明分段( transparent )
  • 非透明分段( non-transparent)
  • 透明分段
    • 分段行為對其他網路來說是不可見的,換句話說,在該網路分段的分組,在離開這個網路的時候需要將它重組恢復
  • 非透明分段
    • 每個網路遇到不能承載的分組即對其進行分段,不負責重組恢復,目的機收到分割後的分組,完成重組恢復

10. 理解路由器的功能

收到資料報後路由器的工作步驟:

  • 開啟資料報
  • 確定目標網路地址
  • 根據路由表,重新打包後轉發到相應的介面

上面的步驟完成了路由器的基本功能:

  • 路由選擇
  • 轉發(交換)
  • 其它功能(維護路由表、通告其他路由器等)

路由表

  • 主要包括網路地址、介面、計量值(跳數)、網路掩碼、閘道器等資訊。
  • 除了路由表,路由器內部有一張ARP表——所有子網裝置的IP-MAC對映(包括閘道器)

IP定址與Mac定址的比較

  • 適用的網路範圍不同,MAC定址只適合於小型網路;
  • 所依賴的地址結構不同,MAC是平面地址,IP是結構化、層次化地址,其本身攜帶了位置資訊;
  • 所處的OSI模型層數不同;MAC介質訪問控制子層,IP網路層
  • 地址數目的限制,IP地址有一定的額度,而MAC地址無限制;
  • 兩種地址的格式不一樣。

11. 理解IP分組格式

IP分組格式:

 

所以IP資料報報頭的最小長度為20個位元組

固定部分(前20位元組):

(1)版本 佔4位,指IP協議的版本。通訊雙方使用的IP協議版本必須一致。目前廣泛使用的IP協議版本號為4(即IPv4)。關於IPv6,目前還處於草案階段。

(2)首部長度 佔4位,可表示的最大十進位制數值是15。請注意,這個欄位所表示數的單位是32位字長(1個32位字長是4位元組),因此,當IP的首部長度為1111時(即十進位制的15),首部長度就達到60位元組。當IP分組的首部長度不是4位元組的整數倍時,必須利用最後的填充欄位加以填充。因此資料部分永遠在4位元組的整數倍開始,這樣在實現IP協議時較為方便。首部長度限制為60位元組的缺點是有時可能不夠用。但這樣做是希望使用者儘量減少開銷。最常用的首部長度就是20位元組(即首部長度為0101),這時不使用任何選項。

(3)區分服務 佔8位,用來獲得更好的服務。這個欄位在舊標準中叫做服務型別,但實際上一直沒有被使用過。1998年IETF把這個欄位改名為區分服務DS(Differentiated Services)。只有在使用區分服務時,這個欄位才起作用。

(4)總長度 總長度指首部和資料之和的長度,單位為位元組。總長度欄位為16位,因此資料報的最大長度為2^16-1=65535位元組。

在IP層下面的每一種資料鏈路層都有自己的幀格式,其中包括幀格式中的資料欄位的最大長度,這稱為最大傳送單元MTU(Maximum Transfer Unit)。當一個數據報封裝成鏈路層的幀時,此資料報的總長度(即首部加上資料部分)一定不能超過下面的資料鏈路層的MTU值。

(5)標識(identification) 佔16位。IP軟體在儲存器中維持一個計數器,每產生一個數據報,計數器就加1,並將此值賦給標識欄位。但這個“標識”並不是序號,因為IP是無連線服務,資料報不存在按序接收的問題。當資料報由於長度超過網路的MTU而必須分片時,這個標識欄位的值就被複制到所有的資料報的標識欄位中。相同的標識欄位的值使分片後的各資料報片最後能正確地重灌成為原來的資料報。

(6)標誌(flag) 佔3位,但目前只有2位有意義。

● 標誌欄位中的最低位記為MF(MoreFragment)。MF=1即表示後面“還有分片”的資料報。MF=0表示這已是若干資料報片中的最後一個。

● 標誌欄位中間的一位記為DF(Don’tFragment),意思是“不能分片”。只有當DF=0時才允許分片。

(7)片偏移 佔13位。片偏移指出:較長的分組在分片後,某片在原分組中的相對位置。也就是說,相對使用者資料欄位的起點,該片從何處開始。片偏移以8個位元組為偏移單位。這就是說,除了最後一個分片,每個分片的長度一定是8位元組(64位)的整數倍。

(8)生存時間 佔8位,生存時間欄位常用的的英文縮寫是TTL(Time To Live),表明是資料報在網路中的壽命。由發出資料報的源點設定這個欄位。其目的是防止無法交付的資料報無限制地在因特網中兜圈子,因而白白消耗網路資源。最初的設計是以秒作為TTL的單位。每經過一個路由器時,就把TTL減去資料報在路由器消耗掉的一段時間。若資料報在路由器消耗的時間小於1秒,就把TTL值減1。當TTL值為0時,就丟棄這個資料報。後來把TTL欄位的功能改為“跳數限制”(但名稱不變)。路由器在轉發資料報之前就把TTL值減1.若TTL值減少到零,就丟棄這個資料報,不再轉發。因此,現在TTL的單位不再是秒,而是跳數。TTL的意義是指明資料報在網路中至多可經過多少個路由器。顯然,資料報在網路上經過的路由器的最大數值是255.若把TTL的初始值設為1,就表示這個資料報只能在本區域網中傳送。

(9)協議 佔8位,協議欄位指出此資料報攜帶的資料是使用何種協議,以便使目的主機的IP層知道應將資料部分上交給哪個處理過程。

(10)首部檢驗和 佔16位。這個欄位只檢驗資料報的首部,但不包括資料部分。這是因為資料報每經過一個路由器,路由器都要重新計算一下首部檢驗和(一些欄位,如生存時間、標誌、片偏移等都可能發生變化)。不檢驗資料部分可減少計算的工作量。

(11)源地址 佔32位。

(12)目的地址 佔32位。

可變部分:

IP首部的可變部分就是一個可選欄位。選項欄位用來支援排錯、測量以及安全等措施,內容很豐富。此欄位的長度可變,從1個位元組到40個位元組不等,取決於所選擇的專案。某些選項專案只需要1個位元組,它只包括1個位元組的選項程式碼。但還有些選項需要多個位元組,這些選項一個個拼接起來,中間不需要有分隔符,最後用全0的填充欄位補齊成為4位元組的整數倍。

增加首部的可變部分是為了增加IP資料報的功能,但這同時也使得IP資料報的首部長度成為可變的。這就增加了每一個路由器處理資料報的開銷。實際上這些選項很少被使用。新的IP版本IPv6就將IP資料報的首部長度做成固定的。

目前,這些任選項定義如下:

(1)安全和處理限制(用於軍事領域)

(2)記錄路徑(讓每個路由器都記下它的IP地址

(3)時間戳(Time Stamp)(讓每個路由器都記下IP資料報經過每一個路由器的IP地址和當地時間)

(4)寬鬆的源站路由(LooseSource Route)(為資料報指定一系列必須經過的IP地址)

(5)嚴格的源站路由(StrictSource Route)(與寬鬆的源站路由類似,但是要求只能經過指定的這些地址,不能經過其他的地址)

這些選項很少被使用,並非所有主機和路由器都支援這些選項。

12. 掌握IP地址及其分類

IP地址:網路號和主機號

  • 唯一的
  • 每個主機至少有一個
  • 表示方法:點分十進位制表示

IP地址的分類:


13. 掌握IPv4的保留地址空間

網路地址:主機部分全為“0”的 IP 地址

廣播地址:主機部分全為“1”的 IP 地址

例子:

分析地址172.16.20.200

分析:

B類地址

子網部分:172.16

主機部分:20.200

網路地址:172.16.0.0

廣播地址:172.16.255.255

保留的IP地址:

  • 32位全為0,0.0.0.0
    • 這個主機、這個網路
    • Cisco路由器指定的預設路由
  • 32位全為1,255.255.255.255  Flood Broadcast(受限的廣播,路由器並不轉發該地址的資料包)
  • 主機部分全為0,如172.16.0.0  網路地址
  • 主機部分全為1,如172.16.255.255  廣播地址
  • 127.0.0.0  Lookback Network
  • 127.0.0.1 Lookback test

14. 掌握子網及子網劃分

  • 區域網不斷增長,越來越難於管理,必須將它分割成子網
  • 一個網路被分隔成幾個部分(子網),但是在外界看來,該網路仍被看成一個整體 (體現在路由表例上,就是外部的路由器只對應一條路由)
  • 這也允許不同的子網在一個組織內部連線起來

子網掩碼

  • 路由器使用子網掩碼決定分組往哪個子網轉發
  • 子網掩碼可用點分十進位制表示( 1表示網路位, 0表示主機位),也可用“ /網路位數+子網位數” 表示
    • 255.255.255.224
    • 202.10.23.102/27
  • 路由器採用“ AND ”操作(目的IP和子網掩碼),得到目的網路地址
  • 使用這種機制,路由器不必記錄全部主機的IP地址,縮減了路由器的規模

子網規劃

  • 將大網路分割成小網路
  • 劃分子網實際上建立了一個由網路、子網和主機構成的三級層次結構,從而降低了路由器的表空間
  • 構建子網是通過從網路地址的主機部分借位來進行
  • 子網規劃將導致IP地址空間的損失

確定可用主機數量的公式 2n-2

借位規則:

  • 從主機域的高位開始借位;
  • 主機域至少保留 2 位。

可變長子網掩碼 (VLSM)

  • VLSM允許將網路空間分為大小不等的部分。
  • 子網掩碼將依據為特定子網所借用的位數而變化。
  • 先對網路劃分子網,然後再將子網進一步劃分子網。
  • 根據需要重複此過程,以建立不同大小的子網

15. 理解IPv6

IPv6的主要改進:

  • 地址從32位升為128位
  • 簡化了分組頭
  • 更好地支援選項
  • 安全方面的改進
  • 服務質量的改進

IPv6地址空間:2128=3.4×1038=340澗(1澗=10^36)

IPv6地址首選格式:冒分十六進位制

  • 4位一組,中間用“:”隔開,如: 2001:12FC:….
  • 若以零開頭可以省略,全零的組可用“::”表示,如: 1:2::ACDR:….
  • 地址字首長度用“/xx”來表示,如: 1::1/64


IPv6地址分類:

  • 單播地址(Unicast Address)
  • 組播地址(Multicast Address)
  • 任播地址(Anycast Address)
  • 特殊地址

IPv6地址子網規劃

IPv6 子網劃分是根據路由器的數量及它們所支援的網路來構建定址分層結構

IPv4與IPv6的共存策略、遷移技術

共存策略

  • 短時期內從IPv4遷移到IPv6幾乎是不可能的
  • Pv6在IPv4的基礎上進行改進,在一定的時間內,IPv6將和IPv4共同存在共同執行

問題:

  • 解決IPv6網路的成熟與穩定
  • 解決IPv6網路與IPv4的網路之間通訊的問題。

三種基本技術(RFC1933):

  • 雙協議棧(Dual Stack)(網路裝置、網路系統必須有雙協議棧的支援)
  • 隧道(Tunnel)(通過隧道,IPv6分組被作為無結構無意義的資料,封裝在IPv4的資料報中,被IPv4網路傳輸)
  • 地址轉換技術(不僅發生在網路層,還有傳輸層和應用層,當雙棧和隧道都無法使用的時候,才使用)

16. 掌握CIDR基本思想

無類別域間路由—CIDR

  • 緩解了地址枯竭的趨勢;控制甚至縮減了路由表的開銷
  • 分配IP地址的時候不再以類別來分,而是按照可變長的地址塊來分配
  • 路由表必須擴充套件,增加一個 32-bit 的子網掩碼
  • 每個路由表有一個三元組 (IP address, subnet mask, outgoing line)
  • 當一個分組到來到的時候
    • 分組中的目標IP地址(Destination IP)被檢查
    • 目標IP和子網掩碼進行與操作,獲得目標網路地址,以查詢路由表.
    • 如果路由表中有多個表項匹配 (這些表項有不同的子網掩碼) ,使用子網掩碼最長的那個表項

17. 掌握NAT/PAT基本原理

NAT:net address translate NAT

私有IP地址和公有IP地址之間的轉換。

PAT:port address translate(超載)

將多個私有IP地址影射到同一個公有IP地址的不同埠

NAT--一個IP地址耗盡的快速修補方案

  • 內部網路使用私人地址,當內網需要和外網通訊的時候,私人地址轉換成合法的global 的地址
  • 由NAT轉換器(盒子)完成這種轉換;NAT轉換器能夠轉換並且維護一個地址轉換表,以便回來的分組找到它的去處
  • 當回來的分組到達NAT轉換器的時候,它查詢地址轉換表(以源埠作索引),獲得目標機的私人地址,並轉換地之後發往目標機

NAT 帶來的問題

  • NAT違背了IP的結構模型 –每個IP地址唯一地標識了一臺機器
  • NAT將網際網路改變成了“面向連線”的網路,NAT轉換器維護著連線的狀態,一旦它崩潰,連線也沒有了
  • NAT違背了最基本的協議分層原則
  • 如果傳輸層不是採用TCP或UDP,而是採用了其它的協議,NAT將不再工作
  • 有些應用會在payload中插入IP地址,然後接收方會提取出該IP地址並使用,但是NAT轉換器對此一無所知,導致該類應用不再有效
  • NAT讓一個IP地址可以承載61,440(65536-4096)個私人地址(超載,PAT)

NAT/PAT的評價:

優點

  • 節省了公有IP地址;
  • 提供了內部網訪問外網的靈活性;
  • 有一定的保密性。

缺點

  • 影響了部分協議和應用的通訊;
  • 增加了網路延時;
  • NAT轉換裝置的效能可能成為網路的瓶頸;
  • 影響了路由追蹤工具的使用。

18. 理解ICMP及其應用

用來報告意外的事件或測試網際網路

ping的工作原理

  • 使用ping命令(即呼叫ping過程)時,將向目的站點發送一個ICMP回聲請求報文(包括一些任選的資料),
  • 如目的站點接收到該報文,必須向源站點發回一個ICMP回聲應答報文,源站點收到應答報文(且其中的任選資料與所傳送的相同),則認為目的站點是可達的,否則為不可達。

tracert命令

  • tracert過程是通過ICMP資料報超時報文來得到一張途經的路由器列表
  • 源主機向目的主機發一個IP報文,並置TTL為1,到達第一個路由器時,TTL減1,為0,則該路由器回發一個ICMP資料報超時報文,源主機取出路由器的IP地址即為途經的第一個路由埠地址
  • 接著源主機再向目的主機發第二個IP報文,並置TTL為2,然後再發第三個、第四個IP資料報,……直至到達目的主機
  • 但網際網路的執行環境狀態是動態的,每次路徑的選擇有可能不一致,所以,只有在相對較穩定(相對變化緩慢)的網路中,tracert才有意義

19. 掌握地址解析協議的功能和原理(ARP/RARP)

ARP (地址解析協議): IP 地址-> MAC 地址

RARP (逆向地址解析協議):MAC 地址 -> IP 地址

ARP的工作原理:


為了讓ARP的工作更加高效,下面是幾種優化措施

  • 快取 ARP 結果
  • 在ARP請求中包括源機的 IP-to-MAC 地址的對映
  • 每臺機器在啟動的時候,廣播它的IP-MAC地址對

預設閘道器(代理 ARP)

  • 當源裝置需要的目的地址與自己不在同一個網路時,如果源不知道目的MAC地址,它必須使用路由器的服務使它的資料達到目的,當路由器在這種方式下使用時,稱為預設閘道器。
  • 預設閘道器是與源裝置所處的網段相連的路由器介面上的IP地址

ARP表:

  • IP地址到MAC地址的對映表,儲存在儲存器(RAM)中,自動維護。(掉電消失)
  • 為了減少ARP請求的次數,每個裝置擁有自己的ARP表,包括路由器。

自動維護ARP表

  • 通過廣播ARP請求中的源裝置資訊新增更新表;
  • 利用自己的ARP請求之應答資訊來新增、更新表;
  • 刪除超過一定時限的資訊

RARP的工作原理:


20. 瞭解IP地址的分配方式

IP地址的分配方式:

  • 靜態分配
  • 動態分配

IP地址的動態分配方式(RARP\Boot\pDHCP)

DHCP:動態主機配置協議

  • 可以靈活分配IP地址,節約IP地址的使用
  • 使一臺主機迅速並動態地獲取一個IP地址
  • 通過DHCP獲取的 IP是租來的,可能會過期