TCP、IP協(xié)議簡介
/網(wǎng)際協(xié)議)是互聯(lián)網(wǎng)中的基本通信語言或協(xié)議。在私TCP 此時(shí)接收你所發(fā)送的信息的計(jì)算機(jī)也應(yīng)有一個TCP /IP 程序TCP /IP 是一個兩層的程序。高層為傳輸控制協(xié)議,它負(fù)責(zé)聚集信息或把文件拆分稱更

/網(wǎng)際協(xié)議)是互聯(lián)網(wǎng)中的基本通信語言或協(xié)議。在私

TCP 此時(shí)接收你所發(fā)送的信息的計(jì)算機(jī)也應(yīng)有一個TCP /IP 程序
TCP /IP 是一個兩層的程序。高層為傳輸控制協(xié)議,它負(fù)責(zé)聚集信息或把文件拆分稱更小的包。這些包通過網(wǎng)絡(luò)傳送到接收端的TCP 層,接收端的TCP 層把包還原為原始文件。低層是網(wǎng)際協(xié)議,它處理每個包的地址部分,使這些包正確的到達(dá)目的地。網(wǎng)絡(luò)上的網(wǎng)關(guān)計(jì)算機(jī)根據(jù)信息的地址來進(jìn)行路由選擇。即使來自同一文件的分包路由也有可能不同,但最后會在目的地匯合。
TCP /IP 使用客戶端/服務(wù)器模式進(jìn)行通信。TCP /IP 通信是點(diǎn)對點(diǎn)的,意思是通信是網(wǎng)絡(luò)中的一臺主機(jī)與另一臺主機(jī)之間的。TCP /IP 與上層應(yīng)用程序之間可以說是“沒有國籍的”,因?yàn)槊總€客戶請求都被看做是與上一個請求無關(guān)的。正是它們之間的“無國籍的”釋放了網(wǎng)絡(luò)路徑,才是每個人都可以連續(xù)不斷的使用網(wǎng)絡(luò)。
許多用戶熟悉使用TCP /IP 協(xié)議的高層應(yīng)用協(xié)議。包括萬維網(wǎng)的超文本傳輸協(xié)議(HTTP ),文件傳輸協(xié)議(FTP ),Telnet 和簡單郵件傳輸協(xié)議(SMTP )。這些協(xié)議通常和TCP /IP 協(xié)議打包在一起。
使用模擬電話調(diào)制解調(diào)器連接網(wǎng)絡(luò)的個人電腦通常是使用串行線路接口協(xié)議(SLIP )和點(diǎn)對點(diǎn)協(xié)議(PPP )。這些協(xié)議壓縮IP 包后通過撥號電話線發(fā)送到對方的調(diào)制解調(diào)器中。
有TCP /IP 協(xié)議相關(guān)的協(xié)議還包括用戶數(shù)據(jù)報(bào)協(xié)議(UDP ),它代替TCP /IP 協(xié)議來達(dá)到特殊的目的。其他協(xié)議是網(wǎng)絡(luò)主機(jī)用來交換路由信息的,包括
Internet 控制信息協(xié)議(ICMP ),內(nèi)部網(wǎng)關(guān)協(xié)議(IGP ),外部網(wǎng)關(guān)協(xié)議(EGP ),邊界網(wǎng)關(guān)協(xié)議(BGP )。
TCP/IP協(xié)議
TCP/IP(Transmission Control Protocol/Internet Protocol)的簡寫,中文譯名為傳輸控制協(xié)議/互聯(lián)網(wǎng)絡(luò)協(xié)議)協(xié)議是Internet 最基本的協(xié)議,簡單地說,就是由底層的IP 協(xié)議和TCP 協(xié)議組成的。
眾所周知,如今電腦上因特網(wǎng)都要作TCP/IP協(xié)議設(shè)置,顯然該協(xié)議成了當(dāng)今地球村“人與人”之間的“牽手協(xié)議”。
1997年,為了褒獎對因特網(wǎng)發(fā)展作出突出貢獻(xiàn)的科學(xué)家,并對TCP/IP協(xié)議作出充分肯定,美國授予為因特網(wǎng)發(fā)明和定義TCP/IP協(xié)議的文頓·瑟夫和卡恩“國家技術(shù)金獎”。這無疑使人們認(rèn)識到TCP/IP協(xié)議的重要性。
在阿帕網(wǎng)(ARPR )產(chǎn)生運(yùn)作之初,通過接口信號處理機(jī)實(shí)現(xiàn)互聯(lián)的電腦并不多,大部分電腦相互之間不兼容,在一臺電腦上完成的工作,很難拿到另一臺電腦上去用,想讓硬件和軟件都不一樣的電腦聯(lián)網(wǎng),也有很多困難。當(dāng)時(shí)美國的狀況是,陸軍用的
,電腦是DEC 系列產(chǎn)品,海軍用的電腦是Honeywell 中標(biāo)機(jī)器,空軍用的是IBM 公司中標(biāo)的電腦,每一個軍種的電腦在各自的系里都運(yùn)行良好,但卻有一個大弊?。翰荒芄蚕碣Y源。
當(dāng)時(shí)科學(xué)家們提出這樣一個理念:“所有電腦生來都是平等的。”為了讓這些“生來平等”的電腦能夠?qū)崿F(xiàn)“資源共享”就得在這些系統(tǒng)的標(biāo)準(zhǔn)之上,建立一種大家共同都必須遵守的標(biāo)準(zhǔn),這樣才能讓不同的電腦按照一定的規(guī)則進(jìn)行“談判”,并且在談判之后能“握手”。
在確定今天因特網(wǎng)各個電腦之間“談判規(guī)則”過程中,最重要的人物當(dāng)數(shù)瑟夫
(Vinton G.Cerf)。正是他的努力,才使今天各種不同的電腦能按照協(xié)議上網(wǎng)互聯(lián)。瑟夫也因此獲得了與克萊因羅克(“因特網(wǎng)之父”)一樣的美稱“互聯(lián)網(wǎng)之父”。
瑟夫從小喜歡標(biāo)新立異,堅(jiān)強(qiáng)而又熱情。中學(xué)會書時(shí),就被允許使用加州大學(xué)洛杉磯分校的電腦,他認(rèn)為“為電腦編程序是個非常激動人心的事,…只要把程序編好,就可以讓電腦做任何事情?!?965年,瑟夫從斯坦福大學(xué)畢業(yè)到IBM 的一家公司當(dāng)系統(tǒng)工程師,工作沒多久,瑟夫就覺得知識不夠用,于是到加州大學(xué)洛杉磯分校攻讀博士,那時(shí),正逢阿帕網(wǎng)的建立,“接口信號處理機(jī)”(IMP )的研試及網(wǎng)絡(luò)測評中心的建立,瑟夫也成了著名科學(xué)家克萊因羅克手下的一位學(xué)生。瑟夫與另外三位年輕人(溫菲爾德、克羅克、布雷登)參與了阿帕網(wǎng)的第一個節(jié)點(diǎn)的聯(lián)接。此后不久,BBN 公司對工作中各種情況發(fā)展有很強(qiáng)判斷能力、被公認(rèn)阿帕網(wǎng)建成作出巨大貢獻(xiàn)的鮑伯·卡恩(Bob Kahn)也來到了加州大學(xué)洛杉磯分校。 在那段日子里,往往是卡恩提出需要什么軟件,而瑟夫則通宵達(dá)旦地把符合要求的軟件給編出來,然后他們一起測試這些軟件,直至能正常運(yùn)行。當(dāng)時(shí)的主要格局是這樣的,羅伯茨提出網(wǎng)絡(luò)思想設(shè)計(jì)網(wǎng)絡(luò)布局,卡恩設(shè)計(jì)阿帕網(wǎng)總體結(jié)構(gòu),克萊因羅克負(fù)責(zé)網(wǎng)絡(luò)測評系統(tǒng),還有眾多的科學(xué)家、研究生參與研究、試驗(yàn)。69年9月阿帕網(wǎng)誕生、運(yùn)行后,才發(fā)現(xiàn)各個IMP 連接的時(shí)候,需要考慮用各種電腦都認(rèn)可的信號來打開通信管道,數(shù)據(jù)通過后還要關(guān)閉通道。否則這些IMP 不會知道什么時(shí)候應(yīng)該接收信號,什么時(shí)候該結(jié)束,這就是我們現(xiàn)在所說的通信“協(xié)議”的概念。70年12月制定出來了最初的通信協(xié)議j 由卡恩開發(fā)、瑟夫參與的“網(wǎng)絡(luò)控制協(xié)議”(NCP ),但要真正建立一個共同的標(biāo)準(zhǔn)很不容易,72年10月國際電腦通信大會結(jié)束后,科學(xué)家們都在為此而努力。“包切換”理論為網(wǎng)絡(luò)之間的聯(lián)接方式提供了理論基礎(chǔ)??ǘ髟谧约貉芯康幕A(chǔ)上,認(rèn)識到只有深入理解各種操作系統(tǒng)的細(xì)節(jié)才能建立一種對各種操作系統(tǒng)普適的協(xié)議,73年卡恩請瑟夫一起考慮這個協(xié)議的各個細(xì)節(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ù)責(zé)發(fā)現(xiàn)傳輸?shù)膯栴},一有問題就發(fā)出信號,要求重新傳輸,直到所有數(shù)據(jù)安全正確地傳輸?shù)侥康牡亍6鳬P 是給因行網(wǎng)的每一臺電腦規(guī)定一個地址。1974年12月,卡恩、瑟夫的第一份TCP 協(xié)議詳細(xì)說明正式發(fā)表。當(dāng)時(shí)美國國防部與三個科學(xué)家小組簽定了完成TCP/IP的協(xié)議,結(jié)果由瑟夫領(lǐng)銜的小組捷足先登,首先制定出了通過詳細(xì)定義的TCP/IP協(xié)議標(biāo)準(zhǔn)。當(dāng)時(shí)作了一個試驗(yàn),將信息包通過點(diǎn)
,對點(diǎn)的衛(wèi)星網(wǎng)絡(luò),再通過陸地電纜,再通過衛(wèi)星網(wǎng)絡(luò),再由地面?zhèn)鬏?,貫串歐洲和美國,經(jīng)過各種電腦系統(tǒng),全程9.4萬公里竟然沒有丟失一個數(shù)據(jù)位,遠(yuǎn)距離的可靠數(shù)據(jù)傳輸證明了TCP/IP協(xié)議的成功。
1983年1月1日,運(yùn)行較長時(shí)期曾被人們習(xí)慣了的NCP 被停止使用,TCP/IP協(xié)議作為因特網(wǎng)上所有主機(jī)間的共同協(xié)議,從此以后被作為一種必須遵守的規(guī)則被肯定和應(yīng)用。正是由于TCP/IP協(xié)議,才有今天“地球村”因特網(wǎng)的巨大發(fā)展。 什么是 TCP/IP?
TCP/IP 是供已連接因特網(wǎng)的計(jì)算機(jī)進(jìn)行通信的通信協(xié)議。
TCP/IP 指傳輸控制協(xié)議/網(wǎng)際協(xié)議 (Transmission Control Protocol / Internet Protocol) 。
TCP/IP 定義了電子設(shè)備(比如計(jì)算機(jī))如何連入因特網(wǎng),以及數(shù)據(jù)如何在它們之間傳輸?shù)臉?biāo)準(zhǔn)。
TCP/IP協(xié)議介紹
TCP/IP的通訊協(xié)議
這部分簡要介紹一下TCP/IP的內(nèi)部結(jié)構(gòu),為討論與互聯(lián)網(wǎng)有關(guān)的安全問題打下基礎(chǔ)。TCP/IP協(xié)議組之所以流行,部分原因是因?yàn)樗梢杂迷诟鞣N各樣的信道和底層協(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í)行某一特定任務(wù)。該模型的目的是使各種硬件在相同的層次上相互通信。這7層是:物理層、數(shù)據(jù)鏈路層、網(wǎng)絡(luò)層、傳輸層、會話層、表示層和應(yīng)用層。而TCP/IP通訊協(xié)議采用了4層的層級結(jié)構(gòu),每一層都呼叫它的下一層所提供的網(wǎng)絡(luò)來完成自己的需求。這4層分別為: 應(yīng)用層:應(yīng)用程序間溝通的層,如簡單電子郵件傳輸(SMTP )、文件傳輸協(xié)議(FTP )、網(wǎng)絡(luò)遠(yuǎn)程訪問協(xié)議(Telnet )等。
傳輸層:在此層中,它提供了節(jié)點(diǎn)間的數(shù)據(jù)傳送服務(wù),如傳輸控制協(xié)議(TCP )、用戶數(shù)據(jù)報(bào)協(xié)議(UDP )等,TCP 和UDP 給數(shù)據(jù)包加入傳輸數(shù)據(jù)并把它傳輸?shù)较乱粚又?,這一層負(fù)責(zé)傳送數(shù)據(jù),并且確定數(shù)據(jù)已被送達(dá)并接收。
,互連網(wǎng)絡(luò)層:負(fù)責(zé)提供基本的數(shù)據(jù)封包傳送功能,讓每一塊數(shù)據(jù)包都能夠到達(dá)目的主機(jī)(但不檢查是否被正確接收),如網(wǎng)際協(xié)議(IP )。
網(wǎng)絡(luò)接口層:對實(shí)際的網(wǎng)絡(luò)媒體的管理,定義如何使用實(shí)際網(wǎng)絡(luò)(如Ethernet 、Serial Line等)來傳送數(shù)據(jù)。
TCP/IP中的協(xié)議
以下簡單介紹TCP/IP中的協(xié)議都具備什么樣的功能,都是如何工作的:
1. IP
網(wǎng)際協(xié)議IP 是TCP/IP的心臟,也是網(wǎng)絡(luò)層中最重要的協(xié)議。
IP 層接收由更低層(網(wǎng)絡(luò)接口層例如以太網(wǎng)設(shè)備驅(qū)動程序)發(fā)來的數(shù)據(jù)包,并把該數(shù)據(jù)包發(fā)送到更高層---TCP 或UDP 層;相反,IP 層也把從TCP 或UDP 層接收來的數(shù)據(jù)包傳送到更低層。IP 數(shù)據(jù)包是不可靠的,因?yàn)镮P 并沒有做任何事情來確認(rèn)數(shù)據(jù)包是按順序發(fā)送的或者沒有被破壞。IP 數(shù)據(jù)包中含有發(fā)送它的主機(jī)的地址(源地址)和接收它的主機(jī)的地址(目的地址)。
高層的TCP 和UDP 服務(wù)在接收數(shù)據(jù)包時(shí),通常假設(shè)包中的源地址是有效的。也可以這樣說,IP 地址形成了許多服務(wù)的認(rèn)證基礎(chǔ),這些服務(wù)相信數(shù)據(jù)包是從一個有效的主機(jī)發(fā)送來的。IP 確認(rèn)包含一個選項(xiàng),叫作IP source routing,可以用來指定一條源地址和目的地址之間的直接路徑。對于一些TCP 和UDP 的服務(wù)來說,使用了該選項(xiàng)的IP 包好像是從路徑上的最后一個系統(tǒng)傳遞過來的,而不是來自于它的真實(shí)地點(diǎn)。這個選項(xiàng)是為了測試而存在的,說明了它可以被用來欺騙系統(tǒng)來進(jìn)行平常是被禁止的連接。那么,許多依靠IP 源地址做確認(rèn)的服務(wù)將產(chǎn)生問題并且會被非法入侵。
2. TCP
如果IP 數(shù)據(jù)包中有已經(jīng)封好的TCP 數(shù)據(jù)包,那么IP 將把它們向?上?傳送到TCP 層。TCP 將包排序并進(jìn)行錯誤檢查,同時(shí)實(shí)現(xiàn)虛電路間的連接。TCP 數(shù)據(jù)包中包括序號和確認(rèn),所以未按照順序收到的包可以被排序,而損壞的包可以被重傳。 TCP 將它的信息送到更高層的應(yīng)用程序,例如Telnet 的服務(wù)程序和客戶程序。應(yīng)用程序輪流將信息送回TCP 層,TCP 層便將它們向下傳送到IP 層,設(shè)備驅(qū)動程序和物理介質(zhì),最后到接收方。
面向連接的服務(wù)(例如Telnet 、FTP 、rlogin 、X Windows和SMTP )需要高度的可靠性,所以它們使用了TCP 。DNS 在某些情況下使用TCP (發(fā)送和接收域名數(shù)據(jù)庫),但使用UDP 傳送有關(guān)單個主機(jī)的信息。
3.UDP
UDP 與TCP 位于同一層,但它不管數(shù)據(jù)包的順序、錯誤或重發(fā)。因此,UDP 不被應(yīng)用于那些使用虛電路的面向連接的服務(wù),UDP 主要用于那些面向查詢---應(yīng)答的服務(wù),例如NFS 。相對于FTP 或Telnet ,這些服務(wù)需要交換的信息量較小。使用UDP 的服務(wù)包括NTP (網(wǎng)絡(luò)時(shí)間協(xié)議)和DNS (DNS 也使用TCP )。
,欺騙UDP 包比欺騙TCP 包更容易,因?yàn)閁DP 沒有建立初始化連接(也可以稱為握手)(因?yàn)樵趦蓚€系統(tǒng)間沒有虛電路),也就是說,與UDP 相關(guān)的服務(wù)面臨著更大的危險(xiǎn)。
4.ICMP
ICMP 與IP 位于同一層,它被用來傳送IP 的的控制信息。它主要是用來提供有關(guān)通向目的地址的路徑信息。ICMP 的?Redirect?信息通知主機(jī)通向其他系統(tǒng)的更準(zhǔn)確的路徑,而?Unreachable?信息則指出路徑有問題。另外,如果路徑不可用了,ICMP 可以使TCP 連接?體面地?終止。PING 是最常用的基于ICMP 的服務(wù)。
5. TCP和UDP 的端口結(jié)構(gòu)
TCP 和UDP 服務(wù)通常有一個客戶/服務(wù)器的關(guān)系,例如,一個Telnet 服務(wù)進(jìn)程開始在系統(tǒng)上處于空閑狀態(tài),等待著連接。用戶使用Telnet 客戶程序與服務(wù)進(jìn)程建立一個連接??蛻舫绦蛳蚍?wù)進(jìn)程寫入信息,服務(wù)進(jìn)程讀出信息并發(fā)出響應(yīng),客戶程序讀出響應(yīng)并向用戶報(bào)告。因而,這個連接是雙工的,可以用來進(jìn)行讀寫。
兩個系統(tǒng)間的多重Telnet 連接是如何相互確認(rèn)并協(xié)調(diào)一致呢?TCP 或UDP 連接唯一地使用每個信息中的如下四項(xiàng)進(jìn)行確認(rèn):
源IP 地址 發(fā)送包的IP 地址。
目的IP 地址 接收包的IP 地址。
源端口 源系統(tǒng)上的連接的端口。
目的端口 目的系統(tǒng)上的連接的端口。
端口是一個軟件結(jié)構(gòu),被客戶程序或服務(wù)進(jìn)程用來發(fā)送和接收信息。一個端口對應(yīng)一個16比特的數(shù)。服務(wù)進(jìn)程通常使用一個固定的端口,例如,SMTP 使用25、Xwindows 使用6000。這些端口號是?廣為人知?的,因?yàn)樵诮⑴c特定的主機(jī)或服務(wù)的連接時(shí),需要這些地址和目的地址進(jìn)行通訊。
IP 協(xié)議
IP (Internet Protocol)協(xié)議的英文名直譯就是:因特網(wǎng)協(xié)議。從這個名稱我們就可以知道IP 協(xié)議的重要性。在現(xiàn)實(shí)生活中,我們進(jìn)行貨物運(yùn)輸時(shí)都是把貨物包裝成一個個的紙箱或者是集裝箱之后才進(jìn)行運(yùn)輸,在網(wǎng)絡(luò)世界中各種信息也是通過類似的方式進(jìn)行傳輸?shù)?。IP 協(xié)議規(guī)定了數(shù)據(jù)傳輸時(shí)的基本單元和格式。如果比作貨物運(yùn)輸,IP 協(xié)議規(guī)定了貨物打包時(shí)的包裝箱尺寸和包裝的程序。 除了這些以外,IP 協(xié)議還定義了數(shù)據(jù)包的遞交辦法和路由選擇。同樣用貨物運(yùn)輸做比喻,IP 協(xié)議規(guī)定了貨物的運(yùn)輸方法和運(yùn)輸路線。
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ù)流傳輸服務(wù)的規(guī)則和約定。簡單的說在TCP 模式中,對方發(fā)一個數(shù)據(jù)包給你,你要發(fā)一個確認(rèn)數(shù)據(jù)包給對方。通過這種確認(rèn)來提供可靠性。
1.1 TCP/IP參考模型
TCP/IP協(xié)議并不完全符合OSI 的七層參考模型。傳統(tǒng)的開放式系統(tǒng)互連參考模型,是一種通信協(xié)議的7層抽象的參考模型, 其中每一層執(zhí)行某一特定任務(wù)。該模型的目的是使各種硬件在相同的層次上相互通信。這7層是:物理層、數(shù)據(jù)鏈路層、網(wǎng)路層、傳輸層、話路層、表示層和應(yīng)用層。而TCP/IP通訊協(xié)議采用了4層的層級結(jié)構(gòu),每一層都呼叫它的下一層所提供的網(wǎng)絡(luò)來完成自己的需求。這4層分別為: 應(yīng)用層:應(yīng)用程序間溝通的層,如簡單電子郵件傳輸(SMTP )、文件傳輸協(xié)議(FTP )、網(wǎng)絡(luò)遠(yuǎn)程訪問協(xié)議(Telnet )等。
傳輸層:在此層中,它提供了節(jié)點(diǎn)間的數(shù)據(jù)傳送服務(wù),如傳輸控制協(xié)議(TCP )、用戶數(shù)據(jù)報(bào)協(xié)議(UDP )等,TCP 和UDP 給數(shù)據(jù)包加入傳輸數(shù)據(jù)并把它傳輸?shù)较乱粚又?,這一層負(fù)責(zé)傳送數(shù)據(jù),并且確定數(shù)據(jù)已被送達(dá)并接收。
互連網(wǎng)絡(luò)層:負(fù)責(zé)提供基本的數(shù)據(jù)封包傳送功能,讓每一塊數(shù)據(jù)包都能夠到達(dá)目的主機(jī)(但不檢查是否被正確接收),如網(wǎng)際協(xié)議(IP )。
網(wǎng)絡(luò)接口層:對實(shí)際的網(wǎng)絡(luò)媒體的管理,定義如何使用實(shí)際網(wǎng)絡(luò)(如Ethernet 、Serial Line等)來傳送數(shù)據(jù)。
1. 2 網(wǎng)間協(xié)議IP
Internet 上使用的一個關(guān)鍵的底層協(xié)議是網(wǎng)際協(xié)議,通常稱IP 協(xié)議。我們利用一個共同遵守的通信協(xié)議,從而使 Internet 成為一個允許連接不同類型的計(jì)算機(jī)和不同操作系統(tǒng)的網(wǎng)絡(luò)。要使兩臺計(jì)算機(jī)彼此之間進(jìn)行通信,必須使兩臺計(jì)算機(jī)使用同一種" 語言" 。通信協(xié)議正像兩臺計(jì)算機(jī)交換信息所使用的共同語言,它規(guī)定了通信雙方在通信中所應(yīng)共同遵守的約定。
計(jì)算機(jī)的通信協(xié)議精確地定義了計(jì)算機(jī)在彼此通信過程的所有細(xì)節(jié)。例如,每臺計(jì)算機(jī)發(fā)送的信息格式和含義,在什么情況下應(yīng)發(fā)送規(guī)定的特殊信息,以及接收方的計(jì)算機(jī)應(yīng)做出哪些應(yīng)答等等。
網(wǎng)際協(xié)議IP 協(xié)議提供了能適應(yīng)各種各樣網(wǎng)絡(luò)硬件的靈活性,對底層網(wǎng)絡(luò)硬件幾乎沒有任何要求,任何一個網(wǎng)絡(luò)只要可以從一個地點(diǎn)向另一個地點(diǎn)傳送二進(jìn)制數(shù)據(jù),就可以使用IP 協(xié)議加入 Internet 了。
,如果希望能在 Internet 上進(jìn)行交流和通信,則每臺連上 Internet 的計(jì)算機(jī)都必須遵守IP 協(xié)議。為此使用 Internet 的每臺計(jì)算機(jī)都必須運(yùn)行IP 軟件,以便時(shí)刻準(zhǔn)備發(fā)送或接收信息。
IP 協(xié)議對于網(wǎng)絡(luò)通信有著重要的意義:網(wǎng)絡(luò)中的計(jì)算機(jī)通過安裝IP 軟件,使許許多多的局域網(wǎng)絡(luò)構(gòu)成了一個龐大而又嚴(yán)密的通信系統(tǒng)。從而使 Internet 看起來好像是真實(shí)存在的,但實(shí)際上它是一種并不存在的虛擬網(wǎng)絡(luò),只不過是利用IP 協(xié)議把全世界上所有愿意接入 Internet 的計(jì)算機(jī)局域網(wǎng)絡(luò)連接起來,使得它們彼此之間都能夠通信。
1.3 傳輸控制協(xié)議TCP
盡管計(jì)算機(jī)通過安裝IP 軟件,從而保證了計(jì)算機(jī)之間可以發(fā)送和接收資料,但I(xiàn)P 協(xié)議還不能解決資料分組在傳輸過程中可能出現(xiàn)的問題。因此,若要解決可能出現(xiàn)的問題,連上 Internet 的計(jì)算機(jī)還需要安裝TCP 協(xié)議來提供可靠的并且無差錯的通信服務(wù)。
TCP 協(xié)議被稱作一種端對端協(xié)議。這是因?yàn)樗鼮閮膳_計(jì)算機(jī)之間的連接起了重要作用:當(dāng)一臺計(jì)算機(jī)需要與另一臺遠(yuǎn)程計(jì)算機(jī)連接時(shí),TCP 協(xié)議會讓它們建立一個連接、發(fā)送和接收資料以及終止連接。
傳輸控制協(xié)議TCP 協(xié)議利用重發(fā)技術(shù)和擁塞控制機(jī)制,向應(yīng)用程序提供可靠的通信連接,使它能夠自動適應(yīng)網(wǎng)上的各種變化。即使在 Internet 暫時(shí)出現(xiàn)堵塞的情況下,TCP 也能夠保證通信的可靠。
眾所周知, Internet 是一個龐大的國際性網(wǎng)絡(luò),網(wǎng)絡(luò)上的擁擠和空閑時(shí)間總是交替不定的,加上傳送的距離也遠(yuǎn)近不同,所以傳輸資料所用時(shí)間也會變化不定。TCP 協(xié)議具有自動調(diào)整" 超時(shí)值" 的功能,能很好地適應(yīng) Internet 上各種各樣的變化,確保傳輸數(shù)值的正確。
因此,從上面我們可以了解到:IP 協(xié)議只保證計(jì)算機(jī)能發(fā)送和接收分組資料,而TCP 協(xié)議則可提供一個可靠的、可流控的、全雙工的信息流傳輸服務(wù)。
綜上所述,雖然IP 和TCP 這兩個協(xié)議的功能不盡相同,也可以分開單獨(dú)使用,但它們是在同一時(shí)期作為一個協(xié)議來設(shè)計(jì)的,并且在功能上也是互補(bǔ)的。只有兩者的結(jié)合,才能保證 Internet 在復(fù)雜的環(huán)境下正常運(yùn)行。凡是要連接到 Internet 的計(jì)算機(jī),都必須同時(shí)安裝和使用這兩個協(xié)議,因此在實(shí)際中常把這兩個協(xié)議統(tǒng)稱作TCP/IP協(xié)議。
1.4 IP地址及其分類
在Internet 上連接的所有計(jì)算機(jī),從大型機(jī)到微型計(jì)算機(jī)都是以獨(dú)立的身份出現(xiàn),我們稱它為主機(jī)。為了實(shí)現(xiàn)各主機(jī)間的通信,每臺主機(jī)都必須有一個唯一的網(wǎng)絡(luò)地址。就好像每一個住宅都有唯一的門牌一樣,才不至于在傳輸資料時(shí)出現(xiàn)混亂。
,Internet 的網(wǎng)絡(luò)地址是指連入Internet 網(wǎng)絡(luò)的計(jì)算機(jī)的地址編號。所以,在Internet 網(wǎng)絡(luò)中,網(wǎng)絡(luò)地址唯一地標(biāo)識一臺計(jì)算機(jī)。
我們都已經(jīng)知道,Internet 是由幾千萬臺計(jì)算機(jī)互相連接而成的。而我們要確認(rèn)網(wǎng)絡(luò)上的每一臺計(jì)算機(jī),靠的就是能唯一標(biāo)識該計(jì)算機(jī)的網(wǎng)絡(luò)地址,這個地址就叫做IP (Internet Protocol的簡寫)地址,即用Internet 協(xié)議語言表示的地址。
目前,在Internet 里,IP 地址是一個32位的二進(jìn)制地址,為了便于記憶,將它們分為4組,每組8位,由小數(shù)點(diǎn)分開,用四個字節(jié)來表示,而且,用點(diǎn)分開的每個字節(jié)的數(shù)值范圍是0~255,如202.116.0.1,這種書寫方法叫做點(diǎn)數(shù)表示法。
IP 地址可確認(rèn)網(wǎng)絡(luò)中的任何一個網(wǎng)絡(luò)和計(jì)算機(jī),而要識別其它網(wǎng)絡(luò)或其中的計(jì)算機(jī),則是根據(jù)這些IP 地址的分類來確定的。一般將IP 地址按節(jié)點(diǎn)計(jì)算機(jī)所在網(wǎng)絡(luò)規(guī)模的大小分為A ,B ,C 三類,默認(rèn)的網(wǎng)絡(luò)屏蔽是根據(jù)IP 地址中的第一個字段確定的。
1. A類地址
A 類地址的表示范圍為:0.0.0.0~126.255.255.255,默認(rèn)網(wǎng)絡(luò)屏蔽為:255.0.0.0;A 類地址分配給規(guī)模特別大的網(wǎng)絡(luò)使用。A 類網(wǎng)絡(luò)用第一組數(shù)字表示網(wǎng)絡(luò)本身的地址,后面三組數(shù)字作為連接于網(wǎng)絡(luò)上的主機(jī)的地址。分配給具有大量主機(jī)(直接個人用戶)而局域網(wǎng)絡(luò)個數(shù)較少的大型網(wǎng)絡(luò)。例如IBM 公司的網(wǎng)絡(luò)。
2. B類地址
B 類地址的表示范圍為:128.0.0.0~191.255.255.255,默認(rèn)網(wǎng)絡(luò)屏蔽為:
255.255.0.0;B 類地址分配給一般的中型網(wǎng)絡(luò)。B 類網(wǎng)絡(luò)用第一、二組數(shù)字表示網(wǎng)絡(luò)的地址,后面兩組數(shù)字代表網(wǎng)絡(luò)上的主機(jī)地址。
3. C類地址
C 類地址的表示范圍為:192.0.0.0~223.255.255.255,默認(rèn)網(wǎng)絡(luò)屏蔽為:
255.255.255.0;C 類地址分配給小型網(wǎng)絡(luò),如一般的局域網(wǎng),它可連接的主機(jī)數(shù)量是最少的,采用把所屬的用戶分為若干的網(wǎng)段進(jìn)行管理。C 類網(wǎng)絡(luò)用前三組數(shù)字表示網(wǎng)絡(luò)的地址,最后一組數(shù)字作為網(wǎng)絡(luò)上的主機(jī)地址。
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)絡(luò)連至Internet ,需要將私有地址轉(zhuǎn)換為公有地址。這個轉(zhuǎn)換過程稱為網(wǎng)絡(luò)地址轉(zhuǎn)換(Network Address Translation,NAT ),通常使用路由器來執(zhí)行NAT 轉(zhuǎn)換。
實(shí)際上,還存在著D 類地址和E 類地址。但這兩類地址用途比較特殊,在這里只是簡單介紹一下:D 類地址稱為廣播地址,供特殊協(xié)議向選定的節(jié)點(diǎn)發(fā)送信息時(shí)用。E 類地址保留給將來使用。
,連接到Internet 上的每臺計(jì)算機(jī),不論其IP 地址屬于哪類都與網(wǎng)絡(luò)中的其它計(jì)算機(jī)處于平等地位,因?yàn)橹挥蠭P 地址才是區(qū)別計(jì)算機(jī)的唯一標(biāo)識。所以,以上IP 地址的分類只適用于網(wǎng)絡(luò)分類。
在Internet 中,一臺計(jì)算機(jī)可以有一個或多個IP 地址,就像一個人可以有多個通信地址一樣,但兩臺或多臺計(jì)算機(jī)卻不能共享一個IP 地址。如果有兩臺計(jì)算機(jī)的IP 地址相同,則會引起異常現(xiàn)象,無論哪臺計(jì)算機(jī)都將無法正常工作。
順便提一下幾類特殊的IP 地址:
1. 廣播地址 目的端為給定網(wǎng)絡(luò)上的所有主機(jī),一般主機(jī)段為全0
2. 單播地址 目的端為指定網(wǎng)絡(luò)上的單個主機(jī)地址
3. 組播地址 目的端為同一組內(nèi)的所有主機(jī)地址
4. 環(huán)回地址 127.0.0.1 在環(huán)回測試和廣播測試時(shí)會使用
1.5 子網(wǎng)的劃分
若公司不上Internet, 那一定不會煩惱IP 地址的問題, 因?yàn)榭梢匀我馐褂盟械腎P 地址, 不管是A 類或是B 類, 這個時(shí)候不會想到要用子網(wǎng), 但若是上Internet 那IP 地址便彌足珍貴了, 目前全球一陣Internet 熱,IP 地址已經(jīng)愈來愈少了, 而所申請的IP 地址目前也趨保守, 而且只有經(jīng)申請的IP 地址能在Internet 使用, 但對某些公司只能申請到一個C 類的IP 地址, 但又有多個點(diǎn)需要使用, 那這時(shí)便需要使用到子網(wǎng), 這就需要考慮子網(wǎng)的劃分,下面簡介子網(wǎng)的原理及如何規(guī)劃。
1.5.1 子網(wǎng)掩碼(Subnet Mask)的介紹
設(shè)定任何網(wǎng)絡(luò)上的任何設(shè)備不管是主機(jī)、個人電腦、路由器等皆需要設(shè)定IP 地址, 而跟隨著IP 地址的是所謂的子網(wǎng)掩碼(NetMask,Subnet Mask),這個子網(wǎng)掩碼主要的目的是由IP 地址中也能獲得網(wǎng)絡(luò)編碼, 也就是說IP 地址和子網(wǎng)掩碼作和而得到網(wǎng)絡(luò)編碼, 如下所示:
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)掩碼有所謂的默認(rèn)值, 如下所示
類 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
,在預(yù)設(shè)的子網(wǎng)掩碼(Net Mask)都只有255的值, 在談到子網(wǎng)掩碼(Subnet Mask)時(shí)這個值便不一定是255了。在完整一組C 類地址中如203.67.10.0-203.67.10.255 子網(wǎng)掩碼255.255.255.0,203.67.10.0稱之網(wǎng)絡(luò)編碼(Network Number,將IP 地址和子網(wǎng)掩碼作和), 而203.67.10.255是廣播的IP 地址, 所以這兩者皆不能使用, 實(shí)際只能使用203.67.10.1--203.67.10.254等254個IP 地址, 這是以255.255.255.0作子網(wǎng)掩碼的結(jié)果, 而所謂Subnet Msk尚可將整組C 類地址分成數(shù)組網(wǎng)絡(luò)編碼, 這要在子網(wǎng)掩碼上作手腳, 若是要將整組C 類地址分成2個網(wǎng)絡(luò)編碼那子網(wǎng)掩碼設(shè)定為
255.255.255.192, 若是要將整組C 類分成8組網(wǎng)絡(luò)編碼則子網(wǎng)掩碼要為
255.255.255.224, 這是怎么來的, 由以上知道網(wǎng)絡(luò)編碼是由IP 地址和子網(wǎng)掩碼作AND 而來的, 而且將子網(wǎng)掩碼以二進(jìn)制表示法知道是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)絡(luò)編碼是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
此時(shí)網(wǎng)絡(luò)編碼變成了192.10.10.192, 這便是子網(wǎng)。那要如何決定所使用的子網(wǎng)掩碼,255.255.255.224以二進(jìn)制表示法為11111111.11111111.11111111.11100000, 變化是在最后一組,11100000便是224, 以三個位(Bit )可表示2的3次方便是8個網(wǎng)絡(luò)編碼
子網(wǎng)掩碼二進(jìn)制表示法可分幾個網(wǎng)絡(luò)
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