運(yùn)輸層與應(yīng)用層協(xié)議_第1頁
運(yùn)輸層與應(yīng)用層協(xié)議_第2頁
運(yùn)輸層與應(yīng)用層協(xié)議_第3頁
運(yùn)輸層與應(yīng)用層協(xié)議_第4頁
運(yùn)輸層與應(yīng)用層協(xié)議_第5頁
已閱讀5頁,還剩9頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

第8章運(yùn)輸層與應(yīng)用層協(xié)議本章主要討論運(yùn)輸協(xié)議(transportprotocol)--TCP協(xié)議,以及幾種重要的應(yīng)用層協(xié)議。8.1運(yùn)輸層協(xié)議運(yùn)輸協(xié)議(transportprotocol)是整個(gè)網(wǎng)絡(luò)體系結(jié)構(gòu)中的關(guān)鍵之一。運(yùn)輸層向高層用戶屏蔽下面通信子網(wǎng)的細(xì)節(jié),使高層用戶看不見實(shí)現(xiàn)通信功能的物理鏈路是什么,看不見數(shù)據(jù)鏈路采用的是什么協(xié)議。運(yùn)輸層使高層用戶看見的就是好像在兩個(gè)運(yùn)輸層實(shí)體之間有一條端到端的、可靠的、全雙工通信通路(即數(shù)字管道)。也就是說:運(yùn)輸層實(shí)現(xiàn)一個(gè)主機(jī)中的進(jìn)程與另一個(gè)主機(jī)中的應(yīng)用進(jìn)程之間的有序的和可靠的通信。為了實(shí)現(xiàn)運(yùn)輸層的功能,首先必須解決在一個(gè)主機(jī)中如何標(biāo)識唯一的每一個(gè)進(jìn)程,又如何標(biāo)識這些進(jìn)程在網(wǎng)絡(luò)中也是唯一的。因此,下面先討論這個(gè)問題。一、端口、管套與連接1,端口(Port)端口是個(gè)非常重要的概念。端口這個(gè)概念對大家并不陌生,例如:計(jì)算機(jī)具有許多不同用途的端口,如:顯示端口、串行端口、鍵盤輸入端口等等,這些都是硬件端口。如果我們需要顯示信息,就應(yīng)向顯示端口寫入要顯示的內(nèi)容;如果要計(jì)算機(jī)執(zhí)行某個(gè)命令,就必須從鍵盤端口讀取表示該命令的字符或字符串。又如:機(jī)動(dòng)車加油站,加油站有#0、#90、#70等加油機(jī),如果汽車要加#0汽油,那么,就把#0加油機(jī)輸出管接全汽車的加油箱,這樣,汽車加的油就是#0油。如果汽車要加#70汽油,那么,就把#70加油機(jī)輸出管接全汽車的加油箱,這樣,汽車加的油就是#70油?,F(xiàn)在如果我們把這些硬件端口或加油機(jī)看作一個(gè)個(gè)的進(jìn)程,那么,就很容易理解這里我們所要討論的端口的作用了。端口可用來唯一的標(biāo)識主機(jī)中的每一個(gè)進(jìn)程。它是運(yùn)輸層中進(jìn)程的運(yùn)輸?shù)刂坊蜻M(jìn)程地址。不同的端口表示實(shí)現(xiàn)不同應(yīng)用的進(jìn)程。在UDP和TCP中均使用16個(gè)比特來定義進(jìn)程的端口(port)。其中,0?1023被專門分配給一些最常用的應(yīng)用層程序。我們通常把這類端口叫做眾所周知的端口(well-knownport)或叫做熟知端口。類似于日常生活中,電話號碼114和119,人們都知道它們分別是查號臺電話和火災(zāi)報(bào)警電話。圖8-5舉出了幾個(gè)常用的熟知端口。圖8-5端口的意義從圖中可以看出:登錄到主機(jī)上使用23號端口。進(jìn)行郵件傳輸使用25號端口。由于UDP提供的是無連接服務(wù),而TCP提供的面向連接服務(wù),因此,UDP和TCP可采用相同的端口表示不同的進(jìn)程。端口號大于1023的是一般的端口號,用來隨時(shí)分配給請求通信的客戶進(jìn)程。TCP建立連接時(shí)采用客戶服務(wù)器模式。主動(dòng)發(fā)起連接建立的進(jìn)程叫做客戶(client),而被動(dòng)等待連接建立的進(jìn)程叫做服務(wù)器(server)。當(dāng)兩個(gè)用戶同時(shí)向同一個(gè)服務(wù)器進(jìn)行郵件傳輸服務(wù)時(shí),服務(wù)器將如何區(qū)分這兩個(gè)用戶呢?這就要使用下面介紹的管套。2.管套(Socket)大家知道全國各大小城市都有查號臺114,如果你身在北京,要查廣州某單位的電話,只要撥廣州市的區(qū)號020+114便可。類似地,我們可把每個(gè)城市看成主機(jī),把每一個(gè)象114一類的公眾服務(wù)電話看成主機(jī)中的進(jìn)程,那么,問題就容易解決了。事實(shí)上,從前面我們就已知道,在基于TCP/IP的網(wǎng)絡(luò)中,可用IP地址標(biāo)識每一個(gè)主機(jī),再用端口標(biāo)識主機(jī)中的進(jìn)程,這樣,IP地址+端口號就可以唯一的標(biāo)識一個(gè)進(jìn)程了??紤]到網(wǎng)絡(luò)中多協(xié)議的特點(diǎn),如:UDP、TCP。要唯一的標(biāo)識一個(gè)進(jìn)程,還應(yīng)加上協(xié)議類型。協(xié)議類型+IP地址+端口號就是所謂的管套或套接字、插口。有了管套的概念后,大家就可方便地使用某個(gè)特定主機(jī)上的各種網(wǎng)絡(luò)服務(wù)。如:文件傳輸,收發(fā)郵件等等。但是,如果有多個(gè)用戶要同時(shí)使用同一個(gè)主機(jī)上的同一個(gè)服務(wù),例如,收發(fā)郵件。那么,郵件服務(wù)器將如何正確地區(qū)分郵件來源和目的呢?也就是說,郵件服務(wù)器將如何自張三的計(jì)算機(jī)送來的郵件信息和自李四的計(jì)算機(jī)送來的郵件信息完全分開,而不會產(chǎn)生通信混亂。這個(gè)問題實(shí)際上就是如何標(biāo)識連接的問題。3.連接(conenction)連接是一對進(jìn)程進(jìn)行通信的一種關(guān)系。而進(jìn)程又可以用管套唯一加以標(biāo)識,因此,我們可以用連接兩端進(jìn)程的套接字合在一起來標(biāo)識連接,由于兩個(gè)進(jìn)程通信時(shí)必須協(xié)議相同,故在TCP/IP的網(wǎng)絡(luò)中,連接的表示應(yīng)是這樣的:連接={協(xié)議,源IP,源端口,目的IP,目的端口}現(xiàn)在從連接的表示又可提出另一個(gè)問題,這就是:用戶的計(jì)算機(jī)中多個(gè)進(jìn)程與同一個(gè)服務(wù)器的同一個(gè)服務(wù)進(jìn)程進(jìn)行連接時(shí),應(yīng)如何區(qū)分這些連接。首先,在這些連接的表示中,協(xié)議、源IP、目的IP肯定相同,不可改變。目的端口也是相同的,就象張三、李四在同一個(gè)城市通過查號臺查詢電話號碼一樣,不會出現(xiàn)張三撥114,而李四撥115,張三和李四都應(yīng)撥114才行。因此,唯一可以改變的是源端口號。圖8-6給出的例子說明了端口的作用與連接表示的方法。設(shè)主機(jī)A要使用簡單郵件傳送協(xié)議SMTP與主機(jī)C通信。SMTP使用面向連接的TCP。為了找到目的主機(jī)中的SMTP,主機(jī)A與主機(jī)C建立的連接中,要使用目的主機(jī)中的熟知端口,其端口號為25。主機(jī)A也要給自己的進(jìn)程分配一個(gè)端口號,設(shè)分配的源端口號為500。這就是主機(jī)A和主機(jī)C建立的第一個(gè)連接。圖中的連接畫成虛線,表示這種連接不是物理連接而只是個(gè)虛連接。圖8-6與主機(jī)C的SMTP建立三個(gè)連接現(xiàn)在主機(jī)A中的另一個(gè)進(jìn)程也要和主機(jī)C中的SMTP建立連接。目的端口號仍為25,但其源端口號不能與上一個(gè)連接的重復(fù)。設(shè)主機(jī)A分配的這個(gè)源端口號為501。這是主機(jī)A和主機(jī)C建立的第二個(gè)連接。設(shè)主機(jī)B現(xiàn)在也要和主機(jī)C的SMTP建立連接。主機(jī)B選擇源端口號為500。目的端口號當(dāng)然還是25。這是和主機(jī)C建立的第三個(gè)連接。這里的源端口號與第一個(gè)連接的源端口號相同,但純屬巧合。各主機(jī)都獨(dú)立地分配自己的端口號。請大家注意的是:圖8-6的例子中,主機(jī)A和B雖然都使用了相同的源端口號500,但只要查一下IP地址就可知道是哪一個(gè)主機(jī)的數(shù)據(jù)。圖8-6中的連接1的一對插口是:(3,500)和(5,25)而連接2的一對插口是:(3,501)和(5,25)上面的例子是使用面向連接的TCP。若使用無連接的UDP,雖然在相互通信的兩個(gè)進(jìn)程之間沒有一條虛連接,但每一個(gè)方向一定有發(fā)送端口和接收端口,因而也同樣可以使用插口的概念。這樣才能區(qū)分開同時(shí)通信的多個(gè)主機(jī)中的多個(gè)進(jìn)程。最后還有一點(diǎn)要提及的是:現(xiàn)在常使用應(yīng)用編程接口API(ApplicationProgrammingInterface)作為運(yùn)輸層與應(yīng)用層之間的接口的通用名稱?,F(xiàn)在較為流行的API有兩大類。一類就是上面講的插口,或稱為Berkeleysocket,以表示其起源是位于Berkeley的加州大學(xué)。另一類則稱為運(yùn)輸層接口TLI(TransportLayerInterface),由AT&T公司開發(fā)的,有時(shí)也稱為XTI(X/OpenTransportInterface)。這里X/Open是一個(gè)公司名。XTI是TLI的一個(gè)超集。二、用戶數(shù)據(jù)報(bào)協(xié)議UDPUDP很簡單。下面只介紹它的要點(diǎn)。用戶數(shù)據(jù)報(bào)協(xié)議UDP只在IP的數(shù)據(jù)報(bào)服務(wù)之上增加了很少一點(diǎn)的功能,這就是端口的功能。用戶數(shù)據(jù)報(bào)UDP有兩個(gè)字段:數(shù)據(jù)字段和首部字段。首部字段很簡單,只有8個(gè)字節(jié)(圖8-7),由4個(gè)字段組成,每個(gè)字段都是兩個(gè)字節(jié)。各字段意義如下:源端口字段:源端口號,占16比特;目的端口字段:目的端口號,占16比特;長度字段:UDP數(shù)據(jù)報(bào)的長度,占16比特;檢驗(yàn)和字段:防止UDP數(shù)據(jù)報(bào)在傳輸中出錯(cuò),占16比特。圖8-7UDP數(shù)據(jù)報(bào)的首部和偽首部UDP數(shù)據(jù)報(bào)首部中檢驗(yàn)和的計(jì)算方法有些特殊。在計(jì)算檢驗(yàn)和時(shí)在UDP數(shù)據(jù)報(bào)之前要增加12個(gè)字節(jié)的偽首部。所謂“偽首部”是因?yàn)檫@種偽首部并不是UDP數(shù)據(jù)報(bào)真正的首部。只是在計(jì)算檢驗(yàn)和時(shí),臨時(shí)和UDP數(shù)據(jù)報(bào)連接在一起,得到一個(gè)過渡的UDP數(shù)據(jù)報(bào)。檢驗(yàn)和就是按照這個(gè)過渡的UDP數(shù)據(jù)報(bào)來計(jì)算的。偽首部既不向下傳送,也不向上遞交。圖8-7給出了偽首部各字段的內(nèi)容。偽首部的第3字段是全零,第4個(gè)字段是四首部中的協(xié)議字段的值。以前已講過,對于UDP,此協(xié)議字段值為17。第5字段是UDP數(shù)據(jù)報(bào)的長度。二、傳輸控制協(xié)議TCPTCP是TCP/IP體系中的運(yùn)輸層協(xié)議,是面向連接的,因而可提供可靠的、按序傳送數(shù)據(jù)的服務(wù)。TCP提供的連接是雙向的,即全雙工的。應(yīng)用層的報(bào)文傳送到運(yùn)輸層,加上TCP的首部,就構(gòu)成TCP的數(shù)據(jù)傳送單位,稱為報(bào)文段(segment),用OSI的記法就是TCPPDU,或簡稱為TPDU。在發(fā)送時(shí),TCP的報(bào)文段作為IP數(shù)據(jù)報(bào)的數(shù)據(jù)。加上首部后,成為IP數(shù)據(jù)報(bào)。在接收時(shí),IP數(shù)據(jù)報(bào)將其首部去除后上交給運(yùn)輸層,得到TCP報(bào)文段。再去掉其首部,得到應(yīng)用層所需的報(bào)文。TCP報(bào)文段的格式TCP報(bào)文段的格式如圖8-12所示??梢钥闯觯粋€(gè)TCP報(bào)文分為首部和數(shù)據(jù)兩部分。圖8-12TCP報(bào)文段的格式TCP報(bào)文段首部的前20個(gè)字節(jié)是固定的,后面有4N字節(jié)是可有可無的選項(xiàng)(N為整數(shù))。因此TCP首部的最小長度是20字節(jié)。首部固定部分各字段的意義?源端口和目的端口:各占2個(gè)字節(jié)。其作用已在上面說明。?序號:占4字節(jié),是本報(bào)文段所發(fā)送的數(shù)據(jù)部分第一個(gè)字節(jié)的序號。在TCP傳送的數(shù)據(jù)流中,每一個(gè)字節(jié)都有一個(gè)序號。例如,在一個(gè)報(bào)文段中,序號為300,而報(bào)文中的數(shù)據(jù)共100字節(jié)。那么在下一個(gè)報(bào)文段中,其序號就是411。因此TCP是面向數(shù)據(jù)流的。?確認(rèn)序號:占4字節(jié),是期望收到對方下次發(fā)送的數(shù)據(jù)的第一個(gè)字節(jié)的序號,也就是期望收到的下一個(gè)報(bào)文段的首部中的序號。確認(rèn)序號在發(fā)送報(bào)文段時(shí)捎帶給對方的ACK信號。由于序號字段有32bit長,可對4GB(即4十兆字節(jié))的數(shù)據(jù)進(jìn)行編號。這樣就可保證當(dāng)序號重復(fù)使用時(shí),舊序號的數(shù)據(jù)早已在網(wǎng)絡(luò)中消失了。?數(shù)據(jù)偏移:占4bit,它指出數(shù)據(jù)開始的地方離TCP報(bào)文段的起始處有多遠(yuǎn)。這實(shí)際上就是TCP報(bào)文段首部的長度。由于首部長度不固定(因首部中的選項(xiàng)字段長度是不確定的),因此數(shù)據(jù)偏移字段是必要的。但應(yīng)注意,“數(shù)據(jù)偏移”的單位是32比字,而不是字節(jié)或比特。數(shù)據(jù)偏移字段后面有6比是保留字段,供今后使用,但目前應(yīng)置為0。?窗口:占2字節(jié)。該字段給出的值是發(fā)送報(bào)文段一方的接收窗口大小,單位為字節(jié)。該字段的含義是:“在末收到我的確認(rèn)時(shí),你能發(fā)送的數(shù)據(jù)的字節(jié)數(shù)至多是此窗口的大小?!卑l(fā)送方可根據(jù)自身資源情況動(dòng)態(tài)調(diào)整并告之對方。連接建立時(shí),告訴對方的是初始值;通信過程中告訴對方的是調(diào)整后的大小。接下來要介紹的是控制字段中的6個(gè)標(biāo)志。?緊急比特URG(URGent):當(dāng)URG=1時(shí),表明此報(bào)文段應(yīng)盡快傳送(相當(dāng)于加速數(shù)據(jù)),而不要按原來的排隊(duì)順序來傳送。例如,已經(jīng)發(fā)送了很長的一個(gè)程序要在遠(yuǎn)地的主機(jī)上運(yùn)行。但后來發(fā)現(xiàn)有些問題,要取消該程序的運(yùn)行。因此從鍵盤發(fā)出中斷信號。這就屬于緊急數(shù)據(jù)。此時(shí)要與第5個(gè)32bit字中的后一半“緊急指針”(UrgentPointer)字段配合使用。緊急指針指出在本報(bào)文段中的緊急數(shù)據(jù)的最后一個(gè)字節(jié)的序號。緊急指針使接收方可以知道緊急數(shù)據(jù)共有多長。值得注意的是,即使當(dāng)窗口大小為零時(shí)也可發(fā)送緊急數(shù)據(jù)。?急迫比特PSH(PuSH)當(dāng)PSH=1時(shí),表明請求遠(yuǎn)地TCP將本報(bào)文段立即傳送給其應(yīng)用層,而不要等到整個(gè)緩沖區(qū)都填滿了后再向上交付。?確認(rèn)比特ACK:只有當(dāng)ACK=1時(shí)確認(rèn)序號字段才有意義。當(dāng)ACK=0時(shí),確認(rèn)序號沒有意義。?同步比特SYN:在連接建立時(shí)使用。當(dāng)SYN=l而ACK=0時(shí),表明這是一個(gè)連接請求報(bào)文段。對方若同意建立連接,則應(yīng)在發(fā)回的報(bào)文段中使SYN=1和ACK=1。發(fā)起連接的一方再發(fā)送SYN=0和ACK=1的報(bào)文段,完成連接的全部過程。這就是所謂的三次握手??梢?,同步比特SYN置為1,就表示這是一個(gè)連接請求或連接接受報(bào)文,而ACK比特的值用來區(qū)分是哪一種報(bào)文。?重建比特RST(ReSeT):當(dāng)RST=l時(shí),表明出現(xiàn)嚴(yán)重差錯(cuò)(如由于主機(jī)崩潰或其他原因),必須釋放連接,然后再重建運(yùn)輸連接。重建比特還用來拒絕一個(gè)非法的報(bào)文段或拒絕打開一個(gè)連接。?終止比特FIN(FINal):用來釋放一個(gè)連接。當(dāng)FIN=1時(shí),表明欲發(fā)送的字節(jié)串已經(jīng)發(fā)完,并要求釋放運(yùn)輸連接。?檢驗(yàn)和:占2字節(jié)。檢驗(yàn)和字段檢驗(yàn)的范圍包括首部和數(shù)據(jù)這兩部分。但和用戶數(shù)據(jù)報(bào)UDP一樣,在計(jì)算檢驗(yàn)和時(shí),要在TCP報(bào)文段的前面加上一個(gè)12字節(jié)的偽首部。偽首部的格式與圖8-7中UDP數(shù)據(jù)報(bào)的偽首部一樣。但應(yīng)將偽首部的第4個(gè)字段中的17改為6(Internet規(guī)定TCP的協(xié)議號是6,將第5個(gè)字段中的UDP長度改為TCP長度。檢驗(yàn)和的計(jì)算方法與IP數(shù)據(jù)報(bào)首部檢驗(yàn)和的計(jì)算方法一樣,只是還要加上TCP報(bào)文的偽首部。接收端收到此報(bào)文段后,仍要加上這個(gè)偽首部來計(jì)算檢驗(yàn)和。若使用IPv6,則相應(yīng)的偽首部也要改變。(1)選項(xiàng)選項(xiàng)的長度是可變的。TCP只規(guī)定了一種選項(xiàng),即最長報(bào)文段MSS(MaximumSegmentSize)oMSS告訴對方的TCP:“我的緩沖區(qū)所能接收的報(bào)文段的最大長度是MSS。”MSS的選擇并不簡單。當(dāng)MSS長度減小時(shí),網(wǎng)絡(luò)的利用率就降低。設(shè)想在極端的情況下,當(dāng)TCP報(bào)文段只有一個(gè)字節(jié)的數(shù)據(jù)時(shí),在IP層傳輸?shù)臄?shù)據(jù)報(bào)的開銷至少有40個(gè)字節(jié)(包括TCP報(bào)文段的首部和IP數(shù)據(jù)報(bào)的首部)。這樣,對網(wǎng)絡(luò)的利用率就不會超過1/41(telnet協(xié)議就是這種情況)。到了數(shù)據(jù)鏈路層還要加上一些開銷。但反過來,若TCP報(bào)文段非常長,那么在IP層傳輸時(shí)就可能要分解成多個(gè)短數(shù)據(jù)報(bào)片。在目的站要將收到的各個(gè)短數(shù)據(jù)報(bào)片裝配成原來的TCP報(bào)文段。當(dāng)傳輸出錯(cuò)時(shí)還要進(jìn)行重傳。這些也都會使開銷增大。一般認(rèn)為,MSS應(yīng)盡可能大些,只要在IP層傳輸時(shí)不需要再分片就行。在連接建立的過程中,雙方都將自己能夠支持的最大報(bào)文長度MSS寫入這一字段。在以后的數(shù)據(jù)傳送階段,MSS取雙方提出的較小的那個(gè)數(shù)值。若主機(jī)未填寫這項(xiàng),則MSS的默認(rèn)值是536字節(jié)長的凈負(fù)荷。因此,所有在Interent上的主機(jī)都應(yīng)能夠接受的報(bào)文段長度是536+20=556字節(jié)。TCP的運(yùn)輸連接管理TCP是面向連接的協(xié)議。運(yùn)輸連接的建立和釋放是每一次面向連接的通信中必不可少的過程。運(yùn)輸連接的管理就是使運(yùn)輸連接的建立和釋放都能正常地進(jìn)行。連接建立過程中要解決的三個(gè)問題要使每一方能夠確知對方的存在。要允許雙方協(xié)商一些參數(shù)(如,最大報(bào)文段長度,最大窗口大小,服務(wù)質(zhì)量等)。能夠?qū)\(yùn)輸實(shí)體資源(如緩沖區(qū)大小,連接表中的項(xiàng)目等)進(jìn)行分配。TCP建立連接的過程TCP采用三次握手(three-wayhandshake)建立TCP連接。如圖8-13所示。圖8-13用三次握手建立TCP連接圖8-13中,設(shè)主機(jī)B中運(yùn)行一個(gè)服務(wù)器進(jìn)程,它先發(fā)出一個(gè)被動(dòng)打開(passiveopen)命令,告訴它的TCP要準(zhǔn)備接受客戶進(jìn)程的連接請求。然后服務(wù)器進(jìn)程就處于“聽”(1isten)的狀態(tài),不斷檢測是否有客戶進(jìn)程要發(fā)起連接請求。如有,即作出響應(yīng)。設(shè)客戶進(jìn)程運(yùn)行在主機(jī)A中。它先向其TCP發(fā)出主動(dòng)打開(activeopen)命令,表明要向某個(gè)IP地址的某個(gè)端口建立運(yùn)輸連接。主機(jī)A的TCP向主機(jī)B的TCP發(fā)出連接請求報(bào)文段,其首部中的同步比特SYN應(yīng)置為1,同時(shí)選擇一個(gè)序號x,表明在后面?zhèn)魉蛿?shù)據(jù)時(shí)的第一個(gè)數(shù)據(jù)字節(jié)的序號是X。在圖8-13中,一個(gè)從A到B的箭頭上標(biāo)有“SYN,SEQ=x”就是這個(gè)意思。主機(jī)B的TCP收到連接請求報(bào)文段后。如同意,則發(fā)回確認(rèn)。在確認(rèn)報(bào)文段中應(yīng)

將SYN置為1,確認(rèn)序號應(yīng)為x十1,同時(shí)也為自己選擇一個(gè)序號y。主機(jī)A的TCP收到此報(bào)文段后,還要向B給出確認(rèn),其確認(rèn)序號為y十1。運(yùn)行客戶進(jìn)程的主機(jī)A的TCP通知上層應(yīng)用進(jìn)程,連接已經(jīng)建立(或打開)。當(dāng)運(yùn)行服務(wù)器進(jìn)程的主機(jī)B的TCP收到主機(jī)A的確認(rèn)后,也通知其上層應(yīng)用進(jìn)程,連接已經(jīng)建立。連接建立采用的這種過程叫做三次握手,或三次聯(lián)絡(luò)。在連接建立后,通信雙方便進(jìn)入數(shù)據(jù)傳輸階段,進(jìn)行雙向數(shù)據(jù)傳輸。在數(shù)據(jù)傳輸結(jié)束后,通信的雙方都可以發(fā)出釋放連接的請求。下面只介紹TCP釋放連接的過程。(3)TCP釋放連接的過程設(shè)圖8-14中的主機(jī)A的應(yīng)用進(jìn)程先向其TCP發(fā)出連接釋放請求,并且不再將數(shù)據(jù)傳送給運(yùn)輸層。TCP通知對方要釋放從主機(jī)A到主機(jī)B這個(gè)方向的連接,這時(shí),主機(jī)A將發(fā)往主機(jī)B的TCP報(bào)文段首部的終止比特FIN置1,其序號x等于前面已傳送過的數(shù)據(jù)的最后一個(gè)字節(jié)的序號加1。圖8-14TCP連接釋放的過程主機(jī)B的TCP收到釋放連接的通知后,即發(fā)出確認(rèn),其序號為x十1,同時(shí)通知高層的應(yīng)用進(jìn)程。這樣,從A到B的連接就釋放了,連接處于半關(guān)閉(half-close)狀態(tài)。這種狀態(tài)相當(dāng)于主機(jī)A向主機(jī)B說:“我已經(jīng)沒有數(shù)據(jù)要發(fā)送了。但你如果還發(fā)送數(shù)據(jù),我仍接收?!贝撕?,主機(jī)B不再接收主機(jī)A發(fā)來的數(shù)據(jù)。但若主機(jī)B還有一些數(shù)據(jù)要發(fā)往主機(jī)A,則可以繼續(xù)發(fā)送。主機(jī)A只要收到數(shù)據(jù),仍應(yīng)向主機(jī)B發(fā)送確認(rèn)。在主機(jī)B向主機(jī)A的數(shù)據(jù)發(fā)送結(jié)束后,其應(yīng)用進(jìn)程就通知TCP釋放連接。主機(jī)B發(fā)出的連接釋放報(bào)文段除必須將終止比特FIN置1,并使其序號y等于前面已傳送過的數(shù)據(jù)的最后一個(gè)字節(jié)的序號加1,還必須重復(fù)上次已發(fā)送過的ACK=x十1。主機(jī)A必須對此發(fā)出確認(rèn),給出ACK=y十1。這樣才將從B到A的反方向連接釋放掉。主機(jī)A的TCP再向其應(yīng)用進(jìn)程報(bào)告,整個(gè)連接已經(jīng)全部釋放。我們通過認(rèn)真分析可以發(fā)現(xiàn),上述連接釋放過程,和連接建立時(shí)的三次握手在本質(zhì)上是一致的。TCP的有限狀態(tài)機(jī)為了管理Internet,為了管理Internet,在網(wǎng)絡(luò)管理中心設(shè)有管理信息庫M[IB(ManagementInformationBase)。管理信息庫存放著各主機(jī)的TCP連接表(TCPConnectionTable),其格式如表8-1所示°TCP連接表對每個(gè)連接都登記了其連接信息。除本地和遠(yuǎn)地的職地址和端口號外,還要記錄每一個(gè)連接所處的狀態(tài)。表8-1TCP連接表連接狀態(tài)本地IP地址本地端口遠(yuǎn)地IP地址遠(yuǎn)地端口連接1連接2…連接nTCP將連接可能處于的狀態(tài)及各種狀態(tài)可能發(fā)生的變遷,畫成了如圖8-15所示的有限狀態(tài)機(jī)。圖中的每一個(gè)方框就是TCP可能具有的狀態(tài)。方框中寫的字是TCP標(biāo)準(zhǔn)中給該狀態(tài)起的名字。上面所說的TCP連接表要記錄的“連接狀態(tài)”就是指每一個(gè)連接是處在上述有限狀態(tài)機(jī)中的哪一個(gè)狀態(tài)。狀態(tài)之間的箭頭表示可能發(fā)生的狀態(tài)變遷。箭頭旁邊寫上的字,表明是什么原因引起這種變遷,或表明發(fā)生狀態(tài)變遷后又出現(xiàn)什么動(dòng)作。請注意有三種不同的箭頭。粗線箭頭表示對客戶進(jìn)程的正常變遷。虛線粗箭頭表示對服務(wù)器進(jìn)程的正常變遷。所謂正常變遷即典型變遷。另一種細(xì)線箭頭表示非典型變遷。下面將主要介紹粗線箭頭和細(xì)線箭頭表示的狀態(tài)變遷。圖8-15TCP的有限狀態(tài)機(jī)(1) 粗線箭頭表示的狀態(tài)變遷連接未建立時(shí)處在關(guān)閉狀態(tài)CLOSEDo設(shè)一個(gè)主機(jī)的客戶進(jìn)程發(fā)起連接請求(主動(dòng)打開),即發(fā)SYN=1、ACK=0的報(bào)文段,表示請求建立連接。這時(shí),本地TCP實(shí)體就創(chuàng)建傳輸控制塊TCB(TransmissionControlBlock),TCB存儲了每一個(gè)連接中的一些重要信息,如:TCP連接表,到發(fā)送和接收緩沖區(qū)的指針,到重傳隊(duì)列的指針,當(dāng)前的發(fā)送和接收序號等等。然后,客戶進(jìn)程進(jìn)入SYN_SENT狀態(tài)。當(dāng)客戶進(jìn)程收到自服務(wù)器而來的(對應(yīng)請求建立連接報(bào)文段的)連接響應(yīng)報(bào)文段后,回送SYN=0、ACK=1的報(bào)文段,進(jìn)入連接已經(jīng)建立的ESTABLISHED狀態(tài)。注意:這個(gè)連接響應(yīng)報(bào)文段中的SYN=1、ACK=1。客戶進(jìn)程與服務(wù)器進(jìn)程進(jìn)行數(shù)據(jù)傳輸。客戶進(jìn)程傳給服務(wù)器進(jìn)程的數(shù)據(jù)完成時(shí),在最后一個(gè)報(bào)文段中置FIN=1,提出釋放連接請求,進(jìn)入FIN_WAIT_1狀態(tài)。當(dāng)服務(wù)器收到這個(gè)報(bào)文后,將釋放由客戶機(jī)進(jìn)程傳送報(bào)文的半連接。在客戶進(jìn)程收到自服務(wù)器進(jìn)程發(fā)來一個(gè)ACK=1的報(bào)文段后,進(jìn)入FIN_WAIT_2狀態(tài)。此時(shí),客戶進(jìn)程釋放向服務(wù)器進(jìn)程發(fā)送報(bào)文的半連接。注意:此時(shí)的客戶機(jī)進(jìn)程和服務(wù)器進(jìn)程均處于半關(guān)閉(half_close)狀態(tài)。當(dāng)客戶進(jìn)程收到自服務(wù)器進(jìn)程發(fā)來一個(gè)FIN=1的報(bào)文段時(shí),表示服務(wù)器進(jìn)程要關(guān)閉向客戶機(jī)進(jìn)程傳送報(bào)文段的另一個(gè)半連接,客戶機(jī)進(jìn)程向服務(wù)器進(jìn)程發(fā)送ACK=1的報(bào)文段,進(jìn)入TIME_WAIT狀態(tài)。TCP再等待兩倍報(bào)文段在網(wǎng)絡(luò)中存活的時(shí)間(這樣做是為了保證原來連接上面的所有分組都從網(wǎng)絡(luò)中消失了)后,客戶機(jī)關(guān)閉由服務(wù)器進(jìn)程向客戶機(jī)進(jìn)程傳輸報(bào)文的半連接,刪除原來建立的連接記錄,返回到初始的CLOSED狀態(tài)。(2) 虛線箭頭表示的狀態(tài)變遷服務(wù)器進(jìn)程發(fā)出被動(dòng)打開,進(jìn)人聽狀態(tài)LISTENo當(dāng)服務(wù)器進(jìn)程收到自客戶進(jìn)程來的SYN=1的連接請求報(bào)文后,發(fā)送確認(rèn)報(bào)文ACK=1、SYN=1,進(jìn)人SYN_RCVD狀態(tài)。當(dāng)服務(wù)器進(jìn)程收到自客戶進(jìn)程而來的連接響應(yīng)的響應(yīng)報(bào)文段后,回送SYN=0、ACK=1的報(bào)文段,進(jìn)入連接建立ESTABLISHED狀態(tài)。開始數(shù)據(jù)傳送。服務(wù)器進(jìn)程發(fā)送FIN=1報(bào)文段給客戶進(jìn)程,客戶機(jī)進(jìn)程收到該報(bào)文后,客戶進(jìn)程回送SYN=0、ACK=1的報(bào)文段,客戶機(jī)被動(dòng)關(guān)閉由服務(wù)器傳送報(bào)文段的半連接。進(jìn)入CLOSE_WAIT狀態(tài)。服務(wù)器進(jìn)程收到客戶機(jī)進(jìn)程的回應(yīng)后,服務(wù)器進(jìn)程關(guān)閉向客戶進(jìn)程發(fā)送報(bào)文段的半連接;當(dāng)客戶機(jī)要傳的數(shù)據(jù)完成時(shí),客戶進(jìn)程向服務(wù)器進(jìn)程發(fā)送FIN=1的報(bào)文段,提出釋放連接請求,進(jìn)入LAST_ACK狀態(tài)。當(dāng)客戶進(jìn)程收到自服務(wù)器進(jìn)程發(fā)來一個(gè)ACK=1的報(bào)文段后,客戶進(jìn)程關(guān)閉向服務(wù)器進(jìn)程發(fā)送報(bào)文段的半連接,進(jìn)入CLOSED狀態(tài)。8.2應(yīng)用層協(xié)議一、應(yīng)用層的主要任務(wù)為最終用戶提供服務(wù)。每一類應(yīng)用問題需要一個(gè)與之相適應(yīng)的應(yīng)用層協(xié)議。應(yīng)用進(jìn)程間相互通信可完成某類具體的應(yīng)用任務(wù),運(yùn)行在不同系統(tǒng)中的應(yīng)用進(jìn)程通常扮演不同的角色,如:客戶、服務(wù)器。(1) 客戶功能:①通信前主動(dòng)向遠(yuǎn)地服務(wù)器發(fā)起連接建立請求;可與多個(gè)服務(wù)器進(jìn)行通信。(2) 服務(wù)器功能:①被動(dòng)接受客戶機(jī)的連接建立請求,并可同時(shí)為多個(gè)客戶服務(wù)(即:多事例支持);需要較強(qiáng)的硬件和OS支持。下面介紹在Internet上使用的幾個(gè)典型的應(yīng)用協(xié)議。一、域名系統(tǒng)DNS(DomainNameSystem)DNS的作用用來把主機(jī)名或電子郵件地址轉(zhuǎn)換為IP地址,或者將IP地址轉(zhuǎn)換為主機(jī)名。名詞解釋名字解析:由主機(jī)名或電子郵件地址轉(zhuǎn)換為IP地址的操作;IP解析:由IP地址轉(zhuǎn)換為主機(jī)名的操作。DNS的重要特征DNS被設(shè)計(jì)成為一個(gè)聯(lián)機(jī)分布式數(shù)據(jù)庫系統(tǒng),并采用客戶服務(wù)器模式。本地名字解析數(shù)據(jù)庫主要包含所在域名的各計(jì)算機(jī)、路由器等設(shè)備的信息,并將該名字解析數(shù)據(jù)庫放置在一個(gè)叫做域名服務(wù)器的計(jì)算機(jī)上。Internet允許各個(gè)單位根據(jù)本單位的具體情況將本單位的域名劃分為若干個(gè)域名服務(wù)器管轄區(qū)(zone),并在各管轄區(qū)設(shè)置相應(yīng)的授權(quán)服務(wù)器(authoritativeserver)o當(dāng)一個(gè)要解析的主機(jī)名、電子郵件或IP地址在本地名字解析數(shù)據(jù)庫中時(shí),由存放該名字解析數(shù)據(jù)庫的域名服務(wù)器負(fù)責(zé)完成其解析任務(wù);當(dāng)一個(gè)要解析的主機(jī)名、電子郵件或IP地址不在本地名字解析數(shù)據(jù)庫中時(shí),本地域名服務(wù)器將轉(zhuǎn)發(fā)解析請求到其它域名服務(wù)器去進(jìn)行解析。Internet的域名結(jié)構(gòu)域名的結(jié)構(gòu)由若干個(gè)分量組成,各分量之間用點(diǎn)(請注意,是小數(shù)點(diǎn)的點(diǎn))隔開,各分量分別代表不同級別的域名。每一級的域名都由英文字母和數(shù)字組成(不超過63個(gè)字符,并且不區(qū)分大小寫字母),級別最低的域名(即:主機(jī)名)寫在最左邊,而級別最高的頂級域名則寫在最右邊。完整的域名不超過255個(gè)字符。域名系統(tǒng)既不規(guī)定一個(gè)域名需要包含多少個(gè)下級域名,也不規(guī)定每一級的域名代表什么意思。各級域名由其上一級的域名管理機(jī)構(gòu)管理,而最高的頂級域名則由Internet的有關(guān)機(jī)構(gòu)管理。用這種方法可使每一個(gè)名字都是唯一的,并且也容易設(shè)計(jì)出一種查找域名的機(jī)制。需要注意的是,域名只是個(gè)邏輯概念,并不反映出計(jì)算機(jī)所在的物理地點(diǎn)。例如:,這里www是主機(jī)名,是華南華南理工大學(xué)的域名。現(xiàn)在頂級域名TLD(TopLevelDomain)有三類:國家項(xiàng)級域名nTLD:采用ISO3166的規(guī)定。如:cn表示中國,us表示美國,uk表示英國,等等。國際頂級域名iTDL:采用int。國際性的組織可在int下注冊。⑶通用頂級域名gTDL:根據(jù)RFC1591規(guī)定,最早的頂級域名共六個(gè),即:com表示公司企業(yè);net表示網(wǎng)絡(luò)服務(wù)機(jī)構(gòu);org表示非贏利性組織;edu表示教育機(jī)構(gòu);gov表示政府部門(美國專用);mil表示軍事部門(美國專用)。由于最初的ARPANET是美國人建造的這一歷史原因,在通用頂級域名中的政府和軍事部門的兩個(gè)域名都是美國專用。另外,雖然在美國的機(jī)構(gòu)也可注冊在其國家頂級域名us下,但他們卻常注冊在通用頂級域名下。一些人誤認(rèn)為:“凡注冊在通用頂級域名下的機(jī)構(gòu)都在美國?!钡@種看法顯然不正確。由于Intenlet上用戶的急劇增加,現(xiàn)在又新增加了七個(gè)通用頂級域名,即:firm表示公司企業(yè);shop表示銷售公司和企業(yè)(這個(gè)域名曾經(jīng)是store);web表示突出萬維網(wǎng)活動(dòng)的單位;arts表示突出文化、娛樂活動(dòng)的單位;rec表示突出消遣、娛樂活動(dòng)的單位;info表示提供信息服務(wù)的單位;nom表示個(gè)人。在國家頂級域名下注冊的二級域名均由該國家自行確定。5,域名解析過程下面我們根據(jù)圖10-5,用一個(gè)例子來說明域名轉(zhuǎn)換的大致過程。圖10-5授權(quán)服務(wù)器的設(shè)置方法舉例設(shè)發(fā)起查詢的一個(gè)應(yīng)用進(jìn)程在主機(jī)名字為中,要解析的主機(jī)名字是。那么,其名字解析過程如下:應(yīng)用進(jìn)程向xyz.Com的本地域名服務(wù)器發(fā)送查詢報(bào)文,這里用“IP()?”表示。本地域名服務(wù)器找不到對應(yīng)的IP地址,于是將查詢請求轉(zhuǎn)發(fā)到.com頂級域名服務(wù)器。com頂級域名服務(wù)器也找不到對應(yīng)的IP地址,于是返回下屬的授權(quán)服務(wù)器的IP地址。即向本地域名服務(wù)器推薦,你要解析的對應(yīng)的IP地址可能授權(quán)服務(wù)器知道。本地域名服務(wù)器又向授權(quán)服務(wù)器進(jìn)行查詢,結(jié)果它又推薦它下屬的授權(quán)服務(wù)器。本地域名服務(wù)器再向授權(quán)服務(wù)器進(jìn)行查詢,得到對應(yīng)的IP地址。最后本地域名服務(wù)器將對應(yīng)的IP地址返回給DNS客戶(即:主機(jī)的一個(gè)應(yīng)用進(jìn)程)。以上介紹的例子其名字解析的方法,采用的是反復(fù)解析法。名字解析也可以采用遞歸解析法,這里不一一說明。為了提高名字解析的效率,每個(gè)域名服務(wù)器通常都維護(hù)一個(gè)高速緩存,用以存放最近用過的名字以及從何處獲得名字映射信息的記錄。當(dāng)客戶請求域名服務(wù)器轉(zhuǎn)換名字時(shí),服務(wù)器首先按標(biāo)準(zhǔn)過程檢查它是否被授權(quán)管理該名字(即:該名字對應(yīng)的IP地址是否在本地名字?jǐn)?shù)據(jù)庫中)。若未被授權(quán),則查看自己的高速緩存,檢查該名字是否最近被轉(zhuǎn)換過。如果是,本地域名服務(wù)器向客戶報(bào)告緩存中有關(guān)名字與地址的綁定(binding)信息,并標(biāo)志為非授權(quán)綁定。這樣,客戶可很快收到回答,但有可能信息已是過時(shí)的了。如果強(qiáng)調(diào)高效,客戶可選擇接受非授權(quán)的回答信息并繼續(xù)進(jìn)行查詢。如果強(qiáng)調(diào)準(zhǔn)確性,客戶可與授權(quán)服務(wù)器聯(lián)系,并檢驗(yàn)名字與地址間的綁定是否仍有效。由于名字到地址的綁定并不經(jīng)常改變,高速緩存可在域名系統(tǒng)中很好地運(yùn)作。為保持高速緩存中的內(nèi)容正確,域名服務(wù)器應(yīng)為每項(xiàng)內(nèi)容計(jì)時(shí)并處理超過合理時(shí)間的項(xiàng)。當(dāng)域名服務(wù)器已從緩存中刪去某項(xiàng)后又被請求查詢該項(xiàng)信息,就必須重新到授權(quán)管理該項(xiàng)的服務(wù)器獲取綁定信息。當(dāng)授權(quán)服務(wù)器回答一個(gè)請求時(shí),在響應(yīng)中都有指明綁定有效存在的時(shí)間值。增加此時(shí)間值可減少網(wǎng)絡(luò)開銷,而減少此時(shí)間值可提高域名轉(zhuǎn)換的準(zhǔn)確性。不但在本地域名服務(wù)器中很需要高速緩存,在主機(jī)中也很需要。許多主機(jī)在啟動(dòng)時(shí)從本地域名服務(wù)器下載名字和地址的全部數(shù)據(jù)庫,維護(hù)存放自己最近使用的域名的高速緩存,并且只在從緩存中找不到名字時(shí)才使用域名服務(wù)器。維護(hù)本地域名服務(wù)器數(shù)據(jù)庫的主機(jī)自然應(yīng)該定期地檢查域名服務(wù)器以獲取新的映射信息,而且主機(jī)必須從緩存中刪掉無效的項(xiàng)。由于域名改動(dòng)并不頻繁,大多數(shù)網(wǎng)點(diǎn)不需花太多精力就能維護(hù)數(shù)據(jù)庫的一致性。在每個(gè)主機(jī)中保留一個(gè)本地域名服務(wù)器數(shù)據(jù)庫的副本,可使本地主機(jī)上的域名轉(zhuǎn)換特別快。這也意味著萬一本地服務(wù)器出故障,本地網(wǎng)點(diǎn)也有一定的保護(hù)措施。此外,它減輕了域名服務(wù)器的計(jì)算負(fù)擔(dān),使得服務(wù)器可為更多機(jī)器提供名字。二、文件傳輸協(xié)議FTP(FileTranferProtocol)文件傳送協(xié)議FTP是Internet上使用得最廣泛的文件傳送協(xié)議。FTP提供交互式的訪問,允許客戶指明文件的類型與格式(如指明是否使用ASCII碼),并允許文件具有存取權(quán)限(如訪問文件的用戶必須經(jīng)過授權(quán),并輸入有效的口令)。FTP屏蔽了各計(jì)算機(jī)系統(tǒng)的細(xì)節(jié),因而適合于在異構(gòu)網(wǎng)絡(luò)中任意計(jì)算機(jī)之間傳送文件[RFC959]。在Internet發(fā)展的早期階段,用FTP傳送文件約占整個(gè)Internet的通信量的三分之一,而由電子郵件和域名系統(tǒng)所產(chǎn)生的通信量還要小于FTP所產(chǎn)生的通信量。只是到了1995年,WWW的通信量才首次超過了FTP。下面對FTP作簡單介紹。FTP的主要作用文件傳送協(xié)議FTP使用TCP可靠的運(yùn)輸服務(wù),實(shí)現(xiàn)不同計(jì)算機(jī)間的文件傳送。FTP的模型(1)FTP采用客戶服務(wù)器技術(shù)。為了實(shí)現(xiàn)文件傳輸,F(xiàn)TP在客戶與服務(wù)器之間建立兩條連接:①控制連接:用于傳送客戶與服務(wù)器之間的命令和響應(yīng)。②數(shù)據(jù)連接:用于客戶與服務(wù)器之間的數(shù)據(jù)交換。圖107畫出了FTP的這兩個(gè)連接。圖10-7FTP使用的兩個(gè)TCP連接(2)一個(gè)FTP服務(wù)器進(jìn)程可同時(shí)為多個(gè)客戶進(jìn)程提供服務(wù)。FIP的服務(wù)器進(jìn)程由一個(gè)主控制進(jìn)程和若干個(gè)從屬控制進(jìn)程兩大部分組成。主控制進(jìn)程:負(fù)責(zé)接受新的客戶請求。從屬控制進(jìn)程:負(fù)責(zé)處理單個(gè)客戶的請求。FTP的基本工作原理我們將用下圖來簡單說明FTP的工作原理??蛻?服務(wù)器服務(wù)器主控制進(jìn)程打開熟知端口(端口號為21),等待客戶進(jìn)程請求??蛻艨刂七M(jìn)程向服務(wù)器#21端口發(fā)出建立連接請求;服務(wù)器主控制進(jìn)程fork一個(gè)從屬控制進(jìn)程。服務(wù)器的從屬控制進(jìn)程與客戶控制進(jìn)程建立起一條控制連接。這時(shí),如果用戶通過鍵盤發(fā)出一條FTP命令,例如:getfile,那么,客戶控制進(jìn)程經(jīng)控制連接將命令發(fā)送到FTP的從屬控制進(jìn)程。服務(wù)器的從屬控制進(jìn)程fork一個(gè)數(shù)據(jù)傳輸進(jìn)程。服務(wù)器的數(shù)據(jù)傳輸進(jìn)程以20作為源端口,以客戶控制進(jìn)程發(fā)起控制連接時(shí)的端口號作為目的端口,向客戶控制進(jìn)程發(fā)起數(shù)據(jù)連接請求。客戶控制進(jìn)程fork一個(gè)數(shù)據(jù)傳輸進(jìn)程。客戶數(shù)據(jù)傳輸進(jìn)程與服務(wù)器的數(shù)據(jù)傳輸進(jìn)程建立起數(shù)據(jù)連接。接著,客戶的數(shù)據(jù)傳輸進(jìn)程與服務(wù)器的數(shù)據(jù)傳輸進(jìn)程進(jìn)行數(shù)據(jù)傳輸,數(shù)據(jù)傳輸完成后自動(dòng)釋放兩個(gè)數(shù)據(jù)傳輸進(jìn)程之間的數(shù)據(jù)連接。這里應(yīng)提醒大家注意的是:在建立數(shù)據(jù)連接的過程中,客戶控制進(jìn)程反客為主,成為連接請求的接收者,而服務(wù)器的數(shù)據(jù)傳輸進(jìn)程成為連接請求的發(fā)出者。FTP的操作舉例及其說明FTP一般都是交互式地工作。作為例子,圖10—8給出了用戶機(jī)器上顯示出的信息。但最左邊的編號[01]—[15]并不是屏幕信息而是為了方便在后面加上相應(yīng)的說明人為增加的。圖中的彩色字是用戶鍵人的字符。在用戶鍵人完畢后還要鍵入回車鍵。[01] ftp[02] connectedto[03] 220nicFTPserver(Sunos4.l)ready.[04] Name:anonymous[05] 331guestloginok,sendidentaspassword.[06] Password:abc@xyz.math.yale.ede[07] 230Guestloginok,accessrestrictionsapply.[08] ftp>cdrfc[09] 250CWDcommandsuccessful.ftp>getrfcl261.txtnicinfo200PORTcommandsuccessful.150ASCIIdataconnectionforrfcl261.txt(7,1401}(4318bytes}.226ASCIITransfercomplete.local:nicinforemote:rfcl261.txt4488bytesreceivedin15seconds(0.3Kbytes/s).ftp>quit221Goodbye.圖10-8FTP的屏幕信息舉例圖中的各行信息的解釋如下:[01]用戶要用FTP和遠(yuǎn)地主機(jī)(網(wǎng)絡(luò)信息中心NIC上的主機(jī))建立連接。[02]本地FTP發(fā)出的連接成功信息。[03]從遠(yuǎn)地服務(wù)器返回的信息,220表示“服務(wù)就緒”。[04]本地FTP提示用戶鍵人名字。用戶鍵人的名字表示“匿名”。在Internet上有許多文件免費(fèi)向公眾提供。用戶不需要鍵人自己的真實(shí)姓名而只需鍵人anonymous即可。[05]數(shù)字331表示“用戶名正確”,需要口令。[06]本地FTP提示用戶鍵人口令。用戶這時(shí)可鍵人guest作為匿名的口令,也可以鍵入自己的電子郵件地址,即耶魯大學(xué)數(shù)學(xué)系名為xyz的主機(jī)上的abc。[07]數(shù)字230表示用戶已經(jīng)注冊完畢。[08]“ftp>”是FTP的提示信息。用戶鍵人的是將目錄改變?yōu)榘琑FC文件的目錄。[09]字符CWD是FTP的標(biāo)準(zhǔn)命令,代表ChangeWorkingDirectory用戶要求將名為rfc1261.txt的文件復(fù)制到本地主機(jī)上,并改名為nicinfo。字符PORT是FTP的標(biāo)準(zhǔn)命令,表示要建立數(shù)據(jù)連接。200表示“命令正確”。數(shù)字150表示“文件狀態(tài)正確,即將建立數(shù)據(jù)連接”。數(shù)字226是“釋放數(shù)據(jù)連接”?,F(xiàn)在一個(gè)新的本地文件已產(chǎn)生。用戶鍵人退出命令。表明FTP工作結(jié)束。三、環(huán)球網(wǎng)WWW(WorldWideWeb)環(huán)球網(wǎng)(也叫萬維網(wǎng))并不是一種特殊的計(jì)算機(jī)網(wǎng)絡(luò),而是一個(gè)大規(guī)模的、聯(lián)機(jī)式的儲藏所。環(huán)球網(wǎng)的設(shè)計(jì)是1989年3月由日內(nèi)瓦的歐州原子核研究委員會提出來的。1993年2月第一個(gè)圖形界面的瀏覽器Mosaic問世。1995年著名的NetscapeNavigator瀏覽器上市。目前流行的瀏覽器是:Netscape公司的Navigato和Microsoft公司InertnetExplorer。1.超文本和超媒體(Hypertext&Hypermedia)WWW是一個(gè)分布式的超媒體系統(tǒng)。超媒體是超文本的擴(kuò)展。超文本是一種有別于普通文檔的計(jì)算機(jī)文檔,在這種文檔中包含了若干用作鏈接(Iink)的一些字或短語(一般用下劃線或不同的顏色標(biāo)明的字、短語或圖標(biāo))。這些文檔可以位于世界上任何一個(gè)接在Internet上的超文本系統(tǒng)中。用戶在閱讀這種文檔時(shí),可以通過點(diǎn)擊在文檔里的鏈接,從其中一個(gè)地點(diǎn)移向另一地點(diǎn),或從一個(gè)文檔移向另一個(gè)文檔,用戶不用按照傳統(tǒng)方式,從頭到尾順章逐節(jié)的去獲取信息,而是可任意地跳來跳去。某時(shí)刻閱讀的文檔在位于中國的一個(gè)計(jì)算機(jī)中,另一時(shí)刻閱讀的文檔可能在美國或其它地方的一個(gè)計(jì)算機(jī)上。超媒體與超文本的區(qū)別是:在超媒體里的鏈接不只是連到文本文檔,還可以連到其他形式的媒體,如圖形圖象、聲音或影視動(dòng)畫等。這樣,超媒體就把死板的文檔變成了活生生的文檔,把個(gè)人計(jì)算機(jī)就成了多媒體設(shè)備,比音響設(shè)備、電視機(jī)更加生動(dòng)有趣,更具有吸引力。瀏覽器(Browser)瀏覽器或稱瀏覽程序是戶要訪問WWW最基本和最有效的工具。通常它被安裝在客戶機(jī)上運(yùn)行。WWW瀏覽程序知道如何去解釋和顯示在WWW上找到的超文本文檔瀏覽程序也可以訪問超媒體,如果在計(jì)算機(jī)機(jī)上安裝有聲音卡及驅(qū)動(dòng)軟件,就能聽到包含在WWW超媒體里的聲音。此外,在瀏覽程序還可以自動(dòng)調(diào)用其他應(yīng)用程序,以顯示特殊類型的文檔。例如,若WWW文檔包括對以MicrosoftWordforWindows格式書寫的文檔訪問時(shí),就可以讓瀏覽程序自動(dòng)調(diào)用 WordforWindows,以顯示相應(yīng)格式的文檔。有的瀏覽程序(Mosaic,Netseape等),還具備訪問Internet上其他類型服務(wù)器的功能,如匿名FTP,Gopher,WAIS以及Usenetnews等。超

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論