IP地址

IP地址是什么?為了確切地標識Internet中的主機和路由器,TCP/IP建立了一套編址方案,為每臺主機和路由器分配一個全網唯一的地址。這個地址的名字就叫IP地址。(相當于國家為了知道誰是誰為每個人都分配了一個身份證號碼一樣)。

值得注意的是,一臺主機至少擁有一個IP地址,允許一臺主機擁有多個IP地址。

有些網絡擁有很多主機,而有些網絡上的主機很少,類似于小區一樣,我們對IP地址進行了分類,五類,A類到E類。大量使用的是A,B,C類。

A類地址:8位網絡號(0開頭)+24位主機號

B類地址:16位網絡號(10開頭)+16位主機號

C類地址:24位網絡號(110開頭)+8位主機/號

D類:組播地址

E類:保留以后再用。

注意,網絡號不能全部為0或者全部為1.IP地址也不能全部為0或者全部為1.

由此得到A類網絡地址范圍為00000001~01111111.用點分十進制記法,把他們分別換算成十進制,就是1~127.

同理,B類網絡地址的范圍為10000000 00000001 ~10111111 11111111.即128.1~191.255

C類:11000000 00000000 00000000~11011111 11111111 11111111.即192.0.0~223.255.255

 

子網掩碼

1、子網掩碼的作用

在設置電腦IP時,會碰到兩個重要的參數,一個是IP地址,一個是子網掩碼。IP地址是互聯網上每個子網或每個主機在網絡上的唯一身份標簽,那子網掩碼是干什么用的呢?(用來劃分子網的網段和遮掩部分IP地址,換個說法就是:它是用來劃分IP地址中哪一部分是網絡號,哪一部分是機器號)

隨著互聯網的發展,越來越多的網絡產生,有的網絡多則幾百臺主機,少則區區幾臺,這樣就浪費了大量的IP地址,所以要劃分子網。為了有序地區分和管理不同的子網,就需要使用子網掩碼。

子網掩碼是一種用來指明一個IP地址所標示的主機處于哪個子網中。子網掩碼不能單獨存在,它必須結合IP地址一起使用。子網掩碼只有一個作用,就是將某個IP地址劃分成網絡地址主機地址兩部分。

2、子網掩碼的用法

子網掩碼是一個32位地址,對于A類地址來說,默認的子網掩碼是255.0.0.0;對于B類地址來說默認的子網掩碼是255.255.0.0;對于C類地址來說默認的子網掩碼是255.255.255.0。

子網掩碼通常有十進制和二級制兩種表現形式,255.255.0.0用二進制表示則為1111111.11111111.00000000.00000000,其中,前面2個字節的16位“1”表示網絡號,后面2個字節的16位“0”表示主機號。

當配合IP地址172.20.0.4使用時,則表示該IP地址是B類地址,172.20是網絡標識,0.4是主機標識。也即子網掩碼AND IP地址的部分是網絡標識,子網掩碼取反后AND IP地址的部分即為主機標識。

子網掩碼有兩個特殊地址,當子網掩碼的主機地址全為0時,表示該網絡地址,當子網掩碼的主機地址全為1時,表示該網絡的廣播地址。

 

怎么劃分子網網段?

為什么要遮掩IP地址?怎么個遮掩法?

現在我們有這么個IP地址:192.168.1.129

我們并不知道它的網絡號,也不知道它屬于哪部分子網網段。我們現在就需要一個東西來劃分出子網網段,這個東西就叫:子網掩碼。

再,我們給出具體子網掩碼:255.255.255.0

什么要這么給?因為子網掩碼的長度要和IP地址相同32位,每8位預先被劃分為一段。255的二進制就是1111 1111。

那么我們把子網掩碼設置為255.255.255.193行不行?

這需要看它的二進制,子網掩碼還需要滿足一個條件才可以使用:它的二進制中1和0必須是連續的。

255.255.255.193的二進制:

1111 1111.1111 1111.1111 1111.1100 0001

可以看出它1并不連續,所以255.255.255.193不能作為子網掩碼使用。

255.255.255.0就很符合條件。

那子網掩碼怎么用?

答:用乘法來遮掩IP地址。1×1=1、1×0=0、0×0=0、0×1=0(按位與)

IP地址:192.168.1.129

二進制:

1100 0000.1010 1000.0000 0001.1000 0001

子網掩碼:255.255.255.0

二進制:

1111 1111.1111 1111.1111 1111.0000 0000

計算:

  1.  1100 0000.1010 1000.0000 0001.1000 0001
  2.  1111 1111.1111 1111.1111 1111.0000 0000
  3.  ————————————————————
  4.  1100 0000.1010 1000.0000 0001.0000 0000

計算后的這段二進制代碼相比于原來的IP地址,后面8位被用0遮掩了。

為什么要遮掩?因為我們不必關心后面8位是1還是0了。子網網段已經被劃分出來了。

1100 0000.1010 1000.0000 0001.0000 0000的十進制:192.168.1.0

也就是說,從192.168.1.0到192.168.1.255都是同一個子網網段,里面的0—255號可以分配給不同的機器。

0—255號都是機器的號碼,IP地址顯示的就是其中129號。

192.168.1.0就是所謂的網絡號,也可以寫作192.168.1或者192.168.1.0\24(24指的是IP地址中有24位未被遮掩)

IP地址的意思就很明白了,網段(網絡號)加上機器號碼。同一個IP地址根據不同子網掩碼,會劃分出不同的網絡號和機器號。

 

 

例1 不同子網下的主機能否直接通信

假設兩個IP地址分別是172.20.0.18和172.20.1.16,子網掩碼都是255.255.255.0。

我們可以知道兩者的網絡標識分別是172.20.0和172.20.1,無法直接通信,也就無法PING通。要想能相互通信,需要將子網掩碼改成255.255.0.0。

 

例2 如何確定子網掩碼

1)將主機數目轉化為二進制來表示,總位數是N;

2)將掩碼地址全部置1,然后從后向前的將N位全部置為 0,即為子網掩碼值。

如欲將B類IP地址168.195.0.0劃分成若干子網,每個子網內有主機700臺:

1)700=1010111100,該二進制為十位數,N = 10

2)將子網掩碼255.255.255.255從后向前的10位全部置0,即為: 11111111.11111111.11111100.00000000,也即255.255.252.0。

255.255.252.0就是168.195.0.0的700臺主機的子網掩碼了。

 

例3 如何理解172.20.1.0/26

上文中的26代表主機ID的掩碼地址長度,從前往后有26位,即子網掩碼的地址是255.255.255.192。

 

 

******************************************講故事舉例***************************************************

 

IP地址

IP地址是什么?為了確切地標識Internet中的主機和路由器,TCP/IP建立了一套編址方案,為每臺主機和路由器分配一個全網唯一的地址。這個地址的名字就叫IP地址。(相當于國家為了知道誰是誰為每個人都分配了一個身份證號碼一樣)。

值得注意的是,一臺主機至少擁有一個IP地址,允許一臺主機擁有多個IP地址。(計算機可以有幾個身份證但是人只能有一個)。

類似于居民身份證號,主機的身份證號也有一定的規律。

在人少的時候,身份證號的位數就要求少一些;當居民變多,以前的位數號碼所能表示的最大人口數量超過這個國家的人口數量時,身份證就要升級,將身份證號碼增長一點點。IP地址也是。因此機器數量少的時候用的是IPv4(目前還在用,估計馬上就要換IPv6了)。

 

IPv6是英文“Internet Protocol Version 6”(互聯網協議第6版)的縮寫,是互聯網工程任務組(IETF)設計的用于替代IPv4的下一代IP協議,其地址數量號稱可以為全世界的每一粒沙子編上一個地址

IPv6的地址長度為128位,是IPv4地址長度的4倍。于是IPv4點分十進制格式不再適用,采用十六進制表示。IPv6有3種表示方法。
一、冒分十六進制表示法
  格式為X:X:X:X:X:X:X:X,其中每個X表示地址中的16b,以十六進制表示,例如:
  ABCD:EF01:2345:6789:ABCD:EF01:2345:6789
  這種表示法中,每個X的前導0是可以省略的,例如:
  2001:0DB8:0000:0023:0008:0800:200C:417A→ 2001:DB8:0:23:8:800:200C:417A
二、0位壓縮表示法
  在某些情況下,一個IPv6地址中間可能包含很長的一段0,可以把連續的一段0壓縮為“::”。但為保證地址解析的唯一性,地址中”::”只能出現一次,例如:
  FF01:0:0:0:0:0:0:1101 → FF01::1101
  0:0:0:0:0:0:0:1 → ::1
  0:0:0:0:0:0:0:0 → ::
三、內嵌IPv4地址表示法
  為了實現IPv4-IPv6互通,IPv4地址會嵌入IPv6地址中,此時地址常表示為:X:X:X:X:X:X:d.d.d.d,前96b采用冒分十六進制表示,而最后32b地址則使用IPv4的點分十進制表示,例如::192.168.0.1與::FFFF:192.168.0.1就是兩個典型的例子,注意在前96b中,壓縮0位的方法依舊適用
 

目前仍在使用的IP地址是IPv4版本的。由四個字節組成,每個字節8位二進制數,就是說目前的IP地址由32位二進制數組成。

32個000011111等,寫著麻煩,看著也容易看花眼。因此我們用點分十進制法,將這32位二進制數字每八位劃分一次,每8位數對應一個十進制數,這樣一來,長長的32位地址就變成了四個用點隔開的十進制數字了。

而IP地址也是由幾個信息一起組成的。比身份證簡單很多,IP地址由網絡號和主機號四個字段組成。如果把網絡號比作小區,主機號就相當于小區里面的各個房子的門牌號。

 

網絡號:有的小區可能密密麻麻住了好幾萬人,有的小區可能是開闊的別墅區只住了不到一百人。如果統一門牌號為5位以滿足那些住的很密集的小區的需求,那對于別墅區來說前面的幾位數字浪費了,寫起來麻煩。于是根據小區人口的不同對小區進行分類,不同類別的小區的門牌號位數也不同。人多的五位、人少的兩位。

有些網絡擁有很多主機,而有些網絡上的主機很少,類似于小區一樣,我們對IP地址進行了分類,五類,A類到E類。大量使用的是A,B,C類。

A類地址:8位網絡號(0開頭)+24位主機號

B類地址:16位網絡號(10開頭)+16位主機號

C類地址:24位網絡號(110開頭)+8位主機/號

D類:組播地址

E類:保留以后再用。

注意,網絡號不能全部為0或者全部為1.IP地址也不能全部為0或者全部為1.

由此得到A類網絡地址范圍為00000001~01111111.用點分十進制記法,把他們分別換算成十進制,就是1~127.

同理,B類網絡地址的范圍為10000000 00000001 ~10111111 11111111.即128.1~191.255

C類:11000000 00000000 00000000~11011111 11111111 11111111.即192.0.0~223.255.255

 

 

當房產商向政府申請修房子時,申請到的只是某省某市某區某街道,類似的,當某單位申請一個IP地址時,實際上獲得的是一個網絡號,具體的各個主機號由本單位自行分配,就像房產商修哪一棟樓叫ABCD棟都是房產商自己設計的。

 

子網掩碼:

 

當一個小區越修越大,可能就會將本小區劃分為幾個分區或者幾期工程。當一個單位的主機很多而且分布在較大地理位置時,可以將本單位所屬主機劃分為若干個子網,然后各個子網之間用路由器互聯。

由于網絡號已經分好了,內部再劃分的子網號的字段就不能加到網絡號中了。我們將子網號的字段加到主機號字段中。

規定用一個32位的子網掩碼來表示子網號字段的長度。子網掩碼由一連串的1和一連串的0構成。1對應于網絡好和子網號字段,0對應于主機號。

比如:某單位要分配一個C類IP地址為202.114.16.0.加入這個單位的主機要劃分5個子網,5轉換為二進制為101,所以要用3個二進制表示子網字段。若這個主機要劃分為2個子網,2轉換為二進制為10,所以要用2個二進制表示子網字段。若要劃分為9個呢,一樣的,9轉化為二進制是1001,就需要4個二進制表示子網字段了。

這里我們以劃分為5個子網,用3個二進制子網字段為例:

復習一下,C類的網絡號為3個字節,24個二進制長度。主機號為1個字節,8個二進制長度。

C類IP地址為:110XXXXX XXXXXXXX XXXXXXXX+子網號(這里為101)+主機號

網絡號對應到子網掩碼是1,因此

110XXXXX XXXXXXXX XXXXXXXX→11111111 11111111 11111111

子網號對應到子網掩碼也是1,這里子網號為101,對應過去就是111

主機號對應到0,因此,這個C類地址對應的完整的子網掩碼就是:

11111111 11111111 11111111 11100000.

當外界訪問這個單位的主機時,路由器用子網掩碼和目的地址相“與”(1+1=1,0+1=0,1+0=0,0+0=0),得到的結果中最后一個字節由子網號和主機號構成。路由器再將該組轉發到這個例子中的第三個主機上。

當然,單位也可以不劃分子網。此時子網掩碼為默認值,此時1的長度就是網絡號的長度,A類地址默認的子網掩碼是11111111 00000000 00000000 00000000(255.0.0.0),B類地址的是11111111 11111111 00000000 00000000(255.255.0.0),C類的是11111111 11111111 11111111 00000000(255.255.255.0)