`
xiaoer_1982
  • 浏览: 1882178 次
  • 性别: Icon_minigender_2
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论
阅读更多

一、介绍

  PPP(Point-to-Point Protocol点到点协议)是为在同等单元之间传输数据包这样的简单链路设计的链路层协议。这种链路提供全双工操作,并按照顺序传递数据包。设计目的主要是用来通过拨号或专 线方式建立点对点连接发送数据,使其成为各种主机、网桥和路由器之间简单连接的一种共通的解决方案。

  二、 PPP链路建立过程

  PPP协议中提供了一整套方案来解决链路建立、维护、拆除、上层协议协商、认证等问题。PPP协议包含这样几个部分:链路控制协议LCP(Link Control Protocol);网络控制协议NCP(Network Control Protocol);认证协议,最常用的包括口令验证协议PAP(Password Authentication Protocol)和挑战握手验证协议CHAP(Challenge-Handshake Authentication Protocol)。

  LCP负责创建,维护或终止一次物理连接。NCP是一族协议,负责解决物理连接上运行什么网络协议,以及解决上层网络协议发生的问题。

  下面介绍PPP链路建立的过程:

  PPP链路状态机如图1所示。一个典型的链路建立过程分为三个阶段:创建阶段、认证阶段和网络协商阶段。

  阶段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协议的简单完整使它得到了广泛的应用,相信在未来的网络技术发展中,它还可以发挥更大的作用。

分享到:
评论

相关推荐

    PPP协议协商过程,抓包数据分析

    PPP(Point-to-Point ...这份资料“PPP协议协商过程.pdf”应该提供了详细的步骤解释和实例分析,对于理解PPP协议的工作机制非常有帮助。无论是GPRS编程还是其他PPP应用,这些知识都将对理解网络通信提供重要洞察。

    经典PPP协议C语言源程序

    这个“经典PPP协议C语言源程序”包含的是PPP协议的C语言实现,是学习和理解PPP协议工作原理的一个宝贵资源。 PPP协议由多个阶段组成,包括LCP(Link Control Protocol)、NCP(Network Control Protocols)以及认证...

    PPP 协议函数实现

    ### PPP协议函数实现 #### 概述 本应用笔记基于M68HC08系列微控制器(MCU),实现了一种广泛接受且流行的互联网协议——点对点协议(PPP),用于与互联网上的其他主机交换UDP/IP(用户数据报协议/互联网协议)数据...

    PPP协议和PPPoE协议

    PPP协议(点对点协议)是一种在点对点链路上传输多协议数据包的标准方法,它是数据链路层的一种封装协议,用于在两个通信实体之间建立、配置、维护和终止链路连接。PPP协议在设计时就考虑到了与多种网络层协议的配合...

    华为网络基础协议系列05-PPP协议

    ### 华为网络基础协议系列05-PPP协议:深入解析与应用 #### PPP协议概述与发展历程 PPP(Point-to-Point Protocol)协议,作为一项关键的链路层技术,自1994年正式发布以来,凭借其强大的功能与灵活性,在网络通信...

    基于51单片机的PPP协议实现C51_PPP

    标题中的“基于51单片机的PPP协议实现C51_PPP”指的是在51系列单片机上实现点对点协议(PPP)的过程。51单片机是广泛应用的微控制器,常用于嵌入式系统开发。PPP协议则是一种在两个通信设备之间建立直接链路的网络...

    ppp 协议c语言源码

    PPP协议在C语言中的实现涉及到多个方面的知识,包括链路控制、网络层协议处理、错误检测与纠正以及数据封装。 1. 链路控制(LCP, Link Control Protocol): LCP是PPP协议的核心部分,负责建立、配置、测试和终止...

    实验17 路由器接口PPP 协议封装和PAP、CHAP 验证配置(改写).pdf.docx

    #### PPP协议封装与PAP、CHAP验证配置 ##### 1. PPP协议概述 点对点协议(Point-to-Point Protocol, PPP)是一种数据链路层协议,用于通过点对点连接传输多协议数据包。PPP协议支持多种网络层协议,如IP、IPX等,并且...

    ppp协议结构的解析

    在本文中,我们将深入探讨PPP协议的结构和它在链路层连接中的实现。 PPP协议的基本结构包括三个主要部分:Header、Information Field和Frame Check Sequence(FCS)。Header部分用于识别帧的开始,通常包含地址字段...

    实验十一PPP协议的CHAP验证.doc

    PPP 协议的 CHAP 验证机制 一、实验目的 * 了解 PPP 协议的基本概念和原理 * 掌握 PPP 配置方法 二、PPP 协议概述 PPP(Point-to-Point Protocol,点到点协议)是用于在点到点线路上(拨号或专线)传输数据的...

    ppp协议实现的源程序

    在本项目中,提供的源代码是PPP协议的一种实现,可以在Visual C++环境中编译运行,对于深入理解PPP协议的运作机制十分有帮助。 首先,我们来探讨PPP协议的基础知识。PPP协议由多个组件构成,包括LCP(Link Control ...

    PPP协议应用,LCP,NCP

    ### PPP协议应用、LCP与NCP详解 #### 一、PPP协议概述 PPP(Point-to-Point Protocol,点对点协议)是一种广泛应用于串行线路的链路层协议,主要用于建立点对点连接来发送数据。它最初是为了克服SLIP(Serial Line ...

    ppp协议,很详细的

    ppp协议的描述,有很详细的代码;链路层,网络层,看了很明白的

    关于ppp协议的详细文档

    PPP协议最初设计时是为了解决串行线路如调制解调器连接的问题,但它同样适用于其他类型的连接,包括以太网。 本文档,RFC2516,详细描述了在以太网上传输PPP(PPPoE,Point-to-Point Protocol over Ethernet)的...

    ppp协议(中兴通讯)

    PPP协议在RFC1661、RFC1662和RFC1663中被标准化,它克服了SLIP的局限性,提供了一种更加灵活和强大的通信机制。 PPP协议由三个关键组件构成: 1. **数据封装方法**:PPP能够将IP数据报封装到串行链路中,支持异步...

    PPP协议-ZTE

    PPP协议克服了早期SLIP(Serial Line Internet Protocol)协议的局限,如仅支持IP的问题,它在串行线路上传输数据时提供了更全面的功能。 PPP协议由三个主要部分组成: 1. **数据封装方法**:PPP支持异步和同步...

    PPP协议拨号传输Udp数据

    ### PPP协议拨号传输Udp数据 #### 一、引言 PPP(Point-to-Point Protocol,点对点协议)是一种广泛使用的数据链路层协议,主要用于通过拨号或永久连接建立点对点连接,例如电话线上的调制解调器连接。PPP支持多种...

Global site tag (gtag.js) - Google Analytics