20140912 第 2 章 分布式系統(tǒng)的通信_第1頁
20140912 第 2 章 分布式系統(tǒng)的通信_第2頁
20140912 第 2 章 分布式系統(tǒng)的通信_第3頁
20140912 第 2 章 分布式系統(tǒng)的通信_第4頁
20140912 第 2 章 分布式系統(tǒng)的通信_第5頁
已閱讀5頁,還剩55頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、第第2 2章章 分布式系統(tǒng)的通信分布式系統(tǒng)的通信 分層協(xié)議分層協(xié)議 異步傳輸模式網(wǎng)(異步傳輸模式網(wǎng)(ATMATM) 客戶客戶- -服務(wù)器模式服務(wù)器模式 遠程過程調(diào)用遠程過程調(diào)用 組通信組通信2.1 2.1 分層協(xié)議分層協(xié)議開放系統(tǒng)互聯(lián)參考模型(開放系統(tǒng)互聯(lián)參考模型(OSIOSI) OSI 模型中的層、接口和協(xié)議模型中的層、接口和協(xié)議 網(wǎng)絡(luò)物理層物理層數(shù)據(jù)鏈路層數(shù)據(jù)鏈路層網(wǎng)絡(luò)層網(wǎng)絡(luò)層傳輸層傳輸層會話層會話層表示層表示層應(yīng)用層應(yīng)用層進程進程A機器1物理層物理層數(shù)據(jù)鏈路層數(shù)據(jù)鏈路層網(wǎng)絡(luò)層網(wǎng)絡(luò)層傳輸層傳輸層會話層會話層表示層表示層應(yīng)用層應(yīng)用層進程進程B機器2應(yīng)用層協(xié)議表示層協(xié)議會話層協(xié)議傳輸層協(xié)議網(wǎng)絡(luò)

2、層協(xié)議數(shù)據(jù)鏈路層協(xié)議物理層協(xié)議12345672.1 2.1 分層協(xié)議分層協(xié)議開放系統(tǒng)互聯(lián)參考模型(開放系統(tǒng)互聯(lián)參考模型(OSIOSI)典型消息結(jié)構(gòu)典型消息結(jié)構(gòu) 消息消息應(yīng)用層頭應(yīng)用層頭表示層頭表示層頭會話層頭會話層頭傳輸層頭傳輸層頭網(wǎng)絡(luò)層頭網(wǎng)絡(luò)層頭數(shù)據(jù)鏈路層頭數(shù)據(jù)鏈路層頭數(shù)據(jù)鏈路數(shù)據(jù)鏈路層尾層尾實際網(wǎng)絡(luò)中傳輸?shù)奈粚嶋H網(wǎng)絡(luò)中傳輸?shù)奈?.22.2 異步傳輸模式網(wǎng)(異步傳輸模式網(wǎng)(ATMATM網(wǎng))網(wǎng))異步傳輸模式異步傳輸模式ATM模型模型 異步傳輸模式(異步傳輸模式(Asynchronous Transfer Mode)發(fā)送者首先建立一個連接(一條虛擬線路)到接收者。在發(fā)送者首先建立一個連接(一條虛

3、擬線路)到接收者。在建立過程中,從發(fā)送者到接收者之間建立一個路由,并將建立過程中,從發(fā)送者到接收者之間建立一個路由,并將路由信息放在沿途的交換機上。路由信息放在沿途的交換機上。系統(tǒng)發(fā)送包時,包先被硬件拆成固定大小的單位(信元),系統(tǒng)發(fā)送包時,包先被硬件拆成固定大小的單位(信元),信元沿著交換機中的路徑流動。信元沿著交換機中的路徑流動。當不再需要連接時,釋放此連接,并從交換機中刪除該路當不再需要連接時,釋放此連接,并從交換機中刪除該路由信息由信息。2.2 2.2 異步傳輸模式網(wǎng)(異步傳輸模式網(wǎng)(ATMATM網(wǎng))網(wǎng))異步傳輸模式異步傳輸模式ATM協(xié)議分層協(xié)議分層 物理層(物理層(OSI第第1層)層

4、)ATM層處理包括路由選擇在內(nèi)的信元和信元傳輸。層處理包括路由選擇在內(nèi)的信元和信元傳輸。(包括包括OSI第第2,3層一部分層一部分) ATM不修復(fù)丟失或損壞的信元。不修復(fù)丟失或損壞的信元。適配層將包拆分成信元并在另一頭組裝。(適配層將包拆分成信元并在另一頭組裝。(OSI第第4層)層) 適配適配層沒有提供可靠的端對端服務(wù),傳輸連接必須在上一層實現(xiàn)。層沒有提供可靠的端對端服務(wù),傳輸連接必須在上一層實現(xiàn)。物理層物理層ATM層層適配層適配層上面各層上面各層2.3 2.3 客戶機服務(wù)器模式客戶機服務(wù)器模式2.3.1 2.3.1 客戶機和服務(wù)器客戶機和服務(wù)器基本思想基本思想 構(gòu)造一個操作系統(tǒng)構(gòu)造一個操作系

5、統(tǒng),由一組協(xié)同進程組成,這組進程稱由一組協(xié)同進程組成,這組進程稱為服務(wù)器為服務(wù)器(server),為用戶提供服務(wù)的進程稱為客戶,為用戶提供服務(wù)的進程稱為客戶(client). 客戶和服務(wù)器都運行在相同的微內(nèi)核中??蛻艉头?wù)器都運行在相同的微內(nèi)核中。 客戶和服務(wù)器都以用戶進程方式運行,客戶和服務(wù)器都以用戶進程方式運行, 一臺機器可以一臺機器可以運行于單個進程、多個客戶、多個服務(wù)器或者兩者的運行于單個進程、多個客戶、多個服務(wù)器或者兩者的混合?;旌稀?.3 2.3 客戶機服務(wù)器模式客戶機服務(wù)器模式2.3.1 2.3.1 客戶機和服務(wù)器客戶機和服務(wù)器通信特點通信特點 客戶服務(wù)器模式通常以簡單的面向非連

6、接的請求客戶服務(wù)器模式通常以簡單的面向非連接的請求/應(yīng)答協(xié)應(yīng)答協(xié)議為基礎(chǔ)。通信服務(wù)可以簡化為由微內(nèi)核提供的兩個系統(tǒng)調(diào)用,議為基礎(chǔ)。通信服務(wù)可以簡化為由微內(nèi)核提供的兩個系統(tǒng)調(diào)用,一個是負責發(fā)送報文:一個是負責發(fā)送報文:send(dest,&mptr ),一個是負責接,一個是負責接收報文收報文:receive(addr,&mptr)。內(nèi)核內(nèi)核客戶客戶內(nèi)核內(nèi)核服務(wù)服務(wù)網(wǎng)絡(luò)網(wǎng)絡(luò)應(yīng)答應(yīng)答請求請求物理層物理層數(shù)據(jù)鏈路層數(shù)據(jù)鏈路層請求請求/應(yīng)答應(yīng)答12345672.3 2.3 客戶機服務(wù)器模式客戶機服務(wù)器模式2.3.2 2.3.2 一個簡化的客戶機、服務(wù)器程序例子一個簡化的客戶機、服務(wù)器程序

7、例子 CLIENTCLIENT do send(FILE_SERVER, m1); receive(client, &m1); while() SERVERSERVER while (1) . receive(FILE_SERVER,&m1); send(m1.source, &m2); . 2.3 2.3 客戶機服務(wù)器模式客戶機服務(wù)器模式 很多存取數(shù)據(jù)庫的應(yīng)用可采用分層的結(jié)構(gòu):很多存取數(shù)據(jù)庫的應(yīng)用可采用分層的結(jié)構(gòu): The user-interface level The processing level The data level 2.3 2.3 客戶機服務(wù)器模式

8、客戶機服務(wù)器模式2.3.3 2.3.3 尋址尋址機器機器.進程編址方式進程編址方式 機器號和進程號,機器號用于使內(nèi)核將消息正確地發(fā)送機器號和進程號,機器號用于使內(nèi)核將消息正確地發(fā)送到適當?shù)臋C器上。進程號用來使內(nèi)核決定消息要給哪一個進到適當?shù)臋C器上。進程號用來使內(nèi)核決定消息要給哪一個進程。機器號程。機器號+端口號與此類似。端口號與此類似。內(nèi)核內(nèi)核C內(nèi)核內(nèi)核S1:請求:請求243.0212:給:給199.0響應(yīng)響應(yīng)2.3 2.3 客戶機服務(wù)器模式客戶機服務(wù)器模式2.3.3 2.3.3 尋址尋址帶有廣播的進程編址帶有廣播的進程編址 進程在相當大且專用的地址空間中選擇自己的標識號。發(fā)送者廣播一進程在相

9、當大且專用的地址空間中選擇自己的標識號。發(fā)送者廣播一個特殊的定位包,包含目的進程的地址,所有內(nèi)核檢查并察看地址是不是個特殊的定位包,包含目的進程的地址,所有內(nèi)核檢查并察看地址是不是它們的,如果是回答它們的,如果是回答“我在這里我在這里”消息給出網(wǎng)絡(luò)地址,發(fā)送內(nèi)核使用這個消息給出網(wǎng)絡(luò)地址,發(fā)送內(nèi)核使用這個地址并地址并“記住記住”它。例如它。例如Peer to Peer. CS1:廣播:廣播432:“我在這里我在這里”123:請求:請求4:應(yīng)答:應(yīng)答2.3 2.3 客戶機服務(wù)器模式客戶機服務(wù)器模式2.3.3 2.3.3 尋址尋址通過名字服務(wù)器進行地址查詢通過名字服務(wù)器進行地址查詢 在客戶機中存放在

10、客戶機中存放ASCII服務(wù)器的名字,每次客戶機運行時,首先試圖服務(wù)器的名字,每次客戶機運行時,首先試圖使用服務(wù)器,客戶機發(fā)出一請求消息給一個特殊映射服務(wù)器,(常常稱為使用服務(wù)器,客戶機發(fā)出一請求消息給一個特殊映射服務(wù)器,(常常稱為名字服務(wù)器)問一個目前服務(wù)器所在的機器號,有了這個地址后,可以直名字服務(wù)器)問一個目前服務(wù)器所在的機器號,有了這個地址后,可以直接發(fā)送請求。例如接發(fā)送請求。例如 域名服務(wù)。域名服務(wù)。名字服務(wù)器名字服務(wù)器SC1:查找:查找2:NS應(yīng)答應(yīng)答NS1:請求:請求2:應(yīng)答:應(yīng)答1234網(wǎng)絡(luò)網(wǎng)絡(luò)2.3 2.3 客戶機服務(wù)器模式客戶機服務(wù)器模式2.3.32.3.3 尋址尋址進程編址

11、方法總結(jié)進程編址方法總結(jié) 在客戶機代碼中指明機器在客戶機代碼中指明機器.號;號; 讓進程選擇隨機地址,用廣播定位進程。讓進程選擇隨機地址,用廣播定位進程。 在客戶機中存放在客戶機中存放ASCII服務(wù)器名字,運行時尋找它。服務(wù)器名字,運行時尋找它。三種方法的缺點:三種方法的缺點: 機器機器.進程編址方式:不透明進程編址方式:不透明 帶有廣播的進程編址:給系統(tǒng)造成額外負擔帶有廣播的進程編址:給系統(tǒng)造成額外負擔 通過名字服務(wù)器進行地址查詢:需要一個中間部件通過名字服務(wù)器進行地址查詢:需要一個中間部件名名字服務(wù)器。字服務(wù)器。 思考題:比較三種尋址方法,并給出相應(yīng)的你熟悉的例子。思考題:比較三種尋址方法

12、,并給出相應(yīng)的你熟悉的例子。 2.3 2.3 客戶機服務(wù)器模式客戶機服務(wù)器模式2.3.4 2.3.4 阻塞與非阻塞原語阻塞與非阻塞原語阻塞原語阻塞原語 阻塞的阻塞的Send:阻塞直到消息傳送完畢阻塞直到消息傳送完畢. 阻塞的阻塞的Receive: 阻塞直到消息被實際接收并放入由參數(shù)指阻塞直到消息被實際接收并放入由參數(shù)指定的消息緩沖區(qū)定的消息緩沖區(qū). 客戶阻塞客戶阻塞消息被發(fā)送消息被發(fā)送從內(nèi)核返回,從內(nèi)核返回,進程釋放進程釋放陷阱內(nèi)核陷阱內(nèi)核阻塞進程阻塞進程客戶運行客戶運行客戶運行客戶運行2.3 2.3 客戶機服務(wù)器模式客戶機服務(wù)器模式2.3.4 2.3.4 阻塞與非阻塞原語阻塞與非阻塞原語非阻

13、塞原語非阻塞原語 非阻塞的非阻塞的Send:消息發(fā)送前取得控制權(quán)消息發(fā)送前取得控制權(quán). 非阻塞的非阻塞的Receive:告訴內(nèi)核消息緩沖區(qū)的位置告訴內(nèi)核消息緩沖區(qū)的位置,立即取得控立即取得控制權(quán)制權(quán).2.3 2.3 客戶機服務(wù)器模式客戶機服務(wù)器模式2.3.4 2.3.4 阻塞與非阻塞原語阻塞與非阻塞原語非阻塞原語非阻塞原語 缺點缺點在消息被發(fā)送之前,發(fā)送者不能修改消息緩沖區(qū)。后繼的在消息被發(fā)送之前,發(fā)送者不能修改消息緩沖區(qū)。后繼的進程在傳輸過程中可能覆蓋該消息進程在傳輸過程中可能覆蓋該消息 。發(fā)送進程不知道傳送何時進行,它無法知道何時重新使用發(fā)送進程不知道傳送何時進行,它無法知道何時重新使用緩

14、沖區(qū)。緩沖區(qū)。2.3 2.3 客戶機服務(wù)器模式客戶機服務(wù)器模式解決方法解決方法內(nèi)核將消息拷貝到內(nèi)部緩沖區(qū),其后允許進程繼續(xù)執(zhí)行。內(nèi)核將消息拷貝到內(nèi)部緩沖區(qū),其后允許進程繼續(xù)執(zhí)行。 當消息發(fā)送后,中斷發(fā)送者并通知它緩沖區(qū)可用。當消息發(fā)送后,中斷發(fā)送者并通知它緩沖區(qū)可用。 返回返回陷阱陷阱客戶運行客戶運行客戶運行客戶運行消息被發(fā)送消息被發(fā)送客戶阻塞客戶阻塞消息拷貝到消息拷貝到內(nèi)核緩沖內(nèi)核緩沖時間時間2.3 2.3 客戶機服務(wù)器模式客戶機服務(wù)器模式2.3.5 2.3.5 有緩沖和無緩沖原語有緩沖和無緩沖原語無緩沖原語無緩沖原語 調(diào)用調(diào)用receive(addr,&m) ,通知機器內(nèi)核,調(diào)用的

15、進程正在,通知機器內(nèi)核,調(diào)用的進程正在監(jiān)聽地址監(jiān)聽地址addr,m指出消息緩沖區(qū),用于保存?zhèn)魉瓦^來的消指出消息緩沖區(qū),用于保存?zhèn)魉瓦^來的消息息。 內(nèi)核內(nèi)核C內(nèi)核內(nèi)核A S客戶客戶對應(yīng)一個進對應(yīng)一個進程的地址程的地址服務(wù)器服務(wù)器2.3 2.3 客戶機服務(wù)器模式客戶機服務(wù)器模式2.3.5 2.3.5 有緩沖和無緩沖原語有緩沖和無緩沖原語無緩沖原語無緩沖原語 缺點缺點 如果在客戶機調(diào)用如果在客戶機調(diào)用send原語之后調(diào)用原語之后調(diào)用receive原語,或服務(wù)原語,或服務(wù)器正忙于處理其它客戶的請求,無法正常接收消息。器正忙于處理其它客戶的請求,無法正常接收消息。 解決方法解決方法丟棄消息,使客戶機超時

16、,并希望服務(wù)器在客戶機傳送前丟棄消息,使客戶機超時,并希望服務(wù)器在客戶機傳送前調(diào)用接收原語。調(diào)用接收原語。 讓接收內(nèi)核在短時間內(nèi)保存到來的消息。讓接收內(nèi)核在短時間內(nèi)保存到來的消息。 2.3 2.3 客戶機服務(wù)器模式客戶機服務(wù)器模式2.3.5 2.3.5 有緩沖和無緩沖原語有緩沖和無緩沖原語有緩沖原語有緩沖原語 對接收消息感興趣的進程讓內(nèi)核為之建立一個郵箱。所有對接收消息感興趣的進程讓內(nèi)核為之建立一個郵箱。所有具有該地址的輸入消息被放入郵箱中,調(diào)用具有該地址的輸入消息被放入郵箱中,調(diào)用receive時只要從郵時只要從郵箱中取出一條消息。箱中取出一條消息。 內(nèi)核內(nèi)核CS對應(yīng)一個郵箱對應(yīng)一個郵箱的地

17、址的地址A網(wǎng)絡(luò)網(wǎng)絡(luò)2.3 2.3 客戶機服務(wù)器模式客戶機服務(wù)器模式2.3.6 2.3.6 可靠和非可靠原語可靠和非可靠原語如何保證消息被成功發(fā)送如何保證消息被成功發(fā)送重新定義非可靠的重新定義非可靠的send語義。系統(tǒng)無法保證消息成功發(fā)送,語義。系統(tǒng)無法保證消息成功發(fā)送,完成可靠的通信依賴于用戶。完成可靠的通信依賴于用戶。要求接收機器的內(nèi)核給發(fā)送機器的內(nèi)核發(fā)送一個確認消息。要求接收機器的內(nèi)核給發(fā)送機器的內(nèi)核發(fā)送一個確認消息。 客戶客戶服務(wù)器服務(wù)器31421.請求(客戶向服務(wù)器)請求(客戶向服務(wù)器)2.ACK(內(nèi)核給內(nèi)核)(內(nèi)核給內(nèi)核)3.應(yīng)答(服務(wù)器向客戶)應(yīng)答(服務(wù)器向客戶)4.ACK(內(nèi)核給

18、內(nèi)核)(內(nèi)核給內(nèi)核)2.3 2.3 客戶機服務(wù)器模式客戶機服務(wù)器模式2.3.6 2.3.6 可靠和非可靠原語可靠和非可靠原語如何保證消息被成功發(fā)送如何保證消息被成功發(fā)送 客戶機在發(fā)送消息后阻塞,服務(wù)器的內(nèi)核不發(fā)送確認消息,客戶機在發(fā)送消息后阻塞,服務(wù)器的內(nèi)核不發(fā)送確認消息,而是將應(yīng)答作為確認消息。而是將應(yīng)答作為確認消息。 折衷方案折衷方案 當一個請求到達服務(wù)器內(nèi)核,計時器啟動,如果服務(wù)當一個請求到達服務(wù)器內(nèi)核,計時器啟動,如果服務(wù)器能很快給出應(yīng)答,這個應(yīng)答就是確認消息。否則,單獨器能很快給出應(yīng)答,這個應(yīng)答就是確認消息。否則,單獨發(fā)送確認消息。發(fā)送確認消息??蛻舴?wù)器2131.請求(客戶向服務(wù)器

19、) 2.應(yīng)答(服務(wù)器向客戶) 3.ACK(內(nèi)核給內(nèi)核)2.3 2.3 客戶機服務(wù)器模式客戶機服務(wù)器模式2.3.7 2.3.7 客戶機客戶機- -服務(wù)器模式的實現(xiàn)服務(wù)器模式的實現(xiàn)四個設(shè)計問題的選擇四個設(shè)計問題的選擇 思考題:在采用了名字尋址,并采用了阻塞、有緩沖和可靠通信原語的情況下,系統(tǒng)是如何工作的。項目項目選擇選擇1選擇選擇2選擇選擇3尋址尋址機器數(shù)目機器數(shù)目共享進程地址共享進程地址ASCII名字通過服務(wù)名字通過服務(wù)器查找器查找阻塞阻塞阻塞原語阻塞原語具有拷貝到核的非阻塞具有拷貝到核的非阻塞具有中斷的非阻塞具有中斷的非阻塞緩沖緩沖無緩沖,丟棄不無緩沖,丟棄不希望的消息希望的消息無緩沖,臨時保

20、持不期望無緩沖,臨時保持不期望的消息的消息郵箱郵箱可靠性可靠性非可靠非可靠請求請求-確認確認-應(yīng)答確認應(yīng)答確認請求請求-應(yīng)答應(yīng)答-確認確認34=81種組合種組合 2.3 2.3 客戶機服務(wù)器模式客戶機服務(wù)器模式2.3.7 2.3.7 客戶機客戶機- -服務(wù)器模式的實現(xiàn)服務(wù)器模式的實現(xiàn)大報文傳輸問題大報文傳輸問題將大報文分成多個包分別傳遞,給每個報文分配一個報文號,并將大報文分成多個包分別傳遞,給每個報文分配一個報文號,并將該報文號放入屬于這個報文的包中,有一系列的數(shù)字給出信包將該報文號放入屬于這個報文的包中,有一系列的數(shù)字給出信包的順序。的順序。確認消息確認消息對每個單獨的包進行確認。優(yōu)點:如

21、果一個包丟失,僅僅這個包對每個單獨的包進行確認。優(yōu)點:如果一個包丟失,僅僅這個包需要重新傳遞。缺點:網(wǎng)絡(luò)上會有更多的包。需要重新傳遞。缺點:網(wǎng)絡(luò)上會有更多的包。僅僅對一個報文確認。優(yōu)點:信包少。缺點:一旦包丟失,恢復(fù)僅僅對一個報文確認。優(yōu)點:信包少。缺點:一旦包丟失,恢復(fù)起來更復(fù)雜。起來更復(fù)雜。2.3 2.3 客戶機服務(wù)器模式客戶機服務(wù)器模式2.3.7 2.3.7 客戶機客戶機- -服務(wù)器模式的實現(xiàn)服務(wù)器模式的實現(xiàn)客戶客戶-服務(wù)器協(xié)議中的包類型服務(wù)器協(xié)議中的包類型代碼代碼包類型包類型 來源來源 至至說明說明REQ請求請求客戶客戶 服務(wù)器服務(wù)器客戶要求服務(wù)客戶要求服務(wù)REP應(yīng)答應(yīng)答服務(wù)器服務(wù)器客

22、戶客戶 服務(wù)器對客戶的應(yīng)答服務(wù)器對客戶的應(yīng)答ACK確認確認服務(wù)器、客戶服務(wù)器、客戶其他其他前面的包已到達前面的包已到達AYA你在這里嗎?你在這里嗎?客戶客戶服務(wù)器服務(wù)器查看服務(wù)器是否崩潰查看服務(wù)器是否崩潰IAA我在這里我在這里服務(wù)器服務(wù)器客戶客戶服務(wù)器沒有崩潰服務(wù)器沒有崩潰TA再試一次?再試一次?服務(wù)器服務(wù)器客戶客戶服務(wù)器沒有空間服務(wù)器沒有空間AU地址未知地址未知服務(wù)器服務(wù)器客戶客戶沒有進程再使用此地址沒有進程再使用此地址2.3 2.3 客戶機服務(wù)器模式客戶機服務(wù)器模式2.3.7 2.3.7 客戶機客戶機- -服務(wù)器模式的實現(xiàn)服務(wù)器模式的實現(xiàn)客戶客戶-服務(wù)器通信使用的包交換示例服務(wù)器通信使用的

23、包交換示例服務(wù)器服務(wù)器客戶客戶REQ REP服務(wù)器服務(wù)器客戶客戶REQ REPACK服務(wù)器服務(wù)器客戶客戶REQ ACKACK REP服務(wù)器服務(wù)器客戶客戶REQ ACKAYA IAA REPACK思考題:這個圖的含義是什么2.4 2.4 遠程過程調(diào)用遠程過程調(diào)用2.4.1 2.4.1 基本基本RPCRPC操作操作RPC的產(chǎn)生:透明地訪問分布式環(huán)境下的資源。的產(chǎn)生:透明地訪問分布式環(huán)境下的資源。RPC與發(fā)展:與發(fā)展:CORBA COM J2EERPC的基本思想:調(diào)用遠程過程就像調(diào)用本地過程一樣。的基本思想:調(diào)用遠程過程就像調(diào)用本地過程一樣。 count=read(fd,buf,nbytes); 傳

24、統(tǒng)過程調(diào)用傳統(tǒng)過程調(diào)用主函數(shù)主函數(shù)局部變量局部變量主函數(shù)主函數(shù)局部變量局部變量主函數(shù)主函數(shù)局部變量局部變量Read的局部變量的局部變量返回地址返回地址fdbufbytesSP SP SP 0 0 2.4 2.4 遠程過程調(diào)用遠程過程調(diào)用2.4.1 基本基本RPC操作操作RPC中的調(diào)用與消息中的調(diào)用與消息內(nèi)核內(nèi)核客戶客戶調(diào)用調(diào)用返回返回打包打包參數(shù)參數(shù)拆包拆包結(jié)果結(jié)果 拆包拆包參數(shù)參數(shù)打包打包結(jié)果結(jié)果服務(wù)器服務(wù)器內(nèi)核內(nèi)核調(diào)用調(diào)用返回返回客戶存根客戶存根客戶機客戶機服務(wù)器存根服務(wù)器存根服務(wù)器服務(wù)器消息通過網(wǎng)絡(luò)傳送消息通過網(wǎng)絡(luò)傳送2.4 2.4 遠程過程調(diào)用遠程過程調(diào)用2.4.1 2.4.1 基本基

25、本RPCRPC操作操作 RPC的主要步驟的主要步驟 客戶過程以普通方式調(diào)用相應(yīng)的客戶存根客戶過程以普通方式調(diào)用相應(yīng)的客戶存根; 客戶存根建立消息并激活內(nèi)核陷阱客戶存根建立消息并激活內(nèi)核陷阱; 內(nèi)核將消息發(fā)送給遠程內(nèi)核內(nèi)核將消息發(fā)送給遠程內(nèi)核; 遠程內(nèi)核將消息送到服務(wù)器存根遠程內(nèi)核將消息送到服務(wù)器存根; 服務(wù)器存根取出消息中的參數(shù)后調(diào)用服務(wù)器存根服務(wù)器存根取出消息中的參數(shù)后調(diào)用服務(wù)器存根; 服務(wù)器完成工作后將結(jié)果返回給服務(wù)器存根服務(wù)器完成工作后將結(jié)果返回給服務(wù)器存根; 服務(wù)器存根將它打包并激活內(nèi)核陷阱服務(wù)器存根將它打包并激活內(nèi)核陷阱; 遠程內(nèi)核將消息發(fā)送給客戶內(nèi)核遠程內(nèi)核將消息發(fā)送給客戶內(nèi)核;

26、客戶內(nèi)核將消息交給客戶存根客戶內(nèi)核將消息交給客戶存根; 客戶存根從消息中取出結(jié)果返回給客戶客戶存根從消息中取出結(jié)果返回給客戶.2.4 2.4 遠程過程調(diào)用遠程過程調(diào)用2.4.2 2.4.2 參數(shù)傳遞參數(shù)傳遞 Sum(4,7)遠程計算遠程計算 sum447n=sum(4,7)內(nèi)核內(nèi)核sum7 sum(i,j) int i.j; return(i+j);內(nèi)核內(nèi)核Message存根存根客戶機客戶機服務(wù)器機服務(wù)器機2.4 2.4 遠程過程調(diào)用遠程過程調(diào)用2.4.2 2.4.2 參數(shù)傳遞參數(shù)傳遞 數(shù)字、字符格式不同數(shù)字、字符格式不同 例如:例如:IBM mainframes EBCDIC IBM PC

27、ASCII. 方法:方法: 設(shè)計一個網(wǎng)絡(luò)標準或規(guī)范化的格式設(shè)計一個網(wǎng)絡(luò)標準或規(guī)范化的格式 在其它領(lǐng)域的類似的例子在其它領(lǐng)域的類似的例子 CNMARK XML根據(jù)需要轉(zhuǎn)換(在消息中加入格式信息)根據(jù)需要轉(zhuǎn)換(在消息中加入格式信息)2.4 2.4 遠程過程調(diào)用遠程過程調(diào)用2.4.2 2.4.2 參數(shù)傳遞參數(shù)傳遞 存根從何處來存根從何處來根據(jù)根據(jù)形式說明形式說明和編碼規(guī)則自動生成和編碼規(guī)則自動生成 #include specification of file_server, version 3.1:long read(in char nameMAX_PATH, out char bufBUF_SIZ

28、E,in long bytes, in long position);long write(in char narneMAX_PATH, in char bufBUF_SIZE,in long bytes, in long position);int create(in charMAX_PATH, in int mode);int delete(in charMAX_PATH);end;如何處理指針如何處理指針通常采用復(fù)制通常采用復(fù)制/恢復(fù)機制恢復(fù)機制2.4 2.4 遠程過程調(diào)用遠程過程調(diào)用2.4.3 動態(tài)捆綁動態(tài)捆綁 客戶如何定位服務(wù)器客戶如何定位服務(wù)器服務(wù)器向服務(wù)器向Binder注冊,注冊

29、時需要登記服務(wù)器的名字、版注冊,注冊時需要登記服務(wù)器的名字、版本、句柄、唯一標識,以便客戶進程能尋找到服務(wù)器進程。本、句柄、唯一標識,以便客戶進程能尋找到服務(wù)器進程??蛻魪目蛻魪腂inder獲得服務(wù)器句柄獲得服務(wù)器句柄 和唯一標識??蛻舸娓鶎⒑臀ㄒ粯俗R??蛻舸娓鶎⒕浔鳛榈刂罚蛩l(fā)送消息。句柄作為地址,向它發(fā)送消息。不足之處不足之處: 輸入和輸出接口需要額外的開銷。在大型分布式系統(tǒng)輸入和輸出接口需要額外的開銷。在大型分布式系統(tǒng)中,中,binder會成為系統(tǒng)瓶頸。會成為系統(tǒng)瓶頸。2.4 2.4 遠程過程調(diào)用遠程過程調(diào)用2.4.4 2.4.4 失敗情況下的失敗情況下的RPCRPC語義語義 客戶無

30、法定位服務(wù)器客戶無法定位服務(wù)器原因:服務(wù)器關(guān)閉,客戶存根過時原因:服務(wù)器關(guān)閉,客戶存根過時解決方法解決方法使用全局變量使用全局變量異常處理機制異常處理機制客戶請求消息丟失客戶請求消息丟失解決方法解決方法使用計時器重發(fā)消息。使用計時器重發(fā)消息。2.4 2.4 遠程過程調(diào)用遠程過程調(diào)用2.4.4 2.4.4 失敗情況下的失敗情況下的RPCRPC語義語義 服務(wù)器應(yīng)答消息丟失服務(wù)器應(yīng)答消息丟失無法區(qū)分請求丟失、應(yīng)答丟失、服務(wù)器太慢。無法區(qū)分請求丟失、應(yīng)答丟失、服務(wù)器太慢。解決方法:解決方法:將請求構(gòu)造成冪等的。將請求構(gòu)造成冪等的。客戶內(nèi)核給要發(fā)送的消息分配一個序號。客戶內(nèi)核給要發(fā)送的消息分配一個序號。

31、 2.4 2.4 遠程過程調(diào)用遠程過程調(diào)用2.4.4 2.4.4 失敗情況下的失敗情況下的RPCRPC語義語義 服務(wù)器崩潰服務(wù)器崩潰客戶無法區(qū)分執(zhí)行前或執(zhí)行后崩潰??蛻魺o法區(qū)分執(zhí)行前或執(zhí)行后崩潰。接收接收執(zhí)行執(zhí)行應(yīng)答應(yīng)答REQREP服務(wù)器服務(wù)器接收接收執(zhí)行執(zhí)行REQREP服務(wù)器服務(wù)器crash接收接收REQNOREP服務(wù)器服務(wù)器crash正常狀態(tài)正常狀態(tài)執(zhí)行后崩潰執(zhí)行后崩潰執(zhí)行前崩潰執(zhí)行前崩潰2.4 2.4 遠程過程調(diào)用遠程過程調(diào)用2.4.4 2.4.4 失敗情況下的失敗情況下的RPCRPC語義語義 服務(wù)器崩潰服務(wù)器崩潰解決方法:解決方法:至少一次語義。等待服務(wù)器重新啟動,然后重發(fā)請求。至少一

32、次語義。等待服務(wù)器重新啟動,然后重發(fā)請求。最多一次語義。立即放棄并報告失敗。最多一次語義。立即放棄并報告失敗。不作任何保證。當服務(wù)器崩潰時,客戶得不到任何幫助和保證。不作任何保證。當服務(wù)器崩潰時,客戶得不到任何幫助和保證。精確一次語義。不容易實現(xiàn)。精確一次語義。不容易實現(xiàn)。2.4 2.4 遠程過程調(diào)用遠程過程調(diào)用2.4.4 失敗情況下的失敗情況下的RPCRPC語義語義 客戶機崩潰客戶機崩潰存在孤兒問題存在孤兒問題孤兒:客戶已發(fā)出請求但在應(yīng)答到來之前崩潰了,此時已激活了孤兒:客戶已發(fā)出請求但在應(yīng)答到來之前崩潰了,此時已激活了服務(wù)器中的相應(yīng)計算,但沒有客戶在等待結(jié)果。這樣的計算成為服務(wù)器中的相應(yīng)計

33、算,但沒有客戶在等待結(jié)果。這樣的計算成為孤兒。孤兒。解決方法解決方法根除:客戶存根發(fā)送一個根除:客戶存根發(fā)送一個RPC前在日志文件中記下要執(zhí)行操作的前在日志文件中記下要執(zhí)行操作的信息。當客戶重新啟動后,系統(tǒng)檢查日志文件,并準確清除孤兒。信息。當客戶重新啟動后,系統(tǒng)檢查日志文件,并準確清除孤兒。2.4 2.4 遠程過程調(diào)用遠程過程調(diào)用2.4.4 失敗情況下的失敗情況下的RPCRPC語義語義 客戶機崩潰客戶機崩潰解決方法解決方法再生:將時間劃分成順序編號的紀元。當一客戶重新啟動時,它向再生:將時間劃分成順序編號的紀元。當一客戶重新啟動時,它向所有機器廣播一個新紀元的開始。廣播后,所有遠程計算被終止

34、。所有機器廣播一個新紀元的開始。廣播后,所有遠程計算被終止。溫和再生:當接到客戶開始新紀元的廣播后,每臺機器檢查自己是溫和再生:當接到客戶開始新紀元的廣播后,每臺機器檢查自己是否有遠程計算,若有則試圖去找到該遠程計算的調(diào)用者。若沒有找否有遠程計算,若有則試圖去找到該遠程計算的調(diào)用者。若沒有找到該計算的調(diào)用者,則終止計算。到該計算的調(diào)用者,則終止計算。過期:每一個過期:每一個RPC執(zhí)行時事先分給一個標準時間段執(zhí)行時事先分給一個標準時間段T 。當。當T到期而調(diào)到期而調(diào)用未完成時再申請一個用未完成時再申請一個T。如果客戶崩潰,服務(wù)器在客戶重新啟動前。如果客戶崩潰,服務(wù)器在客戶重新啟動前等候了一個等候

35、了一個T后,所有孤兒都被清除。后,所有孤兒都被清除。2.4 遠程過程調(diào)用遠程過程調(diào)用2.4.5 2.4.5 實現(xiàn)的問題實現(xiàn)的問題 RPC協(xié)議族協(xié)議族任何已經(jīng)存在的能夠?qū)崿F(xiàn)從客戶內(nèi)核到服務(wù)器內(nèi)核之間按任何已經(jīng)存在的能夠?qū)崿F(xiàn)從客戶內(nèi)核到服務(wù)器內(nèi)核之間按位傳送的協(xié)議都可以作為位傳送的協(xié)議都可以作為RPC的協(xié)議。的協(xié)議。如何選擇對性能有很大影響如何選擇對性能有很大影響面向連接還是面向非連接的協(xié)議面向連接還是面向非連接的協(xié)議標準的通用協(xié)議還是專門為標準的通用協(xié)議還是專門為RPC設(shè)計的協(xié)議設(shè)計的協(xié)議信包和報文的長度信包和報文的長度2.4 遠程過程調(diào)用遠程過程調(diào)用2.4.5 實現(xiàn)的問題實現(xiàn)的問題 確認確認停

36、等協(xié)議停等協(xié)議 爆發(fā)協(xié)議爆發(fā)協(xié)議0 1 2 30123ACK 0ACK 1ACK 2ACK 30123ACK 0-3Timeclientserverclientserver4k data2.4 2.4 遠程過程調(diào)用遠程過程調(diào)用2.4.5 實現(xiàn)的問題實現(xiàn)的問題 確認確認如何處理超限錯誤如何處理超限錯誤如果超限錯誤是由于芯片處理中斷而暫時無法接收信包引起的,如果超限錯誤是由于芯片處理中斷而暫時無法接收信包引起的,發(fā)送者可在發(fā)送兩個信包之間加入一段延遲時間。發(fā)送者可在發(fā)送兩個信包之間加入一段延遲時間。如果超限錯誤是由于芯片的緩沖區(qū)不夠而引起的,如果緩沖區(qū)如果超限錯誤是由于芯片的緩沖區(qū)不夠而引起的,如

37、果緩沖區(qū)容量為容量為n個信包,則可在發(fā)送個信包,則可在發(fā)送n個信包后留一個間隙,或是在個信包后留一個間隙,或是在發(fā)出發(fā)出n個信包后,得到一個確認后再發(fā)送后面的包。個信包后,得到一個確認后再發(fā)送后面的包。2.4 2.4 遠程過程調(diào)用遠程過程調(diào)用2.4.5 2.4.5 實現(xiàn)的問題實現(xiàn)的問題 關(guān)鍵路徑關(guān)鍵路徑每個每個RPC執(zhí)行的一系列指令順序稱為關(guān)鍵路徑。執(zhí)行的一系列指令順序稱為關(guān)鍵路徑。調(diào)用存根過程調(diào)用存根過程準備消息緩沖區(qū)準備消息緩沖區(qū)組裝參數(shù)到緩沖區(qū)組裝參數(shù)到緩沖區(qū)填入消息頭信息填入消息頭信息陷阱到內(nèi)核陷阱到內(nèi)核切換到內(nèi)核切換到內(nèi)核將消息拷貝到內(nèi)核將消息拷貝到內(nèi)核確定目的地址確定目的地址將地址

38、放入消息頭將地址放入消息頭啟動網(wǎng)絡(luò)接口啟動網(wǎng)絡(luò)接口開始計時開始計時執(zhí)行服務(wù)執(zhí)行服務(wù)調(diào)用服務(wù)器調(diào)用服務(wù)器啟動棧上的參數(shù)啟動棧上的參數(shù)拆卸成參數(shù)形式拆卸成參數(shù)形式切換到服務(wù)器存根切換到服務(wù)器存根將消息拷貝到服務(wù)器將消息拷貝到服務(wù)器檢查該村更是否在等待檢查該村更是否在等待選定哪一個服務(wù)器存根選定哪一個服務(wù)器存根檢查包的有效性檢查包的有效性處理中斷處理中斷客戶客戶客戶客戶存根存根內(nèi)核內(nèi)核服務(wù)器服務(wù)器服務(wù)器服務(wù)器存根存根內(nèi)核內(nèi)核服務(wù)器機服務(wù)器機客戶機客戶機2.4 2.4 遠程過程調(diào)用遠程過程調(diào)用2.4.5 2.4.5 實現(xiàn)的問題實現(xiàn)的問題 在關(guān)鍵路徑在關(guān)鍵路徑的什么地方的什么地方耗時最多?耗時最多?2.

39、4 2.4 遠程過程調(diào)用遠程過程調(diào)用2.4.5 實現(xiàn)的問題實現(xiàn)的問題 拷貝拷貝八次拷貝八次拷貝 客戶存根客戶存根客戶內(nèi)核緩沖區(qū)客戶內(nèi)核緩沖區(qū)客戶接口芯片緩沖區(qū)客戶接口芯片緩沖區(qū)服務(wù)器接口服務(wù)器接口芯片緩沖區(qū)芯片緩沖區(qū)服務(wù)器內(nèi)核緩沖區(qū)服務(wù)器內(nèi)核緩沖區(qū)服務(wù)器存根服務(wù)器存根如果此調(diào)用含有一個大的值參數(shù)組時,還需另外三步拷貝:如果此調(diào)用含有一個大的值參數(shù)組時,還需另外三步拷貝:v將數(shù)組拷入客戶進程的堆棧以調(diào)用客戶存根。將數(shù)組拷入客戶進程的堆棧以調(diào)用客戶存根。v客戶存根組裝時,將數(shù)組從堆??截惖较⒕彌_區(qū)中??蛻舸娓M裝時,將數(shù)組從堆??截惖较⒕彌_區(qū)中。v服務(wù)器存根將數(shù)組從消息中取出,放入服務(wù)器進程的

40、堆棧中。服務(wù)器存根將數(shù)組從消息中取出,放入服務(wù)器進程的堆棧中。 2.4 2.4 遠程過程調(diào)用遠程過程調(diào)用2.4.5 實現(xiàn)的問題實現(xiàn)的問題 拷貝拷貝分散分散-集中集中(匯集)匯集)具有分散具有分散-集中能力網(wǎng)絡(luò)接口芯片可以減少拷貝次數(shù)。它通過連接集中能力網(wǎng)絡(luò)接口芯片可以減少拷貝次數(shù)。它通過連接兩個或多個內(nèi)存緩沖區(qū)來裝配一個信包。兩個或多個內(nèi)存緩沖區(qū)來裝配一個信包。在發(fā)送端,在發(fā)送端, 由客戶內(nèi)核緩沖區(qū)生成報文消息頭,由客戶存根生成由客戶內(nèi)核緩沖區(qū)生成報文消息頭,由客戶存根生成報文消息體,當發(fā)送時,由網(wǎng)絡(luò)芯片組裝報文。報文消息體,當發(fā)送時,由網(wǎng)絡(luò)芯片組裝報文。接受端將接收來的報文分解成消息體和消息

41、頭,并放入相應(yīng)的緩接受端將接收來的報文分解成消息體和消息頭,并放入相應(yīng)的緩沖區(qū)。沖區(qū)。 2.4 遠程過程調(diào)用遠程過程調(diào)用2.4.5 實現(xiàn)的問題實現(xiàn)的問題 計時管理計時管理使用排序表使用排序表 使用進程表使用進程表 1420014205進程進程 314212進程進程 214216進程進程 00現(xiàn)在時間現(xiàn)在時間142001421601421214205現(xiàn)在時間現(xiàn)在時間進程表進程表01232.5 2.5 組通信組通信2.5.1 2.5.1 組通信的引入組通信的引入 組組及其主要性質(zhì)及其主要性質(zhì)組:組是指在某系統(tǒng)或用戶指定方式下協(xié)同工作的多個進程的集合。組:組是指在某系統(tǒng)或用戶指定方式下協(xié)同工作的多個

42、進程的集合。如如QQ群通信,網(wǎng)絡(luò)游戲同一個房間內(nèi)的玩家,復(fù)制服務(wù)器等。群通信,網(wǎng)絡(luò)游戲同一個房間內(nèi)的玩家,復(fù)制服務(wù)器等。主要性質(zhì):當一條消息發(fā)送到該組后,組內(nèi)的所有成員都能收到該消主要性質(zhì):當一條消息發(fā)送到該組后,組內(nèi)的所有成員都能收到該消息。息。通常情況下,加入和退出是自愿的,一個成員可加入多個組。通常情況下,加入和退出是自愿的,一個成員可加入多個組。三種通信方式:多點傳送、廣播通信和單點傳送。三種通信方式:多點傳送、廣播通信和單點傳送。 SRSRRRRRRRR在分布式系統(tǒng)中為什么進程間在分布式系統(tǒng)中為什么進程間需要通信,你理解了嗎?需要通信,你理解了嗎?2.5 2.5 組通信組通信2.5.

43、2 2.5.2 設(shè)計的問題設(shè)計的問題 封閉組與開放組封閉組與開放組封閉組:只允許組內(nèi)成員給該組發(fā)送消息,組外成員不能封閉組:只允許組內(nèi)成員給該組發(fā)送消息,組外成員不能向作為一個整體的組發(fā)送消息。并行系統(tǒng),如象棋游戲推向作為一個整體的組發(fā)送消息。并行系統(tǒng),如象棋游戲推演。演。開放組:系統(tǒng)內(nèi)任何進程可以給任何組發(fā)送消息,如復(fù)制開放組:系統(tǒng)內(nèi)任何進程可以給任何組發(fā)送消息,如復(fù)制服務(wù)器。服務(wù)器。 不允許不允許進程不是進程不是組的成員組的成員封閉組封閉組允許允許進程不是進程不是組的成員組的成員開放組開放組2.5 2.5 組通信組通信2.5.2 2.5.2 設(shè)計的問題設(shè)計的問題 對等組與分層組對等組與分層

44、組對等組:所有進程地位相同,做決定需組內(nèi)成員表決。對等組:所有進程地位相同,做決定需組內(nèi)成員表決。 分層組:分層組:由協(xié)調(diào)者負責作出決定。由協(xié)調(diào)者負責作出決定。(舉一個日常生活中一個班級假期(舉一個日常生活中一個班級假期安排的例子和一個安排的例子和一個Peer to peer計算可信度的例子)計算可信度的例子) 對等組對等組分層組分層組協(xié)調(diào)者協(xié)調(diào)者工作人員工作人員優(yōu)點:對稱的,沒有單點故障優(yōu)點:對稱的,沒有單點故障缺點:組內(nèi)要做出決定更為復(fù)雜缺點:組內(nèi)要做出決定更為復(fù)雜優(yōu)點:組內(nèi)要做出決定簡單優(yōu)點:組內(nèi)要做出決定簡單缺點:單點故障缺點:單點故障2.5 2.5 組通信組通信2.5.2 2.5.2

45、 設(shè)計的問題設(shè)計的問題 組的成員組的成員組管理:組管理:使用組服務(wù)器使用組服務(wù)器分布式方法管理組內(nèi)成員分布式方法管理組內(nèi)成員兩個帶欺騙性的問題兩個帶欺騙性的問題 區(qū)分組成員自愿離開和崩潰區(qū)分組成員自愿離開和崩潰加入與離開一個組與發(fā)送的消息同步加入與離開一個組與發(fā)送的消息同步2.5 2.5 組通信組通信2.5.2 設(shè)計的問題設(shè)計的問題 組的編址組的編址 給每個組一個唯一的地址,有三種實現(xiàn)方法:給每個組一個唯一的地址,有三種實現(xiàn)方法:進程進程0 0向包括進程向包括進程1 1,3 3,4 4的進程組發(fā)消息的進程組發(fā)消息01234多點傳送多點傳送01234單點傳送單點傳送01234內(nèi)核丟棄消息內(nèi)核丟棄

46、消息廣播傳送廣播傳送這樣做的益處是什么?這樣做的益處是什么?2.5 2.5 組通信組通信2.5.2 2.5.2 設(shè)計的問題設(shè)計的問題 組的編址組的編址 發(fā)送者提供一個所有目的地址的顯示列表發(fā)送者提供一個所有目的地址的顯示列表不透明;一旦組成員改變,用戶進程必須更新器組成員列表。不透明;一旦組成員改變,用戶進程必須更新器組成員列表。判定編址判定編址每條消息包含一個需要計算的判定每條消息包含一個需要計算的判定是一個布爾表達式,涉及到接收者的機器號、它的局部變量或是一個布爾表達式,涉及到接收者的機器號、它的局部變量或其他因素。其他因素。布爾表達式為布爾表達式為TRUE,則消息被接收。如果為,則消息被接收。如果為FALSE,則消息,則消息被丟棄。被丟棄。這樣做的缺點是什么?這樣做的缺點是什么?2.5 2.5 組通信組通信2.5.2 2.5.2 設(shè)計的問題設(shè)計的問題 發(fā)送和接收原語發(fā)送和接收原語如何將點對點通信和組通信融于一個單獨的原語集之中。如何將點對點通信和組通信融于一個單獨的原語集之中。采用單向通信模型采用單向通信模型send和和receive的顯示調(diào)用。系統(tǒng)根據(jù)地的顯示調(diào)用。系統(tǒng)根據(jù)地址址 (進程地址或者組地址)區(qū)分。(進程地址或者組地址)區(qū)分。一些系統(tǒng)引入新的庫例程一些系統(tǒng)引入新的庫例程 group_send group_receive原子

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論