計算機網絡(三)網絡層

三、網絡層

網絡層是五層模型中的第三層,位于數據鏈路層和傳輸層之間。它的核心任務是實現數據包在不同網絡之間(跨網絡)的邏輯傳輸

網絡層的數據傳輸單位是數據報(Datagram)數據包(Packet)

數據傳輸方式

無連接服務(Connectionless Service)

無連接服務是一種在數據傳輸前無需建立連接的服務模式。發送方直接向網絡發送數據單元,每個數據單元都獨立封裝并攜帶完整的源地址和目的地址信息。

  • 工作原理:網絡中的每個路由器獨立處理每個數據單元,根據其目的地址進行路由和轉發。路由器不維護任何關于通信狀態或數據流的會話信息。

  • 特性

    • 盡力而為(Best-Effort):該服務不提供任何可靠性保證。數據單元可能出現丟失、重復、損壞或亂序到達的情況。

    • 高效率:由于省略了連接建立和釋放的開銷,該模式適用于對實時性要求高且可以容忍丟包的應用,如視頻會議、實時游戲。

  • 典型協議用戶數據報協議(UDP)。互聯網中的 IP 協議也是無連接的,它只負責盡力而為地轉發數據包。

有連接服務(Connection-Oriented Service)

有連接服務是一種在數據傳輸前,必須在發送方和接收方之間建立一條邏輯連接的服務模式。所有數據單元都將通過這條邏輯連接進行傳輸,傳輸完成后,該連接才被釋放。

  • 工作原理:在數據傳輸開始前,網絡中的節點會進行握手協商,建立一個端到端的邏輯路徑。在數據傳輸期間,所有節點都維護關于該連接的狀態信息。

  • 特性

    • 可靠性高:通常提供流量控制、擁塞控制和錯誤恢復等機制,確保數據單元的順序、無損到達。

    • 開銷大:連接的建立、維護和釋放需要額外的控制信息交換,增加了通信開銷和延遲,適用于對可靠性要求高、數據順序需要保證的應用,如文件傳輸、電子郵件等。

  • 典型協議傳輸控制協議(TCP)

數據報與虛電路

在網絡層,無連接服務和有連接服務分別對應兩種不同的數據傳輸方式:數據報虛電路

數據報(Datagram)
  • 對應服務無連接服務

  • 工作原理:每個數據報被視為一個獨立的、自包含的單元。它們可以沿著不同的路徑到達目的地,且到達順序可能與發送順序不一致。網絡中的路由器不保留數據報流的任何狀態信息。

  • 應用IP 協議。互聯網的核心就是基于數據報模式構建的,其分布式和容錯性使其具有強大的魯棒性。

虛電路(Virtual Circuit)
  • 對應服務有連接服務

  • 工作原理:在數據傳輸前,網絡中的路由器通過信令協議建立一條從源到目的地的邏輯路徑,即虛電路。所有屬于該虛電路的數據包都將沿著這條預先設定的路徑傳輸,確保它們按順序到達。

  • 應用:早期的 X.25 ATM(異步傳輸模式)協議。這些技術在數據通信中扮演過重要角色,但目前在互聯網中已不常見。

簡而言之,無連接服務是盡力而為的,而有連接服務是可靠的。數據報是前者在網絡層的實現,而虛電路是后者在網絡層的實現。

網絡層的主要功能

1. 邏輯尋址(Logical Addressing)

  • 網絡層使用邏輯地址,最常見的例子是 IP 地址。與數據鏈路層的物理地址(MAC 地址)不同,IP 地址是邏輯的、可分配的,它唯一地標識了網絡中的一個主機

  • IP 地址由網絡號和主機號組成。網絡號標識了主機所在的網絡,而主機號標識了該網絡中的特定主機。這種分層結構使得網絡設備能夠根據網絡號進行大規模的路由。

2. 路由(Routing)

路由是網絡層最核心的功能。它負責為數據包選擇一條最佳的傳輸路徑。路由設備(如路由器)會根據數據包中的目的 IP 地址,查詢自己的路由表,通過路由算法為數據包選擇一個合適的下一跳(next hop)。而路由算法又分靜態路由和動態路由

靜態路由(Static Routing)

靜態路由是一種最簡單的路由方式,它需要網絡管理員手動配置路由表。路由表中的每一條路由都是管理員事先定義好的,指明了特定目的網絡的數據包應該通過哪個接口發送到哪個下一跳路由器。

  • 工作原理:當路由器收到一個數據包時,它會查找路由表中與目的網絡匹配的條目。如果找到,就按照預設的路徑轉發;如果找不到,就丟棄或發送到默認路由。

  • 特點

    • 配置簡單:適用于網絡規模小且拓撲結構固定的環境。

    • 安全性高:路由路徑固定,不受外部影響,因此安全性高。

    • 缺乏靈活性:無法自動適應網絡拓撲的變化。當鏈路出現故障時,需要管理員手動修改路由表,這在大型網絡中幾乎是不可能的。

    • 無額外開銷:路由器之間不需要交換路由信息,因此網絡資源占用少。

動態路由(Dynamic Routing)

動態路由是一種更為智能的路由方式。路由器通過運行特定的路由算法,可以自動發現網絡中的其他路由器,并動態地學習和更新路由表。當網絡拓撲發生變化(如鏈路故障或恢復)時,路由器能夠自動調整路由,從而實現網絡的自適應。

  • 工作原理:路由器之間周期性地交換路由信息,彼此學習整個網絡的拓撲結構和路由路徑。當收到新的路由信息時,它們會根據路由算法重新計算最佳路徑,并更新自己的路由表。

  • 特點

    • 高度靈活:能夠自動適應網絡拓撲的變化,提高網絡的魯棒性。

    • 可擴展性強:適用于大型、復雜的網絡。

    • 配置復雜:需要管理員理解和配置路由協議。

    • 額外開銷:路由器之間需要交換路由信息,會占用一定的網絡帶寬和CPU資源。

動態路由主要依賴兩種核心算法:距離向量算法和鏈路狀態算法。

距離向量算法(Distance-Vector Algorithm)

距離向量算法是一種迭代的、異步的路由算法。它基于貝爾曼-福特算法(Bellman-Ford Algorithm)其工作流程可以概括為三個主要步驟:初始化、周期性交換路由更新

1. 初始化

每個路由器都會初始化自己的路由表路由表中的內容是:到自己直接相連的鄰居的距離是已知(通常是1跳),而到其他所有目的地的距離都是“無限大”。

2. 周期性交換

每個路由器會周期性地(比如每隔30秒)將自己的整個路由表發送給所有直接相連的鄰居。這個路由表就是路由器的“距離向量”。

3. 路由更新

  • 當一個路由器收到來自鄰居的路由表時,它會進行以下操作:

    • 計算新距離:路由器會檢查鄰居路由表中每一條路由,并計算通過該鄰居到達目的地的新距離。新距離 = 鄰居路由中的距離 + 到該鄰居的距離

    • 更新路由表:路由器將計算出的新距離與自己路由表中已有的距離進行比較。如果發現通過這個鄰居到達某個目的地的距離更短,它就會更新自己的路由表,將下一跳改為這個鄰居,并更新距離

實現簡單:算法相對簡單,易于實現。

收斂速度慢:當網絡發生變化時,信息需要通過鄰居一層層傳播,可能導致路由環路問題

典型協議RIP(路由信息協議)

鏈路狀態路由算法(Link-State Algorithm)

鏈路狀態路由算法是一種更為先進、復雜的路由算法。它基于迪杰斯特拉算法(Dijkstra's Algorithm)

  • 工作原理

    • 每個路由器都會獨立地學習其所有直接相連的鄰居的狀態(即鏈路的開銷、帶寬等)。

    • 路由器將這些鏈路狀態信息封裝成 LSA(鏈路狀態通告),并將其泛洪(Flood)到整個網絡中。

    • 每個路由器都會收到所有 LSA,從而構建出整個網絡的完整拓撲圖

    • 路由器基于這個拓撲圖,使用迪杰斯特拉算法獨立計算出到達所有目的地的最短路徑,并構建自己的路由表。

  • 特點

    • 收斂速度快:當網絡發生變化時,路由器能夠迅速將 LSA 泛洪到整個網絡,所有路由器能夠快速感知并獨立計算出新的最短路徑。

    • 路由精確:因為每個路由器都掌握了完整的網絡拓撲信息,計算出的路徑通常是最優的。

    • 開銷大:需要消耗更多的CPU和內存資源來存儲拓撲圖和計算路徑,并且泛洪LSA會占用更多帶寬。

    • 典型協議OSPF(開放最短路徑優先協議)IS-IS

3. 轉發(Forwarding)

  • 轉發是路由的具體執行過程。當一個數據包到達路由器后,路由器會立即根據路由表,將數據包從一個入接口轉發到正確的出接口,從而將數據包向目的地推進。

  • 路由路徑選擇的宏觀決策過程,而轉發則是數據包處理的微觀執行過程。

4. 封裝與分段(Encapsulation & Fragmentation)

  • 網絡層從傳輸層接收數據段,并在其頭部添加 IP 頭部信息(包括源 IP 地址、目的 IP 地址、協議類型等),形成一個 IP 數據報

  • 如果一個 IP 數據報的大小超過了底層數據鏈路的最大傳輸單元(MTU),網絡層會將其分段(Fragmentation)成多個較小的數據包,以便在物理鏈路上順利傳輸。這些分段后的數據包會在目的主機上被重新組裝。

IP 數據報格式 (IP Datagram Format)

IP 數據報是 IP 協議傳輸數據的基本單元。每個 IP 數據報都包含頭部和數據兩部分。

  • IP 頭部 (IP Header)

    • 版本號 (Version):4位,用于標識IP協議的版本,例如IPv4或IPv6。

    • 首部長度 (IHL):4位,以4字節為單位,該字段取值為5~15(0101~1111)用于標識IP頭部的長度。大多數IP數據報不包含此項,所以一般IP數據報首部為20字節。

    • 服務類型 (ToS):8位,前6位用來表示數據報的服務類型,后2位用來攜帶擁塞通知信息,配合TCP實現端到端擁塞管理。

    • 總長度 (Total Length):16位,單位字節,標識IP數據報的總長度(包括頭部和數據),最大為65535字節(很少有超過1500字節的)。

    • 標識 (Identification):16位,當IP數據報被分片時,該字段用于標識屬于同一原始數據報的所有分片。

    • 標志 (Flags):3位,用于控制分片(第一位:保留位,必須為0;第二位:DF,置1為不分片;第三位:MF,置1還有其他分片,置0表示該分片為最后一片)。

    • 片偏移 (Fragment Offset):13位,單位為8字節,用于指定分片在原始數據報中的位置。

    • 生存時間 (TTL):8位,數據報每經過一個路由器,TTL值減1。當TTL減到0時,數據報被丟棄,防止數據報在網絡中無限循環。

    • 協議 (Protocol):8位,當一個IP數據報到達最終目的地時才會使用。用于標識該IP數據報應該交給哪個特定的傳輸層協議,例如ICMP(1),TCP(6)或UDP(17)。

    • 首部校驗和 (Header Checksum):16位,用于校驗IP頭部的完整性。

    • 源IP地址 (Source IP Address):32位,標識數據報的發送方。

    • 目的IP地址 (Destination IP Address):32位,標識數據報的接收方。

  • 數據字段 (Data Field)

    • 承載來自上層協議(如TCP或UDP)的數據。

IP 地址 (IP Address)

IP 地址是網絡層用來在互聯網上唯一標識一臺主機的邏輯地址。目前最常用的是IPv4,它是一個32位二進制數,通常以點分十進制形式表示,例如 192.168.1.1

IP地址由網絡號主機號兩部分組成:

  • 網絡號:用于標識主機所在的網絡。

  • 主機號:用于標識該網絡中的特定主機。

1. IP 地址分類

為了方便管理和分配,IPv4地址被劃分為五類,其中A、B、C三類主要用于主機尋址。

  • A類地址

    • 范圍:1.0.0.0 到 126.255.255.255。

    • 格式網絡號.主機號.主機號.主機號

    • 特點:網絡號占用第一個字節,主機號占用其余三個字節。A類網絡數量少,但每個網絡可以容納大量主機。適用于大型網絡,如跨國公司或大型機構。

  • B類地址

    • 范圍:128.0.0.0 到 191.255.255.255。

    • 格式網絡號.網絡號.主機號.主機號

    • 特點:網絡號占用前兩個字節,主機號占用后兩個字節。B類網絡數量適中,每個網絡可容納的主機數量也適中。適用于中型網絡,如大學校園或地區性企業。

  • C類地址

    • 范圍:192.0.0.0 到 223.255.255.255。

    • 格式網絡號.網絡號.網絡號.主機號

    • 特點:網絡號占用前三個字節,主機號占用最后一個字節。C類網絡數量最多,但每個網絡只能容納少量主機。適用于小型網絡,如小型公司或家庭網絡。

2. 特殊IP地址

除了用于正常通信的地址外,還有一些具有特殊用途的IP地址。

  • 網絡地址:主機號全為0的IP地址,用于標識整個網絡。例如,網絡192.168.1.0

  • 廣播地址:主機號全為1的IP地址,用于向網絡中的所有主機發送數據。例如,192.168.1.255

  • 回環地址127.x.x.x,用于本地回環測試,數據報不會離開主機。

  • IP地址全為00.0.0.0,通常用于表示本機。

3. 私有地址 (Private IP Address)

RFC 1918標準定義了三段私有地址,它們只在局域網內部使用,不能在互聯網上直接路由。

  • A類私有地址10.0.0.010.255.255.255

  • B類私有地址172.16.0.0172.31.255.255

  • C類私有地址192.168.0.0192.168.255.255

私有地址的存在,使得每個局域網都可以獨立使用這些地址,并通過**網絡地址轉換(NAT)**技術,將私有地址映射為公共IP地址,從而實現對互聯網的訪問。

1. 子網地址

子網地址是網絡中的一個邏輯分區。它通過借用 IP 地址中的主機號部分,將其重新劃分為子網號新的主機號

  • 為什么要劃分成子網?

    • 緩解IP地址短缺:通過將一個大的網絡(如 B 類網絡)劃分成多個小的子網,可以更有效地分配 IP 地址,避免浪費。

    • 提高路由效率:路由器只需要根據數據包的子網地址來轉發,而不是根據完整的網絡地址,這簡化了路由表的結構,加快了路由速度。

    • 網絡隔離與安全:不同的子網可以相互隔離,將廣播流量限制在各自的子網內,從而減少網絡擁塞,并提高網絡的安全性。

2. 子網掩碼(Subnet Mask)

子網掩碼是一個32位的二進制數,它與 IP 地址一起使用,用于確定 IP 地址中的網絡部分和主機部分

  • 工作原理

    • 子網掩碼中的連續的“1”對應于 IP 地址中的網絡號子網號

    • 子網掩碼中連續的“0”對應于 IP 地址中的主機號

如何使用子網掩碼? 要獲取一個 IP 地址的子網地址,只需要將該 IP 地址與子網掩碼進行按位與(AND)運算。

舉例說明 假設你有一個 IP 地址 192.168.1.100,子網掩碼是 255.255.255.0

  • IP 地址192.168.1.100

    • 二進制:11000000.10101000.00000001.01100100

  • 子網掩碼255.255.255.0

    • 二進制:11111111.11111111.11111111.00000000

將兩者進行按位與運算,得到:

  • 子網地址11000000.10101000.00000001.00000000

    • 十進制:192.168.1.0

這意味著 IP 地址 192.168.1.100 屬于 192.168.1.0 這個子網。

ICMP 協議 (Internet Control Message Protocol)

ICMP 協議,即互聯網控制消息協議,是網絡層(第三層)的一個重要協議。它的主要任務是傳遞控制消息和錯誤報告,而不是傳輸用戶數據。當路由器處理一個數據包的過程有意外發生時,可通過ICMP向發送方報告。

ICMP 的主要功能:

  • 報告錯誤:當數據包在傳輸過程中遇到問題時,ICMP 會生成錯誤報告,并發送給數據包的源主機。常見的錯誤消息包括“目標網絡不可達”、“TTL超時”等。

  • 查詢信息:ICMP 也可以用來查詢網絡狀態,例如,主機可以發送一個 ICMP 請求來詢問另一個主機是否可達。

ICMP 協議不傳輸文件、網頁或視頻,它只負責傳遞網絡狀態和錯誤信息,這是它與 TCP 或 UDP 等協議的根本區別。

Ping

Ping 是一個網絡診斷工具,它利用 ICMP 協議來測試兩臺主機之間的連通性。

Ping 的工作原理:

  1. 發送請求:當你在一臺主機上運行 ping 命令,并指定一個目標 IP 地址時,你的主機實際上會向目標主機發送一個 ICMP 回顯請求(Echo Request)數據包。

  2. 接收響應:如果目標主機可達,它會向你的主機發送一個 ICMP 回顯應答(Echo Reply)數據包。

  3. 結果顯示ping 程序會記錄從發送請求到收到應答所花費的時間(即往返時延),并顯示傳輸成功的數據包數量和丟失率。

通過 ping 命令,我們可以快速判斷網絡是否通暢、目標主機是否在線,并評估網絡的延遲和穩定性。

Traceroute

Traceroute 是另一個網絡診斷工具,它利用 ICMP 協議IP 協議的 TTL(生存時間)字段,來追蹤數據包從源主機到目的主機所經過的路徑

Traceroute 的工作原理:

  1. TTL 遞增traceroute 程序會發送一系列 IP 數據包,每個數據包的 TTL 值從 1 開始遞增

  2. TTL 超時

    • 第一個數據包的 TTL 值為 1。當它到達第一個路由器時,TTL 減為 0,路由器會丟棄該數據包,并向源主機發送一個 ICMP “時間超時”(Time Exceeded)消息。這個消息包含了第一個路由器的 IP 地址。

    • 第二個數據包的 TTL 值為 2。它會成功通過第一個路由器,但在第二個路由器處被丟棄,并觸發一個 ICMP“時間超時”消息,從而讓源主機得知第二個路由器的 IP 地址。

  3. 路徑追蹤:這個過程會一直重復,直到某個數據包成功到達目的地。通常,當數據包到達目的地時,會收到一個 ICMP “端口不可達”或“回顯應答”消息,表示追蹤結束。

通過 traceroute,我們可以看到數據包在網絡中經過了哪些路由器,并了解每段路徑的延遲,這對于排查網絡擁塞或路由故障非常有幫助。

DHCP 協議 (動態主機配置協議)

DHCP (Dynamic Host Configuration Protocol) 是一個應用層協議,它的主要任務是動態地為網絡中的設備分配 IP 地址,以及其他重要的網絡配置信息,如子網掩碼、網關和 DNS 服務器地址。

當一臺設備(例如你的電腦或手機)連接到網絡時,它會執行以下步驟:

  1. DHCP 發現 (Discover):設備發送一個 DHCP 廣播數據包,尋找網絡中的 DHCP 服務器。

  2. DHCP 租約提供 (Offer):DHCP 服務器收到請求后,從其地址池中選擇一個可用的 IP 地址,并以單播方式提供給設備。

  3. DHCP 租約請求 (Request):設備收到一個或多個 Offer 后,選擇一個并發送一個請求,正式要求租用該 IP 地址。

  4. DHCP 租約確認 (ACK):DHCP 服務器收到請求后,發送一個確認數據包,正式分配 IP 地址和所有必要的網絡配置信息。

DHCP 的存在,使得網絡管理員無需手動配置每臺設備的 IP 地址,極大地簡化了網絡管理。

ARP 協議 (地址解析協議)

ARP (Address Resolution Protocol) 是一個數據鏈路層協議,它的主要任務是將網絡層的 IP 地址解析為數據鏈路層的 MAC 地址

當一個設備想要向同一局域網內的另一個設備發送數據時,網絡層用IP地址找到主機,鏈路層需要MAC地址才能發送幀。但它只知道對方的 IP 地址。這時,ARP 協議就會介入:

  1. ARP 請求 (Request):設備發送一個 ARP 廣播數據包,詢問網絡中“誰是這個 IP 地址的主人?”。

  2. ARP 響應 (Reply):網絡中的所有設備都會收到這個廣播。只有擁有該 IP 地址的設備,才會向源設備發送一個 ARP 單播響應,其中包含了它的 MAC 地址。

  3. 緩存:源設備收到響應后,會將這個 IP-MAC 地址的對應關系存儲在自己的 ARP 緩存表中,以便下次直接使用,避免重復廣播。

ARP 確保了數據包能夠在局域網中找到正確的物理接收方。

網關 (Gateway)

網關是一個網絡設備,用于連接兩個不同的網絡。它在網絡中扮演著“守門員”或“出口”的角色。

你的設備如何知道數據包應該發給誰?它會檢查數據包的目的 IP 地址:

  • 本地通信:如果目的 IP 地址與設備自己的 IP 地址屬于同一個子網,它會使用 ARP 協議來獲取對方的 MAC 地址,并將數據包直接發送給該設備。

  • 跨網通信:如果目的 IP 地址不屬于本地子網(例如,你正在訪問一個網站),設備就會將數據包發送給默認網關

在大多數家庭或小型辦公網絡中,路由器扮演著默認網關的角色。它負責將來自你本地網絡的數據包轉發到互聯網,并將來自互聯網的數據包轉發回你的設備。因此,從廣義上說,任何能夠連接并轉換不同網絡協議的設備都可以被稱為網關。

NAT (網絡地址轉換)

NAT,全稱 Network Address Translation,即網絡地址轉換。它是一種允許一個私有網絡(如家庭或辦公局域網)中的多個設備,共享同一個公有 IP 地址來訪問互聯網的技術。

NAT 的工作原理

NAT 的核心作用是在私有 IP 地址和公有 IP 地址之間進行轉換。它就像一個網絡的“代理”,所有從私有網絡發出的數據包,都會通過這個代理進行地址轉換,然后再發送到互聯網。

整個過程可以分為兩個方向:

  1. 從私有網絡到公網

    • 一個私有網絡中的設備(例如 IP 地址為 192.168.1.10 的電腦),想要訪問一個公網服務器(例如 IP 地址為 8.8.8.8 的網站)。

    • 數據包的源地址是 192.168.1.10。當數據包到達具備 NAT 功能的路由器時,路由器會截獲它。

    • 路由器將數據包的源 IP 地址從私有的 192.168.1.10 轉換成自己的公有 IP 地址(例如 203.0.113.50)。同時,它還會更改數據包的源端口號,以確保這個連接是唯一的。

    • 路由器將這種轉換關系(192.168.1.10 映射到 203.0.113.50:端口號)記錄在自己的 NAT 轉換表中。

    • 轉換后的數據包被發送到公網。此時,公網上的服務器只知道數據包來自 203.0.113.50

  2. 從公網返回私有網絡

    • 公網服務器的響應數據包到達路由器。

    • 路由器收到數據包后,會查詢它的 NAT 轉換表

    • 根據轉換表中的記錄,路由器將數據包的目的地址從公有 IP 203.0.113.50:端口號?還原為私有 IP 192.168.1.10,并將數據包轉發給正確的設備。

NAT 的主要類型

根據地址映射的方式,NAT 可以分為幾種主要類型:

  • 靜態 NAT(Static NAT)

    • 一對一映射:一個私有 IP 地址被永久地映射到一個固定的公有 IP 地址。

    • 用途:通常用于需要從公網訪問的服務器,因為它提供了固定的公有地址。

  • 動態 NAT(Dynamic NAT)

    • 多對多映射:在多個公有 IP 地址池中,動態地為私有 IP 地址分配一個可用的公有 IP。

    • 用途:適用于需要共享一組公有地址的私有網絡。

  • 端口地址轉換(PAT)

    • 多對一映射:也稱為 NAT 重載(NAT Overload),這是最常見的 NAT 類型。它使用單個公有 IP 地址,通過不同的端口號來區分多個私有 IP 地址的連接。

    • 用途:廣泛應用于家庭和小型辦公網絡,極大地節約了公有 IP 地址資源。

NAT 的重要性

  • 地址節約:NAT 技術的出現,是應對 IPv4 地址耗盡危機的關鍵解決方案。它使得一個組織只需要申請一個公有 IP 地址,就可以讓所有內部設備接入互聯網。

  • 網絡安全:由于私有網絡中的設備 IP 地址對外部不可見,NAT 也提供了一種基本的防火墻功能。外部設備無法直接向內部私有地址發起連接,從而增強了網絡的安全性。

域內路由與域外路由

1. 域內路由(Intra-domain Routing)

域內路由,也稱為內部網關協議(IGP),是指在一個自治系統(AS)內部進行路由的過程。

  • 自治系統:一個自治系統是一個統一管理下的網絡實體,例如一個大型公司、大學校園或一個互聯網服務提供商(ISP)的網絡。

  • 目的:域內路由的主要目的是在自治系統內部實現高效、快速的路由,確保數據包能夠以最優路徑在內部傳輸。

  • 特點:由于是在單個管理域內,通常假設網絡拓撲相對可信,所以協議更注重收斂速度路由的精確性

RIP(路由信息協議)和 OSPF(開放最短路徑優先)是兩種最典型的域內路由協議。

  • RIP(工作在應用層,基于UDP協議封裝報文)

    • 類型:基于距離向量算法

    • 工作原理:路由器周期性地向鄰居發送其完整的路由表(包含目的網絡、跳數、下一跳IP地址)。最大跳數為 15,因此不適用于大型網絡。

    • 特點:配置簡單,但收斂速度慢,且容易產生路由環路。現在通常只用于小型、簡單的網絡。

  • OSPF(工作在網絡層,數據封裝在IP分組中進行傳輸

    • 類型:基于鏈路狀態路由算法

    • 工作原理:與RIP不同,兩個路由器之間代價大于1(帶寬;時延、MTU)。每個路由器都會向整個自治系統泛洪鏈路狀態通告(LSA),然后所有路由器都根據這些 LSA 建立起完整的網絡拓撲圖,并使用 Dijkstra 算法獨立計算出最優路徑。

    • 特點:收斂速度快,路由精確,支持負載均衡,將負載分散到多條線路。適用于大型、復雜的企業和ISP網絡。

2. 域間路由(Inter-domain Routing)

域間路由,也稱為外部網關協議(EGP),是指在不同的自治系統(AS)之間進行路由的過程。

  • 目的:域間路由的主要目的是在不同的自治系統之間交換路由信息,從而讓數據包能夠在全球范圍內找到正確的目的地。

  • 特點:由于涉及不同組織的網絡,協議更注重路由策略安全性和可擴展性,而不是單純地追求最短路徑。

BGP(邊界網關協議)是唯一的,也是目前互聯網上事實上的域間路由協議。

  • BGP(邊界網關協議)[工作在應用層,基于TCP協議封裝報文]

    • 類型:基于路徑向量路由算法

    • 工作原理:BGP 路由器(通常被稱為邊界路由器)會與其他自治系統的 BGP 路由器建立連接,并交換路由信息。但它不只交換“目的地和下一跳”,它還交換完整的路徑信息(AS Path),即數據包要經過的所有自治系統序列。

    • 特點

      • 策略路由:BGP 不單純基于最短路徑,而是允許管理員配置復雜的路由策略,例如,優先選擇通過特定ISP的路徑。

      • 避免環路:由于BGP攜帶了完整的AS路徑信息,它可以輕松地檢測并避免路由環路。

      • 高度可擴展:BGP能夠處理龐大的路由表,是互聯網路由的基石。

數據包的傳輸過程是:一個數據包從一個 AS 內部的主機發出,它會通過 OSPF 或 RIP 找到邊界路由器,然后邊界路由器使用 BGP 將其轉發到正確的目的地 AS,最后,數據包在目的 AS 內部再次使用 OSPF 或 RIP,找到最終的主機。


后續網絡層相關內容會補充到這篇文章中。

不知道大家是喜歡所有內容都合在一篇文章中,還是根據內容不同分成幾篇文章=-=?

以上, 跟著光。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/99212.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/99212.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/99212.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

互聯網大廠Java面試實錄:從基礎到微服務全棧技術答疑

互聯網大廠Java面試實錄:從基礎到微服務全棧技術答疑 本文以電商場景為背景,展現一場互聯網大廠Java開發職位的面試過程。嚴肅的面試官與搞笑的水貨程序員謝飛機展開三輪技術問答,涵蓋Java SE、Spring Boot、數據庫、微服務、安全以及CI/CD等…

StringBuilder 深度解析:數據結構與擴容機制的底層細節

文章目錄 前言 一、數據結構:不止是簡單的字符數組 1. 核心成員變量(定義在 AbstractStringBuilder 中) 2. 構造器與初始容量 二、擴容機制:從 "不夠用" 到 "換大容器" 的全過程 步驟 1:計算…

Elasticsearch面試精講 Day 17:查詢性能調優實踐

【Elasticsearch面試精講 Day 17】查詢性能調優實踐 在“Elasticsearch面試精講”系列的第17天,我們聚焦于查詢性能調優實踐。作為全文檢索與數據分析的核心引擎,Elasticsearch的查詢性能直接影響用戶體驗和系統吞吐能力。在高并發、大數據量場景下&…

WPF 數據綁定模式詳解(TwoWay、OneWay、OneTime、OneWayToSource、Default)

在WPF中,數據綁定模式(Binding Mode)用于指定數據流的方向。常見的模式有TwoWay、OneWay、OneTime、OneWayToSource和Default。TwoWay(雙向綁定):數據從源(通常是ViewModel或數據上下文&#xf…

使用 NVIDIA Dynamo 部署 PD 分離推理服務

1 Dynamo 介紹 NVIDIA Dynamo 是一個開源的模塊化推理框架,用于在分布式環境上實現生成式 AI 模型的服務化部署。Dynamo 通過動態資源調度、智能路由、內存優化與高速數據傳輸,無縫擴展大型 GPU 集群之間的推理工作負載。 Dynamo 采用推理引擎無關的設…

答題卡識別改分項目

目錄 核心思路 分步實現與代碼解析 1. 環境準備與工具函數定義 2. 圖片預處理 3. 輪廓提取與篩選 3. 輪廓提取與篩選 4. 透視變換(矯正傾斜答題卡) 5. 閾值處理(突出填涂區域) 6. 提取選項圓圈輪廓 7. 選項輪廓排序&…

Python爬蟲實戰:研究Pandas,構建新浪網股票數據采集和分析系統

1. 系統概述 股票數據分析系統旨在通過自動化手段獲取市場數據,進行深度分析,輔助投資決策。本系統主要包含以下核心模塊: 數據爬取模塊:從新浪財經獲取股票列表、基本信息及歷史交易數據 數據處理模塊:清洗原始數據,處理缺失值與異常值,計算技術指標 分析可視化模塊:…

【C++STL】list的詳細用法和底層實現

🌟個人主頁:第七序章 🌈專欄系列:C++ 目錄 ??前言: 🌈一:介紹 🌈二:list的創建 ??基本框架 🌙節點類 🌙構造函…

AI大模型開發(多模態+提示詞)

接著之前的例子,繼續測試模型對話,今天主要測試多模態加上系統提示詞。 一.多模態 多模態方法,主要添加了對圖片的測試。 public String chatWithMessage(UserMessage userMessage){ChatResponse chatResponse qwenChatModel.chat(userMess…

Qt程序單獨運行報錯問題

Qt程序單獨運行報錯問題介紹問題原因分析解決方案(從最佳實踐到臨時方法)方法一:使用 windeployqt 工具(最推薦、最規范)方法二:臨時修改系統 PATH(適合開發調試)方法三:…

Flask學習筆記(二)--路由和變量

一、路由Flask支持兩種路由1、使用route()裝飾器將URL綁定到函數app.route(/hello)def hello_world():return hello world2、使用應用程序對象的add_url_rule()函數def hello_world():return hello worldapp.add_url_rule(/, hello, hello_world)二、變量規則Flask開發中&#…

Skywalking告警配置+簡易郵件告警應用配置(保姆級)

Skywalking告警配置簡易郵件告警應用配置前言: 前文:SkyWalking Elasticsearch8 容器化部署指南:國內鏡像加速與生產級調優_skywalkinges-CSDN博客 ? SKywalking Agent配置Oracle監控插件安裝指南-CSDN博客 Skywalking版本:V10.…

無人機如何實現圖傳:從原理到實戰的全景解讀

無人機圖傳的工作不是簡單地把鏡頭的數據直接“丟”到一個屏幕上,而是一個由編碼、傳輸、解碼三段組成的系統。首先是視頻編碼:攝像頭采集的原始畫面通常需要經過編解碼器壓縮,常見標準包括H.264、H.265和VP9等。壓縮的目的是減少數據量&…

AS32S601在軌重構(OTA)方案的優化與分析

摘要在軌重構(OTA)技術因其在航天、工業控制、物聯網等領域的高可靠性和持續服務需求而備受關注。本文以國科安芯推出的AS32S601芯片為研究對象,深入分析其OTA方案的設計原理、技術細節及優化策略,并結合芯片的硬件特性&#xff0…

修復Android studio的adb無法連接手機問題

復制下面的內容到一個文本txt里面然后把里面的Android studio路徑和sdk路徑改成你自己的,然后改成把.txt改成bat 右鍵管理員運行 echo off REM Deep Fix for "Couldnt terminate the existing process" error REM This script will completely reset ADB …

css優化都有哪些優化方案

CSS 優化其實可以分成幾個層面:性能優化、可維護性優化、兼容性優化以及用戶體驗優化。這里我幫你梳理一份比較系統的 CSS 優化方案清單,方便你參考:🔹 一、加載性能優化減少 CSS 文件體積壓縮 CSS(去掉空格、換行、注…

vue,uniapp 實現卷簾對比效果

需求&#xff1a;兩張圖重疊放在一起&#xff0c;拖動分割線實現卷簾對比效果&#xff0c;如圖一、vue2代碼 <template><div class"main"><div class"img-comparison" mousedown"startSlide"><img class"before"…

【筆記】空氣彈簧概述、剛度調節原理

參考鏈接&#xff1a;汽車底盤空氣懸架關鍵零部件之空氣彈簧 1.概述 汽車空氣彈簧&#xff08;Air Spring&#xff09;是一種以“壓縮空氣”作為彈性介質的懸架元件&#xff0c;用來取代傳統鋼制螺旋彈簧或鋼板彈簧。它在乘用車、客車、重卡及軌道交通上越來越普及&#xff0…

UDP Socket 進階:從 Echo 到字典服務器,學會 “解耦” 網絡與業務

開篇&#xff1a;從 “回顯” 到 “字典”&#xff0c;核心變在哪&#xff1f;上一篇我們實現了 Echo 服務器 —— 網絡層和業務層是 “綁死” 的&#xff1a;網絡層收到數據后&#xff0c;直接把原數據發回去。但實際開發中&#xff0c;業務邏輯會復雜得多&#xff08;比如查字…

數據結構之復雜度

數據結構的理解 數據本身是雜亂無章的&#xff0c;需要結構進行增刪查改等操作更好的管理數據&#xff1b; 比如&#xff1a;在程序中需要將大量的代碼&#xff08;數據&#xff09;通過結構進行管理&#xff1b; 再比如&#xff1a;定義1000個整型變量的數組&#xff0c;我們…