原文: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. Python参数传递,既不是传值也不是传引用

    面试的时候,有没有被问到Python传参是传引用还是传值这种问题?有没有听到过Python传参既不是传值也不是传引用这种说法?一个小小的参数默认值也可能让代码出现难以查找的bug? 如果你也遇到过上面 ...

  2. 第十二周PSP

  3. 20135234mqy-——信息安全系统设计基础第六周学习总结

    处理器体系结构 4.1 Y86指令集体系结构 4.1.1程序员可见状态 Y86程序中的每条指令都会读取或修改处理器状态的某些部分,称为程序员可见状态. 4.1.2 Y86指令 4个指令:irmovl, ...

  4. BufferedInputStream 缓冲输入字节流 -------上

    package com.BufferedInputStreamUse; import java.io.BufferedInputStream; import java.io.File; import ...

  5. C#简单窗体应用程序(三)

    使用C#创建窗体应用程序的基本步骤: (1)创建项目: (2)用户界面设计: (3)属性设置: (4)编写程序代码: (5)保存.调试.运行: 例题:设计歌曲列表界面,效果如下: 第一步:创建项目: ...

  6. SQL之联合查询学习笔记

    定义: 联合查询可合并多个相似的选择查询的结果集.等同于将一个表追加到另一个表,从而实现将两个表的查询组合到一起,使用谓词为UNION或UNION ALL. 语法格式 UNION 可以将两个或两个以上 ...

  7. 团队作业4 Alpha冲刺《嗨!你的快递》

    仓库地址:https://git.coding.net/day_light/ourexpressmaster1.git   张新宇 1第一天日期:2018/6/13 1.1今日任务 进行核心功能数据匹 ...

  8. 软工网络15团队作业8——Beta阶段敏捷冲刺(Day6)

    提供当天站立式会议照片一张 每个人的工作 1.讨论项目每个成员的昨天进展 赵铭: 数据库整理. 吴慧婷:我的世界界面完成部分. 陈敏: 我的世界功能--学习情况功能完成. 吴雅娟:我的世界功能--学习 ...

  9. 使用 oracle pipelined 返回一个结果集;

    1.使用 create or replace package refcursor_pkg is -- Author : mr.yang -- Created : 5/14/2017 5:13:42 P ...

  10. js异步上传图片

    <!DOCTYPE html><html xmlns = "http://www.w3.org/1999/xhtml" ><head><m ...