PPP协议组成及简述协议协商的基本过程


Posted in 面试题 onMay 28, 2015
一、PPP(Point-to-Point Protocol点到点协议)是为在同等单元之间传输数据包这样的简单链路设计的链路层协议。设计目的主要是用来通过拨号或专线方式建立点对点连接发送数据,使其成为各种主机、网桥和路由器之间简单连接的一种共通的解决方案。
二、PPP协议中提供了一整套方案来解决链路建立、维护、拆除、上层协议协商、认证等问题。
三、PPP协议包含这样几个部分:链路控制协议LCP(Link Control Protocol);网络控制协议NCP(Network Control Protocol);认证协议,最常用的包括口令验证协议PAP(Password Authentication Protocol)和挑战握手验证协议CHAP(Challenge-Handshake Authentication Protocol)。
四、一个典型的链路建立过程分为三个阶段:创建阶段、认证阶段和网络协商阶段。
阶段1:创建PPP链路
LCP负责创建链路。在这个阶段,将对基本的通讯方式进行选择。链路两端设备通过LCP向对方发送配置信息报文(Configure Packets)。一旦一个配置成功信息包(Configure-Ack packet)被发送且被接收,就完成了交换,进入了LCP开启状态。
应当注意,在链路创建阶段,只是对验证协议进行选择,用户验证将在第2阶段实现。
阶段2:用户验证
在这个阶段,客户端会将自己的身份发送给远端的接入服务器。该阶段使用一种安全验证方式避免第三方窃取数据或冒充远程客户接管与客户端的连接。在认证完成之前,禁止从认证阶段前进到网络层协议阶段。如果认证失败,认证者应该跃迁到链路终止阶段。
在这一阶段里,只有链路控制协议、认证协议,和链路质量监视协议的packets是被允许的。在该阶段里接收到的其他的packets必须被静静的丢弃。
最常用的认证协议有口令验证协议(PAP)和挑战握手验证协议(CHAP)。 认证方式介绍在第三部分中介绍。
阶段3:调用网络层协议
认证阶段完成之后,PPP将调用在链路创建阶段(阶段1)选定的各种网络控制协议(NCP)。选定的NCP解决PPP链路之上的高层协议问题,例如,在该阶段IP控制协议(IPCP)可以向拨入用户分配动态地址。
这样,经过三个阶段以后,一条完整的PPP链路就建立起来了。
五、认证方式
1)口令验证协议(PAP)
PAP是一种简单的明文验证方式。NAS(网络接入服务器,Network Access Server)要求用户提供用户名和口令,PAP以明文方式返回用户信息。很明显,这种验证方式的安全性较差,第三方可以很容易的获取被传送的用户名和口令,并利用这些信息与NAS建立连接获取NAS提供的所有资源。所以,一旦用户密码被第三方窃取,PAP无法提供避免受到第三方攻击的保障措施。
2)挑战-握手验证协议(CHAP)
CHAP是一种加密的验证方式,能够避免建立连接时传送用户的真实密码。NAS向远程用户发送一个挑战口令(challenge),其中包括会话ID 和一个任意生成的挑战字串(arbitrary challengestring)。远程客户必须使用MD5单向哈希算法(one-way hashing algorithm)返回用户名和加密的挑战口令,会话ID以及用户口令,其中用户名以非哈希方式发送。
CHAP对PAP进行了改进,不再直接通过链路发送明文口令,而是使用挑战口令以哈希算法对口令进行加密。因为服务器端存有客户的明文口令,所以服务器可以重复客户端进行的操作,并将结果与用户返回的口令进行对照。CHAP为每一次验证任意生成一个挑战字串来防止受到再现攻击(replay attack)。在整个连接过程中,CHAP将不定时的向客户端重复发送挑战口令,从而避免第3方冒充远程客户(remote client impersonation)进行攻击。
六、PPP协议的应用
PPP协议是目前广域网上应用最广泛的协议之一,它的优点在于简单、具备用户验证能力、可以解决IP分配等。
家庭拨号上网就是通过PPP在用户端和运营商的接入服务器之间建立通信链路。目前,宽带接入正在成为取代拨号上网的趋势,在宽带接入技术日新月异的今天,PPP也衍生出新的应用。典型的应用是在ADSL(非对称数据用户环线,Asymmetrical Digital Subscriber Loop)接入方式当中,PPP与其他的协议共同派生出了符合宽带接入要求的新的协议,如PPPoE(PPP over Ethernet),PPPoA(PPP over ATM)。
利用以太网(Ethernet)资源,在以太网上运行PPP来进行用户认证接入的方式称为PPPoE。PPPoE即保护了用户方的以太网资源,又完成了ADSL的接入要求,是目前ADSL接入方式中应用最广泛的技术标准。
同样,在ATM(异步传输模式,Asynchronous Transfer Mode)网络上运行PPP协议来管理用户认证的方式称为PPPoA。它与PPPoE的原理相同,作用相同;不同的是它是在ATM网络上,而PPPoE是在以太网网络上运行,所以要分别适应ATM标准和以太网标准。
PPP协议的简单完整使它得到了广泛的应用,相信在未来的网络技术发展中,它还可以发挥更大的作用

Tags in this post...

面试题 相关文章推荐
如何配置、使用和清除Smarty缓存
Dec 23 面试题
PHP高级工程师面试问题推荐
Jan 18 面试题
Tomcat Mysql datasource数据源配置
Dec 28 面试题
怎样比较两个类型为String的字符串
Aug 17 面试题
Java提供了哪些企业应用编程接口
Feb 13 面试题
简单介绍Object类的功能、常用方法
Oct 02 面试题
空指针到底是什么
Aug 07 面试题
介绍一下HDLC(High-Level Data Link Control)高层数据链路协议
Jan 21 面试题
C#笔试题集合
Jun 21 面试题
四川internet信息高速公路(C#)笔试题
Feb 29 面试题
软件测试面试题
Oct 21 面试题
网络通讯中,端口有什么含义,端口的取值范围
Nov 23 #面试题
什么是URL
Dec 13 #面试题
HSRP的含义以及如何工作
Sep 10 #面试题
Internet主要有哪些网络群组成
Dec 24 #面试题
你对IPv6了解程度
Feb 09 #面试题
STP的判定过程
Oct 01 #面试题
以思科路由器为例你写下单臂路由的配置命令
Aug 03 #面试题
You might like
关于php操作mysql执行数据库查询的一些常用操作汇总
2013/06/24 PHP
php使用fopen创建utf8编码文件的方法
2014/10/31 PHP
PHP7新增运算符用法实例分析
2016/09/26 PHP
php让json_encode不自动转义斜杠“/”的方法
2020/04/27 PHP
JS location几个方法小姐
2008/07/09 Javascript
基于jquery的表头固定的若干方法
2011/01/27 Javascript
js前台判断开始时间是否小于结束时间
2012/02/23 Javascript
Extjs中使用extend(js继承) 的代码
2012/03/15 Javascript
js自动下载文件到本地的实现代码
2013/04/28 Javascript
js使用removeChild方法动态删除div元素
2014/08/01 Javascript
Javascript中的五种数据类型详解
2014/12/26 Javascript
Jquery实现仿腾讯娱乐频道焦点图(幻灯片)特效
2015/03/06 Javascript
Javascript中的return作用及javascript return关键字用法详解
2015/11/05 Javascript
Angularjs 制作购物车功能实例代码
2016/09/14 Javascript
微信小程序微信支付接入开发实例详解
2017/04/12 Javascript
详解vue.js的devtools安装
2017/05/26 Javascript
JS实现json的序列化和反序列化功能示例
2017/06/13 Javascript
基于jquery trigger函数无法触发a标签的两种解决方法
2018/01/06 jQuery
JointJS JavaScript流程图绘制框架解析
2019/08/15 Javascript
JavaScript 事件代理需要注意的地方
2020/09/08 Javascript
Vue实现穿梭框效果
2020/09/30 Javascript
vue 解决在微信内置浏览器中调用支付宝支付的情况
2020/11/09 Javascript
[03:17]2014DOTA2 国际邀请赛中国区预选赛 四强专访
2014/05/23 DOTA
python常见的格式化输出小结
2016/12/15 Python
Python常见字符串操作函数小结【split()、join()、strip()】
2018/02/02 Python
Django 表单模型选择框如何使用分组
2019/05/16 Python
Python 类,property属性(简化属性的操作),@property,property()用法示例
2019/10/12 Python
使用Python完成15位18位身份证的互转功能
2019/11/06 Python
python 申请内存空间,用于创建多维数组的实例
2019/12/02 Python
Python基于xlutils修改表格内容过程解析
2020/07/28 Python
常用UNIX 命令(Linux的常用命令)
2013/07/10 面试题
亿企通软件测试面试题
2012/04/10 面试题
自考毕业生自我鉴定
2013/11/04 职场文书
学校门卫工作职责
2013/12/07 职场文书
群众路线党课主持词
2014/04/01 职场文书
Html5通过数据流方式播放视频的实现
2021/04/27 HTML / CSS