《計算機網絡》筆記——第4章 網絡層(一)

4.1 網絡層提供的兩種服務

  • 在計算機網絡領域,網絡層應該向運輸層提供怎樣的服務,面向連接還是無連接曾引起了很長的爭論。

  • 爭論的實質:在計算機通信中,可靠交付應當由網絡還是端系統負責?

  • 結論:可靠交付應交付給端系統負責

4.1.1 一種觀點:讓網絡負責可靠交付

  • 這種觀點認爲,應藉助於電信網的成功經驗,讓網絡負責可靠交付,計算機網絡應模仿電信網絡,使用面向連接的通信方式。
  • 通信之前先建立虛電路 (Virtual Circuit),以保證雙方通信所需的一切網絡資源。
  • 如果再使用可靠傳輸的網絡協議,就可使所發送的分組無差錯按序到達終點,不丟失、不重複。在這裏插入圖片描述

虛電路服務

注意:虛電路表示這只是一條邏輯上的連接,分組都沿着這條邏輯連接按照存儲轉發方式傳送,而並不是真正建立了一條物理連接。

4.1.2 另一種觀點:網絡提供數據報服務

  • 互聯網的先驅者提出了一種嶄新的網絡設計思路。
  • 網絡層向上只提供簡單靈活的無連接的盡最大努力交付數據報服務
  • 網絡在發送分組時不需要先建立連接。每一個分組(即 IP 數據報)獨立發送,與其前後的分組無關(不進行編號)。
  • 網絡層不提供服務質量的承諾。即所傳送的分組可能出錯、丟失、重複和失序(不按序到達終點),當然也不保證分組傳送的時限。

盡最大努力交付:

  • 由於傳輸網絡不提供端到端的可靠傳輸服務,這就使網絡中的路由器可以做得比較簡單,而且價格低廉(與電信網的交換機相比較)。
  • 如果主機(即端系統)中的進程之間的通信需要是可靠的,那麼就由網絡的主機中的運輸層負責可靠交付(包括差錯處理、流量控制等) 。
  • 採用這種設計思路的好處是:網絡的造價大大降低,運行方式靈活,能夠適應多種應用。
  • 互連網能夠發展到今日的規模,充分證明了當初採用這種設計思路的正確性。

數據報服務

在這裏插入圖片描述

4.1.3 虛電路服務與數據報服務的對比

在這裏插入圖片描述

4.2 網際協議 IP

  • 網際協議 IP 是 TCP/IP 體系中兩個最主要的協議之一。
  • 與 IP 協議配套使用的還有三個協議:
    • 地址解析協議 ARP (Address Resolution Protocol)
    • 網際控制報文協議 ICMP (Internet Control Message Protocol)
    • 網際組管理協議 IGMP (Internet Group Management Protocol)

在這裏插入圖片描述

4.2.1 虛擬互連網絡

將網絡互連並能夠互相通信,會遇到許多問題需要解決,如:

  • 不同的尋址方案
  • 不同的最大分組長度
  • 不同的網絡接入機制
  • 不同的超時控制
  • 不同的差錯恢復方法
  • 不同的狀態報告方法
  • 不同的路由選擇技術
  • 不同的用戶接入控制
  • 不同的服務(面向連接服務和無連接服務)
  • 不同的管理與控制方式等

那麼如何將異構的網絡互相連接起來呢

使用一些中間設備進行互連

將網絡互相連接起來要使用一些中間設備。 有以下五種不同的中間設備:

  1. 物理層中繼系統:轉發器 (repeater)。
  2. 數據鏈路層中繼系統:網橋橋接器 (bridge)。
  3. 網絡層中繼系統:路由器 (router)。
  4. 網橋和路由器的混合物橋路器 (brouter)。
  5. 網絡層以上的中繼系統:網關 (gateway)。

注意:

  • 當中繼系統是轉發器或網橋時,一般並不稱之爲網絡互連,因爲這僅僅是把一個網絡擴大了,而這仍然是一個網絡。
  • 網關由於比較複雜,目前使用得較少。
  • 網絡互連都是指用路由器進行網絡互連和路由選擇
  • 由於歷史的原因,許多有關 TCP/IP 的文獻將網絡層使用的路由器稱爲網關。

互連網絡與虛擬互連網絡

在這裏插入圖片描述

虛擬互連網絡的意義:

  • 所謂虛擬互連網絡也就是邏輯互連網絡,它的意思就是互連起來的各種物理網絡的異構性本來是客觀存在的,但是我們利用 IP 協議就可以使這些性能各異的網絡從用戶看起來好像是一個統一的網絡
  • 使用 IP 協議的虛擬互連網絡可簡稱爲 IP 網。
  • 使用虛擬互連網絡的好處是:當互聯網上的主機進行通信時,就好像在一個網絡上通信一樣,而看不見互連的各具體的網絡異構細節。
  • 如果在這種覆蓋全球的 IP 網的上層使用 TCP 協議,那麼就是現在的互聯網 (Internet)

在這裏插入圖片描述

如果我們只從網絡層考慮問題,那麼 IP 數據報就可以想象是在網絡層中傳送。

在這裏插入圖片描述

4.2.2 分類的 IP 地址

4.2.2.1 IP 地址及其表示方法

  • 我們把整個互聯網看成爲一個單一的、抽象的網絡。
  • IP 地址就是給每個連接在互聯網上的主機(或路由器)分配一個在全世界範圍是唯一的 32 位的標識符
  • IP 地址現在由互聯網名字和數字分配機構 ICANN (Internet Corporation for Assigned Names and Numbers)進行分配。

IP 地址的編址方法

  • 分類的 IP 地址。這是最基本的編址方法,在1981年就通過了相應的標準協議。
  • 子網的劃分。這是對最基本的編址方法的改進,其標準[RFC 950]在1985年通過。
  • 構成超網。這是比較新的無分類編址方法。1993年提出後很快就得到推廣應用。

分類 IP 地址

  • 將 IP 地址劃分爲若干個固定類。
  • 每一類地址都由兩個固定長度的字段組成,其中一個字段是網絡號 net-id,它標誌主機(或路由器)所連接到的網絡,而另一個字段則是主機號 host-id,它標誌該主機(或路由器)。
  • 主機號在它前面的網絡號所指明的網絡範圍內必須是唯一的。
  • 由此可見,一個 IP 地址在整個互聯網範圍內是唯一的

這種兩級的 IP 地址結構如下:

在這裏插入圖片描述

這種兩級的 IP 地址可以記爲:

在這裏插入圖片描述

各類 IP 地址的網絡號字段和主機號字段:

在這裏插入圖片描述

點分十進制記法

在這裏插入圖片描述

舉例:

在這裏插入圖片描述

4.2.2.2 常用的三種類別的 IP 地址

在這裏插入圖片描述

一般不使用的特殊的 IP 地址

在這裏插入圖片描述

IP 地址的一些重要特點

  1. IP 地址是一種分等級的地址結構。分兩個等級的好處是:
    • IP 地址管理機構在分配 IP 地址時只分配網絡號,而剩下的主機號則由得到該網絡號的單位自行分配。這樣就方便了 IP 地址的管理。
    • 路由器僅根據目的主機所連接的網絡號來轉發分組(而不考慮目的主機號),這樣就可以使路由表中的項目數大幅度減少,從而減小了路由表所佔的存儲空間。
  2. 實際上 IP 地址是標誌一個主機(或路由器)和一條鏈路的接口
    • 當一個主機同時連接到兩個網絡上時,該主機就必須同時具有兩個相應的 IP 地址,其網絡號 net-id 必須是不同的。這種主機稱爲多歸屬主機 (multihomed host)。
    • 由於一個路由器至少應當連接到兩個網絡(這樣它才能將 IP 數據報從一個網絡轉發到另一個網絡),因此一個路由器至少應當有兩個不同的 IP 地址
  3. 用轉發器或網橋連接起來的若干個局域網仍爲一個網絡,因此這些局域網都具有同樣的網絡號 net-id
  4. 所有分配到網絡號 net-id 的網絡,無論是範圍很小的局域網,還是可能覆蓋很大地理範圍的廣域網,都是平等的

互聯網中的 IP 地址

在這裏插入圖片描述

  • 在同一個局域網上的主機或路由器的 IP 地址中的網絡號必須是一樣的
  • 路由器總是具有兩個或兩個以上的 IP 地址。路由器的每一個接口都有一個不同網絡號的 IP 地址。
  • 兩個路由器直接相連的接口處,可指明也可不指明 IP 地址。如指明 IP 地址,則這一段連線就構成了一種只包含一段線路的特殊“網絡” 。現在常不指明 IP 地址。

4.2.3 IP 地址與硬件地址

在這裏插入圖片描述

IP 地址與硬件地址是不同的地址。從層次的角度看:

  • 硬件地址(或物理地址) 是數據鏈路層和物理層使用的地址。
  • IP 地址是網絡層和以上各層使用的地址,是一種邏輯地址(稱 IP 地址是邏輯地址是因爲 IP 地址是用軟件實現的)。

在這裏插入圖片描述

在這裏插入圖片描述

在這裏插入圖片描述

在這裏插入圖片描述

注意:

  • 在具體的物理網絡的鏈路層只能看見 MAC 幀而看不見 IP 數據報
  • 在 IP 層抽象的互聯網上只能看到 IP 數據報。圖中的 IP1 → IP2 表示從源地址 IP1 到目的地址 IP2 。兩個路由器的 IP 地址並不出現在 IP 數據報的首部中。
  • 路由器只根據目的站的 IP 地址的網絡號進行路由選擇
  • IP 層抽象的互聯網屏蔽了下層很複雜的細節。在抽象的網絡層上討論問題,就能夠使用統一的、抽象的 IP 地址研究主機和主機或主機和路由器之間的通信 。

主機 H1 與 H2 通信中使用的 IP 地址 與 硬件地址 HA

在這裏插入圖片描述

4.2.4 地址解析協議 ARP

通信時使用了兩個地址:

  • IP 地址(網絡層地址)
  • MAC 地址(數據鏈路層地址)

在這裏插入圖片描述

地址解析協議 ARP 的作用

ARP 作用:從網絡層使用的 IP 地址,解析出在數據鏈路層使用的硬件地址

在這裏插入圖片描述

地址解析協議 ARP 要點

  • 不管網絡層使用的是什麼協議,在實際網絡的鏈路上傳送數據幀時,最終還是必須使用硬件地址。

  • 每一個主機都設有一個 ARP 高速緩存 (ARP cache),裏面有所在的局域網上的各主機和路由器的 IP 地址到硬件地址的映射表。

    在這裏插入圖片描述

  • 當主機 A 欲向本局域網上的某個主機 B 發送 IP 數據報時,就先在其 ARP 高速緩存中查看有無主機 B 的 IP 地址。

    • 如有,就可查出其對應的硬件地址,再將此硬件地址寫入 MAC 幀,然後通過局域網將該 MAC 幀發往此硬件地址。
    • 如沒有, ARP 進程在本局域網上廣播發送一個 ARP 請求分組。收到 ARP 響應分組後,將得到的 IP 地址到硬件地址的映射寫入 ARP 高速緩存。
  • ARP 請求分組:包含發送方硬件地址 / 發送方 IP 地址 / 目標方硬件地址(未知時填 0) / 目標方 IP 地址。

  • 本地廣播 ARP 請求(路由器不轉發ARP請求)。

  • ARP 響應分組:包含發送方硬件地址 / 發送方 IP地址 / 目標方硬件地址 / 目標方 IP 地址。

  • ARP 分組封裝在物理網絡的幀中傳輸

在這裏插入圖片描述

ARP 高速緩存的作用

  • 存放最近獲得的 IP 地址到 MAC 地址的綁定,以減少 ARP 廣播的數量
  • 爲了減少網絡上的通信量,主機 A 在發送其 ARP 請求分組時,就將自己的 IP 地址到硬件地址的映射寫入 ARP 請求分組。
  • 當主機 B 收到 A 的 ARP 請求分組時,就將主機 A 的這一地址映射寫入主機 B 自己的 ARP 高速緩存中。這對主機 B 以後向 A 發送數據報時就更方便了。

應當注意的問題

  • ARP 用於解決同一個局域網上的主機或路由器的 IP 地址和硬件地址的映射問題
  • 如果所要找的主機和源主機不在同一個局域網上,那麼就要通過 ARP 找到一個位於本局域網上的某個路由器的硬件地址,然後把分組發送給這個路由器,讓這個路由器把分組轉發給下一個網絡。剩下的工作就由下一個網絡來做。
  • 從 IP 地址到硬件地址的解析是自動進行的,主機的用戶對這種地址解析過程是不知道的。
  • 只要主機或路由器要和本網絡上的另一個已知 IP 地址的主機或路由器進行通信,ARP 協議就會自動地將該 IP 地址解析爲鏈路層所需要的硬件地址。

使用 ARP 的四種典型情況

  • 發送方是主機,要把 IP 數據報發送到本網絡上的另一個主機。這時用 ARP 找到目的主機的硬件地址。
  • 發送方是主機,要把 IP 數據報發送到另一個網絡上的一個主機。這時用 ARP 找到本網絡上的一個路由器的硬件地址。剩下的工作由這個路由器來完成。
  • 發送方是路由器,要把 IP 數據報轉發到本網絡上的一個主機。這時用 ARP 找到目的主機的硬件地址。
  • 發送方是路由器,要把 IP 數據報轉發到另一個網絡上的一個主機。這時用 ARP 找到本網絡上另一個路由器的硬件地址。剩下的工作由這個路由器來完成。

4.2.5 IP 數據報的格式

  • 一個 IP 數據報由首部數據兩部分組成。
  • 首部的前一部分是固定長度,共 20 字節,是所有 IP 數據報必須具有的
  • 在首部的固定部分的後面是一些可選字段,其長度是可變的。

在這裏插入圖片描述

4.2.5.1 IP 數據報首部的固定部分中的各字段

  • 版本——佔 4 位,指 IP 協議的版本。 目前的 IP 協議版本號爲 4 (即 IPv4)。

  • 首部長度——佔 4 位,可表示的最大數值是 15 個單位(一個單位爲 4 字節), 因此 IP 的首部長度的最大值是 60 字節。

  • 區分服務——佔 8 位,用來獲得更好的服務。 在舊標準中叫做服務類型,但實際上一直未被使用過。 1998 年這個字段改名爲區分服務。 只有在使用區分服務(DiffServ)時,這個字段才起作用。 在一般的情況下都不使用這個字段。

  • 總長度——佔 16 位,指首部和數據之和的長度, 單位爲字節,因此數據報的最大長度爲 65535 字節。 總長度必須不超過最大傳送單元 MTU。

  • 標識(identification) ——佔 16 位, 它是一個計數器,用來產生 IP 數據報的標識。

  • 標誌(flag) ——佔 3 位,目前只有前兩位有意義。 標誌字段的最低位是 MF (More Fragment)。 MF=1 表示後面“還有分片”。MF=0 表示最後一個分片。 標誌字段中間的一位是 DF (Don’t Fragment) 。 只有當 DF=0 時才允許分片

  • 片偏移——佔 13 位,指出:較長的分組在分片後某片在原分組中的相對位置片偏移以 8 個字節爲偏移單位

  • 生存時間——佔 8 位,記爲 TTL (Time To Live), 指示數據報在網絡中可通過的路由器數的最大值。

  • 協議——佔 8 位,指出此數據報攜帶的數據使用何種協議, 以便目的主機的 IP 層將數據部分上交給那個處理過程。

    在這裏插入圖片描述

  • 首部檢驗和——佔 16 位,只檢驗數據報的首部, 不檢驗數據部分。這裏不採用 CRC 檢驗碼而採用簡單的計算方法。

  • 源地址和目的地址都各佔 4 字節 。

例4-1 IP 數據報分片

  • 一數據報的總長度爲 3820 字節,其數據部分的長度爲 3800 字節(使用固定首部),需要分片爲長度不超過 1420 字節的數據報片。
  • 因固定首部長度爲 20 字節,因此每個數據報片的數據部分長度不能超過 1400 字節。
  • 於是分爲 3 個數據報片,其數據部分的長度分別爲 1400、1400 和 1000 字節。
  • 原始數據報首部被複製爲各數據報片的首部,但必須修改有關字段的值。

在這裏插入圖片描述

在這裏插入圖片描述

4.2.5.2 IP 數據報首部的可變部分

  • IP 首部的可變部分就是一個選項字段,用來支持排錯、測量以及安全等措施,內容很豐富。
  • 選項字段的長度可變,從 1 個字節到 40 個字節不等,取決於所選擇的項目。
  • 增加首部的可變部分是爲了增加 IP 數據報的功能,但這同時也使得 IP 數據報的首部長度成爲可變的。這就增加了每一個路由器處理數據報的開銷。
  • 實際上這些選項很少被使用

4.2.6 IP 層轉發分組的流程

  • 假設:有四個 A 類網絡通過三個路由器連接在一起。每一個網絡上都可能有成千上萬個主機。
  • 可以想象,若按目的主機號來製作路由表,每一個路由表就有 4 萬個項目,即 4 萬行(每一行對應於一臺主機),則所得出的路由表就會過於龐大。
  • 若按主機所在的網絡地址來製作路由表,那麼每一個路由器中的路由表就只包含 4 個項目(每一行對應於一個網絡),這樣就可使路由表大大簡化。

在這裏插入圖片描述

查找路由表

根據目的網絡地址就能確定下一跳路由器,這樣做的結果是:

  • IP 數據報最終一定可以找到目的主機所在目的網絡上的路由器(可能要通過多次的間接交付)。
  • 只有到達最後一個路由器時,才試圖向目的主機進行直接交付

特定主機路由

  • 雖然互聯網所有的分組轉發都是基於目的主機所在的網絡,但在大多數情況下都允許有這樣的特例,即爲特定的目的主機指明一個路由
  • 採用特定主機路由可使網絡管理人員能更方便地控制網絡和測試網絡,同時也可在需要考慮某種安全問題時採用這種特定主機路由。

默認路由

  • 路由器還可採用默認路由以減少路由表所佔用的空間和搜索路由表所用的時間
  • 這種轉發方式在一個網絡只有很少的對外連接時是很有用的。
  • 默認路由在主機發送 IP 數據報時往往更能顯示出它的好處。
  • 如果一個主機連接在一個小網絡上,而這個網絡只用一個路由器和互聯網連接,那麼在這種情況下使用默認路由是非常合適的。

在這裏插入圖片描述

必須強調指出

  • IP 數據報的首部中沒有地方可以用來指明“下一跳路由器的 IP 地址”
  • 當路由器收到待轉發的數據報,不是將下一跳路由器的 IP 地址填入 IP 數據報,而是送交下層的網絡接口軟件。
  • 網絡接口軟件使用 ARP 負責將下一跳路由器的 IP 地址轉換成硬件地址,並將此硬件地址放在鏈路層的 MAC 幀的首部,然後根據這個硬件地址找到下一跳路由器。

路由器分組轉發算法

  1. 從數據報的首部提取目的主機的 IP 地址 D, 得出目的網絡地址爲 N。
  2. 若網絡 N 與此路由器直接相連,則把數據報直接交付目的主機 D;否則是間接交付,執行 (3)。
  3. 若路由表中有目的地址爲 D 的特定主機路由,則把數據報傳送給路由表中所指明的下一跳路由器;否則,執行 (4)。
  4. 若路由表中有到達網絡 N 的路由,則把數據報傳送給路由表指明的下一跳路由器;否則,執行 (5)。
  5. 若路由表中有一個默認路由,則把數據報傳送給路由表中所指明的默認路由器;否則,執行 (6)。
  6. 報告轉發分組出錯。

關於路由表

  • 路由表沒有給分組指明到某個網絡的完整路徑。
  • 路由表指出,到某個網絡應當先到某個路由器(即下一跳路由器)
  • 在到達下一跳路由器後,再繼續查找其路由表,知道再下一步應當到哪一個路由器。
  • 這樣一步一步地查找下去,直到最後到達目的網絡。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章