PPP(点对点协定(Point to Point Protocol))

生活百科 2023-01-26 08:57生活百科www.aizhengw.cn

PPP(点对点协定(Point to Point Protocol))

点对点协定(PPP)为在点对点连线上传输多协定数据包提供了一个标準方法。PPP 最初设计是为两个对等节点之间的 IP 流量传输提供一种封装协定。在 TCP-IP 协定集中它是一种用来同步调製连线的数据链路层协定(OSI 模式中的第二层),替代了原来非标準的第二层协定,即 SLIP。除了 IP 以外 PPP 还可以携带其它协定,包括 DECnet 和 Novell 的 Internet 网包交换(IPX)。

基本介绍

  • 中文名点对点协定
  • 外文名Point to Point Protocol
  • 适用领域範围传输数据包
  • 简称ppp

简介

PPP点对点协定
(PPPPoint to Point Protocol)
PPP(点到点协定)是为在同等单元之间传输数据包这样的简单链路设计的链路层协定。这种链路提供全双工操作,并按照顺序传递数据包。设计目的主要是用来通过拨号或专线方式建立点对点连线传送数据,使其成为各种主机、网桥和路由器之间简单连线的一种共通的解决方案。
点对点协定(PPP)为在点对点连线上传输多协定数据包提供了一个标準方法。PPP 最初设计是为两个对等节点之间的 IP 流量传输提供一种封装协定。在 TCP-IP 协定集中它是一种用来同步调製连线的数据链路层协定(OSI 模式中的第二层),替代了原来非标準的第二层协定,即 SLIP。除了 IP 以外 PPP 还可以携带其它协定,包括 DECnet和 Novell的Internet 网包交换(IPX)。

功能

(1)PPP具有动态分配IP地址的能力,允许在连线时刻协商IP位址;
(2)PPP支持多种网路协定,比如TCP/IP、NetBEUI、NWLINK等;
(3)PPP具有错误检测能力,但不具备纠错能力,所以ppp是不可靠传输协定;
(4)ppp支持数据压缩
(5)PPP具有身份验证功能。
(6) PPP可以用于多种类型的物理介质上,包括串口线、电话线、行动电话和光纤(例如SDH),PPP也用于Internet接入。

帧格式

PPP的帧格式
7E
FF
03
协定
信息
FCS
7E
位元组
1
1
1
2
<=1500
2
1
PPP採用7EH作为一帧的开始和结束标誌(F);其中地址域(A)和控制域(C)取固定值(A=FFH,C=03H) ;协定域(两个位元组)取0021H表示IP分组,取8021H表示网路控制数据,取C021H表示链路控制数据;帧校验域(FCS)也为两个位元组,它用于对信息域的校验。若信息域中出现7EH,则转换为(7DH,5EH)两个字元。当信息域出现7DH时,则转换为(7DH,5DH)。当信息流中出现ASCII码的控制字元(即小于20H),即在该字元前加入一个7DH字元。

部分组成

封装一种封装多协定数据报的方法。PPP 封装提供了不同网路层协定在同一链路传输的多路复用技术。PPP 封装精心设计,能保持对大多数常用硬体的兼容性,克服了SLIP不足之处的一种多用途、点到点协定,它提供的WAN数据连结封装服务类似于LAN所提供的封闭服务。所以,PPP不仅仅提供帧定界,而且提供协定标识和位级完整性检查服务。
链路控制协定一种扩展链路控制协定,用于建立、配置、测试和管理数据链路连线。
网路控制协定协商该链路上所传输的数据包格式与类型,建立、配置不同的网路层协定;
配置使用链路控制协定的简单和自製机制。该机制也套用于其它控制协定,例如网路控制协定(NCP)。
为了建立点对点链路通信,PPP 链路的每一端,必须传送 LCP 包以便设定和测试数据链路。在链路建立,LCP 所需的可选功能被选定之后,PPP 必须传送 NCP 包以便选择和设定一个或更多的网路层协定。一旦每个被选择的网路层协定都被设定好了,来自每个网路层协定的数据报就能在链路上传送了。
链路将保持通信设定不变,直到有 LCP 和 NCP 数据包关闭链路,或者是发生一些外部事件的时候(如,休止状态的定时器期满或者网路管理员干涉)。
应 用假设同样是在Windows 98,并且已经创建好“拨号连线”。那幺可以通过下面的方法来设定PPP协定,打开“拨号连线”属性,同样选择“伺服器类型”选项卡;然后,选择默认的“PPPInternet,Windows NT Server,Windows 98”,在高级选项中可以设定该协定其它功能选项;,单击“确定”按钮即可。

工作流程

当用户拨号接入 ISP 时,路由器的数据机对拨号做出确认,并建立一条物理连线(底层up)。PC 机向路由器传送一系列的 LCP 分组(封装成多个 PPP 帧)。
话流程
这些分组及其回响选择一些 PPP 参数,和进行网路层配置(此前如有PAP或CHAP验证先要通过验证),NCP 给新接入的 PC机分配一个临时的 IP 地址,使 PC 机成为网际网路上的一个主机。
通信完毕时,NCP 释放网路层连线,收回原来分配出去的 IP 地址。接着,LCP 释放数据链路层连线。释放的是物理层的连线。

和HDLC的区别

最主要的区别
PPP是面向字元的,HDLC是面向位的。

特点

PPP协定是一种点——点串列通信协定。PPP具有处理错误检测、支持多个协定、允许在连线时刻协商IP位址、允许身份认证等功能,还有其他。PPP提供了3类功能成帧;链路控制协定LCP;网路控制协定NCP。PPP是面向字元类型的协定。
PPP协定的帧格式
标誌栏位
地址栏位
控制栏位
协定
信息部 分
FCS
标誌栏位

套用範围

PPP是一种多协定成帧机制,它适合于数据机、HDLC位序列线路、SONET和其它的物理层上使用。它支持错误检测、选项协商、头部压缩以及使用HDLC类型帧格式(可选)的可靠传输。
PPP提供了三类功能
1 成帧他可以毫无歧义的分割出一帧的起始和结束。
2 链路控制有一个称为LCP的链路控制协定,支持同步和异步线路,也支持面向位元组的和面向位的编码方式,可用于启动路线、测试线路、协商参数、以及关闭线路。
3 网路控制具有协商网路层选项的方法,并且协商方法与使用的网路层协定独立。

两种认证方式

一种是PAP,一种是CHAP。相对来说PAP的认证方式安全性没有CHAP高。PAP在传输password是明文的,而CHAP在传输过程中不传输密码,取代密码的是hash(哈希值)。PAP认证是通过两次握手实现的,而CHAP则是通过3次握手实现的。PAP认证是被叫提出连线请求,主叫回响。而CHAP则是主叫发出请求,被叫回复一个数据包,这个包里面有主叫传送的随机的哈希值,主叫在资料库中确认无误后传送一个连线成功的数据包连线

常见问题

1)什幺是LCP?
链路控制协定(LCP) LCP 建立点对点链路,是 PPP 中实际工作的部分。LCP 位于物理层的上方,负责建立、配置和测试数据链路连线。LCP 还负责协商和设定 WAN 数据链路上的控制选项,这些选项由 NCP 处理。
2)NCP是什幺?
PPP允许多个网路协定共用一个链路,网路控制协定 (NCP) 负责连线PPP(第二层)和网路协定 (第三层)。对于所使用的每个网路层协定,PPP 都分别使用独立的 NCP来连线。例如,IP 使用 IP 控制协定 (IPCP),IPX 使用 Novell IPX 控制协定 (IPXCP)。

配置方法

基本配置

1, 启用ppp
RouterTest#config terminal
Enter configuration commands,one per line. End with CNTL/Z.
RouterTest(config)#interface serial 0/0
RouterTest(config-if)#encapsulation ppp
RouterTest(config-if)#
2, 地址配置命令
RouterTest(config-if)#ip address 10.1.1.1 255.255.255.0
PAP配置实例
Router(config)#hostname RouterA
RouterA(config)#RouterB password itsasecret
RouterA(config)#interface Async 0
RouterA(config-if)#encapsulation ppp
RouterA(config-if)#ip address 10.0.0.1 255.255.255.0
RouterA(config-if)#dialer-map ip 10.0.0.2 name RouterB 5551234
RouterA(config-if)#username RouterA password itsasecret2
Router(config)#hostname RouterB
RouterB (config)#RouterA password itsasecret
RouterB (config)#interface Async 0
RouterB (config-if)#encapsulation ppp
RouterB (config-if)#ip address 10.0.0.2 255.255.255.0
RouterB (config-if)#dialer-map ip 10.0.0.1 name RouterA 5551234
RouterB (config-if)#username RouterB password itsasecret2

CHAP配置实例

Router(config)#hostname RouterA
RouterA(config)#RouterB password itsasecret
RouterA(config)#interface Async 0
RouterA(config-if)dialer in-band
RouterA(config-if)#encapsulation ppp
RouterA(config-if)#ppp authentication chap
RouterA(config-if)#ip address 10.0.0.1 255.255.255.0
RouterA(config-if)#dialer-map ip 10.0.0.2 name RouterB 5551234
RouterA(config-if)#username RouterA password itsasecret2
Router(config)#hostname RouterB
RouterB (config)#RouterA password itsasecret
RouterB (config)#interface Async 0
RouterB(config-if)dialer in-band
RouterB (config-if)#encapsulation ppp
RouterB (config-if)#ppp authentication chap
RouterB (config-if)#ip address 10.0.0.2 255.255.255.0
RouterB (config-if)#dialer-map ip 10.0.0.1 name RouterA 5551234
RouterB (config-if)#username RouterB password itsasecret2

CHAP和PAP

Router(config-if)#ppp authentication chap pap
配置PPP回拨

使用压缩

cisco支持的压缩方法
Predictor:先判断数据是否已经被压缩过。如果数据被压缩过,则立即将其传送出去,而不浪费时间对已经压缩过的数据进行压缩。
Stacker:一种基于Lempel-Ziv(LZ)的压缩算法,对每种数据类型,只传送一次有关其在数据流中的位置。接收方根据这些信息重新组织数据流。
MPPC:MPPC协定(RFC2118)让cisco路由器器能够与microsoft客户端交换压缩后的数据,它使用一种基于LZ的压缩算法
TCP报头压缩也叫Van Jacobson压缩,只用于压缩tcp报头。

配置压缩

Router(config)#interface serial2
Router(config-if)#compress {predictor|stac|mppc}
Or
Router(config)#interface async
Router(config-if)#ip tcp header-compression
Or
Router(config)#interface async
Router(config-if)#ip tcp header-compression passive
该命令告诉路由器,仅当从对方那里收到压缩后的报头后,才使用tcp报头压缩。
多链路PPP
通过使用多链路PPP,可以将多条连线捆绑成一条虚拟连线。
Router(config-if)#ppp multilink
Router(config-if)#dialer load-threshold load [outbound | inbound | either]
命令dialer load-threshol load指定在什幺情况下将更多的B信道加入到MLP链路束中。当所有B信道的总负载超过指定的阀值后,拨号接口(BRI或PRI)将信道加入到多链路束中。
同样,如果总负载低于阀值,将拆除B信道。
参数load是接口的平均负载,其取值为1(没有负载)到255(满载)。
参数outbound(默认值)指定计算负载时只考虑出站数据流;参数inbound指定只考虑入站数据流;either指定计算负载时,选择出站负载和入站负载中较大的那个。

故障排查命令

debug ppp negotiation-确定客户端是否可以通过PPP协商; 这是您检查地址协商的时候。
debug ppp authentication-确定客户端是否可以通过验证。如果您在使用Cisco IOS软体版本11.2之前的一个版本,请发出debug ppp chap命令。
debug ppp error - 显示和PPP连线协商与操作相关的协定错误以及统计错误。
debug aaa authentication-要确定在使用哪个方法进行验证(应该是RADIUS,除非RADIUS伺服器发生故障),以及用户是否通过验证。
debug aaa authorization-要确定在使用哪个方法进行验证,并且用户是否通过验证。
debug aaa accounting-查看传送的记录。
debug radius-查看用户和伺服器交换的属性。
上一篇:Breakin 下一篇:Charles Patoshik

Copyright@2015-2025 www.aizhengw.cn 癌症网版板所有