分享

常用的PPPoE拨号工作过程,你知道多少?

 幽州浅水 2019-05-11

PPoE采用的client/Server模式。在PPPoE协议的标准术语中,运行PPPoE Client程序成为Host,运行PPPoE Server程序称为AC。大多数家用路由器充当Host,而运营商路由器充当AC。

PPPoE报文格式

如果以太帧的类型字段的值为0x8863或者0x8864,则表明以太帧的负载数据就是一个PPPoE报文。PPPoE报文分为 PPPoE Header和PPPoE Payload两个部分。在 PPPoE Header中,VER字段(版本字段)的值总是取0x1,Type字段的值也总是取0x1,Code字段是用来表示不同类型的 PPPoE报文的, Length字段用来表示整个 PPPOE报文的长度, Session-ID字段用来区分不同的 PPPOE会话( PPPOE Session)。

常用的PPPoE拨号工作过程,你知道多少?

PPPoE的工作过程

PPPoE拨号连接包括Discovery(发现)和Session(PPP会话)两个阶段。下面将分别介绍这两个阶段。

1、Discovery阶段

此阶段用来建立连接,当一个用户主机想开始一个PPPoE会话时,首先必须进行发现阶段以识别PPPoE Server的以太网MAC地址,并建立一个PPPoE会话标识(Session ID)。在此阶段Host与AC之间会交互4中不同类型的PPPoE报文。

  1. PADI(PPPoE Active Discovery Initiation )报文( PPPoE Header中code字段的值为段的值为0x09)
  2. PADO( PPPOE Active Discovery Offer )报文( PPPoE Header中code字段的值为0x07)
  3. PADR(PPPoE Active Discovery Session-confirmation)报文( PPPoE Header中Code字段的值为0x19)
  4. PADS( PPPoE Active Discovery Session-confirmation)报文( PPPoE Header中Code字段的值为0x65)

常用的PPPoE拨号工作过程,你知道多少?

Discovery阶段的基本工作流程

PADI:如果要建立一条PPPoE连接,首先PPPoE客户端就要以广播的方式发送一个PADI数据包,PADI数据包包括客户端请求的服务。

PADO:当PPPoE服务器(BRAS)收到一个PADI包之后,它会判断自己是否能够提供服务,如果能够提供服务的话,就会向客户端发送PADO数据包来进行回应。PADO数据包包括PPPoE服务器名称和与PADI数据包中相同的服务名。如果PPPoE服务器不能为PADI提供服务,则不允许用PADO数据包响应。

PADR:由于PADI是以广播的形式发送出去的,PPPoE客户端可能收到不止一个PADO数据包,它将审查所有接收到的PADO数据包并根据其中的服务器名或所提供的服务选择一个PPPoE服务器,并向选中的服务器发送PADR数据包。PADR数据包包括客户端所请求的服务。

PADS:当PPPoE服务器收到客户端发送的PADR包时,它就准备开始一个PPPoE会话,它为PPPoE会话创建一个唯一的PPPoE会话ID,并向客户端发送PADS包作为响应。

当发现阶段正常结束后,通信的两端都获得会话标识(Session ID)和对方的MAC地址,它们一起唯一定义一个PPPoE会话

2、PPP Session阶段

当PPPoE进入PPP会话阶段后,客户端和服务器将进行标准的PPP协商,PPP协商通过后,数据通过PPP封装发送。PPP报文作为PPPoE帧的净荷被封装在以太网帧内,发送到PPPoE链路的对端。Session ID必须是Discovery阶段确定的ID,且在会话过程中保持不变,MAC地址必须是对端的MAC地址。

常用的PPPoE拨号工作过程,你知道多少?

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多