1. 程式人生 > >計算機網路學習四:網路層

計算機網路學習四:網路層

1 基本概念

網路層(Network Layer)是OSI模型的第三層,它是OSI參考模型中最複雜的一層,也是通訊子網的最高一層。它在下兩層的基礎上向資源子網提供服務。其主要任務是:通過路由選擇演算法,為報文或分組通過通訊子網選擇最適當的路徑。該層控制資料鏈路層與傳輸層之間的資訊轉發,建立、維持和終止網路的連線。具體地說,資料鏈路層的資料在這一層被轉換為資料包,然後通過路徑選擇、分段組合、順序、進/出路由等控制,將資訊從一個網路裝置傳送到另一個網路裝置。

一般地,資料鏈路層是解決同一網路內節點之間的通訊,而網路層主要解決不同子網間的通訊。例如在廣域網之間通訊時,必然會遇到路由(即兩節點間可能有多條路徑)選擇問題。 

在實現網路層功能時,需要解決的主要問題如下:

 (a) 定址

資料鏈路層中使用的實體地址(如MAC地址)僅解決網路內部的定址問題。在不同子網之間通訊時,為了識別和找到網路中的裝置,每一子網中的裝置都會被分配一個唯一的地址。由於各子網使用的物理技術可能不同,因此這個地址應當是邏輯地址(如IP地址)。

 (b) 交換

規定不同的資訊交換方式。常見的交換技術有:線路交換技術和儲存轉發技術,後者又包括報文交換技術和分組交換技術。

(c) 路由演算法

當源節點和目的節點之間存在多條路徑時,本層可以根據路由演算法,通過網路為資料分組選擇最佳路徑,並將資訊從最合適的路徑由傳送端傳送到接收端。

 (d) 連線服務

與資料鏈路層流量控制不同的是,前者控制的是網路相鄰節點間的流量,後者控制的是從源節點到目的節點間的流量。其目的在於防止阻塞,並進行差錯檢測。

2 網路層提供的兩種服務

(1) 虛電路服務

藉助於電信網的成功經驗,讓網路負責可靠交付。用面向連線的通訊方式,當兩個計算機進行通訊時,應當向建立連線(在分組交換中建立一條虛電路VC(Virtual Circuit)),以保證雙方通訊所需的一切網路資源,然後雙方沿著已建立的虛電路傳送分組。這樣的分組的首部不需要填寫完整的目的主機地址,而只需要填寫這條虛電路的編號(一個不大的整數),因而減少了分組的開銷。這種通訊方式如果再使用可靠傳輸的網路協議,就可使所發的分組無差錯按序到達終點,也不丟失、不重複。在通訊結束後要釋放建立的虛電路,圖1(a)是網路提供虛電路服務的示意圖,主機H1和H2之間交換的分組都必須在事先建立的虛電路上傳送。

(2) 資料報服務

考慮到計算機網路的端系統是有智慧的計算機,計算機有很強的差錯處理能力(不像電信網的終端(電話機)非常簡單,無智慧和差錯處理能力),因此因特網在設計上就採用了和電信網完全不同的思路。網路層向上只提供簡單靈活的、無連線的、盡最大努力交付的資料報服務。網路在傳送分組時不需要先建立連線,每一個分組(也就是IP資料報)獨立傳送,與其前後的分組無關(不編號)。網路層不提供服務質量的承諾。所傳送的分組可能出錯、丟失、重複和失序,也不保證分組交付的時限。由於傳輸網路不提供端到端的可靠傳輸服務,這樣的好處是路由器做的比較簡單而且價格低廉,大大降低了網路的造價,執行方式靈活,能夠適應多種應用。圖1(b)是網路提供資料報服務的示意圖,主機H1向H2傳送的分組各自獨立地選擇路由,而且傳送的過程中還可能丟失。

下表歸納了虛電路服務和資料報服務的主要區別。

3 網際協議IP

網際協議IP是TCP/IP體系中最主要的協議之一,也就是最重要的因特網標準協議之一,與IP協議配套使用的還有四個協議:地址解析協議ARP(Address Resolution Protocol)、逆地址解析協議RARP(Reverse Address Resolution Protocol)、網際控制報文協議ICMP(Internet Control Message Protocol)、網際組管理協議IGMP(Internet Group Management Protocol)。

3.1 虛擬互連網路

由於使用者的需求是多種多樣的,沒有一種單一的網路能夠適應所有使用者的需求,所以市場上有很多種不同效能、不同網路協議的網路。面對不同的定址方案、不同的最大分組長度、不同的網路接入機制、不同的超時控制、不同的差錯恢復方法等等,網路的互連變得複雜。

TCP/IP體系在網路互連上採用的做法是在網路層(即IP層)採用了標準化協議,但相互連線的網路可以是異構的。由於參加互連的計算機網路都使用相同的網際協議IP,因此可以把互連以後的計算機網路看成虛擬互連網路,所謂虛擬互連網路就是邏輯互連網路,也就是互連起來的各種物理網路的異構性本來是客觀存在的,但是利用IP協議可以使這些效能各異的網路在網路層上看起來好像是一個統一的網路。

網路層使用中間裝置路由器(router) 用來在網際網路中進行路由選擇。(物理層/資料鏈路層/網路層以上分別對應的中間裝置是轉發器(repeater)/網橋或橋接器(bridge)/閘道器(gateway))。如圖2所示,主機H1先要查詢自己的路由表,看目的主機是否就在本網路上,則不需要經過任何路由器而是直接交付,任務就完成。如不是,則必須把IP資料報傳送給某個路由器 (R1),R1在查找了自己的路由表後,知道應當把資料報轉發給R2進行間接交付,這樣一直轉發直到路由器R5直到自己是和H2在同一網路上,就把資料報直接交付給目的主機H2。圖中協議棧中的數字1~5分別表示物理層、資料鏈路層、網路層、運輸層和應用層。

3.2 分類的IP地址

有了虛擬互連網路的概念,再討論在這樣的虛擬網路上如何定址。

3.2.1 IP地址及其表示方法

IP地址就是給因特網上的每一個主機(或路由器)的每一個介面分配一個在全世界範圍是唯一的32位的識別符號。IP地址現在由因特網名字與號碼指派公司ICANN(Internet Corporation for Assigned Names and Numbers) 進行分配。

IP地址被劃分為若干個固定類,每一類地址都由兩個固定長度的欄位組成,其中第一個欄位是網路號(net-id),它標誌主機(或路由器)所連線到的網路。一個網路號在整個因特網範圍內必須是唯一的。第二個欄位是主機號(host-id),它標誌該主機(或路由器)。一個主機號在它前面的網路號所指明的網路範圍內必須是唯一的。由此可見,一個IP地址在整個因特網範圍內是唯一的。這種兩級的IP地址可以記為IP地址 ::= {<網路號>, <主機號>}。

圖3給出了各種IP地址的網路號欄位和主機號欄位,這裡的A類、B類和C類地址都是單播地址(一對一通訊),是最常用的。

由圖3可以看出:

A類、B類和C類地址的網路號欄位分別是1,2,和3位元組長 ,而在網路號欄位的最前面有1~3位的類別號,其數值分別規定為0,10和110。 A類、B類和C類地址的主機號欄位分別為3個、2個和1個位元組長。 D類地址(前四位是1110)用於多播(一對多通訊)。 E類地址(前四位是1111)保留為以後用。

此處指出,由於近年來已經廣泛使用無分類IP地址進行路由選擇,A類、B類和C類地址的區分已經成為歷史。

從IP地址的結構來看,IP地址並不僅僅指明一個主機,同時指明瞭主機所連線到的網路。將IP地址分為三個類別主要是考慮到不同網路需要的主機數量不同,把IP地址劃分為A類、B類和C類滿足不同使用者的要求。當某個單位申請到一個IP地址時,實際上是獲得了具有同樣網路號的一塊地址。其中具體的各個主機號則由該單位自行分配,只要做到在該單位管轄範圍內無重複的主機號即可。

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

A類地址 的網路號欄位佔一個位元組,只有7位可供使用(該欄位的第一位已固定為0),最終可指派的網路號是126個(即2^7-2)。減2是去除了:(a) 網路號欄位為全0的IP地址是個保留地址,表示“這個(this)”、“本網路”;(b) 網路號為127(即0111 1111)保留作為本地軟體環回測試(loopback test) 本主機的程序之間通訊使用。若主機發送一個目的地址為環回地址(如127.0.0.1)的IP資料報,則本主機中的協議軟體就處理資料報中的資料,而不會把資料報傳送到任何網路。目的地址為環回地址的IP資料報永遠不會出現在任何網路上,因為網路號為127的地址根本不是一個網路地址。

A類地址的主機號佔3位元組,因此每一個A類網路中的最大主機數是2^24-2。此處減2去除的是:(a) 全0的主機號欄位表示該IP地址是“本主機”所連線到的單個網路地址(如一主機的IP地址為5.6.7.8,則該主機所在的網路地址就是5.0.0.0),而全1表示“所有的(all)”,因此全1的主機號欄位表示該網路上的所有主機。

IP地址空間共有 2^32 個地址。整個A類地址空間共有 2^31 個地址,佔有整個IP地址空間的50%。

B類地址 的網路號欄位有2位元組,但前面兩位(10)已經固定,只剩下14位可以進行分配。因為網路號欄位後面的14位無論怎樣取值也不可能出現使整個2位元組的網路號欄位成為全0或全1,因此這裡不存在網路總數減2的問題。但實際上B類網路地址128.0.0.0是不指派的,而可以指派的B類最小網路地址是128.1.0.0。因此B類地址可指派的網路數為2\^14-1。B類地址的每一個網路上的最大主機數是2\^16-2,減2扣除全0和全1的主機號。整個B類地址空間共約有2^30個地址,佔整個IP地址空間的25%。

C類地址 有3個位元組的網路號欄位,最前面的3位是(110),還有21位可以進行分配。C類網路地址192.0.0.0也是不指派的。可以指派的C類最小網路地址是192.0.1.0。因此C類地址可指派的網路總數是2\^21-1。每一個C類地址的最大主機數是2\^8-2。整個C類地址空間共約有2^29個地址,佔整個IP地址的12.5%。

下表給出IP地址的指派範圍如下:

下表給出了一般不使用的IP地址,這些地址只能在特定的情況下使用:

IP地址的重要特點:

每一個IP地址都由網路號和主機號兩部分組成。從這個意義上說IP地址是一種分等級的地址結構。分兩個等級的好處是:(a) IP地址管理機構在分配IP地址時只分配網路號(第一級),而剩下的主機號(第二級)則由得到該網路號的單位自行分配。這樣就方便了IP地址的管理。 (b) 路由器僅根據目的主機所連線的網路號來轉發分組(而不考慮目的主機號),這樣就可以使路由表中的專案數大幅度減少,從而減小了路由表所佔的儲存空間以及查詢路由表的時間。 實際上IP地址是標誌一個主機(或路由器)和一條鏈路的介面。所以當一個主機擁有多個屬於不同網路號的IP地址時,稱為多歸屬主機(multihomed host),該主機同時連線到兩個網路。由於一個路由器至少應當連線兩個網路,因此一個路由器至少應當有兩個不同的IP地址(兩個路由器之間直接相連,連線兩端的介面可以分配地址也可以不分配,為了節省IP地址資源,對於這種僅由一段連線構成的特殊“網路”,現在也常常不分配IP地址,通常把這樣的特殊網路叫做無編號網路(unnumbered network)或無名網路(anonymous network))。 一個網路是指具有相同網路號net-id的主機的集合。因此,用轉發器或網橋連線起來的若干個區域網仍為一個網路,這些區域網都具有相同的網路號。具有不同網路號的區域網必須使用路由器進行互連。 在IP地址中,所有分配到網路號的網路都是平等的。

4 IP地址與硬體地址

從層次的角度看,實體地址是資料鏈路層和物理層使用的地址,而IP地址是網路層和以上各層使用的地址,是一種邏輯地址(稱IP地址是邏輯地址是因為IP地址是用軟體實現的)。

IP地址放在IP資料報的首部,而硬體地址則放在MAC幀的首部。當IP資料報放入資料鏈路層的MAC幀中以後,整個IP資料報就成為MAC幀的資料,因而在資料鏈路層看不見資料報的IP地址。

4.1 地址解析協議ARP和逆地址解析協議RARP

ARP和RARP用於解決IP地址和實體地址之間的對應問題的兩個協議。ARP協議找出IP地址對應的實體地址,RARP協議找出實體地址對弈的IP協議。

由於現在的DHCP協議(應用層)已經包含了RARP協議的功能,因此現在已經不再單獨使用了。只要瞭解其作用是隻知道自己硬體地址的主機能夠通過RARP協議找出其IP地址。

由於主機的硬體地址可能會改變,而IP地址和硬體地址不存在簡單的對映關係。此外,在一個網路上可能經常會有新的主機加入或者撤走一些主機。地址解析協議ARP解決IP地址和硬體地址的對映問題的方法是在主機ARP快取記憶體中存放一個從IP地址到硬體地址的對映表,並且該對映表還經常動態更新(新增或超時刪除)。

每一個主機都設有一個ARP快取記憶體(ARP cache),裡面有本區域網上的各主機和路由器的IP地址到硬體地址的對映表。當主機A要想向本區域網上的某個主機B傳送IP資料報時,就先在其ARP快取記憶體中檢視有無主機B的IP地址,若有則在ARP快取記憶體中查出其對應的硬體地址,再把這個硬體地址寫入MAC幀,然後通過區域網把該MAC幀發往此硬體地址。當查不到主機B的IP地址時,主機A就會自動執行ARP:

(a) ARP程序在本區域網上廣播發送一個ARP請求分組,請求的主要內容是“我的IP地址時209.0.0.5,硬體地址是00-00-C0-15-AD-18。我想知道IP地址為209.0.0.6的主機的硬體地址。”;

(b) 在本區域網上的所有主機上執行的ARP程序都收到此ARP請求分組。

(c) 主機B在ARP請求分組中見到自己的IP地址,就向主機A傳送ARP響應分組,並寫入自己的硬體地址。其餘的所有主機都不理睬這個ARP請求分組,ARP響應分組的主要內容是“我的IP地址是209.0.0.6,我的硬體地址是08-00-2B-00-EE-0A。”注意ARP請求分組是廣播發送的,ARP響應分組是普通的單播,即從一個源地址傳送到一個目的地址。同時主機A的這一地址對映也寫入了主機B自己的ARP快取記憶體中。

(d) 主機A收到主機B的ARP響應分組後,就在其ARP快取記憶體中寫入主機B的IP地址到硬體地址的對映。

ARP把儲存在快取記憶體中的每一個對映地址專案都設定生存時間。凡是超過生存時間的專案就從快取記憶體中刪除掉。生存時間在某些主機硬體地址發生改變或者消失時十分有意義,可以及時更新或者刪除對映地址。

注意ARP是解決同一個區域網上的主機或路由器的IP地址和硬體地址的對映問題。對於不在同一個區域網的主機,並不需要知道其硬體地址,只要先通過IP地址找到路由器(需要其硬體地址)進行轉發即可。

既然有硬體地址,為什麼我們要使用抽象的IP地址來尋找目的主機並呼叫ARP來找出硬體地址呢?主要是因為網路型別多種多樣,其硬體地址格式也不同,要使得這些異構網路能夠互相通訊就必須進行非常複雜的硬體地址轉換工作。統一的IP地址解決了這個複雜的問題,不同主機之間的通訊就像連線在同一個網路上一樣。

5 IP資料包的格式

在TCP/IP標準中,各種資料報格式常常以32位(即4位元組)為單位來描述。IP資料報的完整格式如圖4所

5.1 IP資料報首部各欄位的意義

5.1.1 IP資料報首部的固定部分中的各欄位

(1) 版本

(a) 佔4位,指IP協議的版本。

(b) 通訊雙方使用的IP協議的版本必須一致。

(c) IP協議版本號為4(即IPv4),IP協議版本號為6(即IPv6)。

(2) 首部長度

(a) 佔4位,可表示的最大十進位制數值是15。

(b) 這個欄位所表示數的單位是32位字(即4位元組),因此,當IP的首部長度為1111(即十進位制的15)時,首部長度就達到最大值60個位元組。

(c) 最常用的首部長度就是20個位元組(即首部長度為0101),這時不使用任何選項,是固定首部的長度。

(d) 當IP分組的首部長度不是4位元組的整數倍時,必須利用最後的填充欄位加以填充。

(3) 區分服務

(a) 佔8位,用來獲得更好的服務。

(4) 總長度

(a) 佔16位,指首部和資料之和的長度。

(b) 資料報的最大長度為2^16 -1 = 65535位元組。

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

(d) 雖然使用盡可能長的資料報會使傳輸效率提高,但由於乙太網的普遍應用,所以實際上使用的資料報長度很少有超過1500位元組的。

(e) 為了不使IP資料報的傳輸效率降低,有關IP的標準文件規定,所有的主機和路由器必須能夠處理的IP資料報的長度不得少於576位元組。這個數值也就是最小的IP資料報的總長度。

(f) 當資料報長度超過網路所容許的最大傳送單元MTU時,就必須把過長的資料報進行分片後才能在網路上傳送(“片偏移”欄位相關)。這時,資料報首部中的總長度不是指未分片前的資料報長度,而是指分片後的每一個分片的首部長度與資料長度的總和。

(5) 標識

(a) 佔16位,指IP軟體在儲存器中維持一個計數器,每產生一個數據報,計數器就加1,並將此值付給標識欄位。

(b) 但這個標識並不是序號,因為IP是無連線服務,資料報不存在按序接收的問題。

(c) 當資料報由於長度超過網路的MTU而必須分片時,這個標識欄位的值就會被複制到所有的資料報片的標識欄位中。相同的標識欄位的值使分片後的各資料報片最後能正確地重灌成為原來的資料報。

(6) 標誌

(a) 佔3位,但目前只有兩位有意義。

(b) 標誌欄位中的最低位記為MF(More Fragment)。

MF=1即表示後面“還有分片”的資料報。

MF=0即表示這已是若干資料報片中的最後一個。

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

(7) 片偏移

(a) 佔13位,指出較長的分鐘再分片後,某片在原分組中的相對位置。

(b) 也就是說,相對於使用者資料欄位的起點,該片從何處開始。

(c) 片偏移以8個位元組為偏移單位。也就是說,每個分片的長度一定是8位元組(64位)的整數倍。

(d) 例子:一資料報的總長度為3820位元組,其資料部分為3800位元組長(使用固定首部),需要分片為長度不超過1420位元組的資料報片。因固定首部長度為20位元組,因此每個資料報片的資料部分長度不能超過1400位元組。於是分成3個數據報片,其資料部分的長度分別分為1400,1400和1000位元組。原始資料報首部被複製為各資料報片的首部,但必須修改有關欄位的值。

(8) 生存時間

(a) 佔8位,常用的英文縮寫是TTL(Time To Live),表明資料報在網路中的壽命。

(b) 由發出資料報的源點設定這個欄位。

(c) 其目的是為了防止無法交付的資料報無限制地在因特網中兜圈子,因而白白浪費網路資源。

(d) 隨著技術的發展,TTL欄位的功能改為“跳數限制”。路由器在轉發資料報之前就把TTL值減1。若TTL值減少到零,就丟棄這個資料報,不再轉發。

(e) 因此,現在TTL的單位不再是秒,而是跳數。

(f) TTL的意義是指明資料報在因特網中至多可經過多少個路由器。顯然,資料報能在因特網中經過的路由器的最大數是255。

(g) 若把TTL的初始值設定為1,就表示這個資料報只能在本區域網中傳送。

(9) 協議

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

(b) 常用的一些協議和相應協議的欄位值。

(10) 首部檢驗和

(a) 佔16位,只檢驗資料報的首部,但不包括資料部分。

(b) 這是因為資料報每經過一個路由器,路由器都要重新計算一下首部檢驗和(一些欄位,如生存時間、標誌、片偏移等都可能發生變化)。

(c) 不檢驗資料部分可減少計算的工作量。

(d) 為了進一步減少計算檢驗和的工作量,IP首部的檢驗和不採用複雜的CRC檢驗碼而是採用以下演算法:

1) 在傳送方,先把IP資料報首部劃分為許多16位字的序列,並把檢驗和欄位置零。

2) 用反碼算術運算把所有16位字相加後,將得到的和的反碼寫入檢驗和欄位,

3) 接收方收到資料報後,將首部的所有16位字再使用反碼算術運算相加一次。將得到的和取反碼,即得出接收方檢驗和的計算結果。若首部未發生任何變化,則此結果必為0,於是就保留這個資料報,否則即認為出錯,並將此資料報丟棄。

(11) 源地址

(a) 佔32位。

(12) 目的地址

(a) 佔32位。

5.1.2 IP資料報首部的可變部分

IP首部的可變部分就是一個選項欄位。

(1) 可選欄位(長度可變)

(a) 選項欄位用來支援排錯、測量以及安全等措施,內容很豐富。

(b) 此欄位的長度可變,從1~40個位元組不等,取決於所選擇的專案。

(c) 某些選項專案只需要1個位元組,它只包括1個位元組的選項程式碼。但還有些選項需要多個位元組,這些選項一個個拼接起來,中間不需要有分隔符。

(2) 填充

最後用全0的填充欄位補齊成為4位元組的整數倍。

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

6 IP層轉發分組的流程

現在的路由表是按主機所在的網路地址來製作路由表,每一行對應於一個網路,大大降低了路由表的規模。在路由表中,對每一條路由最主要的是以下兩個資訊:(目的網路地址,下一跳地址)。

雖然因特網所有的分組轉發都是基於目的主機所在的網路,但是在大多數情況下都允許有這樣的特例,即對特定的目的主機指明一個路由,這種路由稱為特定主機路由,能夠更方便地控制和測試網路。路由器還可採用預設路由(default route) 以減少路由表所佔用的空間和搜尋路由表所用的時間,這種轉發方式在一個網路只有很少的對外連線時是很有用的。

注意到,在IP資料包的首部中沒有什麼地方可以用來指明“下一跳路由器的IP地址”,待轉發的資料報是怎麼找到下一跳路由器呢?噹噹路由器收到一個待轉發的資料報,在從路由表得到下一跳路由器的IP地址後,把這個地址送交下層的網路介面軟體,使用ARP將下一跳路由器的IP地址轉換成硬體地址,並將此硬體地址放在鏈路層的MAC幀的首部,然後根據這個硬體地址找到下一條路由器。

(1) 根據目的網路地址來確定下一跳路由器,這樣做的結果如下:

(a) IP資料報最終一定可以找到目的主機所在目的網路上的路由器(可能要通過多次的間接交付)。

(b) 只有到達最後一個路由器時,才試圖向目的主機進行直接交付。

注:在網際網路上轉發分組時,是從一個路由器轉發到下一個路由器。總之,在路由表中,對每一條路由最主要的是以下兩個資訊:(目的網路地址,下一跳地址)。

(2) 特定主機路由

雖然因特網所有的分組轉發都是基於目的主機所在的網路,但在大多數情況下都允許有這樣的特例,即對特定的目的主機指,明的一個路由這種路由叫做特定主機路由。

採用特定主機路由的好處:

(a) 可使網路管理人員能夠更方便地控制網路和測試網路,同時也可在需要考慮某種安全問題時採用這種特定主機路由。

(b) 在對網路的連線或路由表進行排錯時,指明到某一主機的特定路由就十分有用。

注:特定主機路由是要到某一臺機器的路由。特定網路路由是你到某一個子網的路由。特定主機路由也可視為特定網路路由的一個特例,即Mask為255.255.255.255的特定網路路由。

(3) 預設路由

預設路由是一種特殊的靜態路由,指的是當路由表中與包的目的地址之間沒有匹配的表項時路由器能夠做出的選擇。

如果沒有預設路由,那麼目的地址在路由表中沒有匹配表項的包將被丟棄。

預設路由在某些時候非常有效,當存在末梢網路時,預設路由會大大簡化路由器的配置,減輕管理員的工作負擔,提高網路效能。

主機裡的預設路由通常被稱作預設閘道器,預設閘道器通常會是一個有過濾功能的裝置,如防火牆和代理伺服器。

預設路由和靜態路由的命令格式一樣,只是把目的地ip和子網掩碼改成0.0.0.0和0.0.0.0,預設路由只能存在末梢網路中。

(4) 分組轉發演算法

注:當傳送一連串的資料報時,上述的這種查詢路由表、計算硬體地址、寫入MAC幀的首部等過程,將不斷地重複進行,造成了一定的開銷。儘管如此,也不能在路由表中直接使用硬體地址,因為使用抽象的IP地址,就是為了遮蔽各種底層網路的複雜性而便於分析和研究問題,這樣就不可避免地多了一些開銷。

(a) 從資料報的首部提取目的主機的IP地址D,得出目的網路地址為N。

(b) 若N就是與此路由器直接相連的某個網路地址,則進行直接交付,不需要再經過其他的路由器,直接把資料報交付給目的主機(這裡包括把目的主機地址D轉換為具體的硬體地址,把資料報封裝為MAC幀,再發送此幀);否則就要執行(c)進行間接交付。

(c) 若路由表中有目的地址為D的特定主機路由,則把資料報傳送給路由表中所指明的下一跳路由器,否則執行(d)。

(d) 若路由表中有到達網路N的路由,則把資料報傳送給路由表中所指明的下一跳路由器,否則執行(e)。

(e) 若路由表中有一個預設路由,則把資料報傳送給路由表中所指明的下一跳路由器,否則執行(f)。

(f) 報告轉發分組出錯。

本文轉自: