RFC简介
原文地址:http://blog.csdn.net/doupei2006/article/details/7252214
1 RFC的簡介
1.1 RFC歷史及概況
RFC文檔也稱請求注解文檔(Requests for Comments,RFC),這是用于發布Internet標準和Internet其他正式出版物的一種網絡文件或工作報告。RFC文檔初創于1969年,RFC出版物由RFC編輯(RFC Editor)直接負責,并接受IAB的一般性指導。現在已經有3000多個RFC系列文件,并且這個數目還在不斷增加, 內容和Internet (開始叫做為ARPANET)相關。草案討論了計算機通訊的方方面面,重點在網絡協議,過程,程序,以及一些會議注解,意見,風格方面的概念。RFC編輯者負責RFCs 以及RFCs的整體結構文檔,并維護RFCs的索引。Internet協議族的文檔部分(由Internet工程委員會IETF以及IETF下屬的管理組IESG 定義),也做為RFC文檔出版。因此,RFC在Internet相關標準中有著重要的地位。
RFC編輯者的職責是由Internet 中的大家提議形成的,所出版的語言也就和Internet一樣。IETF and the ISOC是代表了世界各地的國際性組織,英語是IETF的第一工作語言,也是IETF的正式出版語言。RFC 2026 "The Internet Standards Process -- Revision 3" 允許RFCs翻譯成其他不同的語言。但是不能保證其翻譯版本是否正確。因此,RFC編輯不對非英語的版本負責,而只是指明了哪里有非英語的版本,將這些信息列在WEB頁上。
1.2 RFC處理過程
一個RFC文件在成為官方標準前一般至少要經歷三個階段:建議標準、草案標準、因特網標準。在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/RFCnnnn.TXT通過FTP的方式從ds.internic.net站點獲得RFC,其中“nnnn”指的是RFC的編號。在這里,使用FTP登錄時,所用的用戶名和口令分別為“anonymous”和你的電子郵件地址。此外,用戶還可以通過Internet網絡信息中心(InterNIC)的目錄服務功能、電子郵件、WWW等方式獲得RFC文檔.
????作為標準的RFC又分為幾種,第一種是提議性的,就是說建議采用這個作為一個方案擺出來,Draft是已經有一部分在用了,希望被采用為正式的標準,還有一種就是完全被認可的標準,這種是大家都在用,而且是不應該改變的。還有一種就是現在的最佳實踐法,它相當于一種介紹。這些文件產生的過程是一種從下往上的過程,而不是從上往下,也就是說不是一個由主席,或者由工作組負責人的給一個指令,說是要做什么,要做什么,而是有下邊自發的提出,然后在工作組里邊討論,討論了以后再交給剛才說的工程指導委員會進行審查。但是工程指導委員會只做審查不做修改,修改還是要打回到工作組來做。IETF工作組文件的產生就是任何人都可以來參加會議,任何人都可以提議,然后他和別人進行討論,大家形成了一個共識就可以產出這樣的文件。
2 RFC的內容
2.1 RFC的分類
根據RFC被公布時的狀態可以把RFC索引劃分成幾類:Standards(標準);Draft Standards(草案標準);Proposed Standards(提案標準)。每個分類具體的內容見: www.rfc-editor.org。
2.2 與計算機網絡有關的RFC
2.2.1 應用層協議 FTP (RFC 959)
??文件傳送協議FTP(File Transfer Protocol)是Internet文件傳送的基礎。通過該協議,用戶可以從一個Internet主機向另一個Internet主機拷貝文件。與大多數Internet服務一樣,FTP也是一個客戶機/服務器系統。用戶通過一個支持FTP協議的客戶機程序,連接到在遠程主機上的FTP服務器程序。用戶通過客戶機程序向服務器程序發出命令,服務器程序執行用戶所發出的命令,并將執行的結果返回到客戶機。比如說,用戶發出一條命令,要求服務器向用戶傳送某一個文件的一份拷貝,服務器會響應這條命令,將指定文件送至用戶的機器上。客戶機程序代表用戶接收到這個文件,將其存放在用戶目錄中。
HTTP (RFC 1945)
???HTTP協議(Hypertext Transfer Protocol,中文稱“超文本傳輸協議”)是用來在Internet上傳送超文本的傳送協議。它是運行在TCP/IP協議族之上的HTTP應用協議,它可以使瀏覽器更加高效,使網絡傳輸減少。任何服務器除了包括HTML文件以外,還有一個HTTP駐留程序,用于響應用戶請求。瀏覽器是HTTP客戶,向服務器發送請求,當瀏覽器中輸入了一個開始文件或點擊了一個超級鏈接時,瀏覽器就向服務器發送了HTTP請求,此請求被送往由IP地址指定的URL。駐留程序接收到請求,在進行必要的操作后回送所要求的文件。
SMTP (RFC 821/822)
????SMTP(Simple Mail Transfer Protocol)是一組規則,用于由源地址至目的地址傳送電子郵件。每一個想接收電子郵件的主機都安裝了SMTP服務器。當主機由用戶接收了電子郵件并想傳遞到另外一臺服務器,則它聯絡SMTP服務器。SMTP服務器會作出反應,顯示確認、錯誤消息或特定的請求信息。其中RFC821定義了SMTP標準,RFC822定義了SMTP消息格式。
POP3 (RFC 1081)
??? POP3(Post Office Protocol 3)協議通常被用來接收電子郵件。這個協議很簡單,因為它只包含12個命令。這些命令被客戶端計算機用來發送給遠程服務器。反過來,服務器返回給客戶端計算機兩個回應代碼。
Telnet (RFC854)
????TELNET Protocol的目的是提供一個相對通用的,雙向的,面向八位字節的通信方法。它主要的目標是允許接口終端設備的標準方法和面向終端的相互作用。
2.2.2 傳輸層協議
TCP (RFC 793)
????傳輸控制協議(Transmission Control Protocol)是為了在主機間實現高可靠性的包交換傳輸協議。TCP協議主要在網絡不可靠的時候完成通信。它支持多種網絡應用程序。TCP對下層服務沒有多少要求,它假定下層只能提供不可靠的數據報服務,它可以在多種硬件構成的網絡上運行。TCP可以根據IP協議提供的服務傳送大小不定的數據,IP協議負責對數據進行分段,重組,在多種網絡中傳送,因此TCP協議則提供了一個可靠的、可流控的、全雙工的信息流傳輸服務。
UDP (RFC 786)
????UDP(用戶數據報協議--User Datagram Protocol)是TCP/IP協議集中等同于TCP的通信協議。UDP直接利用IP協議進行UDP數據報的傳輸,因此UDP提供的是無連接、不可靠的數據報投遞服務。UDP常用于數據量較少的數據傳輸,例如:域名系統中域名地址/IP地址的映射請求和應答(Named),Ping 、BOOTP、TFTP等應用。在少量數據的傳輸時,使用UDP協議傳輸信息流,可以減少TCP連接的過程,提高工作效率。當使用UDP協議傳輸信息流時,用戶應用程序必須負責解決數據報排序,差錯確認等問題。
2.2.3 網絡層協議
IP (RFC 791)
????Internet 上使用的一個關鍵的低層協議是網際協議,通常稱IP協議。我們利用一個共同遵守的IP協議,從而使 Internet 成為一個允許連接不同類型的計算機和不同操作系統的網絡。網際協議IP協議提供了能適應各種各樣網絡硬件的靈活性,對底層網絡硬件幾乎沒有任何要求,任何一個網絡只要可以從一個地點向另一個地點傳送二進制數據,就可以使用IP協議加入 Internet 了。IP協議對于網絡通信有著重要的意義:網絡中的計算機通過安裝IP軟件,使許許多多的局域網絡構成了一個龐大而又嚴密的通信系統。從而使 Internet 看起來好像是真實存在的,但實際上它是一種并不存在的虛擬網絡,只不過是利用IP協議把全世界上所有愿意接入 Internet 的計算機局域網絡連接起來,使得它們彼此之間都能夠通信。??????????
ICMP (RFC2236)
????ICMP(Internet Control Message Protocol”,Internet控制消息協議)是TCP/IP協議族的一個子協議,用于在IP主機、路由器之間傳遞控制消息。控制消息是指網絡通不通、主機是否可達、路由是否可用等網絡本身的消息。這些控制消息雖然并不傳輸用戶數據,但是對于用戶數據的傳遞起著重要的作用。
ARP(RFC 826)
在TCP/IP網絡環境下,每個主機都分配了一個32位的IP地址,這種互連網地址是在國際范圍標識主機的一種邏輯地址。為了讓報文在物理網上傳送,必須知道彼此的物理地址。這樣就存在把互連網地址變換為物理地址的地址轉換問題。以以太網(Ethernet)環境為例,為了正確地向目的站傳送報文,必須把目的站的32位IP地址轉換成48位以太網目的地址DA。這就需要在網絡層有一組服務將IP地址轉換為相應物理網絡地址,這組協議即是ARP。
在進行報文發送時,如果源網絡層給的報文只有IP地址,而沒有對應的以太網地址,則網絡層廣播ARP請求以獲取目的站信息,而目的站必須回答該ARP請求。這樣源站點可以收到以太網48位地址,并將地址放入相應的高速緩存(cache)。下一次源站點對同一目的站點的地址轉換可直接引用高速緩存中的地址內容。地址轉換協議ARP使主機可以找出同一物理網絡中任一個物理主機的物理地址,只需給出目的主機的IP地址即可。這樣,網絡的物理編址可以對網絡層服務透明。
RARP(RFC 903)
????RARP(反向地址轉換協議)用于一種特殊情況,如果站點初始化以后,只有自己的物理地址而沒有IP地址,則它可以通過RARP協議,發出廣播請求,征求自己的IP地址,而RARP服務器則負責回答。這樣,無IP地址的站點可以通過RARP協議取得自己的IP地址,這個地址在下一次系統重新開始以前都有效,不用連續廣播請求。RARP廣泛用于獲取無盤工作站的IP地址。
2.2.4鏈路層協議
PPP協議(RFC1661)
PPP協議是一種有效的點一點通信協議,它由串行通信線路上的組幀方式,用于建立、配制、測試和拆除數據鏈路的鏈路控制協議LCP及一組用以支持不同網絡層協議的網絡控制協議NCPs三部分組成。
由于PPP幀中設置了校驗字段,因而PPP在鏈路層上具有差錯檢驗的功能。PPP中的LCP協議提供了通信雙方進行參數協商的手段,并且提供了一組NCPs協議,使得PPP可以支持多種網絡層協議,如IP、IPX、OSI等。另外,支持IP的NCP提供了在建立連接時動態分配IP地址的功能,解決了個人用戶上Internet的問題。
SLIP協議(RFC1055)
SLIP提供在串行通信線路上封裝IP分組的簡單方法,用以使用遠程用戶通過電話線和MODEM能方便地接入TCP/IP網絡。
SLIP是一種簡單的組幀方式,使用時還存在一些問題。首先,SLIP不支持在連接過程中的動態IP地址分配,通信雙方必須事先告知對方IP地址,這給沒有固定IP地址的個人用戶上Internet網帶來了很大的不便:其次,SLIP幀中無協議類型字段,因此它只能支持IP協議;再有,SLIP幀中列校驗字段,因此鏈路層上無法檢測出傳輸差錯,必須由上層實體或具有糾錯能力的MODEM來解決傳輸差錯問題。
3?相關資源
http://www.rfc.net?RFC的官方站點,可以檢查RFC最及時的更新情況
http://www.ietf.org?最重要的Internet組織之一
http://sunsite.dk?RFC查詢非常強大(可以以FTP登錄下載全部RFC文檔)
http://www.iso.ch?ISO-國際標準化組織
http://standards.ieee.org?IEEE-電氣與電子工程師協會
http://web.ansi.org?ANSI-美國國家標準化組織
http://www.itu.int?ITU-國際電信聯盟
總結
- 上一篇: 软件生命周期模型优缺点及适用范围
- 下一篇: STM32通过SD卡IAP