RFC雙語計劃:rfc1094中文版(中英文對照)............RFC1094 網絡文件系統協議

RFC雙語計劃:rfc1094中文版(中英文對照)............RFC1094 網絡文件系統協議
http://kummerwu.web.officelive.com/Documents/rfc1094-0.html

更多RFC中文版,中英文對照版,請查閱http://kummerwu.web.officelive.com/Documents/index.html

這兒目前收錄來OSPF,BGP,RIP,MPLS(VPN)、HTTP,Telnet,RSVP,PPP,POP3,RTP,NAT,FTP等最新RFC中文版和中英文對照版。而且內容還在不斷更新中......
------------------------------------------------------------------------

RFC1094 網絡文件系統協議
本備忘錄狀態
1. 簡介
Sun的網絡文件系統(NFS)協議提供了對網絡中的共享文件進行透明的遠程訪問。NFS協議被設計爲適合於不同的機器,操作系統,網絡體系和傳輸協議。這種廣泛的適應性是通過使用建立在外部數據描述(XDR)之上的遠程過程調用(RPC)原語得到的。此協議的實現已經存在於從個人電腦到超級電腦等不同種類的機器之上,。
對安裝協議的支持允許服務器分發遠程訪問優先級給一個受限制的客戶集。它執行了操作系統特定的功能,以允許把遠程目錄樹鏈接在本地的文件系統上。
1.1  遠程過程調用
Sun的遠程過程調用規範提供了一個面向過程的遠程服務的接口。.每一個服務器都提供了一個包含着一組過程的“程序”。NFS就是一種這樣的程序。主機地址,程序號和過程號的組合指定了一個遠程過程。NFS的一個目標就是不需要它的下層提供任何特定級別的可靠性。所以,它潛在地可以被使用在許多下層的傳輸層協議之上,甚至在另一個遠程過程調用實現之上。爲了便於討論,本文檔的剩餘部分假定NFS實現在Sun的RPC上層。
1.2  外部數據描述
外部數據描述(XDR)標準提供了一個在網絡上描述數據類型的公用方法。
NFS協議規範就是使用RPC數據描述語言撰寫的。要想獲得更多的信息,請參見RFC 1014 “XDR:外部數據描述標準”。儘管存在自動化的RPC/XDR編譯器可以產生服務器和客戶端的“樁”(stubs)。NFS也不需要使用它們。任何提供相同功能的軟件都可以使用,如果編碼完全相同的話,它也可以與其它的NFS實現進行互操作。
1.3 無狀態服務器
NFS協議被希望儘可能無狀態。也就是說,服務器應該不必保持關於它的客戶端的任何協議狀態信息,這是爲了功能正確。在失敗的事件發生的時候,無狀態服務器比有狀態服務器有着明顯的優點。在無狀態服務器中,客戶端僅僅需要重發請求直到服務器響應;客戶端甚至不需要知道服務器已經崩潰或者是網絡臨時故障。而有狀態服務器的客戶端要麼需要檢測服務器失敗,並且在服務器恢復的時候重建服務器狀態,要麼使客戶端操作失敗。
這可能聽起來不象是一個重要的問題,但是它在一些意想不到的情況下影響着協議。我們認爲只要能寫一個非常簡易的服務器,不需要在崩潰後花費昂貴的代價恢復,即使在協議中多一些額外的複雜性也是值得的。注意:即使使用號稱“可靠”的傳輸協議TCP的時候,客戶端也必須能夠處理當它們超時的時候再次打開連接所產生的服務的中斷。因此,無狀態協議實際上可以使這個實現簡化。
另一方面,NFS處理文件、目錄這樣本身就有狀態的對象。如果文件不保持它的內容沒被接觸過會有什麼好處呢?這樣做的目的就是在協議本身不引入任何額外的狀態。固有的狀態操作,諸如文件或者記錄鎖定和遠程執行都作爲分開的服務實現,在此不討論。
簡化恢復的基本方法就是儘可能的採取“冪等”操作(爲了它們有被重複的潛力)。這個協議版本中的一些操作並不能達到這個目的;幸運的是,大多數操作(例如Read 和Write)是冪等的。而且,多數服務器失敗發生在操作之間,而不是發生在收到操作和響應之間。最後,儘管實際上服務器的失敗可能很少,但是在複雜的網絡中,任何網絡,路由器或者網橋的失敗與服務器的失敗都是很難區分的。
2. NFS 協議定義
服務器隨着時間改變,服務器使用的協議也一樣。RPC對每一個RPC請求都提供了一個版本號。RFC已經定義了NFS協議的兩個版本。即使在第二版中,也有少部分過時的過程和參數,這將在以後的版本中被刪除。NFS協議第三版的RPC當前正在準備之中。(譯者注:這是相對此RFC文檔發佈的時間來講的,此文檔發表於1989,3)
2.1 文件系統模型
NFS假定文件系統是分層次的,除了最底層是文件,其它層次都是目錄。在目錄中的每一個條目(文件,目錄,設備等)都有一個字符串名。不同的操作系統可能在目錄樹的深度或者使用的名字上有所限制,就象用不同的語義來描述“路徑名”,它是在名字中把所有組成部分(目錄和文件名)串聯起來。一個“文件系統”就是在一個單一的服務器上(通常是一個磁盤或者物理分區)有一個指定的“根”的樹。一些操作系統提供了“安裝”操作使所有的文件系統出現在一棵單一的樹上。而其它的操作系統保持着一個文件系統“森林”。文件是由無解釋字節組成的無結構流。第三版的NFS使用更普遍的文件系統模型。
NFS一次只查詢路徑名中的一個組成部分。爲什麼不一次就得到整個路徑名,返回一個文件句柄呢?這裏有一些不這樣做的原因。首先,路徑名需要在路徑的組成部分之間有分隔符。不同的操作系統使用不同的分隔符。我們可以定義一種網絡上標準的路徑表示法,但是每一個路徑名在每一個終點上將必須進行語法分析和轉換。其它的問題在第三節(NFS實現中的問題)裏討論。
儘管文件和目錄在許多方面是相似的對象,但是讀目錄和讀文件也需要不同的過程。這裏提供了描述目錄的網絡標準格式。使用象上面相同的參數來確定一個過程,此過程在每次調用的時候只返回一個目錄項。這種方法產生的問題就是效率不高。目錄包含着許多目錄項,遠程調用要返回每一項將是非常緩慢的。
2.2   服務器過程
這個協議被定義爲一組過程,這組過程具有用RPC語言(XDR語言在程序,版本,過程聲明方面的擴展)定義的參數和結果。每一個過程功能的簡要描述都應該提供足夠允許實現的信息。2.3節詳細地描述了基本數據類型。
在NFS協議中的所有過程都假定是同步的。當一個過程返回給客戶端,客戶可以假定此操作已經完成,與請求相關的任何數據現在在一個穩定的存儲上。例如,客戶端的WRITE請求可能導致服務器更新數據塊,文件系統信息塊(比如間接塊),和文件屬性信息(大小和修改時間)。當WRITE返回給客戶端,客戶端假定這個寫操作是可靠的。甚至在服務器崩潰的情況下,它也能丟棄這些已經寫的數據。這就是服務器無狀態的一個非常重要的部分。 如果服務器等待來自遠程請求的刷新數據,客戶端必須保存這些請求, 以便在服務器崩潰的情況下再次發送這些請求。
2.2.1   不做工作
void           NFSPROC_NULL(void) = 0;
這個過程不做工作,在所有RPC服務中它可以用來允許服務器響應測試和定時。
2.2.2   獲得文件屬性
attrstat         NFSPROC_GETATTR (fhandle) = 1;
如果響應狀態是 NFS_OK,那麼響應屬性包含由輸入fhandle指定的文件的屬性。
2.2.3.  設置文件屬性
struct sattrargs {
fhandle file;
sattr attributes;
};
attrstat    NFSPROC_SETATTR (sattrargs) = 2;
"attributes"值參數包含着一些字段,這些字段要麼是 –1,要麼是 “file”的文件屬性的一個新值。如果響應狀態是NFS_OK,那麼響應屬性在"SETATTR"操作完成之後具有文件的屬性。
注意: -1指示在 “attributes”中一個沒有使用的字段,在協議的下一版本將修改。
2.2.4   獲得文件系統的根
void       NFSPROC_ROOT(void) = 3;
已經過時。這個過程不再使用,因爲找到一個文件系統的根文件句柄需要在客戶端和服務器之間移動路徑名。爲了正確的做到這一點,我們必須定義一個路徑名網絡標準描述。查詢根文件句柄已經由MNTPROC_MNT過程來實現。(詳細情況請參見附錄A,“安裝協議定義”)
2.2.5.  查詢文件名
diropres      NFSPROC_LOOKUP(diropargs) = 4;
如果響應"status"是NFS_OK,響應 “file”和響應 “attributes”是參數 “dir”給定的目錄中的文件名的文件句柄和屬性。
2.2.6  從符號鏈接讀
union readlinkres switch (stat status) {
case NFS_OK:
path data;
default:
void;
};
readlinkres       NFSPROC_READLINK(fhandle) = 5;
如果”status”的值是NFS_OK,響應 “data”是fhandle參數引用的文件的符號鏈接中的數據。
注意:因爲NFS總是在客戶端解析路徑名,如果在不同的客戶端或者服務器上使用不同的語義,那麼在一個符號鏈接中的路徑名可能有不同的含義(或者無意義)。
2.2.7  從文件中讀
struct readargs {
fhandl
------------------------------------------------------------------------
。。。。。。。。
完整內容參見 http://kummerwu.web.officelive.com/Documents/rfc1094-0.html
更多RFC中文版,中英文對照版,請查閱http://kummerwu.web.officelive.com/Documents/index.html

這兒目前收錄來OSPF,BGP,RIP,MPLS(VPN)、HTTP,Telnet,RSVP,PPP,POP3,RTP,NAT,FTP等最新RFC中文版和中英文對照版。而且內容還在不斷更新中......

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章