组织:中国互动出版网(/)
RFC文档中文翻译计划(/compters/emook/aboutemook.htm)
E-mail:
译者:龙天泳(longty2000 )
译文发布时间:2001-4-10
版权:本中文翻译文档版权归中国互动出版网所有。可以用于非商业用途自由转载,但必须保留本文档的翻译及版权信息。
Network Working Group W. Simpson, Editor
Request for Comments: 1661 Daydreamer
STD: 51 July 1994
Obsoletes: 1548
Category: Standards Track
RFC1661 PPP协议
中郎将相当于现在什么职务
(RFC1661 The Point-to-Point Protocol (PPP))
本备忘录状态腐生葡萄球菌
建筑工程技术实习报告>目标利润This memo provides information for the Internet community. It does
not specify an Internet standard of any kind. Distribution of this
memo is unlimited.
摘要
PPP为基于点对点连接的多协议自寻址数据包的传输提供了一个标准方法。PPP包含以下三个成分:
1. 压缩多协议自寻址数据包的方法。
2. 用于建立、设定和测试数据链路连接的LCP。
3. 一族用于建立、设定不同网络层协议的NCP。
本文档定义了PPP的组织和方法,以及PPP封装,与之一起定义的还有:扩展选项协商机制,他使得(人们)可以就丰富的设定参数进行磋商,同时还提供额外的管理功能。PPP链路控制协议(LCP)九是用这种机制描述的。
目录
1 介绍 3
1-1 要求说明书 4
1-2 术语 4
2 PPP封装 5
3 PPP链路操作 6
3-1 概述 6
3-2 阶段划分框图 6
3-3 链路死亡(物理连接不存在) 6
3-4 链路建立阶段 7
3-5 认证阶段 7
3-6 网络层协议阶段 7
3-7 链路终止阶段 8
4 自动机协商选项 8
4-1 状态迁移图 9
4-2 状态 10
4-3 事件 12
4-4 动作 14
4-5 环躲避(循环避免) 15
4-6 计数器和定时器 16
5 LCP包格式 16
5-1. Configure-Request 18
5-2. Configure-Ack 18
5-3. Configure-Nak 19
5-4. Configure-Reject 20
5-5. Terminate-Request and Terminate-Ack 20
5-6. Code-Reject 21
5-7. Protocol-Reject 22
过生日发朋友圈的句子5-8. Echo-Request and Echo-Reply 22
5-9. Discard-Request 23
6. LCP配置选项 24
6-1. Maximum-Receive-Unit (MRU) 25
6-2. Authentication-Protocol 25
6-3. Quality-Protocol 26
6-4. Magic-Number 27
物流规划安全考虑 30
参考资料 30
致谢 31
主席地址 31
作者地址 32
1 介绍
PPP是为在同等单元之间传输数据包这样的简单的链路而设计的。这种链路提供全双工操作,并按
沽源坝上草原
照顺序传递数据包。(人们)有意让PPP为基于各种主机、网桥和路由器的简单连接提供一种共通的解决方案。
封装:
PPP封装提供了不同网络层协议同时通过统一链路的多路技术。(人们)精心的设计PPP封装,使其保有对常
用支持硬件的兼容性。
当使用默认的类HDLC帧(HDLC-like framing)时,仅需要8个额外的字节,就可以形成封装。在带宽需要付费时,封装和帧可以减少到2或4个字节。
为了支持高速的执行,默认的封装只使用简单的字段,多路分解只需要对其中的一个字段进行检验。默认的头和信息字段落在32-bit边界上,尾字节可以被填补到任意的边界。
链路控制协议(LCP):
为了在一个很宽广的环境内能足够方便的使用,PPP提供了LCP。LCP用于就封装格式选项自动的达成一致,处理数据包大小的变化,探测looped-back链路和其他普通的配置错误,以及终止链路。提供的其他可选设备有:对链路中同等单元标识的认证,和当链路功能正常或链路失败时的决定。
网络控制协议:
点对点连接可能和当前的一族网络协议产生许多问题。例如,基于电路交换的点对点连接(比如拨号模式服务),分配和管理IP地址,即使在LAN环境中,也非常困难。这些问题由一族网络控制协议(NCP)来处理,每一个协议管理着各自的网络层协议的特殊需求。
配置:
(人们)有意使PPP链路很容易配置。通过设计,标准的默认值处理全部的配置。执行者可以对默认配置进行改进,它被自动的通知给其同等单元而无需操作员的干涉。最终,操作员可以明确的为链路设定选项,以便其正常工作。
1-1 要求说明书
在本文档中,用以下几个词来表示说明书的要求,这些词一般以大写字体书写。
MUST--要求;MUST NOT--禁止;SHOULD--推荐;MAY--可选。
1-2 术语
本文档中,频繁使用以下术语:
datagram -- 在网络层中的传输单元(例如IP)。一个datagram可能被压缩成一个或几个packets,在数据链路层中传输。
frame -- 在数据链路层中的传输单元。 一个frame包括一个头和/或尾字节,后面跟有几个单元的数据。
packet -- 封装的基本单元,它穿越网络层和数据链路层的分解面。通常一个packet映射成一个frame,但也有例外:即当数据链路层执行拆分或将几个packet合成一个frame的时候。
peer -- 点对点链路的另一端。
印堂凹陷 silently discard
-- 丢弃packet而不进行进一步的处理。执行(这个动作)应该提供记录错误,包括丢弃packet的内容,的容量,并且应该在一个统计计数器中记录这一事件。
2 PPP封装
PPP封装用于消除多协议datagrams的歧义。封装需要帧同步以确定封装的开始和结束。提供帧同步的方法在参考文档中。
PPP封装的概要如下所示。字段的传输从左到右。
协议字段:
协议字段由一个或两个字节组成。它的值标
识着压缩在packet的信息字段里的datagram。字段中最有意义位(最高位)被首先传输。
该字段结构与ISO 3309地址字段扩充机制相一致。该字段必须是奇数:最轻意义字节的最轻意义位(最低位)必须等于1。另外,字段必须被赋值,以便最有意义字节的最轻意义位为0。收到的不符合这些规则的frames,必须被视为带有不被承认的协议。
在范围"0***"到"3***"内的协议字段,标识着特殊packets的网络层协议。在范围"8***" 到"b***"内的协议字段,标识着packets属于联合的(相关的)网络控制协议(NCP)。在范围"4***"到"7***"内的协议字段,用于没有相关NCP的低通信量协议。在范围"c***"到"f***"内的协议字段,标识着使用链路层控制协议(例如LCP)的packets。
到目前为止,协议字段的值在最近的"Assigned Numbers" RFC [2]里有详细的说明。本说明书保留以下的值:
Value (in hex) Protocol Name
0001 Padding Protocol填料协议
0003 to 001f rerved (transparency inefficient)保留(透明度效率低的)
007d rerved (Control Escape)保留(控制逃逸)
00cf rerved (PPP NLPID)保留(PPP NLPID)
00ff rerved (compression inefficient)保留(压缩效率低的)
8001 to 801f unud(未使用)
807d unud(未使用)
80cf unud(未使用)
80ff unud(未使用)
c021 Link Control Protocol链路控制协议
c023 Password Authentication Protocol密码认证协议
c025 Link Quality Report链路品质报告
c223 Challenge Handshake Authentication Protocol挑战-认证握手协议
新的协议的开发者必须从the Internet Assigned Numbers Authority (IANA), at IANA@isi.edu.处获得号码。
信息字段:
信息字段是0或更多的字节。对于在协议字段里指定的协议,信息字段包含datagram。
信息字段的最大长度,包含填料但不包含协议字段,术语叫做最大接收单元(MRU),默认值是1500字节。若经过协商同意,也可以使用其它的值作为MRU。
填料:
在传输的时候,信息字段会被填充若干字节以达到MRU。每个协议负责根据实际信息的大小确定填料的字节数。
3 PPP链路操作
3-1 概述
为了通过点对点链路建立通信,PPP链路的每一端,必须首先发送LCP packets以便设定和测试数据链路。在链路建立之后,peer才可以被认证。
然后,PPP必须发送NCP packets以便选择和
设定一个或更多的网络层协议。一旦每个被选择的网络层协议都被设定好了,来自每个网络层协议的datagrams就能在连路上发送了。
链路将保持通信设定不变,直到外在的LCP和NCP关闭链路,或者是发生一些外部事件的时候(休止状态的定时器期满或者网络管理员干涉)。
3-2 阶段划分框图
在设定、维持和终止点对点链路的过程里,PPP链路经过几个清楚的阶段,如框图所示。这张图并没有给出所有的状态转换。
3-3 链路死亡(物理连接不存在)
链路一定开始并结束于这个阶段。当一个外部事件(例如载波侦听或网络管理员设定)指出物理层已经准备就绪时,PPP将进入链路建立阶段。
在这个阶段,LCP自动机器将处于初始状态,向链路建立阶段的转换将给LCP自动机器一个UP事件信号。
执行笔记:
典型的,在与调制解调器断开之后,链路将自动返回这一阶段。在用硬件实现的链路里,这一阶段相当的短--仅够侦测设备的存在。
3-4 链路建立阶段
LCP用于交换配置信息包(Configure packets),建立连接。一旦一个配置成功信息包(Configure-Ack packet)被发送且被接收,就完成了交换,进入了LCP开启状态。
所有的配置选项都假定使用默认值,除非被配置交换所改变。
有一点要注意:只有不依赖于特别的网络层协议的配置选项才倍LCP配置。在网络层协议阶段,个别的网络层协议的配置由个别的网络控制协议(NCP)来处理。
在这个阶段接收的任何非LCP packets必须被silently discarded(静静的丢弃)。
收到LCP Configure-Request(LCP配置要求)能使链路从网络层协议阶段或者认证阶段返回到链路建立阶段。
3-5 认证阶段
在一些链路上,在允许网络层协议packets交换之前,链路的一端可能需要peer去认证它。
默认的,认证是不需要强制执行的。如果一次执行希望peer根据某一特定的认证协议来认证,那么它必须在链路建立阶段要求使用那个认证协议。
应该尽可能在链路建立后立即进行认证。而,链路质量检查可以同时发生。在一次执行中,禁止因为交换链路质量检查packets而不确定地将认证向后推迟这一做法。
在认证完成之前,禁止从认证阶段前进到网络层协议阶段。如果认证失败,认证者应该跃迁到链路终止阶段。
在这一阶段里,只有链路控制协议、认证协议,和链路质量监视协议的packets是被允许的。在该阶段里接收到的其他的packets必须被静静的丢弃。
执行笔记:
一次执行中,仅仅是因为超时或者没有应答就造成认证的失败是不应该的。认证应该允许某种再传输,只有
在若干次的认证尝试失败以后,不得已的时候,才进入链路终止阶段。
在执行中,哪一方拒绝了另一方的认证,哪一方就要负责开始链路终止阶段。
3-6 网络层协议阶段
一旦PPP完成了前面的阶段,每一个网络层协议(例如IP,IPX,或AppleTalk)必须被适当的网络控制协议(NCP)分别设定。每个NCP可以随时被打开和关闭。
执行笔记:
因为一次执行最初可能需要大力浪的时间用于链路质量检测,所以当等待peer设定NCP的时候,执行应该避免使用固定的timeouts。
当一个NCP处于Opened状态时,PPP将携带相应的网络层协议packets。当相应的NCP不处于Opened状态时,任何接收到的被支持的网络层协议packets都将被静静的丢弃。
执行记录:
当LCP处于Opened状态时,任何不被该执行所支持的协议packets必须在Protocol-Reject里返回。只有支持的协议才被静静的丢弃。
在这个阶段,链路通信量由LCP,NCP,和网络层协议packets的任意可能的联合组成。
3-7 链路终止阶段
PPP可以在任意时间终止链路。引起链路终止的原因很多:载波丢失、认证失败、链路质量失败、空闲周期定时器期满、或者管理员关闭链路。
LCP用交换Terminate(终止)packets的方法终止链路。当链路正被关闭时,PPP通知网络层协议,以便他们可以采取正确的行动。
交换Terminate(终止)packets之后,执行应该通知物理层断开,以便强制链路终止,尤其当认证失败时。 Terminate-Request(终止-要求)的发送者,在收到Terminate-Ack(终止-允许)后,或者在重启计数器期满后,应该断开连接。收到Terminate-Request的一方,应该等待peer去切断,在发出Terminate-Request后,至少也要经过一个Restart time(重启时间),才允许断开。PPP应该前进到链路死亡阶段。
在该阶段收到的任何非LCP packets,必须被静静的丢弃。
执行笔记:
LCP关闭链路就足够了,不需要每一个NCP发送一个Terminate packets。相反,一个NCP关闭却不足以引起PPP链路的终止,即使那个NCP是当前唯一一个处于Opened状态的NCP。
4 自动机协商选项
finite-state automaton(有限态自动机)由事件、动作和状态转换定义。事件包括接收外部命令,例如Open and Clo(打开和关闭)、重启定时器期满、和接收从peer来的packets。动作包括启动重启定时器和向peer传输packets。
一些packets类型--Configure-Naks(设定-成功)和Configure-Rejects(设定-拒绝),或Code-Rejects(编码-拒绝)和Protocol-Rejects(协议-拒绝),或Echo-Requests(回波-要求),Echo-Replies(回波-应答)和Discard-Requests(丢弃-要求)--在自动机描述中不加以区分