說起這個就不得不祭奠和緬懷下我的大學生活和我的網(wǎng)絡工程專業(yè),給不了解這個專業(yè)的人解釋下哈,網(wǎng)絡工程專業(yè)真的不只是接個網(wǎng)線和重啟電腦的事情,文前三道香。
言歸正傳,首先介紹下概念,局域網(wǎng)是指在某一區(qū)域內(nèi)由多臺計算機互聯(lián)成的計算機組。
隨著計算機技術(shù)的普及,現(xiàn)在搭建一個局域網(wǎng)的成本也越來越低,操作也越來越簡單,從兩臺機器之間的網(wǎng)線直連,到后面使用HUB集線器,再到家庭中可見的路由器等,在這十幾年中,咱們的網(wǎng)絡技術(shù)可以說經(jīng)歷了翻天覆地的變化。下面介紹下這幾種方式操作方法和背后的基本原理
使用路由器搭建局域網(wǎng),是建立在第三層上的,我們先從第一層物理層開始說明。
- 網(wǎng)線直連
這種方式是找一根網(wǎng)線,兩個頭,分別接在兩個電腦的網(wǎng)卡上,進行聯(lián)機。不過這樣的話,在以前應該是通不了的,需要在水晶頭的做交叉線發(fā),普通的接水晶頭的方式是有個口訣“橙白,橙, 綠白,藍,藍白,綠,棕白,棕”,分別按照順序給他們由1~8進行編號,所謂的交叉線法就是1-3,2-6交叉接法。
原因是水晶頭的1,2和3,6腳,分別承擔著收發(fā)信號的作用,將1,3和2,6互換下位置就可以實現(xiàn)從一端到另一端的收發(fā)信號了(現(xiàn)在的計算機貌似是不用了)。當然,兩臺設(shè)備的IP也是需要配置到一個網(wǎng)段中,否則也是接不通的。(需要注意的還是那個問題:網(wǎng)絡可以沒有上層,但是必須要有下層。也就是說兩臺電腦之間的網(wǎng)絡也必須要MAC層,進行層層封裝到網(wǎng)絡層)
2.HUB集線器
據(jù)我們大學老師說,他們年輕的時候,交換機還是很貴的,不是隨隨便便就買得起的,當宿舍中有兩臺以上計算機需要聯(lián)機打CS的時候,就會考慮使用集線器這種設(shè)備。這種設(shè)備與交換機相比較而言,沒有邏輯處理功能,只在物理層進行工作,它將所有收到的消息,都會廣播到其他端口上。
實際上這回產(chǎn)生很大的麻煩,例如,我本來想面向某個人發(fā)出的一個消息,我怎么才能知道我要發(fā)送的那個人是哪臺設(shè)備?大家一起發(fā),那么該誰先發(fā)誰后發(fā)呢?
顯然,這個問題不能直接從物理層進行解決。這個問題也就自然而然的上省到了數(shù)據(jù)鏈路層,也就是我們平時常說的MAC層。百度了下,MAC的全稱為 Medium Access Control(媒體訪問控制),其實就是在控制往媒體發(fā)送數(shù)據(jù)的時候,誰先發(fā)誰后發(fā)。其實這個里面還有個概念,叫做多路訪問。舉個例子了解下多路訪問,現(xiàn)在的以太網(wǎng),采用的多路訪問策略是:有消息就發(fā)出去,如果發(fā)現(xiàn)現(xiàn)在網(wǎng)絡堵塞較為嚴重的時候,就回去,等到了不堵的時候在發(fā)出去,咱們平時說的隨機接入?yún)f(xié)議就是指這種方式。多路訪問還有其他的協(xié)議,例如輪流協(xié)議,信道劃分等,有興趣的同學可以去了解下。
那么該如何知道消息發(fā)給誰呢?這里就要用到我們的老朋友MAC地址了(要注意的是MAC地址是網(wǎng)卡的唯一地址,是個鏈路層地址),為了幫助理解,以下是一個網(wǎng)絡包的格式圖例說明。

目標MAC地址和源MAC地址好理解,當源設(shè)備讀取緩存知道目標設(shè)備的時候,可直接將MAC放入,當不知道的時候,會使用ARP協(xié)議詢問MAC地址,緩存并放入。類型的話實際上大部分是IP數(shù)據(jù)包(里面包含著TCP,HTTP什么的,都是里層封裝的事情了)。對于以太網(wǎng)最后面的CRC(循環(huán)冗余檢測),通過XOR異或的算法,來計算出整包是否在發(fā)送過程中出現(xiàn)錯誤。
3.交換機
當設(shè)備較少的時候使用集線器還是可以的,但是當設(shè)備多了的時候,由于集線器是用廣播的方式的,那樣會造成很大的浪費,和很大概率上的沖突,是不可取的了,所以應該使用另一種設(shè)備了,就是交換機(可以記錄MAC地址,那樣就不會去轉(zhuǎn)發(fā)其他不是的端口了)。
實際上交換機也不是上來就知道每臺設(shè)備的,他有個記錄的過程,也即是說,當交換機沒有緩存這個的數(shù)據(jù)的時候,他會進行廣播,得到了目標之后,會進行記錄,等到下層再向那里發(fā)送的時候,便會直接發(fā)送,不會再進行廣播詢問了,這個記錄的對應表叫做轉(zhuǎn)發(fā)表。需要注意的是,這個是一個臨時的,是存在過期時間的,因為每臺機器的IP地址會變,所在端口也可能會變。
4.更大的局域網(wǎng),多個交換機
說到這里不得不說一個復雜到令人發(fā)指的情景,就是辦公環(huán)境。公司在設(shè)備很多的時候,一臺交換機明顯是不夠用的,就會涉及到多臺交換機,組成一個相對復雜的拓撲結(jié)構(gòu),每臺交換機的工作方式不會因為拓撲網(wǎng)內(nèi)有多臺而造成改變。
那樣我們就會遇到一個嚴峻的問題。就是在局域網(wǎng)中做ARP廣播時,交換機會講一個端口收到的包轉(zhuǎn)發(fā),當轉(zhuǎn)發(fā)到另一個交換機的時候,同理另一個交換機也會全部轉(zhuǎn)發(fā)。如果期間存在一個環(huán)路的話,數(shù)據(jù)就會被循環(huán)廣播轉(zhuǎn)發(fā),就形成了廣播風暴,導致帶寬被占滿,解析協(xié)議的硬件過載。
我們該如何破除環(huán)路呢?我們需要用到的是STP協(xié)議。在數(shù)據(jù)結(jié)構(gòu)中,我們將又換的叫做圖,沒有環(huán)的叫做樹,實際上這個協(xié)議就是為我們找到最小生成樹。
STP具體一些介紹可參看:
https://blog.csdn.net/simple_jd/article/details/73916725
https://blog.csdn.net/luoshixian099/article/details/51908175
如何解決廣播問題和敏感數(shù)據(jù)安全問題呢?
公司有很多部門,但是部門與部門之間的某些資料應該是不共享的,例如人員薪資檔案應該都是在人事手中保存著,但是當人事要將資料部門內(nèi)發(fā)送的時候,懂技術(shù)的人,可以通過抓包的方式去獲取到這個內(nèi)容,這是一個較為敏感的安全問題。
一般我們會采用兩種方法:
物理隔離:每個部門有一臺單獨的交換機,配置單獨的子網(wǎng),部門與部門之間的溝通靠路由器。這是種簡單的處理方案,但是會遇到問題,例如我某個部門有3個人,另一個部門有30個人,我都需要為其部署相應網(wǎng)段,那樣的話,會有挺大的浪費,要是部門人更多,有回導致可能交換機口不夠用。
虛擬隔離:也就是我們常說的VLAN,虛擬局域網(wǎng)。實際上也就是在二層頭里面加一個TAG,進行標注一個12位的VLAN ID。只有相同VLAN的包才能互相轉(zhuǎn)發(fā),不同的VLAN的包是相互不可見的。而且對于每個VLAN的口都是可以設(shè)置的,這十分的靈活。注意的是必須要交換機支持VLAN才可以采用這種方式,交換機間連接要連載Trunk口。
總結(jié)下:
1.MAC是解決多路訪問問題的
2.交換機最開始不知道目標MAC的時候,會通過ARP方式取得目標MAC地址,然后緩存一段時間,對應表叫做轉(zhuǎn)發(fā)表。知道的話就不會廣播了。
3.CRC是檢測發(fā)送中間是否發(fā)生錯誤的。
4.廣播風暴是由于交換機環(huán)路導致的,解決需要用到STP協(xié)議。
5.交換機間的網(wǎng)絡隔離有物理隔離和虛擬隔離兩種方式。