不管是學習網絡還是上網,IP地址都是出現頻率非常高的詞。Windows系統中設置IP地址的界面如圖1所示,圖中出現了IP地址、子網掩碼、默認網關和DNS服務器這幾個需要設置的地方,只有正確設置,網絡才能通,那這些名詞都是什么意思呢?學習IP地址的相關知識時還會遇到網絡地址、廣播地址、子網等概念,這些又是什么意思呢?
圖1
要解答這些問題,先看一個日常生活中的例子。如圖2所示,住在北大街的住戶要能互相找到對方,必須各自都要有個門牌號,這個門牌號就是各家的地址,門牌號的表示方法為:北大街+XX號。假如1號住戶要找6號住戶,過程是這樣的,1號在大街上喊了一聲:"誰是6號,請回答。",這時北大街的住戶都聽到了,但只有6號作了回答,這個喊的過程叫"廣播",北大街的所有用戶就是他的廣播范圍,假如北大街共有20個用戶,那廣播地址就是:北大街 21號。也就是說,北大街的任何一個用戶喊一聲能讓"廣播地址-1"個用戶聽到。
圖2
從這個例中可以抽出下面幾個詞:
街道地址:北大街,如果給該大街一個地址則用第一個住戶的地址-1,此例為:北大街0號
住戶的號:如1號、2號等。
住戶的地址:街道地址+XX號,如北大街 1號、北大街 2號等
廣播地址:最后一個住戶的地址+1,此例為:北大街21號
Internet網絡中,每個上網的計算機都有一個像上述例子的地址,這個地址就是IP地址,是分配給網絡設備的門牌號,為了網絡中的計算機能夠互相訪問,IP地址=網絡地址+主機地址,圖1中的IP地址是192.168.100.1,這個地址中包含了很多含義。如下所示:
網絡地址(相當於街道地址): 192.168.100.0
主機地址(相當於各戶的門號): 0.0.0.1
IP地址(相當於住戶地址): 網絡地址+主機地址=192.168.100.1
廣播地址: 192.168.100.255
這些地址是如何計算出來的呢?為什么計算這些地址呢?要想知道如何,先要明白一個道理,學習網絡的目的就是如何讓網絡中的計算機相互通訊,也就是說要圍繞着"通"這個字來學習和理解網絡中的概念,而不是只為背幾個名詞。
注:192.168.100.1是私有地址,不能直接在Internet網絡中應用,上Internet要轉為公有地址,詳細說明見后文。
為什么要計算網絡地址
一句話就是讓網絡中的計算機能夠相互通訊。先看看最簡單的網絡,圖3中是用網線(交叉線)直接將兩台計算機連起來。下面是幾種IP地址設置,看看在不同設置下網絡是通還是不通。
1、設置1號機的IP地址為192.168.0.1子網掩碼為255.255.255.0;2號機的IP地址為192.168.0.200子網掩碼為255.255.255.0,這樣它們就能正常通訊。
2、如果1號機地址不變,將2號機的IP地址改為192.168.1.200子網掩碼還是為255.255.255.0,那這兩台就無法通訊。
3、設置1號機的IP地址為192.168.0.1子網掩碼為255.255.255.192,2號機的IP地址為192.168.0.200子網掩碼為255.255.255.192,注意和第1種情況的區別在於子網掩碼,1為255.255.255.0本例是255.255.255.192,這兩台計算機就不能正常通訊。
圖3
第1種情況能通是因為這兩台計算機處在同一網絡192.168.0.0,所以能通,而2、3種情況下兩台計算機處在不同的網絡,所以不通。
這里先給個結論:用網線直接連接或通過HUB或普通交換機間連接的計算機之間要能夠相互通,計算機必須要在同一網絡,也就是說它們的網絡地址必須相同,而且主機地址必須不一樣。如果不在一個網絡就無法通。這就像我們上面舉的例子,同是北大街的住戶由於街道名稱都是北大街,且各自的門牌號不同,所以能夠相互找到對方。
計算網絡地址就是判斷網絡中的計算機是否在同一網絡,在就能通,不在就不能通。注意,這里說的是否在同一網絡指的是IP地址而不是物理連接。那么如何計算呢?
如何計算網絡地址
我們日常生活中的地址如:北大街1號,從字面上就能看出街道地址是北大街,而我們從IP地址中卻難以看出網絡地址,要計算網絡地址,必須借助我們上邊提到過的子網掩碼。
計算過程是這樣的,將IP地址和子網掩碼都換算成二進制,然后進行與運算,結果就是網絡地址。與運算如下所示,上下對齊,1位1位的算,1與1 = 1 ,其余組合都為0
圖4
例如:計算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)將二者進行與運算
圖5
3)將運算結果換算成十進制,這就是網絡地址。
11001010·01100011·10100000·00000000換算成十進制就是202.99.160.0
現在我們就可以解答上面三種情況的通與不通的問題了。
1、從下面運算結果可看出兩計算機的網絡地址都為192.168.0.0且IP地址不同,所以可以通。
圖6
2、從下面運算結果可以看出1號機的網絡地址為192.168.0.0; 2號機的網絡地址為192.168.1.0 不在一個網絡,所以不通。
圖7
3、從下面運算結果可以看出1號機的網絡地址為192.168.0.0,2號機的網絡地址為192.168.0.192 不在一個網絡,所以不通
圖8
看到這里大家應該明白為何要計算網絡地址和如何計算了,但也許還有很多疑問,如IP地址為什么寫成這樣,子網掩碼到底是怎么回事等等,別急,下面慢慢介紹。
IP地址的介紹
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.
從上圖可以看出:
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地址
- 私有地址
上面提到IP地址在全世界范圍內唯一,看到這句話你可能有這樣的疑問,像192.168.0.1這樣的地址在許多地方都能看到,並不唯一,這是為何?Internet管理委員會規定如下地址段為私有地址,私有地址可以自己組網時用,但不能在Internet網上用,Internet網沒有這些地址的路由,有這些地址的計算機要上網必須轉換成為合法的IP地址,也稱為公網地址,這就像有多到的世界公園,每個公園內都可命名相同的大街,如香榭麗舍大街,但對外我們只能看到公園的地址和真正的香榭麗舍大街。下面是A、B、C類網絡中的私有地址段。你自己組網時就可以用這些地址了。 公網Ip和私網ip(點擊查看)
10.0.0.0~10.255.255.255
172.16.0.0~172.131.255.255
192.168.0.0~192.168.255.255
- 回送地址
A類網絡地址127是一個保留地址,用於網絡軟件測試以及本地機進程間通信,叫做回送地址(loopback address)。無論什么程序,一旦使用回送地址發送數據,協議軟件立即返回之,不進行任何網絡傳輸。含網絡號127的分組不能出現在任何網絡上。
小技巧:
Ping 127.0.0.1,如果反饋信息失敗,說明IP協議棧有錯,必須重新安裝TCP/IP協議。如果成功,ping本機IP地址,如果反饋信息失敗,說明你的網卡不能和IP協議棧進行通信。
如果網卡沒接網線,用本機的一些服務如Sql Server、IIS等就可以用127.0.0.1這個地址。
- 廣播地址
TCP/IP規定,主機號全為"1"的網絡地址用於廣播之用,叫做廣播地址。所謂廣播,指同時向同一子網所有主機發送報文。
- 網絡地址
TCP/IP協議規定,各位全為"0"的網絡號被解釋成"本"網絡。由上可以看出:一、含網絡號127的分組不能出現在任何網絡上;二、主機和網關不能為該地址廣播任何尋徑信息。由以上規定可以看出,主機號全"0"全"1"的地址在TCP/IP協議中有特殊含義,一般不能用作一台主機的有效地址。
子網掩碼
從上面的例子可以看出,子網掩碼的作用就是和IP地址與運算后得出網絡地址,子網掩碼也是32bit,並且是一串1后跟隨一串0組成,其中1表示在IP地址中的網絡號對應的位數,而0表示在IP地址中主機對應的位數。 掩碼(英語:Mask)在計算機學科及數字邏輯中指的是一串二進制數字,通過與目標數字的按位操作,達到屏蔽指定位而實現需求。
- 標准子網掩碼
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類分析同上。
- 特殊的子網掩碼
標准子網掩碼出現的都是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這樣各地址就不屬於一個網絡了。下面將對子網划分作詳細介紹。
當子網掩碼為255·255·255·0時,通過下式計算網絡地址為192.168.0.0
192·168·0·1 11000000·10101000·00000000·00000001
192·168·0·200 11000000·10101000·00000000·11001000
255·255·255·0 11111111·11111111·11111111·00000000
當子網掩碼為255·255·255·192時,通過下式計算網絡地址為192.168.0.192
通過IP地址和子網掩碼與運算計算相關地址
知道ip地址和子網掩碼后可以算出:
1、 網絡地址
2、 廣播地址
3、 地址范圍
4、 本網有幾台主機
例1:下面例子IP地址為192·168·100·5 子網掩碼是255·255·255·0。算出網絡地址、廣播地址、地址范圍、主機數。
分步驟計算
1) 將IP地址和子網掩碼換算為二進制,子網掩碼連續全1的是網絡地址,后面的是主機地址。 虛線前為網絡地址,虛線后為主機地址
2)IP地址和子網掩碼進行與運算,結果是網絡地址
3) 將上面的網絡地址中的網絡地址部分不變,主機地址變為全1,結果就是廣播地址。
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位。
主機的數量 = 28 – 2 = 254
總體計算
我們把上邊的例子合起來計算一下過程如下:
例2: IP地址為128·36·199·3 子網掩碼是255·255·240·0。算出網絡地址、廣播地址、地址范圍、主機數。
1) 將IP地址和子網掩碼換算為二進制,子網掩碼連續全1的是網絡地址,后面的是主機地址, 虛線前為網絡地址,虛線后為主機地址
2)IP地址和子網掩碼進行與運算,結果是網絡地址
3)將運算結果中的網絡地址不變,主機地址變為1,結果就是廣播地址。
4) 地址范圍就是含在本網段內的所有主機
網絡地址+1即為第一個主機地址,廣播地址-1即為最后一個主機地址,由此可以看出
地址范圍是: 網絡地址+1 至 廣播地址-1
本例的網絡范圍是:128·36·192·1 至 128·36·207·254
5) 主機的數量
主機的數量 = 2二進制位數的主機 - 2
主機的數量 = 212 – 2 = 4094
減2是因為主機不包括網絡地址和廣播地址。
從上面兩個例子可以看出不管子網掩碼是標准的還是特殊的,計算網絡地址、廣播地址、地址數時只要把地址換算成二進制,然后從子網掩碼處分清楚連續1以前的是網絡地址,后是主機地址進行相應計算即可。
划分子網
上面的例子192.168.0.0 子網掩碼為255.255.255.0的這個網絡中可容納254台主機,如果想把一個網絡分成兩個以上的網絡該如何分呢?IP地址是由網絡地址+主機地址組成的,增加網絡部分的長度,減少主機地址的長度就能將一個網絡划分成數個網絡。具體的解決辦法就是增加子網掩碼中連續1,這樣相應的主機地址就減少了。看個具體的例子就明白了。
子網掩碼由255·255·255·0變為255·255·255·192后網絡位和主機位變化如下:
可看出當子網掩碼從網絡位從255·255·255·0變為255·255·255·192時網絡位由24位變成26位,IP地址前24位是規定的網絡位數,是不能改變的,而從主機借來的25、26兩位是可以改變的。
如上所示:IP地址借來的兩位有四種變化00、01、10、11。也就是說將一個網絡分成了四個網絡。我們稱分出來的網絡叫子網。
下面我們計算一下每個子網的網絡地址、廣播地址和地址范圍
從下表可以清楚看出四個子網的相關數據,這里特別需要指出的是如果所在網絡中不允許使用全0和全1的網絡,那子網1和4因為分別是全0和全1組合,不能使用,該網絡只能分為2、3兩個子網。
實例1:若ISP分配給某單位一個B類網絡130·20·0·0子網掩碼255·255·0·0,現在需要划分4個子網。
計算步驟如下:
1) 根據需要的子網數計算出需要從主機位借幾位
22-2=2 23-2=6 24-2=14
減2是因為去掉全0和全1組合,借兩位分為2個子網,借4位分為14個子網,可見應該借3位分為6個子網。
2)根據借的位數改變子網掩碼
借3 位后子網掩碼由原來的
255·255·0·0 11111111·11111111·00000000·00000000
變為 255·255·224·0 11111111·11111111·11100000·00000000
3) 計算一下每個子網的網絡地址、廣播地址和地址范圍,下面只列出算式給出最后結果。計算方法過程同上。
下表是A、B、C類網絡中常用子網划分對照表:(表中沒有排除全1和全0組合)
為什么不使用全0和全1子網
上面提到一般不使用全0和全1子網,為什么呢?
上例中192·168·0·0掩碼255.255.255.192可分成4個子網,第一個子網192.168.0.1 - 192.168.0.62和最后一個子網192.168.0.193 - 192.168.0.254通常也被保留,不能使用.原因是,第一個子網的網絡地址192.168.0.0和最后一個子網的廣播地址192.168. 0.255具有二意性。先看這個大的C類網絡地址和廣播地址。192.168.0.0是它的網絡地址,192.168.0.255是它的廣播地址。顯然,它們分別與第一個子網的網絡地址和最后一個子網的廣播地址相重了。
那么怎樣區分192.168.0.0到底是哪個網絡的網絡地址呢? 答案是:把子網掩碼加上去。
192.168.0.0 255.255.255.0 中192.168.0.0是大C類網絡的網絡地址。
192.168.0.0 255.255.255.192 中192.168.0.0 是第一個子網的網絡地址。
192.168.0.255 255.255.255.0 中192.168.0.255是大C類網絡的廣播地址。
192.168.0.255 255.255.255.192 中192.168.0.255是最后一個子網的廣播地址。
帶上掩碼,它們的二意性就不存在了。
所以,在嚴格按照TCP/IP A B C D給IP地址分類的環境下,為了避免二意性,全0和全1網段都不讓使用.這種環境我們叫作Classful(有類路由)。在這種環境下,子網掩碼只在所定義的路由器內有效,掩碼信息到不了其它路由器.比如RIP-1,它在做路由廣播時根本不帶掩碼信息,收到路由廣播的路由器因為無從知道這個網絡的掩碼,只好照標准TCP/IP的定義賦予它一個掩碼.比如,拿到10.X.X.X,就認為它是A類,掩碼是255.0.0.0;拿到一個204.X.X.X,就認為它是C類,掩碼是255.255.255.0.但在Classless的環境下,掩碼任何時候都和IP地址成對地出現,這樣,前面談到的二意性就不會存在。
是Classful還是Classless取決於你在路由器上運行的路由協議,一個路由器上可同時運行Classful和Classless的路由協議。RIP1是Classful的,它在做路由廣播時不帶掩碼信息;OSPF,EIGRP,BGP4是Classless的,它們在做路由廣播時帶掩碼信息,它們可以同時運行在同一台路由器上。在CISCO路由器上,缺省你可以使用全1網段,但不能使用全0網段。所以,當你在CISCO路由器上給端口定義IP地址時,該IP地址不能落在全0網段上。如果你配了,你會得到一條錯誤信息。使用IP SUBNET-ZERO命令之后,你才能使用全0網段。另外要強調的是,使用了IP SUBNET-ZERO命令之后,如果路由協議使用的是CLASSFUL的(如RIP1),雖然你定義成功了,但那個子網掩碼還是不會被RIP1帶到它的路由更新報文中。即IP SUBNET-ZERO 命令不會左右路由協議的工作。總之,TCP/IP協議中,全0和全1網段因為具有二意性而不能被使用。CISCO缺省使全1網段可以被使用,但全0網段只有在配置了IP SUBNET-ZERO后方可被使用。
注:Rip1與Rip2的 區別
RIP1是有類路由(classful)協議,它們在宣告路由信息時不攜帶網絡掩碼
RIP2是無類路由(classless)協議,它們在宣告路由信息時攜帶網絡掩碼
RIP1是廣播發送路由更新,廣播地址為255.255.255.255
RIP2是組播發送路由更新,廣播地址為224.0.0.9
無分類編址CIDR
實例:某企業需要1000個IP地址,按上面學的知識,有兩種分配方案,一是分配給該校1個B類地址,地這樣會造成216-2-1000=64534個地址浪費。二是分配4個C類地址,這樣會造成每個路由器的路由表增加4個相應的項。
另外,上面說的子網划分的解決方案存在一個問題就是浪費地址,過多的子網會導致主機地址減少。在每個子網內,總是有兩個地址用於網絡地址和廣播地址。如果子網過多,地址數量最多有可能會減少一半。舉例說,一個C類網絡通常支持254個主機。然而,把C類網絡分成64個子網,這樣每個子網分給主機的地址只有2個,主機地址就會從254個減少到128個。在IPv4中這樣的做法是非常不可取的。
如何解決呢?方法就是丟棄分類地址概念,采用CIDR(無類型域間路由,Classless Inter-Domain Routing)
CIDR采用13~27位可變網絡ID,而不是A-B-C類網絡所用的固定的1字節、2字節和3字節。CIDR消除了子網的概念,IP地址=網絡前綴+主機號。使用斜線記法,在IP地址后加上一個斜線“/”,然后寫上網絡前綴所占的位數,如:20.1.1.1 255.192.0.0 按CIDR記為20.1.1.1/10,10表示連續10個1,也就是網絡前綴占10位。再例如,CIDR地址200.1.1.2/24表示前24位用作網絡前綴。
CIDR最大的好處就是大大縮減了路由器的路由表大小,而且減少了地址浪費。CIDR(Classless Inter-Domain Routing,無類型域間路由)的基本思想是取消IP地址的分類結構,將多個地址塊聚合在一起生成一個更大的網絡,以包含更多的主機。CIDR支持路由聚合,能夠將路由表中的許多路由條目合並為成更少的數目,因此可以限制路由器中路由表的增大,減少路由表項。
CIDR最主要的特點有兩個:
1)CIDR消除了傳統的A類、B類和C類地址以及划分子網的概念,因而可以更加有效地分配IPv4的地址空間,並且可以在新的IPv6使用之前容許因特網的規模繼續增長。
2)CIDR將網絡前綴都相同的連續的IP地址組成“CIDR地址塊”,地址是連續的。不然,就不可能設計出包含所需地址、但排除不需要地址的前綴。為了達到這個目的,超網塊(supernet block)即大塊的連續地址就分配給ISP,然后ISP負責在用戶當中划分這些地址,從而減輕了ISP自有路由器的負擔。
我們回到上面的例子,ISP擁有地址塊200.0.64.0/18,某企業需要大約1000個IP地址, 210 = 1024,所占的地址位是10位,ISP分給該企業的地址塊可以是:200.0.68.0/22(網絡位22位,主機位10位)。
假如該企業下分四個子公司,個子公司需要的IP地址是:A公司500個、B公司250個、C公司120個、D公司120個。問如何用CIDR分配這些地址。
要解答這個問題,先分析一個不同機構的地址塊。
1)ISP:200.0.64.0/18
計算得出該ISP共有地址總數為214=16384個地址。共有26=64個C類網(6是第三段地址取6位)。
2) 企業需要大約1000個IP地址, 210 = 1024,所占的地址位是10位,網絡位占22位,將ISP中的200.0.64.0/22分給企業可滿足要求。
假定企業已從ISP處獲得:200.0.64.0/22
3)根據各單位計算出需要的主機和網絡位數,如下表所示:
4) 根據上表可以將200.0.64.0/22再划分為:
5)當你看到CIDR的標記方法也許會想,如圖1所示界面中沒有“/”,其實把計算出網絡位數換算成十進制就行了。如A公司的掩碼為:255.255.254.0, B公司的掩碼為:255.255.255.0,C和D公司的掩碼為255.255.255.128
6)從上面可以清楚看出地址聚合的概念,此例ISP擁有64個C類網絡,如果不用CIDR,那在與該ISP相連的每個路由器的路由表中都有64個路由項,而采用CIDR后,只需用路由聚合后的一個項目200.0.64.0/18就能找到該ISP,200.0.64.0/22就能找到該企業。這樣就大大減少了路由項。關於路由的問題不是本文的重點,有不清楚的地方請參閱其它資料。另外,支持CIDR的協議可以用全0和全1的網絡,這樣大大節約了地址。
IP地址計算的工具
IP Subnet Calculator Version 3.2.1.0, 界面如下:
網關
網關,大家都知道,從一個房間走到另一個房間,必然要經過一扇門。同樣,從一個網絡向另一個網絡發送信息,也必須經過一道“關口”,這道關口就是網關。顧名思義,網關(Gateway)就是一個網絡連接到另一個網絡的“關口”。
按照不同的分類標准,網關也有很多種。TCP/IP協議里的網關是最常用的,在這里我們所講的“網關”均指TCP/IP協議下的網關。 那么網關到底是什么呢?
網關實質上是一個網絡通向其他網絡的IP地址。比如有網絡A和網絡B,網絡A的IP地址范圍為“192.168.1.1~192. 168.1.254”,子網掩碼為255.255.255.0;網絡B的IP地址范圍為“192.168.2.1~192. 168.2.254”,子網掩碼為255.255.255.0。在沒有路由器的情況下,兩個網絡之間是不能進行TCP/IP通信的,即使是兩個網絡連接在同一台交換機(或集線器)上,TCP/IP協議也會根據子網掩碼(255.255.255.0)判定兩個網絡中的主機處在不同的網絡里。而要實現這兩個網絡之間的通信,則必須通過網關。如果網絡A中的主機發現數據包的目標主機不在本地網絡中,就把數據包轉發給它自己的網關,再由網關轉發給網絡B的網關,網絡B的網關再轉發給網絡B的某個主機。網絡B向網絡A轉發數據包的過程也是如此 所以說,只有設置好網關的IP地址,TCP/IP協議才能實現不同網絡之間的相互通信。那么這個IP地址是哪台機器的IP地址呢?網關的IP地址是具有路由功能的設備的IP地址,具有路由功能的設備有路由器、啟用了路由協議的服務器(實質上相當於一台路由器)、代理服務器(也相當於一台路由器)。
路由器
Windows下叫默認網關,網關就是路由,路由就是網關不要蒙
如果搞清了什么是網關,默認網關也就好理解了。就好像一個房間可以有多扇門一樣,一台主機可以有多個網關。默認網關的意思是一台主機如果找不到可用的網關,就把數據包發給默認指定的網關,由這個網關來處理數據包。現在主機使用的網關,一般指的是默認網關。
如何設置默認網關 一台電腦的默認網關是不可以隨隨便便指定的,必須正確地指定,否則一台電腦就會將數據包發給不是網關的電腦,從而無法與其他網絡的電腦通信。默認網關的設定有手動設置和自動設置兩種方式。
-
手動設置:手動設置適用於電腦數量比較少、TCP/IP參數基本不變的情況,比如只有幾台到十幾台電腦。因為這種方法需要在聯入網絡的每台電腦上設置“默認網關”,非常費勁,一旦因為遷移等原因導致必須修改默認網關的IP地址,就會給網管帶來很大的麻煩,所以不推薦使用。需要特別注意的是:默認網關必須是電腦自己所在的網段中的IP地址,而不能填寫其他網段中的IP地址。
-
自動設置:自動設置就是利用DHCP服務器來自動給網絡中的電腦分配IP地址、子網掩碼和默認網關。這樣做的好處是一旦網絡的默認網關發生了變化時,只要更改了DHCP服務器中默認網關的設置,那么網絡中所有的電腦均獲得了新的默認網關的IP地址。這種方法適用於網絡規模較大、TCP/IP參數有可能變動的網絡。另外一種自動獲得網關的辦法是通過安裝代理服務器軟件(如MS Proxy)的客戶端程序來自動獲得,其原理和方法和DHCP有相似之處。由於篇幅所限,就不再詳述了。
缺省網關
缺省網關(Default Gateway)是計算機網絡中一個如何將數據包轉發到其他網絡中的節點。在一個典型的TCP / IP網絡,節點(如服務器、工作站和網絡設備)都有一個定義的默認路由設置(指向默認網關)。可以在沒有特定路由的情況下,明確出發送數據包的下一跳IP地址。
可以看出缺省網關就是默認網關,那么有人會說既然有一樣為什么又憑空多出來一個缺省網關,我的理解是這樣的,應該說默認網關是缺省網關的一個子集。缺省網關有一個定義的默認路由設置(指向默認網關),缺省網關就相當於一個代理服務器暫時管理發送的數據包,當發送到目標主機時先由目標主機的缺省網關接收再找到對應的默認網關,就相當於缺省網關是父類,默認網關是子類~~
DNS服務器
域名服務器(Domain Name Server)。在Internet上域名與IP地址之間是一一對應的,域名雖然便於人們記憶,但機器之間只能互相認識IP地址,它們之間的轉換工作稱為域名解析,域名解析需要由專門的域名解析服務器來完成,DNS就是進行域名解析的服務器 。
DHCP服務器
DHCP指的是由服務器控制一段IP地址范圍,客戶機登錄服務器時就可以自動獲得服務器分配的IP地址和子網掩碼。提升地址的使用率。
MAC地址
MAC地址就如同我們身份證上的身份證號碼,具有全球唯一性。MAC(Media Access Control,介質訪問控制)地址
- 前24位叫做組織唯一標志符(Organizationally Unique Identifier,即OUI),是由IEEE的注冊管理機構給不同廠家分配的代碼,區分了不同的廠家。
-
后24位是由廠家自己分配的,稱為擴展標識符。同一個廠家生產的網卡中MAC地址后24位是不同的。
網卡的物理地址通常是由網卡生產廠家燒入網卡的EPROM(一種閃存芯片,通常可以通過程序擦寫),它存儲的是傳輸數據時真正賴以標識發出數據的電腦和接收數據的主機的地址。
也就是說,在網絡底層的物理傳輸過程中,是通過物理地址來識別主機的,它一定是全球唯一的。比如,著名的以太網卡,其物理地址是48bit(比特位)的整數,如:44-45-53-54-00-00,以機器可讀的方式存入主機接口中。以太網地址管理機構(除了管這個外還管別的)(IEEE)(IEEE:電氣和電子工程師協會)將以太網地址,也就是48比特的不同組合,分為若干獨立的連續地址組,生產以太網網卡的廠家就購買其中一組,具體生產時,逐個將唯一地址賦予以太網卡。
在一個穩定的網絡中,IP地址和MAC地址是成對出現的。如果一台計算機要和網絡中另一外計算機通信,那么要配置這兩台計算機的IP地址,MAC地址是網卡出廠時設定的,這樣配置的IP地址就和MAC地址形成了一種對應關系。在數據通信時,IP地址負責表示計算機的網絡層地址,網絡層設備(如路由器)根據IP地址來進行操作;MAC地址負責表示計算機的數據鏈路層地址,數據鏈路層設備(如交換機)根據MAC地址來進行操作。IP和MAC地址這種映射關系由ARP(Address Resolution Protocol,地址解析協議)協議完成。
端口號
端口包括物理端口和邏輯端口。物理端口是用於連接物理設備之間的接口,邏輯端口是邏輯上用於區分服務的端口。TCP/IP協議中的端口就是邏輯端口,通過不同的邏輯端口來區分不同的服務。端口有什么用呢?我們知道,一台擁有IP地址的主機可以提供許多服務,比如Web服務、FTP服務、SMTP服務等,這些服務完全可以通過1個IP地址來實現。那么,主機是怎樣區分不同的網絡服務呢?顯然不能只靠IP地址,因為IP 地址與網絡服務的關系是一對多的關系。實際上是通過“IP地址+端口號”來區 分不同的服務的。
- 公認端口(Well-Known Ports)
這類端口也常稱之為"常用端口"。這類端口的端口號從0到1023,它們緊密綁定於一些特定的服務。通常這些端口的通信明確表明了某種服務的協議,這種端口是不可再重新定義它的作用對象。80端口實際上總是HTTP通信所使用的,而23號端口則是Telnet服務專用的。 -
注冊端口(Registered Ports)
端口號從1025到49151。分配給用戶進程或應用程序。這些進程主要是用戶選擇安裝的一些應用程序,而不是分配好的公認端口的常用程序。 -
動態和/或私有端口(Dynamic and/or Private Ports)
之所以稱為動態端口,因為它一般不固定分配某種服務,而是動態分配。
補充
到開始的問題,圖1中出現的IP地址、子網掩碼想必大家已經很清楚了,那默認網關和DNS服務器填什么呢?
答:同一子網的計算機互相訪問是不需要添網關的,不同子網的計算機互相訪問就需要添網關地址,該地址就是路由器和本子網連接的接口地址,網關地址一定是和本機地址在一個子網。DNS服務就是將IP地址解析成域名如www.google.com,該服務器的地址一般是ISP提供的,這個地址只要是合法的DNS服務器就行,如河北的可以添北京的DNS服務器地址。
本文下載 徹底明白IP地址的含義(完整版).doc