TCP/IP(Transmission Control Protocol/Internet Protocol)的簡寫,中文譯名為傳輸控制協(xié)議/互聯(lián)網(wǎng)絡協(xié)議)協(xié)議是
Internet最基本的協(xié)議,簡單地說,就是由網(wǎng)絡層的IP協(xié)議和傳輸層的TCP協(xié)議組成的。
眾所周知,如今電腦上因特網(wǎng)都要作TCP/IP協(xié)議設置,顯然該協(xié)議成了當今地球村“人與人”之間的“牽手協(xié)議”。
1997年,為了褒獎對因特網(wǎng)發(fā)展作出突出貢獻的科學家,并對TCP/IP協(xié)議作出充分肯定,美國授予為因特網(wǎng)發(fā)明和定義TCP/IP協(xié)議的文頓·瑟夫和卡恩“國家技術(shù)金獎”。這無疑使人們認識到TCP/IP協(xié)議的重要性。
在阿帕網(wǎng)(ARPR)產(chǎn)生運作之初,通過接口信號處理機實現(xiàn)互聯(lián)的電腦并不多,大部分電腦相互之間不兼容,在一臺電腦上完成的工作,很難拿到另一臺電腦上去用,想讓硬件和軟件都不一樣的電腦聯(lián)網(wǎng),也有很多困難。當時美國的狀況是,陸軍用的電腦是DEC系列產(chǎn)品,海軍用的電腦是Honeywell中標機器,空軍用的是IBM公司中標的電腦,每一個軍種的電腦在各自的系里都運行良好,但卻有一個大弊病:不能共享資源。
當時科學家們提出這樣一個理念:“所有電腦生來都是平等的。”為了讓這些“生來平等”的電腦能夠?qū)崿F(xiàn)“資源共享”就得在這些系統(tǒng)的標準之上,建立一種大家共同都必須遵守的標準,這樣才能讓不同的電腦按照一定的規(guī)則進行“談判”,并且在談判之后能“握手”。
在確定今天因特網(wǎng)各個電腦之間“談判規(guī)則”過程中,最重要的人物當數(shù)瑟夫(Vinton G.Cerf)。正是他的努力,才使今天各種不同的電腦能按照協(xié)議上網(wǎng)互聯(lián)。瑟夫也因此獲得了與克萊因羅克(“因特網(wǎng)之父”)一樣的美稱“互聯(lián)網(wǎng)之父”。
瑟夫從小喜歡標新立異,堅強而又熱情。中學會書時,就被允許使用加州大學洛杉磯分校的電腦,他認為“為電腦編程序是個非常激動人心的事,…只要把程序編好,就可以讓電腦做任何事情。”1965年,瑟夫從斯坦福大學畢業(yè)到IBM的一家公司當系統(tǒng)工程師,工作沒多久,瑟夫就覺得知識不夠用,于是到加州大學洛杉磯分校攻讀博士,那時,正逢阿帕網(wǎng)的建立,“接口信號處理機”(IMP)的研試及網(wǎng)絡測評中心的建立,瑟夫也成了著名科學家克萊因羅克手下的一位學生。瑟夫與另外三位年輕人(溫菲爾德、克羅克、布雷登)參與了阿帕網(wǎng)的第一個節(jié)點的聯(lián)接。此后不久,BBN公司對工作中各種情況發(fā)展有很強判斷能力、被公認阿帕網(wǎng)建成作出巨大貢獻的鮑伯·卡恩(Bob Kahn)也來到了加州大學洛杉磯分校。 在那段日子里,往往是卡恩提出需要什么軟件,而瑟夫則通宵達旦地把符合要求的軟件給編出來,然后他們一起測試這些軟件,直至能正常運行。當時的主要格局是這樣的,羅伯茨提出網(wǎng)絡思想設計網(wǎng)絡布局,卡恩設計阿帕網(wǎng)總體結(jié)構(gòu),克萊因羅克負責網(wǎng)絡測評系統(tǒng),還有眾多的科學家、研究生參與研究、試驗。69年9月阿帕網(wǎng)誕生、運行后,才發(fā)現(xiàn)各個IMP連接的時候,需要考慮用各種電腦都認可的信號來打開通信管道,數(shù)據(jù)通過后還要關(guān)閉通道。否則這些IMP不會知道什么時候應該接收信號,什么時候該結(jié)束,這就是我們現(xiàn)在所說的通信“協(xié)議”的概念。70年12月制定出來了最初的通信協(xié)議j 由卡恩開發(fā)、瑟夫參與的“網(wǎng)絡控制協(xié)議”(NCP),但要真正建立一個共同的標準很不容易,72年10月國際電腦通信大會結(jié)束后,科學家們都在為此而努力。“包切換”理論為網(wǎng)絡之間的聯(lián)接方式提供了理論基礎。卡恩在自己研究的基礎上,認識到只有深入理解各種操作系統(tǒng)的細節(jié)才能建立一種對各種操作系統(tǒng)普適的協(xié)議,73年卡恩請瑟夫一起考慮這個協(xié)議的各個細節(jié),他們這次合作的結(jié)果產(chǎn)生了目前在開放系統(tǒng)下的所有網(wǎng)民和網(wǎng)管人員都在使用的“傳輸控制協(xié)議”(TCP,Transsmission-Control Protocol)和“因特網(wǎng)協(xié)議”(IP,Internet Protocol)即TCP/IP協(xié)議。
通俗而言:TCP負責發(fā)現(xiàn)傳輸?shù)膯栴},一有問題就發(fā)出信號,要求重新傳輸,直到所有數(shù)據(jù)安全正確地傳輸?shù)侥康牡亍6鳬P是給因特網(wǎng)的每一臺電腦規(guī)定一個地址。1974年12月,卡恩、瑟夫的第一份TCP協(xié)議詳細說明正式發(fā)表。當時美國國防部與三個科學家小組簽定了完成TCP/IP的協(xié)議,結(jié)果由瑟夫領銜的小組捷足先登,首先制定出了通過詳細定義的TCP/IP協(xié)議標準。當時作了一個試驗,將信息包通過點對點的衛(wèi)星網(wǎng)絡,再通過陸地電纜,再通過衛(wèi)星網(wǎng)絡,再由地面?zhèn)鬏敚灤畾W洲和美國,經(jīng)過各種電腦系統(tǒng),全程9.4萬公里竟然沒有丟失一個數(shù)據(jù)位,遠距離的可靠數(shù)據(jù)傳輸證明了TCP/IP協(xié)議的成功。
1983年1月1日,運行較長時期曾被人們習慣了的NCP被停止使用,TCP/IP協(xié)議作為因特網(wǎng)上所有主機間的共同協(xié)議,從此以后被作為一種必須遵守的規(guī)則被肯定和應用。正是由于TCP/IP協(xié)議,才有今天“地球村”因特網(wǎng)的巨大發(fā)展。
什么是 TCP/IP?
TCP/IP 是供已連接因特網(wǎng)的計算機進行通信的通信協(xié)議。
TCP/IP 指傳輸控制協(xié)議/網(wǎng)際協(xié)議 (Transmission Control Protocol / Internet Protocol)。
TCP/IP 定義了電子設備(比如計算機)如何連入因特網(wǎng),以及數(shù)據(jù)如何在它們之間傳輸?shù)臉藴省?
TCP/IP協(xié)議介紹
TCP/IP的通訊協(xié)議
這部分簡要介紹一下TCP/IP的內(nèi)部結(jié)構(gòu),為討論與互聯(lián)網(wǎng)有關(guān)的安全問題打下基礎。TCP/IP協(xié)議組之所以流行,部分原因是因為它可以用在各種各樣的信道和底層協(xié)議(例如T1和X.25、以太網(wǎng)以及RS-232串行接口)之上。確切地說,TCP/IP協(xié)議是一組包括TCP協(xié)議和IP協(xié)議,UDP(User Datagram Protocol)協(xié)議、ICMP(Internet Control Message Protocol)協(xié)議和其他一些協(xié)議的協(xié)議組。
TCP/IP整體構(gòu)架概述
TCP/IP協(xié)議并不完全符合OSI的七層參考模型。傳統(tǒng)的開放式系統(tǒng)互連參考模型,是一種通信協(xié)議的7層抽象的參考模型,其中每一層執(zhí)行某一特定任務。該模型的目的是使各種硬件在相同的層次上相互通信。這7層是:物理層、數(shù)據(jù)鏈路層、網(wǎng)絡層、傳輸層、會話層、表示層和應用層。而TCP/IP通訊協(xié)議采用了4層的層級結(jié)構(gòu),每一層都呼叫它的下一層所提供的網(wǎng)絡來完成自己的需求。這4層分別為:
應用層:應用程序間溝通的層,如簡單電子郵件傳輸(SMTP)、文件傳輸協(xié)議(FTP)、網(wǎng)絡遠程訪問協(xié)議(Telnet)等。
傳輸層:在此層中,它提供了節(jié)點間的數(shù)據(jù)傳送服務,如傳輸控制協(xié)議(TCP)、用戶數(shù)據(jù)報協(xié)議(UDP)等,TCP和UDP給數(shù)據(jù)包加入傳輸數(shù)據(jù)并把它傳輸?shù)较乱粚又校@一層負責傳送數(shù)據(jù),并且確定數(shù)據(jù)已被送達并接收。
互連網(wǎng)絡層:負責提供基本的數(shù)據(jù)封包傳送功能,讓每一塊數(shù)據(jù)包都能夠到達目的主機(但不檢查是否被正確接收),如網(wǎng)際協(xié)議(IP)。
網(wǎng)絡接口層:對實際的網(wǎng)絡媒體的管理,定義如何使用實際網(wǎng)絡(如Ethernet、Serial Line等)來傳送數(shù)據(jù)。
TCP/IP中的協(xié)議
以下簡單介紹TCP/IP中的協(xié)議都具備什么樣的功能,都是如何工作的:
1. IP
網(wǎng)際協(xié)議IP是TCP/IP的心臟,也是網(wǎng)絡層中最重要的協(xié)議。
IP層接收由更低層(網(wǎng)絡接口層例如以太網(wǎng)設備驅(qū)動程序)發(fā)來的數(shù)據(jù)包,并把該數(shù)據(jù)包發(fā)送到更高層---TCP或UDP層;相反,IP層也把從TCP或UDP層接收來的數(shù)據(jù)包傳送到更低層。IP數(shù)據(jù)包是不可靠的,因為IP并沒有做任何事情來確認數(shù)據(jù)包是按順序發(fā)送的或者沒有被破壞。IP數(shù)據(jù)包中含有發(fā)送它的主機的地址(源地址)和接收它的主機的地址(目的地址)。
高層的TCP和UDP服務在接收數(shù)據(jù)包時,通常假設包中的源地址是有效的。也可以這樣說,IP地址形成了許多服務的認證基礎,這些服務相信數(shù)據(jù)包是從一個有效的主機發(fā)送來的。IP確認包含一個選項,叫作IP source routing,可以用來指定一條源地址和目的地址之間的直接路徑。對于一些TCP和UDP的服務來說,使用了該選項的IP包好像是從路徑上的最后一個系統(tǒng)傳遞過來的,而不是來自于它的真實地點。這個選項是為了測試而存在的,說明了它可以被用來欺騙系統(tǒng)來進行平常是被禁止的連接。那么,許多依靠IP源地址做確認的服務將產(chǎn)生問題并且會被非法入侵。
2. TCP
如果IP數(shù)據(jù)包中有已經(jīng)封好的TCP數(shù)據(jù)包,那么IP將把它們向‘上’傳送到TCP層。TCP將包排序并進行錯誤檢查,同時實現(xiàn)虛電路間的連接。TCP數(shù)據(jù)包中包括序號和確認,所以未按照順序收到的包可以被排序,而損壞的包可以被重傳。
TCP將它的信息送到更高層的應用程序,例如Telnet的服務程序和客戶程序。應用程序輪流將信息送回TCP層,TCP層便將它們向下傳送到IP層,設備驅(qū)動程序和物理介質(zhì),最后到接收方。
面向連接的服務(例如Telnet、FTP、rlogin、X Windows和SMTP)需要高度的可靠性,所以它們使用了TCP。DNS在某些情況下使用TCP(發(fā)送和接收域名數(shù)據(jù)庫),但使用UDP傳送有關(guān)單個主機的信息。
3.UDP
UDP與TCP位于同一層,但它不管數(shù)據(jù)包的順序、錯誤或重發(fā)。因此,UDP不被應用于那些使用虛電路的面向連接的服務,UDP主要用于那些面向查詢---應答的服務,例如NFS。相對于FTP或Telnet,這些服務需要交換的信息量較小。使用UDP的服務包括NTP(網(wǎng)絡時間協(xié)議)和DNS(DNS也使用TCP)。
欺騙UDP包比欺騙TCP包更容易,因為UDP沒有建立初始化連接(也可以稱為握手)(因為在兩個系統(tǒng)間沒有虛電路),也就是說,與UDP相關(guān)的服務面臨著更大的危險。
4.ICMP
ICMP與IP位于同一層,它被用來傳送IP的的控制信息。它主要是用來提供有關(guān)通向目的地址的路徑信息。ICMP的‘Redirect’信息通知主機通向其他系統(tǒng)的更準確的路徑,而‘Unreachable’信息則指出路徑有問題。另外,如果路徑不可用了,ICMP可以使TCP連接‘體面地’終止。PING是最常用的基于ICMP的服務。
5. TCP和UDP的端口結(jié)構(gòu)
TCP和UDP服務通常有一個客戶/服務器的關(guān)系,例如,一個Telnet服務進程開始在系統(tǒng)上處于空閑狀態(tài),等待著連接。用戶使用Telnet客戶程序與服務進程建立一個連接。客戶程序向服務進程寫入信息,服務進程讀出信息并發(fā)出響應,客戶程序讀出響應并向用戶報告。因而,這個連接是雙工的,可以用來進行讀寫。
兩個系統(tǒng)間的多重Telnet連接是如何相互確認并協(xié)調(diào)一致呢?TCP或UDP連接唯一地使用每個信息中的如下四項進行確認:
源IP地址 發(fā)送包的IP地址。
目的IP地址 接收包的IP地址。
源端口 源系統(tǒng)上的連接的端口。
目的端口 目的系統(tǒng)上的連接的端口。
端口是一個軟件結(jié)構(gòu),被客戶程序或服務進程用來發(fā)送和接收信息。一個端口對應一個16比特的數(shù)。服務進程通常使用一個固定的端口,例如,SMTP使用25、Xwindows使用6000。這些端口號是‘廣為人知’的,因為在建立與特定的主機或服務的連接時,需要這些地址和目的地址進行通訊。
IP協(xié)議
IP(Internet Protocol)協(xié)議的英文名直譯就是:因特網(wǎng)協(xié)議。從這個名稱我們就可以知道IP協(xié)議的重要性。在現(xiàn)實生活中,我們進行貨物運輸時都是把貨物包裝成一個個的紙箱或者是集裝箱之后才進行運輸,在網(wǎng)絡世界中各種信息也是通過類似的方式進行傳輸?shù)摹P協(xié)議規(guī)定了數(shù)據(jù)傳輸時的基本單元和格式。如果比作貨物運輸,IP協(xié)議規(guī)定了貨物打包時的包裝箱尺寸和包裝的程序。 除了這些以外,IP協(xié)議還定義了數(shù)據(jù)包的遞交辦法和路由選擇。同樣用貨物運輸做比喻,IP協(xié)議規(guī)定了貨物的運輸方法和運輸路線。
TCP協(xié)議
我們已經(jīng)知道了IP協(xié)議很重要,IP協(xié)議已經(jīng)規(guī)定了數(shù)據(jù)傳輸?shù)闹饕獌?nèi)容,那TCP(Transmission Control Protocol)協(xié)議是做什么的呢?不知大家發(fā)現(xiàn)沒有,在IP協(xié)議中定義的傳輸是單向的,也就是說發(fā)出去的貨物對方有沒有收到我們是不知道的。就好像8毛錢一份的平信一樣。那對于重要的信件我們要寄掛號信怎么辦呢?TCP協(xié)議就是幫我們寄“掛號信”的。TCP協(xié)議提供了可靠的面向?qū)ο蟮臄?shù)據(jù)流傳輸服務的規(guī)則和約定。簡單的說在TCP模式中,對方發(fā)一個數(shù)據(jù)包給你,你要發(fā)一個確認數(shù)據(jù)包給對方。通過這種確認來提供可靠性。
1.1 TCP/IP參考模型
TCP/IP協(xié)議并不完全符合OSI的七層參考模型。傳統(tǒng)的開放式系統(tǒng)互連參考模型,是一種通信協(xié)議的7層抽象的參考模型,其中每一層執(zhí)行某一特定任務。該模型的目的是使各種硬件在相同的層次上相互通信。這7層是:物理層、數(shù)據(jù)鏈路層、網(wǎng)路層、傳輸層、話路層、表示層和應用層。而TCP/IP通訊協(xié)議采用了4層的層級結(jié)構(gòu),每一層都呼叫它的下一層所提供的網(wǎng)絡來完成自己的需求。這4層分別為:
應用層:應用程序間溝通的層,如簡單電子郵件傳輸(SMTP)、文件傳輸協(xié)議(FTP)、網(wǎng)絡遠程訪問協(xié)議(Telnet)等。
傳輸層:在此層中,它提供了節(jié)點間的數(shù)據(jù)傳送服務,如傳輸控制協(xié)議(TCP)、用戶數(shù)據(jù)報協(xié)議(UDP)等,TCP和UDP給數(shù)據(jù)包加入傳輸數(shù)據(jù)并把它傳輸?shù)较乱粚又校@一層負責傳送數(shù)據(jù),并且確定數(shù)據(jù)已被送達并接收。
互連網(wǎng)絡層:負責提供基本的數(shù)據(jù)封包傳送功能,讓每一塊數(shù)據(jù)包都能夠到達目的主機(但不檢查是否被正確接收),如網(wǎng)際協(xié)議(IP)。
網(wǎng)絡接口層:對實際的網(wǎng)絡媒體的管理,定義如何使用實際網(wǎng)絡(如Ethernet、Serial Line等)來傳送數(shù)據(jù)。
1. 2 網(wǎng)間協(xié)議IP
Internet 上使用的一個關(guān)鍵的底層協(xié)議是網(wǎng)際協(xié)議,通常稱IP協(xié)議。我們利用一個共同遵守的通信協(xié)議,從而使 Internet 成為一個允許連接不同類型的計算機和不同操作系統(tǒng)的網(wǎng)絡。要使兩臺計算機彼此之間進行通信,必須使兩臺計算機使用同一種"語言"。通信協(xié)議正像兩臺計算機交換信息所使用的共同語言,它規(guī)定了通信雙方在通信中所應共同遵守的約定。
計算機的通信協(xié)議精確地定義了計算機在彼此通信過程的所有細節(jié)。例如,每臺計算機發(fā)送的信息格式和含義,在什么情況下應發(fā)送規(guī)定的特殊信息,以及接收方的計算機應做出哪些應答等等。
網(wǎng)際協(xié)議IP協(xié)議提供了能適應各種各樣網(wǎng)絡硬件的靈活性,對底層網(wǎng)絡硬件幾乎沒有任何要求,任何一個網(wǎng)絡只要可以從一個地點向另一個地點傳送二進制數(shù)據(jù),就可以使用IP協(xié)議加入 Internet 了。
如果希望能在 Internet 上進行交流和通信,則每臺連上 Internet 的計算機都必須遵守IP協(xié)議。為此使用 Internet 的每臺計算機都必須運行IP軟件,以便時刻準備發(fā)送或接收信息。
IP協(xié)議對于網(wǎng)絡通信有著重要的意義:網(wǎng)絡中的計算機通過安裝IP軟件,使許許多多的局域網(wǎng)絡構(gòu)成了一個龐大而又嚴密的通信系統(tǒng)。從而使 Internet 看起來好像是真實存在的,但實際上它是一種并不存在的虛擬網(wǎng)絡,只不過是利用IP協(xié)議把全世界上所有愿意接入 Internet 的計算機局域網(wǎng)絡連接起來,使得它們彼此之間都能夠通信。
1.3 傳輸控制協(xié)議TCP
盡管計算機通過安裝IP軟件,從而保證了計算機之間可以發(fā)送和接收資料,但IP協(xié)議還不能解決資料分組在傳輸過程中可能出現(xiàn)的問題。因此,若要解決可能出現(xiàn)的問題,連上 Internet 的計算機還需要安裝TCP協(xié)議來提供可靠的并且無差錯的通信服務。
TCP協(xié)議被稱作一種端對端協(xié)議。這是因為它為兩臺計算機之間的連接起了重要作用:當一臺計算機需要與另一臺遠程計算機連接時,TCP協(xié)議會讓它們建立一個連接、發(fā)送和接收資料以及終止連接。
傳輸控制協(xié)議TCP協(xié)議利用重發(fā)技術(shù)和擁塞控制機制,向應用程序提供可靠的通信連接,使它能夠自動適應網(wǎng)上的各種變化。即使在 Internet 暫時出現(xiàn)堵塞的情況下,TCP也能夠保證通信的可靠。
眾所周知, Internet 是一個龐大的國際性網(wǎng)絡,網(wǎng)絡上的擁擠和空閑時間總是交替不定的,加上傳送的距離也遠近不同,所以傳輸資料所用時間也會變化不定。TCP協(xié)議具有自動調(diào)整"超時值"的功能,能很好地適應 Internet 上各種各樣的變化,確保傳輸數(shù)值的正確。
因此,從上面我們可以了解到:IP協(xié)議只保證計算機能發(fā)送和接收分組資料,而TCP協(xié)議則可提供一個可靠的、可流控的、全雙工的信息流傳輸服務。
綜上所述,雖然IP和TCP這兩個協(xié)議的功能不盡相同,也可以分開單獨使用,但它們是在同一時期作為一個協(xié)議來設計的,并且在功能上也是互補的。只有兩者的結(jié)合,才能保證 Internet 在復雜的環(huán)境下正常運行。凡是要連接到 Internet 的計算機,都必須同時安裝和使用這兩個協(xié)議,因此在實際中常把這兩個協(xié)議統(tǒng)稱作TCP/IP協(xié)議。
1.4 IP地址及其分類
在Internet上連接的所有計算機,從大型機到微型計算機都是以獨立的身份出現(xiàn),我們稱它為主機。為了實現(xiàn)各主機間的通信,每臺主機都必須有一個唯一的網(wǎng)絡地址。就好像每一個住宅都有唯一的門牌一樣,才不至于在傳輸資料時出現(xiàn)混亂。
Internet的網(wǎng)絡地址是指連入Internet網(wǎng)絡的計算機的地址編號。所以,在Internet網(wǎng)絡中,網(wǎng)絡地址唯一地標識一臺計算機。
我們都已經(jīng)知道,Internet是由幾千萬臺計算機互相連接而成的。而我們要確認網(wǎng)絡上的每一臺計算機,靠的就是能唯一標識該計算機的網(wǎng)絡地址,這個地址就叫做IP(Internet Protocol的簡寫)地址,即用Internet協(xié)議語言表示的地址。
目前,在Internet里,IP地址是一個32位的二進制地址,為了便于記憶,將它們分為4組,每組8位,由小數(shù)點分開,用四個字節(jié)來表示,而且,用點分開的每個字節(jié)的數(shù)值范圍是0~255,如202.116.0.1,這種書寫方法叫做點數(shù)表示法。
IP地址可確認網(wǎng)絡中的任何一個網(wǎng)絡和計算機,而要識別其它網(wǎng)絡或其中的計算機,則是根據(jù)這些IP地址的分類來確定的。一般將IP地址按節(jié)點計算機所在網(wǎng)絡規(guī)模的大小分為A,B,C三類,默認的網(wǎng)絡屏蔽是根據(jù)IP地址中的第一個字段確定的。
1. A類地址
A類地址的表示范圍為:10.0.0.0~126.255.255.255,默認網(wǎng)絡屏蔽為:255.0.0.0;A類地址分配給規(guī)模特別大的網(wǎng)絡使用。A類網(wǎng)絡用第一組數(shù)字表示網(wǎng)絡本身的地址,后面三組數(shù)字作為連接于網(wǎng)絡上的主機的地址。分配給具有大量主機(直接個人用戶)而局域網(wǎng)絡個數(shù)較少的大型網(wǎng)絡。例如IBM公司的網(wǎng)絡。
2. B類地址
B類地址的表示范圍為:127.0.0.0~191.255.255.255,默認網(wǎng)絡屏蔽為:255.255.0.0;B類地址分配給一般的中型網(wǎng)絡。B類網(wǎng)絡用第一、二組數(shù)字表示網(wǎng)絡的地址,后面兩組數(shù)字代表網(wǎng)絡上的主機地址。
3. C類地址
C類地址的表示范圍為:192.0.0.0~223.255.255.255,默認網(wǎng)絡屏蔽為:255.255.255.0;C類地址分配給小型網(wǎng)絡,如一般的局域網(wǎng),它可連接的主機數(shù)量是最少的,采用把所屬的用戶分為若干的網(wǎng)段進行管理。C類網(wǎng)絡用前三組數(shù)字表示網(wǎng)絡的地址,最后一組數(shù)字作為網(wǎng)絡上的主機地址。
RFC 1918留出了3塊IP地址空間(1個A類地址段,16個B類地址段,256個C類地址段)作為私有的內(nèi)部使用的地址。在這個范圍內(nèi)的IP地址不能被路由到Internet骨干網(wǎng)上;Internet路由器將丟棄該私有地址。
IP地址類別 RFC 1918內(nèi)部地址范圍
A類 10.0.0.0到10.255.255.255
B類 172.16.0.0到172.31.255.255
C類 192.168.0.0到192.168.255.255
使用私有地址將網(wǎng)絡連至Internet,需要將私有地址轉(zhuǎn)換為公有地址。這個轉(zhuǎn)換過程稱為網(wǎng)絡地址轉(zhuǎn)換(Network Address Translation,NAT),通常使用路由器來執(zhí)行NAT轉(zhuǎn)換。
實際上,還存在著D類地址和E類地址。但這兩類地址用途比較特殊,在這里只是簡單介紹一下:D類地址稱為廣播地址,供特殊協(xié)議向選定的節(jié)點發(fā)送信息時用。E類地址保留給將來使用。
連接到Internet上的每臺計算機,不論其IP地址屬于哪類都與網(wǎng)絡中的其它計算機處于平等地位,因為只有IP地址才是區(qū)別計算機的唯一標識。所以,以上IP地址的分類只適用于網(wǎng)絡分類。
在Internet中,一臺計算機可以有一個或多個IP地址,就像一個人可以有多個通信地址一樣,但兩臺或多臺計算機卻不能共享一個IP地址。如果有兩臺計算機的IP地址相同,則會引起異常現(xiàn)象,無論哪臺計算機都將無法正常工作。
順便提一下幾類特殊的IP地址:
1. 廣播地址 目的端為給定網(wǎng)絡上的所有主機,一般主機段為全0
2. 單播地址 目的端為指定網(wǎng)絡上的單個主機地址
3. 組播地址 目的端為同一組內(nèi)的所有主機地址
4. 環(huán)回地址 127.0.0.1 在環(huán)回測試和廣播測試時會使用
1.5 子網(wǎng)的劃分
若公司不上Internet,那一定不會煩惱IP地址的問題,因為可以任意使用所有的IP地址,不管是A類或是B類,這個時候不會想到要用子網(wǎng),但若是上Internet那IP地址便彌足珍貴了,目前全球一陣Internet熱,IP地址已經(jīng)愈來愈少了,而所申請的IP地址目前也趨保守,而且只有經(jīng)申請的IP地址能在Internet使用,但對某些公司只能申請到一個C類的IP地址,但又有多個點需要使用,那這時便需要使用到子網(wǎng),這就需要考慮子網(wǎng)的劃分,下面簡介子網(wǎng)的原理及如何規(guī)劃。
1.5.1 子網(wǎng)掩碼(Subnet Mask)的介紹
設定任何網(wǎng)絡上的任何設備不管是主機、個人電腦、路由器等皆需要設定IP地址,而跟隨著IP地址的是所謂的子網(wǎng)掩碼(NetMask,Subnet Mask),這個子網(wǎng)掩碼主要的目的是由IP地址中也能獲得網(wǎng)絡編碼,也就是說IP地址和子網(wǎng)掩碼作和而得到網(wǎng)絡編碼,如下所示:
IP地址
192.10.10.6 11000000.00001010.00001010.00000110
子網(wǎng)掩碼
255.255.255.0 11111111.11111111.11111111.00000000
AND
-------------------------------------------------------------------
Network Number
192.10.10.0 11000000.00001010.00001010.00000000
子網(wǎng)掩碼有所謂的默認值,如下所示
類 IP地址 范圍 子網(wǎng)掩碼
A 1.0.0.0-126.255.255.255 255.0.0.0
B 128.0.0.0-191.255.255.255 255.255.0.0
C 192.0.0.0-223.255.255.255 255.255.255.0
在預設的子網(wǎng)掩碼(Net Mask)都只有255的值,在談到子網(wǎng)掩碼(Subnet Mask)時這個值便不一定是255了。在完整一組C類地址中如203.67.10.0-203.67.10.255 子網(wǎng)掩碼255.255.255.0,203.67.10.0稱之網(wǎng)絡編碼(Network Number,將IP 地址和子網(wǎng)掩碼作和),而203.67.10.255是廣播的IP地址,所以這兩者皆不能使用,實際只能使用203.67.10.1--203.67.10.254等254個IP地址,這是以255.255.255.0作子網(wǎng)掩碼的結(jié)果,而所謂Subnet Msk尚可將整組C類地址分成數(shù)組網(wǎng)絡編碼,這要在子網(wǎng)掩碼上作手腳,若是要將整組C類地址分成2個網(wǎng)絡編碼那子網(wǎng)掩碼設定為255.255.255.128,若是要將整組C類分成8組網(wǎng)絡編碼則子網(wǎng)掩碼要為255.255.255.224,這是怎么來的,由以上知道網(wǎng)絡編碼是由IP地址和子網(wǎng)掩碼作AND而來的,而且將子網(wǎng)掩碼以二進制表示法知道是1的會保留,而為0的去掉
192.10.10.193--11000000.00001010.00001010.11000001
255.255.255.0--11111111.11111111.11111111.00000000
--------------------------------------------------------------
192.10.10.0--11000000.00001010.00001010.00000000
以上是以255.255.255.0為子網(wǎng)掩碼的結(jié)果,網(wǎng)絡編碼是192.10.10.0,若是使用255.255.255.224作子網(wǎng)掩碼結(jié)果便有所不同
192.10.10.193--11000000.00001010.00001010.11000001
255.255.255.224--11111111.11111111.11111111.11100000
--------------------------------------------------------------
192.10.10.192--11000000.00001010.00001010.11000000
此時網(wǎng)絡編碼變成了192.10.10.192,這便是子網(wǎng)。那要如何決定所使用的子網(wǎng)掩碼,255.255.255.224以二進制表示法為11111111.11111111.11111111.11100000,變化是在最后一組,11100000便是224,以三個位(Bit)可表示2的3次方便是8個網(wǎng)絡編碼
子網(wǎng)掩碼二進制表示法可分幾個網(wǎng)絡
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類地址203.67.10.0分成8組網(wǎng)絡編碼,各個網(wǎng)絡編碼及其廣播IP地址及可使用之IP地址序號網(wǎng)絡編碼廣播可使用之IP地址
(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地址是否如上表所示
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
其它的子網(wǎng)掩碼所分成的網(wǎng)絡編碼可自行以上述方法自行推演出來。
1.5.3 子網(wǎng)的應用
使用子網(wǎng)是要解決只有一組C類地址但需要數(shù)個網(wǎng)絡編碼的問題,并不是解決IP地址不夠用的問題,因為使用子網(wǎng)反而能使用的IP地址會變少,子網(wǎng)通常是使用在跨地域的網(wǎng)絡互聯(lián)之中,兩者之間使用路由器連線,同時也上Internet,但只申請到一組C 類IP地址,過路由又需不同的網(wǎng)絡,所以此時就必須使用到子網(wǎng),當然二網(wǎng)絡間也可以遠程橋接(Remote Bridge,字面翻譯)連接,那便沒有使用子網(wǎng)的問題。
網(wǎng)關(guān)地址
若要使兩個完全不同的網(wǎng)絡(異構(gòu)網(wǎng))連接在一起,一般使用網(wǎng)關(guān),在Internet中兩個網(wǎng)絡也要通過一臺稱為網(wǎng)關(guān)的計算機實現(xiàn)互聯(lián)。這臺計算機能根據(jù)用戶通信目標計算機的IP地址,決定是否將用戶發(fā)出的信息送出本地網(wǎng)絡,同時,它還將外界發(fā)送給屬于本地網(wǎng)絡計算機的信息接收過來,它是一個網(wǎng)絡與另一個網(wǎng)絡相聯(lián)的通道。為了使TCP/IP協(xié)議能夠?qū)ぶ罚撏ǖ辣毁x予一個IP地址,這個IP地址稱為網(wǎng)關(guān)地址。
完美測試TCP/IP協(xié)議簡介
安裝網(wǎng)絡硬件和網(wǎng)絡協(xié)議之后,我們一般要進行TCP/IP協(xié)議的測試工作,那么怎樣測試才算是比較全面的測試呢?我們認為,全面的測試應包括局域網(wǎng)和互聯(lián)網(wǎng)兩個方面,因此應從局域網(wǎng)和互聯(lián)網(wǎng)兩個方面測試,以下是我們在實際工作中利用命令行測試TCP/IP配置的步驟:
1、 單擊“開始”/“運行”,輸入CMD按回車,打開命令提示符窗口。
2、 首先檢查IP地址、子網(wǎng)掩碼、默認網(wǎng)關(guān)、DNS服務器地址是否正確,輸入命令ipconfig /all,按回車。此時顯示了你的網(wǎng)絡配置,觀查是否正確。
3、 輸入ping 127.0.0.1,觀查網(wǎng)卡是否能轉(zhuǎn)發(fā)數(shù)據(jù),如果出現(xiàn)“Request timed out”,表明配置差錯或網(wǎng)絡有問題。
4、 Ping一個互聯(lián)網(wǎng)地址,如ping 202.102.128.68,看是否有數(shù)據(jù)包傳回,以驗證與互聯(lián)網(wǎng)的連接性。
5、 Ping 一個局域網(wǎng)地址,觀查與它的連通性。
6、 用nslookup測試DNS解析是否正確,輸入如nslookup www.ccidnet.com,查看是否能解析。
如果你的計算機通過了全部測試,則說明網(wǎng)絡正常,否則網(wǎng)絡可能有不同程度的問題。在此不展開詳述。不過,要注意,在使用 ping命令時,有些公司會在其主機設置丟棄ICMP數(shù)據(jù)包,造成你的ping命令無法正常返回數(shù)據(jù)包,不防換個網(wǎng)站試試。
補充:
TCP/IP 協(xié)議簇
TCP/IP(Transmission Control Protocol/Internet Protocol)已成為一個事實上的工業(yè)
標準。
TCP/IP是一組協(xié)議的代名詞,它還包括許多協(xié)議,組成了TCP/IP協(xié)議簇。
TCP/IP協(xié)議簇分為四層,IP位于協(xié)議簇的第二層(對應OSI的第三層),TCP位于協(xié)議簇的第
三層(對應OSI的第四層)。
TCP和IP是TCP/IP協(xié)議簇的中間兩層,是整個協(xié)議簇的核心,起到了承上啟下的作用。
1、接口層
TCP/IP的最低層是接口層,常見的接口層協(xié)議有:
Ethernet 802.3、Token Ring 802.5、X.25、Frame reley、HDLC、PPP等。
2、網(wǎng)絡層
網(wǎng)絡層包括:IP(Internet Protocol)協(xié)議、ICMP(Internet Control Message Protocol)
控制報文協(xié)議、ARP(Address Resolution Protocol)地址轉(zhuǎn)換協(xié)議、RARP(Reverse ARP)反向
地址轉(zhuǎn)換協(xié)議。
IP是網(wǎng)絡層的核心,通過路由選擇將下一跳IP封裝后交給接口層。IP數(shù)據(jù)報是無連接服務
。
ICMP是網(wǎng)絡層的補充,可以回送報文。用來檢測網(wǎng)絡是否通暢。
Ping命令就是發(fā)送ICMP的echo包,通過回送的echo relay進行網(wǎng)絡測試。
ARP是正向地址解析協(xié)議,通過已知的IP,尋找對應主機的MAC地址。
RARP是反向地址解析協(xié)議,通過MAC地址確定IP地址。比如無盤工作站和DHCP服務。
3、傳輸層
傳輸層協(xié)議主要是:傳輸控制協(xié)議TCP(Transmission Control Protocol)和用戶數(shù)據(jù)報協(xié)
議UDP(User Datagram rotocol)。
TCP是面向連接的通信協(xié)議,通過三次握手建立連接,通訊時完成時要拆除連接,由于TCP
是面向連接的所以只能用于點對點的通訊。
TCP提供的是一種可靠的數(shù)據(jù)流服務,采用“帶重傳的肯定確認”技術(shù)來實現(xiàn)傳輸?shù)目煽?br />
性。TCP還采用一種稱為“滑動窗口”的方式進行流量控制,所謂窗口實際表示接收能力,用
以限制發(fā)送方的發(fā)送速度。
UDP是面向無連接的通訊協(xié)議,UDP數(shù)據(jù)包括目的端口號和源端口號信息,由于通訊不需要
連接,所以可以實現(xiàn)廣播發(fā)送。
UDP通訊時不需要接收方確認,屬于不可靠的傳輸,可能會出丟包現(xiàn)象,實際應用中要求
在程序員編程驗證。
4、應用層
應用層一般是面向用戶的服務。如FTP、TELNET、DNS、SMTP、POP3。
FTP(File Transmision Protocol)是文件傳輸協(xié)議,一般上傳下載用FTP服務,數(shù)據(jù)端口
是20H,控制端口是21H。
Telnet服務是用戶遠程登錄服務,使用23H端口,使用明碼傳送,保密性差、簡單方便。
DNS(Domain Name Service)是域名解析服務,提供域名到IP地址之間的轉(zhuǎn)換。
SMTP(Simple Mail Transfer Protocol)是簡單郵件傳輸協(xié)議,用來控制信件的發(fā)送、中
轉(zhuǎn)。
POP3(Post Office Protocol 3)是郵局協(xié)議第3版本,用于接收郵件。
數(shù)據(jù)格式:
數(shù)據(jù)幀:幀頭+IP數(shù)據(jù)包+幀尾 (幀頭包括源和目標主機MAC地址及類型,幀尾是校驗字)
IP數(shù)據(jù)包:IP頭部+TCP數(shù)據(jù)信息 (IP頭包括源和目標主機IP地址、類型、生存期等)
TCP數(shù)據(jù)信息:TCP頭部+實際數(shù)據(jù) (TCP頭包括源和目標主機端口號、順序號、確認號、校
驗字等)