ppp协议ipcp.docx
《ppp协议ipcp.docx》由会员分享,可在线阅读,更多相关《ppp协议ipcp.docx(10页珍藏版)》请在冰豆网上搜索。
![ppp协议ipcp.docx](https://file1.bdocx.com/fileroot1/2022-12/16/07683ff2-8646-487c-9b50-e41d7f854e48/07683ff2-8646-487c-9b50-e41d7f854e481.gif)
ppp协议ipcp
竭诚为您提供优质文档/双击可除
ppp协议,ipcp
篇一:
ppp协议
ppp(point-to-pointprotocol)
ppp(point-to-pointprotocol)协议是一个点到点的数据链路层协议,目前是tcp/ip网络中最重要的点到点数据链路层协议。
ppp协议由ietF(internetengineeringtaskForce)开发,目前已被广泛使用并成为国际标准。
ppp协议作为一种提供在点到点链路上传输、封装网络层数据包的数据链路层协议,处在tcp/ip协议栈的第二层,主要被设计用来在支持全双工的同异步链路上进行点到点之间的数据传输。
ppp是一个适用于通过调制解调器、点到点专线、hdlc比特串行线路和其它物理层的多协议帧机制。
它支持错误检测、选项商定、头部压缩等机制,在当今的网络中得到普遍的应用。
例如同学们所熟悉的利用modem进行拨号上网(163、169、165等)就是使用ppp实现主机到网络连接的典型例子。
如图4.8所示。
4.4.1ppp的特性
ppp协议是目前使用得最广泛的广域网协议,这是因为它具有以下特性:
能够控制数据链路的建立;
能够对ip地址进行分配和使用;
允许同时采用多种网络层协议;
能够配置和测试数据链路;
能够进行错误检测。
有协商选项,能够对网络层的地址和数据压缩等进行协商。
ppp是现在主流的一种国际标准wan封装协议,可支持如下连接类型:
同步串行连接;
异步串行连接;
isdn连接;
hssi连接。
4.4.2ppp的组成
ppp作为数据链路层的协议,在物理上可使用各种不同的传输介质,包括双绞线、光纤及无线传输介质,在数据链路层提供了一套解决链路建立、维护、拆除和上层协议协商、认证等问题的方案;在帧的封装格式上,ppp采用的是一种hdlc的变化形式;其对网络层协议的支持则包括了多种不同的主流协议,如ip和ipx等。
图4.9给出了ppp的体系结构,从图4.9中可以看出,ppp协议主要由两类协议组成:
1.链路控制协议族(lcp)
链路控制协议(linkcontrolprotocol,lcp)主要用于数据链路连接的建立、拆除和监控;lcp主要完成mtu(最大传输单元)、质量协议、验证协议、魔术字、协议域压缩、地址和控制域压缩协商等参数的协商。
2.网络层控制协议族(ncp)
网络层控制协议族(networkcontrolprotocol,ncp)主要用于协商在该链路上所传输的数据包的格式与类型,建立和配置不同网络层协议;
目前,ncp有ipcp和ipxcp两种。
ipcp用于在lcp上运行ip协议;ipxcp用于在lcp上运行ipx协议。
在这里只介绍ipcp。
ipcp主要有两个功能:
其一是协商ip地址(用于ppp通信的双方中一侧给另一侧分配ip地址),其二是协商ip压缩协议(即是否采用Vanjacobson压缩协议)。
同时,ppp还提供了用于安全方面的验证协议族(pap和chap)。
4.4.3ppp的帧格式
ppp的帧格式如图4.10所示。
所有的ppp帧是以标准的hdlc标志字节(01111110)开始的,如果是用在信息字段上,就是所填充的字符。
地址字段(a):
总是设成二进制值11111111,表明主从端的状态都为接收状态。
控制字段(c):
其缺省值为00000011,此值表明是一个无序号帧。
换言之,缺省情况下,ppp没有采用序列号和确认来进行可靠传输。
在有噪声的环境中,如无线网络,则使用编号方式进行可靠的传输,
协议字段(p):
是告知在信息字段中使用的是哪类分组,针对lcp、ncp、ip、ipx、appletalk及其它协议,定义了相应的代码。
信息字段(i):
是变长的,最多可达到所商定的最大值。
缺省长度1500字节。
如果需要的话,在有效内容后面增加填充字段。
4.4.4ppp的协商过程
ppp链路的建立是通过一些列的协商完成的。
其中,链路控制协议除了用于建立、拆除和监控ppp数据链路,还主要进行数据链路层特性的协商,如mtu、验证方式等;网络层控制协议族主要用于协商在该数据链路上所传输的数据的格式和类型,如ip地址。
ppp在建立链路之前要进行一些列的协商过程。
ppp协议大致可以分为如下几个阶段:
dead(链路不可行)阶段、establish(链路建立)阶段、authenticate(验证)阶段、network(网络层协议)阶段、terminate(链路终止)阶段。
如图4.11所示。
(1)链路不可用阶段(dead):
链路必须从这个阶段开始和结束。
当一个外部事件(比如一个载波信号或网络管理员配置)检测到物理层可用,ppp就会进入到establish阶段。
在dead阶段,lcp状态机有两个状态:
initial和starting。
从这个状态迁移到establish状态会给lcp状态机送一个up
事件。
当断开连接
后,链路会自动的回到这个状态。
在一般情况下这个阶段是很短的,仅仅只是检测到设备在位。
(2)链路建立阶段(establish):
lcp协议用来建立一个传输配置数据包的连接,一旦发送一个configure-ack数据包并被对端正确的接收,lcp进入opened状态,就停止配置数据包的发送了。
lcp只配置与网络层协议无关的配置,各个网络层协议的配置通过各自的网络控制协议(ncp)在网络层协议(network-layerprotocol)阶段配置。
在链路建立阶段接收到的非lcp数据包会直接丢弃。
在网络层协议阶段或验证阶段一旦收到一个configure-Request就会回到链路建立阶段。
(3)验证阶段(authenticate):
某些链路可能要求对端验证自己之后才允许网络层协议数据包在链路上传输,在缺省值中验证是不要求的。
如果某个应用要求对端采用特定的验证协议进行验证,则必须在链路建立阶段发出使用这种协议的请求。
只有当验证通过时才可以进入网络层协议阶段,如果验证不通过,则应继续验证而不是转到链路终止阶段。
在这个阶段只允许链路控制协议、验证协议和链路质量检测的数据包进行传输,其他的数据报都应丢弃。
(4)网络层协议阶段(network-layerprotocol):
当ppp结束前面的几个阶段,每个网络层协议(如ip、ipx)就要通过适当的网络控制协议独立的进行配置。
每个ncp随时都可能是打开或关闭状态。
当某个网络控制协议达到opened状态,ppp将运送相应的网络层协议的数据包。
在某个网络控制协议到达opened状态之前,收到的与之对应的网络层协议数据包将被丢弃。
在这个阶段,链路上传输的有任何可能的lcp、ncp和网络层协议的数据包组合。
(5)链路终止阶段(linkterminate):
ppp可以在任何时候终止链路,这可能是由于载波信号的丢失、验证不通过、链路质量不好、定时器超时或管理员关闭链路。
ppp通过交换终止链路的数据包来关闭链路,当交换结束时,应用就告诉物理层拆除连接从而强行终止链路。
但验证失败时,发出终止请求的一方必须等到收到终止应答或者重起计数器超过最大终止计数次数才断开连接。
收到终止请求的一方必须等对方先断开连接,而且在发送终止应答之后必须等至少一次重起计数器超时之后才能断开连接,之后ppp回到链路不可用状态。
篇二:
06_ppp协议
第六章:
ppp协议
一、ppp协议概述
ppp(pointtopointprotocol)协议是在点对点链路上运行的数据链路层协议用户使用拨号电话线接入internet时,一般都是使用ppp协议
1.ppp协议的产生
ppp协议的前身是slip(seriallineinternetprotocol,串行线路网际互联协议)。
slip协议是在串行线路上对ip数据报进行封装的简单协议,产生于二十世纪八十年代中期。
slip协议的缺点
封装格式十分简单,无法进行ip地址等参数的协商只支持ip协议
不具备校验功能
2.ppp协议的优点
支持同步或异步串行链路的传输
支持多种网络层协议
支持错误检测
支持网络层的地址协商
支持用户认证(可选的)
允许进行数据压缩
二、ppp协议原理
1.ppp协议的组成
ip
ipcp
pppipxipxcpncp
lcp
物理介质(同/异步)其它网络协议其它ncp网络层
a
b
cppp协议的组成协议封装方式:
提供了一种将网络层协议封装到串行链路的方法。
ppp既支持面向字符的异步串行链路,也支持面向比特的同步串行链路。
lcp(linkcontrolprotocol,链路控制协议):
为了能适应复杂多变的网络环境,ppp协议提供了一种链路控制协议来配置和测试数据通信链路,它能用来协商ppp协议的一些配置参数选项;处理不同大小的数据帧;检测链路环路、一些链路的错误;终止一条链路。
ncp(networkcontrolprotocol,网络控制协议):
ppp的网络控制协议根据不同的网络层协议可提供一簇网络控制协议,常用的有提供给tcp/ip网络使用的ipcp网络控制协议和提供给spx/ipx网络使用的ipxcp网络控制协议等,但最为常用的是ipcp协议。
当点对点的两端进行ncp参数配置协商时,主要是用来协商通信双方的网络层地址等。
2.ppp链路的工作过程
认证a链路不可用阶段(linkdeadwoodphase):
在最开始,整条链路处于链路不可
用状态,此阶段有时也称为物理不可用阶段。
ppp链路都需要从这个阶段开始和结束。
当通信双方的两端检测到物理线路激活(通常时检测到链路上由载波信号)时,就会从当前这个阶段进入到链路建立阶段。
b链路建立阶段(linkestablishmentphase):
在此阶段,ppp链路将进行lcp
相关协商,协商内容包括工作方式、认证方式、链路压缩等。
lcp在协商成功后进入opened状态,表示底层链路已经建立。
如果链路协商失败,则会返回到第一阶段。
在链路建立阶段成功后,如果配置了ppp认证,则会进入认证阶段;如果没有配置ppp认证,则会直接进入网络层协议阶段。
c认证阶段(authenticationphase):
在此阶段,ppp将进行用户认证工作。
ppp
支持pap和chap两种认证方式,如果认证失败,ppp链路会进入链路终止阶段,拆除链路,lcp状态为down。
如果认证成功就进入网络层协议阶段。
d网络层协议阶段(network-layerprotocolphase):
一旦ppp完成了前面几个
阶段,每种网络协议(ip,ipx等)会通过各自相应的网络控制协议进行配置,只有相应的网络层协议协商成功后,该网络层协议才可以通过这条ppp链路发送报文。
对于ipcp协商,协商的内容主要包括双方的ip地址等。
e链路终止阶段(linkterminationphase):
ppp能在任何时候终止链路。
载波丢
失、认证失败或用户认为关闭链路等情况均会导致链路终止。
ppp协议通过交换lcp的链路终止报文来关闭链路,当链路关闭时,链路层会通过网络层做相应的操作,而且也会通过物理层强制关断链路。
3.ppp协议的封装
a
b与slip类似,ppp协议也规定了帧的定界字节。
每一个ppp数据帧均是以一个标志字节起始和结束的,该字节为0x7e。
紧接在起始标志字节后的一个字节是地址域,该字节为0xFF。
在osi7层模
型中,网络的数据链路层之间要进行通信,首先必须获知对方的地址。
例如两个以太网上的主机进行通信,首先发送端需要获知对端的mac地址。
但由于ppp协议时被运用在点对点的链路上,它与广播网络或多点访问网络不同。
因为点对点的链路就可以唯一标示对方,所以使用ppp协议互连的通信设备的
c
d两端无需知道对方的数据链路层地址。
对于ppp协议来说地址域没有任何意义,按照协议的规定将该字节填充为全1的广播地址。
同地址域一样,ppp数据帧在控制域也没有实际意义,按照协议的规定通信双方将该字节的内容填充为0x03,若不是,则认为该ppp帧无效,从而丢弃该帧。
协议域用来说明ppp所封装的协议报文类型,它可用来区分ppp数据帧中信
息域所承载的数据报文的内容。
协议域的取值不同,后面的信息字段所代表的
法,当数据帧在传输时因为噪声干扰等因素发生变化时,接收端就可以根据帧校验域的内容判断出来,将错误的帧丢弃。
帧校验域的长度默认为2字节,但是通过lcp协商,它也可以为4个字节长。
4.lcp协议
amRu(maxiumReceiveunit,最大接收单元)
最大接收单元用于通知ppp链路的对端节点,本端所能接收的ppp数据
帧信息域的最大值。
ppp帧结构中的信息域的最大长度是由lcp协商到的mRu大小决定的。
通常情况下,路由器在收到mRu协商后,会根据mRu的大小修改接口的mtu值。
bmagicnumber(魔术字)
魔术字被用来帮助检测链路是否存在环路。
当lcp协商时,链路两端
节点都随即产生一个4字节大小的数字,这两个数字不应该相同。
当lcp协议发送链路请求报文时(config-Request或echo-Request),会携带本端生成的魔术字。
如果一端节点发现它接收到的链路请求报文和它发送的链路请求报文中的魔术字相同,就会认为链路可能存在环路。
c认证方式
默认情况下,ppp协议是不进行认证的。
在lcp协商中,可以协商
ppp链路进行认证的方式。
ppp支持两种认证方式:
pap和chap。
d链路压缩
ppp支持链路压缩功能,通过链路压缩的协商,可以对ppp帧进行压
缩,从而缩小ppp帧的长度,提高链路的数据吞吐量。
目前常用的ppp链路压缩方式有stac和predictor两种。
stac:
该算法查看数据流里面重复的字符串,然后使用一个比原来字符串要
短的记号来标记以达到压缩的目的。
stac压缩算法对占用cpu的资源
由较高要求,往往不被采用于高cpu利用率的路由器中。
predictor:
该算法学习数据串,它尝试从一个操作检索系统中来预测出即将
到来的特征数据序列。
predictor算法对路由器的Ram要求很高,
如果路由器没有配备大容量的内存,将很难运行predictor压缩。
e多链路捆绑e
ppp协议支持将多个ppp链路捆绑,从而达到增加带宽的目的。
在lcp
协商过程中,将会协商链路是否支持多链路捆绑功能。
5.ncp协议
ncp协议的数据报文是在网络层协议阶段被交换的,它主要包括ipcp
(ipcontrolprotocol,ip控制协议)、ipxcp(ipxcontrolprotocol,ipx控制协议)等,但在实际应用中最常见的只有ipcp协议。
ipcp控制协议主要负责协商ip网络层协议通信所需配置参数的选项。
ipcp协议主要协商的参数有以下几个:
aip地址
ip地址协商分为“静态”和“动态”两种类型。
静态协商:
也就是不进行协商,只对ip地址进行确认。
在ppp链路协议
前,ppp链路两端已经手工配置好ip地址,所以就无需在网
络层协议阶段协商ip地址,双方唯一要做的就是告诉对方自
身的ip地址。
当接收到对方通知的ip地址时,会回应一个确
认报文,同时在自己的路由表中增加一条指向对端的静态路
由。
动态协商:
是一端不配置ip地址,而由另一方在ipcp协商的过程中分配
一个ip地址。
通常我们拨号上网的时候,pc就是使用的动态
协商方式。
btcp/ip头压缩
在lcp协商过程中可以协商针对ppp帧的压缩方式。
而在ipcp协
商过程中可以协商针对tcp/ip报文的压缩方式。
最常见的tcp/ip报文压
缩方式是Vjtcp/ip报文头压缩。
6.ppp认证
apap认证
pap(passwordauthenticationprotocol,密码认证协议):
是一种两
次握手认证协议,pap认证也可以是双向的,认证过程如下:
被认证方发起认证请求,以明文方式发送用户名和口令到主认证方。
主认证方根据本端用户表查看是否有此用户以口令是否正确,然后返回认
证通过或不通过。
bchap认证
chap是challengehandauthenticationprotocol(质询握手认证协
议)的简称,chap为3次握手认证协议,它只在网络上传送用户名而
不传送口令,因此,比pap认证的安全性要高。
chap认证的过程如下:
主认证方主动发起认证请求。
主认证方向被认证方发送一些随机产生的报
文(challenge),并同时将本端的用户名附带上一起发送给被认证方
被认证方接收到主认证方的认证请求后,被认证方根据此报文中主认证方
的用户名查找用户密码。
如果在用户表中找到与主认证方相同的用户名,就说明可以接收对方的认证。
利用报文id、用户表中主认证方用户名对
应的密码以及md5算法对该随机报文进行加密,将生成的密文和自己的
用户名发回主认证方(Response)。
主认证方接收到该报文后,根据此报文中被认证方的用户名,在自己的本
地用户数据库中查找被认证方用户名对应的被认证方密码,利用报文id、该密码和md5算法对原随机报文加密,然后将加密的结果和被认证方发
来的加密结果进行比较。
如果相同,则认为认证通过,如果不同则认为认
证失败。
7.多链路ppp
在ppp协议中,可以将多个链路捆绑起来,形成一条带宽更大的ppp链
路,称为multilinkppp,即多链路ppp,配置多链路ppp的优点:
增加带宽
负载分担
利用分片降低时延
三、ppp协议的配置的相关命令
interfaceserial端口号在|“全局”,进入接口模式
encapsulationppp在“接口”,封装ppp协议
username名字password0密码在“全局”,配置认证用户名和密码pppauthenticationpap在“接口”,配置认证方式为pap
ppppapsent-username名字password0密码
在“接口”,配置pap认证所需的用户名和密码
pppauthenticationchap在“接
口”,配置认证方式为chap
pppchaphostname名字在“接口”,配置认证的用户名(建议不配)pppchappassword0密码在“全局”,配置认证所需要的用户名和密码peerdefaultipaddressip地址在“接口”,配置分配给对端的ip地址ipaddressnegotiated在“接口”,配置本端ip由对端分配compress{predictor|stac}在“接口”,配置stac压缩
iptcpheader-compression在“接口“,配置tcp头压缩。
篇三:
详解ppp及pppoe协议
详解ppp及pppoe协议
ppp(point-to-pointprotocol点到点协议),一种二层协议,通常部署在专线网和按需电路网上面,ppp有很多丰富的可选特性,如支持多协议、提供可选的身份认证服务、可以以各种方式压缩数据、支持动态地址协商、支持多链路捆绑等等。
这些丰富的选项增强了ppp的功能。
同时,不论是异步拨号线路还是路由器之间的同步链路均可使用。
因此,应用十分广泛
当然,在专线网上我们也可以使用hdlc二层协议,但用的并不多,原因有三:
1.
2.
3.不支持验证,一层通二层就通不支持多种上层协议(ip/ipx/appletalk等),而ppp帧中专门有一个字段用来标示上层协议类型hdlc协议为厂商私有协议,各个厂商互不兼容,但hdlc是cisco产品的默认广域网封装方式,要使用ppp协议需要encapsulationppp命令改变接口封装协议我们家庭拨号上网就是通过ppp协议在用户端和运营商的接入服务器之间建立通信链路。
目前,宽带接入已基本取代拔号接入,在宽带接入技术日新月异的今天,ppp也衍生出新的应用。
典型的应用是在adsl(非对称数据用户环线,asymmetricaldigitalsubscriberloop)接入方式当中,ppp与其他的协议共同派生出了符合宽带接入要求的新的协议,如pppoe(pppoverethernet),pppoa(pppoveratm)。
利用以太网(ethernet)资源,在以太网上运行ppp来进行用户认证接入的方式称为pppoe。
pppoe即保护了用户方的以太网资源,又完成了adsl的接入要求,是目前adsl接入方式中应用最广泛的技术标准。
同样,在atm(异步传输模式,asynchronoustransfermode)网络上运行ppp协议来管理用户认证的方式称为pppoa。
它与pppoe的原理相同,作用相同;不同的是它是在atm网络上,而pppoe是在以太网网络上运行,所以要分别适应atm标准和以太网标准
好的,下面我们就以点到点专线上的ppp协议和以太网上的pppoe协议为例,详细介绍它们的工作原理、验证过程及其配置方法
一、点到点专线上的ppp协议
ppp特性有很多,但主要的特性是具备验证技术,所以在此我们主要是讨论ppp的验证。
ppp的验证方式分为两种:
pap和chap
pap(密码验证协议):
客户端向服务器端发送验证信息,包含用户名和密码。
如果用户名和密码与服务器里保存的一致,那就通过验证,否则就不能通过(通过两次握手)。
chap(挑战握手验证协议):
chap首先是由服务器发起的,它向客户端发送含有random值(随机生成)、id号、用户名和密码的数据,客户端收到数据后提取random、id和用户所对应的密码使用md5算法进行哈希(hash)得到hash值。
然后再把自己保存的用户名连同id和刚得到的hash值一起发送给服务器。
服务器再收到数据后也进行以上操作得到hash值,再把算得的hash值与从客户端得到的hash值进行比较:
两值相同服务器就发送一个通过的信息;两值不同服务器就发送一个拒绝的信息。
可以看出,chap在整个验证过程中是不发送密码的,所以是一种安全的认证。
好的,下面我们就以实例来演示pap和chap的配置过程
1、实验拓朴
2、配置步骤
首先我们来做个pap认证
1)基本配置:
R1#conft
R1(config)#ints0
R1(config-if)#ipadd192.168.0.1255.255.255.252
R1(config-if)#noshutdown
R2#conft
R2(config)#ints0
R2(config-if)#ipadd192.168.0.2255.255.255.252
R2(config-if)#noshutdown
配完之后我们发现两边接口一层和二层都up了,因为在cisco串行接口默认封装为hdlc
R1#shipintbri
interfaceip-addressokmethodstatusprotocol
Fastethernet0unassignedyesunsetadministrativelydowndown
serial019