網路層協議原理

頭條號轉正啦~出差比較多沒有更新,非常感謝大家的支援,之前有分開寫過TCP/IP、ARP、ICMP等協議,今天再統一更新一篇網路層協議原理,希望能夠幫到大家!

TCP/IP協議棧的網路層位於網路介面層和傳輸層之間,其主要協議包括IP、ARP、RARP、ICMP、IGMP等。其中IP協議是TCP/IP網路層的核心協議,它規定了資料的封裝方式和網路節點的標識方法,用於網路上資料的端到端的傳遞。

TCP/IP的網路層主要定義了以下協議:

(1)IP:負責網路層定址、路由選擇、分段及包重組;

(2)ARP:負責把IP地址解析成物理地址。在實際進行通訊時, 物理網路所使用的是物理地址,IP地址是不能被物理網路識別的。對於乙太網而言,當IP資料包透過乙太網傳送時,乙太網裝置是以MAC地址傳輸資料的,ARP協議就是用來將IP地址解析成MAC地址的;

(3)RARP:負責把物理地址解析成IP地址,常用於無盤工作站透過其MAC地址從伺服器處解析對應的IP地址;

(4)ICMP:定義了網路層控制和傳遞訊息的功能,可以報告IP資料包傳送過程中發生的錯誤、失敗等資訊,提供網路診斷功能。ping和tracert兩個使用極其廣泛的測試工具就是ICMP訊息的應用;

(5)IGMP:負責管理IP組播組。用於支援在主機和路由器之間進行組播傳輸資料,它讓一個物理網路上的所有路由器知道當前網路中有哪些主機需要組播。組播路由器需要這些資訊以便知道組播資料包應該像哪些介面轉發。

1。IP

1。1 IP的作用

IP是盡力傳輸的網路協議,其提供的資料傳送服務是不可靠的、無連線的。IP協議不關心資料包的內容,不能保證資料包是否能成功地到達目的地,也不維護任何關於前後資料包的狀態資訊,面向連線的可靠服務有上層的TCP協議來實現。

IP將來自傳輸層的資料段封裝成IP包並交給網路介面層進行傳送,同時將來自網路介面層的幀解封裝並根據IP協議號提交給相應的傳輸層協議進行處理。(TCP協議號為6,UDP協議號為17)IP協議的主要作用如下:

(1)標識節點和鏈路:IP為每個鏈路分配一個全域性唯一的網路號以標識每個網路;為每個節點分配一個全域性唯一的32位IP地址,用以標識每一個節點;

(2)定址和轉發:IP路由器根據掌握的路由資訊,確定節點所在網路的位置,進而確定節點所在的位置,並選擇適當的路徑將IP包轉發到目的節點;

(3)適應各種資料鏈路:為了工作在多樣化的鏈路和介質上,IP必須具備適應各種資料鏈路的能力,例如根據鏈路的MTU(最大傳輸單元)對IP包進行分片和重組,可以建立IP地址到資料鏈路層地址的對映以透過實際的資料鏈路傳遞資訊。

1。2 IP地址分類

在現實的網路中,各個網段內具有的IP節點數各不相同,為了更好的管理和使用IP地址資源,IP地址被劃分為5類——A類、B類、C類、D類、E類。每類地址的網路號和主機號在32位地址中佔用的位數各不相同,因而其可以容納的主機數量也有很大區別。

網路層協議原理

(1)A類IP地址的第一個八位段以0開始,網路號取值範圍為1~126(127留作它用)。A類地址的主機號為後面的3個八位段,共24位。A類地址的範圍為1。0。0。0~126。255。255。255,每個A類網路中有2^24個A類IP地址;

(2)B類IP地址的第一個八位段以10開始,網路號取值範圍為128~191。B類地址的主機號為後面的2個八位段,共16位。B類地址的範圍為128。0。0。0~191。255。255。255,每個A類網路中有2^16個B類IP地址;

(3)C類IP地址的第一個八位段以110開始,網路號取值範圍為192~223。C類地址的主機號為後面的1個八位段,共8位。C類地址的範圍為192。0。0。0~223。255。255。255,每個C類網路中有2^8=256個C類IP地址;

(4)D類地址第一個八位段以1110開頭,因此D類地址的第一個八位段取值為224~239。D類地址通常為組播地址。

(5)E類地址第一個八位段以1110開頭,保留用於研究。

1。3特殊用途的IP地址

IP地址用於唯一標識一臺網路裝置,但並不是每一個IP地址都用於這個目的。一些特殊的IP地址被用於各種各樣的其他用途。

網路層協議原理

主機號部分全為0的IP地址稱為網路地址。網路地址用於標識一個網段,例如1。0。0。0/8、10。0。0。0/8、192。168。1。0/24等。

主機號部分全為1的IP地址是網段廣播地址。這種地址用於標識一個網路內的所有主機。例如,10。255。255。255是網路10。0。0。0內的廣播地址,表示網路內的所有主機。一個發往10。255。255。255的IP包將會被該網段內的所有主機接收。

網路號為127的IP地址用於環路測試,例如127。0。0。1通常表示“本機”。

IP地址為0。0。0。0代表“所有的網路”,通常用於指定預設路由。而IP地址255。255。255。255是全網廣播地址,代表“所有的主機”,用於向網路的所有節點發送資料包。

如上所述,每一個網段都會有一個網路地址和一個網段廣播地址,因此實際可用於主機的地址數等於網段內的全部地址數減2。例如B類網段172。16。0。0有16個主機位,因此有2^16個IP地址,去掉一個網路地址172。16。0。0和一個廣播地址172。16。255。255不能用於標識主機,實際共有2^16-2個可用地址。

各類IP地址的實際可用地址範圍如下所示:

網路層協議原理

網路層協議原理

注意:轉發網段廣播和全網廣播會對網路效能造成嚴重的不利影響,因此幾乎所有的路由器在預設情況下均不轉發廣播包。

2。ARP和RARP

作為網路中主機的身份標識,IP地址是一個邏輯地址,但在實際進行通訊時,物理網路所使用的依然是物理地址,IP地址是不能被物理網路識別的。ARP給出了將主機的網路地址動態對映為MAC地址的方法,而RARP給出了一種允許工作站動態獲得其協議地址的方法。

2。1 ARP的功能

對於乙太網而言,當IP資料包透過乙太網傳送時,乙太網裝置並不識別32位IP地址,它們是以48位的MAC地址標識每一裝置並根據此地址傳輸乙太網資料的。因此在物理網路中傳送資料時,需要在邏輯IP地址和物理MAC地址之間建立對映關係。地址之間的這種對映叫做地址解析。

ARP就是用於動態地將IP地址解析為MAC地址的協議。主機透過ARP解析到目的MAC地址後,將在自己的ARP快取表中增加相應的IP地址到MAC地址的對映表項,用於後續到同一目的地報文的轉發。

網路層協議原理

如圖所示,ARP的作用如同問路一樣,IP地址好比是目的地的名稱,MAC地址好比是目的地的物理位置。

2。2代理ARP

當主機不瞭解閘道器資訊,或主機無法判斷目的主機是否處於本網段時,某些主機會對處於其他網段的目的主機IP地址直接進行ARP解析。此時,路由器可以執行代理ARP協助主機實現通訊。

2。3 RARP的功能

在20世紀年代中期,有一種組網方式十分流行,叫做“無盤”網路。這種網路中的大部分工作站是無盤工作站。無盤工作站本身不需要硬碟,作業系統檔案放在網路中某臺指定的檔案伺服器中。無盤工作站啟動時從伺服器獲取作業系統檔案並進行引導。這種組網方式大大節約了網路建設的成本。

工作站的IP地址在作業系統中配置,而無盤工作站的作業系統軟體都存放在伺服器中,其啟動時不具有IP地址。但無盤工作站從伺服器下載作業系統軟體時需要透過IP與伺服器通訊。這就形成了一個矛盾——要獲得系統檔案就需要IP地址,要獲得IP地址就需要系統檔案。

無盤工作站已經具有一塊網絡卡,擁有全球唯一的物理地址;另外在其ROM中還有一個基本的引導系統,能依賴物理地址進行簡單的區域網通訊。因此,無盤工作站可以採用RARP獲取IP地址。

2。4廣播風暴的概念

路由轉發廣播將導致全網充斥廣播。很多協議需要透過廣播包完成公告、發現等任務。以ARP為例,每臺主機對網段內其他任何主機通訊時都需要廣播ARP請求。如果路由轉發廣播包,每個廣播包將傳遍整個網際網路,大大浪費了網路資源。並且由於廣播包將會被提交到每一臺主機的網路層進行處理,每一臺主機的資源都會遭到無謂的浪費。這種情況發展到一定程度,整個網路會由於廣播而癱瘓,這種情況稱為廣播風暴。

網路層協議原理

為了避免廣播風暴的傳送,路由器在預設情況下不轉發廣播包。

3。 ICMP

3。1 ICMP協議介紹

在無可靠性保證的IP通訊中,IP裝置需要互相交換一定的控制資訊,以便互相溝通通訊環境狀況,報告發生的錯誤。ICMP正是為這一目的設計的。

ICMP是一個網路層協議,定義了錯誤報告和其他回送給源點的關於IP資料包處理處理情況的訊息,可以用於報告IP資料包傳遞過程中發生的錯誤、失敗等資訊,提供網路診斷功能。

IP是盡力傳輸的網路協議,其提供的資料傳送服務是不可靠的、無連線的,不能保證IP資料包能成功地到達目的地。正是因為IP不能提供可靠的服務,所以在某些情況下,路由器或目的主機可能需要與源主機進行直接通訊,以便互動某種資訊。例如,假定一箇中途路由器沒有去往目的網路的路由,該路由器可能需要向源主機報告這個資訊。ICMP正是為這個目的而設計的。

ICMP允許主機或路由器報告差錯情況和提供有關異常情況的報告。如果在傳輸過程中發生某種錯誤,裝置便會向信源端返回一條ICMP訊息,告知他發生的錯誤型別。

ICMP基於IP執行,但ICMP實際上是集成於IP中的一部分,並且必須被IP實現。ICMP的設計目的並非是使IP稱為一種可靠協議,而是對通訊中發生的問題提供反饋。ICMP訊息的傳遞同樣得不到任何可靠性保證,因而可能在傳遞中丟失。根據不同的訊息,ICMP訊息分為不同的型別,總體上分為兩大類,即ICMP差錯訊息和ICMP查詢訊息。

3。2 ICMP的應用

(1)ping

ping是ICMP的一個最常見的應用,主機可透過它來測試網路的可達性。使用者執行ping命令時,主機向目的主機發送 ICMP Echo Request訊息。Echo Request訊息封裝在IP包內,其目的地址為目的主機的IP地址。目的主機都到Echo Request訊息後,向源主機回送一個ICMP Echo Reply訊息。源主機如果收到Echo Reply訊息,即可獲知該目的主機是可達的。假定某個中間路由器沒有到達目的網路的路由,便會向源主機端返回一條ICMP Destination Unreachable訊息,告知源主機目的不可達。源主機如果在一定時間內無法收到迴應,則認為目的主機不可達,並返回超時資訊。

(2)tracert

利用ping工具只能測試到目的主機的連通性,不能瞭解資料報的傳送路徑,因而在不能連通時也難以判斷問題發生在網路的哪個位置。使用tracert工具可以追蹤資料包的轉發路徑,探測到某一個目的主機的途中經過哪些中間轉發裝置。

4。 DHCP

此處主要簡單介紹一下DHCP協議的優點,主要有以下幾個優點。

(1)即插即用性:在一個透過DHCP實現IP地址分配和管理的網路中,終端主機無須配置即可自動獲得所需要的網路引數,網路管理人員和維護人員的工作壓力得到了很大程度上的減輕。

(2)統一管理:在DHCP協議中,由伺服器對客戶端的所有配置資訊進行統一管理。伺服器透過監聽客戶端的請求,根據預先配置的策略給予相應的回覆,將設定好的IP地址、子網掩碼。預設閘道器等引數分配給使用者。

(3)有效利用IP地址資源:在DHCP協議中,伺服器可以設定所分配IP地址資源的使用期限。使用期限到期後的IP地址資源可以由伺服器進行回收。

今天的更新先到這裡啦~提前祝大家元旦快樂!2018將繼續更新,歡迎關注!