網絡設備與協議之設備篇
前言
面試時回答計算機網絡這塊的問題,很對應試者回答的內容多為講解計算機網絡的 TCP 三次握手、四次揮手,或者是 OSI 七層模型的細節闡釋。
當被問到數據包如何在網絡上進行傳輸的,比如 IP 路由、ARP 尋址、交換機與路由器的區別、私有 IP 與全局 IP 的轉換等細節,只能沉默以對。
本文將會梳理清楚數據包在網絡中由一臺主機發往另一臺主機的詳細過程,內容包括調制解調器、中繼器、網卡、交換機、路由器等網絡設備,以及 IP 協議相關技術 DNS、ARP、DHCP、NAT、ICMP等。
設備
搭建一套網絡環境要涉及各種各樣的電纜和網絡設備,既然要搞清楚數據的傳輸,那就先搞清楚數據傳輸的媒介。
如圖所示,主機A向主機B發送數據包,需要經過交換機、路由器等設備。但在物理層(OSI 模型的第 1 層),還需要調制解調器和中繼器。
1. 調制解調器
現代家庭網絡搭建寬帶時,可以看到路由器后接的調制解調器(英語:Modem),我們一般親切稱之為“貓”。
調制解調器是將計算機產生的數字信號轉換為模擬信號進行傳輸,并解調收到的模擬信號以得到數字信號的電子設備。
以前用電話線上網用的是電話調制解調器,現在都是光纖上網,用的是光纖調制解調器,即用于數字信號與光纖信號的轉換。
2. 中繼器
同調制解調器一樣工作在物理層的還有中繼器,它的作用是將電纜傳過來的電信號或光信號經由中繼器的波形調整和放大再傳給另一個電纜,簡而言之,中繼器是對減弱的信號進行放大和發送的設備。
3. 網卡
一臺計算機要想上網必備的就是網卡,而現在大多數計算機也早已內置了網卡。
網卡,又稱為網絡適配器、LAN 卡,是一塊被設計用來允許計算機在計算機網絡上進行通訊的計算機硬件。由于其擁有 MAC 地址,因此屬于 OSI 模型的第 2 層(數據鏈路層)。
我們所講的計算機的 MAC 地址或主機的 MAC 地址,實際上是網卡的 MAC 地址。
如下圖所示,Mac 電腦可以在「系統偏好設置 - 網絡 - Wi-Fi - 高級 - 硬件」查看當前計算機的 MAC 地址。
4. 交換機
換機是一種網絡設備,通過報文交換方式接收和轉發數據到目標設備。
簡而言之,交換機就是接收數據包、查看數據包的目的地址以選擇路由、將數據包轉發給下一跳路由。
需要明確,交換機不修改數據包,只負責轉發數據包。
交換機又被稱為網橋或者 2 層交換機,所謂 2 層,就是工作于數據鏈路層。這代表著,交換機在轉發數據包時,不知道也無需要知道來源主機和目的主機的 IP 地址,只需知其 MAC 地址。
交換機的工作原理:
交換機內部的 CPU 會在每個端口成功連接時,通過將 MAC 地址和端口對應,形成一張 MAC 表。
當一臺交換機安裝配置好之后,其工作過程如下:
- 交換機端口 1 收到 MAC 地址為 X 的計算機發給 MAC 地址為 Y 的計算機的數據包,交換機從而記下了 MAC 地址 X 在端口 1 。(學習)
- 如果目的地 MAC 地址 Y 不能在 MAC 表中找到時,交換機會把數據包轉發給除端口 1 外的所有數據包。(洪泛)
- MAC 地址 Y 的計算機收到該數據包,向 MAC 地址 X 發出確認包。交換機收到該包后,從而記錄下 MAC 地址 Y 所在的網段。
- 交換機向 MAC 地址 X 轉發確認包。(轉發)
- 交換機收到一個數據包,查表后發現該數據包的來源地址與目的地址屬于同一個端口,交換機將不處理該數據包。(過濾)
- 交換機內部的 MAC 地址-端口 查詢表的每條記錄采用時間戳記錄最后一次訪問的時間。早于某個閾值(用戶可配置)的記錄被清除。(老化)
5. 路由器
路由器可以連接不同的數據鏈路。例如連接兩個以太網。現在,人們在家或辦公室里連接互聯網時所使用的寬帶路由器也是路由器的一種。
路由器是在 OSI 模型的第 3 層即網絡層面上連接兩個網絡、并對分組報文進行轉發的設備。
交換機是根據物理地址(MAC地址)進行處理,參考的是 MAC 表,而路由器則是根據 IP 地址進行處理,所參考的表叫做路由控制表。
路由控制表:
發送數據包時所使用的地址是網絡層的 IP 地址。然而僅僅有 IP 地址還不足以實現將數據包發送到對端目標地址,在數據發送過程中還需要類似“指明下一個路由器或主機”的這方面信息,以便真正發往目標地址。保存這種信息的就是路由控制表。
實現 IP 通信的主機和路由器都必須持有一張這樣的表。它們也正是在這個表格的基礎上才得以進行數據包發送的。
該路由控制表的形成方式有兩種:一種是管理員手動設置,另一種是路由器與其它路由器相互交換信息時自動刷新。前者也叫靜態路由控制,而后者叫做動態路由控制。
為了讓動態路由及時刷新路由表,在網絡上互連的路由器之間必須設置好路由協議,保證正常讀取路由控制信息。
路由控制表中記錄著網絡地址與下一步應該發送至路由器的地址。在發送 IP 包時,首先要確定 IP 包首部中的目標地址,再從路由控制表中找到該地址具有相同網絡地址的記錄,根據該記錄將 IP 包轉發給相應的下一個路由器。
如果路由控制表中存在多條相同網絡地址的記錄,就選擇一個最為吻合的網絡地址。所謂最為吻合是指相同位數最多的意思。
例如 172.20.100.52 的網絡地址與 172.20/16 和 172.20.100/24 兩項都匹配。此時,應該選擇匹配度最長的 172.20.100/24 。
默認路由是指路由表中任何一個地址都能與之匹配的記錄。默認路由一般標記為 0.0.0.0/0 或 default。這里的 0.0.0.0/0 并不是指 IP 地址是 0.0.0.0,為了避免人們誤以為 0.0.0.0 是IP地址,故后綴是 /0 。