前言
在上一篇我們聊到了簡單的了解到了計算機的通信方式,并且都是處于同一個網段下的通信,簡要理解(大局觀)計算機之間的通信方式【同一網段】(直接相連,同軸電纜,集線器,網橋,交換機),今天我們聊聊路由器和MAC地址IP地址的基礎知識
文章目錄
- 前言
- 計算機之間連接方式---路由器連接
- MAC地址
- IP地址
- IP地址的分類
- A類地址
- B類地址
- C類地址
- D和E類地址
- 子網掩碼的CIDN表示方法
- 為什么需要子網劃分
- 什么是子網劃分
- 等長子網劃分——劃分兩個子網
- 等長子網劃分——劃分4個網段
- 網段計算的注意事項
計算機之間連接方式—路由器連接
我們知道如果全世界都用交換機連接網路的話,會導致廣播風暴,即,當在由交換機連接網路的時候,兩臺計算機通信,首先會發ARP廣播得到對方的MAC地址,于此同時交換機就會記錄經過交換機的資料包傳過的MAC,全世界那么多電腦,這樣會導致要詢問全世界的電腦MAC地址,很明顯占用網路資源非常嚴重,所以不適用都是交換機來連接全世界的計算機,再說了,交換機連接是屬于同一網段的網路,這樣也會導致IP地址肯定不夠用的,
總結一下:同軸電纜,集線器,網橋,交換機連接的設備都是處于同一個網段,這也意味著他們連接的設備處于同一個廣播域(一個設備發ARP廣播包,全部連接在同一個網段都可以收到;
網橋和交換機相比集線器同軸電纜來說,可以一定程度的隔絕沖突域,
所以我們引入了一個更實用的路由器,它所連接的網路是處于不同網段的網路,能夠使得資料包在不同網段之間轉換資料,

看橙色的大筐筐和紫色大筐筐,中間有個路由器,橙色的大筐筐就是192.168.1.0網段,紫色大筐筐是192.168.2.0網段,
在有路由器之后,想給對方發送資料時候,就不是直接發送ARP廣播包詢問對方的MAC地址了,而是
先判斷對方計算機的IP地址是否和原IP地址處于同一個網段:
處于同一個網段:就發ARP廣播詢問對方MAC地址;
處于不同網段:就通過路由器經行轉發資料包(此時也會發ARP廣播包,只不過是獲取路由器網關的MAC地址);
那如何通過路由器轉發資料包呢?其實就是路由器的網關起作用,
網關這個相當于是路由器的介面,類似路由器眾多IP地址中的一個,網關要和它相連的設備處于同一個網段,并且,與路由器相連的計算機需要給他們配置默認網關地址,默認網關就是經過路由器網關(介面)的IP地址,才可以經過這個對應的網關,
比如下圖:路由器有兩個網關,每個網關都只能通過和網關IP處于同一個網段的資料包,
而對于左邊的計算機2計算機3都需要設定默認網關:192.168.3.1,右邊的計算機4和計算機5也需要設定默認網關192.168.4.1;這樣才可以經過路由器網關,
一般網關的主機號都是設定位1,當然設定其他的號也行,只是大家習慣規定而以,
路由器可以隔絕廣播域:即假如計算機2給同一網段的計算機3發送ARP廣播包時候,并不會經過路由器轉發到其他網段去,當路由器接收到這個ARP廣播包時候,發現不是詢問路由器的MAC地址,那么路由器就會丟棄資料包,隔絕兩下圖左右兩邊的廣播域,

在路由器中,連接不同網段的資料,是通過路由器的網關來幫助轉發的,比如假如上圖計算機2和計算機5通信:
(忽略了交換機記錄MAC地址的程序,這里主要關注是路由器不同網段的資料發送程序)
-
首先判斷不處于同一個網段,所以要路由器轉發資料,由于路由器網關1的地址和計算機2處于同一個網段,所以計算機2首先會發一個ARP廣播包,為了獲取網關1的MAC地址;
-
然后就可以經過路由器,路由器發現這個資料包是給計算機5,然后就轉發給網關2,轉發給網關2的原因是因為計算機5和網關2處于同一個網段;
-
再由于還是不知道計算機5的MAC地址,所以網關2會發一個ARP廣播包,詢問得到計算機5的MAC地址后,就可以往計算機5發送資料了;
-
最后于此同時,計算機5也會回傳一個回應包給計算機2,
假如有路由器,是處于同一個網段的轉發資料包呢?
比如上圖的計算機2和計算機3通信,那么就是簡單的同一個局域網通信了:
- 首先計算機2而判斷出是處于同一個網段,計算機2就會發廣播包詢問計算機3的MAC地址;
- 此時經過交換機發送給計算機3和路由器,路由器由于發現不是要自己的MAC地址,那么就丟棄,計算機3發現是需要自己的MAC地址就接收;
- 于此同時計算機3就回傳回應包,告訴計算機2MAC地址是它,此時,經過交換機并不會再次廣播給路由器,因為交換機有記憶每個埠MAC地址功能,能夠準確精確給計算機2發回去回應資料包,
- 此時計算機2就可根據MAC和IP地址給計算機3發送資料包了,
現在我們再思考多一個場景:我們知道路由器是連接不同網段的網路的,那我假如路由器連接相同的網段,那資料包會發送過去嗎?
答案是不會的,因為資料包發送的時候,會判斷對方的IP地址是否和自己處于同一個網段,假如路由器相連接同一個網段的話,那就發一個ARP廣播,但是我們知道路由器是有網關地址的,你要經過路由器相連的的另一臺設備,那么先經過路由器,路由器的網關,那么資料包就會直接發送給網關了,路由器網關一看資料包,不是詢問自己的MAC地址,那就丟棄啦,都不可能通過路由器轉發到另一個設備中,
MAC地址
首先MAC地址是固化在網卡中的,每個MAC地址都是6個位元組(48個bit),
MAC地址分為兩個部分:第一個部分是組織唯一識別符號;第二個部分是網路介面識別符號,
MAC地址是全球唯一的,由IEEE802標準會規定,標準會給廠家分配前三個位元組,即MAC地址組織唯一識別符號,后三個位元組是廠家自家分配,
查詢廠家的MAC地址前三個位元組的網址:http://standards-oui.ieee.org/oui/oui.txt
我截個圖給你們看看
也可以查看自家的MAC地址,如在cmd敲命令:ipconfig /all

不同作業系統的MAC地址可能表現得形式會有不一樣,

特殊的MAC地址:
當48bit,即6個位元組都是1的時候,表示位廣播地址,即ARP廣播包MAC地址,
由十六進制表示就是全是FF FF FF FF FF FF,
所以以后我們看到一些資料包,都是全1的,或者十六進制表示全F的MAC地址,要反應出這是廣播資料包,
MAC地址的獲取:當我們不知道對方的MAC地址時候,就會發一個ARP廣播包,獲取到對方的MAC地址時候,就會快取對應的IP和MAC地址之間的映射(即對應關系),這就是ARP快取機制,
IP地址
IP地址,互聯網每一臺計算機都有IP地址
IPV4是32位的IP地址,2019年11月25日已經使用完了;
IPV6是32位的IP地址,目前使用的是IPV6的地址,有生之年都夠用,
但是下面我說的都是IPV4,默認條件下,
下圖位IP地址的表現形式

IP地址的組成:IP地址是由兩部分組成,一部分是網路標識,另一部分主機標識,
那如何判斷一個IP地址的網路標識和主機標識部分?
通過子網掩碼結合IP地址去判斷,子網掩碼前面bit位全是1表示對應IP地址部分為網路標識,全為0對應IP地址表示為主機標識,
所以當我們說IP地址時候,是隱藏了IP地址對應的子網掩碼的,只有配合了子網掩碼才可以判斷出一個IP地址的網路標識和主機標識的位置,
而我們通常說的處于統一網段的設備,即處于同一個網路標識的IP地址,
那么網段是如何計算的呢?
網段 = IP地址 & 子網掩碼,即IP地址與子網掩碼按位與,

子網掩碼的主要作用就是用來計算網段的,判斷多個IP地址是否處于同一個網段,它的作用就很重要;于此同時還是可以用來判斷IP地址的網路標識和主機標識,
對于一個IP地址的網路標識可以用來判斷IP地址處于哪一個網段;而對于主機標識,則表示處于這個網段上可以有多數臺主機可以使用這個網段的IP地址,
比如上圖的網段192.168.1.0,我們知道網路標識是192.168.1,而主機標識位有8個bit 即可以表示的資料范圍是 0 ~ 28 - 1 = 0 ~ 255; 即有255 - 0 + 1 = 256 個主機號,
但是這0 ~ 255資料范圍內,要扣去主機位全0,和主機位全1的,因為主機位全0的IP地址,表示網段的IP地址,主機位全1的IP地址,表示這個網段的廣播包IP地址,所以這個192.168.1.0的網段可以有256 - 2 = 254臺設備使用,
要理解這里的主機位全0,全1,這都是對二進制來說的,后面講到子網劃分和超網時候,可能以10進制形式書寫的IP地址上對于IP地址后8位bit轉換10進制寫的時候,不都是0,也可能表示是網段的IP,或者廣播包IP哦,
對比一下MAC地址全為1的廣播包和處于某一個網段IP地址主機位全是1的廣播包:
MAC地址全為1的廣播包是在回應時候,只會得到目標IP地址的回應;
而在某一個網段下,主機位全是1的IP地址廣播包,回傳回應的是,處于同一網段的回應都會回傳;
IP地址的分類

只有A類B類C類的IP才可以分配給主機使用;
以后對于一個IP地址,我們至少可以得到一個資訊,通過IP地址的第一部分的資料判斷它屬于哪類的地址,
A類地址

- A類地址,前8bit為網路部分,后24bit為主機部分;那子網掩碼自然而然就知道是:255.0.0.0網路部分第一位為0;
- 所以我們知道網路部分可以表示的范圍是 0 ~ 27 - 1 = 0 ~ 127;對于A類地址來說,網路部分還有一定的限定,網路部分全為0(8bit都為0)的網段不可以用,并且網路部分為127的網段作為保留網段,所以
對于A類地址來說:網路部分的表示網段的適用范圍是1~126;- 對于主機部分,由于又24bit,分為3個位元組,每個位元組的范圍是0~28-1 = 0~255;所以每個位元組的資料個數又256,有3個位元組,所以對于主機部分:能夠表示主機的數量有256256256臺,但是,由于主機部分也有限定:全0和全1不能給主機分配,所以
最終A類地址,對于一個網段來說,主機數最大的容量是256*256*256-2臺
所以當我們看到一個IP地址時候,至少需要有個反應,知道它是哪一類的地址,
比如:123.123.232.1,看前面的8為二進制,也就是第一部分,顯示的是123,屬于1~126的A類地址范圍呢,所以說這是一個A類網路的IP地址
B類地址

B類地址,網路部分為16bit,主機部分為16bit,所以子網掩碼為:255.255.0.0;網路部分是以10開頭,占兩個bit;
所以說網路部分的最小值是:10 000000 00000000;轉化為十進制 128.0;
網路部分的最大值是:10 111111 11111111;轉化為十進制 191.255;
我們這就可以知道第1部分的資料范圍是128~191;第2部分的資料范圍是0 ~ 255;
那么主機ID,16個bit,分為兩部分,對于B類地址的某一網段來說,主機最大數為256*256-2臺;
雖然我們知道B類地址的網路部分是16個bit,但是整個IP地址(32位)區分位4個部分時候,網路部分就占了兩個部分,但是我們可以根據第一部分的資料,判斷IP地址屬于哪一類的地址,
比如:129.124.123.1的IP地址,很明顯看出這IP地址為B類地址,因為129屬于B類地址的第一部分資料范圍:128 ~ 191;
C類地址

D和E類地址

子網掩碼的CIDN表示方法

通過這個方式,我們就可以一下子知道IP地址和子網掩碼與此同時得到網段;
為什么需要子網劃分
假如有個場景需求,我們要求分配200臺計算機的IP地址,但是我希望這來200臺計算機處于同一網段,很好想到,我們可以分配給它們200臺計算機的C類IP地址,因為一個網段下的C類IP地址可以容納主機最大數量是254臺,比如分配:192.168.1.0/24網段下的,那么對于這個C類IP地址的網段:192.168.1.0/24使用200臺后,還剩下54個此網段的IP地址可以用,這其實算是一個合理利用了,
假如我要分配500臺計算機的IP地址處于同一網段下的呢?你發現對于C類地址來說,是不夠用的,因為C類地址的網段最大容納也是254臺;那你可能會想,為了處于同一網段下,必須分配容量更大的IP地址才可以,你就想到B類地址,因為對于某一網段的B類地址可以容納256*256 -2 = 65534 臺主機,比如:128.100.0.0/16網段,但是當你分配500臺計算機給128.100.0.0/16網段的B類地址時候,還剩下65304空閑的該網段的B類IP地址,此時你意識到,這是極大的浪費,
所以為了能夠合理的利用IP地址的資源,我們需要對IP地址進行子網劃分,
什么是子網劃分
子網劃分,我的理解就是把一個大的網段,劃分為多個不同的小的網段,這多個不同的小網段就是大網段的子網;這樣就可以合理利用該網段的IP地址,合理分配計算機的數量了,
至于如何劃分多個不同的網段,也就是說,如何子網劃分呢?
子網劃分的方法就是:借助IP地址的主機位作為子網位,劃分多個子網
而對于子網劃分又分為兩大類:
- 等長子網劃分:將一個網段,分為多個子網,每個子網的可用IP地址數量是一樣的,
比如:對于 192.168.100.0/24這個網段,可以用IP地址數量為254,我將它劃分為2個不同的子網,這2個子網的可用IP地址是一樣的,每個子網的可用IP地址數量都是127個,這就是等長子網劃分;- 變長子網劃分:劃分一個網段時候,子網的可用IP地址數量是不一樣,
比如:對于 192.168.100.0/24這個網段,我把它劃分為3個子網,分別給這三個子網分配的可用IP地址數量不一致就行了,
等長子網劃分——劃分兩個子網
我們以C類地址192.186.0.0/24這個網段來說明這個問題,劃分兩個子網的程序,



等長子網劃分——劃分4個網段


其實很容易發現規律的:劃分n段就用主機位的范圍數除以 n;
比如這個C類地址,主機位8個bit,資料范圍是0~255;有256個數字;劃分4段;256 / 4 = 64;
然后加個輔助的數軸,分4個64的資料在數軸畫起來來,然后在每一段排除掉全是 0 和全是 1的,剩下的每一段就表示該網段的IP地址可用數量;
其實分類還有變長子網劃分,還有超網等概念,其實我不打算寫,這些只要自己有了等長子網劃分的基礎,可以百度,或者看書去了解,如果你感興趣的話,
網段計算的注意事項
反正明白兩個點:對于一個IP地址:IP地址第一部分可以知道它屬于什么型別的IP地址,IP地址加上子網掩碼按位與可以算出網段,不要看到同一IP地址的十進制數的子網掩碼個數相同,還有十進制的IP表現形式相同,就判斷它們屬于用以網段,還要結合IP地址和子網掩碼的按位于去計算

這個就是C類地址,你以為前面24個位的IP地址形式一樣就是同一網段了嘛?當然不是,網段是需要結合子網掩碼算的,經過計算很明顯上面的網段是不一樣的,
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/302485.html
標籤:其他
