PPPoE

一。简述

我们都知道,PPP协议本身具备通过用户名和密码的形式进行认证的功能。但是,PPP协议只适合于点到点的网络类型中。为了将PPP协议应用在以太网上,可以使用PPPoE协议。

PPPoE(英语:Point-to-Point Protocol Over Ethernet):以太网上的点对点协议,是将点对点协议(PPP)封装在以太网(Ethernet)框架中的一种网络隧道协议。由于协议中集成PPP协议,所以实现出传统以太网不能提供的身份验证、加密以及压缩等功能,也可用于缆线调制解调器(cable modem)和数字用户线路(DSL)等以以太网协议向用户提供接入服务的协议体系。

本质上,它是一个允许在以太网广播域中的两个以太网接口间创建点对点隧道的协议,描述了如何将PPP帧封装在以太帧中。

Linux系统常用的pppd为例,支持PPP接口上面的IPIPv6IPX网络层协议。

它使用传统的基于PPP的软件来管理一个不是使用串行线路而是使用类似于以太网的有向分组网络的连接。这种有登陆和口令的标准连接,方便了接入供应商的记费。并且,连接的另一端仅当PPPoE连接接通时才分配IP地址,所以允许IP地址的动态复用。

PPPoE协议的基本架构:PPPoE协议采用了Client/Server模式。在PPPoE协议协议的标准术语中,运行PPPoE Client程序的设备成为Host,运行PPPoE Server程序的设备成为AC。

二。PPPoE报文的格式

若以太帧的类型字段的值为0x8863或0x8864,则表示该以太帧的载荷数据是一个PPPoE报文。

PPPoE报文分为PPPoE HeaderPPPoE Payload两个部分。在PPPoE Header中,VER字段(版本字段)的值总是取0x1,Type字段的值总是取0x1,Code字段是用来表示不同类型的PPPoE报文的,Length字段用来表示整个PPPoE报文的长度,Session-ID字段用来区分不同的PPPoE会话(PPPoE Session)。

三。PPPoE的工作过程

PPPoE的工作过程分为两个不同的阶段,即Discovery阶段(发现阶段)PPP Session阶段(PPP会话阶段)

发现阶段:由于传统的PPP连接是创建在串行链路或拨号时创建的ATM虚电路连接上的,所有的PPP帧都可以确保通过电缆到达对端。但是以太网是多路访问的,每一个节点都可以相互访问。以太帧包含目的节点的物理地址(MAC地址),这使得该帧可以到达预期的目的节点。 因此,为了在以太网上创建连接而交换PPP控制报文之前,两个端点都必须知道对端的MAC地址,这样才可以在控制报文中携带MAC地址。PPPoE发现阶段做的就是这件事。除此之外,在此阶段还将创建一个会话ID,以供后面交换报文使用。

1.PPP Discovery阶段

在PPPoE发现阶段,Host与AC之间会交互4中不同类型的PPPoE报文,分别是PADI报文(PPPoE Active Discovery Initiation)、PADO报文(PPPoE Active Discovery  Offer)、PADR报文(PPPoE Active Discovery Request)、PADS报文(PPPoE Active Discovery  Session-confirmation)。

(1)Host会以广播方式发送一个PADI报文,目的是寻找网络中的AC,并告诉AC自己想要获得的服务类型信息。

在PADI报文中的Payload中,包含的是若干个具有Type-Length-Value结构的Tag字段,而这些字段表达了Host想要获得的各种服务类型信息。

客户端到服务器

如果一个用户想要使用DSL拨号连入Internet,那么他的计算机必须首先在其ISP的网络服务提供点(POP)找到DSL访问集中器(DSL-AC)。在以太网上通讯只能通过MAC地址。由于计算机不知道DSL-AC的MAC地址,于是就在以太网上广播一个PADI报文。这个报文中包含发送者的MAC地址。

PADI报文可能被一个以上的DSL-AC接收。 只有可以提供“服务名称”(Service-Name)的DSL-AC设备才应该回复。

注意:PADI报文中的Session-ID字段的值为0。

(2)AC在接收到PADI报文后,会将PADI报文中所请求的服务于自己能够提供的服务进行比较。AC如果能够提供Host所请求的服务,则单播恢复一个PADO报文;如果不能提供,则不作任何的回应。

服务器到客户端

一旦用户计算机发送了PADI报文,DSL-AC就会使用PADI中提供的MAC地址回复一个PADO报文。PADO报文中包含了DSL-AC的MAC地址、名称以及服务名。如果多于一个POP的DSL-AC回复了PADO报文,用户计算机就使用提供的名称和服务来从中选择一个。

注意:PADO报文中的Session-ID字段的值为0。

(3)若网络中有多个AC,则Host就可能接收到来自不同的AC所回应的PADO报文。通常情况下,Host会选择最先收到的PADO报文所对应的AC来作为自己的PPPoE Server,并且向这个AC单播发送一个PADR报文。

客户端到服务器

当用户计算机收到一个来自DSL-AC的可接受的PADO报文后,就会发送一个PADR报文给DSL-AC,用来确认接受发送PADO报文的DSL-AC所提供的PPPoE连接。

注意:PADR报文中的Session-ID字段的值为0。

(4)AC在收到PADR报文之后,会确定出一个PPPoE Session-ID,并在发送给Host的单播PADS报文中包含上这个PPPoE Session-ID。

服务器到客户端

上面的PADR报文由DSL-AC的PADS报文进行确认,并在其中携带一个会话ID。用户计算机与此DSL-AC的连接现在就完整创建了。

Host在接收到PADS报文并获知了PPPoE Session-ID之后,便标志着Host与AC之间已经成功建立了PPPoE Session。

(5)PADT报文:

任何一方

PADT为PPPoE Active Discovery Termination简称
  这个报文终结用户计算机与POP的的连接,可由用户计算机或DSL-AC任意一方发送。

2.PPPoE Session阶段

一旦连接的双方知道了对端的MAC地址,会话就创建了。

在PPP Session阶段,双方Host与AC之间交互的仍是以太帧,但是这些以太帧中携带了PPP帧。

通过PPPoE的中间作用,在PPP Session阶段Host与AC之间就可以交互PPP帧。通过PPP帧的交互,Host与AC便可经历PPP的Link Establishment阶段,Authentication阶段和Network Layer Protocol阶段,最终实现IP报文的交互。

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小柒憨憨吖~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值