導航:首頁 > 網路連接 > 計算機網路第48講網路層

計算機網路第48講網路層

發布時間:2022-10-22 14:37:15

A. 計算機網路(三)——網路層

網路層的 目的 是實現在任意結點間進行數據報傳輸,它的目的與鏈路層、物理層不是一樣的嗎?但是通過它數據可以在更大的網路中傳輸。

為了能使數據更好地在更大的網路中傳輸,網路層主要實現三個功能: 異構網路互聯 路由與轉發 擁塞控制

我們知道,在物理層、鏈路層,可以使用不同的傳輸介質和拓撲結構將幾台、十幾台主機連接在一起形成一個小型的區域網,把這些組成結構不完全相同的區域網稱為異構網,因此將它們連接擴大成更大的網路,需要一個類似轉接頭的設備——路由器,路由器不僅僅可以連接異構網,還能隔離沖突域和廣播域,依照IP地址轉發。

下圖對集線器、網橋、交換機和路由器能否隔離沖突域和廣播域進行比較:

路由器作為連接多個網路的結點,不僅需要完成對數據的分組轉發,還要選擇傳輸路徑,因此路由器主要由 路由選擇 分組轉發 組成。

網路層最重要的功能是 路由與轉發 功能。路由也就是選擇一條合適的路,轉發則是在這條路上遵守協議。這有點像從某個多個國家的交界城市自駕,選其中一條路,那麼就遵守這個國家的交通協議。

數據通過一個又一個路由器到達目的地址,路由器怎麼知道數據應該從哪個埠出發才能到達目的地呢?這就需要構造路由表。
路由表有兩種構造方式: 靜態 動態

一個個小網路可以構成一個區域,足夠多的區域互連成一個網路,多個網路又形成巨大的互聯網。要想讓數據高效在網路中傳輸,採用「分而治之」的理念。
將互聯網分為許多較小的自治系統,系統有權決定自己內部採用什麼路由協議,這便是層次路由。通過層次路由便可以採用靈活的協議傳輸數據。數據在自治系統內傳輸採用 內部網關協議 而自治系統之間則採用 外部網關協議

內部網關協議有兩種協議: 路由信息協議(RIP) 開放最短路徑優先協議(OSPF)

外部網關協議則是邊界網關協議(BGP)。內部網關協議服務某個自治系統,范圍較小,所以盡可能有效地從源站送到目的站,也就是找到一條最佳路徑。而外部網關協議需要面對更大的網路范圍和網路環境,因此更關注的找到比較好的路徑,也就是不能兜圈子。

BGP工作原理:

將三種路由協議進行比較:

構建大規模、異構網路的互聯網除了硬體的支持外,還需要建立協議以實現數據報傳輸服務——IP協議。
目前IP協議有兩個版本:IPv4和IPv6。

現在主流的IP協議版本還是IPv4。

IP數據報主要由首部和數據部分組成,由TCP報文段封裝到數據部分,再在前端加上一些描述信息的首部,其格式如下圖:

IP協議使用分組轉發,當報文過大時需要分片。分片的思路如下:

如果把IP數據報看作是信,那麼首部中的源地址與目的地址則分別是發信地址和郵件地址。為了方便路由計算這些地址,並且使IP地址足夠使用,因此將IP地址進行分類。

IP地址的格式 : {<網路號>,<主機號>},網路號標志主機所連接的網路,主機號標志該主機,每個IP地址都是唯一的。

IP地址分類 如下:

通過分類,可以計算每個網路中最大的主機數:

網路地址轉換(NAT)是一種轉換機制,將專用網路地址轉換為公用地址,目的是為了對外隱藏內部管理的IP地址,這樣不僅可以保證網路安全,還可以解決IP地址不足問題。
當路由器接收到的目的地址是私有地址則一律不進行轉發,而如果是公用地址,則是用NAT轉換表將源IP及埠號映射成全球IP號,然後從WAN埠發送到網際網路上。

IP地址有A、B、C類網路號,如果把A類網路號分給一個廣播域,那麼這個廣播域可以接入16,777,212台主機,然而一個廣播域不可能融入這么多台主機,因為這樣會導致廣播域過飽和而癱瘓,而只給其分配一定數量的網路號,則會浪費大量的IP地址。因此在IP地址中增加一個「子網號欄位」,將IP地址劃分為三級,即IP地址={<網路號>,<子網號>,<主機號>},也就是從主機號中借用幾個比特號作為子網號,這個子網號是對內劃分的,對外仍舊表現為二級IP地址。

主機或路由器如何判斷一個網路是否進行子網劃分了呢?——利用子網掩碼。

CIDR是 無分類 域間路由器選擇,目的是消除A、B、C類網路劃分,這樣可以大幅度提高IP地址空間利用率。相比較子網掩碼劃分,它更加靈活。

上圖中,如果R1收到前綴為206.1的IP地址,它只需要轉發給R2,具體發往網路1還是網路2,則由R2計算得出。

通過IP地址,可以將數據從某個網路傳輸到目的網路,但是把信息發送給哪台主機呢?由於路由器的隔離,IP網路沒辦法使用廣播方式查找MAC地址,只有通過鏈路層的MAC地址以廣播方式定址。
因此,IP協議還包括三個協議—— ARP、DHCP和ICMP ,共同配合完成數據轉發。

IPv6是解決IP地址耗盡的根本手段。它與IPv4的報文形式差別如下圖:

IPv6與IPv4地址通信示意圖:

在通信過程中,如果分組過量而導致網路性能下降,會產生擁塞。

擁塞的控制方式:

B. 網路五層結構

計算機網路五層結構是指應用層、傳輸層、網路層、數據鏈路層、物理層。

1、應用層

專門針對某些應用提供服務。

2、傳輸層

網路層只把數據送到主機,但不會送到進程。傳輸層負責負責進程與主機間的傳輸,主機到主機的傳輸交由網路層負責。傳輸層也稱為端到端送。

3、網路層

把包裡面的目的地址拿出來,進行路由選擇,決定要往哪個方向傳輸。

負責從源通過路由選擇到目的地的過程,達到從源主機傳輸數據到目標主機的目的。

4、數據鏈路層

通過物理網路傳送包,這里的包是通過網路層交過來的數據報。

只完成一個節點到另一個節點的傳送(單跳)。

5、物理層

通過線路(可以是有形的線也可以是無線鏈路)傳送原始的比特流。

只完成一個節點到另一個節點的傳送(單跳)。

(2)計算機網路第48講網路層擴展閱讀:

計算機網路是指將地理位置不同的具有獨立功能的多台計算機及其外部設備,通過通信線路連接起來,在網路操作系統,網路管理軟體及網路通信協議的管理和協調下,實現資源共享和信息傳遞的計算機系統。

計算機網路也稱計算機通信網。關於計算機網路的最簡單定義是:一些相互連接的、以共享資源為目的的、自治的計算機的集合。若按此定義,則早期的面向終端的網路都不能算是計算機網路,而只能稱為聯機系統(因為那時的許多終端不能算是自治的計算機)。但隨著硬體價格的下降,許多終端都具有一定的智能,因而「終端」和「自治的計算機」逐漸失去了嚴格的界限。若用微型計算機作為終端使用,按上述定義,則早期的那種面向終端的網路也可稱為計算機網路。

C. 計算機網路(四)網路層

主要任務是把分組從源端傳到目的端,為分組交換網上的不同主機提供通信服務。網路層傳輸單位是數據報。

鏈路層數據幀可封裝數據的上限稱為最大傳送單元MTU

標識:同一數據報的分片使用同一標識。

中間位DF(Don』t Fragment):

最低位MF(More Fragment):

片偏移:指出較長分組分片後,某片在原分組中的相對位置。以8B為單位。除了最後一個分片,每個分片長度一定是8B的整數倍。

IP地址:全世界唯一的32位/4位元組標識符,標識路由器主機的介面。IP地址::={<網路號>,<主機號>}

有一些IP地址是不能用的,有其特殊的作用,如:

網路地址轉換NAT(Network Address Translation):在專用網連接到網際網路的路由器上安裝NAT軟體,安裝了NAT軟體的路由器叫NAT路由器,它至少有一個有效的外部全球IP地址。

此外,為了網路安全,劃分出了部分IP地址和私有IP地址,私有IP地址網段如下:

路由器對目的地址是私有IP地址的數據報一律不進行轉發。

分類的IP地址的弱點:

某單位劃分子網後,對外仍表現為一個網路,即本單位外的網路看不見本單位內子網的劃分。

路由器轉發分組的演算法:

無分類域間路由選擇CIDR:

CIDR記法:IP地址後加上「/」,然後寫上網路前綴(可以任意長度)的位數。e.g. 128.14.32.0/20

CIDR把網路前綴都相同的連續的IP地址組成一個「CIDR地址塊」。

使用CIDR時,查找路由表可能得到幾個匹配結果(跟網路掩碼按位相與),應選擇具有最長網路前綴的路由。前綴越長,地址塊越小,路由越具體。

將多個子網聚合成一個較大的子網,叫做構成超網,或路由聚合。方法:將網路前綴縮短(所有網路地址取交集)。

由於在實際網路的鏈路上傳送數據幀時,最終必須使用MAC地址。

ARP協議:完成主機或路由器IP地址到MAC地址的映射。

ARP協議使用過程:

ARP協議4種典型情況:

動態主機配置協議DHCP是 應用層 協議,使用 客戶/伺服器 方式,客戶端和服務端通過 廣播 方式進行交互,基於 UDP

DHCP提供即插即用聯網的機制,主機可以從伺服器動態獲取IP地址、子網掩碼、默認網關、DNS伺服器名稱與IP地址,允許地址重用,支持移動用戶加入網路,支持在用地址續租。

DHCP工作流程如下:

ICMP協議支持主機或路由器:包括差錯(或異常)報告和網路探詢,分部發送特定ICMP報文

ICMP差錯報告報文(5種):

不應發送ICMP差錯報文的情況:

ICMP詢問報文:

ICMP的應用:

32位IPv4地址空間已分配殆盡,這時,可以採用更大地址空間的新版本的IPv6,從根本上解決地址耗盡問題

IPv6數據報格式如下圖

IPv6的主要特點如下:

IPv6地址表示形式:

零壓縮:一連串連續的0可以被一對冒號取代。雙冒號表示法在一個地址中僅可出現一次。

IPv6基本地址類型:

IPv6向IPv4過渡的策略:

R1的路由表/轉發表如下:

最佳路由:「最佳」只能是相對於某一種特定要求下得出的較為合理的選擇而已。

路由演算法可分為

由於網際網路規模很大且許多單位不想讓外界知道自己的路由選擇協議,但還想連入網際網路,可以採用自治系統來解決

自治系統AS:在單一的技術管理下的一組路由器,而這些路由器使用一種AS內部的路由選擇協議和共同的度量以確定分組在該AS內的路由,同時還使用一種AS之間的路由協議以確定在AS之間的路由。

一個AS內的所有網路都屬於一個行政單位來管轄,一個自治系統的所有路由器在本自治系統內都必須連通。

路由選擇協議

RIP是一種分布式的基於距離向量的路由選擇協議,是網際網路的協議標准,最大優點是簡單。

RIP協議要求網路中每一個路由器都維護從它自己到其他每一個目的網路的唯一最佳距離 [1] 記錄(即一組距離)。 RIP協議只適用於小互聯網。

RIP是應用層協議,使用 UDP 傳送數據。一個RIP報文最多可包括25個路由,如超過,必須再用一個RIP報文傳送。

RIP協議的交換

路由器剛開始工作時,只知道直接連接的網路的距離(距離為1),接著每一個路由器也只和數目非常有限的相鄰路由器交換並更新路由信息。

經過若干次更新後,所有路由器最終都會知道到達本自治系統任何一個網路的最短距離和下一跳路由器的地址,即「收斂」。

RIP的特點:當網路出現故障時,要經過比較長的時間(例如數分鍾) 才能將此信息傳送到所有的路由器,「慢收斂」。

對地址為X的相鄰路由器發來的RIP報文,修改此報文中的所有項目:把「下一跳」欄位中的地址改為X,並把所有的「距離」欄位+1。

開放最短路徑優先OSPF協議:「開放」標明OSPF協議不是受某一家廠商控制,而是公開發表的;「最短路徑優先」是因為使用了Dijkstra提出的最短路徑演算法SPF。OSPF最主要的特徵就是使用分布式的鏈路狀態協議。 OSPF直接用IP數據報傳送。

OSPF的特點:

為了使OSPF 能夠用於規模很大的網路,OSPF 將一個自治系統再劃分為若干個更小的范圍,叫做區域。每一個區域都有一個32 位的區域標識符(用點分十進製表示)。區域也不能太大,在一個區域內的路由器最好不超過200 個。

BGP 所交換的網路可達性的信息就是要到達某個網路所要經過的一系列AS。當BGP 發言人互相交換了網路可達性的信息後,各BGP 發言人就根據所採用的策略從收到的路由信息中找出到達各AS 的較好路由。

一個BGP 發言人與其他自治系統中的BGP 發言人要交換路由信息,就要先建立TCP 連接,即通過TCP傳送,然後在此連接上交換BGP 報文以建立BGP 會話(session),利用BGP 會話交換路由信息。 BGP是應用層協議,藉助TCP傳送。

BGP協議特點:

BGP-4的四種報文

組播提高了數據傳送效率。減少了主幹網出現擁塞的可能性。組播組中的主機可以是在同一個物理網路,也可以來自不同的物理網路(如果有組播路由器的支持)。

IP組播地址讓源設備能夠將分組發送給一組設備。屬於多播組的設備將被分配一個組播組IP地址(一群共同需求主機的相同標識)。

組播地址范圍為224.0.0.0~239.255.255.255(D類地址),一個D類地址表示一個組播組。只能用作分組的目標地址。源地址總是為單播地址。

同單播地址一樣,組播IP地址也需要相應的組播MAC地址在本地網路中實際傳送幀。組播MAC地址以十六進制值01-00-5E打頭,餘下的6個十六進制位是根據IP組播組地址的最後23位轉換得到的。

TCP/IP 協議使用的乙太網多播地址的范圍是:從01-00-5E-00-00-00到01-00-5E-7F-FF-FF .

收到多播數據報的主機,還要在IP 層利用軟體進行過濾,把不是本主機要接收的數據報丟棄。

ICMP和IGMP都使用IP數據報傳遞報文。組播路由器知道的成員關系只是所連接的區域網中有無組播組的成員。

IGMP工作的兩個階段:

只要有一個主機對某個組響應,那麼組播路由器就認為這個組是活躍的;如果經過幾次探詢後沒有一個主機響應,組播路由器就認為本網路上的沒有此組播組的主機,因此就不再把這組的成員關系發給其他的組播路由器。

組播路由協議目的是找出以源主機為根節點的組播轉發樹。構造樹可以避免在路由器之間兜圈子。對不同的多播組對應於不同的多播轉發樹;同一個多播組,對不同的源點也會有不同的多播轉發樹。

組播路由選擇協議常使用的三種演算法:

移動IP技術是移動結點(計算機/伺服器等)以 固定的網路IP地址 ,實現跨越不同網段的 漫遊 功能,並保證了基於網路IP的網路許可權在漫遊過程中不發生任何改變。

路由器是一種具有多個輸入埠和多個輸出埠的專用計算機,其任務是轉發分組。

若路由器處理分組的速率趕不上分組進入隊列的速率,則隊列的存儲空間最終必定減少到零,這就使後面再進入隊列的分組由於沒有存儲空間而只能被丟棄。 路由器中的輸入或輸出隊列產生溢出是造成分組丟失的重要原因。

路由器(網路層)可以互聯兩個不同網路層協議的網段。
網橋(鏈路層)可以互聯兩個物理層和鏈路層不同的網段。
集線器(物理層)不能互聯兩個物理層不同的網段。

路由表根據路由選擇演算法得出的,主要用途是路由選擇,總用軟體來實現。

轉發表由路由表得來,可以用軟體實現,也可以用特殊的硬體來實現。轉發表必須包含完成轉發功能所必需的信息,在轉發表的每一行必須包含從要到達的目的網路到輸出埠和某些MAC地址信息的映射。

D. 計算機網路_網路層

在計算機網路領域,網路層應該向運輸層提供怎樣的服務(面向連接還是無連接)曾引起了長期的爭論,爭論焦點的實質就是:在計算機通信中,可靠交付應當由誰來負責?是 網路 還是 端系統

只是一條 邏輯上的連接 ,分組都沿著這條邏輯連接按照存儲轉發方式傳送,並不是真正建立了一條物理連接。

請注意,電路交換的 電話通信 是先建立了一條 真正的連接 。因此分組交換的虛連接和電路交換的連接只是類似,但並不完全一樣。

數據報服務

網際協議IP是TCP/IP體系中兩個最主要的協議之一,與IP協議配套使用的還有三個協議

互連在一起的網路要進行通信,會遇到許多問題要解決

網路互連要使用一些中間設備
中間設備 又稱為 中間系統 中繼 系統

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

每一類地址都由兩個固定長度的欄位組成,其中一個 欄位是 網路號 net-id ,它標志主機(或路由器)所連接到的網路,而另一個欄位則是**主機號 host-id
**,它標志該主機(或路由器)
可以記為

觀察上圖

比較重要的一點是要區別IP地址與 硬體地址 的區別

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

四個A類網路 通過三個路由器連接在一起,每個網路上都可能有成千上萬個主機。可以想像,若按目的主機號來製作路由表,則所得出的路由表就會過於龐大。丹若按主機所在的 網路地址 來製作路由表,那麼每一個路由器中的路由表就只包含 四個項目 。這樣可以大大簡化路由表。

使用這樣的簡化圖,我們可以不用關心某個網路內部的具體拓撲結構及連接在該網路上有多少台計算機,他還強調了在互聯網上轉發分組時,是 從一個路由器轉發到下一個路由器

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

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

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

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

在 ARPANET 的早期,IP 地址的設計確實不夠合理。

從 1985 年起在 IP 地址中又增加了一個「子網號欄位」,使兩級的 IP 地址變成為三級的 IP 地址。這種做法叫作劃分子網(subnetting) 。劃分子網已成為網際網路的正式標准協議。

請注意現在子網號為3的網路的 網路地址 是145.13.3.0(既不是原來兩級的IP地址的網路地址145.13.0.0,也不是簡單的子網號3),為了使路由器能很方便的從數據報中的目的IP地址中提取所要找的子網的網路地址,路由器就要使用三級IP地址的子網掩碼(如上圖,三級IP地址的子網掩碼),它也是32位,由一串1和跟隨的一串0組成。子網掩碼中的1對應於IP地址中原來二級地址中的16位網路號加上新增加的8位子網號,而子網掩碼中的0對應於現在的8位主機號。 雖然RFC文檔中沒有規定子網掩碼中的一串1必須是連續的,但卻極力推薦在子網掩碼中選用連續的1,以避免發生錯誤

不管有沒有劃分子網,只要把子網掩碼和IP地址進行逐位相 運算,就立即得出網路地址來,這樣路由器處理到來的分組時可以採用相同的演算法。

歸納下上述的要點,從網路145.13.0.0外面看,這就是一個普通的B類網路,但進入這個網路後(即到了路由器),就看到了還有許多網路(即劃分了子網後的許多網路),其網路地址為145.13.x.0(這里x可以表示不同的數值),而這些網路的子網掩碼都是24個連1跟上8個連0。總之,在這個網路的內外,看到的網路是不同的

為了更便於查路由表,現在網際網路的標准規定:所有的網路都必須使用子網掩碼,同時在路由器的路由表中也必須有子網掩碼這一欄。如果一個網路不劃分子網,那麼該網路的子網掩碼就使用默認子網掩碼,默認子網掩碼中1的位置和IP地址中的網路號欄位正好相對應。因此,若用默認子網掩碼和某個不劃分子網的IP地址逐位相與,就應當能夠得出該IP地址的網路地址來,這樣做可以不用查找該地址的類別位就能知道這是哪一類的IP地址 (書上原話 沒懂 !!!!)

P137有一個表格寫B類子網劃分選擇(使用固定長度子網)

有一個例題請見教材P139

劃分子網在一定程度上緩解了網際網路在發展中遇到的困難。然而在 1992 年網際網路仍然面臨三個必須盡早解決的問題,這就是:

無分類的兩級編址的記法是:

CIDR 還使用 斜線記法 (slash notation),它又稱為 CIDR記法 ,即在 IP 地址後面加上一個斜線「/」,然後寫上網路前綴所佔的位數(這個數值對應於三級編址中子網掩碼中 1 的個數)。CIDR 把網路前綴都相同的連續的 IP 地址組成 「CIDR 地址塊」

為了更方便的進行路由選擇,CIDR使用32位的地址掩碼,地址掩碼由一串1和一串0組成,而1的個數就是網路前綴的長度。例如/20地址塊的地址掩碼是:11111111 11111111 11110000 00000000 20個連續的1,斜線記法中,斜線後面的數字就是地址掩碼中1的個數

這個 ISP 共有 64 個 C 類網路。如果不採用 CIDR 技術,則在與該 ISP 的路由器交換路由信息的每一個路由器的路由表中,就需要有 64 個項目。但採用地址聚合後,只需用路由聚合後的 1 個項目 206.0.64.0/18 就能找到該 ISP。

// 這里還沒太懂.... 就是共有多少個幾類網路那裡

報文格式

ICMP差錯報告報文的數據欄位的內容

E. 計算機網路-網路層-路由器的構成

路由器是一種具有多個輸入埠和多個輸出埠的專用計算機,其任務是轉發分組。從路由器某個輸入埠收到的分組,按照分組要去的目的地(即目的網路),把該分組從路由器的某個合適的輸出埠轉發給下一跳路由器。下一跳路由器也按照這種方法處理分組,直到該分組到達終點為止。路由器的轉發分組正是網路層的主要工作。

整個的路由器結構可劃分為兩大部分:路由選擇部分和分組轉發部分。

路由選擇部分也叫做控制部分,其核心構件是路由選擇處理機。 路由選擇處理機的任務是根據所選定的路由選擇協議構造出路由表,同時經常或定期地和相鄰路由器交換路由信息而不斷地更新和維護路由表。 分組轉發部分由三部分組成:交換結構、一組輸入埠和一組輸出埠(請注意:這里的埠就是硬體介面)。

交換結構(switching fabric)又稱為交換組織 ,交換結構是路由器的關鍵構件,它的作用就是根據轉發表(forwarding table)對分組進行處理,將某個輸入埠進入的分組從一個合適的輸出埠轉發出去,交換結構本身就是一種網路,但這種網路完全包含在路由器之中,因此交換結構可看成是「在路由器中的網路」。實現這樣的交換有多種方法,以下這三種方法都是將輸入埠 I1收到的分組轉發到輸出埠O2。

圖4-45(a)的示意圖表示 分組通過存儲器進行交換 。目的地址的查找和分組在存儲器中的緩存都是在輸入埠中進行的。若存儲器的帶寬(讀或寫)為每秒M個分組,那麼路由器的交換速率(即分組從輸入埠傳送到輸出埠的速率)一定小於M2。這是因為存儲器對分組的讀和寫需要花費的時間是同一個數量級。

圖4-45(b)是 通過匯流排進行交換 的示意圖。採用這種方式時,數據報從輸入埠通過共享的匯流排直接傳送到合適的輸出埠,而不需要路由選擇處理機的干預。但是,由於匯流排是共享的,因此在同一時間只能有一個分組在匯流排上傳送。當分組到達輸入埠時若發現匯流排忙(因為匯流排正在傳送另一個分組),則被阻塞而不能通過交換結構,並在輸入埠排隊等待。因為每一個要轉發的分組都要通過這一條匯流排,因此路由器的轉發帶寬就受匯流排速率的限制。現代的技術已經可以將匯流排的帶寬提高到每秒吉比特的速率,因此許多的路由器產品都採用這種通過匯流排的交換方式。

圖4-45(c)是 通過縱橫交換結構(crossbar switch fabric)進行交換 。這種交換機構常稱為互連網路(interconnection network),它有2N條匯流排,可以使N個輸入埠和N個輸出埠相連接,這取決於相應的交叉結點是使水平匯流排和垂直匯流排接通還是斷開。當輸入埠收到一個分組時,就將它發送到與該輸入埠相連的水平匯流排上。若通向所要轉發的輸出埠的垂直匯流排是空閑的,則在這個結點將垂直匯流排與水平匯流排接通,然後將該分組轉發到這個輸出埠。但若該垂直匯流排已被佔用(有另一個分組正在轉發到同一個輸出埠),則後到達的分組就被阻塞,必須在輸入埠排隊。

在圖4-42中,路由器的輸入和輸出埠裡面都各有三個方框,用方框中的1,2和3分別代表物理層、數據鏈路層和網路層的處理模塊。物理層進行比特的接收。數據鏈路層則按照鏈路層協議接收傳送分組的核。在把航的首部和尾部去後,分組就被送入網路層的處理模塊。若接收到的分組是路由器之間交換路由信總的分組(如RIP或OSPF分組等),則把這種分組送交路由器的路由選擇部分中的路由選擇處理機。若接收到的是數據分組,則按照分組首部中的目的地址查找轉發表,根據得出的結果,分組就經過交換結構到達合適的輸出埠。 一個路由器的輸入埠和輸出埠就做在路由器的線路介面卡上。

輸入埠 中的查找和轉發功能在路由器的交換功能中是最重要的。為了使交換功能分散化,往往把復制的轉發表放在每一個輸入埠中(如圖4-42中的虛線箭頭所示)。路由遠擇處理機負責對各轉發表的副本進行更新。這些副本常稱為「影子副本」(shadow ),分散化交換可以避免在路由器中的某一點上出現瓶頸。

「但在具體的實現中還是會遇到不少困難。問題就在於路由器必須以很高的速率轉發分組。最理想的情況是 輸入埠的處理速率能夠跟上線路把分組傳送到路由器的速率。這種速率稱為線速 (line speed  或 wirc  peed)。可以粗略地估算一下。設線路是0C-48鏈路,即2.5 Gbit/s。若分組長度為256位元組,那麼線速就應當達到每秒能夠處理100萬以上的分組。現在常用Mpps(百萬分組每秒)為單位來說明一個路由器對收到的分組的處理速率有多高。」

當一個分組正在查找轉發表時,後面又緊跟著從這個輸入埠收到另一個分組。這個後到的分組就必須在隊列中排隊等待,因而產生了一定的時延。

輸出埠 從交換結構接收分組,然後把它們發送到路由器外面的線路上。在網路層的處理模塊中設有一個緩沖區,實際上它就是一個隊列。當交換結構傳送過來的分組的速率超過輸出鏈路的發送速率時,來不及發送的分組就必須暫時存放在這個隊列中。數據鏈路層處理模塊把分組加上鏈路層的首部和尾部,交給物理層後發送到外部線路。

從以上可以看出,分組在路由器的輸入埠和輸出埠都可能會在隊列中排隊等候處理。若分組處理的速率趕不上分組進入隊列的速率,則隊列的存儲空間最終必定減少到零,這就使後面再進入隊列的分組由於沒有存儲空間而只能被丟棄。分組丟失就是發生在路由器中的輸入或輸出隊列產生溢出的時候。當然,設備或線路出故障也可能使分組丟失。

「轉發」和「路由選擇」的區別 :在互聯網中, 「轉發」 就是路由器根據轉發表把收到的IP數據報從路由器合適的埠轉發出去。「轉發」僅僅涉及到一個路由器。但 「路由選擇」 則涉及到很多路由器,路由表則是許多路由器協同工作的結果。這些路由器按照復雜的路由演算法,得出整個網銘的拓撲變化情況,因而能夠動態地改變所選擇的路由,並由此構造出整個的路由表,路由表一般僅包含從目的網路到下一跳(用P地址表示)的映射,而轉發表是從路由表得出的。轉發表必須包含完成轉發功能所必需的信息。這就是說,在轉發表的每一行必須包含從要到達的目的網路到輸出埠和某些MAC地址信息(如下跳的乙太網地址)的映射。將轉發表和路由表用不同的數據結構實現會帶來一些好處,這是因為在轉發分組時,轉發表的結構應當使查找過程最優化,但路由表則需要對網路拓撲變化的計算最優化。路由表總是用軟體實現的,但轉發表則甚至可用特殊的硬體來實現。請讀者注意,在討論路由選擇的原理時, 往往不去區分轉發表和路由表的區別,而可以籠統地都使用路由表這一名詞。

F. 計算機網路-網路層-多播協議

圖4-55是在互聯網上傳送多播數據報的例子。圖中標有IP地址的四台主機都參加了一個多播組,其組地址是226.15.37.123。顯然,多播數據報應當傳送到路由器R1,R2和R3,而不應當傳送到路由器R4,因為與R4連接的區域網上現在沒有這個多播組的成員。但這些路由器又怎樣知道多播組的成員信息呢?這就要利用一個協議,叫做網際組管理協議IGMP(Internet Group Management Protocol)。

IGMP並非在互聯網范圍內對所有多播組成員進行管理的協議。IGMP不知道IP多播組包含的成員數,也不知道這些成員都分布在哪些網路上,等等。 IGMP協議是讓連接在本地區域網上的多播路由器知道本區域網上是否有主機(嚴格講,是主機上的某個進程)參加或退出了某個多播組。 顯然,僅有IGMP協議是不能完成多播任務的。連接在區域網上的多播路由器還必須和互聯網上的其他多播路由器協同工作,以便把多播數據報用最小代價傳送給所有的組成員。這就需要使用 多播路由選擇協議 。

與網際控制報文協議ICMP相似,IGMP使用IP數據報傳遞其報文(即IGMP報文加上IP首部構成P數據報),但它也向IP提供服務。因此,我們不把IGMP看成是一個單獨的協議,而是屬於整個網際協議IP的一個組成部分。IGMP的工作可分為兩個階段:

第一階段:當某台主機加入新的多播組時,該主機應向多播組的多播地址發送一個IGMP報文,聲明自己要成為該組的成員。本地的多播路由器收到IGMP報文後,還要利用多播路由選擇協議把這種組成員關系轉發給互聯網上的其他多播路由器。

第二階段:組成員關系是動態的。本地多播路由器要周期性地探詢本地區域網上的主機,以便知道這些主機是否還繼續是組的成員。只要有一台主機對某個組響應,那麼多播路由器就認為這個組是活躍的。但一個組在經過幾次的探詢後仍然沒有一台主機響應,多播路由器就認為本網路上的主機已經都離開了這個組,因此也就不再把這個組的成員關系轉發給其他的多播路由器。

IGMP為避免了多播控制信息給網路增加大量的開銷,IGMP採用的一些具體措施如下:

(1) 在主機和多播路由器之間的所有通信都是使用IP多播 。只要有可能,攜帶IGMP報文的數據報都用硬體多播來傳送。因此在支持硬體多播的網路上,沒有參加IP多播的主機不會收到IGMP報文。

(2) 多播路由器在探詢組成員關系時,只需要對所有的組發送一個請求信息的詢問報文,而不需要對每一個組發送一個詢問報文 (雖然也允許對一個特定組發送詢問報文)。默認的詢問速率是每125秒發送一次(通信量並不太大)。

(3)當同一個網銘上連接有幾個多播路由器時,它們能夠迅速和有效地選擇其中的一個來探詢主機的成員關系。因此,網路上多個多播路由器並不會引起IGMP通信量的增大。

(4)在IGMP的詢問報文中有一個數值N,它指明一個最長響應時間(默認值為10秒)。當收到詢問時,主機在0到N之間隨機選擇發送響應所需經過的時延。因此,若一台主機同時參加了幾個多播組,則主機對每一個多播組選擇不同的隨機數。對應於最小時延的響應最先發送。

(5)同一個組內的每一台主機都要監聽響應,只要有本組的其他主機先發送了響應,自己就可以不再發送響應了。這樣就抑制了不必要的通信量。

多播路由器並不需要保留組成員關系的准確記錄,因為向區域網上的組成員轉發數據報是使用硬體多播。多播路由器只需要知網路上是否至少還有一台主機是本組成員即可,實際上,對詢問報文每一個組只需有一台主機發送響應。

如果一台主機上有多個進程都加入了某個多播組,那麼這台主機對發給這個多播組的每個多播數據報只接收一個副本,然後給主機中的每一個進程發送一個本地復制的副本。

最後需要強調指出,多播數據報的發送者和接收者都不知道(也無法找出)一個多播組的成員有多少,以及這些成員是哪些主機。互聯網中的路由器和主機都不知道哪個應用進程將要向哪個多播組發送多播數據報,因為任何應用進程都可以在任何時候向任何一個多播組發送多播數據報,而這個應用進程並不需要加入這個多播組。

雖然在TCP/IP中IP多播協議已成為建議標准,但多播路由選擇協議(用來在多播路由器之間傳插路由信息)側尚未標准化。

在多播過程中一個多播組中的成員是動態變化的。例如在收聽網上某個廣播節目時,隨時會有主機加入或離開這個多播組。多播路由選擇實際上就是要找出以源主機為根節點的多播轉發樹。在多播轉發樹上,每一個多播路由器向樹的葉節點方向轉發收到的多播數據報,但在多播轉發樹上的路由器不會收到重復的多播數據報(即多播數據報不應在互聯網中兜圈子)。對不同的多播組對應於不同的多播轉發樹。同一個多播組,對不同的源點也會有不同的多播轉發樹,已有了多種實用的多播路由選擇協議,它們在轉發多播數據報時使用了以下的三種方法:

(1) 洪泛與剪除。 這種方法適合於較小的多播組,而所有的組成員接入的區域網也是相鄰接的。一開始,路由器轉發多播數據報使用洪泛的方法(這就是廣播)。為了避免兜圈子,採用了叫做 反向路徑廣播RPB (Reverse Path Broadcasting)的策略。RPB的要點是:每一個路由器在收到一個多播數據報時,先檢查數據報是否是從源點經最短路徑傳送來的。進行這種檢查很容易,只要從本路由器尋找到源點的最短路徑上(之所以叫做反向路徑,因為在計算最短路徑時是把源點當作終點)的第一個路由器是否就是剛才把多播數據報送來的路由器。若是,就向所有其他方向轉發剛才收到的多播數據報(但進入的方向除外),否則就丟棄而不轉發。如果本路由器有好幾個相鄰路由器都處在到源點的最短路徑上(也就是說,存在幾條同樣長度的最短路徑),那麼只能選擇一條最短路徑,選擇的准則就是看這幾條最短路徑中的相鄰路由器誰的P地址最小。

圖4-57中的網路用路由器之間的鏈路來表示。我們假定各路由器之間的距離都是1。路由器R1收到源點發來的多播數據報後,向R2和R3轉發。R2發現R1就在自己到源點的最短路徑上,因此向R3和R4轉發收到的數據報。 R3發現R2不在自己到源點的最短路徑上 ,因此丟棄R2發來的數據報。其他路由器也這樣轉發。R7到源點有兩條最短路徑:R7→R4→R2→R1→源點;R7→R5→R3→R1→源點。我們再假定R4的IP地址比R5的IP地址小,所以我們只使用前一條最短路徑。因此R7隻轉發R4傳過來的數據報,而丟棄R5傳過來的數據報。最後就得出了用來轉發多播數據報的多播轉發樹(圖中用粗線表示),以後就按這個多播轉發樹來轉發多播數據報。這樣就避免了多播數據報兜圈子,同時每一個路由器也不會接收重復的多播數據報。

如果在多播轉發樹上的某個路由器發現它的下游樹枝(即葉節點方向)已沒有該多播組的成員,就應把它和下游的樹枝一起剪除。例如,在圖4-57中虛線橢圓表示剪除的部分。當某個樹枝有新增加的組成員時,可以再接入到多播轉發樹上。

(2) 隧道技術(tunneling) 。隧道技術適用於多播組的位置在地理上很分散的情況。例如在圖4-58中,網1和網2都支持多播。現在網1中的主機向網2中的一些主機進行多播。但路由器R1和R2之間的網路並不支持多播,因而R1和R2不能按多播地址轉發數據報。為此,路由器R1就對多播數據報進行再次封裝,即再加上普通數據報首部,使之成為向單一目的站發送的單播(unicast)數據報,然後通過「隧道」(tunnel)從R1發送到R2。

單播數據報到達路由器R2後,再由路由器R1剝去其首部,使它又恢復成原來的多播數據報,維續向多個目的站轉發。這一點和英吉利海峽隧道運送汽車的情況相似。英吉利海峽隧道不允許汽車在隧道中行駛。但是,可以把汽車放置在隧道中行駛的電氣火車上來通過陵道。過了隧道後,汽車又可以維續在公路上行駛。這種使用隧道技術傳送數據報又叫做IP中的IP(IP-in-IP)。

(3) 基於核心的發現技術。 這種方法對於多播組的大小在較大范圖內變化時都通合。這種方法是對每一個多插組G指定一個核心(core)路由器,給出它的IP單播地址。核心路由器按照前面講過的方法創建出對應於多播組G的轉發樹。如果有一個路由器R1向這個核心路由器發送數據報,那麼它在途中經過的每一個路由器都要檢查其內容。當數據報到達參加了多播組G的路由器R2時,R2就處理這個數據根。如果R1發出的是一個多播數據報,其目的地址是G的組地址,R2就向多播組G的成轉發這個多播數據報。如果R1發出的數據報是一個請求加入多插組G的數據報,R2就把這個信息加到它的路由中,並用隧道技術向R1轉發每一個多播數據報的一個副本。這樣,參加到多播組G的路由器就從核心向外增多了,擴大了多播轉發樹的覆蓋范圍。

使用的其他多播路由選擇協議:

距離向量多播路由選擇協議DVMRP (Distance Vector Multicast Routing Protocol)是在互聯網上使用的第一個多播路由選擇協議。由於在UNTX系統中實現RP的程序叫做routed,所以在routed的前面加表示多播的字母m,叫做mrouted,它使用DVMRP在路由器之間傳播路由信息。

基於核心的轉發樹CBT (Core Based Tree)。這個協議使用核心路由器作為轉發樹的根節點。一個大的自治系統AS可劃分為幾個區域,每一個區域選擇一個核心路由器(也叫做中心路由器center router,.或匯聚點路由露rendezvous router.)。

開放最短通路優先的多播擴展MOSPF (Multicast extensions to OSPF)。這個協議是單播路由選擇協議OSPF的擴充,使用於一個機構內,MOSPF使用多播鏈路狀態路由選擇創建出基於源點的多播轉發樹。

協議無關多播-稀疏方式PIM-SM (Protocol Independent Multicast-Sparse Mode)。這個協議使用和CBT同樣的方法構成多播轉發樹。採用「協議無關」這個名詞是強調:雖然在建立多播轉發樹時是使用單播數據報來和遠程路由器聯系的,但這並不要求使用特定的單播路由選擇協議。這個協議適用於組成員的分布非常分散的情況。

協議無關多播-密集方式PIM-DM (Protocol Independent Multicast-Dense Mode),這個協議適用於組成員的分布非常集中的情況,例如組成員都在一個機構之內。PIM-DM不使用核心路由器,而是使用洪泛方式轉發數據報。

G. 計算機網路:網路層(2)

如圖,一個IP數據報由首部和數據兩部分組成。首部的前一部分是固定長度,共20位元組,是所有IP數據報必須具有的。在首部的固定部分的後面是一些可選欄位,其長度是可變的。

(1)版本
佔4位,指IP協議的版本。通信雙方使用的IP協議的版本必須一致。目前廣泛使用的IP協議版本號為4(即IPv4)。也有使用IPv6的(即版本6的IP協議)。
(2)首部長度
佔4位,可表示的最大十進制數值是15。 這個欄位所表示數的單位是32位字(1個32位字長是4位元組),因此,當I的首部長度為1111時(即十進制的15),首部長度就達到最大值60位元組。當分組的首部長度不是4位元組的整數倍時,必須利用最後的填充欄位加以填充。 因此數據部分永遠在4位元組的整數倍時開始,這樣在實現IP協議時較為方便。首部長度限制為60位元組的缺點是有時可能不夠用。但這樣做是希望用戶盡量減少開銷。最常用的首部長度就是20位元組(即首部長度為0101),這時不使用任何選項。
(3)區分服務
佔8位,用來獲得更好的服務。這個欄位在舊標准中叫做服務類型,但實際上一直沒有被使用過。1998年ITF把這個欄位改名為區分服務DS( Differentiated Services。只有在使用區分服務時,這個欄位才起作用。在一般的情況下都不使用這個欄位。
(4)總長度
總長度指首部和數據之和的長度,單位為位元組。總長度欄位為16位,因此數據報的最大長度為216-1=65535位元組。
在IP層下面的每一種數據鏈路層都有其自己的幀格式,其中包括幀格式中的數據欄位的最大長度,這稱為最大傳送單元MTU( Maximum Transfer Unit)。當一個IP數據報封裝成鏈路層的幀時,此數據報的總長度(即首部加上數據部分)一定不能超過下面的數據鏈路層的MTU值。雖然使用盡可能長的數據報會使傳輸效率提高,但由於乙太網的普遍應用,所以實際上使用的數據報長度 很少有超過1500位元組 的。為了不使IP數據報的傳輸效率降低,有關IP的標准文檔規定,所有的主機和路由器必須能夠處理的IP數據報長度不得小於576位元組。這個數值也就是最小的IP數據報的總長度。當數據報長度超過網路所容許的最大傳送單元MTU時,就必須把過長的數據報進行分片後才能在網路上傳送。這時,數據報首部中的「總長度」欄位不是指未分片前的數據報長度,而是指分片後的每一個分片的首部長度與數據長度的總和。
(5)標識 (identification)
佔16位。軟體在存儲器中維持一個計數器,每產生一個數據報,計數器就加1,並將此值賦給標識欄位。但這個「標識」並不是序號,因為IP是無連接服務,數據報不存在按序接收的問題。當數據報由於長度超過網路的MTU而必須分片時,這個標識欄位的值就被復制到所有的數據報片的標識欄位中。相同的標識欄位的值使分片後的各數據報片最後能正確地重裝成為原來的數據報。
(6)標志(flag)
佔3位,但目前只有兩位有意義。
標志欄位中的最低位記為 MF ( More Fragment)。MF=1即表示後面「還有分片」的數據報。MF=0表示這已是若千數據報片中的最後一個。
標志欄位中間的一位記為 DF (Dont Fragment),意思是「不能分片」。只有當DF=0時才允許分片。
(7)片偏移
佔13位。片偏移指出:較長的分組在分片後,某片在原分組中的相對位置。也就是說,相對於用戶數據欄位的起點,該片從何處開始。片偏移以8個位元組為偏移單位。這就是說,每個分片的長度一定是8位元組(64位)的整數倍。
(8)生存時間
佔8位,生存時間欄位常用的英文縮寫是TTL( Time To live),表明是數據報在網路中的壽命。由發出數據報的源點設置這個欄位。其目的是防止無法交付的數據報無限制地在網際網路中兜圈子(例如從路由器R1轉發到R2,再轉發到R3,然後又轉發到R1),因而白白消耗網路資源。最初的設計是以秒作為TTL值的單位。每經過一個路由器時,就把TTL減去數據報在路由器所消耗掉的一段時間。若數據報在路由器消耗的時間小於1秒,就把TTL值減1。當TTL值減為零時,就丟棄這個數據報然而隨著技術的進步,路由器處理數據報所需的時間不斷在縮短,一般都遠遠小於1秒鍾,後來就把TTL欄位的功能改為「跳數限制」(但名稱不變)。路由器在轉發數據報之前就把TTL值減1。若TTL值減小到零,就丟棄這個數據報,不再轉發。因此,現在TTL的單位不再是秒,而是跳數。 TTL的意義是指明數據報在網際網路中至多可經過多少個路由器 。顯然,數據報能在網際網路中經過的路由器的最大數值是255。若把TTL的初始值設置為1,就表示這個數據報只能在本區域網中傳送。因為這個數據報一傳送到區域網上的某個路由器,在被轉發之前TTL值就減小到零,因而就會被這個路由器丟棄。
(9)協議
佔8位,協議欄位指出此數據報攜帶的數據是使用何種協議,以便使目的主機的IP層知道應將數據部分上交給哪個處理過程。

過程大致如下:
(1)從數據報的首部提取目的主機的IP地址D,得出目的網路地址為N。
(2)若N就是與此路由器直接相連的某個網路地址,則進行直接交付,不需要再經過其他的路由器,直接把數據報交付給目的主機(這里包括把目的主機地址D轉換為具體的硬體地址,把數據報封裝為MAC幀,再發送此幀);否則就是間接交付,執行(3)。
(3)若路由表中有目的地址為D的特定主機路由,則把數據報傳送給路由表中所指明的下一跳路由器;否則,執行(4)。
(4)若路由表中有到達網路N的路由,則把數據報傳送給路由表中所指明的下一跳路由器;否則,執行(5)
(5)若路由表中有一個默認路由,則把數據報傳送給路由表中所指明的默認路由器;否則,執行(6)。
(6)報告轉發分組出錯。

在進行更詳細的轉發解釋之前,先要了解一下子網掩碼:

上一篇說到了二級IP地址,也就是IP地址由網路號和主機號組成。

二級IP地址有以下缺點:
第一,IP地址空間的利用率有時很低每一個A類地址網路可連接的主機數超過1000萬,而每一個B類地址網路可連接的主機數也超過6萬。然而有些網路對連接在網路上的計算機數目有限制,根本達不到這樣大的數值。例如10 BASE-T乙太網規定其最大結點數只有1024個。這樣的乙太網若使用一個B類地址就浪費6萬多個IP地址,地址空間的利用率還不到2%,而其他單位的主機無法使用這些被浪費的地址。有的單位申請到了一個B類地址網路,但所連接的主機數並不多,可是又不願意申請一個足夠使用的C類地址,理由是考慮到今後可能的發展。IP地址的浪費,還會使IP地址空間的資源過早地被用完。
第二,給每一個物理網路分配一個網路號會使路由表變得太大因而使網路性能變壞。
每一個路由器都應當能夠從路由表査出應怎樣到達其他網路的下一跳路由器。因此,互聯網中的網路數越多,路由器的路由表的項目數也就越多。這樣,即使我們擁有足夠多的IP地址資源可以給每一個物理網路分配一個網路號,也會導致路由器中的路由表中的項目數過多。這不僅增加了路由器的成本(需要更多的存儲空間),而且使查找路由時耗費更多的時間,同時也使路由器之間定期交換的路由信息急劇增加,因而使路由器和整個網際網路的性能都下降了。
第三,兩級IP地址不夠靈活。
有時情況緊急,一個單位需要在新的地點馬上開通一個新的網路。但是在申請到一個新的IP地址之前,新增加的網路是不可能連接到網際網路上工作的。我們希望有一種方法,使一個單位能隨時靈活地增加本單位的網路,而不必事先到網際網路管理機構去申請新的網路號。原來的兩級IP地址無法做到這一點。

於是為解決上述問題,從1985年起在IP地址中又增加了一個「子網號欄位」,使兩級IP地址變成為三級IP地址,它能夠較好地解決上述問題,並且使用起來也很靈活。這種做法叫作劃分子網 (subnetting),或子網定址或子網路由選擇。劃分子網已成為網際網路的正式標准協議。

劃分子網的基本思路如下:
(1)一個擁有許多物理網路的單位,可將所屬的物理網路劃分為若干個子網 subnet)。劃分子網純屬一個單位內部的事情。本單位以外的網路看不見這個網路是由多少個子網組成,因為這個單位對外仍然表現為一個網路。
(2)劃分子網的方法是從網路的主機號借用若干位作為子網號 subnet-id,當然主機號也就相應減少了同樣的位數。於是兩級IP地址在本單位內部就變為三級IP地址:網路號、子網號和主機號。也可以用以下記法來表示:
IP地址:=(<網路號>,<子網號>,<主機號>}

(3)凡是從其他網路發送給本單位某個主機的IP數據報,仍然是根據IP數據報的目的網路號找到連接在本單位網路上的路由器。但此路由器在收到IP數據報後,再按目的網路號和子網號找到目的子網,把IP數據報交付給目的主機。

簡單來說就是原來的IP地址總長度不變,把原來由「網路號+主機號」組成的IP地址,變為了「網路號+子網號+主機號」,因為其他網路找當前網路的主機時,使用的還是網路號,所以外面的網看不見當前網路的子網。當本網的路由器在收到IP數據報後,按目的網路號和子網號找到目的子網,把IP數據報交付給目的主機。

現在剩下的問題就是:假定有一個數據報(其目的地址是145.133.10)已經到達了路由器R1。那麼這個路由器如何把它轉發到子網145.3.3.0呢?
我們知道,從IP數據報的首部並不知道源主機或目的主機所連接的網路是否進行了子網的劃分。這是因為32位的IP地址本身以及數據報的首部都沒有包含任何有關子網劃分的信息。因此必須另外想辦法,這就是使用子網掩碼( (subnet mask)。

子網掩碼,簡單來說就是把除了主機號設置為0,其他位置的數字都設置為1。
以B類地址為例:

把三級IP地址的網路號與子網號連起來,與子網掩碼做「與」運算,就得到了子網的網路地址。

在網際網路的標准規定:所有的網路都必須使用子網掩碼,同時在路由器的路由表中也必須有子網掩碼這一欄。如果一個網路不劃分子網,那麼該網路的子網掩碼就使用默認子網掩碼。
那麼既然沒有子網,為什麼還要使用子網掩碼?
這就是為了更便於査找路由表。
默認子網掩碼中1的位置和IP地址中的網路號欄位 net-id正好相對應。因此,若用默認子網掩碼和某個不劃分子網的IP地址逐位相「與」(AND),就應當能夠得出該IP地址的網路地址來。這樣做可以不用查找該地址的類別位就能知道這是哪一類的IP地址。顯然,

子網掩碼是一個網路或一個子網的重要屬性。在RFC950成為網際網路的正式標准後,路由器在和相鄰路由器交換路由信息時,必須把自己所在網路(或子網)的子網掩碼告訴相鄰路由器。在路由器的路由表中的每一個項目,除了要給出目的網路地址外,還必須同時給出該網路的子網掩碼。若一個路由器連接在兩個子網上就擁有兩個網路地址和兩個子網掩碼。
以一個B類地址為例,說明可以有多少種子網劃分的方法。在採用固定長度子網時,所劃分的所有子網的子網掩碼都是相同的。

表中的「子網號的位數」中沒有0,1,15和16這四種情況,因為這沒有意義。雖然根據已成為網際網路標准協議的RFC950文檔,子網號不能為全1或全0,但隨著無分類域間路由選擇CIDR的廣泛使用,現在全1和全0的子網號也可以使用了,但一定要謹慎使用,要弄清你的路由器所用的路由選擇軟體是否支持全0或全1的子網號。這種較新的用法我們可以看出,若使用較少位數的子網號,則每一個子網上可連接的主機數就較多。
反之,若使用較多位數的子網號,則子網的數目較多但每個子網上可連接的主機數就較少因此我們可根據網路的具體情況(一共需要劃分多少個子網,每個子網中最多有多少個主機)來選擇合適的子網掩碼。

所以,劃分子網增加了靈活性,但卻減少了能夠連接在網路上的主機總數。

在劃分子網的情況下,分組轉發的演算法必須做相應的改動。
使用子網劃分後,路由表必須包含以下三項內容:目的網路地址、子網掩碼和下一跳地址。
所以之前的流程變成了下面這樣:
(1)從收到的數據報的首部提取目的IP地址D。
(2)先判斷是否為直接交付。對路由器直接相連的網路逐個進行檢查:用各網路的子網掩碼和D逐位相「與」(AND操作),看結果是否和相應的網路地址匹配。若匹配,則把分組進行直接交付(當然還需要把D轉換成物理地址,把數據報封裝成幀發送出去),轉發任務結束。否則就是間接交付,執行(3)。
(3)若路由表中有目的地址為D的特定主機路由,則把數據報傳送給路由表中所指明的下一跳路由器;否則,執行(4)。
(4)對路由表中的每一行(目的網路地址,子網掩碼,下一跳地址),用其中的子網掩碼和D逐位相「與」(AND操作),其結果為N。若N與該行的目的網路地址匹配,則把數據報傳送給該行指明的下一跳路由器;否則,執行(5)。
5)若路由表中有一個默認路由,則把數據報傳送給路由表中所指明的默認路由器;否則,執行(6)
(6)報告轉發分組出錯。

H. 計算機網路中的網路層

兄弟想表達什麼?
網路層就是保障主機之間通信的,定義書上、網上都有

I. 計算機網路之網路層數據平面

網路層概述

    網路層實現主機到主機的通信服務。網路層能夠被分為兩個部分:數據平面和控制平面。

    數據平面的功能,即網路層中每台路由器的功能,該數據平面功能決定到達路由器輸入鏈路之一的數據報如何轉發到該路由器的輸出鏈路之一。

    控制平面功能即網路范圍的邏輯,該控制平面功能控制數據報沿著從源主機到目的主機的端到端路徑中路由器之間的路由方式。

術語

    轉發:是指將分組從一個輸入鏈路介面轉移到適當的輸出鏈路介面的路由器本地動作。

    路由選擇:確定分組從源到目的地所採取的端到端路徑的網路范圍處理過程。

   

J. 計算機網路自頂向下方法--網路層

R1. 我們回顧一下本書中使用的某些術語。前面講過,運輸層的分組名稱是報文段,數據鏈路層的分組名字是幀。網路層的分組名字是什麼?前面講過,路由器和鏈路層交換機都稱為分組交換機。路由器和鏈路層交換機間的根本區別是什麼?回想我們對數據報網路和虛電路網路都使用術語路由器。

R2. 在數據報網路中,網路層最重要的兩個功能是什麼?在虛電路網路中,網路層的3個最重要的功能是什麼?

R3. 路由選擇和轉發的區別是什麼?

R4. 在數據報網路和虛電路網路中,路由器都使用轉發表嗎?如果是,描述用於這兩類網路的轉發表。

R5. 描述某些網路層能為單個分組提供的某些假想的服務。對於分組流進行相同的描述。網際網路的網路層為你提供了這些假想服務嗎?ATM的CBR服務模型提供了該假想服務嗎?ATM的ABR服務模型提供類該假想服務嗎?

R6. 列出某些得益於ATM的CBR服務模型的應用。

R7. 討論為什麼在高速路由器的每個輸入埠都存儲轉發表的影子副本。

R8. 4.3節中討論了3類交換結構。列出並簡要討論每一類交換結構。哪一種(如果有的話)能夠跨越交換結構並行發送多個分組?

R9. 描述在輸入埠會出現分組丟失的原因。描述在輸入埠如何消除分組丟失(不使用無限大緩存區)。

R10. 描述在輸出埠出現分組丟失的原因。通過增加交換結構速率,能夠防止這種丟失嗎?

R11. 什麼是HOL阻塞?它出現在輸入埠還是輸出埠?

R12. 路由器有IP地址嗎?如果有,有多少個?

R13. IP地址223.1.3.27的32比特二進制等價形式是什麼?

R14. 考察使用DHCP獲得它的IP地址,網路掩碼,默認路由器和其本地DNS伺服器的IP地址的主機。列出這些值。

R15. 假設在一個源主機和一個目的主機之間有3台路由器。不考慮分片,一個從源主機發送給目的主機的IP報文將通過多少個埠?為了將數據報從源移動到目的地需要檢索多少個轉發表?

R16. 假設某應用每20ms生成一個40位元組的數據塊,每塊封裝在一個TCP報文中,TCP報文再封裝在一個IP數據報中。每個數據報的開銷有多大?應用數據所佔的百分比是多少?

R17. 假設主機A向主機B發送封裝在一個IP數據報中的TCP報文段。當主機B接收到該數據報時,主機B中的網路層應該如何知道它應當將該報文段(即數據報的有效載荷)交給TCP而不是UDP或某個其他東西呢?

R18. 假定你購買了一個無線路由器並將其與電纜數據機相連,並且你的ISP動態地為你連接的設備(即你的無線路由器)分配一個IP地址。還假定你家有5台PC,均使用802.11以無線方式與該無線路由器相連。怎樣為這5台PC分配IP地址?該無線路由器使用NAT嗎?為什麼?

R19. 比較IPv4和IPv6首部欄位。它們有某些欄位是相同的嗎?

R20. 有人說當IPv6通過IPv4路由器建隧道時。IPv6將IPv4隧道作為鏈路層協議。你同意這種說法嗎?為什麼?

R21. 比較和對照鏈路狀態和距離向量路由選擇演算法?

R22. 討論網際網路的等級制組織是怎樣使得其能夠擴展為數以百萬計用戶的。

R23. 每個自治系統使用相同的AS內部路由選路演算法是必要的嗎?為什麼?

R24. 考慮圖4-37。從D中的初始表開始,假設D收到來自A的下面的通告:

D中的表會改變嗎?如果是,怎樣變化?

R25. 比較RIP和OSPF使用的通告。

R26. 填空:RIP通告通常宣稱到各目的地的跳數。另一方面,BGP則是通告到各目的地的_____?

R27. 為什麼在網際網路中用到了不同類型的AS間與AS內部選路協議?

R28. 為什麼策略考慮對於AS內部協議(如OSPF和RIP)與對於AS間路由選擇協議(如BGP)一樣重要呢?

R29. 定義和對比下列術語:子網,前綴和BGP路由。

R30. BGP是怎樣使用NEXT-HOP屬性的?它是怎樣使用AS-PATH屬性的?

R31. 描述一個較高層ISP的網路管理員在配置BGP時是如何實現策略的。

TODO----HERE
4.6.32 通過多個單播實現廣播抽象與通過支持廣播的單個網路(路由器)實現廣播抽象之間有什麼重要區別嗎?
答:N次單播效率低,需要知道接收者的地址,消耗大。但是使用廣播的話可以通過洪泛方法發送消息。
4.6.33 對於我們學習的3種一般的廣播通信方法(無控制洪泛,受控洪泛和生成樹廣播),下列說法正確嗎?可以假定分組不會因緩存溢出而丟失,所有分組以它們發送的順序交付給鏈路。
a.一個節點可能接收到同一個分組的多個拷貝。
b.一個節點可能跨越相同的出鏈路轉發多個分組的拷貝。
答:無控制洪泛:a對,b對。受控洪泛:a對,b錯。生成樹廣播:a錯,b錯。
4.6.34 當一台主機加入一個多播組時,它必須將其IP地址改變為它所加入的多播組的地址嗎?
答:對錯誤。
4.6.35 IGMP和廣域多播選路協議所起的作用是什麼?
答:IGMP運行在一台主機與其直接相連的路由器之間。IGMP允許主機指定路由器要加入的組播網。然後由組播路由器與運行組播路由協議的其他組播路由器一起工作。
4.6.36 在多播選路場合中,一棵組共享的樹與一顆基於源的樹之間有什麼區別?
答:一個組共享的樹來為組中所有發送方分發流量,一個是為每個獨立的發送方構建一顆特定源的選路樹。

閱讀全文

與計算機網路第48講網路層相關的資料

熱點內容
刪除東西致使無線網路消失 瀏覽:480
北京昌平網路DNS多少 瀏覽:453
路由器連通網路後過會自動斷網 瀏覽:754
怎麼看小米手機連的網路頻段 瀏覽:950
蘋果手機信號差網路慢怎麼設置 瀏覽:755
網路人數活躍量一般占總比是多少 瀏覽:379
2021年網路安全宣傳周合拍 瀏覽:279
網路視頻侵權是什麼意思 瀏覽:494
無線路由器連接無網路 瀏覽:393
何謂計算機網路 瀏覽:477
普通大學生網路安全專業 瀏覽:450
電腦搜到網路但是連不上 瀏覽:466
用移動網路打游戲為什麼這么卡 瀏覽:700
蜜罐網路軟體 瀏覽:61
華為網路連接較差請稍後再試 瀏覽:105
長安汽車75plus怎麼連接網路 瀏覽:856
加強網路工作的重點是什麼 瀏覽:232
網路學習哪個方向最好 瀏覽:507
海爾電視網路連接正常卻上不了網 瀏覽:449
網路平台立案怎麼辦 瀏覽:959

友情鏈接