個人認為it行業從業者必須具備一點點抽象概念。所謂的vlan全稱叫做virtual local area network,翻譯過來便為虛擬區域網。從字面意思上其實我們就可以理解,vlan究竟是個什麼玩意。
那麼,如上圖所示,再結合名稱,其實我們可以很好的理解vlan是什麼。通常意義上區域網是指的某個內部網路,與網際網路之間有一道閘門——閘道器。而vlan中所指的區域網其實就是乙個二層網路,那麼想建立虛擬區域網,前提條件就是這個不是虛擬的區域網得聯通起來。一是物理上的相通,而是二層邏輯上的相通。然後,才能在這基礎之上,將原有的邏輯網路,再次進行劃分。而我們知道,網路當中的邏輯劃分無非就是通過報文實現的。
其實我認為,只需要理解我上圖所示的那樣,首先是物理層,然後是邏輯層,然後再邏輯層基礎上再次邏輯劃分,就能很好理解vlan技術的原理。
那麼,vlan如何實現呢?其實vlan技術的實現也很簡單,無非就是我上文所提到的報文。拿以介面劃分去舉例,當我們認為某些終端應該在某乙個虛擬區域網中時,我們就把它這個介面放在對應的虛擬區域網中。當終端將報文傳送過來時,介面為這個報文打上tag,這個tag表示了這個報文可以從哪些鏈路中通過,不能通過哪些鏈路,因為每一條鏈路都會標識哪些tag可以通過,哪些tag不能通過。簡而言之,tag就是用來標識報文,以至於軟體邏輯去識別tag並做出相應動作。
如上,也就知道vlan具體的實現原理了!
trunk介面&access介面
trunk介面叫做主幹道,那麼我們知道,主幹道是很多小路會和出來的,就像溪流、江河之間的關係。trunk就是江河,連線著很多溪流,但是因為汙染,很多溪流的汙水不能流到江河裡,於是便有閘,這個閘決定了哪些溪流可以流入江河,哪些不能。於是,trunk介面相當於對攜帶了tag的報文放不放行,可以放行的就放,不能放的就扔。
access介面叫做接入介面,和trunk不一樣的是,他並不是對流量進行管控,它是負責給流量標上tag的。那麼access介面為什麼要在收到報文時打上標籤,傳送報文時去掉標籤?因為access是接入介面,下連的全是終端使用者,而大部分終端的網絡卡裝置是不能識別帶有tag的報文的,當然,有的網絡卡也可以識別tag報文,但是你不能去期望終端使用者去把vlanid告訴網絡卡。
vlan技術的發展歷史
有時候,透觀乙個事物的歷史,能更好的理解。在網路誕生的早期,組網方式大多還是匯流排型網路,而且物理鏈路也是半雙工的同軸電纜(這裡並不是指只有半雙工的傳輸介質會造成後面的情況),然後通過集線器一類的裝置連線起來。那麼這樣的組網方式其實很不好,但是限制於當時的技術手段。在這樣的組網方式下,所有的終端通訊都得經過唯一的匯流排,於是咱們可以想象一下,一條單行車道,從南北各來一輛車,最終的結果會怎樣!於是我們管這種網路叫做衝突域,為了解決衝突域的問題,後來有了csma/cd技術去解決,通過監測鏈路是否空閒再去發報文!這項技術很好的解決了衝突問題,但也帶來了新的問題,那就是網路的延遲隨著裝置的增多會越來越大。說白了就是食堂只有乙個打飯視窗,隨著排隊的人越多,時間就會越久!後來人們發明了交換機,交換機和集線器一類的裝置可不一樣,集線器只是將報文做簡單的複製,而交換機可以認識報文。那咱們先看一下交換機的工作原理,簡單點說即是依據mac位址表去**資料報,但是mac位址表也不是憑空而來,甚至於說,終端使用者發起訪問,只知道對端的ip位址,不知道對端的mac位址,也是無用。於是,在發起訪問之前,終端使用者會有乙個依據ip位址獲取mac位址的動作。那麼如何獲取,很簡單,問所有人,誰是***,你家住哪?這就是我們所說的arp廣播,這個問的動作會被交換機除源埠之外所有埠全部**一遍。ok,這個時候我們想一下,假設乙個區域網中有1w臺終端使用者,那麼廣播報文會被散發到全網除源終端之外的所有終端。而且廣播報文並不止arp一種,廣播報文在二層網路中很容易被觸發。於是,一台終端使用者傳送的廣播報文可能不算什麼,但是如果成千上萬的廣播報文在網路中被不斷**,結果可想而知。這個報文**占用著交換機的**效能,鏈路頻寬,直接拉低了網路質量。於是新的問題出現了,廣播域太大會影響網路質量!!!那麼,我們有什麼好方法去隔離廣播域呢?路由器好像是一種選擇,但是路由器造假昂貴,**效能也遠不如交換機,很明顯,1w臺計算機得配備多少路由器啊?不現實,於是技術問題就需要技術手段去解決,vlan技術應運而生。
vlan就先分享到這裡,以後想到再來補充,其它型別得vlan再單獨說。另外,其實vlan得設計思想也為三層網路得快速**提供了思路,咱們以後再聊。
寫不下去了,難得寫這麼多啊!
this的一點見解
執行環境 execution context,有時也成為上下文,有時也稱為 環境 執行環境定義了變數和函式有權訪問那些資料,決定各自的行為。全域性執行環境是最外圍的執行環境。全域性執行環境一直都存在。宿主環境不同執行環境也不同。每乙個環境都有乙個執行環境。當執行流進入乙個函式時,函式的環境就會被推入...
THIS MODULE的一點見解
include module license gpl static int init hellow init void static void exit hellow exit void module init hellow init module exit hellow exit 在我們執行ins...
字元編碼的一點見解
utf 8 型別為可變長型別,但是utf 8和unicode轉換無需查表,他們的有用資訊部分是完全一致的,轉換規則如下 utf 8 0000 007f 0 x 0080 07ff 110 xx 10 0800 ffff 1110 x 10 10 可見它是根據數值的大小來做長度區分的 1.小於7f 1...