編輯機制
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標準制定過程的更多詳細信息,請參見:
1、RFC 2223 "Instructions to RFC Authors"。
2、RFC 2026 "The Internet Standards Process -- Revision 3"。
實際上,在Internet上,任何一個用戶都可以對Internet某一領域的問題提出自己的解決方案或規範,作為Internet草案(Internet Drafts,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領導下)負責RFC文檔的起草和發布工作。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。
特點
Internet的所有標準都是以請求評論文檔( Request For Comment,RFC)的形發布的,
TCP/IP協定也不例外。首先由ITF討論後對協定進行標準化,然後把備標準化的協定轉變成RFC在 Internet上公布。另外,RFC不僅包含RFC性能格書,還包括與實際安裝和套用有關的信息,以及與協定的試驗有關的信息。
人們對RFC進行編號,例如把確定IP
性能指標的協定編號為RFC791,把確定
TCP性能指標的協定編號為RFC793。RFC是按照協定制定的順序進行編號的且一旦成為RFC,就不容許再做任何修改。如果需要擴展協定的性能,則必須便新的編號來定義該協定的擴展部分。當一個協定的性能指標發生變化時,要發行的RFC,同時廢除舊的RFC。在新的RFC中,標明了該協定是從哪一個協定擴來的,以及哪個協定被廢除了。
使用
Internet所有
技術標準都是以RFC檔案形式公布的,但這不是所有的RFC檔案。RFC還包括政策研究報告,技術部門的
工作總結,研討會的成果綜述和網路使用指南等。每一份RFC檔案都有一個唯一的編號,當某一檔案產生了更新版本時,就為新的版本指派新的RFC編號。任何用戶都可通過E-mai向RFC編委會投寄文稿申請作為RFC檔案發表。全套RFC檔案由
DDN NIC的 SRI Internet負責維護。以RFC檔案公布的
網路協定又可用以下方式進行分級:
1、依據是否標準化:標準協定;
標準草案;建議標準;試行標準;歷史標準。
2、依據是否必須採納:必須採納;推薦採納;選擇採納;不推薦採納。
(1)必須採納的標準協定是聯網的任何一台主機所必須遵循的(如RFC-791)。
(2)推薦採納的標準則是聯網主機應該實現的,缺少時雖仍然
能聯網,但可能運行不正常
(3)選擇採納的建議標準則是還在小範圍試用的網路協定。
分類
RFC文檔大致可以分為以下幾類。
STD RFC
按照RFC1311的定義,STD RFC是指那些已經或者致力於成為Internet標準的RFC。只有經過完全Internet標準化過程的RFC才可以有STD編號,STD編號是不變的,而其涉及到的 RFC文檔可能不只一個,其RFC編號也會更新。如STD13(
Domain Name System)就涉及RFC1034和RFC1035。STD的標準化過程要經過幾個步驟,首先由IETF起草標準(也可能是其他組織和個人,但一般都是和IETF共同完成的),形成Internet Draft(ID),ID沒有RFC編號。如果ID在6個月內IESG沒有建議成為RFC,則取消此ID。成為RFC後,還要經過一系列的審查、修訂、測試等才能最終成為Internet標準。
BCP RFC
由於Internet
套用領域廣泛,各種不同的組織有不同的使用目的和使用規則,IETF除了建議STD以外,也有必要對於Internet的使用和管理提供一些
一般性的指導,同時也為IETF、IAB、IESG提供一種渠道,以便推動某一方面的工作,反映其技術趨向,反映這些組織本身的工作進展。於是,1995年以RFC1818定義了BCP,即Best Current Practice。BCP同時有一個BCP編號和一個RFC編號,一旦約定了一個BCP編號,就不會再變,而其RFC編號則可能會經過修訂不斷更新。例如反映Internet
標準化工作程式的BCP9的RFC編號就從RFC1602上升到RFC2026,相應地就廢棄了RFC1602。BCP在發表以前,以
電子郵件的形式廣泛徵求IETF的意見,經過IESG的審查,通過後即正式發表。但是BCP本身不是Internet標準。
FYI RFC
FYI是For Your Information的簡寫,1990年發表的RFC1150(FYI1)定義了FYI,FYI也同時有一個FYI編號和一個RFC編號,FYI編號是固定的。FYI主要是提供有關Internet的知識性內容。所有的FYI在提交到RFC編輯以前,必須先經過IETF的User Services WorkingGro up審查。
其他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的最新內容。
注意事項
1、一是需要確定它是最新的文檔,二是需要注意RFC文檔的類別;
2、所有的RFC文檔都要經歷評論和反饋過程,並且在這一段時間內它們會被劃分為不同的類別;
3、RFC文檔一旦被提交,IETF和IAB組織將審查RFC文檔,通過後可以成為一項標準;
4、RFC文檔按照它發展與成熟的過程可以分為標準、草案標準、提案標準、實驗性的、信息性或歷史性的;
5、RFC文檔又可以分為被要求、被推薦、被選擇、受
限制使用或不被推薦。