PPPoE工作原理与帧格式

简介:

以下内容摘自笔者的《网络工程师必读——接入网与交换网》一书(如感兴趣,请加入我的技术圈子:[url]http://group.51cto.com/lycb[/url]一起讨论学习):

4.3.2 PPPoE协议工作原理

PPPoE协议的工作流程包含发现和会话两个阶段,发现阶段是无状态的,目的是获得PPPoE终结端(在局端的ADSL设备上)的以太网MAC地址,并建立一个唯一的PPPoESESSION_ID。发现阶段结束后,就进入标准的PPP会话阶段。
当一个主机想开始一个PPPoE会话,它必须首先进行发现阶段,以识别局端的以太网MAC地址,并建立一个PPPoESESSION_ID。在发现阶段,基于网络的拓扑,主机可以发现多个接入集中器,然后允许用户选择一个。当发现阶段成功完成,主机和选择的接入集中器都有了他们在以太网上建立PPP连接的信息。直到PPP会话建立,发现阶段一直保持无状态的Client/Server(客户/服务器)模式。一旦PPP会话建立,主机和接入集中器都必须为PPP虚接口分配资源。
PPPoE协议会话的发现和会话两个阶段具体进程如下:

1. 发现(Discovery)阶段

在发现(Discovery)阶段中用户主机以广播方式寻找所连接的所有接入集线器(或交换机),并获得其以太网MAC地址。然后选择需要连接的主机,并确定所要建立的PPP会话识别标号。发现阶段有四个步骤,当此阶段完成,通信的两端都知道PPPoESESSION_ID和对端的以太网地址,他们一起唯一定义PPPoE会话。这四个步骤如下:
1)主机广播一个发起分组(PADI),分组的目的地址为以太网的广播地址0xffffffffffffCODE(代码)字段值为0x09SESSION_ID(会话ID)字段值为0x0000PADI包必须至少包含一个服务名称类型的标签(标签类型字段值为0x0101),向接入集中器提出所要求提供的服务。
2)接入集中器收到在服务范围内的PADI包分组,发送PPPoE有效发现提供包(PADO)分组,以响应请求。其中CODE字段值为0x07 SESSION_ID字段值仍为0x0000PADO分组必须包含一个接入集中器名称类型的标签(标签类型字段值为0x0102),以及一个,或多个服务名称类型标签,表明可向主机提供的服务种类。
3)主机在可能收到的多个PADO分组中选择一个合适的PADO分组,然后向所选择的接入集中器发送PPPoE有效发现请求分组(PADR)。其中CODE字段为0x19 SESSION_ID字段值仍为0x0000PADR分组必须包含一个服务名称类型标签,确定向接入集线器(或交换机)请求的服务种类。当主机在指定的时间内没有接收到PADO,它应该重新发送它的PADI分组,并且加倍等待时间,这个过程会被重复期望的次数。
4)接入集中器收到PADR包后准备开始PPP会话,它发送一个PPPoE有效发现会话确认(PADS)分组。其中CODE字段值为0x65 SESSION_ID字段值为接入集中器所产生的一个惟一的PPPoE会话标识号码。PADS分组也必须包含一个接入集中器名称类型的标签确认向主机提供的服务。当主机收到PADS包确认后,双方就进入PPP会话阶段。
【注意】如果主机正在等待接收PADS分组,应该使用具有主机重新发送PADR的相似超时机制。在重试指定的次数后,主机应该重新发送PADI分组。

2. PPP会话阶段

用户主机与接入集中器根据在发现阶段所协商的PPP会话连接参数进行PPP会话。一旦PPPoE会话开始,PPP数据就可以以任何其它的PPP封装形式发送。所有的以太网帧都是单播的。PPPoE会话的SESSION_ID一定不能改变,并且必须是发现阶段分配的值。
PPPoE还有一个PADT分组,它可以在会话建立后的任何时候发送,来终止PPPoE会话,也就是会话释放。它可以由主机或者接入集中器发送。当对方接收到一个PADT分组,就不再允许使用这个会话来发送PPP业务。PADT包不需要任何标签,其CODE字段值为0xa7 SESSION_ID字段值为需要终止的PPP会话的会话标识号码。在发送或接收PADT后,即使正常的PPP终止分组也不必发送。PPP对端应该使用PPP协议自身来终止PPPoE会话,但是当PPP不能使用时,可以使用PADT
以上各个阶段的会话流程可用图4-5描述。
4-5  PPPoE会话建立流程

4.3.3 PPPoE帧格式

对应于上节介绍的两个PPPoE协议会话的两个阶段,PPPoE帧格式也包括两种类型:发现阶段的以太网帧中的类型字段值为0x8863PPP会话阶段的以太网帧中的类型字段值为0x8864,均已得到IEEE的认可。PPPoE分组帧结构如图4-6所示。
4-6  PPPoE帧结构
PPPoE分组中的版本(VER 字段和类型(TYPE)字段长度均为4比特,在当前版本PPPoE建议中这两个字段值都固定为0x1。代码(CODE)字段长度为8比特,根据两阶段中各种数据包的不同功能而值不同。在PPP会话阶段CODE字段值为0x00,发现阶段中的各步骤中的各种数据分组格式参见前面介绍。版本标识号码(SESSION_ID)字段长度为16比特,在一个给定的PPP会话过程中它的值是固定不变的,其中值0xffffff为保留值。长度(LENGTH)字段为16比特长,指示PPPoE净荷长度。发现阶段PPPoE载荷可以为空或由多个标记(TAG)组成,每个标记都是TLV(类型-长度-值)的结构;PPP会话阶段PPPoE载荷为标准的点对点协议包。
本文转自王达博客51CTO博客,原文链接http://blog.51cto.com/winda/6291如需转载请自行联系原作者

茶乡浪子
相关文章
|
2月前
|
存储 缓存 网络协议
计算机网络:思科实验【2-MAC地址、IP地址、ARP协议及总线型以太网的特性】
计算机网络:思科实验【2-MAC地址、IP地址、ARP协议及总线型以太网的特性】
|
2月前
|
存储 缓存 网络协议
|
4月前
|
算法 数据安全/隐私保护 流计算
信道划分&介质访问控制&ALOHA协议&CSMA协议&CSMA/CD协议&轮询访问MAC协议
信道划分&介质访问控制&ALOHA协议&CSMA协议&CSMA/CD协议&轮询访问MAC协议
199 1
|
4月前
|
存储 缓存 网络协议
ARP协议的工作原理
ARP协议的工作原理
|
6月前
|
缓存 网络协议 Shell
网络协议格式 | 以太网帧、ARP数据报、IP数据报、UDP数据报、TCP数据报
网络协议格式 | 以太网帧、ARP数据报、IP数据报、UDP数据报、TCP数据报
61 0
|
缓存 网络协议 网络架构
以太网数据链路层、Ethernet_II帧格式、IEEE802.3帧格式,以太网的MAC地址的组成,ARP地址解析协议的工作原理,单播帧、组播帧、广播帧的区别
数据链路层,Ethernet_II帧格式、IEEE802.3帧格式,帧格式的区分以及链路层每种帧格式有什么作用,怎么区别分辨帧格式,以太网MAC地址的组成,ARP地址解析协议原理、什么是单播帧?什么是组播数据帧?什么是广播帧?...............
以太网数据链路层、Ethernet_II帧格式、IEEE802.3帧格式,以太网的MAC地址的组成,ARP地址解析协议的工作原理,单播帧、组播帧、广播帧的区别
|
缓存 网络协议 网络架构
ARP协议和路由器工作原理
ARP协议和路由器工作原理
234 0
ARP协议和路由器工作原理
|
网络协议 网络架构
第四章TCP/IP网络层设备路由器
路由是指路由器从一个接口上收到数据包,根据数据包的目的地址进行定向并转发到另一个 接口的过程,路由通常与桥接来对比,路由工作包含两个基本的动作,一是确定最佳路径, 二是通过网络传输信息,路由分为静态路由和动态路由和直连路由三种来源
264 0
第四章TCP/IP网络层设备路由器
|
网络协议 C语言
arp、ethernet、icmp、udp、ip协议的C语言实现(计算机网络协议栈实验)
arp、ethernet、icmp、udp、ip协议的C语言实现(计算机网络协议栈实验)
390 0
arp、ethernet、icmp、udp、ip协议的C语言实现(计算机网络协议栈实验)
|
运维 网络协议 Shell
第四章 TCP/IP 网络层设备路由器
学习TCP/IP网络层设备路由器
100 0
第四章 TCP/IP 网络层设备路由器