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...

面试题 相关文章推荐
你常见到的runtime exception
Sep 05 面试题
为数据库创建索引都需要注意些什么
Jul 17 面试题
Oracle里面常用的数据字典有哪些
Feb 14 面试题
索引覆盖(Index Covering)查询含义
Feb 18 面试题
如何找出EMP表里面SALARY第N高的employee
Dec 05 面试题
在子网210.27.48.21/30种有多少个可用地址?分别是什么?
Jul 27 面试题
简述Linux文件系统通过i节点把文件的逻辑结构和物理结构转换的工作过程
Apr 17 面试题
你经历的项目中的SCM配置项主要有哪些?什么是配置项?
Nov 04 面试题
传统软件工程与面向对象的软件工程有什么区别
May 31 面试题
介绍一下Java中标识符的命名规则
Feb 03 面试题
UNIX文件系统常用命令
May 25 面试题
J2EE中的容器都包括哪些
Aug 21 面试题
网络通讯中,端口有什么含义,端口的取值范围
Nov 23 #面试题
什么是URL
Dec 13 #面试题
HSRP的含义以及如何工作
Sep 10 #面试题
Internet主要有哪些网络群组成
Dec 24 #面试题
你对IPv6了解程度
Feb 09 #面试题
STP的判定过程
Oct 01 #面试题
以思科路由器为例你写下单臂路由的配置命令
Aug 03 #面试题
You might like
PHP反射使用实例和PHP反射API的中文说明
2014/07/02 PHP
2014年10个最佳的PHP图像操作库
2014/07/14 PHP
实例讲解yii2.0在php命令行中运行的步骤
2015/12/01 PHP
PHP保存session到memcache服务器的方法
2016/01/19 PHP
PHP入门教程之图像处理技巧分析
2016/09/11 PHP
php字符集转换
2017/01/23 PHP
Laravel-admin之修改操作日志的方法
2019/09/30 PHP
Laravel 登录后清空COOKIE的操作方法
2019/10/14 PHP
Laravel框架处理用户的请求操作详解
2019/12/20 PHP
JS版网站风格切换实例代码
2008/10/06 Javascript
js 页面执行时间计算代码
2009/03/04 Javascript
<script defer> defer 是什么意思
2009/05/10 Javascript
JavaScript设计模式之单件模式介绍
2014/12/28 Javascript
jquery表单验证插件validation使用方法详解
2017/01/20 Javascript
完美实现js焦点轮播效果(二)(图片可滚动)
2017/03/07 Javascript
使用Vue.js开发微信小程序开源框架mpvue解析
2018/03/20 Javascript
vue form 表单提交后刷新页面的方法
2018/09/04 Javascript
nodejs中内置模块fs,path常见的用法说明
2020/11/07 NodeJs
原生jQuery实现只显示年份下拉框
2020/12/24 jQuery
js canvas实现五子棋小游戏
2021/01/22 Javascript
[11:12]2018DOTA2国际邀请赛寻真——绿色长城OpTic
2018/08/10 DOTA
[01:19:33]DOTA2-DPC中国联赛 正赛 iG vs VG BO3 第一场 2月2日
2021/03/11 DOTA
浅谈python中的正则表达式(re模块)
2017/10/17 Python
Python实现的直接插入排序算法示例
2018/04/29 Python
python实现寻找最长回文子序列的方法
2018/06/02 Python
python 利用for循环 保存多个图像或者文件的实例
2018/11/09 Python
Python2与Python3的区别实例总结
2019/04/17 Python
pyinstaller打包多个py文件和去除cmd黑框的方法
2019/06/21 Python
pytorch如何冻结某层参数的实现
2020/01/10 Python
python Protobuf定义消息类型知识点讲解
2021/03/02 Python
编写一个 C 函数,该函数在一个字符串中找到可能的最长的子字符串,且该字符串是由同一字符组成的
2015/07/23 面试题
大学生学业生涯规划
2014/01/05 职场文书
成绩报告单家长评语
2014/12/30 职场文书
交警失职检讨书
2015/01/26 职场文书
运动会宣传语
2015/07/13 职场文书
苹果电脑mac os中货币符号快捷输入
2022/02/17 杂记