PPP: Point-to-Point Protocol,链路层协议。用户实现点对点的通讯。 PPPoE的工作过程分成两个阶段,即发现阶段(Discorvery)和PPP会话阶段。

发现阶段(Discovery Stage)的具体过程如下:

  1. 用户主机用广播的方式发出PADI (PPPOE Active Discovery Initiatio) 包,准备去获得所有可连接的接入设备(获得其MAC地址);
  2. 接入设备收到PADI包后,返回PADO (PPPOE Active Discovery Offer) 作为回应;
  3. 用户主机从收到的多个PADO包中,根据其名称类型名或者服务名,选择一个合适的接入设备,然后发送PADR (PPPOE Active Discovery Request) 包,另外如果一个用户主机在发出PADI后在规定时间内没有收到PADO,则会重发PADI;
  4. 接入设备收到PADR包后,返回PAS (PPPOE Active Discovery Session-confirmation) 包,其中包含了一个唯一session ID,双方进入PPP会话阶段。

PPP会话阶段,即在session建立后的通讯阶段。 另外,无论是用户主机还是接入设备可随时发起PADT包,中止通讯。 与PPPoE相对应的获得地址和认证的是DHCP,但普通家庭用户很少直接使用DHCP方式接入互联网(这里说的DHCP不是自家路由器上的DHCP,而是互联网运营商的DHCP)。PPPoE和DHCP的区别是:前者需要身份验证才能上网,后者什么都不需要,直接接上网线即可。当然了,具体获得IP地址的方式还有很多。

PPP协议介绍 PPP 点对点协议(Point to Point Protocol)属于二层协议,隧道协议的一种。为在点对点连接上传输多协议数据包提供了一个标准方法。PPP 最初设计是为两个对等节点之间的 IP 流量传输提供一种封装协议。在 TCP/IP中它是一种用来同步调制连接的数据链路层协议(OSI 模式中的第二层),替代了原来非标准的第二层协议,即 SLIP。除了 IP 以外 PPP 还可以携带其它协议,包括 DECnet 和 Novell 的 Internet 网包交换(IPX)。

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

PPP协议主要包括三部分:LCP(Link Control Protocol)链路控制协议、NCP(Network Control Protocol)网络控制协议和PPP的扩展协议(如Multilink Protocol),比如认证协议,最常用的包括口令验证协议PAP(Password Authentication Protocol)和挑战握手验证协议CHAP(Challenge-Handshake Authentication Protocol)。

功能 PPP具有动态分配IP地址的能力,允许在连接时刻协商IP地址; PPP支持多种网络协议,比如TCP/IP、NetBEUI、NWLINK等; PPP具有错误检测能力,但不具备纠错能力,所以PPP是不可靠传输协议; ppp支持数据压缩 PPP具有身份验证功能。 PPP可以用于多种类型的物理介质上,包括RS232串口链路、电话线ISDN线路、移动电话和光纤(例如SDH),PPP也用于Internet接入。 包格式介绍 PPP的帧格式

7E

FF

03

协议

信息

FCS

7E

字节

1

1

1

2

<=1500

2

1

PPP采用7EH作为一帧的开始和结束标志(F);其中地址域(A)和控制域(C)取固定值(A=FFH,C=03H) ;协议域(两个字节)取0021H表示IP分组,取8021H表示网络控制数据,取C021H表示链路控制数据;帧校验域(FCS)也为两个字节,它用于对信息域的校验。若信息域中出现7EH,则转换为(7DH,5EH)两个字符。当信息域出现7DH时,则转换为(7DH,5DH)。当信息流中出现ASCII码的控制字符(即小于20H),即在该字符前加入一个7DH字符。

封装:一种封装多协议数据报的方法。PPP 封装提供了不同网络层协议同时在同一链路传输的多路复用技术。PPP 封装精心设计,能保持对大多数常用硬件的兼容性,克服了SLIP不足之处的一种多用途、点到点协议,它提供的WAN数据链接封装服务类似于LAN所提供的封闭服务。所以,PPP不仅仅提供帧定界,而且提供协议标识和位级完整性检查服务。

链路控制协议:一种扩展链路控制协议,用于建立、配置、测试和管理数据链路连接。

网络控制协议:协商该链路上所传输的数据包格式与类型,建立、配置不同的网络层协议;

配置:使用链路控制协议的简单和自制机制。该机制也应用于其它控制协议,例如:网络控制协议(NCP)。

为了建立点对点链路通信,PPP 链路的每一端,必须首先发送 LCP 包以便设定和测试数据链路。在链路建立,LCP 所需的可选功能被选定之后,PPP 必须发送 NCP 包以便选择和设定一个或更多的网络层协议。一旦每个被选择的网络层协议都被设定好了,来自每个网络层协议的数据报就能在链路上发送了。

看到总共多了8个字节,其中首尾字节都是帧的起始和结束标志位,A表示地址,C表示控制。 协议的两个字段,表示后面信息部分的数据协议是什么,包括:

0x0021——信息字段是IP数据报 0xC021——信息字段是链路控制数据LCP 0x8021——信息字段是网络控制数据NCP 0xC023——信息字段是安全性认证PAP 0xC025——信息字段是LQR 0xC223——信息字段是安全性认证CHAP 链路将保持通信设定不变,直到有 LCP 和 NCP 数据包关闭链路,或者是发生一些外部事件的时候(如,休止状态的定时器期满或者网络管理员干涉)。

工作流程 当用户拨号接入 ISP 时,路由器的调制解调器对拨号做出确认,并建立一条物理连接(底层up)。PC 机向路由器发送一系列的 LCP 分组(封装成多个 PPP 帧)。

这些分组及其响应选择一些 PPP 参数,和进行网络层配置(此前如有PAP或CHAP验证先要通过验证),NCP 给新接入的 PC机分配一个临时的 IP 地址,使 PC 机成为因特网上的一个主机。

通信完毕时,NCP 释放网络层连接,收回原来分配出去的 IP 地址。接着,LCP 释放数据链路层连接。最后释放的是物理层的连接。

和HDLC的区别 PPP是面向字符的,HDLC是面向位的。

PPP协议是一种点—点串行通信协议。PPP具有处理错误检测、支持多个协议、允许在连接时刻协商IP地址、允许身份认证等功能,还有其他。PPP提供了3类功能:成帧;链路控制协议LCP;网络控制协议NCP。PPP是面向字符类型的协议。

应用范围

PPP是一种多协议成帧机制,它适合于调制解调器、HDLC位序列线路、SONET和其它的物理层上使用。它支持错误检测、选项协商、头部压缩以及使用HDLC类型帧格式(可选)的可靠传输。

PPP提供了三类功能:

1 成帧:可以毫无歧义的分割出一帧的起始和结束。

2 链路控制:有一个称为LCP的链路控制协议,支持同步和异步线路,也支持面向字节的和面向位的编码方式,可用于启动路线、测试线路、协商参数、以及关闭线路。

3 网络控制:具有协商网络层选项的方法,并且协商方法与使用的网络层协议独立。

任何第3层的协议要通过拨号或者专用链路穿越广域网时,都必须封装一种数据链路层的协议(比如,PPP、SLIP——串行链路Internet协议、ARAP——AppleTalk远程接入协议)。尽管某些公司仍然使用Novell IPX和AppleTalk协议为主机提供远程接入,但是TCP/IP已经成为了今天企业网中使用的主要协议。

两种认证方式 一种是PAP,一种是CHAP。相对来说PAP的认证方式安全性没有CHAP高。PAP在传输password是明文的,而CHAP在传输过程中不传输密码,取代密码的是hash(哈希值)。PAP认证是通过两次握手实现的,而CHAP则是通过3次握手实现的。PAP认证是被叫提出连接请求,主叫响应。而CHAP则是主叫发出请求,被叫回复一个数据包,这个包里面有主叫发送的随机的哈希值,主叫在数据库中确认无误后发送一个连接成功的数据包连接

常见问题 1)什么是LCP?

链路控制协议(LCP) LCP 建立点对点链路,是 PPP 中实际工作的部分。LCP 位于物理层的上方,负责建立、配置和测试数据链路连接。LCP 还负责协商和设置 WAN 数据链路上的控制选项,这些选项由 NCP 处理。

2)NCP是什么?

PPP允许多个网络协议共用一个链路,网络控制协议 (NCP) 负责连接PPP(第二层)和网络协议 (第三层)。对于所使用的每个网络层协议,PPP 都分别使用独立的 NCP来连接。例如,IP 使用 IP 控制协议 (IPCP),IPX 使用 Novell IPX 控制协议 (IPXCP)。

2 PPPoE PPPoE是Point-to-Point Protocol over Ethernet的简称,可以使以太网的主机通过一个简单的桥接设备连到一个远端的接入集中器上。通过pppoe协议,远端接入设备能够实现对每个接入用户的控制和计费。我们平常的拨号上网就是PPPoE,所以实际是基于PPP协议。另外PPPoA 有时也被使用(PPP over ATM)。

PPPoE服务器是一些企业级路由器提供的一项功能,能够在局域网中实现和电信营运商提供的ADSL相类似的服务。

目前流行的宽带接入方式ADSL就使用了PPPoE协议。随着低成本的宽带技术变得日益流行,DSL(Digital Subscriber Line)数字用户线技术更是使得许多计算机在互联网上连接。但是这也增加了DSL服务提供商们对于网络安全的担心。通过ADSL方式上网的计算机大都是通过以太网卡(Ethernet)与互联网相连的。同样使用的还是普通的TCP/IP方式,并没有附加新的协议。另外一方面,调制解调器的拨号上网,使用的是PPP协议,即Point to Point Protocol,点到点协议,该协议具有用户认证及通知IP地址的功能。PPP over Ethernet(PPPoE)协议,是在以太网络中转播PPP帧信息的技术,尤其适用于ADSL等方式。

PPPoE的报文就是在PPP的报文前面再加上以太网的报头,使得PPPoE可以通过简单桥接设备连入远端接入设备。但这里我们发现PPPoE报文中的PPP内容与原始的PPP并不相同。

也可参考整个PPPoE的报文(包括Ethernet Frame):

由来 modem接入技术面临一些相互矛盾的目标,既要通过同一个用户前置接入设备连接远程的多个用户主机,又要提供类似拨号一样的接入控制,计费等功能,而且要尽可能地减少用户的配置操作。 PPPOE的目标就是解决上述问题,1998年后期问世的以太网上点对点协议(PPPoverEthernet)技术是由Redback网络公司、客户端软件开发商RouterWare公司以及Worldcom子公司UUNET Technologies公司在IETFRFC的基础上联合开发的。通过把最经济的局域网技术-以太网和点对点协议的可扩展性及管理控制功能结合在一起,网络服务提供商和电信运营商便可利用可靠和熟悉的技术来加速部署高速互联网业务。它使服务提供商在通过数字用户线、电缆调制解调器或无线连接等方式,提供支持多用户的宽带接入服务时更加简便易行。同时该技术亦简化了最终用户在选择这些服务时的配置操作。

作用 PPPoE服务器可以通过给内网用户分配账号来实现对内网用户网络使用的管理,结合有些路由器具备的上网行为管理功能和带宽管理功能,通常还能对用户的进行上网行为的管理,如禁止使用IM软件、P2P软件;限制游戏,下载,网页提交,代理服务等,同时也可以限制用户上下行带宽,对带宽弹性管理,分时段、分地址段管理以上所有上网行为。

https://blog.csdn.net/answer3lin/article/details/87395991 作者:北极 链接:https://www.zhihu.com/question/25847423/answer/31563282 来源:知乎 著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

https://blog.csdn.net/xinyuan510214/article/details/51361853 https://juejin.im/post/6844903991889887245