PPP协议
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协议包含三组件:
- 链路控制协议LCP
- 网络控制协议NCP
- 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比PAP方法更安全,因为不在线路上传送明文密码,而是传送经过摘要算法加工过的随机序列。同时CHAP中,身份认证可以随时进行,包括在双方正常通信过程中,因此,非法用户就算截获并成功破解了一次密码,此密码也将在一段时间内失效。CHAP对端系统要求很高,因为需要多次进行身份质询、响应。这需要耗费较多的CPU资源,因此只用在对安全要求很高的场合。
当身份认证通过之后,会进入NCP连接建立阶段。
NCP连接
NCP根据网络层的不同协议互相交换网络层特定的网络控制分组,PPP协议两端的网络层可以运行不同的网络层协议,但仍然可以使用同一个PPP协议进行通信。NCP会配置客户端的IP地址,之后客户机就可以上网。
注意,在用户上网的时候,仍需要PPP协议对IP包进行封装传输数据。
PPPoE
PPP协议要求进行通信的双方是点到点的关系,不适于广播类型的以太网和另外一些多点访问类型的网络,于是产生了PPPoE协议(Point-to-Point
Protocol over
Ethernet)。它不仅为使用桥接以太网接入的用户提供了一种宽带接入手段,同时还给你提供方便的接入控制和计费。每个接入用户均建立一个独一无二的PPP的会话。
PPP协议的更多相关文章
- 2016.6.17 计算机网络复习要点之PPP协议
点对点协议PPP是目前使用最广泛的数据链路层协议. 1.PPP协议的特点: **我们知道因特网用户通常需要连接到某个ISP才能接入到因特网,PPP协议就是用计算机和ISP进行通信时所使用的数据链路层协 ...
- PPP协议总结
PPP协议总结 PPP协议是一种在点到点链路上传输.封装网络数据包的数据链路层协议,PPP支持同步/异步方式的链路上. 一. PPP支持的链路类型 1. 同步和异步专线 2. 同步拨号链路. 3. 异 ...
- ppp协议介绍(转)
原文:https://www.cnblogs.com/gtarcoder/p/6259105.html PPP协议PPP协议是二层(数据链路层)协议,常用于拨号上网时客户端向服务器获取IP地址.PPP ...
- [na]ppp协议链路认证-chap认证流程
Point-to-Point Protocol (PPP)协议是广域网链路的一种协议,不同于局域网的ethernetII协议 PPP协商过程,分三步:LCP.认证.NCP. 一 协议概述 PPP包含以 ...
- 数据链路层--PPP协议
数据链路层使用的信道主要有两种类型:点对点信道和广播信道. 点对点 路由器在转发分组时只使用了下面的三层. 链路是从一个结点到相邻结点的一段物理线路,中间没有其他交换结点. 必须有一些必要的通信协议来 ...
- 路由器配置PPP协议 CHAP验证 PAP验证
路由器配置PPP协议 CHAP验证 PAP验证 来源 https://www.cnblogs.com/tcheng/p/5967485.html PAP是两次握手,明文传输用户密码进行认证:CHAP是 ...
- 路由器配置深入浅出—路由器接口PPP协议封装及PAP和CHAP验证配置
知识域: 是针对点对点专线连接的接口的二层封装协议配置 PPP的PAP和CHAP验证,cpt支持,不一定要在gns3上做实验. 路由器出厂默认是hdlc封装,修改为ppp封装后,可以采用pap验证或者 ...
- ppp协议解析二
转:http://blog.csdn.net/yangzheng_yz/article/details/11526747 PPP(Point to Point Protocol,点对点协议)协议是为在 ...
- PPP协议解析一
转:http://blog.csdn.net/yangzheng_yz/article/details/11526475 在网上搜集了一些有关PPP的资料,整理了一下,不能说是原创,仅供大家学习研究. ...
随机推荐
- CentOS配置本地光盘yum源
在实际使用linux的过程中,会经常出现安装的发行版有的软件包没有安装的情况,这时,就需要用户从如下两种操作中做出选择:1.手动安装rpm包.2.用yum命令安装软件包. 选择1手动安装的时候经常会遇 ...
- 在Excel里用vba给合并的单元格添加注释
Excel里使用VBA对已经合并的单元格添加注释,直接使用AddComment会报: 运行时错误 '1004':应用程序定义或者对象定义错误 找了很多文章都没找到怎么解决,最后发现在AddCommen ...
- 异步记载数据时page是怎么计算的
最近一直在完善基于Busybox做的ARM Linux的根文件系统,由于busybox是一个精简的指令集组成的简单文件系统,其优点就是极精简,满足了Linux基本的启动需求,由于它几乎没有什么后台服务 ...
- xib加载的两种方式
•Xib文件的加载 Ø方法1 NSArray *objs = [[NSBundle mainBundle] loadNibNamed:@"AppView" owner:nil ...
- 【iOS开发】在 App 中加入 AdMob 广告 - 入门介绍与编程技巧
前言 虽然在App中加入广告来盈利是比较低级的商业化方式,但对于个人开发者或者小团队开发者来说,做出一个简单易用的免费小工具(举个栗子),在里面加入一些广告,如果用的人多,也是可以带来一些可观的收入的 ...
- js定义对象的几种容易犯的错误
//js定义对象的几种容易犯的错误function Person() { getName = function (){ console.info(1); }; return this;}//Perso ...
- ML-分类与逻辑回归
布尔分类(binary classification)问题: 训练集:$S=\{(x^{(i)}, y^{(i)})\}$ 输入:特征向量$x$ 期望输出:$y\in\{0, 1\}$ 这里使用的假设 ...
- 进军Linux
大二的时候学习Java,学完Java SE之后就放弃了这条道路,踏上了嵌入式之路.那时候约定好,选择了DSP,从C2000开始学起,基础仅仅是会C51,有C语言和Java的基础.这几年随着项目的需求变 ...
- 2017年1月3日 星期二 --出埃及记 Exodus 21:29
2017年1月3日 星期二 --出埃及记 Exodus 21:29 If, however, the bull has had the habit of goring and the owner ha ...
- linux批量查找文件内容
find ./ -name "*.php" | xargs grep '要查找的内容' 如果需要查找的内容包含特殊符号,比如$等等,grep要加参数 find ./ -name & ...