1. 程式人生 > >關於IP網路號和主機號的原理

關於IP網路號和主機號的原理

轉自xhamigua_QQ496400739的文章

http://xhamigua.blog.163.com/blog/static/61786908201191112512850/

文章中可能有些小錯誤,不過不影響學習。

關於IP網路號和主機號的原理   

2011-10-11 13:29:12|  分類:系統方面 |  標籤:|舉報|字號訂閱

網路號和主機號具體怎麼弄出來的? ? ? ?

                

1、標準分類的ip地址的網路號是,
A類是前8位
B類是前16位
C類是前24位
舉一個例子
如172.16.10.2,因為172.16.10.2是B類地址,所以172.16所代表的位就是網路號的位,後面10.2代表的位是主機位,A類C類和例子結構相同,就是位數不同。
2、如果不是標準的ip地址,就是要划子網的,就不一樣了。要看後面的位數來確定
如192.168.15.2/26,後面的26代表網路號位數是26位,剩下的6位是主機號;前24位是標準的網路號,後倆位是為劃分子網從主機號分出來的,也劃分到網路號裡。
子網掩碼與IP地址子網掩碼與IP地址結合使用,可以區分出一個網路地址
的網路號和主機號。


例如:有一個C類地址為:
192.9.200.13 其預設的子網掩碼為:
255.255.255.0 則它的網路號和主機號可按如下方法得到:
①將IP地址192.9.200.13轉換為二進位制

11000000 00001001 11001000 00001101
②將子網掩碼255.255.255.0轉換為二進位制

11111111 11111111 11111111 00000000
③將兩個二進位制數邏輯與(AND)運算後得出的結果即為網路部分

11000000 00001001 11001000 00001101
AND

11111111 11111111 11111111 00000000

結果為:
11000000 00001001 11001000 00000000 即192.9.200.0,
即網路號為192.9.200.0


④將子網掩碼取反再與IP地址邏輯與(AND)後得到的結果即為主機部分11000000 00001001 11001000 00001101

AND

00000000 00000000 00000000 11111111

結果為:
00000000 00000000 00000000 00001101 即0.0.0.13,

即主機號為13(0.0.0.13)


如何計算網路地址? ? ? ? ?
  我們日常生活中的地址如:北大街1號,從字面上就能看出街道地址是北大街,而我們從IP地址中卻難以看出網路地址,要計算網路地址,必須藉助我們上邊提到過的子網掩碼。 
  計算過程是這樣的,將IP地址和子網掩碼都換算成二進位制,然後進行與運算,結果就是網路地址。與運算如下所示,上下對齊,1位1位的算,1與1=1 ,其餘組合都為0。
                  1...0...1...0
                  1...0...0...0
              與運算________________ 
                  1...0...0...0 
  例如:計算IP地址為:202.99.160.50子網掩碼是255.255.255.0的網路地址步驟如下:
  1)將IP地址和子網掩碼分別換算成二進位制
  202.99.160.50 換算成二進位制為 11001010?01100011?10100000?00110010
  255.255.255.0 換算成二進位制為 11111111?11111111?11111111?00000000
  2)將二者進行與運算
             11001010?01100011?10100000?00110010
             11111111?11111111?11111111?00000000
         與運算________________________________________
             11001010?01100011?10100000?00000000
  3) 將運算結果換算成十進位制,這就是網路地址。
  11001010?01100011?10100000?00000000換算成十進位制就是202.99.160.0
  現在我們就可以解答上面三種情況的通與不通的問題了。
  1、從下面運算結果可以看出二臺計算機的網路地址都為192.168.0.0且IP地址不同,所以可以通。
           192.168.0.1      11000000.10101000.00000000.00000001
           255.255.255.0     11111111.11111111.11111111.00000000
       與運算_________________________________________________________
           192.168.0.0      11000000.10101000.00000000.00000000
           192.168.0.200     11000000.10101000.00000000.11001000
           255.255.255.0     11111111.11111111.11111111.00000000
       與運算_________________________________________________________
           192.168.0.0      11000000.10101000.00000000.00000000
  2、從下面運算結果可以看出1號機的網路地址為192.168.0.0,2號機的網路地址為192.168.1.0 不在一個網路,所以不通。
           192.168.1.200     11000000.10101000.00000001.11001000
           255.255.255.0     11111111.11111111.11111111.00000000
       與運算__________________________________________________________
           192.168.1.0      11000000.10101000.00000001.00000000
  3、從下面運算結果可以看出1號機的網路地址為192.168.0.0,2號機的網路地址為192.168.0.192 不在一個網路,所以不通
           192.168.0.1      11000000.10101000.00000000.00000001
           255.255.255.192    11111111.11111111.11111111.11000000
       與運算_________________________________________________________
           192.168.0.0      11000000.10101000.00000000.00000000
           192.168.0.200     11000000.10101000.00000000.11001000
           255.255.255.192     11111111.11111111.11111111.11000000
       與運算________________________________________________________
           192.168.0.182     11000000.10101000.00000000.11000000
  相信看到這應該明白了為何計算網路地址和如何計算了,但也許還有很多疑問,如IP地址為什麼寫成這樣,子網掩碼到底是怎麼回事等等,別急,下面慢慢介紹。
三、計算相關地址—通過IP地址和子網掩碼與運算計算相關地址
  知道IP地址和子網掩碼後可以算出:
   ●網路地址
  ● 廣播地址
  ● 地址範圍
  ● 本網有幾臺主機

  【例1】下面例子IP地址為192?168?100?5 子網掩碼是255?255?255?0。算出網路地址、廣播地址、地址範圍、主機數。
  1、分步驟計算
  1)將IP地址和子網掩碼換算為二進位制,子網掩碼連續全1的是網路地址,後面的是主機地址。 虛線前為網路地址,虛線後為主機地址
           192.168.100.5     11000000.10101000.01100100.00000101
           255.255.255.0     11111111.11111111.11111111.00000000
  2)IP地址和子網掩碼進行與運算,結果是網路地址
           192.168.100.5     11000000.10101000.01100100.00000101
           255.255.255.0     11111111.11111111.11111111.00000000
       與運算 ______________________________________________________________
       結果為: 192.168.100.0     11000000.10101000.01100100.00000000
  3) 將上面的網路地址中的網路地址部分不變, 主機地址變為全1,結果就是廣播地址。
    網路地址為: 192.168.100.0     11000000.10101000.01100100.00000000
    ___________________________________________________________________________
    將主機地址變為全1 
     廣播地址為: 192.168.100.2 55    11000000.10101000.01100100.11111111 
  4) 地址範圍就是含在本網段內的所有主機
     網路地址+1即為第一個主機地址, 廣播地址-1即為最後一個主機地址,由此可以看出
     地址範圍是: 網路地址+1  至  廣播地址-1
    本例的網路範圍是:192?168?100?1  至  192?168?100?254
    也就是說下面的地址都是一個網段的。
    192?168?100?1、192?168?100?2 ... 192?168?100?20 ... 192?168?100?111... 192?168?100?254 
  5) 主機的數量
    主機的數量=2二進位制的主機位數-2
  減2是因為主機不包括網路地址和廣播地址。本例二進位制的主機位數是8位。
    主機的數量= 2^8-2=254
  2、總體計算
  我們把上邊的例子合起來計算一下過程如下:
           192.168.100.5     11000000.10101000.01100100.00000101
           255.255.255.0     11111111.11111111.11111111.00000000
  2)IP地址和子網掩碼進行與運算,結果是網路地址
            192.168.100.5    11000000.10101000.01100100.00000101
            255.255.255.0    11111111.11111111.11111111.00000000
    與運算   _________________________________________________________
     結果為網路地址:192.168.100.0     11000000.10101000.01100100.00000000
          將結果中的網路地址部分不變,主機地址變為全1
    結果為廣播地址:192.168.100.0  即  11000000.10101000.01100100.11111111 
        廣播地址為: 192.168.100.255 即  11000000.10101000.01100100.11111111 
    主機的數量:                            2^8-2=254
    地址範圍是:   網路地址: 192.168.100.0 ...... 廣播地址為: 192.168.100.255
    主機的地址範圍是:網路地址+1:192.168.100.1 ...... 廣播地址為: 192.168.100.254 
  【例2】IP地址為128?36?199?3 子網掩碼是255?255?240?0。算出網路地址、廣播地址、地址範圍、主機數。
  1) 將IP地址和子網掩碼換算為二進位制,子網掩碼連續全1的是網路地址,後面的是主機地址, 虛線前為網路地址,虛線後為主機地址
           128?36?199?3            10000000?00100100?1100 0111?00000011
           255?255?240?0          11111111?11111111?1111 0000?00000000
  2)IP地址和子網掩碼進行與運算,結果是網路地址
           128?36?199?3            10000000?00100100?1100 0111?00000011
           255?255?240?0          11111111?11111111?1111 0000?00000000
   與運算   __________________________________________________________
   結果為網路地址:128?36?192?0   10000000?00100100?1100 0000?00000000
  3)將運算結果中的網路地址不變,主機地址變為1,結果就是廣播地址。
           128?36?192?0   10000000?00100100?1100 0000?00000000
         ______________________________________________________________
     廣播地址: 128?36?207?255        10000000?00100100?1100 1111?11111111 
  4) 地址範圍就是含在本網段內的所有主機
  網路地址+1即為第一個主機地址,廣播地址-1即為最後一個主機地址,由此可以看出
  本例的網路範圍是:128?36?192?1   至    128?36?207?254
  5) 主機的數量
  主機的數量=2二進位制位數的主機-2=212-2=4094
  從上面兩個例子可以看出不管子網掩碼是標準的還是特殊的,計算網路地址、廣播地址、地址數時只要把地址換算成二進位制,然後從子網掩碼處分清楚連續1以前的是網路地址,後是主機地址進行相應計算即可
如何直接廣播地址和受限廣播地址的區別? ? ? ? ?
廣播地址是一種特殊的IP地址形式,一種是直接廣播地址,一種是有限廣播地址。
直接廣播地址包含一個確定的網路號和一個全“1”的主機號,如你說的202.163.30.255就是一個直接廣播地址。 255就是一個主機號,202則是C類的IP地址,C類IP地址就是我們常接觸到的。
受限廣播地址是32位全1的IP地址(255.255.255.255)。受限的廣播地址是255.255.255.255。該地址用於主機配置過程中IP資料報的目的地址,此時,主機可能還不知道它所在網路的網路掩碼,甚至連它的IP地址也不知道。在任何情況下,路由器都不轉發目的地址為受限的廣播地址的資料報,這樣的資料報僅出現在本地網路中。
例子:

ip 地址  121.175.21.9

子網掩碼 255.192.0.0

求 網路地址 主機號 直接廣播地址 ?

121開頭的IP地址是個A類IP地址,

二進位制:01111001 10101111 00010101 00001001

子網掩碼 255.192.0.0  二進位制的:11111111 11000000 00000000 00000000,做與運算,

可以得出網路地址是:01111001 10000000 00000000 00000000

十進位制是:121.128.0.0/10

把網路地址中的主機地址部分全為1就可以得到直接廣播地址(上面紅色部分是網路地址。黑色部分是主機地址。)

01111001 10111111 11111111 11111111

十進位制的直接廣播地址:121.191.255.255

IP地址的子網劃分??????

你一定對IP地址有所瞭解吧?我們知道在INTERNET中廣泛使用的TCP/IP協議就是利用IP地址來區別不同的主機的。如果你曾經進行過TCP/IP協議設定,那麼你一定會遇到子網掩碼(Subnet mask)這一名詞,那麼你知道什麼是子網掩碼嗎?它有什麼作用呢?

我們知道IP地址是一個4位元組(共32bit)的數字,被分為4段,每段8位,段與段之間用句點分隔。為了便於表達和識別,IP地址是以十進位制形式表示的如210.52.207.2,每段所能表示的十進位制數最大不超過255。IP地址由兩部分組成,即網路號(Netgwork ID)和主機號(Host ID)。網路號標識的是Internet上的一個子網,而主機號標識的是子網中的某臺主機。網際地址分解成兩個域後,帶來了一個重要的優點:IP資料包從網際上的一個網路到達另一個網路時,選擇路徑可以基於網路而不是主機。在大型的網際中,這一點優勢特別明顯,因為路由表中只儲存網路資訊而不是主機資訊,這樣可以大大簡化路由表。IP地址根據網路號和主機號的數量而分為A、B、C三類:

A類IP地址:用7位(bit)來標識網路號,24位標識主機號,最前面一位為"0",即A類地址的第一段取值介於1~126之間。A類地址通常為大型網路而提供,全世界總共只有126個只可能的A類網路,每個A類網路最多可以連線16777214臺主機。

B類IP地址:用14位來標識網路號,16位標識主機號,前面兩位是"10"。B類地址的第一段取值介於128~191之間,第一段和第二段合在一起表示網路號。B類地址適用於中等規模的網路,全世界大約有16000個B類網路,每個B類網路最多可以連線65534臺主機。

C類IP地址:用21位來標識網路號,8位標識主機號,前面三位是"110"。C類地址的第一段取值介於192~223之間,第一段、第二段、第三段合在一起表示網路號。最後一段標識網路上的主機號。C類地址適用於校園網等小型網路,每個C類網路最多可以有254臺主機。

從上面的介紹我們知道,IP地址是以網路號和主機號來標示網路上的主機的,只有在一個網路號下的計算機之間才能"直接"互通,不同網路號的計算機要通過閘道器(Gateway)才能互通。但這樣的劃分在某些情況下顯得並十分不靈活。為此IP網路還允許劃分成更小的網路,稱為子網(Subnet),這樣就產生了子網掩碼。子網掩碼的作用就是用來判斷任意兩個IP地址是否屬於同一子網路,這時只有在同一子網的計算機才能"直接"互通。那麼怎樣確定子網掩碼呢?

前面講到IP地址分網路號和主機號,要將一個網路劃分為多個子網,因此網路號將要佔用原來的主機位,如對於一個C類地址,它用21位來標識網路號,要將其劃分為2個子網則需要佔用1位原來的主機標識位。此時網路號位變為22位為主機標示變為7位。同理借用2個主機位則可以將一個C類網路劃分為4個子網……那計算機是怎樣才知道這一網路是否劃分了子網呢?這就可以從子網掩碼中看出。子網掩碼和IP地址一樣有32bit,確定子網掩碼的方法是其與IP地址中標識網路號的所有對應位都用"1",而與主機號對應的位都是"0"。如分為2個子網的C類IP地址用22位來標識網路號,則其子網掩碼為:11111111 11111111 11111111 10000000即255.255.255.128。於是我們可以知道,A類地址的預設子網掩碼為255.0.0.0,B類為255.255.0.0,C類為255.255.255.0。下表是C類地址子網劃分及相關子網掩碼:

子網位數 子網掩碼      主機數 可用主機數

1      255.255.255.128  128   126

2      255.255.255.192  64    62

3      255.255.255.224  32    30

4      255.255.255.240  16    14

5      255.255.255.248  8     6

6      255.255.255.252   4     2

你可能注意到上表分了主機數和可用主機數兩項,這是為什麼呢?因為但當地址的所有主機位都為"0"時,這一地址為線路(或子網)地址,而當所有主機位都為"1"時為廣播地址。

同時我們還可以使用可變長掩碼(VLSM)就是指一個網路可以用不同的掩碼進行配置。這樣做的目的是為了使把一個網路劃分成多個子網更加方便。在沒有VLSM的情況下,一個網路只能使用一種子網掩碼,這就限制了在給定的子網數目條件下主機的數目。例如你被分配了一個C類地址,網路號為192.168.10.0,而你現在需要將其劃分為三個子網,其中一個子網有100臺主機,其餘的兩個子網有50臺主機。我們知道一個C類地址有254個可用地址,那麼你如何選擇子網掩碼呢?從上表中我們發現,當我們在所有子網中都使用一個子網掩碼時這一問題是無法解決的。此時VLSM就派上了用場,我們可以在100個主機的子網使用255.255.255.128這一掩碼,它可以使用192.168.10.0到192.168.10.127這128個IP地址,其中可用主機號為126個。我們再把剩下的192.168.10.128到192.168.10.255這128個IP地址分成兩個子網,子網掩碼為255.255.255.192。其中一個子網的地址從192.168.10.128到192.168.10.191,另一子網的地址從192.168.10.192到192.168.10.255。子網掩碼為255.255.255.192每個子網的可用主機地址都為62個,這樣就達到了要求。可以看出合理使用子網掩碼,可以使IP地址更加便於管理和控制。

1、IP地址的表示方法
IP地址 = 網路號+主機號
    把整個Internet網堪稱單一的網路,IP地址就是給每個連在Internet網的主機分配一個在全世界範圍內唯一的標示符,Internet管理委員會定義了A、B、C、D、E五類地址,在每類地址中,還規定了網路編號和主機編號。在 TCP/IP協議中,IP地址是以二進位制數字形式出現的,共32bit,1bit就是二進位制中的1位,但這種形式非常不適用於人閱讀和記憶。因此Internet管理委員會決定採用一種"點分十進位制表示法"表示IP地址:面向使用者的文件中,由四段構成的32 位元的IP地址被直觀地表示為四個以圓點隔開的十進位制整數,其中,每一個整數對應一個位元組(8個位元為一個位元組稱為一段)。A、B、C類最常用,下面加以介紹。本文介紹的都是版本4的IP地址,稱為IPv4.

關於IP網路號和主機號的原理 - xhamigua - 哈密瓜MQQ496400739

從上圖可以看出:

· A類地址:A類地址的網路標識由第一組8位二進位制數表示, A類地址的特點是網路標識的第一位二進位制數取值必須為"0"。不難算出,A類地址第一個地址為00000001,最後一個地址是01111111,換算成十進位制就是127,其中127留作保留地址,A類地址的第一段範圍是:1~126,A類地址允許有27 -2=126個網段(減2是因為0不用,127留作它用),網路中的主機標識佔3組8位二進位制數,每個網路允許有224-2=16777216臺主機(減2是因為全0地址為網路地址,全1為廣播地址,這兩個地址一般不分配給主機)。通常分配給擁有大量主機的網路。

· B類地址:B類地址的網路標識由前兩組8位二進位制數表示,網路中的主機標識佔兩組8位二進位制數,B類地址的特點是網路標識的前兩位二進位制數取值必須為"10"。 B類地址第一個地址為10000000,最後一個地址是10111111,換算成十進位制B類地址第一段範圍就是128~191,B類地址允許有214 =16384個網段,網路中的主機標識佔2組8位二進位制數,每個網路允許有216-2=65533臺主機,適用於結點比較多的網路。

· C類地址:C類地址的網路標識由前3組8位二進位制數表示,網路中主機標識佔1組8位二進位制數C類地址的特點是網路標識的前3位二進位制數取值必須為"110"。C類地址第一個地址為11000000,最後一個地址是11011111,換算成十進位制C類地址第一段範圍就是192~223,C類地址允許有221 =2097152個網段,網路中的主機標識佔1組8位二進位制數,每個網路允許有28-2= 254臺主機,適用於結點比較少的網路。


    有些人對範圍是2x不太理解,舉個簡單的例子加以說明。如C類網,每個網路允許有28-2= 254臺主機是這樣來的。因為C類網的主機位是8位,變化如下:
    00000000
    00000001
    00000010
    00000011
    ……
    11111110
    11111111
    除去00000000和11111111不用外,從00000001到11111110共有254個變化,也就是28-2個。下圖是IP地址的使用範圍。

關於IP網路號和主機號的原理 - xhamigua - 哈密瓜MQQ496400739


2、幾個特殊的IP地址
1)私有地址
    上面提到IP地址在全世界範圍內唯一,看到這句話你可能有這樣的疑問,像192.168.0.1這樣的地址在許多地方都能看到,並不唯一,這是為何?Internet管理委員會規定如下地址段為私有地址,私有地址可以自己組網時用,但不能在Internet網上用,Internet網沒有這些地址的路由,有這些地址的計算機要上網必須轉換成為合法的IP地址,也稱為公網地址,這就像有很到的世界公園,每個公園內都可命名相同的大街,如香榭麗舍大街,但對外我們只能看到公園的地址和真正的香榭麗舍大街。下面是A、B、C類網路中的私有地址段。你自己組網時就可以用這些地址了。
    10.0.0.0~10.255.255.255
    172.16.0.0~172.131.255.255
    192.168.0.0~192.168.255.255
2)回送地址
    A類網路地址127是一個保留地址,用於網路軟體測試以及本地機程序間通訊,叫做回送地址(loopback address)。無論什麼程式,一旦使用回送地址傳送資料,協議軟體立即返回之,不進行任何網路傳輸。含網路號127的分組不能出現在任何網路上。
小技巧:

· Ping 127.0.0.1,如果反饋資訊失敗,說明IP協議棧有錯,必須重新安裝TCP/IP協議。如果成功,ping本機IP地址,如果反饋資訊失敗,說明你的網絡卡不能和IP協議棧進行通訊。

· 如果網絡卡沒接網線,用本機的一些服務如Sql Server、IIS等就可以用127.0.0.1這個地址。


3)廣播地址
    TCP/IP規定,主機號全為"1"的網路地址用於廣播之用,叫做廣播地址。所謂廣播,指同時向同一子網所有主機發送報文。
4)網路地址
     TCP/IP協議規定,各位全為"0"的網路號被解釋成"本"網路。由上可以看出:一、含網路號127的分組不能出現在任何網路上;二、主機和閘道器不能為該地址廣播任何尋徑資訊。由以上規定可以看出,主機號全"0"全"1"的地址在TCP/IP協議中有特殊含義,一般不能用作一臺主機的有效地址。
3、子網掩碼
    從上面的例子可以看出,子網掩碼的作用就是和IP地址與運算後得出網路地址,子網掩碼也是32bit,並且是一串1後跟隨一串0組成,其中1表示在IP地址中的網路號對應的位數,而0表示在IP地址中主機對應的位數。
1)標準子網掩碼
     A類網路(1 - 126) 預設子網掩碼:255·0·0·0
    255·0·0·0 換算成二進位制為 11111111·00000000·00000000·00000000
    可以清楚地看出前8位是網路地址,後24位是主機地址,也就是說,如果用的是標準子網掩碼,看第一段地址即可看出是不是同一網路的。如21.0.0.0.1和21.240.230.1,第一段為21屬於A類,如果用的是預設的子網掩碼,那這兩個地址就是一個網段的。
    B類網路(128 - 191) 預設子網掩碼:255·255·0·0
    C類網路(192 - 223) 預設子網掩碼:255·255·255·0
    B類、C類分析同上。
2) 特殊的子網掩碼
    標準子網掩碼出現的都是255和0的組合,在實際的應用中還有下面的子網掩碼
    255·128·0·0
    255·192·0·0
    。。。。。。
    255·255·192·0
    255·255·240·0
    。。。。。。
    255·255·255·248
    255·255·255·252
    這些子網掩碼又是什麼意思呢?這些子網掩碼的出現是為了把一個網路劃分成多個網路。
    還記得上面的例子嗎?如下所示:192·168·0·1和192·168·0·200如果是預設掩碼255.255.255.0兩個地址就是一個網路的,如果掩碼變為255.255.255.192這樣各地址就不屬於一個網路了。下面的子網劃分將作詳細介紹。


關於IP網路號和主機號的原理 - xhamigua - 哈密瓜MQQ496400739


    表1是幾個子網掩碼計算過程中非常有用的十進位制和二進位制的對照

關於IP網路號和主機號的原理 - xhamigua - 哈密瓜MQQ496400739