成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

NFS文件系統(tǒng)中的RPC協(xié)議詳解

存儲(chǔ) 數(shù)據(jù)管理
正是由于在RPC數(shù)據(jù)包中包含的這些關(guān)鍵信息,當(dāng)主機(jī)端發(fā)送的消息被服務(wù)端接收后,服務(wù)端根據(jù)這些信息就能知道應(yīng)該調(diào)用哪個(gè)存根函數(shù)。

前文我們介紹了NFS的整體架構(gòu),其核心是將主機(jī)端的函數(shù)調(diào)用通過(guò)網(wǎng)絡(luò)傳輸?shù)椒?wù)端,并轉(zhuǎn)化為服務(wù)端的函數(shù)調(diào)用。其主要實(shí)現(xiàn)是主機(jī)端與服務(wù)端的一一對(duì)應(yīng)的存根。那么這種轉(zhuǎn)化是如何進(jìn)行的呢?這就涉及到RPC協(xié)議了。

在Linux NFS中,將網(wǎng)絡(luò)文件系統(tǒng)分為兩層,其中RPC協(xié)議承載了NFS協(xié)議。由于RPC協(xié)議的存在,是的NFS協(xié)議變得非常簡(jiǎn)單。

圖片圖片

RPC協(xié)議的全稱為Remote Procedure Call,翻譯成中文是遠(yuǎn)程過(guò)程調(diào)用。也就是通過(guò)該協(xié)議,可以實(shí)現(xiàn)一個(gè)遠(yuǎn)程的函數(shù)調(diào)用,這樣在客戶端調(diào)用一個(gè)函數(shù),可以在服務(wù)端完成業(yè)務(wù)處理。而對(duì)于客戶端來(lái)說(shuō)并不關(guān)心該函數(shù)是在客戶端還是服務(wù)端。

這里的函數(shù)是經(jīng)過(guò)特殊方式實(shí)現(xiàn)的,在NFS中稱為存根(stub)。以Linux內(nèi)核中的實(shí)現(xiàn)為例,文件系統(tǒng)的所有操作都對(duì)應(yīng)著一個(gè)存根函數(shù),具體如下所示。

圖片圖片

而客戶端的這些存根函數(shù)在服務(wù)端也是有一一對(duì)應(yīng)的存根函數(shù)的。Linux NFS中服務(wù)端的存根函數(shù)如下所示。

圖片圖片

所以,當(dāng)客戶端文件系統(tǒng)希望完成某一個(gè)文件操作時(shí),比如創(chuàng)建子目錄。那么在文件系統(tǒng)層面可以直接調(diào)用客戶端的存根函數(shù),比如nfs3_proc_mkdir。而該函數(shù)會(huì)將請(qǐng)求封裝后通過(guò)RPC發(fā)送到服務(wù)端,服務(wù)端的程序會(huì)根據(jù)解析后的消息調(diào)用服務(wù)端對(duì)應(yīng)的存根函數(shù)完成客戶端期望的操作,然后給客戶端反饋。

那么這個(gè)流程是如何實(shí)現(xiàn)的呢?這就涉及到RPC協(xié)議的內(nèi)容了。RPC的原理其實(shí)非常簡(jiǎn)單,如下是RPC數(shù)據(jù)包的格式,可以看出該格式中包含很多字段。這些字段就是用來(lái)描述存根函數(shù)的。

圖片圖片

Sun的RPC協(xié)議在設(shè)計(jì)的時(shí)候期望實(shí)現(xiàn)對(duì)多種服務(wù)的支持,比如NFS協(xié)議、掛載協(xié)議和NLM等。因此在設(shè)計(jì)RPC協(xié)議的時(shí)候,RPC有3個(gè)相關(guān)的字段來(lái)進(jìn)行標(biāo)識(shí),其中Program字段標(biāo)識(shí)程序,區(qū)分NFS、MOUNT和NLM等其它程序類型;Program Version字段標(biāo)識(shí)程序版本,考慮升級(jí)的兼容性;Procedure字段則標(biāo)識(shí)程序中的過(guò)程(函數(shù)),也就是存根函數(shù)。

通過(guò)上述Program和Procedure等關(guān)鍵信息,當(dāng)服務(wù)端收到該消息時(shí)就可以知道應(yīng)該由哪個(gè)版本的哪個(gè)程序來(lái)處理該消息,而且進(jìn)一步知道應(yīng)該調(diào)用哪個(gè)存根函數(shù)(函數(shù)指針)來(lái)進(jìn)行處理。

上面的介紹更多的是理論層面的,我們通過(guò)WireShark抓個(gè)包看看Sun RPC是如何傳輸數(shù)據(jù)的,以及數(shù)據(jù)的格式。如圖5?8所示是我們抓取的掛載命令的數(shù)據(jù)包,我們可以對(duì)比一下該數(shù)據(jù)包的內(nèi)容與協(xié)議的關(guān)系。

圖片圖片

可以看到,這里Program是100005;Program版本是3,也就是NFS v3的數(shù)據(jù);Procedure的值為1。由于WireShark是支持RPC和NFS協(xié)議的,因此在圖5?8中上半部分可以看到具體的描述信息。在該圖的下半部分則是原始的數(shù)據(jù)包數(shù)據(jù)。

正是由于在RPC數(shù)據(jù)包中包含的這些關(guān)鍵信息,當(dāng)主機(jī)端發(fā)送的消息被服務(wù)端接收后,服務(wù)端根據(jù)這些信息就能知道應(yīng)該調(diào)用哪個(gè)存根函數(shù)。


責(zé)任編輯:武曉燕 來(lái)源: 數(shù)據(jù)存儲(chǔ)張
相關(guān)推薦

2010-07-27 10:15:38

NFS網(wǎng)絡(luò)文件系統(tǒng)

2010-08-04 17:18:09

nfs文件系統(tǒng)

2010-08-06 12:42:23

NFS網(wǎng)絡(luò)文件系統(tǒng)

2019-05-22 09:00:16

Linux虛擬文件系統(tǒng)

2019-05-29 16:33:32

Linux虛擬系統(tǒng)

2011-08-01 16:42:24

ibmdwNFS文件系統(tǒng)

2010-08-03 11:32:30

NFS網(wǎng)絡(luò)文件系統(tǒng)

2010-08-05 11:03:55

創(chuàng)建分區(qū)文件系統(tǒng)

2009-11-25 17:48:18

PHP文件系統(tǒng)相關(guān)函數(shù)

2009-11-26 11:31:34

NFS網(wǎng)絡(luò)文件系統(tǒng)設(shè)定

2023-08-08 09:52:13

系統(tǒng)端架構(gòu)NFS

2009-12-10 14:27:07

Linux操作系統(tǒng)

2010-08-04 15:55:09

NFS文件系統(tǒng)

2010-06-04 18:45:43

Hadoop分布式文件

2017-03-30 10:13:11

Linux內(nèi)核文件系統(tǒng)

2009-12-25 08:50:46

NFS系統(tǒng)服務(wù)

2020-07-22 14:53:06

Linux系統(tǒng)虛擬文件

2019-09-18 10:22:13

操作系統(tǒng)LinuxCentOSMac

2009-09-22 11:59:19

2010-08-05 11:32:07

NFS協(xié)議
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 国产精品精品 | 国产在线精品一区二区 | 欧美日日 | 亚洲视频一区在线观看 | 青草青草久热精品视频在线观看 | 欧美久久一区二区 | 激情久久网 | 亚洲一区二区视频在线播放 | 亚洲成人一区二区三区 | 91不卡在线 | 亚洲欧美在线一区 | 日韩二三区| 911精品国产| 在线观看国产 | 成人午夜激情 | 天天爱天天操 | 一区 | 欧美午夜精品久久久久久浪潮 | 国产国产精品久久久久 | 丁香色婷婷| 91精品国产欧美一区二区成人 | 亚洲精品一二三区 | 国产又色又爽又黄又免费 | 国产精品久久久久久久久免费丝袜 | 日韩福利一区 | 99国产精品99久久久久久 | 在线观看一区 | 草草影院ccyy| 国产精品毛片一区二区三区 | 亚洲欧洲一区二区 | 午夜精品久久 | 国产精品成av人在线视午夜片 | 免费看片国产 | 久在线 | 亚洲免费网址 | a久久| 中文字幕电影在线观看 | 久久精品亚洲精品国产欧美kt∨ | 韩国理论电影在线 | 国产中文原创 | 91爱啪啪 |