版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
8.1網(wǎng)絡(luò)操作系統(tǒng)的結(jié)構(gòu)8.2網(wǎng)絡(luò)操作系統(tǒng)中的通信8.3網(wǎng)絡(luò)操作系統(tǒng)中的資源共享8.4網(wǎng)絡(luò)操作系統(tǒng)中的服務(wù)軟件8.5網(wǎng)絡(luò)操作系統(tǒng)中的應(yīng)用程序接口8.6WindowsNT網(wǎng)絡(luò)8.7小結(jié)習(xí)題8.1.1網(wǎng)絡(luò)操作系統(tǒng)的功能和特點(diǎn)
計(jì)算機(jī)操作系統(tǒng)是控制和管理計(jì)算機(jī)系統(tǒng)的全部硬件資源和軟件資源,合理地組織計(jì)算機(jī)的工作流程以及方便用戶使用的程序集合。這里所說的計(jì)算機(jī)系統(tǒng)是指單機(jī)系統(tǒng),它相對(duì)比較簡單,可把操作系統(tǒng)視為系統(tǒng)資源管理程序。設(shè)置操作系統(tǒng)的目的,在于提高系統(tǒng)的處理能力,提高系統(tǒng)資源的利用率和方便用戶使用計(jì)算機(jī)。8.1網(wǎng)絡(luò)操作系統(tǒng)的結(jié)構(gòu)對(duì)于單機(jī)系統(tǒng)來說,操作系統(tǒng)為實(shí)現(xiàn)上述目標(biāo)已經(jīng)盡了最大的努力,幾乎將其全部的潛力挖掘出來了。例如,在多道程序設(shè)計(jì)原理的基礎(chǔ)上引進(jìn)了并發(fā)程序的概念,實(shí)現(xiàn)了虛擬處理機(jī);為解決內(nèi)存容量不足,引進(jìn)了虛擬存儲(chǔ)器的概念等??傊?,單機(jī)操作系統(tǒng)為用戶提供了以下主要功能:
①處理機(jī)管理;
②存儲(chǔ)器管理;
③文件系統(tǒng);
④設(shè)備管理。網(wǎng)絡(luò)操作系統(tǒng)是具有網(wǎng)絡(luò)功能的操作系統(tǒng),它除了具有通常單機(jī)操作系統(tǒng)所具備的功能外,還應(yīng)具有網(wǎng)絡(luò)支持的功能。其主要功能有:
①提供高效而可靠的網(wǎng)絡(luò)通信能力;
②提供多種網(wǎng)絡(luò)服務(wù)。與單機(jī)操作系統(tǒng)相比,網(wǎng)絡(luò)操作系統(tǒng)的主要特點(diǎn)歸納如下:
1.復(fù)雜性
網(wǎng)絡(luò)操作系統(tǒng)的復(fù)雜性表現(xiàn)在各個(gè)方面,網(wǎng)絡(luò)文件管理就是一例。單機(jī)操作系統(tǒng)只能管理本機(jī)的文件系統(tǒng),單機(jī)用戶只能訪問本機(jī)上的文件系統(tǒng),而在網(wǎng)絡(luò)系統(tǒng)中,還允許本地用戶訪問遠(yuǎn)程節(jié)點(diǎn)上的文件系統(tǒng)。
2.并行性
單機(jī)操作系統(tǒng)實(shí)現(xiàn)了程序的并發(fā)執(zhí)行,但因處理機(jī)只有一臺(tái),并未實(shí)現(xiàn)真正的并行。
3.通信與同步
在計(jì)算機(jī)網(wǎng)絡(luò)系統(tǒng)中,必須提供信息傳輸?shù)幕竟δ埽ǔR酝ㄐ旁Z的形式出現(xiàn)。這些通信原語可供應(yīng)用程序調(diào)用,從而構(gòu)成了用戶與網(wǎng)絡(luò)的接口。在兩個(gè)進(jìn)程的一次通信中,通??捎冒l(fā)送(Send)原語和接收(Receive)原語來完成。但這兩條原語的執(zhí)行也還存在兩個(gè)問題,一是可靠性問題,二是同步問題。
4.安全性
在單機(jī)條件下,操作系統(tǒng)的主要特點(diǎn)是其封閉性。也就是說,它有自己的用戶,自己的資源,以及自己的一套規(guī)定和命令。一臺(tái)計(jì)算機(jī)一旦加入了網(wǎng)絡(luò),就同網(wǎng)絡(luò)系統(tǒng)中更多的計(jì)算機(jī)和用戶交往,從而這臺(tái)計(jì)算機(jī)就成為開放式的面向網(wǎng)絡(luò)的計(jì)算機(jī)。網(wǎng)絡(luò)上各節(jié)點(diǎn)的主機(jī)運(yùn)行自身的操作系統(tǒng),它不僅要保證本機(jī)的系統(tǒng)進(jìn)程和用戶進(jìn)程能簡便、有效地使用網(wǎng)絡(luò)中的資源,同時(shí)也為網(wǎng)絡(luò)中其它用戶使用本機(jī)資源提供服務(wù)。但這種服務(wù)是有限制的。操作系統(tǒng)應(yīng)保護(hù)一個(gè)合法用戶的資源不受侵犯,規(guī)定一個(gè)用戶或進(jìn)程的可分配資源的限額,防止一個(gè)用戶存取它不該存取的資源。網(wǎng)絡(luò)操作系統(tǒng)的安全性體現(xiàn)在以下幾個(gè)方面:
(1)網(wǎng)絡(luò)操作的安全性。系統(tǒng)應(yīng)規(guī)定不同用戶的不同權(quán)限。網(wǎng)絡(luò)用戶通??煞譃橄到y(tǒng)管理員、高級(jí)用戶和一般用戶。系統(tǒng)管理員有更大的責(zé)任,他必須熟悉規(guī)定的操作過程,并且事先想到執(zhí)行特權(quán)操作可能引起的后果與補(bǔ)救措施。
(2)用戶身份驗(yàn)證。網(wǎng)絡(luò)操作系統(tǒng)中的安全子系統(tǒng)應(yīng)記錄作用于本機(jī)的安全性策略,維護(hù)有關(guān)用戶的賬號(hào)信息(包括用戶名、密碼),為安全性目的用戶組以及用戶所擁有的特權(quán),它還接納用戶的登錄信息并進(jìn)行登錄授權(quán)。對(duì)進(jìn)入系統(tǒng)的用戶要進(jìn)行審查,執(zhí)行某一特權(quán)操作也要進(jìn)行審查,審查是通過身份驗(yàn)證進(jìn)行的。個(gè)人身份可采用以下三種形式驗(yàn)證:
①個(gè)人特征:手印、聲音、照片和簽名等。
②個(gè)人證件:身份證、鑰匙等。
③個(gè)人信息:口令、密碼等。(3)資源的存取控制。為防止系統(tǒng)死鎖,應(yīng)采取一些安全性策略和措施;對(duì)系統(tǒng)中的文件子系統(tǒng),應(yīng)采取相應(yīng)的保護(hù)措施;規(guī)定不同程序有不同的運(yùn)行方式,例如系統(tǒng)程序在核心態(tài)下運(yùn)行,用戶程序在用戶態(tài)下運(yùn)行。
(4)網(wǎng)絡(luò)傳輸?shù)陌踩浴>W(wǎng)絡(luò)上數(shù)據(jù)傳輸?shù)陌踩耘c保密性由網(wǎng)絡(luò)本身來保證。8.1.2信息處理的基本模式
計(jì)算機(jī)網(wǎng)絡(luò)是計(jì)算機(jī)及其應(yīng)用技術(shù)與通信技術(shù)相結(jié)合的產(chǎn)物,它是由計(jì)算機(jī)本身的系統(tǒng)結(jié)構(gòu)逐漸演變過來的。它是由若干臺(tái)計(jì)算機(jī)以信息傳輸為主要目的而連接起來組成的系統(tǒng),以實(shí)現(xiàn)計(jì)算機(jī)或計(jì)算機(jī)系統(tǒng)之間的資源共享、數(shù)據(jù)通信、信息服務(wù)與網(wǎng)絡(luò)并行計(jì)算等為主要功能。
計(jì)算機(jī)網(wǎng)絡(luò)作為一個(gè)信息處理系統(tǒng),其構(gòu)成的基本模式有兩種:對(duì)等模式和客戶/服務(wù)器模式。
1.對(duì)等(PeertoPeer)模式
在對(duì)等模式中,網(wǎng)絡(luò)上任一節(jié)點(diǎn)機(jī)所擁有的資源都作為網(wǎng)絡(luò)公用資源,可被其它節(jié)點(diǎn)機(jī)上的網(wǎng)絡(luò)用戶共享。在這種情況下,一個(gè)節(jié)點(diǎn)機(jī)可以支持前、后臺(tái)操作,當(dāng)在前臺(tái)執(zhí)行應(yīng)用程序時(shí),后臺(tái)支持其它網(wǎng)絡(luò)用戶使用該機(jī)資源。也就是說,網(wǎng)絡(luò)上的一個(gè)節(jié)點(diǎn)機(jī)既可以作為客戶機(jī)與其它節(jié)點(diǎn)機(jī)交往并訪問其資源,又可起到服務(wù)器的作用,它能管理本節(jié)點(diǎn)機(jī)的共享資源并為其它節(jié)點(diǎn)機(jī)服務(wù)。此時(shí)可把對(duì)等模式中的節(jié)點(diǎn)機(jī)看成是客戶和服務(wù)器的組合體,因而有時(shí)也稱其為組合站。采用對(duì)等模式的網(wǎng)絡(luò),各節(jié)點(diǎn)機(jī)都處于平等地位,沒有主次之分。對(duì)等模式具有靈活的共享方式和均衡的通信方式,但由于受站點(diǎn)機(jī)本身的處理能力和存儲(chǔ)空間的限制,本地操作和為它機(jī)服務(wù)很難兼顧,這將導(dǎo)致系統(tǒng)處理速度下降。再者,資源服務(wù)分散在各個(gè)節(jié)點(diǎn)上,協(xié)調(diào)和管理也使系統(tǒng)付出較大的開銷,從而限制了網(wǎng)絡(luò)的規(guī)模。對(duì)等模式是小型網(wǎng)絡(luò)的較好選擇,但對(duì)于中等以上的網(wǎng)絡(luò),則應(yīng)采用客戶/服務(wù)器模式。
2.客戶/服務(wù)器(Client/Server)模式
在一個(gè)信息處理系統(tǒng)中,通常由若干臺(tái)計(jì)算機(jī)組成。其中,用于提供數(shù)據(jù)和服務(wù)的計(jì)算機(jī)稱為服務(wù)器,向服務(wù)器提出請(qǐng)求數(shù)據(jù)和服務(wù)的計(jì)算機(jī)稱為客戶,這樣的系統(tǒng)工作模式稱為客戶/服務(wù)器計(jì)算模式。在計(jì)算機(jī)網(wǎng)絡(luò)中,一些節(jié)點(diǎn)作為客戶機(jī),而另一些節(jié)點(diǎn)稱為服務(wù)器機(jī),因而可有單客戶單服務(wù)器、單客戶多服務(wù)器、多客戶單服務(wù)器以及多客戶多服務(wù)器等多種組織形式。
在客戶/服務(wù)器模式中,客戶簡單地提出服務(wù)請(qǐng)求,由服務(wù)器提供服務(wù)并將結(jié)果或錯(cuò)誤返回給客戶,因此,客戶/服務(wù)器模式是一種主從結(jié)構(gòu)??蛻?服務(wù)器模式是信息處理系統(tǒng)中的一種基本、實(shí)用的工作模式,也是網(wǎng)絡(luò)操作系統(tǒng)結(jié)構(gòu)設(shè)計(jì)的一種模式。采用客戶/服務(wù)器模式構(gòu)造一個(gè)操作系統(tǒng)的基本思想是,把操作系統(tǒng)劃分成若干進(jìn)程,其中每個(gè)進(jìn)程實(shí)現(xiàn)單獨(dú)的一套服務(wù),每一種服務(wù)對(duì)應(yīng)一個(gè)服務(wù)器??蛻艨梢允且粋€(gè)應(yīng)用程序,也可以是另一個(gè)操作系統(tǒng)成分。它通過發(fā)送一條消息給服務(wù)器請(qǐng)求一項(xiàng)服務(wù),運(yùn)行在核心狀態(tài)下的操作系統(tǒng)內(nèi)核把消息傳遞給服務(wù)器,由服務(wù)器執(zhí)行具體操作,其結(jié)果經(jīng)由內(nèi)核用另一消息返回給客戶。8.1.3客戶/服務(wù)器模式的工作過程
在客戶/服務(wù)器結(jié)構(gòu)模式的信息處理系統(tǒng)中,存在客戶與服務(wù)器兩方。通常,客戶方處于主動(dòng),向服務(wù)器方提出服務(wù)請(qǐng)求,而服務(wù)器則處于被動(dòng)地位。服務(wù)器進(jìn)程被啟動(dòng)后就處于等待接收客戶的請(qǐng)求,當(dāng)請(qǐng)求到達(dá)時(shí)方被喚醒??蛻粝蚍?wù)器提出的請(qǐng)求是采用原語或系統(tǒng)調(diào)用的方式進(jìn)行的,在原語或系統(tǒng)調(diào)用命令中包含相應(yīng)的參數(shù)。圖8.1給出了客戶與服務(wù)器之間的對(duì)話過程。圖8.1客戶方與服務(wù)器方之間的對(duì)話由圖8.1可以看出,客戶與服務(wù)器之間的交互過程如下:
①客戶方以通常的方式發(fā)出服務(wù)請(qǐng)求,由客戶機(jī)上的網(wǎng)絡(luò)軟件把它裝配成請(qǐng)求包(請(qǐng)求包中應(yīng)包含相應(yīng)的服務(wù)參數(shù)),再經(jīng)過傳輸協(xié)議軟件把請(qǐng)求包發(fā)送給服務(wù)器方。
②服務(wù)器上的傳輸軟件接收到請(qǐng)求包后,對(duì)該包進(jìn)行檢查。若無錯(cuò),便將它提交給服務(wù)器方的網(wǎng)絡(luò)軟件進(jìn)行處理。
③服務(wù)器網(wǎng)絡(luò)軟件根據(jù)請(qǐng)求包中的請(qǐng)求,完成相應(yīng)的處理或服務(wù),并將服務(wù)結(jié)構(gòu)裝配成一個(gè)響應(yīng)包,由傳輸協(xié)議軟件將其發(fā)給客戶。
④由客戶的傳輸協(xié)議軟件把收到的響應(yīng)包轉(zhuǎn)交給客戶的網(wǎng)絡(luò)軟件,由網(wǎng)絡(luò)軟件做適當(dāng)處理后提交給客戶。8.1.4網(wǎng)絡(luò)操作系統(tǒng)的結(jié)構(gòu)
現(xiàn)在我們討論在客戶/服務(wù)器模式下網(wǎng)絡(luò)操作系統(tǒng)的組成。
由于當(dāng)前在局域網(wǎng)(LAN)上配置的網(wǎng)絡(luò)操作系統(tǒng)基本上都是采用客戶/服務(wù)器模式,因此,在客戶/服務(wù)器模式下的網(wǎng)絡(luò)操作系統(tǒng)就由兩部分組成:客戶機(jī)(也稱工作站)操作系統(tǒng)和服務(wù)器操作系統(tǒng)。
1.工作站操作系統(tǒng)
工作站上配置操作系統(tǒng)的目的是:
(1)工作站上的用戶,可使用本地資源并執(zhí)行在本地可以處理的應(yīng)用程序和用戶命令。
(2)實(shí)現(xiàn)工作站上的用戶與服務(wù)器的交互。根據(jù)以上兩點(diǎn),工作站操作系統(tǒng)可由單機(jī)操作系統(tǒng)直接擴(kuò)充而成。要擴(kuò)充的軟件主要有:
(1)重定向程序(Redirector)。對(duì)于客戶/服務(wù)器模式,工作站上的用戶請(qǐng)求可分為本地請(qǐng)求和服務(wù)器請(qǐng)求。為使用戶能以相同方式訪問本地操作系統(tǒng)和遠(yuǎn)程服務(wù)器,在工作站應(yīng)配置本地/遠(yuǎn)程請(qǐng)求解釋程序。該程序在接收到工作站上用戶發(fā)來的請(qǐng)求后,先判別該請(qǐng)求是本地請(qǐng)求還是服務(wù)器請(qǐng)求,如是本地請(qǐng)求,則直接交給工作站操作系統(tǒng)進(jìn)行處理;如是服務(wù)器請(qǐng)求,則按請(qǐng)求內(nèi)容形成請(qǐng)求包,并通過傳輸軟件將其傳送給服務(wù)器。上面的本地/遠(yuǎn)程請(qǐng)求解釋程序稱為重定向程序。
(2)傳輸協(xié)議軟件。為了能實(shí)現(xiàn)工作站和服務(wù)器之間的通信,除了需要有網(wǎng)絡(luò)硬件的支持外,還需要有網(wǎng)絡(luò)協(xié)議的支持。目前在局域網(wǎng)上所采用的傳輸協(xié)議軟件主要有TCP/IP協(xié)議軟件和SPX/IPX協(xié)議軟件。
2.服務(wù)器操作系統(tǒng)
在客戶/服務(wù)器模式下的網(wǎng)絡(luò)操作系統(tǒng)主要指的就是服務(wù)器操作系統(tǒng)。位于網(wǎng)絡(luò)服務(wù)器上的操作系統(tǒng)的主要功能是:
(1)管理服務(wù)器上的各種資源,如處理機(jī)、存儲(chǔ)器、I/O設(shè)備以及數(shù)據(jù)庫等;
(2)實(shí)現(xiàn)服務(wù)器與客戶的通信;
(3)提供各種網(wǎng)絡(luò)服務(wù);
(4)提供網(wǎng)絡(luò)安全管理。為了實(shí)現(xiàn)上述功能,服務(wù)器操作系統(tǒng)應(yīng)由以下軟件組成:
(1)服務(wù)器操作系統(tǒng)的內(nèi)核程序。為支持服務(wù)器中多進(jìn)程的并發(fā)執(zhí)行,要求服務(wù)器操作系統(tǒng)具有支持多進(jìn)程(多任務(wù))的功能;在此基礎(chǔ)上,應(yīng)具有多用戶文件管理、I/O設(shè)備管理以及存儲(chǔ)管理等功能,形成一個(gè)完整的操作系統(tǒng)。
(2)傳輸協(xié)議軟件。為支持服務(wù)器的客戶之間傳輸信息,服務(wù)器操作系統(tǒng)也應(yīng)提供傳輸協(xié)議軟件。
(3)網(wǎng)絡(luò)服務(wù)軟件。為支持服務(wù)器上資源共享,網(wǎng)絡(luò)服務(wù)器操作系統(tǒng)應(yīng)提供一些核外實(shí)用程序供客戶應(yīng)用程序使用。這些網(wǎng)絡(luò)服務(wù)軟件可以是文件服務(wù)、打印服務(wù)以及電子郵件服務(wù)等。
(4)網(wǎng)絡(luò)安全管理軟件。網(wǎng)絡(luò)操作系統(tǒng)應(yīng)對(duì)不同用戶賦予不同的訪問權(quán)限,通過規(guī)定對(duì)文件和目錄的存取權(quán)限等措施,實(shí)現(xiàn)網(wǎng)絡(luò)的安全管理。另外為了監(jiān)測網(wǎng)絡(luò)性能,及時(shí)了解網(wǎng)絡(luò)運(yùn)行情況和發(fā)生故障,網(wǎng)絡(luò)操作系統(tǒng)應(yīng)配置網(wǎng)絡(luò)管理軟件。8.2.1通信機(jī)制
在計(jì)算機(jī)網(wǎng)絡(luò)系統(tǒng)中,各節(jié)點(diǎn)機(jī)上的進(jìn)程之間普遍采用消息傳遞(MessagePassing)通信方式。
在基于消息傳遞的通信方式中,一個(gè)進(jìn)程發(fā)送一條消息,而另一進(jìn)程接收這一消息。一個(gè)消息只有在它已經(jīng)發(fā)送出來的條件下才能被接收,因而兩者需要取得同步。當(dāng)一個(gè)進(jìn)程在接收到消息時(shí),它將從發(fā)送進(jìn)程那里取得某些信息,于是實(shí)現(xiàn)了兩進(jìn)程之間的通信,這種通信方式不需要使用共享變量。
在基于消息傳遞的通信機(jī)制中,其核心成分是發(fā)送原語和接收原語,統(tǒng)稱為通信原語。8.2網(wǎng)絡(luò)操作系統(tǒng)中的通信在發(fā)送原語中,要指明發(fā)送的目的進(jìn)程標(biāo)識(shí)(destination-designator)和發(fā)送的消息(expression-list),所以發(fā)送進(jìn)程要執(zhí)行原語:
sendexpression-listtodestinator
在接收原語中,要指出消息源標(biāo)識(shí)(source-designator)和接收的變量表(variable-list),所以在接收進(jìn)程中要執(zhí)行原語:
receivevariable-listfromsource-designator
在接收時(shí),消息的值要賦予變量表中的變量。
上面的兩個(gè)通信原語在基于消息傳遞的通信方式中,是一種概念性的表達(dá)形式。8.2.2一個(gè)客戶/服務(wù)器的例子
在第一章講過,微內(nèi)核技術(shù)與客戶/服務(wù)器模式的結(jié)合是網(wǎng)絡(luò)操作系統(tǒng)結(jié)構(gòu)的一種新形式??蛻?服務(wù)器模式的基本思想是把操作系統(tǒng)構(gòu)造為一組相互合作的進(jìn)程。在網(wǎng)絡(luò)中,每個(gè)節(jié)點(diǎn)既可作為一個(gè)服務(wù)器機(jī),也可作為一個(gè)客戶機(jī)。在一個(gè)客戶機(jī)上,它可以運(yùn)行一個(gè)或多個(gè)客戶進(jìn)程,在一個(gè)服務(wù)器機(jī)上可以運(yùn)行多個(gè)服務(wù)器進(jìn)程或者客戶和服務(wù)器進(jìn)程的混合。
為了便于理解客戶/服務(wù)器是如何工作的,下面我們給出一個(gè)客戶和一個(gè)服務(wù)器的例子,它們用網(wǎng)絡(luò)連接起來并且它們各自都有網(wǎng)絡(luò)操作系統(tǒng)的(微)內(nèi)核,如圖8.2所示。圖8.2客戶進(jìn)程與服務(wù)器進(jìn)程間的通信
/*Definitionsneededbyclientsandservers.*/
#defineMAX_PATH 255/*maximumlengthofafilename*/
#defineBUF_SIZE 1024/*howmuchdatatotransferatonce*/
#defineFILE_SERVER243/*fileserver’snetworkaddress*/
/*Definitionsoftheallowedoperations.*/
#defineCREATE 1/*createanewfile*/
#defineREAD 2/*readapieceofafileandreturnit*/
#defineWRITE 3/*writeapieceofafile*/
#defineDELETE 4/*deleteanexistingfile*/
/*Errorcodes.*/
#defineOK0/*operationperformedcorrectly*/
#defineE_BAD_OPCODE -1/*unknownoperationrequested*/
#defineE_BAD_PARAM -2/*errorinaparmeter*/
#defineE_IO -3/*diskerrororotherI/Oerror*/
/*Definitionofthemessageformat.*/
structmessage{
longsource; /*sender’sidentity*/
longdest; /*receive’sidentity*/
longopcode; /*whichoperation:CREATE,READ,etc.*/
longcount; /*howmaybytestotransfer*/
longoffset; /*whereinfiletostartreadingorwriting*/
longextra1; /*extrafield*/
longextra2; /*extrafield*/
longresult; /*resultoftheoperationreportedhere*/
charname[MAX_PATH];
/*nameofthefilebeingoperatedon*/
chardata[BUF_SIZE];
/*datetobereadorwritten*/
};服務(wù)器程序如下:
#include〈header.h〉
voidmain(void)
{
structmessagem1,m2;/*incomingandoutgoingmessages*/
intr;/*resultcode*/
while(1){/*serverrunsforever*/
receive(FILE_SERVER,&m1);/*blockwaitingforamessage*/
switch(m1.opcode){/*dispatchontypeofrequest*/
caseCREATE:r=do_create(&m1,&m2);break;
caseREAD:r=do_read(&m1,&m2);break;
caseWRITE:r=do_write(&m1,&m2);break;
caseDELETE:r=do_delete(&m1,&m2);break;
default:r=E_BAD_OPCODE;
}
m2.result=r;/*returnresulttoclient*/
send(m1.source,&m2);/*sendreply*/
}
}客戶程序如下:
#include〈header.h〉
intcopy(char*src,char*dst)/*proceduretocopyfileusingtheserver*/
{
structmessagem1;/*messagebuffer*/
longposition;/*currentfileposition*/
longclient=110;/*client’saddress*/
initialize();/*prepareforexecution*/
position=0;
do{
/*Getablockofdatafromthesourcefile.*/
m1.opcode=READ;/*operationisaread*/
m1.offset=position;/*currentpositioninthefile*/
m1.count=BUF_SIZE;/*howmanybytestoread*/
strcpy(&m1.name,src);/*copynameoffiletobereadtomessage*/
send(FILE_SERVER,&m1);/*sendthemessagetothefileserver*/
receive(client,&m1);/*blockwaitingforthereply*/
/*Writethedatejustreceivedtothedestinationfile.*/
m1.opcode=WRITE;/*operationisawrite*/
m1.offest=position;/*currentpositioninthefile*/
m1.count=m1.result;/*howmanybytestowrite*/
strcpy(&m1.name,dst);/*copynameoffiletobewrittentobuf*/
send(FILE_SERVER,&m1);/*sendthemessagetothefileserver*/
receive(client,&m1);/*blockwaitingforthereply*/
position+=m1.result;/*m1.resultisnumberofbyteswritten*/
}while(m1.result>0);/*iterateuntildone*/
return(m1.result>=0?OK:m1.result);/*returnOKorerrorcode*/8.2.3客戶與服務(wù)器間的通信過程
客戶/服務(wù)器模式通常基于一個(gè)簡單的無連接的請(qǐng)求/應(yīng)答協(xié)議。客戶發(fā)送一個(gè)請(qǐng)求消息給服務(wù)器要求某一種服務(wù)(例如讀一文件),服務(wù)器完成這一請(qǐng)求后返回結(jié)果或錯(cuò)誤信息。所有的信息傳送都是由內(nèi)核完成的。由微內(nèi)核提供的通信服務(wù)可以歸結(jié)為兩個(gè)系統(tǒng)調(diào)用(通常稱為原語):一個(gè)是發(fā)送原語,一個(gè)是接收原語。
現(xiàn)在讓我們結(jié)合上面的例子,看一看客戶與服務(wù)器是怎樣通信的。在本例的頭文件header.h中,有以下四組定義:
(1)常數(shù)定義:包括文件路徑名的最大長度、數(shù)據(jù)緩沖區(qū)的大小、服務(wù)器的網(wǎng)絡(luò)地址。
(2)操作類型定義:包括客戶向服務(wù)器請(qǐng)求的操作,如建立文件、讀文件、寫文件和刪除文件。
(3)返回代碼定義:包括操作完成、未定義的操作請(qǐng)求、參數(shù)出錯(cuò)的I/O出錯(cuò)等消息。
(4)消息格式定義:客戶與服務(wù)器雙方傳送的消息具有圖8.3所示的格式。
服務(wù)器進(jìn)程的工作流程如圖8.4所示。圖8.3消息格式圖8.4服務(wù)器進(jìn)程的工作流程由圖可見,服務(wù)器進(jìn)程執(zhí)行一個(gè)無限循環(huán),它等待客戶進(jìn)程發(fā)來的消息。如果沒有消息到達(dá),它就一直睡眠(阻塞),直到有消息(m1)到來它被喚醒。當(dāng)消息到來后,它首先分析收到的消息m1,取出請(qǐng)求服務(wù)的類型,根據(jù)不同的請(qǐng)求進(jìn)行不同的處理。如果不是創(chuàng)建文件、讀文件、寫文件和刪除文件,則返回“未定義的操作請(qǐng)求”錯(cuò)誤。對(duì)于已定義的四種請(qǐng)求服務(wù),例如READ請(qǐng)求,則執(zhí)行
r=do_read(&m1,&m2)
該程序在此作了適當(dāng)?shù)暮喕硎景聪1給出信息讀文件,并將讀出的結(jié)果寫在文件m2中,最后將返回碼送r。在完成上述操作之后,服務(wù)器進(jìn)程可將返回碼r寫入消息m2,然后將消息m2發(fā)送給發(fā)送m1的進(jìn)程。接著又進(jìn)入準(zhǔn)備接收下一消息的狀態(tài)。
現(xiàn)在我們?cè)賮砜纯蛻暨M(jìn)程,如圖8.5所示。圖8.5客戶進(jìn)程的工作流程客戶進(jìn)程的主要任務(wù)是復(fù)制一個(gè)文件,即將源文件全部拷貝到目標(biāo)文件上??截惖姆椒ㄊ前磯K進(jìn)行,每次從源文件讀出一塊(塊的大小為1KB),然后將該塊寫入目標(biāo)文件,反復(fù)進(jìn)行,直至文件結(jié)束。
從源文件讀出一塊的步驟是:先組織一個(gè)消息m1,m1包括操作類型Read、讀出字節(jié)數(shù)、原文件名和讀的起始位置;然后將m1發(fā)送給服務(wù)器進(jìn)程并等候接收其應(yīng)答消息。
當(dāng)有從服務(wù)器發(fā)來的消息時(shí),喚醒客戶進(jìn)程,并將服務(wù)器來的消息存放在m1中。
客戶進(jìn)程為了完成寫塊的操作,它又組織一個(gè)m1,m1中包括操作類型Write、寫入的起始位置、寫入的字節(jié)數(shù)(從應(yīng)答消息中取得的實(shí)際讀出的字節(jié)數(shù))以及目標(biāo)文件名,然后將m1發(fā)送給服務(wù)器進(jìn)程并等待其應(yīng)答。當(dāng)接收到服務(wù)器進(jìn)程發(fā)來的消息后,客戶進(jìn)程被喚醒,修改讀寫位置后又開始下一塊的拷貝,直到全部完成。根據(jù)從服務(wù)器進(jìn)程發(fā)來的消息,可判定拷貝工作是正常結(jié)束還是操作出錯(cuò)。8.2.4發(fā)送原語和接收原語
在上面客戶與服務(wù)器通信的例子中,使用了兩條原語:
·發(fā)送原語send(dest,&mptr):表明發(fā)送一條由mptr指向的消息給標(biāo)識(shí)符號(hào)為dest的進(jìn)程,并使調(diào)用進(jìn)程阻塞,直至發(fā)送完成。例如,客戶進(jìn)程使用send(FILE_SERVER,&m1)將一條由m1指向的消息發(fā)送給文件服務(wù)器FILE_SERVER,其網(wǎng)絡(luò)地址在頭文件中已定義為243。
·接收原語receive(addr,&mptr):表明調(diào)用該原語的進(jìn)程被阻塞,等待消息的到達(dá)。當(dāng)有消息到達(dá)后,它被喚醒并將所接收到的消息復(fù)制到由mptr指向的緩沖區(qū)。這里的第一個(gè)參數(shù)addr不是接收消息的消息源,而是接收進(jìn)程的網(wǎng)絡(luò)地址,這是為什么呢?在客戶/服務(wù)器模式中,一個(gè)服務(wù)器要為多個(gè)客戶機(jī)上的多個(gè)進(jìn)程服務(wù)。服務(wù)器進(jìn)程在調(diào)用receive原語后便進(jìn)入阻塞狀態(tài),等候來自客戶進(jìn)程發(fā)來的消息,而且不管是哪一個(gè)客戶進(jìn)程發(fā)給它的,它都要接收并進(jìn)行處理,所以它用參數(shù)addr指出調(diào)用者本身的網(wǎng)絡(luò)地址。例如,服務(wù)器進(jìn)程調(diào)用receive(FILE_SERVER,&m1)來接收客戶進(jìn)程發(fā)來的消息,而客戶進(jìn)程調(diào)用receive(client,&m1)接收服務(wù)器的應(yīng)答消息。而接收的消息是由誰發(fā)來的,可由消息本身的“發(fā)送者標(biāo)識(shí)符”得知。8.2.5通信協(xié)議
在網(wǎng)絡(luò)系統(tǒng)中,實(shí)現(xiàn)進(jìn)程間通信的這一部分軟件稱為通信軟件。網(wǎng)絡(luò)通信軟件的任務(wù)是根據(jù)通信協(xié)議來控制和管理進(jìn)程間的通信。在OSI/RM參考模型中,在對(duì)等實(shí)體之間傳送的信息稱為(N)協(xié)議數(shù)據(jù)單元(N)-PDU,它由兩部分組成:(N)協(xié)議控制信息(N)-PCI和(N)服務(wù)數(shù)據(jù)單元(N)-SDU。所有這些(N)協(xié)議控制信息的存在,便產(chǎn)生了可觀的系統(tǒng)開銷。向下層走時(shí),產(chǎn)生并增加一個(gè)(N)-PCI;向上層走時(shí),要去掉并檢測一個(gè)(N)-PCI。這些工作都要花費(fèi)一些時(shí)間。在寬域網(wǎng)上,因傳輸效率低(小于64KB/s),系統(tǒng)開銷并不嚴(yán)重,即使增加或去掉這些(N)-PCI,CPU的速度也足以使線路全速運(yùn)轉(zhuǎn)。于是,在寬域網(wǎng)系統(tǒng)中,可以使用OSI或TCP/IP協(xié)議。然而,在一個(gè)基于LAN的網(wǎng)絡(luò)系統(tǒng)中,協(xié)議的開銷是很重要的。大部分時(shí)間花費(fèi)在協(xié)議上,在局域網(wǎng)上的有效流通量只是LAN能力的一小部分,結(jié)果,大多數(shù)的基本LAN的網(wǎng)絡(luò)系統(tǒng)中不采用分層協(xié)議,或者如果采用的話,也只用到整個(gè)協(xié)議棧的一個(gè)子集。在客戶/服務(wù)器方式的網(wǎng)絡(luò)系統(tǒng)中,由于其簡單性而帶來的另一個(gè)優(yōu)點(diǎn)是有效性,協(xié)議棧短而有效。假定網(wǎng)絡(luò)的所有節(jié)點(diǎn)的機(jī)器是相同的,那么僅需三層協(xié)議就夠了,如圖8.6所示。物理層和數(shù)據(jù)鏈路層負(fù)責(zé)將包從客戶傳到服務(wù)器或從服務(wù)器傳到客戶,這都由硬件來處理。例如,使用以太網(wǎng)卡和令牌環(huán)網(wǎng)卡,不需要路由選擇或建立連接。因此,第三、四層是不需要的,第五層是請(qǐng)求/應(yīng)答協(xié)議,它定義了合法請(qǐng)求和對(duì)合法請(qǐng)求的應(yīng)答,因?yàn)檫@里沒有會(huì)話,所以沒有會(huì)話管理,上面的兩層也就不需要了。
在網(wǎng)絡(luò)系統(tǒng)中,為實(shí)現(xiàn)進(jìn)程間的通信,需要設(shè)計(jì)一些通信原語。這些通信原語是按照通信協(xié)議的規(guī)定建立的。這些通信原語就構(gòu)成了網(wǎng)絡(luò)操作系統(tǒng)的通信機(jī)制。圖8.6最簡單情況下的協(xié)議棧8.3.1硬盤共享
網(wǎng)絡(luò)中硬盤共享是指網(wǎng)絡(luò)用戶共享服務(wù)器上或某個(gè)工作站上的大容量的硬盤,并在此功能的基礎(chǔ)上,提供打印機(jī)的共享功能。硬盤共享的實(shí)現(xiàn)方法有兩種:以虛擬軟盤方式實(shí)現(xiàn)硬盤共享和以文件服務(wù)方式實(shí)現(xiàn)硬盤共享。8.3網(wǎng)絡(luò)操作系統(tǒng)中的資源共享
1.以虛擬軟盤方式實(shí)現(xiàn)硬盤共享
操作系統(tǒng)將硬盤劃分成若干個(gè)分區(qū),每個(gè)分區(qū)稱為一個(gè)盤卷。用戶可以利用建立盤卷命令在共享盤上建立自己的盤卷,例如建立如圖8.7所示的盤卷A,然后再用安裝命令,把建立的盤卷安裝到自己工作站上尚未使用的邏輯驅(qū)動(dòng)器上,即在盤卷和邏輯驅(qū)動(dòng)器之間建立連接。這樣就可以把該盤作為自己的一個(gè)虛擬軟盤,以后可以像訪問自己工作站上的軟盤一樣,訪問該虛擬軟盤。圖8.7以虛擬軟盤方式建立硬盤共享虛擬軟盤可以專用,也可以共享。從圖8.7可以看出,盤卷B被同時(shí)安裝到工作站1的邏輯驅(qū)動(dòng)器E和工作站2的邏輯驅(qū)動(dòng)器C上,只要指明盤卷B是共享型的,則工作站1和工作站2就都能夠?qū)λM(jìn)行存取。
為了實(shí)現(xiàn)硬盤的共享,硬盤共享軟件必須具有以下四個(gè)功能:
(1)用戶管理:為用戶提供注冊(cè)和登錄功能。
(2)盤卷管理:為用戶在硬盤上建立自己的盤卷。
(3)安裝管理:把共享硬盤中指定的盤卷安裝到用戶工作站上的指定邏輯驅(qū)動(dòng)器上。
(4)信號(hào)量管理:對(duì)多個(gè)用戶共享硬盤數(shù)據(jù)進(jìn)行協(xié)調(diào)管理,確保數(shù)據(jù)的安全性。
2.以文件服務(wù)方式實(shí)現(xiàn)硬盤共享
用戶建立共享盤卷的目的是存放自己的文件,但在虛擬軟盤的方式下,并沒有提供對(duì)虛擬盤上的文件進(jìn)行管理的功能,這就要求在每個(gè)工作站上都要保存一份文件分配表FAT,用于對(duì)虛擬盤的空間進(jìn)行管理。由于未提供對(duì)共享文件的管理機(jī)制,只能由用戶自己解決對(duì)共享文件的訪問,以處理互斥訪問的問題。因此,虛擬軟盤方式對(duì)用戶來說是不太方便的。
采用文件服務(wù)方式實(shí)現(xiàn)硬盤共享,不提供建立盤卷的功能,只允許用戶將文件存入文件服務(wù)器上的文件系統(tǒng)中,同時(shí)提供文件生成、刪除、打開、關(guān)閉以及讀寫等功能。每個(gè)工作站不必再配置FAT表,用戶也不必自己處理互斥訪問的問題。因此,以文件服務(wù)方式提供的硬盤共享使用的比較廣泛?,F(xiàn)有的局域網(wǎng)上大都以文件服務(wù)方式實(shí)現(xiàn)硬盤共享。8.3.2打印機(jī)共享
在目前的網(wǎng)絡(luò)操作系統(tǒng)中,有兩種共享打印的工作方式:
(1)客戶/服務(wù)器方式。在文件服務(wù)器上配置共享打印軟件,系統(tǒng)為用戶提供共享打印服務(wù)。
(2)對(duì)等方式。在網(wǎng)絡(luò)中的一個(gè)或多個(gè)工作站上配置打印機(jī),將這些打印機(jī)共享給全網(wǎng)用戶使用;這些工作站既作為用戶工作站,又起到打印服務(wù)器的作用。共享打印是怎樣實(shí)現(xiàn)的呢?在計(jì)算機(jī)網(wǎng)絡(luò)的環(huán)境下,可以采用SPOOLing系統(tǒng)在服務(wù)器的共享硬盤上建立打印緩沖區(qū),并在系統(tǒng)中設(shè)置輸入進(jìn)程和輸出進(jìn)程,在內(nèi)存中也開辟相應(yīng)的打印緩沖區(qū)。當(dāng)服務(wù)器接收到工作站發(fā)來的打印請(qǐng)求時(shí),經(jīng)過對(duì)用戶身份和口令的核對(duì)后,便提交給共享打印軟件的輸入進(jìn)程,由它申請(qǐng)磁盤打印緩沖區(qū)的空閑盤塊,將用戶的打印信息裝入到盤塊中,并為用戶填寫一個(gè)用戶請(qǐng)求表,將用戶的打印請(qǐng)求表送入到打印請(qǐng)求隊(duì)列中。若打印機(jī)空閑,則輸出進(jìn)程從請(qǐng)求隊(duì)列的頭部摘下一個(gè)請(qǐng)求表,同時(shí)將盤塊中的信息送入內(nèi)存緩沖區(qū),按照請(qǐng)求表中的要求進(jìn)行打印輸出。打印完后,在請(qǐng)求隊(duì)列中再從隊(duì)首取出請(qǐng)求表,接著繼續(xù)打印,直至請(qǐng)求隊(duì)列空為止。網(wǎng)絡(luò)操作系統(tǒng)中,共享打印機(jī)軟件應(yīng)具有以下功能:
①支持多個(gè)用戶同時(shí)打印。網(wǎng)絡(luò)上的用戶隨時(shí)輸出要打印的信息到打印機(jī)上,打印信息首先送至磁盤共享打印緩沖區(qū),然后由共享打印機(jī)逐個(gè)打印輸出。
②建立連接和拆除連接。在共享打印前,首先要建立工作站和共享打印機(jī)之間的連接。
建立連接后,工作站上的用戶就可以像使用本地打印機(jī)一樣使用網(wǎng)絡(luò)共享打印機(jī)。打印完后,不再需要打印時(shí)要拆除工作站與打印機(jī)的共享連接。
③連接多臺(tái)打印機(jī)作為共享打印機(jī)??蛇B接網(wǎng)絡(luò)中多臺(tái)打印機(jī),這些共享打印機(jī)可以是類型相同的,也可以是類型不同的。
④提供多種多樣的打印方式。8.3.3網(wǎng)絡(luò)文件共享
1.網(wǎng)絡(luò)文件系統(tǒng)的實(shí)現(xiàn)方法
實(shí)現(xiàn)網(wǎng)絡(luò)文件系統(tǒng)有兩種方法:對(duì)等方式和客戶/服務(wù)器方式。
1)對(duì)等方式
在網(wǎng)絡(luò)的每個(gè)節(jié)點(diǎn)上都配置了自己的文件系統(tǒng),在每個(gè)節(jié)點(diǎn)上都允許其它節(jié)點(diǎn)上的用戶訪問自己的文件系統(tǒng)。基于這種方式實(shí)現(xiàn)的文件系統(tǒng)稱為分布式文件系統(tǒng)。分布式文件系統(tǒng)要解決的關(guān)鍵問題是文件的存儲(chǔ)位置對(duì)其它節(jié)點(diǎn)的透明性。若不透明,用戶訪問文件時(shí)必須提供文件的具體存儲(chǔ)位置信息,這對(duì)用戶訪問文件極不方便。另外,當(dāng)一個(gè)文件從一個(gè)節(jié)點(diǎn)移向另一節(jié)點(diǎn)時(shí),應(yīng)把文件的新位置分布給網(wǎng)絡(luò)中所有節(jié)點(diǎn)上的用戶。
2)客戶/服務(wù)器方式
在網(wǎng)絡(luò)上的每個(gè)節(jié)點(diǎn)都有自己的文件系統(tǒng),用來管理本地文件的訪問,而共享文件保留在文件服務(wù)器上。每個(gè)節(jié)點(diǎn)上都配有重定向程序,用來截獲文件訪問請(qǐng)求,并負(fù)責(zé)文件的定向。當(dāng)文件的訪問請(qǐng)求是對(duì)非本地文件進(jìn)行時(shí),重定向程序形成請(qǐng)求報(bào)文并發(fā)往文件服務(wù)器,文件服務(wù)器代為處理指定的文件操作;處理完后,將處理結(jié)果形成報(bào)文回送用戶系統(tǒng)。在客戶/服務(wù)器方式下,本地文件的訪問和服務(wù)器上共享文件的訪問對(duì)用戶來說是一樣的,也就是說,文件的物理位置對(duì)用戶是透明的。在網(wǎng)絡(luò)文件系統(tǒng)中應(yīng)提供用戶透明的文件訪問方法,用戶可以用相同的方法訪問本地文件和服務(wù)器上的共享文件,并且文件還能在網(wǎng)上方便地移動(dòng)。網(wǎng)絡(luò)操作系統(tǒng)為了實(shí)現(xiàn)文件位置的透明性,在每個(gè)節(jié)點(diǎn)上配置一個(gè)網(wǎng)絡(luò)文件映射表,以列出非本地文件名及其存儲(chǔ)的物理位置。當(dāng)用戶要訪問非本地文件時(shí),查找該表便可獲得被訪問文件的物理位置。
2.網(wǎng)絡(luò)文件的共享方式
在網(wǎng)絡(luò)環(huán)境下,有兩種方式可以實(shí)現(xiàn)文件的共享:
1)數(shù)據(jù)移動(dòng)文件共享
當(dāng)一個(gè)用戶系統(tǒng)A處理數(shù)據(jù)而希望使用另一用戶B的數(shù)據(jù)或文件時(shí),可以采用如下方式傳送數(shù)據(jù):
①將整個(gè)數(shù)據(jù)文件從B傳送到A,A用戶像使用本地文件一樣的方式訪問文件。訪問結(jié)束后,若文件被修改了,再將文件送回B。這種方式適合系統(tǒng)A訪問B的整個(gè)文件或其大部分文件的情況。
②只傳送用戶需要的部分,如果用戶以后還需要其它的部分內(nèi)容,則再傳送另一部分。訪問結(jié)束后,把被修改的部分回傳到系統(tǒng)B。這種方式適合于訪問傳送文件中較少部分內(nèi)容的情況。
2)計(jì)算移動(dòng)文件共享
當(dāng)計(jì)算相對(duì)簡單,而計(jì)算需要的數(shù)據(jù)量較大,且計(jì)算所需數(shù)據(jù)在異地工作站上時(shí),采用計(jì)算移動(dòng)相對(duì)方便些。例如用戶系統(tǒng)A進(jìn)行數(shù)據(jù)處理,需要另一個(gè)用戶工作站B上的大量數(shù)據(jù),便可將系統(tǒng)A的計(jì)算請(qǐng)求傳送到系統(tǒng)B,系統(tǒng)B進(jìn)行處理后,將結(jié)果返回A。計(jì)算移動(dòng)有兩種方法:
①采用遠(yuǎn)程過程調(diào)用的方法。由系統(tǒng)A中的進(jìn)程通過遠(yuǎn)程過程調(diào)用的方式調(diào)用系統(tǒng)B的相應(yīng)過程,該過程訪問計(jì)算文件并進(jìn)行適當(dāng)處理,再將處理結(jié)果返回系統(tǒng)A。
②系統(tǒng)A的進(jìn)程向系統(tǒng)B發(fā)送一個(gè)報(bào)文,請(qǐng)求作指定的加工處理。系統(tǒng)B接收到報(bào)文后,產(chǎn)生進(jìn)程執(zhí)行該請(qǐng)求。當(dāng)進(jìn)程完成任務(wù)后,將結(jié)果以報(bào)文的形式回送系統(tǒng)A。8.4.1服務(wù)軟件的分類
在計(jì)算機(jī)網(wǎng)絡(luò)系統(tǒng)中,通常都提供各種各樣的網(wǎng)絡(luò)應(yīng)用服務(wù)。本節(jié)介紹在Internet上的一些常見的服務(wù)軟件,這些應(yīng)用服務(wù)可分為如下幾類:
1.工具類
在Internet上用得最為廣泛的服務(wù)就是電子郵件。電子郵件能將消息從一臺(tái)計(jì)算機(jī)發(fā)送到另一臺(tái)計(jì)算機(jī),按一定的方式保證這些消息正確地到達(dá)目的地。這些消息可以是數(shù)據(jù),也可以是文本、程序文件,還可以是圖片。消息通??梢栽趲追昼妰?nèi)收發(fā)完成,比起郵政系統(tǒng)要快得多。8.4網(wǎng)絡(luò)操作系統(tǒng)中的服務(wù)軟件
Internet的第二項(xiàng)服務(wù)稱為文件傳輸協(xié)議FTP(FileTransportProtocols)。FTP允許用戶從一臺(tái)計(jì)算機(jī)向另一臺(tái)計(jì)算機(jī)傳遞文件。多數(shù)情況下,用戶使用FTP在遠(yuǎn)程機(jī)和自己的計(jì)算機(jī)之間復(fù)制文件。如果必要,F(xiàn)TP還可以使用戶從一臺(tái)遠(yuǎn)程計(jì)算機(jī)向另一臺(tái)計(jì)算機(jī)復(fù)制文件。
Internet的第三項(xiàng)服務(wù)稱為遠(yuǎn)程登錄(Telnet),它允許用戶使用遠(yuǎn)程計(jì)算機(jī)來處理事務(wù)。通過這項(xiàng)服務(wù),用戶可以連接到Internet的任何主機(jī)上。建立連接后,就可以用通常的方式登錄到遠(yuǎn)程計(jì)算機(jī)上,并對(duì)它進(jìn)行操作。用戶計(jì)算機(jī)作為遠(yuǎn)地主機(jī)的終端使用,當(dāng)然,遠(yuǎn)地主機(jī)必須支持終端服務(wù),而且用戶應(yīng)當(dāng)具有一個(gè)有效的用戶賬號(hào)和口令。Telnet還允許兩個(gè)程序通過Internet交換數(shù)據(jù),進(jìn)行協(xié)同工作。
2.討論類
電子公告系統(tǒng)(BBS):可到達(dá)世界各地,用戶可以進(jìn)行各類信息的查看、打印,也可以進(jìn)行相關(guān)主題的討論、網(wǎng)上交流和檔案存取。
電子信息和新聞(NetNews):提供網(wǎng)上異地用戶的講座空間,這些議題由不同的群組(Group)來詳細(xì)分類。
3.信息查詢類
這類服務(wù)主要提供給用戶一個(gè)查詢信息的工具。
萬維網(wǎng)(WorldWideWeb):又稱WWW,它在近幾年內(nèi)得到迅速地發(fā)展,以超文本的方式組織數(shù)據(jù)。利用WWW用戶可以在文檔之間自由地切換,從各個(gè)方面了解事物的多方面信息。WWW是在網(wǎng)絡(luò)上發(fā)布公共信息的最佳形式。它使信息得到最快速的傳播,是世界各大組織用來組織公共信息的一個(gè)手段。它集成了Internet上的FTP、Telnet、WAIS、Gopher的大部分服務(wù)功能。分散式文件查詢系統(tǒng)(Gopher):是一個(gè)多級(jí)菜單系統(tǒng),用菜單的形式顯示Internet的資源。它主要提供以文件為單位的信息,適合辦公室環(huán)境使用。目前支持的文件類有一般文字、圖形、聲音等,并可以執(zhí)行全文檢索功能。
廣域網(wǎng)上信息的檢索查詢(WAIS):它提供了一套類似自然語言的界面,讓用戶以平常講話的方式詢問計(jì)算機(jī),顯示查詢結(jié)果。
Internet能夠提供的服務(wù)還有很多。下面將Internet目前提供的服務(wù)簡要地列于表8-1中。8.4.2電子郵件E-mail
1.什么是電子郵件
電子郵件是ElectronicMail的中文名,簡稱為E-mail,是Internet上使用最頻繁、應(yīng)用最廣泛的一種服務(wù)。電子郵件是一種軟件,它的功能是在Internet上的兩個(gè)主機(jī)之間發(fā)送和接收消息,這些消息稱為郵件。利用E-mail可以實(shí)現(xiàn)郵件的發(fā)送和接收。
2.電子郵件的類型
隨著網(wǎng)絡(luò)系統(tǒng)的發(fā)展,出現(xiàn)了多種類型的電子郵件服務(wù)。目前分為以下幾種:
(1)文字型電子郵件:是一種最常用的電子郵件類型。按照郵政業(yè)務(wù)可以進(jìn)一步劃分為以下幾種形式:
信件:傳輸篇幅較長、不十分緊急的報(bào)文。
電報(bào):用于傳送篇幅較短、比較緊急的報(bào)文。
電話:在不同工作站之間,通過工作站的屏幕進(jìn)行交談。
廣播:將同一份報(bào)文同時(shí)發(fā)布到網(wǎng)絡(luò)上的所有工作站上。
(2)圖像型電子郵件:用于傳送圖像、照片及各種原始文檔等。有兩種圖像傳送方式:數(shù)字信號(hào)傳送方式和利用模擬信號(hào)傳送方式。
(3)語音型電子郵件:提供語音信息的報(bào)文傳輸,要求傳輸系統(tǒng)具有非實(shí)時(shí)傳輸和存儲(chǔ)語音的能力。目前比較有前途的是數(shù)字式語音電子郵件,它是以計(jì)算機(jī)和數(shù)字傳輸系統(tǒng)為基礎(chǔ)的。
3.結(jié)構(gòu)和服務(wù)
電子郵件系統(tǒng)由兩個(gè)子系統(tǒng)組成:用戶代理(useragent),它允許讀取和發(fā)送電子郵件;消息傳輸代理(messagetransferagent),它將消息從出發(fā)地傳送到目的地。用戶代理是一個(gè)本地程序,它提供命令行方式、菜單方式或圖形方式的界面來與電子郵件系統(tǒng)交互。消息傳輸代理是在后臺(tái)運(yùn)行的系統(tǒng)程序,在系統(tǒng)間傳送電子郵件。一般來說,電子郵件系統(tǒng)支持如下基本功能:
(1)撰寫(composition):指創(chuàng)建消息和回答過程。雖然任何一個(gè)文字編輯器都適用于消息的撰寫,但電子郵件系統(tǒng)本身可以提供更多的幫助,例如將地址和眾多的頭部域附加到每個(gè)消息上;當(dāng)回答一條消息時(shí),電子郵件系統(tǒng)從來信中抽取發(fā)信者的地址并自動(dòng)將它插入到回信中的適當(dāng)位置。
(2)傳輸(transfer):將消息從發(fā)送者送到接收者。這需要在目的地和某些中間機(jī)之間建立連接,輸出消息,然后釋放連接。電子郵件系統(tǒng)在無須用戶干涉的情況下完成這些工作。
(3)報(bào)告(reporting):告訴發(fā)信者消息的狀態(tài),消息已發(fā)送了嗎?是否被接收?丟失了嗎?大量的應(yīng)用程序要求返回提交的證實(shí)。
(4)顯示(displaying):到來的消息是否是必要的,通過顯示,用戶可以閱讀自己的郵件。有時(shí)需要激活一個(gè)特定的瀏覽器。
(5)處理(disposition):指對(duì)接收到的消息的處理方法,包括讀信前丟棄、讀信后丟棄、保存等;還有可能取出并重讀存儲(chǔ)的消息,以及進(jìn)行轉(zhuǎn)發(fā)等。
除了這些服務(wù),大多數(shù)電子郵件系統(tǒng)還提供了多種高級(jí)特性,這里就不加介紹了。
4.電子郵件的工作方式
使用電子郵件發(fā)送的郵件類似于通過郵局發(fā)送的信件。電子郵件的信息頭相當(dāng)于信封上的地址。電子郵件的信息頭包括發(fā)送者和接收者的地址。使用電子郵件發(fā)送郵件時(shí),郵件的傳輸過程對(duì)發(fā)送者和接收者來說都是透明的。
1)存儲(chǔ)轉(zhuǎn)發(fā)(StoreandForward)
電子郵件是一種存儲(chǔ)轉(zhuǎn)發(fā)的過程。例如:用戶1要將郵件發(fā)送給用戶2,其發(fā)送的具體過程為:
Internet上的計(jì)算機(jī)A接收到該郵件,經(jīng)過地址識(shí)別后,選擇適當(dāng)?shù)木W(wǎng)絡(luò)路徑,將該郵件發(fā)送給計(jì)算機(jī)B……該郵件依次轉(zhuǎn)發(fā),最終轉(zhuǎn)發(fā)給計(jì)算機(jī)H,H將郵件轉(zhuǎn)發(fā)給用戶2,從而完成了郵件的傳送過程,如圖8.8所示。
在整個(gè)存儲(chǔ)轉(zhuǎn)發(fā)的過程中,當(dāng)Internet上的某個(gè)計(jì)算機(jī)接收到郵件時(shí),該計(jì)算機(jī)經(jīng)過地址識(shí)別、路由分析,選擇一條最佳轉(zhuǎn)發(fā)路徑發(fā)送到下一個(gè)Internet上的計(jì)算機(jī),如此往復(fù)直到目的地址。圖8.8電子郵件在Internet上的轉(zhuǎn)發(fā)過程
2)用戶代理
在Internet上,一般在用戶機(jī)器上與用戶打交道的程序叫用戶代理,而在服務(wù)器上運(yùn)行的程序叫傳送代理。大部分Internet報(bào)文傳輸代理都使用簡單郵件傳輸協(xié)議SMTP,但是用戶代理可以是別的協(xié)議。例如:如果用戶使用的是UNIX操作系統(tǒng),那么用戶代理使用的是SNMP協(xié)議;如果用戶使用PC機(jī)或Macintosh機(jī)上的郵件程序,則它可能使用POP協(xié)議,或稱為郵局協(xié)議。用戶代理負(fù)責(zé)將用戶的郵件從郵件服務(wù)器上傳送到用戶PC機(jī)上。這樣,不必每次登錄到服務(wù)器,而使用服務(wù)器上的郵件程序發(fā)送和接收信息。在Internet網(wǎng)點(diǎn)內(nèi)都有一個(gè)或多個(gè)起郵件中心作用的計(jì)算機(jī)。郵件在傳送時(shí),使用的都是SMTP協(xié)議。最后郵件到達(dá)起郵件中心作用的計(jì)算機(jī)上時(shí),根據(jù)郵件中心的用戶名,將郵件放到用戶的郵箱里,等待用戶的閱讀。如果用戶的郵件程序使用的是POP協(xié)議,則用戶的郵件程序就會(huì)請(qǐng)求這臺(tái)計(jì)算機(jī)將郵件傳送到自己的計(jì)算機(jī)上,從而用戶可以在自己的機(jī)器上進(jìn)行閱讀。8.4.3WWW超媒體網(wǎng)絡(luò)
1.什么是WorldWideWeb
WorldWideWeb(簡稱WWW或Web,也稱萬維網(wǎng))是一種特殊的結(jié)構(gòu)框架,它的目的是為了訪問遍布在Internet上數(shù)以萬計(jì)的計(jì)算機(jī)的連接文件。Web具有以下幾個(gè)特點(diǎn):
(1)Web是超文本信息系統(tǒng)。分布于Internet上的WWW服務(wù)器都有超文本數(shù)據(jù)庫,通過WWW服務(wù)器之間的相互連接,使全球Internet上的信息均以超文本方式連接在一起。當(dāng)用戶從任意一個(gè)WWW服務(wù)器進(jìn)入Internet時(shí),均可以方便地從超文本數(shù)據(jù)庫找到所需信息,而不論該信息在Internet的什么地方。
(2)Web是跨平臺(tái)的??缙脚_(tái)是指能夠通過任何的計(jì)算機(jī)、使用任何操作系統(tǒng)、使用任何顯示器都能訪問Web。用戶通過一種稱為瀏覽器的程序訪問Web,這些瀏覽器可以是InternetExplores、Netscape的Navigator。當(dāng)用戶通過瀏覽器連接上Internet后,就可以上網(wǎng)了。
(3)Web是分布式的。Internet上的信息包含有圖像文件和多媒體信息,因此占用的空間非常大。為了存儲(chǔ)Web提供的所有信息,而又不占有很大的磁盤空間,Web把信息分布在全球成千上萬個(gè)站點(diǎn)上,每個(gè)站點(diǎn)只負(fù)責(zé)提供它所發(fā)布的信息。任何一個(gè)用戶只需要到那個(gè)站點(diǎn)上閱讀所需要的信息,讀完之后再轉(zhuǎn)至他希望瀏覽的其它站點(diǎn)上,則網(wǎng)絡(luò)操作系統(tǒng)將自動(dòng)回收磁盤空間。因此,站點(diǎn)是發(fā)布某類信息的地方,當(dāng)用瀏覽器連接到一個(gè)站點(diǎn)上時(shí),便可獲取相應(yīng)的信息。
(4)Web是動(dòng)態(tài)的和交互的。由于Web上的信息是由發(fā)布它的站點(diǎn)維護(hù)的,因此,發(fā)布信息的用戶可以在任何時(shí)間更新它。交互是指把信息回送到服務(wù)器。利用電視機(jī)傳送信息是沒有交互能力的,用戶只能接受信息。而在Web上,通過選擇連接到其它站點(diǎn)的頁,與這些頁的作者及讀者進(jìn)行通信就能夠?qū)崿F(xiàn)Web的交互。
2.WWW與Internet
Internet是全世界最大的國際互聯(lián)網(wǎng)絡(luò)。Internet是一個(gè)建立在計(jì)算機(jī)網(wǎng)絡(luò)上的網(wǎng)絡(luò)。各式各樣的計(jì)算機(jī)(如:IBM/PC、Macintosh、UNIX工作站、大型計(jì)算機(jī))和各種各樣的計(jì)算機(jī)局域網(wǎng)絡(luò)、廣域網(wǎng)絡(luò)等都可以同Internet相連。
WWW是Internet網(wǎng)上發(fā)展最快的網(wǎng)絡(luò)服務(wù),現(xiàn)已成為Internet網(wǎng)上最主要的服務(wù)之一。WWW服務(wù)器把圖文信息組織成分布式超文本,用信息指針指向其它相關(guān)信息的WWW服務(wù)器,使用戶可以很方便地訪問到這些信息。WWW是信息檢索和超文本技術(shù)的結(jié)合,它的出現(xiàn)使Internet上傳遞的不再只是一些文本信息,而是圖、文、聲俱全的多媒體信息。要理解WWW,必須從“超文本”的概念開始,因?yàn)閃eb是在超文本基礎(chǔ)上發(fā)展起來的Internet服務(wù)。
在Internet上,Web提供了信息查詢的多種使用界面,它是一種信息資源的組織與管理方式。它既含計(jì)算機(jī)硬件,又含計(jì)算機(jī)軟件,是一類信息查詢檢索的工具;既涉及電子信息出版,又涉及網(wǎng)絡(luò)通訊技術(shù)。下面介紹Web超文本信息系統(tǒng)。
(1)Web由遍布在Internet網(wǎng)上的被稱為Web信息服務(wù)器的計(jì)算機(jī)組成。建立Web信息服務(wù)的過程可以概括為:使用標(biāo)注語言HTML組織Web要發(fā)布的信息,按照Web的通信規(guī)程HTTP傳播所發(fā)布的信息。
(2)Web是以客戶/服務(wù)器的模式進(jìn)行工作的。一方面,在Internet上的一些被稱為Web信息服務(wù)器的計(jì)算機(jī)上運(yùn)行著Web服務(wù)程序,用來發(fā)布信息;另一方面,用戶的計(jì)算機(jī)上運(yùn)行著各種Web客戶機(jī)程序,用來幫助用戶完成信息的查詢。Web客戶機(jī)程序提供兩種基本功能:為用戶提供風(fēng)格一致、使用方便的Internet信息查詢界面;將用戶的信息查詢請(qǐng)求轉(zhuǎn)換成Internet查詢命令并傳送給網(wǎng)上相應(yīng)的Web信息服務(wù)器進(jìn)行處理。Web服務(wù)器完成查詢,將結(jié)果通過Internet網(wǎng)送回客戶機(jī),Web客戶機(jī)程序?qū)⑦@些信息轉(zhuǎn)換成相應(yīng)的表達(dá)格式顯示給用戶。
(3)Web向Internet的用戶提供的信息是以文本方式出現(xiàn)的。用戶在計(jì)算機(jī)屏幕上看到的是一篇篇圖文并茂的文章,并且這些文章中的一些內(nèi)容含有進(jìn)一步描述的“鏈接”。當(dāng)用戶對(duì)醒目顯示的圖文感興趣時(shí),可以點(diǎn)擊它以便得到進(jìn)一步的解釋,這就是超級(jí)文本技術(shù)。Web是基于超文本的網(wǎng)絡(luò)化的信息系統(tǒng),超文本可以讓用戶通過點(diǎn)擊按鈕在網(wǎng)上漫游。通過使用瀏覽器客戶應(yīng)用軟件,選擇一個(gè)文件中加亮的關(guān)鍵字和特定的錨點(diǎn),自動(dòng)轉(zhuǎn)換到另一個(gè)新的文件中去,其中瀏覽器是獲取WWW提供服務(wù)的窗口。利用Web可以立即獲得網(wǎng)上發(fā)布的任何信息。
3.Web的工作原理
Web采用客戶/服務(wù)器模式,它是由分布在Internet上的成千上萬個(gè)Web服務(wù)器和Web瀏覽器構(gòu)成的。瀏覽器是用戶為查閱Web上的信息而在本機(jī)上運(yùn)行的一個(gè)程序,是用戶通向WWW網(wǎng)的窗口。它按用戶要求處理文檔,并按一定的方式連通遠(yuǎn)程信息資源,從中取回所需要的信息,顯示在用戶的屏幕上。Web服務(wù)器存儲(chǔ)和管理超文本文檔和超文本連接,并響應(yīng)Web瀏覽器的連接要求。服務(wù)器負(fù)責(zé)向?yàn)g覽器提供所需要的服務(wù)。當(dāng)服務(wù)器與某個(gè)瀏覽器建立連接后,監(jiān)聽瀏覽器發(fā)來的請(qǐng)求,并向?yàn)g覽器傳送所需要的信息。這些信息可以是從服務(wù)器的磁盤上取得的,也可以是臨時(shí)拼起來的。建立Web服務(wù)器已成為Internet上發(fā)布信息的重要手段之一。
由于Web是以客戶/服務(wù)器模式工作的,因此下面從客戶和服務(wù)器兩方討論Web的工作過程。
1)客戶方
Web是一個(gè)龐大的、世界范圍的文檔集合,簡稱為頁面。每一頁面都可以含有與世界各地相關(guān)頁面的鏈接,用戶可以跟隨一個(gè)鏈接到所指向的頁面。頁面通過一個(gè)稱做瀏覽器的程序?qū)ζ溥M(jìn)行觀察(例如Explorer、Netscape是兩個(gè)常用的瀏覽器)。瀏覽器取來所需的頁面,解釋它包含的文本和格式化命令,并以適當(dāng)?shù)母袷皆谄聊簧险故尽?/p>
Web展示的是一個(gè)或一組Web頁,是由一個(gè)或幾個(gè)按有意義的方式連接的Web頁構(gòu)成的。Web站點(diǎn)是Web上存放Web展示的實(shí)際機(jī)器,是Internet上包含有一個(gè)或多個(gè)Web展示的系統(tǒng)。Web頁是Web展示中的一個(gè)獨(dú)立單元,就像百科全書中的一頁。Web頁也被看成是Web文檔。在Web服務(wù)器和Web瀏覽器之間傳遞的一個(gè)Web頁是具有獨(dú)立文件名的磁盤文件。
如圖8.9所示,主頁是Web展示的入口或起點(diǎn),主頁通常是對(duì)展示內(nèi)容的概述。在瀏覽器瀏覽的過程中,主頁通常指啟動(dòng)瀏覽器時(shí)加載的頁面。如果在Web上發(fā)布頁面,則主頁是指Web展示中的第一個(gè)Web頁,它是其它頁的起點(diǎn),也是瀏覽者最先讀到的頁面。圖8.9一個(gè)展示及其頁面
2)服務(wù)器方
每個(gè)服務(wù)器站點(diǎn)都有一個(gè)服務(wù)器監(jiān)聽TCP80端口,用于查看是否有從客戶端過來的連接請(qǐng)求。在連接建立以后,每當(dāng)客戶發(fā)出一個(gè)請(qǐng)求,服務(wù)器就發(fā)回一個(gè)應(yīng)答,然后釋放連接請(qǐng)求。定義合法的請(qǐng)求與應(yīng)答的協(xié)議叫HTTP協(xié)議。下面的例子顯示了從用戶單擊鼠標(biāo)到顯示頁面內(nèi)容所經(jīng)過的幾個(gè)步驟。用戶單擊某條正文或某個(gè)圖標(biāo)時(shí),該正文或圖標(biāo)將指向名為http:///hypertext/www/MyProject.html的頁面。這個(gè)名字稱為資源定位符URL(UniformResourceLocator),由三部分組成:協(xié)議名稱http,頁面所在機(jī)器名,包含該頁面的文件名hypertext/www/MyProject.html。點(diǎn)擊該正文或圖標(biāo)后,將執(zhí)行以下工作步驟:①瀏覽器確定URL資源定位器。
②瀏覽器向DNS詢問的IP地址。
③DNS以主機(jī)地址作應(yīng)答。
④瀏覽器與IP地址對(duì)應(yīng)的遠(yuǎn)程計(jì)算機(jī)的80端口建立一條TCP連接。
⑤發(fā)送GEThypertext/www/MyProject.html命令。
⑥服務(wù)器發(fā)送文件MyProject.html。
⑦釋放TCP連接。
⑧瀏覽器顯示MyProjtect.html中的正文和圖像。網(wǎng)絡(luò)操作系統(tǒng)中的應(yīng)用程序編程接口稱為網(wǎng)絡(luò)API(ApplicationProgrammingInterface)。
我們知道,網(wǎng)絡(luò)操作系統(tǒng)為網(wǎng)絡(luò)用戶提供了兩級(jí)接口:操作命令接口和網(wǎng)絡(luò)編程接口。操作命令接口是指用戶使用網(wǎng)絡(luò)操作系統(tǒng)中提供的各種命令,以請(qǐng)求網(wǎng)絡(luò)操作系統(tǒng)提供各種服務(wù);網(wǎng)絡(luò)應(yīng)用程序編程接口是指用戶通過網(wǎng)絡(luò)操作系統(tǒng)提供的系統(tǒng)功能調(diào)用編寫應(yīng)用程序,達(dá)到使用網(wǎng)絡(luò)、操縱網(wǎng)絡(luò)的目的。8.5網(wǎng)絡(luò)操作系統(tǒng)中的應(yīng)用程序接口從開放系統(tǒng)互連參考模型(OSI/RM)來看,API所采用的基本構(gòu)造技術(shù)就是分層。雖然各種網(wǎng)絡(luò)(如Novell、WindowsNT、DECnet等)的分層與OSI/RM不盡相同,但在各種網(wǎng)絡(luò)中的各個(gè)層次都提供了一些相同或不同的網(wǎng)絡(luò)服務(wù)和協(xié)議。這些網(wǎng)絡(luò)一般都具有很強(qiáng)的網(wǎng)絡(luò)服務(wù)和相當(dāng)復(fù)雜的協(xié)議。這些服務(wù)和協(xié)議的實(shí)現(xiàn)細(xì)節(jié)通常都隱蔽在各層之內(nèi)。為了便于用戶使用網(wǎng)絡(luò)和開發(fā)網(wǎng)絡(luò)應(yīng)用程序,各種網(wǎng)絡(luò)在各個(gè)層次上為用戶和第三方開發(fā)者提供了方便靈活的編程接口。這些接口統(tǒng)稱為應(yīng)用編程接口API。
從原則上講,各種網(wǎng)絡(luò)提供的API可以分布在各個(gè)層次上,即從應(yīng)用層到物理層,但過多的層次接口并非必要。一般的網(wǎng)絡(luò)只在應(yīng)用層、會(huì)話層、傳輸層和網(wǎng)絡(luò)層提供接口API。前面講過的網(wǎng)絡(luò)操作命令、系統(tǒng)調(diào)用可算作應(yīng)用層接口。
本章結(jié)合UNIX網(wǎng)絡(luò)重點(diǎn)介紹傳輸層API。
UNIX系統(tǒng)的版本頗多,但目前占主導(dǎo)地位的有三種:
(1)AT&T的UNIXSystemV,1989年末公布了4.0版,稱為UNIXSVR4。
(2)伯克利的軟件分布系統(tǒng)BSD,1986年發(fā)表了4.3BSD(BerkeleySoftwareDistribution)。
(3)Microsoft的XenixSystemV。
UNIX網(wǎng)絡(luò)系統(tǒng)提供的編程接口API由一系列函數(shù)組成,這些函數(shù)是用C語言開發(fā)的。因此,用戶在編寫應(yīng)用程序時(shí),在其C語言程序中可直接調(diào)用這些函數(shù)。8.5.1傳輸層接口TLI
UNIX系統(tǒng)通信協(xié)議的應(yīng)用程序接口API是程序員(用戶)的可編程接口,它的可靠性取決于所使用的操作系統(tǒng)和程序設(shè)計(jì)語言。UNIX系統(tǒng)有兩個(gè)流行的通信API:伯克利4.3BSD的管套接口和系統(tǒng)V的傳輸層接口TLI。這兩個(gè)接口都是用C語言開發(fā)的。這里先介紹傳輸層接口,管套接口將在8.5.2節(jié)中講述。
傳輸層接口TLI(TransportLayerInterface)是一組函數(shù)的集合,它為用戶提供傳輸層接口,包括建立通信、管理連接以及傳送數(shù)據(jù)。應(yīng)用程序利用這些函數(shù)實(shí)現(xiàn)網(wǎng)絡(luò)應(yīng)用、控制低層的網(wǎng)絡(luò)活動(dòng)。
TLI是基于OSI/RM傳輸層功能要求而設(shè)計(jì)的,利用TLI可以實(shí)現(xiàn)OSI/RM傳輸層協(xié)議和接口服務(wù),還可以實(shí)現(xiàn)同TCP、UDP的接口。
1.TLI函數(shù)
TLI把相互通信的兩個(gè)進(jìn)程稱為端點(diǎn)。TLI提供網(wǎng)絡(luò)應(yīng)用的低層端點(diǎn)到端點(diǎn)的通信。主機(jī)上為用戶進(jìn)程提供通信支持的一組例程稱為傳輸提供者。例如UNIX系統(tǒng)中有TCP/IP協(xié)議提供者,TLI為用戶應(yīng)用進(jìn)程和傳輸提供者提供接口,如圖8.10所示。圖8.10傳輸端點(diǎn)結(jié)構(gòu)
TLI函數(shù)提供了一組在傳輸提供者基礎(chǔ)上進(jìn)行對(duì)話管理的功能,這些函數(shù)主要有:
(1)基本管理函數(shù);
(2)連接模式函數(shù);
(3)非連接式模式函數(shù)。
上述各類函數(shù)分別列于表8-2~表8-4中。
2.TLI的服務(wù)模式
TLI提供兩種服務(wù)模式,即面向連接的服務(wù)模式和面向非連接的服務(wù)模式。
1)面向連接的服務(wù)
用TLI進(jìn)行面向連接的通信類似于打電話??蛻舴降膽?yīng)用程序就像一個(gè)打電話的用戶,服務(wù)器方的應(yīng)用程序就像一個(gè)接電話的用戶。通電話的前提是雙方都應(yīng)有電話機(jī)。用戶的應(yīng)用程序就可以用TLI提供的函數(shù)打開一個(gè)設(shè)備文件來獲得一個(gè)傳輸端點(diǎn),這就像通信雙方的電話機(jī)。每一個(gè)面向連接的傳輸提供者都有許多設(shè)備文件。每個(gè)設(shè)備文件有兩個(gè)號(hào),一個(gè)為主號(hào),另一個(gè)為次號(hào)。主號(hào)表示傳輸提供者,次號(hào)表示傳輸提供者惟一的傳輸端點(diǎn)。當(dāng)某個(gè)傳輸提供者需要生成惟一的傳輸端點(diǎn)而建立通信時(shí),如果應(yīng)用程序想要打開另一個(gè)應(yīng)用程序正在使用的設(shè)備文件,就會(huì)失敗。因此,應(yīng)用程序應(yīng)該用TLI函數(shù)打開現(xiàn)在未被使用的設(shè)備文件。
利用TLI函數(shù)實(shí)現(xiàn)面向連接的客戶。服務(wù)器之間的工作過程如圖8.11所示。圖8.11面向連接的服務(wù)
2)面向非連接服務(wù)
TLI的非連接服務(wù)的過程類似于發(fā)送郵件的過程,通信的前提是要有一個(gè)郵箱。客戶方相當(dāng)于發(fā)信人,服務(wù)器方相當(dāng)于收信人,傳輸端點(diǎn)相當(dāng)于郵箱,用戶通過打開設(shè)備文件獲取傳輸端點(diǎn)。
每個(gè)非連接的傳輸提供者有許多設(shè)備文件。每個(gè)設(shè)備文件有兩個(gè)號(hào),一個(gè)為主號(hào),另一個(gè)為次號(hào)。主號(hào)為傳輸提供者,次號(hào)為傳輸提供者惟一的傳輸端點(diǎn)。當(dāng)某個(gè)傳輸提供者需要生成惟一的傳輸端點(diǎn)而建立通信時(shí),如果應(yīng)用程序想要打開另一個(gè)應(yīng)用程序正在使用的設(shè)備文件,就會(huì)失敗。因此,應(yīng)用程序應(yīng)該用
TLI函數(shù)打開現(xiàn)在未被使用的設(shè)備文件。
利用TLI函數(shù)實(shí)現(xiàn)非連接的客戶、服務(wù)器之間的工作過程如圖8.12所示。圖8.12非連接的服務(wù)模式8.5.2管套及其應(yīng)用
管套(Socket)也叫套接字或套接口,它同TLI一樣也是UNIX提供的一種網(wǎng)絡(luò)應(yīng)用程序編程接口。管套接口通過一組管套函數(shù)使應(yīng)用程序在本地系統(tǒng)和遠(yuǎn)程系統(tǒng)之間建立通信信道,實(shí)現(xiàn)連接的管理和數(shù)據(jù)的傳輸。
1.管套
管套是通信信道上的端節(jié)點(diǎn)。用管套函數(shù)可以產(chǎn)生通信信道。通過信道,兩個(gè)應(yīng)用程序之間可以傳送數(shù)據(jù)。這種信道既支持虛電路服務(wù),也支持?jǐn)?shù)據(jù)報(bào)服務(wù)。利用管套進(jìn)行通信的方式如圖8.13所示。圖8.13管道通信方式管套是信道的末端,當(dāng)應(yīng)用程序產(chǎn)生一管套后,管套函數(shù)就返回所用文件的描述符。在這里可以把支持虛電路服務(wù)的信道看作是電話線,管套就像一部電話。同樣可把提供數(shù)據(jù)報(bào)服務(wù)的信道看作是郵局系統(tǒng),管套看作是信箱,人們向信箱投遞信件,信件通過郵局系統(tǒng)到達(dá)另一信箱。應(yīng)用程序利用管套發(fā)數(shù)據(jù)報(bào),數(shù)據(jù)報(bào)通過信道傳向另一個(gè)管套。在產(chǎn)生信道時(shí)用戶可以指定所用的傳輸提供者,例如,可以用TCP、UDP、XNS作為傳輸提供者。管套通信的特點(diǎn)是:
(1)管套沒有與它相連的設(shè)備文件,這一點(diǎn)與TLI不同。對(duì)管套的應(yīng)用來說,應(yīng)用程序可以用socket()產(chǎn)生管套,指定所用的信道類型。socket()返回與所用信道末端相對(duì)應(yīng)的文件描述符。
(2)只要進(jìn)程保存文件描述符,管套就一直存在,直到?jīng)]有進(jìn)程打開文件描述符為止,這時(shí)管套才被撤消。
(3)既可以產(chǎn)生一個(gè)管套,也可以同時(shí)產(chǎn)生一對(duì)管套。如果產(chǎn)生一對(duì)管套,系統(tǒng)會(huì)自動(dòng)在它們之間建立信道。如果只產(chǎn)生一個(gè)管套,用戶程序就需要用管套函數(shù)在該管套與其它管套間建立信道。
2.管套的應(yīng)用
1)虛電路服務(wù)中管套的應(yīng)用
在提供虛電路服務(wù)的信道上,使用管套實(shí)現(xiàn)客戶與服務(wù)器間的通信,其過程如圖8.14所示。
服務(wù)器方:
①用socket()產(chǎn)生管套,并返回與之對(duì)應(yīng)的文件描述符,指定地址家族(addressfamily)、傳輸協(xié)議以及設(shè)置虛電路服務(wù),這就像獲得一部電話。
②用bind()把傳送地址與管套相連接,傳送地址的格式取決于使用的傳輸提供者,這就像獲取電話號(hào)碼。圖8.14虛電路服務(wù)中管套的應(yīng)用③用listen()把管套置于“l(fā)isten狀態(tài)”,這類似于把電話插入電話插孔。
④用accept()等待連接請(qǐng)求的到達(dá),這就像電話響鈴。當(dāng)連接請(qǐng)求到達(dá)時(shí)(電話響鈴),accept()返回與之相連的新管套。通常,當(dāng)accept()返回時(shí),應(yīng)用程序調(diào)用fork()系統(tǒng)調(diào)用產(chǎn)生子進(jìn)程,由子進(jìn)程處理新的連接。父進(jìn)程調(diào)用accept()等待下一次電話鈴響??蛻舴剑?/p>
①用socket()產(chǎn)生管套,其操作與服務(wù)器方相同。
②用bind()把傳送地址與管套相連接,與服務(wù)器方不同的是,它不必關(guān)心傳送地址的格式。因?yàn)闆]有人給你打電話,你只給別人打電話,所以別人就沒必要關(guān)心你的電話號(hào)碼是什么。
③用connect()建立與服務(wù)器的連接,并指出服務(wù)器上應(yīng)用的傳送地址。
圖8.15給出了兩個(gè)管套間的數(shù)據(jù)傳輸過程。圖8.15虛電路服務(wù)中的數(shù)據(jù)傳送
2)數(shù)據(jù)報(bào)服務(wù)中的管套應(yīng)用
在提供數(shù)據(jù)報(bào)服務(wù)的信道上使用管套類似于發(fā)送與接收郵件??蛻舴降膽?yīng)用就像一個(gè)人的發(fā)信動(dòng)作,服務(wù)器方的應(yīng)用就像一個(gè)人的收信動(dòng)作。在通信開始之前,兩方必須設(shè)置管套,就像通信雙方必須先有信箱一樣。數(shù)據(jù)報(bào)服務(wù)中使用管套進(jìn)行通信的過程如圖8.16所示。圖8.16數(shù)據(jù)報(bào)服務(wù)中用管套進(jìn)行通信服務(wù)器方:
①用socket()產(chǎn)生一管套,并返回管套的文件描述符。這就像獲得一個(gè)信箱。
②用bind()把傳送地址連接到管套上。當(dāng)用管套發(fā)送消息時(shí),就會(huì)用到這些地址。這就像給信箱分配郵局地址。
③用revfrom()等待數(shù)據(jù)報(bào)的到達(dá)。當(dāng)消息到達(dá)時(shí),recvfrom()返回參數(shù)以及發(fā)送者的地址。這就像等待信箱中出現(xiàn)你想要的信件。
④如果必要,用sendto()發(fā)一應(yīng)答消息。這就像發(fā)一封回信??蛻舴剑?/p>
①用socket()產(chǎn)生一管套,給傳輸提供者返回一個(gè)文件描述符。這就像獲得一個(gè)信箱。
②用bind()將任意的傳送地址連接到管套上,這就像為信箱分配一個(gè)郵局地址。在這里不必關(guān)心地址是什么,因?yàn)楫?dāng)客戶發(fā)數(shù)據(jù)報(bào)時(shí),傳送地址會(huì)與數(shù)據(jù)一同發(fā)出去。服務(wù)器可以從數(shù)據(jù)報(bào)中找出源節(jié)點(diǎn)的地址并發(fā)回響應(yīng)。如果客戶沒有傳送地址與管套相連接,則SVR4會(huì)在發(fā)送消息時(shí)自動(dòng)將它們連接。
③用connect()實(shí)現(xiàn)與服務(wù)器的連接。在數(shù)據(jù)報(bào)服務(wù)中,connect()可以沒有,這里,connect()并不產(chǎn)生真正的連接,而是把管套與目的地址相連接。當(dāng)發(fā)數(shù)據(jù)報(bào)時(shí),系統(tǒng)會(huì)在每一數(shù)據(jù)中加上目的地址,使得原來只能用于有連接傳輸?shù)暮瘮?shù)在無連接傳輸中也能使用,如send(),read()。
④用sendto()把消息發(fā)向服務(wù)器方。該函數(shù)需要指出發(fā)送數(shù)據(jù)報(bào)的目的地址。如果用connect()建立遠(yuǎn)程管套連接,可以用Write()系統(tǒng)調(diào)用或send()函數(shù)發(fā)送消息。⑤當(dāng)期待一個(gè)響應(yīng)消息時(shí),用revfrom()等待消息的到來。如果是遠(yuǎn)程管套,可以用recv()函數(shù)或read()系統(tǒng)調(diào)用接收應(yīng)答消息。在這里應(yīng)注意,由于使用的是數(shù)據(jù)報(bào)服務(wù),數(shù)據(jù)報(bào)提供者不保證傳輸?shù)恼_性,傳輸?shù)臄?shù)據(jù)報(bào)可能會(huì)出現(xiàn)數(shù)據(jù)丟失或者響應(yīng)丟失的現(xiàn)象,因此數(shù)據(jù)報(bào)發(fā)出后必須計(jì)時(shí)。如果在指定時(shí)間間隔內(nèi)得不到響應(yīng),則應(yīng)重發(fā)請(qǐng)求。作為網(wǎng)絡(luò)操作系統(tǒng)的實(shí)例,本章所介紹的網(wǎng)絡(luò)操作系統(tǒng)WindowsNT,其網(wǎng)絡(luò)軟件不再作為操作系統(tǒng)的一個(gè)附加層來運(yùn)行,而是作為NT執(zhí)行體內(nèi)部的一個(gè)重要組成部分,即網(wǎng)絡(luò)功能包含于操作系統(tǒng)中,這就是所說的“內(nèi)裝網(wǎng)絡(luò)”(Bulit-inNetworking)的概念。
8.6.1WindowsNT網(wǎng)絡(luò)的特點(diǎn)
WindowsNT網(wǎng)絡(luò)(以下簡稱NT網(wǎng)絡(luò))具有以下特點(diǎn):
(1)NT網(wǎng)絡(luò)是內(nèi)裝網(wǎng)絡(luò),從而WindowsNT是真正的網(wǎng)絡(luò)操作系統(tǒng)。8.6W
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026湖北長江存儲(chǔ)博士后全球招聘考試參考試題及答案解析
- 2026河南鄭州西區(qū)中醫(yī)院招聘56人考試備考試題及答案解析
- 2026中國電建集團(tuán)西北勘測設(shè)計(jì)研究院有限公司招聘(55人)考試備考題庫及答案解析
- 2026云南保山市施甸縣甸陽鎮(zhèn)招聘市域社會(huì)治理現(xiàn)代化城市網(wǎng)格員4人考試備考試題及答案解析
- 2026臺(tái)州市新府城科技傳媒有限公司公開招聘工作人員3人考試參考試題及答案解析
- 2026北京海淀區(qū)中鐵城建集團(tuán)有限公司招聘24人考試備考題庫及答案解析
- 2026年1月廣西玉林市陸川縣城鎮(zhèn)公益性崗位人員招聘筆試參考題庫及答案解析
- 北京保障房中心有限公司面向社會(huì)招聘法律管理崗1人考試備考題庫及答案解析
- 2026江蘇鹽城市阜寧縣科技成果轉(zhuǎn)化服務(wù)中心選調(diào)10人考試參考試題及答案解析
- 2026遼寧省精神衛(wèi)生中心招聘高層次和急需緊缺人才7人考試參考試題及答案解析
- GB/T 45592-2025建筑材料產(chǎn)品追溯體系通用要求
- 殘疾人居家安全課件
- 2025中式面點(diǎn)師技師理論考試試題及答案
- 生產(chǎn)經(jīng)營單位事故隱患內(nèi)部報(bào)告獎(jiǎng)勵(lì)機(jī)制實(shí)踐與案例
- 2024-2025學(xué)年山西省晉中市榆次區(qū)上學(xué)期期末八年級(jí)數(shù)學(xué)試卷
- 藥品信息服務(wù)合同協(xié)議
- 山西省太原市2024-2025學(xué)年高三上學(xué)期期末學(xué)業(yè)診斷英語試卷2
- 偷盜刑事和解協(xié)議書
- 框架廠房建設(shè)合同協(xié)議
- 2025屆安徽省淮北市、淮南市高三上學(xué)期第一次質(zhì)量檢測物理試題(原卷版+解析版)
- 保護(hù)生物學(xué)第三版
評(píng)論
0/150
提交評(píng)論