發(fā)布時(shí)間:2016-05-17 22:22:00 閱讀次數(shù):1892
TCP/IP(Transmission Control Protocol/Internet Protocol)的簡(jiǎn)寫,中文譯名為傳輸控制協(xié)議/因特網(wǎng)互聯(lián)協(xié)議,又叫網(wǎng)絡(luò)通訊協(xié)議,這個(gè)協(xié)議是是Internet最基本的協(xié)議、Internet國(guó)際互聯(lián)網(wǎng)絡(luò)的基礎(chǔ),簡(jiǎn)單地說,就是由網(wǎng)絡(luò)層的IP協(xié)議和傳輸層的TCP協(xié)議組成的。
TCP/IP是網(wǎng)絡(luò)中使用的基本的通信協(xié)議。雖然從名字上看TCP/IP包括兩個(gè)協(xié)議,傳輸控制協(xié)議(TCP)和網(wǎng)際協(xié)議(IP),但TCP/IP實(shí)際上是一組協(xié)議,它包括上百個(gè)各種功能的協(xié)議,如:遠(yuǎn)程登錄、文件傳輸和電子郵件等,而TCP協(xié)議和IP協(xié)議是保證數(shù)據(jù)完整傳輸?shù)膬蓚€(gè)基本的重要協(xié)議。通常說TCP/IP是Internet協(xié)議族,而不單單是TCP和IP。
TCP/IP是用于計(jì)算機(jī)通信的一組協(xié)議,我們通常稱它為TCP/IP協(xié)議族。它是70年代中期美國(guó)國(guó)防部為其ARPANET廣域網(wǎng)開發(fā)的網(wǎng)絡(luò)體系結(jié)構(gòu)和協(xié)議標(biāo)準(zhǔn),以它為基礎(chǔ)組建的INTERNET是目前國(guó)際上規(guī)模最大的計(jì)算機(jī)網(wǎng)絡(luò),正因?yàn)?span>INTERNET的廣泛使用,使得TCP/IP成了事實(shí)上的標(biāo)準(zhǔn)。
之所以說TCP/IP是一個(gè)協(xié)議族,是因?yàn)?span>TCP/IP協(xié)議包括TCP、IP、UDP、ICMP、RIP、TELNETFTP、SMTP、ARP、TFTP等許多協(xié)議,這些協(xié)議一起稱為TCP/IP協(xié)議。
通俗而言:TCP負(fù)責(zé)發(fā)現(xiàn)傳輸?shù)膯栴},一有問題就發(fā)出信號(hào),要求重新傳輸,直到所有數(shù)據(jù)安全正確地傳輸?shù)侥康牡?。?span>IP是給因特網(wǎng)的每一臺(tái)電腦規(guī)定一個(gè)地址。1974年12月,卡恩、瑟夫的第一份TCP協(xié)議詳細(xì)說明正式發(fā)表。當(dāng)時(shí)美國(guó)國(guó)防部與三個(gè)科學(xué)家小組簽定了完成TCP/IP的協(xié)議,結(jié)果由瑟夫領(lǐng)銜的小組捷足先登,首先制定出了通過詳細(xì)定義的TCP/IP協(xié)議標(biāo)準(zhǔn)。當(dāng)時(shí)作了一個(gè)試驗(yàn),將信息包通過點(diǎn)對(duì)點(diǎn)的衛(wèi)星網(wǎng)絡(luò),再通過陸地電纜,再通過衛(wèi)星網(wǎng)絡(luò),再由地面?zhèn)鬏?,貫串歐洲和美國(guó),經(jīng)過各種電腦系統(tǒng),全程9.4萬公里竟然沒有丟失一個(gè)數(shù)據(jù)位,遠(yuǎn)距離的可靠數(shù)據(jù)傳輸證明了TCP/IP協(xié)議的成功。
1983年1月1日,運(yùn)行較長(zhǎng)時(shí)期曾被人們習(xí)慣了的NCP被停止使用,TCP/IP協(xié)議作為因特網(wǎng)上所有主機(jī)間的共同協(xié)議,從此以后被作為一種必須遵守的規(guī)則被肯定和應(yīng)用。正是由于TCP/IP協(xié)議,才有今天“地球村”因特網(wǎng)的巨大發(fā)展。
TCP/IP 是供已連接因特網(wǎng)的計(jì)算機(jī)進(jìn)行通信的通信協(xié)議。
TCP/IP 指?jìng)鬏斂刂茀f(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é)議/網(wǎng)際協(xié)議)是互聯(lián)網(wǎng)中的基本通信語(yǔ)言或協(xié)議。在私網(wǎng)中,它也被用作通信協(xié)議。當(dāng)你直接網(wǎng)絡(luò)連接時(shí),你的計(jì)算機(jī)應(yīng)提供一個(gè)TCP/IP程序的副本,此時(shí)接收你所發(fā)送的信息的計(jì)算機(jī)也應(yīng)有一個(gè)TCP/IP程序的副本。TCP/IP是一個(gè)兩層的程序。高層為傳輸控制協(xié)議,它負(fù)責(zé)聚集信息或把文件拆分稱更小的包。這些包通過網(wǎng)絡(luò)傳送到接收端的TCP層,接收端的TCP層把包還原為原始文件。低層是網(wǎng)際協(xié)議,它處理每個(gè)包的地址部分,使這些包正確的到達(dá)目的地。網(wǎng)絡(luò)上的網(wǎng)關(guān)計(jì)算機(jī)根據(jù)信息的地址來進(jìn)行路由選擇。即使來自同一文件的分包路由也有可能不同,但最后會(huì)在目的地匯合。TCP/IP使用客戶端/服務(wù)器模式進(jìn)行通信。TCP/IP通信是點(diǎn)對(duì)點(diǎn)的,意思是通信是網(wǎng)絡(luò)中的一臺(tái)主機(jī)與另一臺(tái)主機(jī)之間的。TCP/IP與上層應(yīng)用程序之間可以說是“沒有國(guó)籍的”,因?yàn)槊總€(gè)客戶請(qǐng)求都被看做是與上一個(gè)請(qǐng)求無關(guān)的。正是它們之間的“無國(guó)籍的”釋放了網(wǎng)絡(luò)路徑,才是每個(gè)人都可以連續(xù)不斷的使用網(wǎng)絡(luò)。許多用戶熟悉使用TCP/IP協(xié)議的高層應(yīng)用協(xié)議。包括萬維網(wǎng)的超文本傳輸協(xié)議(HTTP),文件傳輸協(xié)議(FTP),Telnet和簡(jiǎn)單郵件傳輸協(xié)議(SMTP)。這些協(xié)議通常和TCP/IP協(xié)議打包在一起。使用模擬電話調(diào)制解調(diào)器連接網(wǎng)絡(luò)的個(gè)人電腦通常是使用串行線路接口協(xié)議(SLIP)和點(diǎn)對(duì)點(diǎn)協(xié)議(PPP)。這些協(xié)議壓縮IP包后通過撥號(hào)電話線發(fā)送到對(duì)方的調(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)。
IP(Internet Protocol)協(xié)議的英文名直譯就是:因特網(wǎng)協(xié)議。從這個(gè)名稱我們就可以知道IP協(xié)議的重要性。在現(xiàn)實(shí)生活中,我們進(jìn)行貨物運(yùn)輸時(shí)都是把貨物包裝成一個(gè)個(gè)的紙箱或者是集裝箱之后才進(jìn)行運(yùn)輸,在網(wǎng)絡(luò)世界中各種信息也是通過類似的方式進(jìn)行傳輸?shù)摹?span>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)輸路線。
我們已經(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ā)出去的貨物對(duì)方有沒有收到我們是不知道的。就好像8毛錢一份的平信一樣。那對(duì)于重要的信件我們要寄掛號(hào)信怎么辦呢?TCP協(xié)議就是幫我們寄“掛號(hào)信”的。TCP協(xié)議提供了可靠的面向?qū)ο蟮臄?shù)據(jù)流傳輸服務(wù)的規(guī)則和約定。簡(jiǎn)單的說在TCP模式中,對(duì)方發(fā)一個(gè)數(shù)據(jù)包給你,你要發(fā)一個(gè)確認(rèn)數(shù)據(jù)包給對(duì)方。通過這種確認(rèn)來提供可靠性。
TCP/IP協(xié)議并不完全符合OSI的七層參考模型。傳統(tǒng)的開放式系統(tǒng)互連參考模型,是一種通信協(xié)議的7層抽象的參考模型,其中每一層執(zhí)行某一特定任務(wù)。該模型的目的是使各種硬件在相同的層次上相互通信。這7層是:物理層、數(shù)據(jù)鏈路層、網(wǎng)絡(luò)層、傳輸層、會(huì)話層、表示層和應(yīng)用層。而TCP/IP通訊協(xié)議采用了4層的層級(jí)結(jié)構(gòu),每一層都呼叫它的下一層所提供的網(wǎng)絡(luò)來完成自己的需求。這4層分別為:
應(yīng)用層:應(yīng)用程序間溝通的層,如簡(jiǎn)單電子郵件傳輸(SMTP)、文件傳輸協(xié)議(FTP)、網(wǎng)絡(luò)遠(yuǎn)程訪問協(xié)議(Telnet)等。
傳輸層:在此層中,它提供了節(jié)點(diǎn)間的數(shù)據(jù)傳送,應(yīng)用程序之間的通信服務(wù),主要功能是數(shù)據(jù)格式化、數(shù)據(jù)確認(rèn)和丟失重傳等。如傳輸控制協(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ò)接口層(主機(jī)-網(wǎng)絡(luò)層):接收IP數(shù)據(jù)報(bào)并進(jìn)行傳輸,從網(wǎng)絡(luò)上接收物理幀,抽取IP數(shù)據(jù)報(bào)轉(zhuǎn)交給下一層,對(duì)實(shí)際的網(wǎng)絡(luò)媒體的管理,定義如何使用實(shí)際網(wǎng)絡(luò)(如Ethernet、Serial Line等)來傳送數(shù)據(jù)。
以下簡(jiǎn)單介紹TCP/IP中的協(xié)議都具備什么樣的功能,都是如何工作的:
1.IP
網(wǎng)際協(xié)議IP是TCP/IP的心臟,也是網(wǎng)絡(luò)層中最重要的協(xié)議。
IP層接收由更低層(網(wǎng)絡(luò)接口層例如以太網(wǎng)設(shè)備驅(qū)動(dòng)程序)發(fā)來的數(shù)據(jù)包,并把該數(shù)據(jù)包發(fā)送到更高層---TCP或UDP層;相反,IP層也把從TCP或UDP層接收來的數(shù)據(jù)包傳送到更低層。IP數(shù)據(jù)包是不可靠的,因?yàn)?span>IP并沒有做任何事情來確認(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ù)包是從一個(gè)有效的主機(jī)發(fā)送來的。IP確認(rèn)包含一個(gè)選項(xiàng),叫作IP source routing,可以用來指定一條源地址和目的地址之間的直接路徑。對(duì)于一些TCP和UDP的服務(wù)來說,使用了該選項(xiàng)的IP包好像是從路徑上的最后一個(gè)系統(tǒng)傳遞過來的,而不是來自于它的真實(shí)地點(diǎn)。這個(gè)選項(xiàng)是為了測(cè)試而存在的,說明了它可以被用來欺騙系統(tǒng)來進(jìn)行平常是被禁止的連接。那么,許多依靠IP源地址做確認(rèn)的服務(wù)將產(chǎn)生問題并且會(huì)被非法入侵。
2.TCP
如果IP數(shù)據(jù)包中有已經(jīng)封好的TCP數(shù)據(jù)包,那么IP將把它們向上傳送到TCP層。TCP將包排序并進(jìn)行錯(cuò)誤檢查,同時(shí)實(shí)現(xiàn)虛電路間的連接。TCP數(shù)據(jù)包中包括序號(hào)和確認(rèn),所以未按照順序收到的包可以被排序,而損壞的包可以被重傳。
TCP將它的信息送到更高層的應(yīng)用程序,例如Telnet的服務(wù)程序和客戶程序。應(yīng)用程序輪流將信息送回TCP層,TCP層便將它們向下傳送到IP層,設(shè)備驅(qū)動(dòng)程序和物理介質(zhì),最后到接收方。
面向連接的服務(wù)(例如Telnet、FTP、rlogin、X Windows和SMTP)需要高度的可靠性,所以它們使用了TCP。DNS在某些情況下使用TCP(發(fā)送和接收域名數(shù)據(jù)庫(kù)),但使用UDP傳送有關(guān)單個(gè)主機(jī)的信息。
3.UDP
UDP與TCP位于同一層,但它不管數(shù)據(jù)包的順序、錯(cuò)誤或重發(fā)。因此,UDP不被應(yīng)用于那些使用虛電路的面向連接的服務(wù),UDP主要用于那些面向查詢---應(yīng)答的服務(wù),例如NFS。相對(duì)于FTP或Telnet,這些服務(wù)需要交換的信息量較小。使用UDP的服務(wù)包括NTP(網(wǎng)絡(luò)時(shí)間協(xié)議)和DNS(DNS也使用TCP)。
欺騙UDP包比欺騙TCP包更容易,因?yàn)?span>UDP沒有建立初始化連接(也可以稱為握手)(因?yàn)樵趦蓚€(gè)系統(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ù)通常有一個(gè)客戶/服務(wù)器的關(guān)系,例如,一個(gè)Telnet服務(wù)進(jìn)程開始在系統(tǒng)上處于空閑狀態(tài),等待著連接。用戶使用Telnet客戶程序與服務(wù)進(jìn)程建立一個(gè)連接。客戶程序向服務(wù)進(jìn)程寫入信息,服務(wù)進(jìn)程讀出信息并發(fā)出響應(yīng),客戶程序讀出響應(yīng)并向用戶報(bào)告。因而,這個(gè)連接是雙工的,可以用來進(jìn)行讀寫。
兩個(gè)系統(tǒng)間的多重Telnet連接是如何相互確認(rèn)并協(xié)調(diào)一致呢?TCP或UDP連接唯一地使用每個(gè)信息中的如下四項(xiàng)進(jìn)行確認(rèn):
源IP地址發(fā)送包的IP地址。
目的IP地址接收包的IP地址。
源端口源系統(tǒng)上的連接的端口。
目的端口目的系統(tǒng)上的連接的端口。
端口是一個(gè)軟件結(jié)構(gòu),被客戶程序或服務(wù)進(jìn)程用來發(fā)送和接收信息。一個(gè)端口對(duì)應(yīng)一個(gè)16比特的數(shù)。服務(wù)進(jìn)程通常使用一個(gè)固定的端口,例如,SMTP使用25、Xwindows使用6000。這些端口號(hào)是‘廣為人知’的,因?yàn)樵诮⑴c特定的主機(jī)或服務(wù)的連接時(shí),需要這些地址和目的地址進(jìn)行通訊。
首先,該模型沒有清楚地區(qū)分哪些是規(guī)范、哪些是實(shí)現(xiàn);其次,TCP/IP模型的主機(jī)—網(wǎng)絡(luò)層定義了網(wǎng)絡(luò)層與數(shù)據(jù)鏈路層的接口,并不是常規(guī)意義上的一層,接口和層的區(qū)別是非常重要的,TCP/IP模型沒有將它們區(qū)分開來。
在Internet上連接的所有計(jì)算機(jī),從大型機(jī)到微型計(jì)算機(jī)都是以獨(dú)立的身份出現(xiàn),我們稱它為主機(jī)。為了實(shí)現(xiàn)各主機(jī)間的通信,每臺(tái)主機(jī)都必須有一個(gè)唯一的網(wǎng)絡(luò)地址。就好像每一個(gè)住宅都有唯一的門牌一樣,才不至于在傳輸資料時(shí)出現(xiàn)混亂。
Internet的網(wǎng)絡(luò)地址是指連入Internet網(wǎng)絡(luò)的計(jì)算機(jī)的地址編號(hào)。所以,在Internet網(wǎng)絡(luò)中,網(wǎng)絡(luò)地址唯一地標(biāo)識(shí)一臺(tái)計(jì)算機(jī)。
我們都已經(jīng)知道,Internet是由幾千萬臺(tái)計(jì)算機(jī)互相連接而成的。而我們要確認(rèn)網(wǎng)絡(luò)上的每一臺(tái)計(jì)算機(jī),靠的就是能唯一標(biāo)識(shí)該計(jì)算機(jī)的網(wǎng)絡(luò)地址,這個(gè)地址就叫做IP(Internet Protocol的簡(jiǎn)寫)地址,即用Internet協(xié)議語(yǔ)言表示的地址。
目前,在Internet里,IP地址是一個(gè)32位的二進(jìn)制地址,為了便于記憶,將它們分為4組,每組8位,由小數(shù)點(diǎn)分開,用四個(gè)字節(jié)來表示,而且,用點(diǎn)分開的每個(gè)字節(jié)的數(shù)值范圍是0~255,如202.116.0.1,這種書寫方法叫做點(diǎn)數(shù)表示法。
IP地址可確認(rèn)網(wǎng)絡(luò)中的任何一個(gè)網(wǎng)絡(luò)和計(jì)算機(jī),而要識(shí)別其它網(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地址中的第一個(gè)字段確定的。
A類地址的表示范圍為:1.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ī)(直接個(gè)人用戶)而局域網(wǎng)絡(luò)個(gè)數(shù)較少的大型網(wǎng)絡(luò)。例如IBM公司的網(wǎng)絡(luò)。
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ī)地址。
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個(gè)A類地址段,16個(gè)B類地址段,256個(gè)C類地址段)作為私有的內(nèi)部使用的地址。在這個(gè)范圍內(nèi)的IP地址不能被路由到Internet骨干網(wǎng)上;Internet路由器將丟棄該私有地址。
使用私有地址將網(wǎng)絡(luò)連至Internet,需要將私有地址轉(zhuǎn)換為公有地址。這個(gè)轉(zhuǎn)換過程稱為網(wǎng)絡(luò)地址轉(zhuǎn)換(Network Address Translation,NAT),通常使用路由器來執(zhí)行NAT轉(zhuǎn)換。
實(shí)際上,還存在著D類地址和E類地址。但這兩類地址用途比較特殊,在這里只是簡(jiǎn)單介紹一下:D類地址稱為廣播地址,供特殊協(xié)議向選定的節(jié)點(diǎn)發(fā)送信息時(shí)用。E類地址保留給將來使用。
連接到Internet上的每臺(tái)計(jì)算機(jī),不論其IP地址屬于哪類都與網(wǎng)絡(luò)中的其它計(jì)算機(jī)處于平等地位,因?yàn)橹挥?span>IP地址才是區(qū)別計(jì)算機(jī)的唯一標(biāo)識(shí)。所以,以上IP地址的分類只適用于網(wǎng)絡(luò)分類。
在Internet中,一臺(tái)計(jì)算機(jī)可以有一個(gè)或多個(gè)IP地址,就像一個(gè)人可以有多個(gè)通信地址一樣,但兩臺(tái)或多臺(tái)計(jì)算機(jī)卻不能共享一個(gè)IP地址。如果有兩臺(tái)計(jì)算機(jī)的IP地址相同,則會(huì)引起異?,F(xiàn)象,無論哪臺(tái)計(jì)算機(jī)都將無法正常工作。