計算機網絡體系結構
1. 請簡述 OSI 七層模型和 TCP/IP 四層模型,并比較它們的異同。
OSI 七層模型:
- 應用層:直接為用戶的應用進程提供服務,如 HTTP(超文本傳輸協議,用于 Web 瀏覽器與服務器通信)、FTP(文件傳輸協議,用于文件的上傳和下載)、SMTP(簡單郵件傳輸協議,用于發送電子郵件)等。
- 表示層:負責處理在兩個通信系統中交換信息的表示方式。包括數據格式轉換(如將 ASCII 碼轉換為 EBCDIC 碼)、數據加密與解密(保障數據的安全性,防止信息被竊取)、數據壓縮與解壓縮(減少數據傳輸量,提高傳輸效率)等。
- 會話層:負責建立、管理和終止表示層實體之間的通信會話。例如,會話的建立可以通過用戶登錄認證來實現;在數據傳輸過程中,負責處理會話的同步,如設置檢查點,當出現故障時可以從檢查點恢復,實現斷點續傳;還負責解決數據的粘包與分包問題,確保數據的正確傳輸和接收。
- 傳輸層:主要任務是向兩臺主機進程之間的通信提供通用的數據傳輸服務。有兩個重要協議,TCP(傳輸控制協議)和 UDP(用戶數據報協議)。TCP 提供面向連接的、可靠的字節流傳輸服務,通過序列號、確認應答、重傳機制等保證數據的可靠傳輸,適用于對數據準確性要求高的場景,如文件傳輸、郵件發送等;UDP 提供無連接的、不可靠的報文傳輸服務,傳輸效率高,適用于對實時性要求高但對數據準確性要求相對較低的場景,如視頻直播、語音通話等。
- 網絡層:負責將分組從源端傳輸到目的端,主要功能包括邏輯地址尋址(如 IPv4 地址或 IPv6 地址)、路由選擇(確定數據包從源到目的的最佳路徑)以及擁塞控制等。網絡層協議如 IP 協議(網際協議)負責將數據封裝成 IP 數據包,并根據目的 IP 地址進行路由轉發;ICMP 協議(互聯網控制報文協議)用于在網絡設備之間傳遞控制信息,如差錯報告、網絡診斷等;IGMP 協議(互聯網組管理協議)用于管理多播組,實現多播數據的正確傳輸。
- 數據鏈路層:將網絡層交下來的 IP 數據包組裝成幀,并在兩個相鄰節點間的鏈路上傳送幀。它負責實現鏈路管理(如建立、維持和釋放數據鏈路連接)、幀的封裝與解封(在幀頭和幀尾添加相應的控制信息)、差錯檢測(通過 CRC 校驗等方式檢測數據在傳輸過程中是否發生錯誤)以及介質訪問控制(決定哪個設備有權在共享介質上傳輸數據)。數據鏈路層的設備有網卡、網橋、交換機等。
- 物理層:實現相鄰計算機節點之間比特流的透明傳送,盡可能屏蔽掉具體傳輸介質和物理設備的差異。它定義了物理設備的標準,如電纜的類型、接口的形狀和引腳定義等;規定了信號的編碼方式(如曼徹斯特編碼、差分曼徹斯特編碼等),將數字信號轉換為適合在傳輸介質上傳輸的模擬信號;還涉及傳輸介質的選擇,如雙絞線、同軸電纜、光纖等。
TCP/IP 四層模型:
- 應用層:對應 OSI 模型的應用層、表示層和會話層的功能。包含眾多應用層協議,如 DNS(域名系統,將域名解析為 IP 地址)、HTTP、SMTP 等,為用戶提供各種網絡應用服務。
- 傳輸層:與 OSI 模型的傳輸層功能類似,定義了 TCP 和 UDP 兩種協議。TCP 提供可靠的面向連接服務,UDP 提供不可靠的無連接服務。
- 網際層:對應 OSI 模型的網絡層。主要負責處理網絡上主機之間的通信,通過 IP 協議實現數據包的路由和轉發,同時還包括 ICMP、IGMP 等協議,用于網絡控制和管理。
- 網絡接口層:對應 OSI 模型的數據鏈路層和物理層。負責將 IP 數據包封裝成適合在物理網絡上傳輸的幀,并通過物理介質進行傳輸。它包括各種物理網絡的接口標準和協議,如以太網協議、無線局域網協議等,以及物理設備的驅動程序等。
兩者異同點:
- 相同點:
- 都采用了分層的思想,將復雜的網絡通信問題分解為多個層次,每個層次專注于特定的功能,使得網絡體系結構更加清晰、易于理解和維護。
- 都有應用層、傳輸層和網絡層,且這三層在功能上有相似之處。應用層都為用戶提供應用服務;傳輸層都負責數據傳輸服務,提供不同可靠性和傳輸特性的協議;網絡層都處理網絡尋址和數據包轉發等功能。
- 不同點:
- 層數不同:OSI 模型嚴格分為七層,層次結構更為復雜;TCP/IP 模型分為四層,相對簡潔。
- 設計理念不同:OSI 模型是先有理論模型,再進行協議實現,是一種理想化的標準模型;TCP/IP 模型是在實際應用中逐步發展起來的,更注重實用性和兼容性,許多互聯網的實際應用都是基于 TCP/IP 模型開發的。
- 某些層的功能合并:TCP/IP 模型將 OSI 模型中的表示層和會話層的功能合并到應用層中,在一定程度上簡化了模型結構。
- 應用普及程度不同:由于 TCP/IP 模型更符合實際應用需求,在互聯網領域得到了廣泛的應用,幾乎成為了互聯網的標準體系結構;而 OSI 模型雖然理論上很完善,但由于其復雜性和實現難度,在實際應用中并未得到廣泛采用,更多地作為一種理論參考模型。
2. 五層體系結構與上述兩種模型的關系是怎樣的?
五層體系結構是綜合了 OSI 七層模型和 TCP/IP 四層模型的優點,在實際教學和網絡分析中常用的一種簡化模型。它包括應用層、傳輸層、網絡層、數據鏈路層和物理層。
與 OSI 七層模型的關系:
- 五層體系結構的應用層對應 OSI 七層模型的應用層、表示層和會話層的功能。在五層體系結構中,將 OSI 模型中表示層負責的數據格式轉換、加密解密、壓縮解壓縮以及會話層負責的會話建立管理等功能,都整合到應用層中進行統一處理。這樣簡化了模型結構,更符合實際應用場景,因為在很多實際應用中,這些功能是緊密結合在一起為應用服務的。
- 五層體系結構的傳輸層、網絡層、數據鏈路層和物理層與 OSI 七層模型中的對應層次功能基本一致。傳輸層同樣負責為應用進程提供數據傳輸服務,通過 TCP 或 UDP 協議實現不同的傳輸特性;網絡層負責邏輯地址尋址和數據包的路由轉發;數據鏈路層負責將網絡層的數據包封裝成幀并在相鄰節點間傳輸;物理層負責實現比特流在物理介質上的傳輸。
與 TCP/IP 四層模型的關系:
- 五層體系結構在 TCP/IP 四層模型的基礎上,將網絡接口層進一步細分為數據鏈路層和物理層。TCP/IP 模型的網絡接口層實際上涵蓋了數據鏈路層和物理層的功能,但在五層體系結構中,將這兩層分開描述,使得各層功能更加清晰明確。數據鏈路層專注于數據幀的封裝、解封、差錯檢測以及鏈路管理等功能;物理層專注于物理介質的特性、信號編碼和傳輸等功能。
- 五層體系結構的應用層、傳輸層和網際層(對應 TCP/IP 模型的網絡層)與 TCP/IP 四層模型中的對應層次功能相同,都是為了實現網絡應用、數據傳輸和網絡通信等核心功能。
五層體系結構吸收了 OSI 七層模型和 TCP/IP 四層模型的優點,既具有相對簡潔的結構,又能清晰地描述網絡通信的各個層次功能,在網絡教學、網絡設計和網絡分析等方面都具有重要的應用價值。
數據鏈路層
1. 數據鏈路層的主要功能有哪些?
數據鏈路層作為計算機網絡體系結構中的重要層次,主要承擔以下關鍵功能:
- 鏈路管理:負責數據鏈路的建立、維持和釋放。在通信雙方進行數據傳輸之前,需要通過一定的機制建立起可靠的數據鏈路連接,確保雙方能夠正確地進行數據交互。例如,在局域網中,當一臺主機要與另一臺主機進行通信時,數據鏈路層會進行一系列的初始化操作,包括協商通信參數、分配資源等,以建立起數據鏈路連接。在通信過程中,數據鏈路層要維持鏈路的正常運行,監測鏈路狀態,及時處理鏈路中的錯誤和異常情況。當通信結束后,數據鏈路層負責釋放所占用的鏈路資源,以便其他設備可以使用。
- 幀的封裝與解封:將網絡層傳來的 IP 數據包封裝成數據幀,以便在物理鏈路上進行傳輸。在封裝過程中,會在 IP 數據包的前面添加幀頭,在后面添加幀尾。幀頭中包含了源和目的 MAC 地址(介質訪問控制地址,用于在局域網中唯一標識設備)、幀類型等重要信息,這些信息對于數據幀在鏈路上的正確傳輸和接收至關重要。幀尾通常包含用于差錯檢測的校驗字段,如 CRC(循環冗余校驗)碼。接收方的數據鏈路層在接收到物理層傳來的信號后,會根據幀頭和幀尾的格式信息進行幀的解封,將封裝在幀中的 IP 數據包提取出來,交給網絡層進行進一步處理。
- 差錯檢測:通過各種差錯檢測算法,對傳輸過程中可能出現的錯誤進行檢測。由于物理鏈路可能會受到噪聲干擾、信號衰減等因素的影響,導致數據在傳輸過程中發生錯誤。數據鏈路層采用 CRC 校驗等方法,在發送方對數據幀進行計算,生成 CRC 校驗碼并附加在幀尾。接收方在接收到數據幀后,同樣對數據部分進行 CRC 計算,并將計算結果與接收到的校驗碼進行比較。如果兩者不一致,則說明數據幀在傳輸過程中出現了錯誤,接收方會要求發送方重新發送該數據幀,從而保證數據傳輸的準確性。
- 介質訪問控制:在共享介質的網絡環境中,決定哪個設備有權在特定時刻訪問傳輸介質。例如,在以太網中,采用 CSMA/CD(載波監聽多路訪問 / 沖突檢測)協議來實現介質訪問控制。每個設備在發送數據之前,首先要監聽介質上是否有其他設備正在傳輸數據。如果介質空閑,則設備可以發送數據;在發送數據的同時,設備還要繼續監聽介質,以檢測是否發生沖突。如果檢測到沖突,設備會立即停止發送數據,并發送一個沖突信號,通知其他設備。然后,設備會采用一定的退避算法,等待一段時間后再次嘗試發送數據。這種介質訪問控制機制有效地避免了多個設備同時發送數據導致的沖突,提高了網絡的傳輸效率。
2. 以太網協議的工作原理是什么?
以太網協議是目前應用最為廣泛的局域網通信協議,其工作原理主要基于以下幾個方面:
- 載波監聽多路訪問(CSMA):在以太網中,所有設備共享同一傳輸介質。每個設備在發送數據之前,都需要先監聽傳輸介質上是否有其他設備正在發送信號,即載波監聽。如果監聽到介質上有信號傳輸,說明介質忙,設備會等待一段時間后再次監聽;只有當監聽到介質空閑時,設備才認為可以發送數據。這種機制通過讓多個設備共同監聽介質,減少了沖突的可能性。
- 沖突檢測(CD):當一個設備開始發送數據后,它并不會立即停止監聽介質。因為在網絡中可能存在信號傳播延遲,即使設備在發送數據前監聽到介質空閑,也不能完全排除在它發送數據的同時,其他設備也開始發送數據的情況,從而導致沖突。因此,設備在發送數據的過程中,會同時檢測介質上的信號。如果檢測到的信號強度超過了正常發送信號的強度,說明發生了沖突。一旦檢測到沖突,設備會立即停止發送數據,并發送一個強化沖突的信號,以便讓其他設備也能盡快檢測到沖突。
- 沖突解決與退避算法:當檢測到沖突后,為了避免多個設備同時再次嘗試發送數據而導致新的沖突,以太網采用了退避算法。常用的退避算法是截斷二進制指數退避算法。具體來說,設備在檢測到沖突后,會隨機選擇一個退避時間進行等待。退避時間的計算與沖突發生的次數有關,沖突次數越多,退避時間的取值范圍越大。例如,第一次沖突后,設備會在 0 到 2 - 1(即 0 或 1)個時間片之間隨機選擇一個時間片進行等待;第二次沖突后,會在 0 到 22 - 1(即 0 到 3)個時間片之間隨機選擇;第三次沖突后,在 0 到 23 - 1(即 0 到 7)個時間片之間隨機選擇,以此類推,直到沖突次數達到 16 次,如果仍然沖突,則丟棄該數據幀,并向上層報告錯誤。通過這種退避算法,隨著沖突次數的增加,設備再次發送數據時發生沖突的概率會逐漸降低,從而提高了網絡的穩定性和傳輸效率。
- 數據封裝與傳輸:在發送數據時,以太網協議將網絡層傳來的 IP 數據包封裝成以太網幀。以太網幀的格式包括前導碼(用于同步接收方的時鐘)、幀起始定界符、目的 MAC 地址、源 MAC 地址、類型字段(用于標識上層協議類型,如 IP 協議、ARP 協議等)、數據字段(包含封裝的 IP 數據包)以及幀校驗序列(FCS,用于差錯檢測)。封裝完成后,設備將以太網幀通過物理層發送到傳輸介質上,以二進制比特流的形式在網絡中傳播。接收方的設備在接收到比特流后,會按照以太網幀的格式進行解析,提取出其中的 IP 數據包,并交給網絡層進行后續處理。
3. 交換機的工作原理和作用是什么?它與集線器有何區別?
交換機工作原理和作用:
- 工作原理:交換機通過學習連接到其端口的設備的 MAC 地址,構建 MAC 地址表。當交換機接收到一個數據幀時,它會檢查幀中的目的 MAC 地址,并在 MAC 地址表中查找對應的端口。如果找到匹配的端口,交換機就將該數據幀轉發到該端口;如果在 MAC 地址表中未找到目的 MAC 地址,交換機則會將數據幀泛洪到除接收端口之外的所有其他端口。隨著時間的推移,交換機不斷學習新的 MAC 地址與端口的對應關系,更新 MAC 地址表,從而能夠更準確地轉發數據幀。例如,當主機 A 向主機 B 發送數據幀時,交換機接收到該幀后,首先查看幀中的源 MAC 地址(即主機 A 的 MAC 地址),并將其與接收該幀的端口號記錄到 MAC 地址表中。然后,交換機查看目的 MAC 地址(即主機 B 的 MAC 地址),若 MAC 地址表中已有主機 B 的 MAC 地址與對應端口的記錄,則將數據幀轉發到該端口;若沒有記錄,則向除接收端口外的其他所有端口發送該數據幀。當主機 B 回復數據幀給主機 A 時,交換機同樣進行上述操作,同時也更新了 MAC 地址表中主機 B 的相關記錄,使得下次轉發主機 A 與主機 B 之間的數據幀時能夠更高效。
- 作用:交換機主要用于在局域網中實現設備之間的數據交換,能夠隔離沖突域。由于交換機根據 MAC 地址進行數據幀的轉發,每個端口都可以看作是一個獨立的沖突域,不同端口之間的數據傳輸不會相互干擾,大大提高了網絡的傳輸效率和性能。與共享式網絡(如使用集線器的網絡)相比,交換機能夠減少沖突的發生,提高網絡帶寬的利用率。例如,在一個辦公室網絡中,有多臺計算機和服務器通過交換機連接。當一臺計算機向服務器發送數據時,交換機能夠準確地將數據幀轉發到服務器所連接的端口,而不會影響其他計算機之間的通信,從而保證了網絡的流暢運行。
交換機與集線器的區別:
- 工作層次不同:交換機工作在數據鏈路層,它根據數據幀中的 MAC 地址進行轉發決策;而集線器工作在物理層,它只是簡單地將接收到的信號進行放大和廣播,不具備對數據幀進行分析和處理的能力。
- 數據轉發方式不同:交換機采用存儲轉發的方式,接收到數據幀后,先存儲在緩存中,然后根據 MAC 地址表進行轉發;集線器則是將接收到的信號廣播到所有端口,不管目的設備是否連接到該端口。例如,當集線器接收到一個數據幀時,它會將該數據幀的信號復制并發送到所有與之相連的端口,導致網絡中存在大量不必要的廣播流量,容易造成網絡擁塞。而交換機只有在 MAC 地址表中找不到目的 MAC 地址時才進行泛洪,正常情況下能夠準確地將數據幀轉發到目標端口,減少了廣播流量,提高了網絡效率。
- 沖突域不同:集線器連接的所有設備處于同一個沖突域,任何一個設備發送數據時,其他設備都可能發生沖突;而交換機的每個端口都構成一個獨立的沖突域,不同端口之間的數據傳輸不會產生沖突,大大降低了沖突的概率,提高了網絡的性能和可靠性。
- 帶寬利用不同:集線器共享帶寬,所有連接到集線器的設備共享同一傳輸介質的帶寬。例如,一個 100Mbps 的集線器連接了 10 臺設備,那么每臺設備理論上只能獲得 10Mbps 的平均帶寬;而交換機的每個端口都有獨立的帶寬,例如一個 100Mbps 端口的交換機連接了 10 臺設備,每臺設備都可以獨占 100Mbps 的帶寬進行數據傳輸,大大提高了數據傳輸的速度和效率。
網絡層
1. IP 協議的作用是什么?IPv4 和 IPv6 有哪些主要區別?
IP 協議的作用:
IP 協議(網際協議)是網絡層的核心協議,主要承擔以下重要作用:
對比維度 | IPv4 | IPv6 |
---|---|---|
地址長度 | 32 位,約 43 億個地址,目前已耗盡 | 128 位,地址空間極大(約 3.4×103?個),可滿足未來長時間的需求 |
地址表示 | 點分十進制,如 192.168.1.1 | 冒分十六進制,如 2001:0db8:85a3::8a2e:0370:7334(支持零壓縮,連續的零可省略為 “::”) |
首部格式 | 首部長度可變(20-60 字節),包含較多字段(如 IHL、服務類型、總長度、標識、標志、分片偏移、TTL、協議、首部校驗和、源地址、目的地址、選項等) | 首部長度固定為 40 字節,字段簡化(如版本、流量類別、流標簽、有效載荷長度、下一個首部、跳數限制、源地址、目的地址),取消了首部校驗和(由數據鏈路層和傳輸層負責校驗),選項移至擴展首部 |
分片機制 | 發送端和中間路由器都可進行分片 | 僅發送端可進行分片,中間路由器遇到過大的數據包時會丟棄并返回 ICMPv6 差錯報文,由發送端重新調整分片大小,提高了路由效率 |
地址類型 | 分為 A、B、C、D、E 類,包含單播、廣播、多播地址 | 取消廣播地址,引入單播、多播、任播地址。任播地址用于標識一組設備中的一個,數據包會被發送到距離最近的設備(根據路由協議判斷),適用于負載均衡、內容分發等場景 |
自動配置 | 主要依賴 DHCP(動態主機配置協議)獲取地址,無狀態自動配置(如 APIPA)功能有限 | 支持無狀態地址自動配置(SLAAC),主機可通過鄰居發現協議(NDP)自動獲取前綴信息并生成全球唯一的 IPv6 地址,無需 DHCP 服務器,簡化了網絡配置 |
安全機制 | 安全性依賴上層協議(如 SSL/TLS),無內置安全功能 | 內置 IPsec(IP 安全)協議,提供數據加密、認證和完整性校驗,從網絡層保障通信安全,無需額外配置即可實現端到端的安全通信 |
QoS 支持 | 通過服務類型(TOS)字段支持,但功能有限 | 新增 “流標簽” 字段,可對特定數據流進行標記,路由器根據流標簽為數據包提供差異化的服務質量(如帶寬保障、低延遲),更適合實時音視頻等對 QoS 要求高的應用 |
NAT 依賴 | 由于地址短缺,廣泛使用 NAT(網絡地址轉換)實現私有地址到公有地址的轉換,但 NAT 會破壞端到端通信,增加網絡復雜性 | 地址充足,無需依賴 NAT,可實現真正的端到端通信,簡化了網絡結構,便于 P2P(對等網絡)應用的部署 |
2. 什么是子網掩碼?它的作用是什么?如何計算子網?
子網掩碼的定義:
子網掩碼(Subnet Mask)是一個 32 位的二進制數,與 IPv4 地址配合使用,用于區分 IP 地址中的網絡部分和主機部分。子網掩碼的二進制表示中,“1” 對應的位表示 IP 地址的網絡位,“0” 對應的位表示主機位。通常子網掩碼也以點分十進制形式表示,如 255.255.255.0。
子網掩碼的作用:
3. 路由協議的分類有哪些?RIP 和 OSPF 的區別是什么?
路由協議的分類:
路由協議用于在路由器之間交換路由信息,生成和維護路由表,可分為以下幾類:
RIP 和 OSPF 的區別:
對比維度 | RIP | OSPF |
---|---|---|
協議類型 | 距離矢量路由協議 | 鏈路狀態路由協議 |
度量值 | 以跳數(經過的路由器數量)作為度量值,最大跳數為 15,超過 15 則認為目標不可達 | 以鏈路帶寬為主要度量值(默認成本 = 100Mbps / 鏈路帶寬),可根據延遲、負載等自定義度量值,無最大跳數限制 |
路由更新方式 | 周期性(默認 30 秒)向所有鄰居廣播完整路由表,更新信息量大,占用帶寬多 | 僅在鏈路狀態發生變化時發送觸發更新(包含變化的鏈路信息),更新信息量小,且使用組播(224.0.0.5)發送,減少帶寬消耗 |
網絡拓撲認知 | 僅了解到鄰居的路由信息,對整個網絡拓撲的認知是間接的、不完整的,可能產生路由環路 | 每個路由器都維護一個完整的網絡拓撲數據庫,對網絡結構有全局認知,通過 Dijkstra 算法計算最短路徑,可避免路由環路 |
收斂速度 | 收斂速度慢(可能需要幾分鐘),因為路由更新需要逐跳傳播,且存在計數到無窮的問題(需通過水平分割、毒性逆轉等機制緩解) | 收斂速度快(通常幾秒內),鏈路狀態變化后迅速擴散,所有路由器同步更新拓撲數據庫并重新計算路由 |
適用網絡規模 | 適用于小型網絡(如小于 15 跳的局域網),不適合大型網絡 | 適用于中大型網絡,支持分層結構(通過區域劃分),可減少路由信息交換量和計算復雜度 |
安全性 | 無內置安全機制,容易受到路由欺騙攻擊 | 支持明文或 MD5 認證,只有通過認證的路由器才能交換路由信息,提高了協議的安全性 |
VLSM 支持 | 不支持可變長子網掩碼(VLSM),無法有效利用 IP 地址空間 | 支持 VLSM 和 CIDR(無類別域間路由),可靈活劃分子網,提高 IP 地址利用率 |
路由聚合 | 僅支持簡單的路由聚合,能力有限 | 支持在區域邊界進行路由聚合,將多個子網路由合并為一條匯總路由,減少路由表規模 |
4. 什么是 NAT?它的作用是什么?NAT 有哪些類型?
NAT 的定義:
NAT(網絡地址轉換)是一種在路由器或防火墻中實現的技術,用于將一個 IP 地址空間轉換為另一個 IP 地址空間,通常是將私有 IP 地址轉換為公有 IP 地址(或反之)。
NAT 的作用:
- 邏輯地址尋址:為網絡中的每臺設備分配一個唯一的邏輯地址,即 IP 地址。IP 地址用于標識設備在網絡中的位置,使得數據包能夠準確地從源設備
發送到目的設備。在 IPv4 中,IP 地址是 32 位的二進制數,通常表示為點分十進制形式(如 192.168.1.1);在 IPv6 中,IP 地址是 128 位的二進制數,采用冒分十六進制表示(如 2001:0db8:85a3:0000:0000:8a2e:0370:7334)。通過 IP 地址,網絡層能夠確定數據包的源和目的地,為路由選擇提供基礎。
- 路由選擇:IP 協議本身并不直接進行路由選擇,但它依賴路由協議(如 RIP、OSPF 等)生成的路由表來確定數據包從源到目的的最佳路徑。路由器根據數據包中的目的 IP 地址查詢路由表,選擇合適的接口將數據包轉發出去,最終實現跨網絡的通信。例如,當一個數據包從局域網中的主機發送到互聯網上的服務器時,沿途的路由器會根據 IP 地址和路由表不斷轉發數據包,直到到達目的服務器所在的網絡。
- 數據包封裝與分片:當傳輸層的數據段傳遞到網絡層時,IP 協議會將其封裝成 IP 數據包(也稱為 IP 數據報),添加 IP 首部(包含源 IP 地址、目的 IP 地址、協議類型、生存時間 TTL 等信息)。由于不同物理網絡對數據幀的最大長度(MTU,最大傳輸單元)有不同限制,如果 IP 數據包的長度超過了輸出鏈路的 MTU,IP 協議會對數據包進行分片,將其分割成多個較小的分片,每個分片都包含相應的分片信息(如分片偏移量、MF 標志等)。到達目的端后,網絡層會對分片進行重組,恢復成原來的數據包,再交給傳輸層處理。
- 劃分網絡與主機部分:通過將 IP 地址與子網掩碼進行 “邏輯與” 運算,可得到該 IP 地址所在的網絡地址(網絡號)。例如,IP 地址 192.168.1.100 與子網掩碼 255.255.255.0 進行與運算后,得到網絡地址 192.168.1.0,表明該主機屬于 192.168.1.0 網絡,主機號為 100。
- 子網劃分:子網掩碼允許將一個大的網絡劃分為多個較小的子網,每個子網成為一個獨立的廣播域,減少網絡中的廣播流量,提高網絡性能和安全性。例如,一個 C 類網絡(默認子網掩碼 255.255.255.0)可容納 254 臺主機(2?-2),若通過子網掩碼 255.255.255.128 劃分子網,則可分為 2 個子網,每個子網最多容納 126 臺主機(2?-2)。
- 判斷兩臺主機是否在同一子網:將兩臺主機的 IP 地址分別與子網掩碼進行與運算,若得到的網絡地址相同,則說明它們在同一子網,可以直接通信(無需經過路由器);否則,需要通過路由器轉發才能通信。
- 確定子網位數:默認 C 類網絡的網絡位為 24 位,子網掩碼 255.255.255.192 的二進制為 11111111.11111111.11111111.11000000,因此子網位為 2 位(26-24=2)。
- 計算子網數量:子網數量 = 2^ 子網位數 = 22=4 個。
- 計算主機位數:主機位數 = 32 - 網絡位總數 = 32-26=6 位。
- 計算每個子網的主機數量:每個子網最多容納的主機數 = 2^ 主機位數 - 2=2?-2=62 臺(減去網絡地址和廣播地址)。
- 確定每個子網的范圍:
- 子網 1:網絡地址 = 192.168.1.0(00000000),主機范圍 = 192.168.1.1-192.168.1.62,廣播地址 = 192.168.1.63(00111111)。
- 子網 2:網絡地址 = 192.168.1.64(01000000),主機范圍 = 192.168.1.65-192.168.1.126,廣播地址 = 192.168.1.127(01111111)。
- 子網 3:網絡地址 = 192.168.1.128(10000000),主機范圍 = 192.168.1.129-192.168.1.190,廣播地址 = 192.168.1.191(10111111)。
- 子網 4:網絡地址 = 192.168.1.192(11000000),主機范圍 = 192.168.1.193-192.168.1.254,廣播地址 = 192.168.1.255(11111111)。
- 按路由作用范圍分類:
- 內部網關協議(IGP):用于自治系統(AS,一個由單一機構管理的網絡集合)內部的路由選擇,如 RIP(路由信息協議)、OSPF(開放式最短路徑優先)、IS-IS(中間系統到中間系統)等。
- 外部網關協議(EGP):用于不同自治系統之間的路由選擇,目前最常用的是 BGP(邊界網關協議),如 BGP-4。
- 按路由算法分類:
- 距離矢量路由協議:路由器根據 “距離”(通常為跳數)和 “矢量”(方向)來選擇路由,通過周期性地向鄰居發送完整路由表來更新路由信息,如 RIP。
- 鏈路狀態路由協議:路由器通過交換鏈路狀態信息(如鏈路帶寬、延遲、可達性等),在本地構建整個網絡的拓撲圖,然后使用 Dijkstra 算法計算最短路徑,如 OSPF。
- 緩解 IPv4 地址短缺問題:私有 IP 地址(如 10.0.0.0/8、172.16.0.0/12、192.168.0.0/16)可在局域網中重復使用,通過 NAT 轉換為少量公有 IP 地址訪問互聯網,減少了對公有 IP 地址的需求。
- 隱藏內部網絡結構:外部網絡只能看到 NAT 設備的公有 IP 地址,無法直接獲取內部主機的私有 IP 地址,提高了內部網絡的安全性,降低了被攻擊的風險。
- 解決 IP 地址沖突:當兩個不同的局域網合并時,若存在 IP 地址沖突,可通過 NAT 將其中一個網絡的 IP 地址轉換為新的地址段,避免沖突。
- 靜態 NAT(Static NAT):將內部網絡的私有 IP 地址與公有 IP 地址進行一對一的永久映射,一個私有 IP 地址固定對應一個公有 IP 地址。適用于需要外部網絡主動訪問的內部服務器(如 Web 服務器、郵件服務器),例如將內部服務器 192.168.1.10 映射到公有 IP 202.100.1.10,外部用戶可通過 202.100.1.10 訪問該服務器。
- 動態 NAT(Dynamic NAT):將內部私有 IP 地址從一個公有 IP 地址池(包含多個公有 IP)中動態選擇一個進行映射,映射關系是臨時的,當內部主機關閉連接后,公有 IP 地址會被釋放回地址池供其他主機使用。動態 NAT 仍需要多個公有 IP 地址,只是實現了地址的動態分配,適用于內部主機數量多于公有 IP 地址但需要同時訪問互聯網的場景。
- 網絡地址端口轉換(NAPT,也稱為 PAT):最常用的 NAT 類型,通過同時轉換 IP 地址和端口號,實現多個內部私有 IP 地址共享一個或少量公有 IP 地址。例如,內部主機 192.168.1.2:1234 訪問外部服務器 203.0.113.5:80 時,NAT 設備將源地址轉換為公有 IP 202.100.1.10:5678(端口 5678 為動態分配),外部服務器的響應會根據端口映射返回給 192.168.1.2:1234。PAT 充分利用了端口資源(0-65535),幾乎可以滿足中小型網絡的所有互聯網訪問需求。