PPP协议简介 下载本文

内容发布更新时间 : 2024/12/28 12:30:25星期一 下面是文章的全部内容请认真阅读。

第一章PPP协议简介:

1.1.1PPP封装

PPP封装格式如下,其在链路上从左传至右

地址FF 控制03 协议8或16位 1.1.1.1协议域 协议域是一或两个八位位组,其值标识了封装在数据包里信息域的内容为哪一个协议的数据报,最新的协议域的类型值在最近的RFC1700“Assigned Numbers”可见到,下面为其中一部分值的定义: 值(16进制) C021

C023

协议名

信 息 填 充 链路控制协议(LCP) 口令认证协议(PAP) 链路质量报告(LQR) 握手认证协议(CHAP)

C025 C223

C02B 带宽分配控制协议(BACP) C02D 带宽分配协议(BAP) 003D 8021 0021

多链路点到点协议(MP) IP控制协议(IPCP) IP

002D Van Jacobson Compressed TCP/IP

如果要开发新的协议,必须向IANA(Internet Assigned Numbers Authority)

获得一个号码。 1.1.1.2信息域

信息域为零或多个八位位组,其内容为在协议域中指定协议的数据报,信息域的最大长度(包括填充部分,但不包括协议域),称为最大接收单元长度(MRU),默认为1500个八位位组,但PPP协议可通过协商来确定MRU的值。

1.1.1.3填充域

在传输时,信息域长度可能达不到MRU值,此时,在信息域之后须加上填充域,以使信息域加填充域长度达到MRU值,各个协议须负责将填充域与真正的信息域区分开来。 1.1.2PPP链路操作

可将PPP链路通信分成5个阶段,未通、建立、认证、连通、终止阶段。各个阶段关系如下: 1.1.2.1未通阶段

链路最初及最终均处于该阶段,当一个外部事件指示物理层已准备好,可被链路层使用时,PPP进入链路建立阶段。 1.1.2.2建立阶段

在该阶段,链路交换一些配置包以确定配置数据。 1.1.2.3认证阶段

配置确定以后,就进入了认证阶段,在该阶段,一方要求另一方给出认证信息,以便确认对方是合法的,允许对方与本方通信。 1.1.2.4连通阶段

认证通过以后,链路就进入连通阶段,在该阶段达到开放状态(OPENED STATE)后,上层协议可通过本链路进行通信。所需注意的是,该阶段对于每一控制协议,各自单独进行打开过程,某一控制协议OPENED,只能使该控制协议所对应的上层协议可通过本链路进行通信。 1.1.2.5终止阶段

PPP可在任何时候终止链路,这可能由于认证失败,链路的质量要求达不到,空闲时间计数器超时,管理层要求关闭等原因引起。 1.1.3

LCP选项协商自动机 1.1.3.1状态

状态

状态描述

低层不可用(Down态),高层无Open发给信息

0 Initial态

1 Starting态 低层不可用(Down态),高层发出Open(是Initial的Open

对应态)

2 Closed态 3 Stopped态

低层可用(Up态),高层无Open发本层

低层可用(Up态),本层已收到Open,且又发出了tlf事件,或收到 Terminate_Ack事件(是Closed的Open对应态)

4 Closing态

本层发出了Terminate_Request试图终止连接,还未收Terminate_Ack,计时器处于工作状态

5 Stopping态 是Closing的Open对应态

6 Request_Sent发出Configure_Request,未收到Configure_Ack,计时器处

于工作状态

7 Ack_ReceivedConfigure_Request已发出,Configure_Ack也已收到,

Configure_Ack未发出,计时器处于工作状态

8 Ack_Sent态 已发出Configure_Request和Configure_Ack,还未收到

Configure_ack,计时器处于工作状态

9 Opened态

Configure_Ack已发送,也已接收到对方发来的Configure_Ack,计时器不工作

1.1.3.2收到事件

Event

Description

低层指示它已准备好接收或发送数据包 低层指示它已不能发送或接收数据包 高层要求建立一条链路 高层指示关闭一条链路 计时器超时,还有重发机会 计时器超时,已无重发机会

收到Configure_Request,并且其配置数据是可接受的 收到Configure_Request,并且其配置数据是不可接受的 收到Configure_Ack

收到Configure_Nak或收到Configure_Reject 收到Terminate_Request 收到Terminate_Ack

收到不能解释的包(Receive_Unknown_Code)

收到Code_Reject或Protocol_Reject,但拒绝的值可接受,不引起本链路断开

15 Rxj-

收到Code_Reject或Protocol_Reject,且其结果是严重的,使本链路断开

16 RXR

1.1.3.3本层需做动作

告知上层本层已进入Opened态 告知上层本层已离开Opened态

收到Echo_Request或Echo_Reply或Discard_Request

1 UP 2 DOWN 3 OPEN 4 CLOSE 5 TO+ 6 TO- 7 RCR+ 8 RCR- 9 RCA 10 RCN 11 RTR 12 RTA 13 RUC 14 Rxj+

1 tlu:This_Layer_Up 2 tld:This_Layer_Down

3 tls:This_Layer_started 告知上层本层已进入Staring态

4 tlf:This_Layer_Finished 告知上层本层已进入Initial态,Closed或

Stopped态