TCP/IP基礎(chǔ)-電腦教程
若公司不上Internet,那一定不會煩惱IP Address的問題,因為可以任意使用所有的IP Address,不管是A Class或是B Class,這個時候不會想到要用Sub Net,但若是上Internet那IP Address便彌足珍貴了,目前全球一陣Internet熱,IP Address已經(jīng)愈來愈少了,而所申請的IP Address目前也趨保守,而且只有經(jīng)申請的IP Address能在Internet使用,但對某些公司只能申請到一個C CLass的IP Address,但又有多個點需要使用,那這時便需要使用到Subnet,這篇短文說明Subnet的原理及如何規(guī)劃。
1.Subnet Mask的介紹
設(shè)定任何網(wǎng)路上的任何設(shè)備不管是主機、PC、Router等皆需要設(shè)定IP Address,而跟隨著IP Address的是所謂的NetMask,這個NetMask主要的目的是由IP Address中也能獲得NetworkNumber,也就是說IP Address和Net Mask作AND而得到Network Number,如下所示:
IP Address
192.10.10.611000000.00001010.00001010.00000110
NetMask
255.255.255.011111111.11111111.11111111.00000000
AND
-------------------------------------------------------------------
Network Number
192.10.10.011000000.00001010.00001010.00000000
NetMask有所謂的預(yù)設(shè)值,如下所示
Class IP Address 范圍 Net Mask
A 1.0.0.0-126.255.255.255255.0.0.0
B 128.0.0.0-191.255.255.255255.255.0.0
C 192.0.0.0-223.255.255.255255.255.255.0
在預(yù)設(shè)的Net Mask都只有255的值,在談到Subnet Mask時這個值便不一定是255了。在完整一組C Class中如203.67.10.0-203.67.10.255NetMask255.255.255.0,203.67.10.0稱之Network Number(將IP Address和Netmask作AND),而203.67.10.255是Broadcast的IP Address,所以這?兩者皆不能使用,實際只能使用203.67.10.1--203.67.10.254等254個IP Address,這是以255.255.255.0作NetMask的結(jié)果,而所謂Subnet Msk尚可將整組C Class分成數(shù)組Network Number,這要在NEtMask作手腳,若是要將整組C CLass分成2個Network Number那NetMask設(shè)定為255.255.255.192,若是要將整組C CLass分成8組Network Number則NetMask要為255.255.255.224,這是怎麼來的,由以上知道Network Number是由IP Address和NetMask作AND而來的,而且將NetMask以二進位表示法知道是1的會保留,而為0的去掉
192.10.10.193--11000000.00001010.00001010.10000001
255.255.255.0--11111111.11111111.11111111.00000000
--------------------------------------------------------------
192.10.10.0--11000000.00001010.00001010.00000000
以上是以255.255.255.0為Net Mask的結(jié)果,Network Number是192.10.10.0,若是使用255.255.255.224作Net Mask結(jié)果便有所不同
192.10.10.193--11000000.00001010.00001010.10000000
255.255.255.224--11111111.11111111.11111111.11100000
--------------------------------------------------------------
192.10.10.192--11000000.00001010.00001010.10000000
此時Network Number變成了192.10.10.192,這便是Subnet。那要如何決定所使用的NetMask,255.255.255.224以二進位表示法為11111111.11111111.11111111.11100000,變化是在 後一組,11100000便是224,以三個Bit可表示2的3次方便是8個Network Number
NetMask二進位表示法可分幾個Network
255.255.255.011111111.11111111.11111111.000000001
255.255.255.128
11111111.11111111.11111111.100000002
255.255.255.192
11111111.11111111.11111111.110000004
255.255.255.224
11111111.11111111.11111111.111000008
255.255.255.240
11111111.11111111.11111111.1111000016
255.255.255.248
11111111.11111111.11111111.1111100032
255.255.255.252
11111111.11111111.11111111.1111110064
以下使用255.255.255.224將C Class203.67.10.0分成8組Net work Number,各個Network Number及其Broadcast IP Address及可使用之IP Address序號Network Number Broadcast可使用之IP Address
(1)203.67.10.0--203.67.10.31
203.67.10.1--203.67.10.30
(2)203.67.10.32--203.67.10.63
203.67.10.33--203.67.10.62
(3)203.67.10.64--203.67.10.95
203.67.10.65--203.67.10.94
(4)203.67.10.96--203.67.10.127
203.67.10.97--203.67.10.126
(5)203.67.10.128--203.67.10.159
203.67.10.129--203.67.10.158
(6)203.67.10.160--203.67.10.191
203.67.10.161--203.67.10.190
(7)203.67.10.192--203.67.10.223
203.67.10.193--203.67.10.222
(8)203.67.10.224--203.67.10.255
203.67.10.225--203.67.10.254
可驗證所使用的IP Address是否如上表所示
203.67.10.115--11001011.01000011.00001010.01110011
255.255.255.224--11111111.11111111.11111111.11100000
--------------------------------------------------------------
203.67.10.96--11001011.01000011.00001010.01100000
203.67.10.55--11001011.01000011.00001010.00110111
255.255.255.224--11111111.11111111.11111111.11100000
--------------------------------------------------------------
203.67.10.32--11001011.01000011.00001010.00100000
其他的NetMask所分成的NetworkNumber可自行以上述方法自行推演出來。
2.Subnet的應(yīng)用
使用Subnet是要解決只有一組C Class但需要數(shù)個Network Number的問題,并不是解決IP Address不夠用的問題,因為使用Subnet反而能使用的IP Address會變少,Subnet通常是使用在總公司在臺北,但分公司在臺中,兩者之間使用Router連線,同時也上Internet,但只申請到一組C Class IP Address,過Router又需不同的Network,所以此時就必須使用到Subnet,當(dāng)然二辦公司間可以Remote Bridge連接,那便沒有使用Subnet的問題,這點在此不討論,所以在以上情況下的網(wǎng)路連線架構(gòu)及IP Address的使用
二.TCP/IP協(xié)議簇簡介
TCP/IP(傳輸控制協(xié)議/網(wǎng)間協(xié)議)是一種網(wǎng)絡(luò)通信協(xié)議,它規(guī)范了網(wǎng)絡(luò)上的所有通信設(shè)備,尤其是一個主機與另一個主機之間的數(shù)據(jù)往來格式以及傳送方式。TCP/IP是INTERNET的基礎(chǔ)協(xié)議,也是一種電腦數(shù)據(jù)打包和尋址的標(biāo)準方法。在數(shù)據(jù)傳送中,可以形象地理解為有兩個信封,TCP和IP就像是信封,要傳遞的信息被劃分成若干段,每一段塞入一個TCP信封,并在該信封面上記錄有分段號的信息,再將TCP信封塞入IP大信封,發(fā)送上網(wǎng)。在接受端,一個TCP軟件包收集信封,抽出數(shù)據(jù),按發(fā)送前的順序還原,并加以校驗,若發(fā)現(xiàn)差錯,TCP將會要求重發(fā)。因此,TCP/IP在INTERNET中幾乎可以無差錯地傳送數(shù)據(jù)。在任何一個物理網(wǎng)絡(luò)中,各站點都有一個機器可識別的地址,該地址叫做物理地址.物理地址有兩個
特點:
(1)物理地址的長度,格式等是物理網(wǎng)絡(luò)技術(shù)的一部分,物理網(wǎng)絡(luò)不同,物理地址也不同.
(2)同一類型不同網(wǎng)絡(luò)上的站點可能擁有相同的物理地址.
以上兩點決定了,不能用物理網(wǎng)絡(luò)進行網(wǎng)間網(wǎng)通訊.
在網(wǎng)絡(luò)術(shù)語中,協(xié)議中,協(xié)議是為了在兩臺計算機之間交換數(shù)據(jù)而預(yù)先規(guī)定的標(biāo)準。TCP/IP并不是一個而是許多協(xié)議,這就是為什么你經(jīng)常聽到它代表一個協(xié)議集的原因,而TCP和IP只是其中兩個基本協(xié)議而已。
你裝在計算機-的TCP/IP軟件提供了一個包括TCP、IP以及TCP/IP協(xié)議集中其它協(xié)議的工具平臺。特別是它包括一些高層次的應(yīng)用程序和FTP(文件傳輸協(xié)議),它允許用戶在命令行上進行網(wǎng)絡(luò)文件傳輸。
TCP/IP是美國政府資助的高級研究計劃署(ARPA)在二十世紀七十年代的一個研究成果,用來使全球的研究網(wǎng)絡(luò)聯(lián)在一起形成一個虛擬網(wǎng)絡(luò),也就是國際互聯(lián)網(wǎng)。原始的Internet通過將已有的網(wǎng)絡(luò)如ARPAnet轉(zhuǎn)換到TCP/IP上來而形成,而這個Internet 終成為如今的國際互聯(lián)網(wǎng)的骨干網(wǎng)。
如今TCP/IP如此重要的原因,在于它允許獨立的網(wǎng)格加入到Internet或組織在一起形成私有的內(nèi)部網(wǎng)(Intranet)。構(gòu)成內(nèi)部網(wǎng)的每個網(wǎng)絡(luò)通過一種-做路由器或IP路由器的設(shè)備在物理上聯(lián)接在一起。路由器是一臺用來從一個網(wǎng)絡(luò)到另一個網(wǎng)絡(luò)傳輸數(shù)據(jù)包的計算機。在一個使用TCP/IP的內(nèi)部網(wǎng)中,信息通過使用一種獨立的叫做IP包(IPpacket)或IP數(shù)據(jù)報(IP datagrams)的數(shù)據(jù)單元進--傳輸。TCP/IP軟件使得每臺聯(lián)到網(wǎng)絡(luò)上的計算機同其它計算機“看”起來一模一樣,事實上它隱藏了路由器和基本的網(wǎng)絡(luò)體系結(jié)構(gòu)并使其各方面看起來都像一個大網(wǎng)。如同聯(lián)入以太網(wǎng)時需要確認一個48位的以太網(wǎng)地址一樣,聯(lián)入一個內(nèi)部網(wǎng)也需要確認一個32位的IP地址。我們將它用帶點的十進制數(shù)表示,如128.10.2.3。給定一個遠程計算機的IP地址,在某個內(nèi)部網(wǎng)或Internet上的本地計算機就可以像處在同一個物理網(wǎng)絡(luò)中的兩臺計算機那樣向遠程計算機發(fā)送數(shù)據(jù)。
TCP/IP提供了一個方案用來解決屬于同一個內(nèi)部網(wǎng)而分屬不同物理網(wǎng)的兩臺計算機之間怎樣交換數(shù)據(jù)的問題。這個方案包括許多部分,而TCP/IP協(xié)議集的每個成員則用來解決問題的某一部分。如TCP/IP協(xié)議集中 基本的協(xié)議-IP協(xié)議用來在內(nèi)部網(wǎng)中交換數(shù)據(jù)并且執(zhí)行一項重要的功能:路由選擇--選擇數(shù)據(jù)報從A主機到B主機將要經(jīng)過的路徑以及利用合適的路由器完成不同網(wǎng)絡(luò)之間的跨越(hop)。
TCP是一個更高層次的它允許運行在在不同主機上的應(yīng)用程序相互交換數(shù)據(jù)流。TCP將數(shù)據(jù)流分成小段叫做TCP數(shù)據(jù)段(TCP segments),并利用IP協(xié)議進行傳輸。在大多數(shù)情況下,每個TCP數(shù)據(jù)段裝在一個IP數(shù)據(jù)報中進行發(fā)送。但如需要的話,TCP將把數(shù)據(jù)段分成多個數(shù)據(jù)報,而IP數(shù)據(jù)報則與同一網(wǎng)絡(luò)不同主機間傳輸位流和字節(jié)流的物理數(shù)據(jù)幀相容。由于IP并不能保證接收的數(shù)據(jù)報的順序相一致,TCP會在收信端裝配TCP數(shù)據(jù)段并形成一個不間斷的數(shù)據(jù)流。FTP和Telnet就是兩個非常流行的依靠TCP的TCP/IP應(yīng)用程序。
另一個重要的TCP/IP協(xié)議集的成員是用戶數(shù)據(jù)報協(xié)議(UDP),它同TCP相似但比TCP原始許多。TCP是一個可靠的協(xié)議,因為它有錯誤檢查和握手確認來保證數(shù)據(jù)完整的到達目的地。UDP是一個“不可靠”的協(xié)議,因為它不能保證數(shù)據(jù)報的接收順序同發(fā)送順序相同,甚至不能保證它們是否全部到達。如果有可靠性要求,則應(yīng)用程序避免使用它。同許多TCP/IP工具同時提供的SNMP(簡單網(wǎng)絡(luò)管理協(xié)議)就是一個使用UDP協(xié)議的應(yīng)用例子。
其它TCP/IP協(xié)議在TCP/IP網(wǎng)絡(luò)中工作在幕后,但同樣也發(fā)揮著重要作用。例如地址轉(zhuǎn)換協(xié)議(ARP)將IP地址轉(zhuǎn)換為物理網(wǎng)絡(luò)地址如以太網(wǎng)地址。而與其對應(yīng)的反向地址轉(zhuǎn)換協(xié)議(RARP)做相反的工作,即將物理網(wǎng)絡(luò)地址轉(zhuǎn)換為IP地址。網(wǎng)際控制報文協(xié)議(ICMP)則是一個支持性協(xié)議,它利用IP完成IP數(shù)據(jù)報在傳輸時的控制信息和錯誤信息的傳輸。例如,如果一個路由器不能向前發(fā)送一個IP數(shù)據(jù)報,它就會利用ICMP來告訴發(fā)送者這里出現(xiàn)了問題。
三.TCP/IP網(wǎng)絡(luò)的七層結(jié)構(gòu)模型
網(wǎng)絡(luò)設(shè)計者在解決網(wǎng)絡(luò)體系結(jié)構(gòu)時經(jīng)常使用ISO/OSI(國際標(biāo)準化組織/開放系統(tǒng)互連)七層模型,該模型每一層代表一定層次的網(wǎng)絡(luò)功能。 下面是物理層,它代表著進行數(shù)據(jù)轉(zhuǎn)輸?shù)奈锢斫橘|(zhì),換句話說,即網(wǎng)絡(luò)電纜。其上是數(shù)據(jù)鏈路層,它通過網(wǎng)絡(luò)接口卡提供服務(wù)。 上層是應(yīng)用層,這里運行著使用網(wǎng)絡(luò)服務(wù)的應(yīng)用程序。
TCP/IP是同ISO/OSI模型等價的。當(dāng)一個數(shù)據(jù)單元從網(wǎng)絡(luò)應(yīng)用程序下流到網(wǎng)絡(luò)接口卡,它通過了一列的TCP/IP模塊。這其中的每一步,數(shù)據(jù)單元都會同網(wǎng)絡(luò)另一端對等TCP/IP模塊所需的信息一起打成包。這樣當(dāng)數(shù)據(jù) 終傳到網(wǎng)卡時,它成了一個標(biāo)準的以太幀(假設(shè)物理網(wǎng)絡(luò)是以太網(wǎng))。而接收端的TCP/IP軟件通過剝?nèi)ヒ蕴W(wǎng)幀并將數(shù)據(jù)向上傳輸過TCP/IP棧來為處于接收狀態(tài)的應(yīng)用程序重新恢復(fù)原始數(shù)據(jù)(一種 好的了解TCP/IP工作實質(zhì)的方法,是使用探測程序來觀察網(wǎng)絡(luò)中的到處流動的幀中被不同TCP/IP模塊所加上的信息)。為了勾勒TCP/IP在現(xiàn)實網(wǎng)絡(luò)世界中所扮演的角色,請考慮當(dāng)使用HTTP(超文本傳輸協(xié)議)的Web瀏覽器從連接在Internet上的Web服務(wù)器上獲取一頁HTML數(shù)據(jù)時所發(fā)生的情況。為形成同Web服務(wù)器的虛鏈路,瀏覽器使用一種被抽象地稱為套接口(socket)的高層軟件。為了獲取Web頁,它通過向套接口向套接口寫入HTTPGET命令來向Web服務(wù)器發(fā)出該指令。接下來套接口軟件使用TCP協(xié)議向Web服務(wù)器發(fā)出包含GET命令的字節(jié)流和位流,TCP將數(shù)據(jù)分段并將各獨立段傳到IP模塊,該模塊將數(shù)據(jù)段轉(zhuǎn)換成數(shù)據(jù)報并發(fā)送給Web服務(wù)器。
如果瀏覽器和服務(wù)器運--在不同物理網(wǎng)絡(luò)的計算機上(一般情況如此),數(shù)據(jù)報從一個網(wǎng)絡(luò)傳到另一個網(wǎng)絡(luò),直到抵達服務(wù)器所在的那個網(wǎng)。 終,數(shù)據(jù)被傳輸?shù)侥康牡刂凡⒈恢匦卵b配,這樣Web服務(wù)器通過讀自己的套接口來獲得數(shù)據(jù)主干,并進而查看連續(xù)的數(shù)據(jù)流。對瀏覽器和服務(wù)器來說,數(shù)據(jù)在這一端寫入套接口而在另一端出現(xiàn)如同魔術(shù)一般,但這只是底下發(fā)生的各種復(fù)雜的交互,它創(chuàng)造了數(shù)據(jù)經(jīng)過網(wǎng)絡(luò)無縫傳輸?shù)募傧蟆?
這就是TCP/IP所做的:將許多小網(wǎng)聯(lián)成一個大網(wǎng)。并在這個大網(wǎng)也就是Internet上提供應(yīng)用程序所需要的相互通信的服務(wù)。
四.評論
對于TCP/IP有許多可談的,但這里僅講三個關(guān)鍵點:
1.TCP/IP是一族用來把不同的物理網(wǎng)絡(luò)聯(lián)在一起構(gòu)成網(wǎng)際網(wǎng)的協(xié)議。TCP/IP聯(lián)接獨立的網(wǎng)絡(luò)形成一個虛擬的網(wǎng),在網(wǎng)內(nèi)用來確認各種獨立的不是物理網(wǎng)絡(luò)地址,而是IP地址。
2.TCP/IP使用多層體系結(jié)構(gòu),該結(jié)構(gòu)清晰定義了每個協(xié)議的責(zé)任。TCP和UDP向網(wǎng)絡(luò)應(yīng)用程序提供了高層的數(shù)據(jù)傳輸服務(wù),并都需要IP來傳輸數(shù)據(jù)包。IP有責(zé)任為數(shù)據(jù)包到達目的地選擇合適的路由。
3.在Internet主機上,兩個運行著的應(yīng)用程序之間傳送要通過主機的TCP/IP堆棧上下移動。在發(fā)送端TCP/IP模塊加在數(shù)據(jù)上的信息將在接收端對應(yīng)的TCP/IP模塊上濾掉,并將 終恢復(fù)原始數(shù)據(jù)。

![]() ![]() |
![]() |