RFC简介

2024-03-13 05:58
文章标签 简介 rfc

本文主要是介绍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-国际电信联盟

这篇关于RFC简介的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/803843

相关文章

ASIO网络调试助手之一:简介

多年前,写过几篇《Boost.Asio C++网络编程》的学习文章,一直没机会实践。最近项目中用到了Asio,于是抽空写了个网络调试助手。 开发环境: Win10 Qt5.12.6 + Asio(standalone) + spdlog 支持协议: UDP + TCP Client + TCP Server 独立的Asio(http://www.think-async.com)只包含了头文件,不依

业务协同平台--简介

一、使用场景         1.多个系统统一在业务协同平台定义协同策略,由业务协同平台代替人工完成一系列的单据录入         2.同时业务协同平台将执行任务推送给pda、pad等执行终端,通知各人员、设备进行作业执行         3.作业过程中,可设置完成时间预警、作业节点通知,时刻了解作业进程         4.做完再给你做过程分析,给出优化建议         就问你这一套下

容器编排平台Kubernetes简介

目录 什么是K8s 为什么需要K8s 什么是容器(Contianer) K8s能做什么? K8s的架构原理  控制平面(Control plane)         kube-apiserver         etcd         kube-scheduler         kube-controller-manager         cloud-controlle

【Tools】AutoML简介

摇来摇去摇碎点点的金黄 伸手牵来一片梦的霞光 南方的小巷推开多情的门窗 年轻和我们歌唱 摇来摇去摇着温柔的阳光 轻轻托起一件梦的衣裳 古老的都市每天都改变模样                      🎵 方芳《摇太阳》 AutoML(自动机器学习)是一种使用机器学习技术来自动化机器学习任务的方法。在大模型中的AutoML是指在大型数据集上使用自动化机器学习技术进行模型训练和优化。

SaaS、PaaS、IaaS简介

云计算、云服务、云平台……现在“云”已成了一个家喻户晓的概念,但PaaS, IaaS 和SaaS的区别估计还没有那么多的人分得清,下面就分别向大家普及一下它们的基本概念: SaaS 软件即服务 SaaS是Software-as-a-Service的简称,意思是软件即服务。随着互联网技术的发展和应用软件的成熟, 在21世纪开始兴起的一种完全创新的软件应用模式。 它是一种通过Internet提供

LIBSVM简介

LIBSVM简介 支持向量机所涉及到的数学知识对一般的化学研究者来说是比较难的,自己编程实现该算法难度就更大了。但是现在的网络资源非常发达,而且国际上的科学研究者把他们的研究成果已经放在网络上,免费提供给用于研究目的,这样方便大多数的研究者,不必要花费大量的时间理解SVM算法的深奥数学原理和计算机程序设计。目前有关SVM计算的相关软件有很多,如LIBSVM、mySVM、SVMLight等,这些

urllib与requests爬虫简介

urllib与requests爬虫简介 – 潘登同学的爬虫笔记 文章目录 urllib与requests爬虫简介 -- 潘登同学的爬虫笔记第一个爬虫程序 urllib的基本使用Request对象的使用urllib发送get请求实战-喜马拉雅网站 urllib发送post请求 动态页面获取数据请求 SSL证书验证伪装自己的爬虫-请求头 urllib的底层原理伪装自己的爬虫-设置代理爬虫coo

新一代车载(E/E)架构下的中央计算载体---HPC软件架构简介

老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 屏蔽力是信息过载时代一个人的特殊竞争力,任何消耗你的人和事,多看一眼都是你的不对。非必要不费力证明自己,无利益不试图说服别人,是精神上的节能减排。 无人问津也好,技不如人也罢,你都要试着安静下来,去做自己该做的事.而不是让内心的烦躁、焦虑、毁掉你本就不多的热情和定力。 时间不知不觉中,快要来到夏末秋初。一年又过去了一大半,成

AI学习指南深度学习篇-带动量的随机梯度下降法简介

AI学习指南深度学习篇 - 带动量的随机梯度下降法简介 引言 在深度学习的广阔领域中,优化算法扮演着至关重要的角色。它们不仅决定了模型训练的效率,还直接影响到模型的最终表现之一。随着神经网络模型的不断深化和复杂化,传统的优化算法在许多领域逐渐暴露出其不足之处。带动量的随机梯度下降法(Momentum SGD)应运而生,并被广泛应用于各类深度学习模型中。 在本篇文章中,我们将深入探讨带动量的随

OpenGL ES学习总结:基础知识简介

什么是OpenGL ES? OpenGL ES (为OpenGL for Embedded System的缩写) 为适用于嵌入式系统的一个免费二维和三维图形库。 为桌面版本OpenGL 的一个子集。 OpenGL ES管道(Pipeline) OpenGL ES 1.x 的工序是固定的,称为Fix-Function Pipeline,可以想象一个带有很多控制开关的机器,尽管加工