IP地址和子網(wǎng)掩碼的計算
連接在網(wǎng)絡(luò)中的每一個設(shè)備都需要唯一的IP地址,但是由于我們目前主流在使用的IPv4版本的IP 地址其實是不夠現(xiàn)在的互聯(lián)網(wǎng)使用者分的,所以IP地址被分為了公網(wǎng)IP地址和私網(wǎng)IP地址,并且使用了NAT技術(shù)來緩解IP不夠的問題。在IP地址和子網(wǎng)掩碼中簡單了說了WINDOWS系統(tǒng)怎么查看IP地址并且談到了用子網(wǎng)掩碼來判斷兩個IP地址是不是同一網(wǎng)段來決定數(shù)據(jù)的轉(zhuǎn)發(fā)。

私有IP地址段
IP地址是由32位的二進制表示的有層次的地址,也就是32個0和1中間用英文的句號分隔,每8位一組一共四組,但顯示一堆的0和1并不容易閱讀,于是我們使用了最常用的10進制來表示IP地址,由于8位二進制數(shù)最大的十進制是二的8次方等于256,于是每組最大的數(shù)就是255(從0開始表示0到255剛好是256個數(shù))所以IP地址最大的取值是255.255.255.255。每個組可以有256個IP地址。比如我們常用的192.168.1.*,最后的*號就可以取值0到255,IP地址配合子網(wǎng)掩碼來決定自己哪些是網(wǎng)絡(luò)位,哪些是主機位,網(wǎng)絡(luò)號一致的就是同一網(wǎng)段也可以說是同一組,主機位決定整個組里可以容納多少個主機。

默人網(wǎng)絡(luò)號
子網(wǎng)掩碼也是四組用點分隔和IP地址很像,但是他有明確的特征那就是二進制下他的1總是從左邊開始連續(xù)的,無一例外,對應(yīng)于子網(wǎng)掩碼二進制下的1的就是網(wǎng)絡(luò)位,0的就是主機位。比如192.168.1.1的默認(rèn)子網(wǎng)掩碼是255.255.255.0轉(zhuǎn)換成二進制就是11111111.11111111.11111111.00000000,根據(jù)子網(wǎng)掩碼左邊連續(xù)1的特點,255.0.0.255決不是一個正確的子網(wǎng)掩碼。計算的方式就是把IP地址和子網(wǎng)掩碼都轉(zhuǎn)換成二進制,然后做與運算,1和1得1,0和0得0,1和0或0和1得0,得到的結(jié)果一樣就是同一網(wǎng)段,不同就不是。比如192.168.1.1和192.168.1.200在默認(rèn)的子網(wǎng)掩碼255.255.255.0下是不是同一組?

255.255.255.0
從以上圖看到計算結(jié)果是一樣的,對應(yīng)于255.255.255的是網(wǎng)絡(luò)位,對應(yīng)于0的則是主機位。如果我們改變子網(wǎng)掩碼,那么192.168.1.1和192.168.1.200還是一組的嗎?比如子網(wǎng)掩碼是255.255.255.128。讓我們用以上的方式計算,可以看到結(jié)果并不一樣,它可以把一個大的地址塊劃分成小的地址塊,這就是子網(wǎng)掩碼的作用,子網(wǎng)掩碼可以加長1的數(shù)量也可以減少1的數(shù)量,所以如果想讓192.168.1.1和192.168.2.1在同一個網(wǎng)段內(nèi),可以通過減少子網(wǎng)掩碼二進制1的數(shù)量比如255.255.0.0。自己可以算下他們的結(jié)果是不是一樣的。

255.255.255.128
在圖片中計算出的192.168.1.0就是網(wǎng)段號,也可以理解成組號或者微信群,里面有成員,那么有多少個成員呢?顯然不同的子網(wǎng)掩碼不同,對于默認(rèn)的255.255.255.0來說那就是256,但對于我們改變后的255.255.255.128來說就是128個,因為最大取值是256,減去128得128。那就是128個成員,兩個組。他們192.168.1.0到192.168.1.127和192.168.1.128到192.168.1.255。所以255.255.255.192的子網(wǎng)掩碼就是256-192=64。每組64個成員一共4組。192.168.1.0到192.168.1.63,192.168.1.64到192.168.1.127,192.168.1.128到192.168.1.191,192.168.1.192到192.168.1.255。

IP和子網(wǎng)絡(luò)掩碼
你會發(fā)現(xiàn)IP地址通常從1開始,其實二進制下的主機位全0代表著網(wǎng)段號,主機位全1代表著廣播號,所以一組里最前面和最后面的都不會分配給主機使用。如果你在WINDOWS系統(tǒng)中給網(wǎng)卡指定IP地址寫了192.168.1.0和255.255.255.0是會報錯的。因為他的主機位是最后一組全0,所以是網(wǎng)段號不能分配給主機,同樣192.168.1.255子網(wǎng)掩碼是255.255.255.0也不能分配給主機,因為是廣播號。那192.168.1.128和子網(wǎng)掩碼255.255.255.128可以分配給電腦不?

IP地址
是同一組的成員就直接通訊,如果不是同一組的成員那么就需要網(wǎng)關(guān)來向外轉(zhuǎn)發(fā)。所以在電腦中當(dāng)你要訪問一個IP地址時,那么首先會經(jīng)過計算,如果和網(wǎng)卡所有的IP地址的結(jié)果一致那就意味著在同一網(wǎng)段,直接可以交給交換機利于二層MAC地址來通訊,如果不同那就需要交給網(wǎng)關(guān)來繼續(xù)向外部轉(zhuǎn)發(fā)。這里所說的網(wǎng)關(guān)其實也是同一網(wǎng)段的一個IP地址,很多家用路由器的網(wǎng)關(guān)都是路由器本身的管理地址。和網(wǎng)卡獲取到的IP地址是同一組的可以直接通訊。這樣路由器收到不是同網(wǎng)段的地址就通過WAN口發(fā)送到了互聯(lián)網(wǎng)了。如果是目的IP是同網(wǎng)段的,則會發(fā)送到對應(yīng)的LAN口而不會向WAN發(fā)送。