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