郭天艷
【摘要】 人們在日常生活交流中要按一定的規(guī)則進行交流,同樣在Internet互聯(lián)網(wǎng)上計算機進行相互通信時,也必須要按一定的事先約定好的規(guī)則進行,因此:TCP/IP協(xié)議是針對Internet互聯(lián)網(wǎng)上不同計算機之間通信的協(xié)議標(biāo)準(zhǔn),也是互聯(lián)網(wǎng)絡(luò)數(shù)據(jù)傳輸中不可或缺的一部分。本文著重介紹網(wǎng)絡(luò)通信TCP/IP協(xié)議的定義和組成,詳細闡述了TCP/IP協(xié)議工作原理和工作方式,從而對于互聯(lián)網(wǎng)絡(luò)不同通信層的數(shù)據(jù)通信協(xié)議進行探討和分析。
【關(guān)鍵詞】 TCP/IP協(xié)議 Internet 應(yīng)用層 傳輸層 網(wǎng)絡(luò)層 數(shù)據(jù)鏈路層 物理層 網(wǎng)絡(luò)
TCP/IP協(xié)議是Internet各種協(xié)議中最基本的協(xié)議,也是最重要和最著名的兩個協(xié)議,即傳輸控制協(xié)議TCP(Transmission Control Protocol)和網(wǎng)際協(xié)議IP(InternetProtocol),簡單的說,就是主要由底層的lP協(xié)議和TCP協(xié)議組成。因此,我們經(jīng)常提到的TCP/IP并不一定是指TCP和lP這兩個協(xié)議,而往往是指Internet所使用的體系結(jié)構(gòu)或是指整個的TCP/IP協(xié)議族。
一、TCP/IP參考模型
TCP/IP協(xié)議將Internet分為五個層次,也稱為互聯(lián)分層網(wǎng)模型或互聯(lián)網(wǎng)分層參考模型。這五個層次分別是應(yīng)用層(第五層)、傳輸層(第四層)、網(wǎng)絡(luò)層(第三層)、數(shù)據(jù)鏈路層(第二層)、物理層(第一層)。模型如下圖所示:
由于TCP/IP協(xié)議在設(shè)計時考慮到要與具體的物理傳輸媒體無關(guān),因此在TCP/IP的標(biāo)準(zhǔn)中并沒有對數(shù)據(jù)鏈路層和物理層做出規(guī)定,而只是將最低的一層取名為網(wǎng)絡(luò)接口層。這樣,如果不考慮沒有多少內(nèi)容的網(wǎng)絡(luò)接口層,那么TCP/IP體系實際上就只有三個層次:應(yīng)用層、傳輸層和網(wǎng)絡(luò)層。
1、物理層:對應(yīng)于網(wǎng)絡(luò)的基本硬件,是Internet的物理構(gòu)成,例如,PC機、互聯(lián)網(wǎng)服務(wù)器、網(wǎng)絡(luò)設(shè)備等。物理層的任務(wù)就是透明的傳送比特流。在物理層上所傳送數(shù)據(jù)的單位是比特。傳遞信息所利用的一些物理媒體,如雙絞線、同軸電纜、光纜等,并不在物理層之內(nèi)而在物理層的下面。
2、數(shù)據(jù)鏈路層:定義了將數(shù)據(jù)組成正確的幀的規(guī)范和在網(wǎng)絡(luò)中傳輸幀的規(guī)范。幀:是指一串?dāng)?shù)據(jù),是數(shù)據(jù)在網(wǎng)絡(luò)中傳輸?shù)幕締挝?。?shù)據(jù)鏈路層的任務(wù)是在兩個相鄰結(jié)點間的線路上無差錯地傳送以幀(frame)為單位的數(shù)據(jù)。每一幀包括數(shù)據(jù)和必要的控制信息。在傳送數(shù)據(jù)時,若接收結(jié)點檢測到所收到的數(shù)據(jù)中有差錯,就要通知發(fā)送方重發(fā)這一幀直到這一幀準(zhǔn)確無誤的到達接收結(jié)點為止。在每一幀所包含的控制信息中,由同步信息、地址信息、差錯控制、以及流量控制信息等。
3、網(wǎng)絡(luò)層:定義了在Internet中傳輸?shù)摹靶畔钡母袷剑约皬囊粋€源,通過一個或多個路由器到達最終目標(biāo)的“信息包”轉(zhuǎn)發(fā)機制。這里要強調(diào)指出,網(wǎng)絡(luò)層中“網(wǎng)絡(luò)”二字,已不是我們通常談到的網(wǎng)絡(luò)的概念,而是在計算機網(wǎng)絡(luò)體系結(jié)構(gòu)中的專用名詞。
4、傳輸層:為兩個用戶進程之間、管理和拆除可靠而又有效的端到端的鏈接。這一層曾有幾個譯名,如傳送層、傳輸層或轉(zhuǎn)送層?,F(xiàn)在比較一致的意見是譯為運輸層。在運輸層,信息的傳送單位是報文。當(dāng)報文較長時,先要把它分割成若干個分組,然后再交給下一層(網(wǎng)絡(luò)層)進行傳輸。
傳輸層的任務(wù)是根據(jù)下面的通信子網(wǎng)的特性最佳的利用網(wǎng)絡(luò)資源,并以可靠和經(jīng)濟的方式,為兩端主機(也就是源站和目的站)的進程之間,建立一條運輸連接,以透明地傳送報文?;蛘哒f,運輸層向上一層進行的通信的兩個進程之間提供一個可靠的端到端的服務(wù),使它們看不見運輸層以下的數(shù)據(jù)通信的細節(jié)。在通信子網(wǎng)內(nèi)的各個交換結(jié)點以及連接各通信子網(wǎng)的路由器,都沒有運輸層。運輸層只能存在于通信子網(wǎng)外面的主機之中。運輸層以上的各層就不再關(guān)心信息傳輸?shù)膯栴}了。正因為如此,運輸層就成為計算機網(wǎng)絡(luò)體系結(jié)構(gòu)中非常重要的一層。
5、應(yīng)用層:定義了應(yīng)用程序使用Internet的規(guī)范。應(yīng)用層是原理體系結(jié)構(gòu)中的最高層,應(yīng)用層確定進程之間通信的性質(zhì)以滿足用戶的需要(這反應(yīng)在用戶所產(chǎn)生的服務(wù)請求)。應(yīng)用層不僅要提供應(yīng)用進程所需要的信息交換和遠地操作,而且還要作為互相作用的應(yīng)用進程的用戶代理(useragent),來完成一些為進行語義上有意義的信息交換所必須的功能。應(yīng)用層直接為用戶的應(yīng)用提供服務(wù)。需要注意的是,應(yīng)用層協(xié)議不是解決用戶各種具體應(yīng)用的協(xié)議。
二、TCP/IP主要協(xié)議
TCP/IP是一組通信協(xié)議的帶名詞,是由一系列協(xié)議組成的協(xié)議簇。它本身至兩個協(xié)議集:TCP-傳輸控制協(xié)議,IP——互聯(lián)網(wǎng)協(xié)議。網(wǎng)絡(luò)層、傳輸層、應(yīng)用層中使用的TCP、lP主要協(xié)議有:
2.1、網(wǎng)絡(luò)層
TCP/IP網(wǎng)絡(luò)層包括以下協(xié)議:
IP(網(wǎng)間協(xié)議)——定義一套在網(wǎng)絡(luò)中通訊的規(guī)則。IP包括地址信息和一些控制信息。IP有兩個主要任務(wù):在網(wǎng)絡(luò)中提供無連接的、盡力而為的數(shù)據(jù)報傳送,以及提供數(shù)據(jù)報分片和重組以支持具有不同最大傳輸單元(MTU)的數(shù)據(jù)連路。IPv4是當(dāng)前網(wǎng)絡(luò)中使用的版本;IPv6是新的協(xié)議版本。
ARP(地址解析協(xié)議)——允許主機動態(tài)的發(fā)現(xiàn)對應(yīng)于特定IP網(wǎng)絡(luò)層地址的MAC(傳輸媒體訪問控制)地址。給定網(wǎng)絡(luò)中的兩個設(shè)備,若要通信,它們必須要知道對方設(shè)備的物理地址。
RARP(逆地址解析協(xié)議)——用于將MAC地址以射到lP地址。未知其IP地址的無盤工作站在啟動時可使用RARP,它在邏輯上是ARP的逆過程。RARP依賴于具有MAC地址到lP地址映射表項的RARP服務(wù)器。
ICMP(網(wǎng)際控制報文協(xié)議)——用以將錯誤以及其他有關(guān)lP分組處理的信息報告給源站。
2.2 傳輸層
TCP/IP傳輸層中定義了一下兩個傳輸層協(xié)議:
TCP(傳輸控制協(xié)議)——提供IP網(wǎng)絡(luò)中面向鏈接的、端到端的可靠數(shù)據(jù)傳輸。
TCP使用三次握手機制建立連接。三次握手通過允許各方對初始序列號達成一致來使得連接兩端同步。此機制也保證了各方已準(zhǔn)備好數(shù)據(jù)發(fā)送/接收,并且知道對方也已準(zhǔn)備好。使用此機制保證會話建立期間和會話終止后不會傳輸或重傳分組。
UDP(數(shù)據(jù)報協(xié)議)——作為IP和上層進程接口的無連接協(xié)議。與TCP不同,UDP并未給IP加入可靠性、流量控制或差錯恢復(fù)等功能。由于UDP的簡單性,UDP頭比TCP包含更少的字節(jié),同時消耗更少的網(wǎng)絡(luò)開銷。
TCP和UDP使用協(xié)議端口號來相互區(qū)分運行在同一設(shè)備上的多個應(yīng)用。端口號是TCP和UDP段的一部分,用來識別數(shù)據(jù)段屬于哪個應(yīng)用。眾所周知的或標(biāo)準(zhǔn)的端口號被分配給各種應(yīng)用,以使得TCP/JP協(xié)議的不同實現(xiàn)可以互操作。這些眾所周知的端口號的例子包括一下幾種:
①FTP(傳輸協(xié)議)TCP端口20(數(shù)據(jù))和端口21(控制)。②Telnet TCP端口23。③TFTP(普通文件傳輸協(xié)議)UDP端口69。
2.3 應(yīng)用層
在TCP/IP協(xié)議中,對應(yīng)OSI模型的上面三層并成一層,稱為應(yīng)用層。這里由許多應(yīng)用層協(xié)議,它們代表多種應(yīng)用,主要包括一下幾種:①FTP(文件傳輸協(xié)議)和TFTP(普通文件傳輸協(xié)議)用于傳輸大量數(shù)據(jù)。②SNMP(簡單網(wǎng)絡(luò)管理協(xié)議)用于網(wǎng)絡(luò)管理,報告網(wǎng)絡(luò)異常,并設(shè)置網(wǎng)絡(luò)閾值。③SMTP(簡單郵件傳輸協(xié)議)提供電子郵件服務(wù)。④DNS(域名系統(tǒng))講網(wǎng)絡(luò)節(jié)點名轉(zhuǎn)換成網(wǎng)絡(luò)地址。
三、lP協(xié)議和TCP協(xié)議所提供的服務(wù)分析
3.1 lP協(xié)議服務(wù)分析
3.1.1 不可靠的投遞服務(wù)
lP協(xié)議提供不可靠的、盡力的、無連接的數(shù)據(jù)投遞服務(wù),它無法保證數(shù)據(jù)報投遞的結(jié)果。在傳輸?shù)倪^程中,數(shù)據(jù)報可能會丟失、重發(fā)、延遲和亂序等,但是IP服務(wù)的本身卻不關(guān)心這些結(jié)果,也不講這些結(jié)果通知收發(fā)雙方。
3.1.2 無連接的投遞服務(wù)
每個數(shù)據(jù)報獨立處理和傳輸,因此,由一臺主機發(fā)出的數(shù)據(jù)報序列??赡苋〔煌穆窂?,甚至其中的一部分數(shù)據(jù)報會在傳輸過程中丟失。
3.1.3 盡力的投遞服務(wù)
lP協(xié)議軟件決不簡單的丟棄數(shù)據(jù)報,只要有一線希望,就向前投遞;盡力投遞的另一種體現(xiàn)方法是lP協(xié)議軟件執(zhí)行數(shù)據(jù)報的分段,以適應(yīng)具體的傳輸網(wǎng)絡(luò),數(shù)據(jù)報的合段則由最終節(jié)點的lP模塊來完成。
3.2 TCP協(xié)議服務(wù)分析
3.2.1 面向流的投遞服務(wù)
TCP協(xié)議在IP協(xié)議軟件提供的服務(wù)基礎(chǔ)啊上,支持面向鏈接的、可靠的、面向流的投遞服務(wù)。應(yīng)用程序之間傳輸?shù)臄?shù)據(jù)可被視為無結(jié)構(gòu)的字節(jié)流(或位留),流投遞服務(wù)保證收發(fā)的字節(jié)順序完全一致。
3.2.2 面向鏈接的投遞服務(wù)
流傳輸之前,TCP收發(fā)模塊之間需建立鏈接(類似虛電路),其后的TCP報文在此連接基礎(chǔ)上傳輸。TCP連接報文通過lP數(shù)據(jù)報進行傳輸,由于IP數(shù)據(jù)報的傳輸導(dǎo)致ARP地址映射表產(chǎn)生,從而保證了后繼的TCP報文可以具有相同的路徑。
3.2.3 可靠地投遞服務(wù)
發(fā)送方TCP模塊在形成TCP報文的同時,形成一個所謂的“累計核對”?!袄塾嫼藢Α鳖愃菩r灪停㈦S同TCP報文一起傳輸。接收方TCP模塊根據(jù)該校驗和判斷傳輸?shù)恼_性。如果傳輸不正確,接收方簡單的丟棄該TCP報文,否則進行應(yīng)答。發(fā)送方如果在規(guī)定的時間內(nèi)未能獲得應(yīng)答報文,講自動進行重傳操作。
四、結(jié)束語
本文從TCP/IP協(xié)議的模型、主要協(xié)議和所提供的服務(wù)幾個方面深入的分析了它在計算機網(wǎng)絡(luò)、數(shù)據(jù)交換、信息傳遞中所起的重要作用,使我們對TCP/IP協(xié)議有了更深的認識和理解,并且熟悉它在網(wǎng)絡(luò)中的應(yīng)用,能夠幫助我們更好的處理解決一些網(wǎng)絡(luò)問題。