PPP协议规范


PPP协议规范 1 介绍
PPP是为在同等单元之间传输数据包这样的简单的链路而设计的 。这种链路提供全双工操作 , 并按照顺序传递数据包 。(人们)有意让PPP为基于各种主机、网桥和路由器的简单连接提供一种共通的解决方案 。
封装:
PPP封装提供了不同网络层协议同时通过统一链路的多路技术 。精心的设计PPP封装 , 使其保有对常用支持硬件的兼容性 。当使用默认的类HDLC帧(HDLC-like framing)时 , 仅需要8个额外的字节 , 就可以形成封装 。在带宽需要付费时 , 封装和帧可以减少到2或4个字节 。为了支持高速的执行 , 默认的封装只使用简单的字段 , 多路分解只需要对其中的一个字段进行检验 。默认的头和信息字段落在32-bit边界上 , 尾字节可以被填补到任意的边界 。
链路控制协议(LCP):
为了在一个很宽广的环境内能足够方便的使用 , PPP提供了LCP 。LCP用于就封装格式选项自动的达成一致 , 处理数据包大小的变化 , 探测looped-back链路和其他普通的配置错误 , 以及终止链路 。提供的其他可选设备有:对链路中同等单元标识的认证 , 和当链路功能正常或链路失败时的决定 。
网络控制协议:
点对点连接可能和当前的一族网络协议产生许多问题 。例如 , 基于电路交换的点对点连接(比如拨号模式服务) , 分配和治理IP地址 , 即使在LAN环境中 , 也非常困难 。这些问题由一族网络控制协议(NCP)来处理 , 每一个协议治理着各自的网络层协议的非凡需求 。
配置:
有意使PPP链路很轻易配置 。通过设计 , 标准的默认值处理全部的配置 。执行者可以对默认配置进行改进 , 它被自动的通知给其同等单元而无需操作员的干涉 。最终 , 操作员可以明确的为链路设定选项 , 以便其正常工作 。
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
0001Padding Protocol填料协议
0003 to 001freserved (transparency inefficient)保留(透明度效率低的)
007dreserved (Control Escape)保留(控制逃逸)
00cfreserved (PPP NLPID)保留(PPP NLPID)
00ffreserved (compression inefficient)保留(压缩效率低的)
8001 to 801funused(未使用)
807dunused(未使用)
80cfunused(未使用)
80ffunused(未使用)
c021Link Control Protocol链路控制协议
c023PassWord Authentication Protocol密码认证协议
c025Link Quality Report链路品质报告

推荐阅读