關於子網掩碼和那些亂七八糟的地址

關於子網掩碼和那些亂七八糟的地址

做另一部分的筆記的時候,發現當時學這部分知識的時候不走心,衝着應試學的只是,也就隨着應試結束而湮滅了。。。
下面是沒有經過整理的亂七八糟的筆記,記錄了在查閱這部分知識的時候找到的資料。

各種地址的區別

子網地址包括網絡地址,主機地址和廣播地址。子網掩碼是用來區分網絡地址和主機地址的。
舉個例子來說,子網192.168.1.0,子網掩碼是255.255.255.0。
網絡地址:192.168.1.0,該地址用在路由器的路由表中;
主機地址:192.168.1.1到192.168.1.254,用來識別不同的主機;
廣播地址:192.168.1.255,用於在該網段的所有主機設備發送報文。
再來說掩碼:255用二進制表示是8個1,11111111,3個255用二進制表示是24個1,對應IP地址的網絡地址部分:192.168.1,這個部分(前24位,網絡號)對所有在這個網段的主機都是一樣的,不同主機變化的是後8位(主機號)
掩碼最後一個0對應二進制的8個0,不同主機該部分是不同的,在該網段對應1~254。
IP地址與掩碼通過二進制“與”運算來得到IP地址的網絡部分和主機部分。

IP1:192.168.26.129 Mask1;255.255.255.0=>網絡地址:192.168.26.0/24
IP2:192.168.26.3 Mask2:255.255.255.224=>網絡地址:192.168.26.3/27
192.168.26.129認爲192.168.26.3與自己在同一網段。
192.168.26.3不認爲192.168.26.129與自己在同一網段。
當然,也可能mask1和mask2下ip1,ip2都在同一個子網塊
我們說這些臺計算機在同一個網段,就是說他們有相同的掩碼(子網掩碼)在同一個網段的計算機無須路由,通過二層交換就可以通信了。

IP1 IP2
Mask1 位於第一個子網塊(0~255) 位於第一個子網塊(0~255)
Mask2 位於第五個子網塊(128~159) 位於第一個子網塊(0~31)
IP1 IP2
Mask1 192.168.26.0 192.168.26.0 同一網段
Mask2 192.168.128.0 192.168.26.0 不同網段

/24:255.255.255.0,相當於沒有劃分子網
/27:255.255.255.224,劃分27-24=3,即23=82^3=8個子網,每個子網有252^5個ip地址;
/28:255.255.255.239,劃分16個子網,每個子網有16個ip地址(由此也可以反推mask最後一個字段爲256-16=240)
/越大,說明主機號前面的1越多,也就是劃分的子網越多

Tip:第一個表格好像做錯了?

關於是否在同一網段與能否通信

論述1:

掩碼不同就不屬於同一網段 如果還能通信 只能靠路由,當然也可以修改掩碼掩碼不同 就分屬於不同網段
不同網段之間的通訊 可以通過劃分VLAN 或者做動靜態路由都可以,
還有一種情況是你的路由器是自動獲取IP地址,跟你所設的掩碼是沒有關係的

論述2:

Q:

不同子網掩碼下的兩個主機是不是需要路由器連接才能通信?

A:

不一定
子網掩碼是用來判斷兩個IP是否屬於同一網段的,如果本身就屬於同一網段,那麼子網子網掩碼不同也可以通信。
例1
A:192.168.1.1 mask:255.255.255.0
B:192.168.1.2 mask:255.255.0.0
這兩個地址本身就在同一網段,因此子網掩碼不同不產生影響。
如果兩個IP不同網段,例2
A:10.10.10.10
B:80.80.80.80
這種情況下,即使掩碼相同,也無法直接通信
想要具體判斷的話,算出子網地址即可
IP與掩碼分段對應,掩碼是255,IP不變,掩碼是0,IP爲零
還是拿例1來說
對於機器A,兩個IP算出來的網絡號都是192.168.1.0,可以通信
對於機器B,兩個IP算出來的網絡號都是192.168.0.0,可以通信
雙方都認爲可以通信,自然也就可以通信
特殊情況:
例3:
A:192.168.1.1 mask:255.255.255.0
B:192.168.0.1 mask:255.255.0.0
對於A,兩個ip算出來的網絡號分別是192.168.1.0,192.168.0.0,不能通信
對於B,兩個IP算出來的網絡號都是192.168.0.0 可以通信
因此A能收到B的消息,但是A想要發給B時,將會把數據發給路由器。
及特殊情況:
如果兩臺機器互相把對方設爲默認網關,那麼即使在例2的狀態下,也可以通信。
注:以上都是指鏈路層連通的情況下,如果網線沒插,肯定是不能通信的。
例3是單向的,ping並不是單向通信,因爲有回包。所以例3的測試很麻煩。

192.168.0.1&255.255.255.0得到網絡標識192.168.0.0 (ip地址與mask都爲1的只有前16位,所以能夠很快算出網絡標識);將mask反取再與ip進行邏輯與運算(即前面24給0+後面8個1 與 前面16個1+後面7個0+最後1個1,得到 0.0.0.1),就是主機標識
IP&mask=>網絡標識=>是否在同一網段
IP&mask反碼=>主機標識

練習_劃分子網

一個公司有530臺電腦,組成一個對等局域網,子網掩碼和IP設多少最合適?

子網掩碼不說了,前面算出結果來了11111111.11111111.11111100.00000000,
也就是255.255.252.0我們現在要確定的是IP如何分配,
首先,選一個B類IP段,這裏就選188.188.x.x吧
這樣,IP的前兩段確定的,關鍵是要確定第三段,只要網絡標識相同就可以了。我們先來確定網絡號。(我們把子網掩碼中的1和IP中的對就起來,0和*對應起來,如下:)
255.255.252.0 11111111.11111111.11111100.00000000
188.188.x.x 10111100.10111100. ++++++.******
網絡標識 10111100.10111100. ++++++00.00000000
由此可知, *處隨便填(只能用0和1填,不一定全是0和1)(+部分必須相同?)
(是不是因爲29=512,210=10242^9=512,2^10=1024,所以要容納530臺電腦,每個塊應該分爲1024個ip,也就是掩碼後面保留10個0?)
因爲掩碼是前22個1+後10個0,所以網絡標識能夠很容易的出來:就看IP段前22位有多少個1

網絡號:最小地址;全0
廣播地址:最大地址;全1
現實中能用的:夾在中間的(例如有128個ip地址,去頭去尾,只有中間126個可以用)

各類地址的第一個字節:

A類:0~127
B類:128~191
C類:192~223

網絡號開頭的要求 網絡號 主機號
A 0 8位 24 位
B 10 16 16
C 110 24 8
默認子網掩碼
A 255.0.0.0
B 255.255.0.0
C 255.255.255.0

如果不是默認子網掩碼,說明進行了子網劃分
例如255.255.255.224,將224寫成二進制,爲11100000,也就是本來的00000000前三位變成了1,所以有:
=23=8子網個數=2^3=8

27262524232221202^7- 2^6- 2^5- 2^4- 2^3- 2^2- 2^1- 2^0
掩碼224 111000001--1--1--0--0--0--0--0
IP地址:192.45.165.243(C類,所以後面243是主機號) 111100111--1--1--1--0--0--1--1
224&243:224(該ip地址的子網號) 111000001--1--1--0--0--0--0--0
224後面的1補齊:加上2512^5-1,即255(廣播地址) 111111111--1--1--1--1--1--1--1
子網1:192.45.165.0~192.45.165.31 000000000--0--0--0--0--0--0--0
子網2:192.45.165.32~192.45.165.63 001000000--0--1--0--0--0--0--0
子網3:192.45.165.64~192.45.165.95 010000000--1--0--0--0--0--0--0
子網4:192.45.165.96~192.45.165.127 011000000--1--1--0--0--0--0--0
子網5:192.45.165.128~192.45.165.159 100000001--0--0--0--0--0--0--0
子網6:192.45.165.160~192.45.165.191 101000001--0--1--0--0--0--0--0
子網7:192.45.165.192~192.45.165.223 110000001--1--0--0--0--0--0--0
子網8:192.45.165.224~192.45.165.255 111000001--1--1--0--0--0--0--0

子網號:192.45.165.0,192.45.165.32,。。。,192.45.165.224

前3個爲1,後5個繼續保持0,前三個變化,則能夠得出各個子網,總共有8種變化:000,001,010,011,100,101,110,111;分別在後面補上5個0之後,爲:0,32,64,96,128,160,192,224(每個塊中有256-224=32個ip地址,即從224到255,總共有32個ip)
因爲每個塊中有255-224=32個ip地址,所以子網劃分就從0~31,32~63,... ,224~255

255.255.224.0/19 這個19代表是19位16進制的1 由於是一個B類的地址,所有前16位是網絡位。而後16位才包括子網爲和主機位。 (19=16+3,也就是網絡號爲16個1,主機號爲3個1+13個0,通過主機號的三個1可以知道有8個子網,通過主機號的5個0可以知道每個子網塊有32個IP地址,當然通過256-224=32計算更快。)

感想

網絡號是不是就是用來劃分你是屬於哪個網絡的,有很多個網絡,每個網絡下面有多個主機,網絡數量上去了,則主機數量就下來了,可能這就是子網劃分通過網絡位佔用主機位來實現的原因吧。
對於C類而言,本來一個網絡可以有0~255總共256個ip的(雖然頭尾不能用),如果只需要不到32個ip,則可以通過劃分子網,是的每一個子網只有32個ip,當然劃分過後網絡數量也就增加了。
32=2532=2^5,所以主機號保留5個0,借3個數字給網絡號用,則可以分出8個網絡,稱爲8個子網。默認掩碼是24個1+8個0,這種情況下,掩碼前面是24+3=27個1,後面是5個0,11111111 11111111 11111111 11100000,255.255.255.224。
假設劃分過後,PC1再第一個塊中,PC2在第二個塊中(也就是分別在第一個、第二個子網中,或者說PC1的IP地址在0~31箇中確定,PC2的IP地址在第32~63箇中確定),
PC1:192.168.0.1(=>網絡號:192.168.0.0,子網號:192.168.0.0)
PC2:192.168.0.35(=>網絡號:192.168.0.0,子網號:192.168.0.32)
PC1向PC2發送數據,先算出在PC1的掩碼下,PC2的子網號Subnet number,利用這個子網號判斷兩者是否在同一子網(或者說同一個 子網絡),再決定是直接發送還是找路由器幫忙。因在PC1的掩碼下(有的時候兩個PC的掩碼是不一樣的),PC2與PC1的子網號不同,PC1將數據交給路由器,路由器拿着PC2的子網號(通過PC1的掩碼算出來的)去找PC2的家,路由器找到了對應子網後,因該子網可以容納32個ip地址,要確定PC2到底是哪一個,就需要用主機號了(將掩碼取反再和IP做邏輯與運算)。
Tip:假設有一條信息要從小明傳到小紅,若小紅得到了小明的青睞,小明就想直接給小紅髮信息,若小明打心眼裏不喜歡小紅,他就會委託別人傳遞這條消息,也就是說,小明是否直接給小紅傳遞消息,取決於小紅的個人魅力與小明的眼光,和小紅的眼光沒有關係,和小明的個人魅力也沒有關係;同樣的,一旦A直接給B傳遞數據,就說明B(B的ip地址)通過A的(A的掩碼)的檢驗了,和A的IP地址沒有關係,和B的掩碼也沒有關係,後面這兩樣決定的是B是否能夠直接向A傳遞數據。

  • 子網號 = IP & 子網掩碼
  • 主機號 = IP & 掩碼取反
  • 判斷對方是不是和我同一個子網,是用我的工具來驗對方的貨,而不是讓對方用對方自己的工具愛怎麼測怎麼測

Q:

爲什麼要去頭去尾

A:

第一個是該子網的網絡號,最後一個是該子網的廣播地址,都不可以分配給計算機來使用,但實際上要用來分配個計算機也是可以的,現在的網卡可以自動識別,只是理論上不行而已)

補完這部分知識我算是知道爲什麼當時學的知識那麼快就還給老師了:當時只講了網絡號主機號掩碼等,沒有講路由選擇方面的知識。我覺得路由選擇更加這方面的知識更加實用,學了路由選擇,對子網劃分等知識的理解也會更加深刻,被閹割過的、不成體系的知識,太容易忘掉了。。。

另外可以 點擊查看 這篇博文,覺得這個博主講的很好。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章