TCP/IP学习——利用主机IP与子网掩码计算网络号
阿里巴巴的一道題目,是關于利用主機IP與子網掩碼計算網絡號。
在此之前,我們需要先了解下五類IP地址。
在同一個物理網絡上的主機的地址都有一個相同前綴,即IP地址分成兩個部分:netid,hostid。其中netid代表網絡地址,hostid代表這個網絡上的主機地址,根據他們選擇的位數的不同,可以分成A,B,C,D,E五類基本IP地址。
A類地址由1個字節的網絡號與3個字節的主機號組成,即就是第一段數字的范圍必須是(1~127)。其范圍(1.0.0.0-126.255.255.255)用于最大型的網絡,該網絡的節點數可達16,777,216個。?
B類地址由2個字節的網絡號與2個字節的主機號組成,即就是第一段數字的范圍必須是(128~191),其范圍(128.0.0.0-191.255.255.255)用于中型網絡,節點數可達65,536個。??
C類地址由3個字節的網絡號與1個字節的主機號組成,即就是第一段數字的范圍必須是(192~223),其范圍(192.0.0.0-223.255.255.255)用于256個節點以下的小型網絡的單點網絡通信。
D類地址并不反映網絡的大小,,只是用于組播,用來指定所分配的接收組播的節點組,這個節點組由組播訂閱成員組成,其范圍(224.0.0.0-239.255.255.255)
E類地址,其范圍(240.0.0.0-255.255.255.254)地址用于試驗。
IPv4的規定,對IP地址強行定義了一些保留地址,即:“網絡地址”和“廣播地址”。所謂“網絡地址”就是指“主機號”全為“0”的IP地址,如:192.168.0.0(C類地址);而“廣播地址”就是指“主機號”全為“255”時的IP地址,如:192.168.255.255(C類地址)。
PS:
網絡ID不能以“127”作為開頭,在地址中數字127保留給診斷用。如127.1.1.1用于回路測試, 同時網絡ID的第一個8位組也不能全置為“0”,全置“0”表示本地網絡。網絡ID部分全為“0”和全部為“1”的IP地址被保留使用。下面介紹下子網掩碼的作用:
子網掩碼,則是用來標識兩個IP地址是否同屬于一個子網。它也是一組32位長的二進制數值,其每一位上的數值代表不同含義:為“1”則代表該位是網絡位;若為“0”則代表該位是主機位。和IP地址一樣,人們同樣使用“點式十進制”來表示子網掩碼,如:255.255.0.0。
了解以上基礎知識后,我們看一個概念。
CIDR(無類別域間路由選擇,Classless and Subnet Address Extensions and Supernetting)與子網。
在子網中是沒有“類別”的。上面提到網絡分為A類、B類、C類、D類、E類。這些網絡只能分為相等的幾部分,如C類網絡是一個24位網絡地址,B類網絡是一個16位網絡地址,A類網絡是一個8位網絡地址。要突破這個瓶頸,引入了可變長度子網掩碼(VLSM)來解決這個問題。
CIDR(發音為“cider”)網絡地址使用網絡/子網掩碼的風格。此組合會告訴你這樣的信息:網絡部分/主機部分。
如下面的寫法:
前面的192.168.0.0表示網絡地址,后面的28表示子網掩碼的前連續的28位全部是“1”,表示成2進制值如下:
[plain]?view plaincopy則從上面的子網掩碼可以看出,此子網中主機位為4位,其范圍是0000~1111,轉換成10進制為0~15,除去此子網中的網絡地址與廣播地址。
一共有14個IP地址(192.168.0.241~192.168.0.254)。
有了上面的基礎,下面討論今天看到的東西。在一個192.168.5.0/24的子網中,有一個主機的IP為192.168.5.125。確定主機的網絡號與主機號。
由cider的表示風格確定出子網掩碼為255.255.255.0。
轉換給定的IP地址與確定出的子網掩碼為二進制數:
192.168.5.125:11000000.10101000.00000101.01111101
??????????????????????????????????????? AND
255.255.255.0:11111111.? 11111111.? 11111111.00000000?
網絡號,把IP地址與子網掩碼進行按位與得到如下:
11000000.10101000.00000101.00000000
轉換成十進制即為:192.168.5.0
下面求主機號,先把子網掩碼取反碼,再遇IP地址相與。
192.168.5.125:11000000.10101000.00000101.01111101
???????????????????????????????????? AND?
得到了主機號:0.0.0.125.即就是此主機號為125.
總結
以上是生活随笔為你收集整理的TCP/IP学习——利用主机IP与子网掩码计算网络号的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: TCP/IP网络中专有名词注解
- 下一篇: OSI模型中的数据链路层和物理层的区分