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