第 1 章 - Azure RTOS NetX PPPoE 客户端简介

以太网 PPP (PPPoE) 允许主机通过以太网(而非传统的基于字符的串行线路通信)连接到 PPP 服务器。 “RFC 2516:一种传输以太网 PPP (PPPoE) 的方法”中介绍了 PPPoE 的技术详细信息。 本文档重点介绍了 Azure RTOS NetX PPPoE 模块的详细信息。

若要通过以太网提供点到点连接,每个 PPP 会话必须了解远程对等方的以太网地址,并建立唯一的会话标识符。

根据 RFC 2516,PPPoE 包含两个阶段:“发现”阶段和“PPPoE 会话”阶段。 当主机(客户端)希望启动 PPP 会话时,它必须首先执行发现步骤来查找 PPPoE 服务器。 此步骤还允许服务器和客户端识别彼此的以太网 MAC 地址和 SESSION_ID,它们将用于 PPP 会话的其余部分。

以太网帧如下所示:

Ethernet frame

PPPoE 的以太网有效负载如下所示:

Ethernet payload

PPPoE 发现阶段

PPPoE 发现阶段允许客户端从网络上的所有可用服务器中选择一台服务器,并高效地在交换 PPP 帧之前创建会话。 在发现阶段结束时,客户端和服务器都应同意使用唯一的会话 ID,同时双方都需要知道对等方的 MAC 地址。

发现消息 代码 方向
PPPoE 主动发现开始 (PADI) 0x09 从客户端到广播
PPPoE 主动发现要约 (PADO) 0x07 从服务器到客户端
PPPoE 主动发现请求 (PADR) 0x19 从客户端到服务器
PPPOE 主动发现会话-确认 (PADS) 0x65 从服务器到客户端
PPPoE 主动发现终止 (PADT) 0xa7 可从服务器或客户端启动

所有发现以太网帧都将 ETHER_TYPE 字段设置为值 0x8863。

PPPoE 会话消息

在客户端和服务器创建会话后,可以将 PPP 帧作为 PPPoE 会话消息进行传输。 在会话期间,SESSION_ID 不能更改,并且必须是在发现阶段由服务器分配的值。

所有 PPPoE 会话以太网帧都将 ETHER_TYPE 字段设置为值 0x8864。