看完這篇文章但願能夠解答的問題是:算法
一、IP地址的構成 二、什麼是網絡掩碼? 三、如何纔算是處於相同網段的通訊?
看懂所須要的門檻是:二進制換算網絡
計算機之間的通訊,能夠分爲相同網段的通訊和不一樣網段的通訊。那什麼是相同網段和不一樣網段呢?無論三七二十一,先畫個圖,感覺一下。
員工A和B就屬於相同網段,A與C、B與C就是不一樣網段。在圖中咱們能夠看到有IP地址和網關兩個玩意兒,他們到底是什麼呢?爲何又能來區分相同網段和不一樣網段?post
在回答以前,先介紹一下什麼是IP地址:spa
IP地址至關於網絡中的身份惟一認證ID,跟身份證ID同樣是惟一的,惟一不一樣的是,IP地址是能夠變的,只是無論怎麼變,都將會是惟一的。Mac地址的性質更加接近於身份證ID,它是設備的惟一ID。
IP地址 = 網絡地址 + 主機地址code
IP地址目前廣泛是IPv4版本,由32位二進制數分紅4組,每組1字節Byte(8比特Bit)組成。分別用十進制表示再用圓點隔開,就是如今的172.1.1.10。blog
什麼是網絡地址和主機地址?圖中172.1.1.10/24的24又指的是什麼?
說到這裏不得不解釋一下什麼是子網掩碼(又稱網絡掩碼)資源
24指的是子網掩碼的長度,用子網掩碼來表示,就是:255.255.255.0。它的做用主要是用來區分網絡地址和主機地址。路由
上面咱們說了,員工A和B就屬於相同網段。而歸根究底是由於他們有相同的網絡號,恰恰子網掩碼又是用來告訴咱們他們是真的有着相同的網絡號的。get
255.255.255.0用二進制表示,則是:同步
11111111.11111111.11111111.00000000
172.1.1.10用二進制表示,則是:
10101100.00000001.00000001.00001010
連續24個1,也就是172.1.1.10/24中24的由來。
經過按位與最終獲得網段號:
10101100.00000001.00000001.00000000
按位與/& : 1 & 1 => 1 、 1 & 0 => 0 、 0 & 0 => 0
因此172.1.1.10中剩下的10(00001010)便是主機號,172.1.1是網段號,那回到上面的員工A、B、C中:
員工A(172.1.1.10/24)的網段號:172.1.1
員工B(172.1.1.11/24)的網段號:172.1.1
員工C(172.1.2.10/24)的網段號:172.1.2
顯然A、B在同一個網段裏
是否是看上去很容易了,那咱們學以至用,如今有一個IP地址:172.1.1.10/25,請問,這裏的網絡位、主機位是多少?主機數是多少?網絡地址和廣播地址是多少?網絡掩碼是多少?
解題步驟:
一、首先咱們將IP地址轉爲32位二進制:
10101100.00000001.00000001.00001010
二、從地址中知道子網掩碼的長度是25,總長爲32Bit,那咱們能夠寫上25個連續的1,剩下的補上0,獲得:
11111111.11111111.11111111.10000000 (255.255.255.128)
按位與操做後,能夠拿到網絡位:
10101100.00000001.00000001.1xxxxxxx
三、那網絡地址和廣播地址是什麼呢,咱們將上面的7個x,改成0,獲得的就是網絡地址(網絡號),所有改成1,獲得的就是廣播地址。因此:
網絡地址:10101100.00000001.00000001.10000000 十進制:172.1.1.128 廣播地址: 10101100.00000001.00000001.11111111 十進制:172.1.1.255
四、那麼咱們的主機位有多少呢?
172.1.1.128 ~172.1.1.255 之間(拋開網絡地址和廣播地址)一共能夠有126個主機位。
固然這樣算太累了,用一個比較簡便的算法,IP地址總長 32 - 子網掩碼長度 25 = 主機位 7,那麼根據排列組合主機位 = 2 ^ 7 - 2 = 126,減2是減去廣播地址以及網絡地址。
算完上面的題目,是否是感受清晰了不少,那問題又來了?255.255.255.198這個掩碼又是否是合法呢?
咱們上面的掩碼長度,都是連續的1,可 255.255.255.198轉爲二進制是:11111111.11111111.11111111.11000110
不是連續的1了,不少人認爲,這樣的子網掩碼是不合法的。這是錯誤的理解,IP協議中給子網掩碼提供了必定得靈活性,容許子網掩碼中的0和1不連續,可是這樣的子網掩碼給分配主機以及找到相同網段都形成了必定的難度。市面上也只有極少路由器支持在子網中這樣使用。因此實際應用中大多都是採用上述方式。
當咱們的企業、公司去申請一個IP地址時,實際上拿到的是網絡號,經過網絡的性質以及規模,由本身的企業去自行分配主機號。
固然,網絡號天然是要劃分三六九等的,由於網絡的規模差別比較大、而咱們的IP資源有限,根據網絡號和主機地址來分,主要分爲A、B、C三類和特殊地址D、E(能夠粗略瞭解,傳送門:https://blog.51cto.com/huchina/2159073)
至此,文章開頭的問題,應該是有所解答了。
掘金同步發佈