PPP协议
PPP协议的产生:它的前身是SLIP(Serial Line Internet Protocol,串行线路国际互联协议)。SLIP是一种在点对点串行链路上封装IP数据报文的简单协议,缺点是不支持多种协议、无法进行参数协商、不支持错误检验等,故被后来的PPP协议所代替。
PPP协议的优点:
#支持同异步串行链路:支持面向字符的异步串行链路和支持面向比特传输的同步串行链路。
#支持多种网络层协议:能够支持IP、IPX等网络协议,允许在一条链路上同时传输多种网络协议报文。
#支持各种连接参数的协商:包括数据链路层参数的协商和网络层参数的协商。
#支持错误检验:在PPP协议帧的结构域中有一个FCS(帧校验序列)域。
#支持用户认证:能够进一步实现用户的认证、授权、计费等功能。
#允许进行数据压缩:可缩小数据的长度,从而提高数据的吞吐量。
PPP协议的原理
PPP协议的组成:
#协议封装方式:提供了一种将网络层协议封装到串行链路的方法。
#LCP(Link Control Protocol,链路控制协议):用来配置和测试数据通信链路,他能用来协商PPP协议的一些配置参数选项;处理不同大小的数据帧;检测链路环路、一些链路的错误;终止一条链路。
#NCP(Network Control Protocol,网络控制协议):常用的有提供给TCP/IP网络使用的IPCP网络控制协议和提供给SPX/IPX网络使用的IPXCP网络控制协议。
NCP
IPCP IPXCP 其他NCP
|
LCP
|
物理介质(同/异步)
|
PPP链路的工作工程
PPP协议的封装
0x7E
(1Byte)
|
0xFF
(1Byte)
|
0x03
(1Byte)
|
协议域
(2Byte)
|
信息域
|
校验域
(2Byte)
|
0x7E
(1Byte)
|
LCP协议
LCP协议负责数据链路的建立、配置、维护、测试和终止。在对链路配置过程中需要进行一些可选配置的、参数选项的协商,比较重要的选项有以下几种
#MRU(Maxium Receive Unit,最大接收单元):用于通知PPP链路的对端节点,本端所能接收的PPP数据帧信息域的最大值。
#Magic NUmber(魔术字):用来帮助检测链路是否存在环路。
#认证方式:默认情况下PPP是不进行认证的。在LCP协商中可以协商PPP链路进行认证的方式,支持两种认证方式:PAP和CHAP。
#链路压缩:缩小PPP帧的长度,提高链路的吞吐量,目前常用的压缩方式有Stac和Predictor
#多链路捆绑:达到增加带宽的作用。
NCP协议
NCP协议的数据报文是在网络层协议阶段被交换的,在这个阶段所需要的一些配置参数选项协商完后就可以进行网络层的通信。最长遇见的是IPCP协议
IPCP协议主要负责协商IP网络层通信所需要配置的参数的选项。主要协商的参数有以下几个:
#IP地址:是最重要的部分分为静态和动态两种。静态是指不进行协商,只对IP地址进行确认。动态是指一端不配置IP地址,由另一方在IPCP协商的过程中分配一个IP地址。
#TCP/IP头压缩:常见的压缩方式是VJ TCP/IP报文头压缩。
PPP认证方式
#PAP认证:(Password Authentication Protocol,密码认证协议)是一种两次握手认证协议。一方是主认证方,另一方是被认证方,由主认证方对被认证方进行认证
#CHAP认证:(Challenge Hand Authentication Protocol,质询握手认证协议)与PAP比起来更具有安全性。主认证方发起认证请求,向被认证方发送一些随机产生的报文并同时将本端的用户名附带一起发送给被认证方; 被认证方接到主认证方的认证请求后,被认证方根据此报文中主认证方的用户名查找用户密码,利用报文ID、用户表中主认证方相同的密码以及MD5算法对该随机报文进行加密,将生成的密文和自己的用户名发送回主认证方; 主认证方接收到该报文后根据此报文中被认证方的用户名,利用报文ID、该密码和MD5算法对远随机报文进行加密,将结果进行对比,如果相同就通过,否则失败。
多链路PPP
可将对个PPP链路捆绑起来,形成一条带宽更大的PPP链路。优点是:增加带宽、负载分担、利用分片降低时延。
PPP协议的配置
PPP协议的基本配置
Router(config)#interface serial
slot/port
Router(config)#encapsulation ppp
配置PAP认证
#主认证方配置
Router(config)#username
user_name
password 0
pass_word
Router(config-if)#ppp authentication pap
#被认证方配置
Router(config-if)#ppp pap sent-username
user_name
password 0
pass_word
配置CHAP认证
#主让认证端配置
Router(config)#username
user_name
password 0
pass_word
Router(config-if)#ppp authentication chap
Router(config-if)#ppp chap hostname
user_name
#被认证端配置
Router(config)#username
user_name
password 0
pass_word
Router(config-if)#ppp chap password 0
pass_word
Router(config-if)#ppp chap hostname
user_name
配置IP地址协商
#服务器端配置
Router(config-if)#peer default ip address
ip_address
#客户端配置
Router(config-if)#ip address negotiated
配置PPP压缩
#配置Stac压缩
Router(config-if)#compress {predictor | stac}
Predictor压缩需要消耗大量的路由内存。
Stac压缩会占用很大部分CPU资源进行压缩的运算。
#配置TCP头压缩
Router(config-if)#ip tcp header-compression