PPPoE协议(RFC2516)中文
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
A Method for Transmitting PPP Over Ethernet
(PPPoE)
在以太网上传输PPP的方法
RFC2516
目录
1.前言 (3)
2.简介 (3)
3.协议总述 (3)
4.Payloads 有效载荷 (4)
5.Discovery阶段 (5)
5.1. PPPoE Active Discovery Initiation数据包(PADI) (6)
5.2. PPPoE Active Discovery Offer 数据包(PADO) (6)
5.3. PPPoE Active Discovery Request 数据包(PADR) (6)
5.4. PPPoE Active Discovery Session-confirmation 数据包(PADS) (6)
5.5. The PPPoE Active Discovery Terminate数据包(PADT) (7)
6.PPP会话阶段 (7)
7.LCP方面的考虑 (7)
8.其它方面的考虑 (8)
9.安全方面的考虑 (8)
10.参考文献 (8)
附录 A -- TAG_TYPE和TAG_VALUE (8)
附录B -- 数据包的几个例子: (10)
1.前言
点到点协议(PPP,参考文献[1])提供在点到点连路上传送多协议数据报的标准方法。
本文档描述在以太网上建立PPP会话以及封装PPP数据报的方法。
可行性
本说明书试图提供PPP所定义的工具,如链路控制协议(Link Control Protocol,LCP),
网络层控制协议(Network-layer Control Protocols, NCP),认证以及其它机制。这
些功能要求在通信双方之间存在点到点的关系,而不是在以太网和其他多访问环境
中所出现的多点关系。
本规范可用于同一个以太网上的多个主机通过一个或多个跨接(桥接)调制解调器
向多个目的主机建立PPP会话。主要用于采用提桥接以太网拓扑结构的宽带远程
访问技术中,由服务提供商维护PPP会话。
本文档描述的PPPoE是RedBack Networks, RouterWare, UUNET 及其它厂商所采
用的在以太网上封装PPP的方法。
2.简介
现代接入技术需要面对有几个互相冲突的设计目标。人们希望通过同一个家庭接入设备来连接到远程站点上的多个主机,同时(又希望在使用习惯上)提供与拨号上网(使用PPP)类似的访问控制和计费功能。在很多接入技术中,把多个主机连接到家庭接入设备的最经济的方法就是通过以太网。另外,还想尽量保持设备的低成本同时要求不改变或很少改变其配置。
以太网上的PPP(PPPoE)提供了通过简单桥接接入设备把一个网络的多个主机连接到远程接入集线器的功能。使用该模型,每一个主机使用自己的PPP协议栈,呈现给用户的还是熟悉的用户接口。访问控制、计费以及业务类型都能基于每一个用户,而不是基于站点。
为了提供以太网上的点到点连接,每一个PPP会话必须知道对端的以太网地址,并建立一个唯一的会话标识符。PPPoE包含一个(以太网地址)发现协议来提供这个功能。
3.协议总述
PPPoE分为两个阶段,即Discovery(地址发现)阶段和PPP会话阶段。当某个主机希望发起一个PPPoE会话时,它必须首先执行Discovery来确定对方的以太网MAC地址并建立起一个PPPoE会话标识符SESSION_ID。虽然PPP定义的是端到端的对等关系,Discovery却是天生的一种客户端-服务器关系。在Discovery的过程中,由主机(作为客户端)来发现接入集线器(Access Concentrator,作为服务器)。根据网络的拓扑结构,可能存在不止一个能和主机进行通信的接入集线器。Discovery阶段允许主机发现所有的接入集线器并从中选择一个。当Discovery阶段成功完成之后,主机和接入集线器两者都具备了用于在以太网上建立点到点连接所需的所有信息。
Discovery阶段保持无状态(stateless)直到建立起一个PPP会话。一旦PPP会话建立,主机和访问集中器两者都必须为一个PPP虚拟接口分配资源。
4.Payloads 有效载荷
这里定义了下面所示的数据包格式。payload的内容将在Discovery和PPP的章节中描述。
以太网的帧格式如下所示:
1
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| DESTINATION_ADDR |
| (6 octets) |
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| SOURCE_ADDR |
| (6 octets) |
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| ETHER_TYPE (2 octets) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
~ ~
~ payload ~
~ ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| CHECKSUM |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
DESTINATION_ADDR域是一个以太网单播目的地址或者以太网广播地址(0xffffffff)。
对于Discovery数据包来说,该域的值是在Descovery章节中定义的单播或者多播地址。
对于PPP会话流来说,该域必须是Descovery阶段已确定的通信对方的单播地址。
SOURCE_ADDR域必须包含源设备的以太网MAC地址。
ETHER_TYPE设置为0x8863(Discovery阶段)或者0x8864(PPP会话阶段)。
采用PPPoE时,以太网帧的payload如下所示:
1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| VER | TYPE | CODE | SESSION_ID |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| LENGTH | payload ~
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+