在TCP/IP網(wǎng)絡(luò)系統(tǒng)中,對于一臺計算機或路由器、交換機設(shè)備來說,要實現(xiàn)設(shè)備之間通信的前提是擁有一個正確的IP
地址。在TCP/IP網(wǎng)絡(luò)中,將計算機、路由器、交換機等網(wǎng)絡(luò)設(shè)備統(tǒng)稱為主機(或節(jié)點)。在通信過程中,不管使用什么樣
的通信協(xié)議,所有的數(shù)據(jù)都必須封裝為IP數(shù)據(jù)包,也就是說必須要為第一個數(shù)據(jù)指定IP地址,通過IP地址告訴計算機
將數(shù)據(jù)發(fā)誰,同時某一臺計算機在接收一個數(shù)據(jù)包時也可以根據(jù)IP地址知道該數(shù)據(jù)包是由誰發(fā)送的。然而,IP地址的
劃分和管理不是無序的,而必須遵守相應(yīng)的規(guī)定和規(guī)律。
IP地址的格式
數(shù)據(jù)包在網(wǎng)絡(luò)上傳輸時,它的目的IP地址是始終不變的,路由器的任務(wù)根據(jù)自己的路由表,選擇到目標IP的最佳路徑
口,然后重寫數(shù)據(jù)包第二層的幀頭(MAC地址)信息,讓數(shù)據(jù)包發(fā)往下一跳。不變的IP地址是將數(shù)據(jù)包正確發(fā)往目的地
的基礎(chǔ)。
IP地址的組成
目前廣泛應(yīng)用的IP版本為IPv4,它使用32位的二進制地址,每個地址由4個八位組構(gòu)成,每個八位組被轉(zhuǎn)化成十進制并
用“.”來分割,即常說的“點分十進制表示法”。
二進制:
11000000 10101000 00001010 00000001
十進制:
192
168
10
1
網(wǎng)絡(luò)地址與主機地址
每一個利用TCP/IP通信的主機都需要一個唯一的IP地址,IP地址被分成網(wǎng)絡(luò)地址和主機地址兩部分,這種尋址策略有
些類似接到(網(wǎng)絡(luò)地址)和門牌號(主機地址)。
每個房屋的確切地址都有自己的街道和門牌號來共同決定,對于整個城市來說,某個街道和門牌號是唯一的,可以功
過街道和門牌號找到某個房屋。例如,要去往某處(江蘇路1號)時,應(yīng)先找哦啊到該處所在的街道(江蘇路),然后再依照
門牌號尋找確切的地址(1號)。
IP地址和街道地址與門牌號的作用相似。IP地址中的網(wǎng)絡(luò)地址就好比街道地址,用來標識整個網(wǎng)段;主機地址就好比門
牌號,用來標識某個確切的主機。
對于一個IP地址,外界只看它的網(wǎng)絡(luò)地址,不關(guān)心其內(nèi)部的網(wǎng)絡(luò)結(jié)構(gòu)。當外界要向某個主機發(fā)送 數(shù)據(jù)包時,它只看主機
IP地址中的網(wǎng)絡(luò)地址,當數(shù)據(jù)包到達目標主機所在的網(wǎng)段后,再依靠主機地址把數(shù)據(jù)包發(fā)給目標主機。例如,路由器將
對所有地址為192.168.1.0的數(shù)據(jù)包作同樣處理。當路由器收到一個發(fā)往192.168.1.2的數(shù)據(jù)包時,它查看自己的路由表,發(fā)
現(xiàn)通過E1口可以到達192.168.1.0網(wǎng)絡(luò),于是路由器會直接將數(shù)據(jù)包發(fā)往E1端口,而不關(guān)心目標IP地址的主機地址具體是
多少;數(shù)據(jù)包到達E1口以后,路由器發(fā)現(xiàn)本地連接著192.168.1.0的網(wǎng)絡(luò),于是它查看ARP表得到主機192.168.1.1的MAC
地址,最后將IP數(shù)據(jù)包發(fā)送給目標主機。
利用RFC中的一段定義“名字、地址和路由這些概念有很大的不同。一個名字說明找的東西;一個地址說它在哪里;一
個路由說明如何到達那里”。它說明了設(shè)備名稱、設(shè)備地址(包括MAC地址和IP地址)和路由器之間的關(guān)系,這里路由器
負責將數(shù)據(jù)包轉(zhuǎn)發(fā)到相應(yīng)的網(wǎng)絡(luò),使用ARP來到IP地址對應(yīng)設(shè)備的MAC地址,MAC地址與設(shè)備名稱之間存在著一一對
應(yīng)關(guān)系。
在TCP/IP網(wǎng)路中,設(shè)備地址由IP地址和MAC地址組成。IP地址是一個邏輯地址,可以由網(wǎng)絡(luò)管理通過相應(yīng)的機制進行指
定;而MAC地址是一個物理地址,在設(shè)備出廠時已經(jīng)被分配了一個全球唯一的MAC地址,在實際通信中,邏輯地址最
終要轉(zhuǎn)換成物理地址。
IP地址的分類
20實際70年代初,當Internet工程師們設(shè)計IP地址時,認為32位邏輯地址已經(jīng)足夠用了,因為在當時的條件下32位的地址
空間已經(jīng)足夠大了,能夠提供2^32(4294967296,40多億)個獨立的地址,這個邏輯地址的分配和管理策略就是IPv4。同
時,為了有效地利用和管理這些地址,針對網(wǎng)絡(luò)規(guī)模大小的不同,還采用了分組的方法,有的分組較大,有的分組很小
這種管理上的分組也稱為地址類。
IPv4是基于32bit(位,比特)地址方案,理論上可以支持40多億臺主機。為了適應(yīng)不同的網(wǎng)絡(luò)需求,
IPv4地址被分成了5類,分別是A類、B類、C類、D類和E類,其分配由因特網(wǎng)地址授權(quán)委員會(IANA)
統(tǒng)一管理。
A類: 網(wǎng)絡(luò) 主機 主機 主機
B類:
網(wǎng)絡(luò) 網(wǎng)絡(luò) 主機 主機
C類:
網(wǎng)絡(luò) 網(wǎng)絡(luò) 網(wǎng)絡(luò) 主機
D類:
組播地址
E類:
供IETF科研用
5類IP地址的千類(A類、B類、C類)被用于全球唯一的單播地址;D類和E類地址為組播和試驗?zāi)康谋A簟?div style="height:15px;">
目前,全球有3個區(qū)域因特網(wǎng)注冊機構(gòu)負責為ISP和組織分配成塊的IP地址。其中美國因特網(wǎng)地址注冊機構(gòu)
(ARIN)為北美洲、中美洲和南美洲提供服務(wù);歐洲網(wǎng)絡(luò)信息中心(PIPE NCC)為歐洲和非洲提供服務(wù);亞太
網(wǎng)信息中心(APNIC)為亞洲地區(qū)提供服務(wù)。如果想得到這3個注冊機構(gòu)的詳細信息,請參見:
http://www.arin.com、
http://www.ripe.com和
http://www.apnic.com。
A類地址
A類地址是網(wǎng)絡(luò)中最大的一類地址,它的缺省的子網(wǎng)掩碼是255.0.0.0,它使用IP地址中的第一個八位組表述
網(wǎng)絡(luò)地址。A類地址的結(jié)構(gòu)使每個網(wǎng)絡(luò)但擁有的主機數(shù)非常多,因此A類地址是為巨型網(wǎng)絡(luò)(或超大型網(wǎng)絡(luò))
所設(shè)計的。
A類地址的第一個八位組的第一位總是被設(shè)置為0,這就是限制了A類地址的第一個八位組的值始終小于127,
也就是僅有127個可能的A類地址。
A類地址:
0xxxxxxx 主機 主機 主機
實際上,A類地址的范圍是1~126。雖然從理論上講,127.x.x.x和0.0.0.0也屬于A類地址,但是127.x.x.x已經(jīng)被
保留作回路測試之用,網(wǎng)絡(luò)0.0.0.0也保留于廣播地址(未知網(wǎng)絡(luò)),所以他們不能分配給任何網(wǎng)絡(luò)。
因為有3個八位組用于表示主機地址,所以每個A類網(wǎng)絡(luò)的主機數(shù)的可能值是16777216(2^24),但是由于全0的
主機地址表示網(wǎng)絡(luò)、全1的主機地址表示到這個網(wǎng)絡(luò)的定向廣播,所以實際的主機數(shù)比可能的主機數(shù)少2。
主機地址的運算方法是2N-2(N是主機部分的位數(shù),例如A類地址就是24)。
B類地址
B類地址的缺省子網(wǎng)掩碼255.255.0.0,B類地址使用前兩個八位組表示網(wǎng)絡(luò)地址,后兩個八位組表示主機地址。
設(shè)計B類地址的目的是支持中到大型網(wǎng)絡(luò)。
B類地址的第一個八位組的前兩位總是被置為10,所以B類地址的范圍是從128.0.0.0到191.255.0.0。
B類地址:
10xxxxxx
xxxxxxxx
主機
主機
B類地可能擁有的網(wǎng)絡(luò)數(shù)是16384(2^14)(實際上要減去兩個特例),每個網(wǎng)絡(luò)可能擁有的主機數(shù)是65536(2^16)。
C類地址
C類地址的子網(wǎng)掩碼是255.255.255.0,C類地址使用前3個八位組表示網(wǎng)絡(luò)地址,最后一個八位組表示主機地址。
設(shè)計C類地址的目的是支持大量的小型網(wǎng)絡(luò),因為這類地址擁有的網(wǎng)絡(luò)數(shù)目很多,而每個網(wǎng)絡(luò)所擁有的主機地
址數(shù)卻很少。
C類地址的第一個八位組的前3位總是被置為110,所以C類地址的范圍是從192.0.0.0到223.255.255.0。
C類地址:
110xxxxx xxxxxxxx 主機 主機
C類地址可能擁有的網(wǎng)絡(luò)數(shù)是2097152(2^21),每個網(wǎng)絡(luò)可能擁有的主機數(shù)是256(2^8)。
D類地址
D類地址用于IP網(wǎng)絡(luò)中的組播(多點廣播)。它不像A、B、C類地址有網(wǎng)絡(luò)號和主機號,一個組播地址標識了一個IP
地址組。因此可以同時把一個數(shù)據(jù)流發(fā)送到多個接收端,這比為每個接收端創(chuàng)建一個數(shù)據(jù)流的流量小得多,它可
以有效地節(jié)省網(wǎng)絡(luò)帶寬。
D類地址的第一個八位組的前4位總是被置為1110,所以D類數(shù)據(jù)地址的范圍從224.0.0.0到239.255.255.255。
D類地址:
1110xxxx 28bit組ID
D類地址擁有268435456個組(2^28),任何主機都可以自由地加入或離開任何組。
多播地址沒有所謂的子網(wǎng)掩碼。
E類地址
E類地址雖然被定義,但卻為IETF(Internet Engineering Task Force,Internet工程任務(wù)組)保留作科研使用,因此Internet上
沒有可用的E類地址。
E類地址的第一個八位組的前4位恒為1,因此有效地地址范圍從240.0.0.0到255.255.255.255。
E類地址:
1111xxxx xxxxxxxx xxxxxxxx xxxxxxxx
掩碼
網(wǎng)絡(luò)設(shè)備如何區(qū)分網(wǎng)絡(luò)地址(網(wǎng)絡(luò)ID)和主機地址(主機ID)呢?這里就要引出掩碼這個概念。網(wǎng)絡(luò)設(shè)備通過使用掩碼來確
定IP地址的組成,具體來說,就是通過掩碼可以確定哪一部分屬于網(wǎng)絡(luò),哪一部分屬于子網(wǎng),哪一部分屬于主機。
子網(wǎng)掩碼
掩碼由32位0和1組成,與IP地址的組成相似,既可以用二進制表示,也可以用點分十進制表示表示。與IP地址的表示不
同,表示掩碼的1是連續(xù)的,而不是由0和1混合組成。掩碼包含了兩個(既組成部分):網(wǎng)絡(luò)域和主機域,這些域分別代表
網(wǎng)絡(luò)ID和主機ID
十進制表示 255 255 0 0
二進制表示 11111111 11111111 11111111 11111111
作用表示 網(wǎng)絡(luò)域 網(wǎng)絡(luò)域 主機域 主機域
表示IP地址的 網(wǎng)絡(luò)ID 網(wǎng)絡(luò)ID 主機ID 主機ID
掩碼用于劃分IP地址的那些位屬于網(wǎng)絡(luò)ID,那些屬于主機ID。每一類地址都有缺省的掩碼,A類地址的缺省掩碼為255.0.0.0
B類地址的缺省掩碼為255.255.0.0,C類地址的缺省掩碼為255.255.255.0。
A類、B類、C類IP地址缺省掩碼的表示:
IP地址的類別 十進制表示 二進制表示
A類 255.0.0.0 11111111.00000000.00000000.00000000
B類 255.255.0.0 11111111.11111111.00000000.00000000
C類 255.255.255.0 11111111.11111111.11111111.00000000
前面接收的是掩碼的缺省狀態(tài),可以發(fā)現(xiàn)每一類IP地址僅有一個缺省的掩碼。這在實際的IP地址管理中是很不實用的,所以
經(jīng)常要根據(jù)應(yīng)用和管理的需要重新劃分IP地址的網(wǎng)絡(luò)ID和主機ID,這時就引入了子網(wǎng)掩碼的概念。
子網(wǎng)掩碼主要用于子網(wǎng)的劃分。缺省情況下,一個IP地址由網(wǎng)絡(luò)ID和主機ID組成,但通過子網(wǎng)掩碼的劃分,可以將ID中的
部分IP地址作為網(wǎng)絡(luò)ID使用,將缺省狀態(tài)相愛屬于主機ID的這部分IP地址稱為子網(wǎng)ID。這樣,在引入子網(wǎng)掩碼后,IP地址將
由網(wǎng)絡(luò)ID、子網(wǎng)ID和主機ID共3部分組成。
有了子網(wǎng)掩碼,原來的網(wǎng)絡(luò)結(jié)構(gòu)和層次發(fā)生了變化。具體來說,子啊使用了子網(wǎng)掩碼后,原來“網(wǎng)絡(luò)ID - >主機ID”的結(jié)構(gòu)
將轉(zhuǎn)換成“網(wǎng)絡(luò)ID - > 子網(wǎng)ID - > 主機ID”的結(jié)構(gòu)。
子網(wǎng)掩碼的應(yīng)用打破了缺省掩碼的限制,使用戶可以根據(jù)實際需要自行定義和管理網(wǎng)絡(luò)地址。因為子網(wǎng)掩碼確定了子網(wǎng)域
的界限,所以當給子網(wǎng)域分配了一些特定的位數(shù)(連續(xù)的二進制位數(shù)1)后,剩余的位數(shù)就是新的主機域了。例如,172.16.1.1
為B類IP地址,缺省掩碼為255.255.0.0,即該32位IP地址的前16位表示網(wǎng)絡(luò)域,后16位表示主機域。
未劃分子網(wǎng)后的結(jié)構(gòu):
網(wǎng)絡(luò) 主機
11111111 11111111 00000000 00000000
255 255 0 0
如果將原來屬于主機域的前8位作為子網(wǎng)域,這時這個B類網(wǎng)絡(luò)的掩碼將變?yōu)?55.255.255.0,主機域?qū)⒂稍瓉淼?6位變成
了8位。
劃分子網(wǎng)后的結(jié)構(gòu):
網(wǎng)絡(luò) 子網(wǎng) 主機
11111111 11111111 11111111 00000000
255 255 255 0
子網(wǎng)掩碼的確定方法
子網(wǎng)掩碼實際上是一個過濾碼,將IP地址和子網(wǎng)掩碼“按位求與”就可以過濾出IP地址中應(yīng)該作為網(wǎng)絡(luò)地址的那一部分。
按位求與就是將IP地址中的每一位和相應(yīng)的子網(wǎng)掩碼今進行與(&)運算(即進行二進制的加法運算)。
以下就是172.16.1.1 255.255.0.0進行子網(wǎng)掩碼運算的一個實例
網(wǎng)絡(luò) 主機
172.16.1.1 10101100 00010000 00000001 00000001
255.255.0.0 11111111 11111111 00000000 00000000
與運算 10101100 00010000 00000000 00000000
經(jīng)過與元算后被過濾出來的172.16.0.0就是172.16.1.1的網(wǎng)絡(luò)地址。通常情況下,在IP地址后加“/n”來表示一個具體的IP
地址(n是子網(wǎng)掩碼中“1”的個數(shù),如子網(wǎng)掩碼“255.255.255.0”通常寫成“/24”)。