原文:https://www.cnblogs.com/gtarcoder/p/6259105.html

PPP协议
PPP协议是二层(数据链路层)协议,常用于拨号上网时客户端向服务器获取IP地址。PPP支持在各种物理类型的点对点串行线路上传输上层协议报文。它具有很多特性,比如支持多协议、提供可选的身份认证服务、以各种方式压缩数据、支持动态地址协商、支持多链路捆绑等等。

PPP协议帧格式
PPP数据帧格式如下所示:

7E FF 03       7E
标志 地址 控制 协议域 信息域 校验 标志
1B 1B 1B 2B 缺省1500B 2B 1B
 每个PPP数据帧都是以一个标志字节开始和结束的,该字节为0x7E.

接下来分别为地址域,值固定位0xFF(因为点对点协议,对方的地址固定);控制域(固定位0x3); 协议域,用来区分PPP数据帧中信息域所承载的数据报文的内容,几种常见的协议如下所示:

0xC021 LCP协议报文
0xC023 PAP协议的认证报文
0xC223 CHAP协议的认证报文
0x8021 NCP 协议报文
0x0021 IP数据报文

PPP协议栈
PPP更像是一种应用,类似一个拨号上网的应用软件,拨号成功后,本地主机就可以正常上网,可以使用TCP/IP协议,而完全感觉不到PPP的存在。PPP协议包含三组件:

  1. 链路控制协议LCP
  2. 网络控制协议NCP
  3. PPP扩展协议(如Multilink Protocol)

其中,LCP协议完成数据链路的配置和测试;NCP协议完成点对点通信设备之间网络层通信所需要的参数的配置;

工作流程
(1)当用户拨号接入ISP后,就建立了一条用户PC机到ISP的物理连接
(2)用户PC机向ISP发送一系列的LCP分组(封装成多个PPP帧),以便建立LCP连接
(3)这些分组及其响应选择了将要使用的一些PPP参数
(4)NCP协议给新接入的用户PC机分配了一个临时的IP地址,这样用户PC机就成了因特网上一个有IP地址的主机了
(5)用户通信完毕后,NCP释放网络层连接,收回原来释放出去的IP地址
(6)LCP释放数据链路层连接
(7)释放物理连接
其图示如下所示。

LCP连接
当用户PC机通过调制解调器呼叫ISP服务器,服务器能够检测到载波信号,双方建立了物理连接,之后PPP进入“链路建立”状态,其目的是建立链路层的LCP连接。
通信双方通过请求-响应帧来进行通信,主要是协商一些配置参数。包括链路上的最大帧长,所使用的鉴别协议的规约(如果有的话),以及不使用PPP帧中的地址和控制字段。协商完成后,LCP连接就建立完成,接着进入鉴别阶段。

鉴别状态(身份认证)
用户在拨号上网的时候需要输入用户名和密码来向服务器确定自己的身份,这个认证过程是在LCP连接建立完成之后进行的。
身份认证主要有两种方法:口令验证协议(PAP, Password Authentication Protocol)和质询握手协议(Challenge Handshake Authentication Protocol, CHAP)。如果双方在LCP配置的时候达成一致,也可以不使用任何身份认证的方法。
PAP协议使用两次握手,明文传送用户名和密码的方式进行身份认证;CHAP使用三次握手,MD5加密和随机数的方式进行身份认证。

CHAP认证方式

CHAP比PAP方法更安全,因为不在线路上传送明文密码,而是传送经过摘要算法加工过的随机序列。同时CHAP中,身份认证可以随时进行,包括在双方正常通信过程中,因此,非法用户就算截获并成功破解了一次密码,此密码也将在一段时间内失效。CHAP对端系统要求很高,因为需要多次进行身份质询、响应。这需要耗费较多的CPU资源,因此只用在对安全要求很高的场合。
当身份认证通过之后,会进入NCP连接建立阶段。

NCP连接
NCP根据网络层的不同协议互相交换网络层特定的网络控制分组,PPP协议两端的网络层可以运行不同的网络层协议,但仍然可以使用同一个PPP协议进行通信。NCP会配置客户端的IP地址,之后客户机就可以上网。
注意,在用户上网的时候,仍需要PPP协议对IP包进行封装传输数据

PPPoE
PPP协议要求进行通信的双方是点到点的关系,不适于广播类型的以太网和另外一些多点访问类型的网络,于是产生了PPPoE协议(Point-to-Point Protocol over Ethernet)。它不仅为使用桥接以太网接入的用户提供了一种宽带接入手段,同时还给你提供方便的接入控制和计费。每个接入用户均建立一个独一无二的PPP的会话。

ppp协议介绍(转)的更多相关文章

  1. BOT、BT、PPP形式介绍(1)

    BOT.BT.PPP形式介绍 BOT1.什么是BOT     BOT是英文Build-Operate-Transfer的缩写,即“建设-经营-转让”.实质上是基础设施投资.建设和经营的一种方式,以政府 ...

  2. OSPF协议介绍及配置 (上)

    OSPF协议介绍及配置 (上) 一.OSPF概述 回顾一下距离矢量路由协议的工作原理:运行距离矢量路由协议的路由器周期性的泛洪自己的路由表,通过路由的交互,每台路由器都从相邻的路由器学习到路由,并且加 ...

  3. 以太网接口TCP/IP协议介绍,说的很容易懂了

      以太网接口TCP/IP协议介绍,说的很容易懂了  TCP/IP协议,或称为TCP/IP协议栈,或互联网协议系列. TCP/IP协议栈(按TCP/IP参考模型划分) 应用层 FTP SMTP HTT ...

  4. 计算机网络基础篇-ppp协议

    所谓的PPP协议是点对点协议,是目前使用最广泛的数据链路层的协议.大部分用户使用电话线拨号入网的,从用户计算机到ISP的链路所使用的数据链路层协议就是PPP协议. 首先介绍下拨号入网的过程.因特网服务 ...

  5. PPP协议、PPPoE协议、L2TP协议的关系

    1. 简述 首先对这3中协议做一个简单的描述: 协议 协议类型 描述 PPP 点对点链路层协议 应用最广泛的点对点协议,可应用在多种网络,改善了SLIP协议的不足 PPPoE 点对点链路层协议 对PP ...

  6. PPP协议

    PPP协议PPP协议是二层(数据链路层)协议,常用于拨号上网时客户端向服务器获取IP地址.PPP支持在各种物理类型的点对点串行线路上传输上层协议报文.它具有很多特性,比如支持多协议.提供可选的身份认证 ...

  7. TCP/IP 协议介绍

    转自http://blog.jobbole.com/104886/ 一.TCP/IP 协议介绍 在介绍 HTTP 协议之前,先简单说一下TCP/IP协议的相关内容.TCP/IP协议是分层的,从底层至应 ...

  8. 第二章 ZAB协议介绍

    ZAB ( ZooKeeper Atomic Broadcast , ZooKeeper 原子消息广播协议)是zookeeper数据一致性的核心算法. ZAB 协议并不像 Paxos 算法那样,是一种 ...

  9. JSON-RPC轻量级远程调用协议介绍及使用

    这个项目能够帮助开发人员利用Java编程语言轻松实现JSON-RPC远程调用.jsonrpc4j使用Jackson类库实现Java对象与JSON对象之间的相互转换.jsonrpc4j包含一个JSON- ...

随机推荐

  1. 华策光通信: LED可见光通信室内定位项目获最具投资价值奖

    3月21日上午,一场持续3个多小时的O2O领域的创业DemoShow在深圳科兴科学园会议中心激烈上演.来自华策光通信的基于LED可见光通信室内精准定位项目作为LED与室内定位领域的跨界融合项目经过精彩 ...

  2. Laravel路由除了根目录全报404错误

    Route::get('hello',function(){ return 'Hello World!'; }); 在laravel/app/Http/routes.php下添加上面的语句,然后再浏览 ...

  3. D.王者荣耀交流协会——PSP Daily(测评人:贾男男)

    D.王者荣耀交流协会——PSP Daily(测评人:贾男男) 一.基于NABCD评论作品,及改进建议 每个小组评论其他小组beta发布的作品.1.根据(不限于)NABCD评论作品的选题;2.评论作品对 ...

  4. OO第一阶段作业总结

    对于OO这门课,学长学姐偶尔提起,大家都略有耳闻,但是并没有将其和计组相提并论.因此,在刚开始接触的时候,并不认为其会比计组难到哪里去,然而事实证明,还是不要想当然去判断,以及不提前学好JAVA对于O ...

  5. web153

    电影网站:www.aikan66.com 项目网站:www.aikan66.com 游戏网站:www.aikan66.com 图片网站:www.aikan66.com 书籍网站:www.aikan66 ...

  6. Hibernate的使用技巧②

    1.Hibernate统计记录的数量 Criteria c = session.createCriteria(User.class.getName());        c.setProjection ...

  7. 团队作业4Alpha冲刺(真.三英战吕布团队)

    第一天 2018/6/13 1.1 今日完成任务情况以及遇到的问题. 1.1.1:完成前台部分界面优化,后台进行代码优化 1.1.2团队前台部分js.jquery部分功能实现有难度. 1.2 明天任务 ...

  8. PythonWeb 服务部署文档及迁移到Linux相关

    pythonWeb的部署(Django+Uwsgi): 1. 部署服务器上需要的Python3.6环境: 安装集成了python3.6 和pip ,virtualenv虚拟环境 的Anaconda(A ...

  9. PHP 多进程开发

    pcntl_fork(); https://blog.csdn.net/wujiangwei567/article/details/77006724 https://blog.csdn.net/qq_ ...

  10. 面试问题总结二(技术能力-PHP)----Ⅱ

    20.支付功能的实现? 答:在线支付一般来说有两种实现方式,一种是调用各个银行提供的接口,另一种是使用第三方集成好的支付功能,两种方式各有优劣.对于第三方支付来说会需要提交企业5证来验证,还会有部分手 ...