PPPOE协议简介

【PPPOE协议简介】modem接入技术面临一些相互矛盾的目标,既要通过同一个用户前置接入设备连接远程的多个用户主机,又要提供类似拨号一样的接入控制,计费等功能,而且要尽可能地减少用户的配置操作 。
PPPOE的目标就是解决上述问题,1998年后期问世的以太网上点对点协议(PPPoverEthernet)技术是由Redback网络公司、客户端软件开发商RouterWare公司以及Worldcom子公司UUNETTechnologies公司在IETFRFC的基础上联合开发的 。通过把最经济的局域网技术-以太网和点对点协议的可扩展性及治理控制功能结合在一起,网络服务提供商和电信运营商便可利用可靠和熟悉的技术来加速部署高速互联网业务 。它使服务提供商在通过数字用户线、电缆调制解调器或无线连接等方式,提供支持多用户的宽带接入服务时更加简便易行 。同时该技术亦简化了最终用户在选择这些服务时的配置操作 。
PPPOE特点
PPPOE在标准PPP报文的前面加上以太网的报头,使得PPPOE提供通过简单桥接接入设备连接远端接入设备,并可以利用以太网的共享性连接多个用户主机,在这个模型下,每个用户主机利用自身的ppp堆栈,用户使用熟悉的界面 。接入控制,计费等都可以针对每个用户来进行 。
PPPOE的优点:
.?安裝与操作方式类似于以往的拨号网络模式,方便用戶使用 。
.?用户处的XDSL调制解调器无须任何配置 。
.?答应多个用户共享一个高速数据接入链路 。
.?适应小型企业和远程办公的要求 。
.?终端用户可同时接入多个ISP,这种动态服务选择的功能可以使 ISP轻易创建和提供新的业务 。
.?兼容现有所有的XDSLModem和DSLAM 。
.?可与ISP有接入结构相融合 。
PPPOE的帧格式 参数取值ETHER_TYPE: 0x8863 Discovery Stage
0x8864 PPP Session Stage
CODE:
0x00 PPP Session Stage
0x09 PPPOE Active Discovery Initiation (PADI) packet
0x07 PPPOE Active Discovery Offer (PADO) packet
0x19 PPPOE Active Discovery Request (PADR) packet
0x65 PPPOE Active Discovery Session-confirmation
(PADS) packet
0xa7 PPPOE Active Discovery Terminate (PADT) packet
TAG_TYPES:
0x0000 End-Of-List
0x0101 Service-Name
0x0102 AC-Name
0x0103 Host-Uniq
0x0104 AC-Cookie
0x0105 Vendor-Specific
0x0110 Relay-Session-Id
0x0201 Service-Name-Error
0x0202 AC-System-Error
0x0203 Generic-Error
PPPOE的实现过程 
建立一个以太网上点对点协议会话包括两个阶段:1. 发现(Discovery)阶段
在Discovery过程中用户主机以广播方式寻找可以连接的所有接入设备,获得其以太网MAC地址 。然后选择需要连接的用户主机并最后获得所要建立的PPP会话的SESSION_ID 。在Discovery过程中节点间是客户端-服务器关系,一个用户主机(客户端)最终要发现一个接入设备(服务器) 。在网络拓朴中,一般有不止一个的接入设备可以通信,Discovery阶段答应用户主机发现所有的接入设备,并从中选择一个 。当Discovery阶段结束时,用户主机和接入设备之间都获得了可供以太网上建立PPP连接的全部信息 。Discovery阶段保持无连接状态直到一个PPP会话的建立 。一旦PPP连接建立,则用户主机和接入设备都必须为PPP虚拟端口分配资源 。
PPP 会话阶段
用户主机与在发现阶段确定的接入设备进行PPP协商 。这个协商过程与标准的PPP协商并没有任何区别 。在PPP会话阶段节点间是对等关系 。
发现(Discovery)阶段详述
典型的发现(Discovery)阶段共包括4个步骤:
1. 用户主机发出PPPOE有效发现初始(PADI)包 。以太网目的地址为广播地址0xffffffff,CODE 字段为0x09,SESSION_ID为0x0000 。PADI包必须至少包含一个服务名称类型(Service-Name)的标签(标签类型字段为0x0101),向接入设备提出所要求提供的服务 。一个完整的PADI(包括PPPOE头)不能超过1484字节,以留下充足的预留给agent设备增加Relay-Session-Id标识 。

推荐阅读