編輯機制
Request For Comments (RFC),是一系列以編號排定的檔案。檔案收集了有關網際網路相關資訊,以及UNIX和網際網路社群的軟體檔案。目前RFC檔案是由Internet Society(ISOC)所贊助發行。
基本的網際網路通訊協定都有在RFC檔案內詳細說明。RFC檔案還在標準內額外加入了許多的論題,例如對於網際網路新開發的協定及發展中所有的記錄。因此幾乎所有的網際網路標準都收錄在RFC檔案之中。
RFC(Request For Comments)-意即“請求協定”,包含了關於Internet的幾乎所有重要的文字資料。如果你想成為網路方面的專家,那么RFC無疑是最重要也是最經常需要用到的資料之一,所以RFC享有網路知識聖經之美譽。通常,當某家機構或團體開發出了一套標準或提出對某種標準的構想,想要徵詢外界的意見時,就會在Internet上發放一份RFC,對這一問題感興趣的人可以閱讀該RFC並提出自己的意見;絕大部分網路標準的指定都是以RFC的形式開始,經過大量的論證和修改過程,由主要的標準化組織所指定的,但在RFC中所收錄的檔案並不都是正在使用或為大家所公認的,也有很大一部分只在某個局部領域被使用或並沒有被採用,一份RFC具體處於什麼狀態都在檔案中作了明確的標識
RFC由一系列草案組成,起始於1969年(第一個RFC文檔發布於1969年4月7日,參見“RFC30年”,RFC2555”),RFC文檔是一系列關於Internet(早期為ARPANET)的技術資料彙編。這些文檔詳細討論了計算機網路的方方面面,重點在網路協定,進程,程式,概念以及一些會議紀要,意見,各種觀點等。
“RFC編輯者”是RFC文檔的出版者,它負責RFC最終文檔的編輯審訂。“RFC編輯者”也保留有RFC的主檔案,稱為RFC索引,用戶可以線上檢索。在RFC近30年的歷史中,“RFC編輯者”一直由約翰·普斯特爾(Jon Postel)來擔任,而現在“RFC編輯者”則由一個工作小組來擔任,這個小組受到“網際網路協會”(Internet Society)的支持和幫助。
RFC編輯者負責RFC以及RFC的整體結構文檔,並維護RFC的索引。Internet協定族的文檔部分(由Internet工程委員會“網際網路工程師任務組”IETF以及IETF 下屬的“網際網路工程師指導組”IESG 定義),也做為RFC文檔出版。因此,RFC在Internet相關標準中有著重要的地位。
RFC編輯者的職責是由Internet 中的大家提議形成的,所出版的語言也就和Internet一樣。IETF和ISOC是代表了世界各地的國際性組織,英語是IETF的第一工作語言,也是IETF的正式出版語言。RFC 2026 "The Internet Standards Process -- Revision 3" 允許RFC翻譯成其他不同的語言。但是不能保證其翻譯版本是完全正確的。因此,RFC編輯不對非英語的版本負責,而只是指明了哪裡有非英語的版本,將這些信息列在WEB頁上。
處理過程
一個RFC檔案在成為官方標準前一般至少要經歷4個階段【RFC2026】:網際網路草案、建議標準、草案標準、網際網路標準。
第一步RFC的出版是作為一個Internet 草案發布,可以閱讀並對其進行注釋。準備一個RFC草案,我們要求作者先閱讀IETF的一個文檔"Considerations for Internet Drafts". 它包括了許多關於RFC以及Internet草案格式的有用信息。作者還應閱讀另外一個相關的文檔RFC 2223 "Instructions to Authors"。
一旦文檔有了一個ID號後,你就可以向rfc-editor @rfc-editor. org傳送e-mail ,說你覺得這個文檔還可以,能夠作為一個有價值或有經驗的RFC文檔。RFC編輯將會向IESG請求查閱該文檔並給其加上評論和注釋。你可以通過RFC佇列來了解你的文檔的進度。一旦你的文檔獲得通過,RFC編輯就會將其編輯並出版。如果該文檔不能出版,則會有email通知作者不能出版的原因。作者有48個小時的時間來校對RFC編輯的意見。我們強烈建議作者要檢測拼寫錯誤和丟字的錯誤,應該確保有引用,聯繫和更新相關的信息。如你的文檔是一個MIB,我們則要你對你的代碼作最後一次檢測。一旦RFC文檔出版,我們就不會對其進行更改,因此你應該對你的文檔仔細的檢查。
有時個別的文檔會被正從事同一個項目的IETF工作組收回,如是這種情況,則該作者會被要求和IETF進行該文檔的開發。在IETF中,Area Directors (ADs) 負責相關的幾個工作組。這些工作者所開發的文檔將由ADs 進行校閱,然後才作為RFC的出版物。
如要獲得關於如何寫RFC文檔和關於RFC的Internet標準制定過程的更多詳細信息,請各位參見:
RFC 2223 "Instructions to RFC Authors"。
RFC 2026 "The Internet Standards Process -- Revision 3"。
實際上,在Internet上,任何一個用戶都可以對Internet某一領域的問題提出自己的解決方案或規範,作為Internet草案(Internet Draffs,ID)提交給Internet工程任務組(IETF)。草案存放在美國、歐洲和亞太地區的工作檔案站點上,供世界多國自願參加的IETF成員進行討論、測試和審查。最後,由Internet工程指導組(IESG)確定該草案是否能成為Internet的標準。
如果一個Internet草案在IETF的相關站點上存在6個月後仍未被IESG建議作為標準發布,則它將被從上述站點中刪除。事實上,在任何時候,一個Internet 草案都有可能被新的草案版本所替換掉,並重新開始6個月的存放期。
如果一個Internet草案被IESG確定為Internet的正式工作檔案,則被提交給Internet體系結構委員會(IAB),並形成具有順序編號的RFC文檔,由Internet協會(ISOC)通過Internet向全世界頒布。每個Internet標準檔案在被批准後都會分配一個獨立於RFC的永久編號,這就是STD編號。有一個不斷被更新的檔案RFC-INDEX.TXT按照RFC的編號來索引所有的檔案,對於網際網路標準檔案還列出了其相應的STD編號。
RFC文檔必須被分配RFC編號後才能在網路上發布。例如,RFC2026的內容是“Internet標準進程-修訂版3”、RFC1543的內容為“RFC作者指導”等等。需要時,可以複製或列印這些在線上文檔。用戶也可以通過遍布全世界的數個在線上資料資料庫中獲得RFC文檔。
作為標準的RFC又分為幾種,第一種是提議性的,就是說建議採用這個作為一個方案擺出來,Draft是已經有一部分在用了,希望被採用為正式的標準,還有一種就是完全被認可的標準,這種是大家都在用,而且是不應該改變的。還有一種就是現在的最佳實踐法,它相當於一種介紹。這些檔案產生的過程是一種從下往上的過程,而不是從上往下,也就是說不是一個由主席,或者由工作組負責人的給一個指令,說是要做什麼,要做什麼,而是有下邊自發的提出,然後在工作組裡邊討論,討論了以後再交給剛才說的工程指導委員會進行審查。但是工程指導委員會只做審查不做修改,修改還是要打回到工作組來做。IETF工作組檔案的產生就是任何人都可以來參加會議,任何人都可以提議,然後他和別人進行討論,大家形成了一個共識就可以產出這樣的檔案。
歷史
RFC檔案格式最初作為ARPA網計畫的基礎起源於1969年。如今,它已經成為IETF、Internet Architecture Board (IAB)還有其他一些主要的公共網路研究社區的正式出版物發布途徑。
最初的RFC作者使用打字機撰寫文檔,並在美國國防部國防前沿研究項目署(ARPA)研究成員之間傳閱。1969年12月,他們開始通過ARPANET途徑來發布新的RFC文檔。第一份RFC文檔由洛杉磯加利福尼亞大學(UCLA)的Steve Crocker撰寫,在1969年4月7日公開發表的RFC 1。當初Crocker為了避免打擾他的室友,是在浴室里完成這篇文檔的。
在1970年代,很多後來的RFC文檔同樣來自UCLA,這不僅得益於UCLA的學術質量,同時也因為UCLA是ARPANET第一批Interface Message Processors (IMPs)成員之一。
由Douglas Engelbart領導的,位於Stanford Research Institute的Augmentation Research Center (ARC)是四個最初的ARPANET結點之一,也是最初的Network Information Centre,同時被社會學家Thierry Bardini記錄為早期大量RFC文檔的發源地。
從1969年到1998年,Jon Postel一直擔任RFC文檔的編輯職務。隨著美國政府贊助契約的到期,Internet Society(代表IETF),和南加州大學(USC)Information Sciences Institute的網路部門合作,(在IAB領導下)負責RFT文檔的起草和發布工作。Jon Postel繼續擔任RFC編輯直到去世。隨後,由Bob Braden接任整個項目的領導職務,同時Joyce Reynolds繼續在團隊中的擔任職務。
慶祝RFC的30周年的RFC檔案是RFC 2555。
檔案架構
RFC檔案只有新增,不會有取消或中途停止發行的情形。但是對於同一主題而言,新的RFC檔案可以聲明取代舊的RFC檔案。RFC檔案是純 ASCII文字檔格式,可由電腦程式自動轉檔成其他檔案格式。RFC檔案有封面、目錄及頁首頁尾和頁碼。RFC的章節是數字標示,但數字的小數點後不補零,例如4.9的順序就在4.10前面,但9的前面並不補零。RFC1000這份檔案就是RFC的指南。
RFC檔案是由Internet Society審核後給定編號並發行。雖然經過審核,但RFC也並非全部嚴肅而生硬的技術檔案,偶有惡搞之作出現,尤其是4月1日愚人節所發行的,例如RFC 1606: A Historical Perspective On The Usage Of IP Version 9 (參見IPv9)、RFC 2324: “超文本咖啡壺控制協定”(Hyper Text Coffee Pot Control Protocol,乍有其事的寫了HTCPCP這樣看起來很專業的術語縮寫字)。以及如前面所提到紀念RFC的30周年慶的RFC檔案。
發展歷程
在Internet從誕生到不斷發展壯大的過程中,出現過各種各樣的協定和思想討論,從最初的NCP協定到現代Internet的基石TCP/IP協定族,無一不閃耀著研究人員的智慧光芒,正是這些成百上千各種協定的發明、討論和完善,才使得人類社會逐步進入到網際網路時代。而這些閃耀著人類智慧結晶的思想成果大都以一種稱為RFC的文檔格式記錄起來。
1969年,S·Crocker首先建立了RFC機制,其目的是建立一種快速共享Internet網路研究思想的方式,最初RFC是以書面形式分發的,後來有了FTP、Email,RFC就以線上電子文本的形式提供,當然現在通過WWW在很多站點可以很方便地訪問RFC文檔。RFC一直以來主要是用於Internet的標準化,RFC是Internet開放性的產物,任何人都可以訪問RFC,Internet這一致力於信息共享的網路首先共享的就是以RFC形式出現的涉及其自身研究、設計和使用的信息。這一獨特的方式對於Internet的發展、完善具有相當關鍵的作用。發展到現在,RFC文檔已不僅僅是關於Internet標準的文檔了,而且也不局限於TCP/IP範圍,它幾乎包含了與計算機通信有關的任何內容,全面反映Internet研究、發展的過程。RFC主要是IAB、IETF、IESG、ISOC的工作成果,主要由IETF起草,由IAB指導下的RFC 編輯(Editor)直接負責RFC的發表。每一個RFC文檔有一個編號,這個編號永不重複,也就是說,由於技術進步等原因,即使是關於同一問題的RFC,也要使用新的編號,而不會使用原來的編號,時至今日[2015/2/2],RFC編號已經排到7443,在查找RFC時,一定要注意最新的RFC。
分類
RFC文檔大致可以分為以下幾類。
1.STD RFC
按照RFC1311的定義,STD RFC是指那些已經或者致力於成為Internet標準的RFC。只有經過完全Internet標準化過程的RFC才可以有STD編號,STD編號是不變的,而其涉及到的 RFC文檔可能不只一個,其RFC編號也會更新。如STD13(Domain Name System)就涉及RFC1 034和RFC1035。STD的標準化過程要經過幾個步驟,首先由IETF起草標準(也可能是其他組織和個人,但一般都是和IETF共同完成的),形成Internet Draft(ID),ID沒有RFC編號。如果ID在6個月內IESG沒有建議成為RFC,則取消此ID。成為RFC後,還要經過一系列的審查、修訂、測試等才能最終成為Internet標準。
2.BCP RFC
由於Internet套用領域廣泛,各種不同的組織有不同的使用目的和使用規則,IETF除了建議STD以外,也有必要對於Internet的使用和管理提供一些一般性的指導,同時也為I ETF、IAB、IESG提供一種渠道,以便推動某一方面的工作,反映其技術趨向,反映這些組織本身的工作進展。於是,1995年以RFC1818定義了BCP,即Best Current Practice。BCP同時有一個BCP編號和一個RFC編號,一旦約定了一個BCP編號,就不會再變,而其RFC編號則可能會經過修訂不斷更新。例如反映Internet標準化工作程式的BCP9的RFC編號就從RFC16 02上升到RFC2026,相應地就廢棄了RFC1602。BCP在發表以前,以電子郵件的形式廣泛徵求IETF的意見,經過IESG的審查,通過後即正式發表。但是BCP本身不是Internet標準。
3.FYI RFC
FYI是For Your Information的簡寫,1990年發表的RFC1150(FYI1)定義了FYI,FYI也同時有一個FYI編號和一個RFC編號,FYI編號是固定的。FYI主要是提供有關Internet的知識性內容。如FYI4(RFC1594),"Answers to Commonly asked New Internet User Quest ions"。所有的FYI在提交到RFC編輯以前,必須先經過IETF的User Services WorkingGro up審查。
4.其他RFC
除了STD、BCP、FYI以外還有其他一些RFC。從RFC899開始,所有以99結尾的RFC都是對此前99個RFC的一個概括。如RFC1999就是對RFC1900到RFC1999的一個簡單概括。除了上述分類以外,還有一些描述RFC的方法。與Internet標準化過程(Internet Standards Process)有關的規範可以分為兩類,即 Technical Specification(TS),Applicability Statement(AS)。TS是對協定、規則、格式、實用程式的描述。AS是描述在何種環境,以及怎樣在Internet中使用TS;AS所涉及的並不一定全是Internet標準,比如IEEE、ITU、ISO組織的一些標準,大家所熟悉的ASCII標準就是一例。AS應該對其涉及的TS規定相應的級別"Requirement Level",這些"Require ment Level"如下: ·Required(Req),相當於必須實現,如IP、ICMP; ·Recommended(Rec),鼓勵使用,如TELNET; ·Elective(Elc),可選擇的; ·Limited Use,只限於特定的用戶,一般說來用於對一些新的協定做試驗; ·Not Recommended,不要使用,很可能是過時的。"Maturity Level"也是用來描述TS和AS的一種方式,它反映這些標準是否成熟。對於致力於成為STD的TS和AS有三種"Maturity Level"。·Proposed Standard,基本成熟,但還需要進一步的試驗證實其可行性。除非是用來驗證該協定的可行性,不要將其視為標準實現。·Draft Standard,需要兩個獨立的,而且具有相互操作性的實例驗證該協定的每一個方面。可以將其視為最終的標準草案; ·Internet Standard,最終的Internet標準,同時賦予一個STD編號。除此之外的TS和AS分為以下幾種"Maturity Level"。·Experimental,一般是反映一些研究和開發的成果,只應將此看作是一般性的信息。·Informational,反映與Internet標準有關的一般性信息。有些也是有關非Intern et組織開發的一些協定,但必須得到協定開發者的許可。·Historic,是一些被新的標準取代或者是已經過時廢棄不用的標準。STD1(RFC2200)——Internet Official Protocol Standards,定期更新,反映最新的 Internet標準。另外,對於關注Internet的人來說,應該經常注意查閱BCP9的最新內容。
文檔閱讀
一是需要確定它是最新的文檔,二是需要注意RFC文檔的類別;
所有的RFC文檔都要經歷評論和反饋過程,並且在這一段時間內它們會被劃分為不同的類別;
RFC文檔一旦被提交,IETF和IAB組織將審查RFC文檔,通過後可以成為一項標準;
RFC文檔按照它發展與成熟的過程可以分為標準、草案標準、提案標準、實驗性的、信息性或歷史性的;
RFC文檔又可以分為被要求、被推薦、被選擇、受限制使用或不被推薦;
RFC文檔是什麼。