彻底搞懂PPP协议 & PPPoE协议 您所在的位置:网站首页 以太网帧头部出现的字段 彻底搞懂PPP协议 & PPPoE协议

彻底搞懂PPP协议 & PPPoE协议

2024-04-18 09:27| 来源: 网络整理| 查看: 265

参考学习:一文看懂PPP协议——PPP协议简介_永远是少年啊的博客-CSDN博客 PDF获取: PPPoE协议.pdfPPP协议一、PPP概述

PPP(point-to-point协议),即点对点协议,是数据链路层封装协议的一种。

PPP协议工作在串行接口和串行链路上,一般来说,PPP协议所构成的网络只允许双方之间通信,不允许像以太网一样接入交换机后接入其他的主机或设备。

PPP协议的一个重要功能便是提供了身份验证功能。但是PPP协议虽然提供了通信双方身份验证的功能,其协议中没有提供地址信息,而以太网是一个广播类型的多路访问网络,因而PPP协议是无法直接应用在以太网链路上的。

PPP协议在数据链路层封装的是PPP帧,PPP帧格式如下:

PPP帧格式

上述字段介绍如下:

FLAG

在PPP协议中,头部和尾部都有一个Flag字段,Flag字段标识着一个PPP帧的开始和结束。FLAG字段长度8bit,固定为0x7e,因为PPP协议将FLAG设置为PPP帧的开始和结束,因此在一个PPP帧中不允许出现0x7e字段的数据,如果出现这样的数据,则需要进行特殊形式的转义。

Address

在PPP协议中,因为进行通信的只有两方,因此一方发送的数据总是另一方,这一点PPP协议不像以太网协议一样,必须使用MAC地址来表明数据帧的发送者和接收者。PPP协议中的Address字段取值固定为0xff

Control

长度8bit,取值固定0x03,无特殊作用。

Protocol

长度16bit,其取值类似于以太网帧的类型,表明了上层数据的类型。

FCS

长度16bit,用于帧校验。一个设备在收到PPP帧后会进行PPP帧校验,如果发现PPP在传输过程中出错,该帧会被立即丢弃。PPP协议没有纠错和重传机制。 二、PPP链路建立

PPP帧从开始建立到能够正常转发数据包需要一段时间,并且需要经历协商验证过程。PPP链路建立共分5个阶段,过程如下:

PPP链路建立过程图在Link Dead阶段,PPP链路进行初始化,当物理层接口连通后,状态自动进入到Link Establishment阶段。进入到Link Establishment阶段,通信双方互相发送LCP报文,进行参数协商,如果参数协商失败,则会回退到Link Dead阶段。如果参数协商成功:并且双方需要认证,则进入到Authentication阶段,如果不需要认证,则会直接进入到Network Layer Protocol阶段。在Authentication阶段,通信双方会进行认证。在Network Layer Protocol阶段,双方会再次进行协商,这次协商主要协商网络层参数,比如发送自己的IP地址、子网掩码等信息,看是否存在IP地址冲突或者不属于一个网段等情况。如果参数协商一致,那么此时就可以进行正常的数据包传送了。在Link Termination阶段,代表PPP链接终止。除了Link Dead阶段之外,任何协商过程失败都会进入这一阶段;而如果处于Network Layer Protocol阶段,管理员手动关闭了链路,也会进入这一状态;三、PPP认证

PPP协议认证有PAP和CHAP两种方式。PAP认证

如果采取PAP认证方式,在Link Establishment阶段中,一方会对另一方发送包含用户名和密码的Authentication Request报文,另一方会在自己的用户名密码列表中查找是否存在该用户名和密码。如果认证通过,则会向对方发送一个Authentication ACK报文,如果认证不通过,则会向对方发送一个Authentication Nak报文。而到了Authentication阶段,验证方和被验证方会交互重复上述过程。

注意,如果采用PAP认证方式,认证的用户名和口令都是采用明文传输,在安全性上存在一定的风险。————————————————CHAP认证

与PAP方式相比,CHAP认证方式大体与之相同,但是CHAP认证方式会将用户名和密码以密文的形式包含在报文中,因此在安全性方面有很大的提升。PPPoE协议 参考学习:一文看懂PPPoE协议——PPPoE协议简介_永远是少年啊的博客-CSDN博客 什么是PPPoE?PPPoE解决了哪些问题? - 华为一、PPPoE概述

网络运营商如何对用户上网行为进行收费和控制 ? 针对特定的数据包,就必须识别发送方的身份。

在以太网链路上,以太网技术虽然具有简单易用,成本低等特点,但是以太网广播网络的属性,使得其通信双方无法相互验证对方的身份,因而通信是不安全的。在PPP链路上,由于PPP协议自带认证功能,因此可以完美的解决上述问题。但是,PPP链路又无法实现多用户上网的需求。为了解决这个矛盾问题,解决用户上网行为管理和收费的问题,提出了将PPP数据帧封装在以太网数据帧里边从而在以太网网络中传输的技术——PPPoE技术。这里的PPP,就是指的PPP协议数据帧,而o就是over的意思,E就是Ethernet的意思,因此,PPPoE形象的说就是“在以太网上的PPP协议”

PPPoE技术可以将用户连接到远程接入设备上,并提供良好访问控制功能,提供了一种经济的用户接入技术,并实现了对用户的控制。

二、PPPoE基本概念

PPPoE在数据链路层依旧是采用以太网格式的数据帧进行封装,但是在以太网封装完毕后,会进行PPPoE的数据头封装,PPPoE包括PPPoE头和PPPoE数据段两个部分,而PPPoE数据段部分中又包含了PPP帧和正常的数据。

特别注意:这里的PPP帧并不是一个完整的PPP帧,它只包含了PPP帧的Protocol字段和正常的数据。其他的字段(如FLAG、FCS等)在PPPoE建立过程中并不需要。

PPPoE数据包封装如下所示:

PPPoE数据包格式

表1-1 PPPoE报文字段说明

报文字段说明Ver域4bits,PPPoE版本号,值为0x1。Type域4bits,PPPoE类型,值为0x1。Code域8bits,PPPoE报文类型。Code域为0x00,表示会话数据。Code域为0x09,表示PADI报文;Code域为0x07,表示PADO或PADT报文;Code域为0x19,表示PADR报文;Code域为0x65,表示PADS报文。Session_ID域16bits,对于一个给定的PPP会话,该值是一个固定值,并且与以太网Source_address和Destination_address一起实际地定义了一个PPP会话。值0xffff为将来的使用保留,不允许使用。Length域16bits,定义PPPoE的Payload域长度。不包括以太网头部和PPPoE头部的长度。三、PPPoE建立流程

PPPoE协议采用Client/Server模式,普通用户一般为Client,而运营商为Server。如PPPoE接入组网图所示,基本的PPPoE组网中的角色有PPPoE ClientPPPoE Server,以及RADIUS设备

PPPoE接入组网图

PPPoE的建立分为Discover阶段PPP Session阶段

Discover阶段:主要是选择PPPoE服务器,并确定所要建立的会话标识符Session ID。PPP Session阶段:即执行标准的PPP过程,包括LCP协商、PAP/CHAP认证、NCP协商等阶段。PPPoE工作原理实现过程PPPoE发现阶段和PPP会话阶段时序图Discover阶段

指设备为用户分配接入的Session ID,用来标识一条用户与设备之间的PPPoE虚拟链路。数据通信流程如下:

Discover阶段当Client要运行PPPoE时,首先以广播的形式发送一个PADI(PPPoE Active Discovery Initiation)报文,该报文中含有Client端要请求的服务信息PPPoE服务器在收到该报文后,会以单播的方式发送一个PADO(PPPoE Active Discovery Offer)报文,对Client端的PADI报文进行回应。PPPoE Client端在收到这个报文后,会向PPPoE Server发送PADR(PPPoE Active Discovery Request)报文。在这个报文中,PPPoE Client会创建并携带一个PPPoE Session。PPPoE Server还会向客户端发送PADS(PPPoE Active Discovery Session-confirmation)报文,表示收到了该Session ID。发送PADT(PPPOE Active Discovery Terminate)报文,终止连接

到目前为止,Discover阶段结束,PPPoE客户端和PPPoE服务端已经协商好了Session-ID,以后的PPPoE会话就会使用这个Session-ID了。

PPP Session阶段

PPP会话阶段包括LCP协商、PAP/CHAP认证、NCP协商等阶段。需结合PPP链路建立过程来分析..

image.pngLCP协商

进入PPP Session阶段之后,首先进行LCP协商,LCP协商过程如下。

PPPoE Client与PPPoE Server互相发送LCP Configure-Request报文。双方收到Configure-Request报文后,根据报文中协商选项支持情况做出适当的回应(请参见下表)。若两端都回应了Configure-ACK,则标志LCP链路建立成功,否则会继续发送Request报文:如果在设定的LCP协商间隔与协商次数内,对端回应了Configure-ACK,则LCP链路建立成功。如果在超过了设定的LCP协商次数后,对端尚未回应Configure-ACK,则终止LCP协商。LCP链路建立成功后,PPPoE Server会周期性地向PPPoE Client发送LCP Echo-Request报文,然后接收PPPoE Client回应的Echo-Reply报文,来探测LCP链路是否正常,以维持LCP连接。

表1-2 回应报文类型列表

回应报文类型含义Configure-ACK若完全支持对端的LCP选项,则回应Configure-ACK报文,报文中必须完全协带对端Request报文中的选项。Configure-NAK若支持对端的协商选项,但不认可该项协商的内容,则回应Configure-NAK报文,在Configure-NAK的选项中填上本端期望的内容,如:对端MRU值为1500,而本端期望MRU值为1492,则在Configure-NAK报文中填上1492。Configure-Reject若不能支持对端的协商选项,则回应Configure-Reject报文,报文中带上不能支持的选项PAP/CHAP认证

LCP协商完成后,会进入认证阶段,该分为PAP认证和CHAP认证两种认证方式。

PAP认证PAP为两次握手协议,是通过用户名和密码来对用户进行认证,并且是以明文的方式传递用户名和密码。PPPoE Server(或者RADIUS服务器)根据本端的用户表查看用户名和密码是否正确。适用于网络安全要求相对较低的环境。

CHAP认证

Challenge -> Response -> Success / Failure

CHAP认证为三次握手协议,也是由PPPoE Server(或者RADIUS服务器)根据本端的用户表查看用户名和密码是否正确, 并且是以暗文的方式传递。但是CHAP认证方式只在网络上传输用户名,不传输用户密码,安全性比PAP要高。

NCP协商NCP协商的主要功能是协商PPP报文的网络层参数,如IPCP、IPv6CP等。PPPoE Client主要通过IPCP协议来获取访问网络的IP地址或IP地址段。NCP协商的流程与LCP流程类似。NCP协商成功之后,PPPoE Client可以正常访问网络。

NCP协商成功之后,即为PPPoE Client上线,此时PPPoE Server(通常为BRAS设备),会给RADIUS服务器发送计费请求报文,通过RADIUS服务器对PPPoE Client进行计费。

总结

PPPoE具有以下特点:

功能上: - PPPoE由于集成了PPP协议,实现了传统以太网不能提供的身份验证、加密以及压缩等功能。 - PPPoE通过唯一的Session ID可以很好的保障用户的安全性。 应用上: - PPPoE拨号上网作为一种最常见的方式让终端设备能够连接ISP从而实现宽带接入。 - PPPoE可用于缆线调制解调器(Cable Modem)和数字用户线路(DSL)等以太网线,通过以太网协议向用户提供接入服务的协议体系。


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有