写给非网工的CCNA教程(5)应用最为广泛的网络--局域网LAN
? ? 本系列的文章主要是講解網絡基礎,CCNA嘛。在這之前,我們討論了IP地址、MAC地址,也簡單介紹了IP協議、ARP協議、ICMP協議,并且通過ping命令后面的技術原理,提到的了路由表、ARP表。
? ?但是我們都只是討論了兩臺主機通過網線直連的方式,現實中可是通過網絡來連接通信的主機。這網絡是個抽象的概念,對應的物理設備可是多種多樣,比如交換機、路由器、防火墻、負載均衡器。而網絡類型也是豐富多彩,比如我們最最常見的以太網、wifi,還有我們移動通信的2G/3G/4G/5G,當然還有其他的,就不一一舉例了。
? ? 不過這么多技術,我們得掌握最基礎的技術--數據包交換技術,而這涉及到的網絡設備就是我們平時所說的交換機,更嚴格地說,應該是以太網交換機。難道還有其他交換機么?是的,比如用于存儲設備網絡的FC交換機。
? ? 接下來開始說我們的數據包交換技術。
? ?上篇文檔中,我們分析了PC-A和PC-B通過網線直連的通信原理,但現實情況是很少出現這兩者直連。現實中的設備都是通過網絡來連接的。
? ? 網絡,有LAN和WAN之分,即局域網,廣域網。當然我們該系列文章,都是講的LAN。LAN到底是什么呢?LAN其實就是一臺交換機或者一組級聯的交換機組成的局域網,如下圖所示。
? ? 這里的交換機都是指以太網交換機,沒有特殊說明,提到的交換機都是指以太網交換機,誰讓它使用最廣泛呢。當然了,以太網交換機可是有二層和三層之分的,沒有特殊說明,都是指二層。
?
1 LAN連接實現同網段設備的通信
1.1 LAN的拓撲圖
? ? PC-A和PC-B連接二層交換機SW-A上,PC-C連接在二層交換機SW-B上,PC-D連接在二層交換機SW-C上。SW-A、SW-B和SW-C級聯,PC-A、PC-B、PC-C和PC-D的IP地址都是在同一個網段。
? ? 各個設備IP地址和MAC地址如下表所示。
| 設備 | IP地址 | MAC地址 |
| PC-A | 192.168.10.1 /24 | 1111.1111.1111 |
| PC-B | 192.168.10.2 /24 | 2222.2222.2222 |
| PC-C | 192.168.10.3 /24 | 3333.3333.3333 |
| PC-D | 192.168.10.4 /24 | 4444.4444.4444 |
1.2 LAN連接的同網段設備通信原理? ??
? ? 在前文中,我們知道一臺設備要發數據給另一臺設備,會根據目標設備的IP地址,查找本地的路由表,找到網關,如果網關為On-link,則說明目標設備跟自己在同一個網段。
? ? 接下來就會根據目標設備的IP地址,去找ARP表中目標設備對應的MAC地址,如果找不到,就ARP廣播,等待目標設備回復。最后根據以目標設備的MAC地址為目的MAC,IP地址為目的IP地址封裝報文,發送出去。
? ? 前文中,源設備和目標設備是通過網線直連的,本文中兩者之間是通過二層交換機互聯的,不過源設備發送數據的相關機制不會變,網絡的問題不可能影響到終端設備的處理機制。
? ? 因此我們只需要搞清楚,二層交換機收到源設備的數據,要怎么轉發到目標設備,就掌握了LAN連接的同網段設備是如何通信的。
?
2 交換機工作原理
? ? ? 二層交換機要轉發數據到目標設備,有兩個條件:
? ? (1)目標設備連接在哪個端口,要不然通過哪個端口把數據發送出去呢?
? ? (2)轉發數據的依據,即根據什么來轉發數據呢?
2.1 MAC表
? ? 在交換機內部維持著一個MAC地址轉發表(簡稱MAC表),記錄著MAC地址與端口的映射關系。我們知道MAC代表了一個設備,那么據此可知一個MAC表現代表了一臺設備連到此交換機的哪個端口。
? ? 那MAC表里面的表現是怎么形成的? 其實任何一個數據進入到交換機后,交換機會記錄這數據是從哪個端口進來的,并且解封裝數據得到數據的源MAC地址。然后把數據的源MAC地址和來源端口寫到MAC表,同時啟用一個定時器,,表明這條記錄在MAC表里面持續時間,到期后自動清除。所以說交換機中的MAC表,是通過MAC學習的方式形成的。
? ? 我們舉個例子,PC-A要通過SW-A發送數據到PC-B,由于A只有B的IP地址,沒有MAC地址,于是發送ARP廣播。
? ? SW-A收到此ARP廣播后,會把數據的來源端口--Gi0/1和數據的源MAC--A的MAC地址,寫到MAC表,如下所示。
SW-A#show mac address-tableMac Address Table -------------------------------------------Mac Address Type Ports ----------- -------- ----- 1111.1111.1111 DYNAMIC Gi0/12.2 交換機數據轉發原理
? ? 當數據進入交換機后, 交換機解封裝數據,得到目的MAC地址,
? ?(1)如果目的MAC地址是廣播地址,?就從除數據來源端口以外的所有端口轉發出去, 即廣播;
? ?(2)如果目的MAC地址是單播地址,就去查找MAC表:
? ? ? ? ? ? 如果找到對應的表項, 就從表項中的端口把數據轉發出去;
? ? ? ? ? ? 如果沒有找到, 就從除數據進來的端口以外的所有端口轉發出去,即廣播;
? ?(3)如果目的MAC地址是組播地址,是根據組播地址表去轉發的, 而不是MAC表,本文不做過多討論。
? ? 接上面的例子,PC-A要通過SW-A發送數據到PC-B。
? ? SW-A把A對應的MAC表項寫到MAC表以后,根據ARP廣播包的目的MAC是廣播地址,于是把它從除Gi0/1以外的所有端口轉發出去,本例中就是從Gi0/2和Gi0/21轉發出去。
? ? 連到SW-A上的Gi0/2口的PC-B,會回復此數據。SW-A收到PC-B的回復后,會把數據的來源端口--Gi0/2和數據的源MAC--B的MAC地址,寫到MAC表,如下所示。
SW-A#show mac address-tableMac Address Table -------------------------------------------Mac Address Type Ports ----------- -------- ----- 1111.1111.1111 DYNAMIC Gi0/1 2222.2222.2222 DYNAMIC Gi0/22.3 交換到無限
(1)SW-B如何處理此ARP廣播
? ? 繼續上面的例子,SW-A除了把PC-A的ARP廣播從Gi0/2口轉發出去外,也會從Gi0/21口轉發出去。
? ? 當SW-B從Gi0/21口收到此ARP廣播,同樣的道理SW-B會把數據來源端口--Gi0/21和源MAC--A的MAC地址寫到自己的MAC表中,如下圖所示。
SW-B#show mac address-tableMac Address Table -------------------------------------------Mac Address Type Ports ----------- -------- ----- 1111.1111.1111 DYNAMIC Gi0/22? ? 然后SW-B廣播此數據,本例中會從Gi0/1和Gi0/22口轉發出去。連到Gi0/1口的PC-C收到數據后,解封裝ARP廣播幀,發現不是詢問自己,于是丟棄。
(2)SW-C如何處理此ARP廣播
? ? 連到Gi0/22口的SW-C收到此廣播后,也會把數據來源端口--Gi0/22和源MAC--A的MAC地址寫到自己的MAC表中,如下圖所示。
SW-C#show mac address-tableMac Address Table -------------------------------------------Mac Address Type Ports ----------- -------- ----- 1111.1111.1111 DYNAMIC Gi0/21? ? 然后SW-C也會廣播此書,本例中會從Gi0/1轉發出去。連到Gi0/1口的PC-D收到數據后,解封裝ARP廣播幀,發現不是詢問自己,于是丟棄。
? ? 由于SW-C后,沒有接其他交換機,至此廣播結束,MAC學習也完成。
(3)交換到無限
? ? 通過這一次數據的發送(不一定非得是廣播啊),SW-A、SW-B和SW-C都學習到了PC-A接到自己的哪個端口,不一定非得PC-A與自己直連,從而在整個LAN內部的交換機的MAC表里面都有PC-A的MAC表項。
? ? 同樣的如果PC-B、PC-C、PC-D只要有數據發送,經過哪臺交換機,哪臺交換機就會在MAC表項中,記錄B對應的表項。經過多次數據的交互,整個LAN內部所有交換機都有每個終端的MAC表項。
? ? 這些設備可以在LAN內部任意通信,無論接到哪臺交換機,無論交換機數量多與少,這也就是我們通常所說的交換到無限。
2.4 LAN的不足
? ? 從上面的分析中,不難看出只要有個廣播請求出現,會導致整個LAN內部所有的交換機都會廣播此請求,這無疑浪費了交換機的帶寬。
? ? 另外,接到交換機上的所有設備都會收到此廣播,即使它不是此廣播的目標者,這無疑是對非目標設備的一種攻擊。
? ? 因此在生產環境中,我們很少直接使用LAN,而是在LAN上啟用VLAN,具體請看下一篇。當然了,有些小的企業,也會直接使用LAN,比如幾十號人的公司,兩臺48口交換機搞定,不怕廣播。
2.5 考察交換機性能的好壞
? ? 從上可知,整個LAN內部的每一臺交換機都會記錄LAN內部所有終端設備的MAC表項,如果終端設備數量很多很多,交換機里面的MAC表項就會劇增,所以說支持最大MAC表項的多少,成為衡量一臺交換機性能的很重要的一個指標。
? ? 當然了,MAC表項的增多,也會導致查表時的速度快慢,這也是很重要的一個指標。其他的就不多說了,畢竟本文是講原理,而不是產品選型。
總結
以上是生活随笔為你收集整理的写给非网工的CCNA教程(5)应用最为广泛的网络--局域网LAN的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 前端学习(642):字面量
- 下一篇: 前端学习(1272):Vue前端路由