天天看點

計算機網絡——第四章網絡層

一、網絡層提供的服務

網絡層隻向上提供簡單靈活,無連接配接的,盡最大努力互動的資料報服務。即網絡層不提供服務品質的承諾。即網絡層所傳送的資料可能丢失,重複,或者缺少。因為資料在網絡中傳輸,并不是端到端的,主要依靠的是多個路由器,是以路由器的設計會很簡單。而通信之間的可靠性則交由上層運輸層來負責,比如差錯控制,流量檢測,确認重傳等。經過實踐這樣會極大的減低網絡層的造價。

二、網際協定IP(IPv4)

與IP協定配套使用的有三個協定

  • 位址解析協定ARP
  • 網際控制封包協定ICMP
  • 網際組管理協定IGMP
計算機網絡——第四章網絡層

虛拟網絡互聯

現在我們知道,我們身邊就有各種網絡,電信,移動等。是以虛拟網際網路絡就可以看作是許多計算機網絡使用相同的網際協定IP并由路由器連接配接起來所構成。使用IP協定便能使這些性能具有差異的網絡看起來像是一個統一的網絡

  1. 實體層使用的裝置叫轉發器(用轉發器和網橋連接配接的網絡,僅僅隻能看作是将網絡擴大,隻能稱之為網絡,而不能稱之為網際網路)
  2. 資料鍊路層使用的裝置叫網橋
  3. 網絡層使用的裝置叫路由器
  4. 網絡層以上使用的裝置叫網關

分類的IP位址

IP位址就是網際網路上給每一台計算機或者接口(如路由器接口等)配置設定一個全世界唯一的32為辨別符。使用IP位址可以是我們在網際網路上很友善的尋址。

分類的IP位址即将IP位址劃分為若幹個固定的類,每一個類由固定的兩個字段構成,前一個字段為網絡号,标志主機或者路由器所連接配接的網絡,在所有的網絡中,這個字段必須唯一。後一個字段為主機号,即表示為該主機,在這個主機所處的網絡中這個這個主機号也是唯一的。

常用的IP位址(由網絡号的前1~3位類别位決定)

  • A類位址

    網絡号為1個位元組(8位),類别位為0,是以隻有7位可用,由于全0表示的IP位址表示本網絡,全1(00000001:即127)表示本機,以作為本地軟體環回測試,是以可用的網絡号為27-2。主機位址占三個位元組,A類最大主機數為224-2。全0表示本主機所連接配接到的單個網絡位址,全1表示該網絡的所有主機。(網絡号1~126)

  • B類位址:

    網絡号為2個位元組(16位),開始類别位為10,是以隻有14位可用,由于B類相當于實在A類基礎上衍生的,是以不可能出現全0或者全1的情況,但由于128.0.0.0一般不指配,是以可用的網絡号為214-1。主機位址占2個位元組,B類最大主機數為216-2。全0表示本主機所連接配接到的單個網絡位址,全1表示該網絡的所有主機。(網絡号128.1~192.255)

  • C類位址:

    網絡号為3個位元組(24位),開始類别位為110,是以有21位可以配置設定,由于C類相當于實在A,B類基礎上衍生的,是以也不可能出現全0或者全1的情況,但由于192.0.0.0一般不指配,是以可用的網絡号為221-1。主機位址占2個位元組,B類最大主機數為28-2。全0表示本主機所連接配接到的單個網絡位址,全1表示該網絡的所有主機。(網絡号192.0.1~233.255.255)

IP位址與硬體位址

硬體位址又叫實體位址,實體位址是由資料鍊路層和實體層使用的位址,固話在網卡的ROM中。而IP位址是網絡層和以上各層使用的位址是一種邏輯位址,由軟體實作。

在發送資料時,網絡層以上的層次将資料在首部加上IP位址後形成IP資料報交給資料鍊路層,資料鍊路層再添加首部和尾部構成MAC幀,MAC在傳送時使用的源位址和目的位址都是寫入MAC幀中,硬體位址存放于MAC幀的首部。當通信鍊路上的裝置(主機或者路由器)收到MAC幀時,會根據MAC中的首部位址覺得是否收下此幀。

IP位址存放在IP資料包的首部,硬體位址存放在MAC幀的首部。

路由器轉發資料時,IP位址一直沒變直到網絡層,而實體位址一直在變

位址解析協定ARP

ARP的作用就是當我們直到一個主機的IP位址時,能否找到其相應的硬體位址。因為在實際資料傳輸中實在資料鍊路層上的,是以必須知道對應的實體位址。

因為IP位址于實體位址格式不同沒有具體的映射關系,是以位址解析協定ARP目的就是在主機ARP高速緩存中存放一個從IP位址到硬體位址的映射表,并且要時刻更新(因為網絡中随時會有新的主機加進來)

過程:

當一台主機A要向B發送資料時,就先在主機的ARP尋找有無主機B的IP位址。如果有就在ARP高數緩存中查出其對應實體位址,再把這個實體位址寫入MAC幀中,再通過區域網路發往此硬體位址。如果沒有找到對應的IP位址(剛剛入網的主機)

(1)此時A會發送一個ARP請求分組(廣播,即一對多),内容可以概括為:“我是A,硬體位址時a,我想知道B的硬體位址”。

(2)于是在本區域網路上的所有主機運作的ARP都會收到此資訊。其他的主機的IP位址與收到的不一緻便丢棄。

(3)當B檢測到與本機一緻時,就收下這個請求,并向A發送ARP響應分組(單點傳播,一對一即隻給A發),内容可以概括為:”我是B,我的硬體位址是b“。

(4)此時A便接收到B的響應分組後,就在其ARP高速緩存中寫入主機B的IP位址到硬體位址的映射。

IP層轉發分組的流程(路由器轉發)

從上面的概述中,知道IP資料報中,隻有源IP和目的IP,而沒有中間經過的路由器的IP位址,如何轉發到下一跳路由呢?是以當路由器收到一個要轉發的資料報時,在從路由表得知下一跳路由器的IP位址後,不是将這個位址填入IP資料報中,而是送交給資料鍊路層的網絡接口軟體,将此IP位址轉換成硬體位址(使用ARP協定),然後将此硬體位址放在鍊路層的MAC幀的首部,根據這個硬體位址找到下一跳。

劃分子網

原因:

  1. IP位址不夠用,從IP位址的劃分可以看出IP位址空間是有限的。
  2. 給每一個實體網絡配置設定一個網絡号會使路由表變得太大因而使網絡性能變壞
  3. 兩級IP位址不夠靈活:若一個機關要開辟一個新的網絡,就要先申請才能加入到網絡中。兩級IP使無法做到的。

    劃分子網即從網絡的主機号中借用若幹位作為子網号,是以主機号就相應的減少來同樣的位數。于是IP位址的結構就為:{<網絡号>,<子網号>,<主機号>}。凡是從其他網絡發送給本機關某台主機的IP資料報,仍然是根據資料報的目的網絡号找到本機關網絡上的路由器。但此路由器在收到IP資料報後,再按目的網絡号和子網号找到目的子網,把IP資料報傳遞給目的主機。

    因為32位的IP位址本身以及資料報的首部都沒有包含任何有關子網劃分的資訊,是以從IP資料報的首部無法看出源主機或目的主機所連接配接的網絡是否進行了子網的劃分,是以假如有資料(目的位址145.13.3.10)已經到達了一個路由器(網絡号為(145.13),這個路由器如何将資料發到子網145.13.3.0呢?即如何找到目的子網呢?

子網路遮罩

為了得出網絡位址(目的子網),就必須使用子網路遮罩,一般來說A類子網路遮罩為255.0.0.0,B類為255.255.0.00,C類為255.255.255.0,是以當知道一個IP位址時,将該IP位址與目前子網絡的子網路遮罩相“與”,即可得出正确的子網号。

使用子網時分組的轉發

從上面的叙述可以看出,一個路由器的路由表就至少應該有網絡位址,子網路遮罩,下一跳位址。

  1. 從資料報中提取目的IP
  2. 先判斷是否為直接傳遞。即對路由器直接連接配接的網絡進行檢測,用這個網絡的子網路遮罩與目的IP相與,看結果是否有相應的網絡位址對應,有就傳遞,沒有,執行3.
  3. 若路由表中有目的位址與提取的IP位址對應就把資料交給路由表中指明的下一跳路由。沒有則進行4。
  4. 對路由表中的的每一行(包含有目的網絡位址,子網路遮罩,目的位址),用其中的子網路遮罩與目的IP進行想與,若該結果與目的網絡位址相比對,則轉交給下一跳,否則執行5。
  5. 交給預設路由,若沒有預設路由,則報錯。
  6. 報錯。