PPPoE 协议基础知识分享~

PPPoE

PPPoE 协议的基本概念

我们先来看一下家庭用户上网的一种典型组网场景,如图12-21所示。图12-21中,PC 1-1、PC 1-2、PC 1-3 以及家庭网关HG-1 (注: HG是Home Gateway的简称)组成了一个家庭网络,在这个家庭网络中,终端PC通常是通过常见的标准以太链路或FE链路与HG-1相连。HG-1是家庭网络1的出口网关路由器。为了利用已经铺设好的电话线路,HG-1会利用ADSL(Asymmetric Digital Subscriber Line)技术将自己准备向外发送的以太帧信号调制成一种适合在电话线路上传输的物理信号后再进行发送。网络运营商的IP-DSLAM (IP Digital Subscriber Line Multiplexer)设备会接收来自不同HG的ADSL信号,并将其中的以太帧信息解调出来,然后通过一”条GE链路将这些以太帧送往一个被称为AC (Access Concentrator)的设备。从数据链路层的角度来看,IP-DSLAM 设备就是一台普通的二层以太网汇聚交换机。

我们知道,网络运营商是要对家庭用户上网进行收费及其他一些接入控制行为的。然而我们也知道,IP-DSLAM 转发给AC的帧都是一些以太帧;显然,这些以太帧是无法标示自己是发自HG-1 的呢,还是发自HG-2的呢。从帧的结构上来看,一个以太帧中是没有任何字段可以携带“用户名”和“密码”这些信息的。运营商如果不能区分来自不同的家庭用户的数据流量,当然也就无法进行收费等行为了。

因此,在图12-21中,AC设备必须根据所接收到的以太帧来识别这些帧所对应的家庭用户,并采用用户名和密码的形式来对不同的家庭用户进行认证。在此基础之上,运营商才有可能对家庭用户的上网活动进行计费等管理控制行为。

我们知道,PPP协议本身就具备了通过用户名和密码的形式进行认证的功能。然而,PPP协议只适用于点到点的网络类型。图12-21中,不同的HG和AC构成的以太网是一个多点接入网络(Multi-Access Network),因此PPP协议无法直接应用在这样的网络上。为了将PPP协议应用在以太网上,一种被称为PPPoE的协议便应运而生。

从本质上讲,PPPoE (PPP over Ethermet)是一个允许在以太广播域中的两个以太接口之间创建点对点隧道的协议,它描述了如何将PPP帧封装在以太帧中。从PPPoE的角度来看,图12-21中的接入网部分可以简化为图12-22所示的网络。

图12-22中,利用PPPoE协议,每个家庭用户的HG都可以与AC之间建立起一条虚拟的PPP链路(逻辑意义上的PPP链路)。也就是说,HG与AC是可以交互PPP帧的。然而,这些PPP帧并非是在真实的物理PPP链路上传递的,而是被包裹在HG与AC之间交互的以太帧中,并随这些以太帧在以太链路上的传递而传递的。

图12-23显示了PPPoE协议的基本架构。PPPoE协议采用了Client/Server 模式。在PPPoE协议的标准术语中,运行PPPoE Client程序的设备称为Host,运行PPPoE Server程序的设备称为AC。例如,图12-22中,家庭网关路由器HG就是Host,而运营商路由器就是AC。

PPPoE 报文的格式

图12-24显示了PPPoE报文的格式。如果以太帧的类型字段的值为0x8863或0x8864,则表明以太帧的载荷数据就是一个PPPoE报文。

PPPoE报文分为PPPoE Header和PPPoE Payload 两个部分。在PPPoE Header中,VER字段(版本字段)的值总是取0x1, Type字段的值也总是取0xl, Code 字段是用来表示不同类型的PPPoE报文的,Length字段用来表示整个PPPoE报文的长度,Session-ID字段用来区分不同的PPPoE会话(PPPoE Session)。

到此为止,我们仍不知道PPP帧是如何封装在以太帧中的。不用着急,很快我们就会知道,原来PPP帧是出现在PPPoE Payload中的。

PPPoE的工作过程

PPPoE的工作过程分为两个不同的阶段,即Discovery阶段(发现阶段)和PPP Session阶段(PPP 会话阶段)。

1. Discovery 阶段

如图12-25所示,在PPPoE发现阶段,Host与AC之间会交互4种不同类型的PPPoE报文,分别是PADI (PPPoE Active Discovery Initiation) 报文(PPPoE Header中Code字段的值为0x09)、PADO (PPPoE Active Discovery Offer)报文(PPPoE Header中Code字段的值为0x07)、PADR ( PPPoE Active Discovery Request) 报文( PPPoE Header中Code字段的值为0x19)、PADS (PPPoE Active Discovery Session-confirmation)报文(PPPoE Header中Code字段的值为0x65)。

首先,Host会以广播方式发送一个PADI报文(见图12-26),目的是寻找网络中的AC,并告诉AC自己希望获得的服务类型信息。如图12-26所示,在PADI报文的Payload中,包含的是若干个具有Type-Length-Value结构的Tag字段,这些Tag字段表达了Host 想要获得的各种服务类型信息。注意,PADI报文中的Session-ID字段的值为0。

AC接收到PADI报文之后,会将PADI报文中所请求的服务与自己能够提供的服务进行比较。AC如果能够提供Host所请求的服务,则单播回复一个 PADO报文;如果不

能提供,则不做任何回应。图12-27显示了PADO报文的格式。注意,PADO报文中的Session-ID字段的值为0.

如果网络中有多个AC,则Host就可能接收到来自不同的AC所回应的PADO报文。通常,Host会选择最先收到的PADO报文所对应的AC来作为自己的PPPoE Server,并向这个AC单播发送一个 PADR报文。图12-28显示了PADR报文的格式。注意,PADR报文中的Session-ID字段的值仍然为0。

AC接收到PADR报文之后,会确定出一个PPPoE Session ID,并在发送给Host的单播PADS报文中携带上这个PPPoE Session ID.图12-29显示了PADS报文的格式。注意,图12-29中,PADS报文中的Session-ID字段的值为0xXXXX,这个值便是PPPoESession ID。Host接收到PADS报文并获知了PPPoE Session ID之后,便标志着Host与AC之间已经成功建立起了PPPoE Session。接下来,Host 和AC便可进入到PPP Session阶段。

2.PPP Session阶段

在PPP Session阶段,Host 与AC之间交互的仍然是以太帧,但是这些以太帧中携带了PPP帧。图12-30显示了在PPP Session 阶段Host与AC之间交互的以太帧所包含的内容。从图12-30中我们可以看到,以太帧的类型字段的值为0x8864 (注:在Discovery阶段,以太帧的类型字段的值总是为0x8863),表明以太帧的载荷数据仍然是一个PPPoE报文。PPPoE报文中,Code 字段的值取0x00,Session-ID 字段的值保持为在Discovery阶段所确定的值。现在我们终于可以看到,此时的PPPoE报文的Payload就是一个PPP帧!然而,需要注意的是,PPPoE 报文的Payload并非是我们之前所熟悉的一个完整的PPP帧,而只是PPP帧的Protocol字段和Information字段。之所以如此,是因为PPP帧的其他字段在此虚拟的PPP链路上已无存在的必要。

我们看到,通过PPPoE协议的中介作用,在PPP Session阶段Host与AC之间就可以交互PPP帧了。通过PPP帧的交互,Host 和AC便可经历PPP的Link Establishment阶段,Authentication 阶段以及Network Layer Protocol阶段,最终实现IP报文的交互。

小小测试题

1. (多选)关于PPP协议,以下说法中正确的是? ( )

A. LCP协议是PPP协议的一个成员协议

B. PAP协议是PPP协议的一个成员协议

C. IPCP 协议是PPP协议的一个成员协议

D. IPCP 协议是一种NCP协议

2. (多选)关于PPP协议,以下说法中正确的是? ( )

A. PPP协议的工作包含了Link Dead阶段,Link Establishment阶段,Authentication阶段(可选),Network Layer Protocol阶段,Link Termination阶段

B.在PPP的Link Establishment阶段,PPP接口之间是通过交互NCP报文来协商PPP链路的有关参数的

C.在PPP的Link Establishment 阶段,PPP 链路上是允许传递IP报文的

D.如果PPP链路上需要传递IP报文,则必须先经历IPCP协商过程

3. (单选) PPPoE协议的工作分为以下哪两个阶段? ( )

A. PPPoE Discovery阶段,PPP Link Establishment阶段

B. PPPoE Discovery阶段,PPP Session阶段

C. PPPoE Discovery阶段,PPPoE Authentication阶段

4. (单选) PPPoE Discovery阶段会使用到以下哪4种PPPoE报文? ( )

A. PADI报文、PADO报文、PADR报文、PADT报文

B. PADI报文、PADO报文、PADR报文、PADS报文

C. PADI报文、PADO报文、PADS报文、PADT报文

5. (单选)关于PPPoE协议,以下说法中正确的是? ( )

A.在PPPoE的PPP Session阶段,IP报文是封装在PPP帧中的,PPP帧是封装在以太帧中的,以太帧是封装在PPPoE报文中的

B.在PPPoE的Discovery阶段,IP报文是封装在PPP帧中的,PPP帧是封装在PPPoE报文中的,PPPoE报文是封装在以太帧中的

C.在PPPoE的Discovery阶段,IP 报文是封装在PPP帧中的,PPP 帧是封装在以太帧中的,以太帧是封装在PPPoE报文中的

D.在PPPoE的PPP Session阶段,IP报文是封装在PPP帧中的,PPP帧是封装在PPPoE报文中的,PPPoE报文是封装在以太帧中的

(0)

相关推荐

  • IP与网关不在同一网段,可以正常上网,为什么?

    IP与网关不在同一网段,但可以正常上网,这是为什么? PPPOE拨号成功后,IP信息如下: 1.可以正常上网 2.IP地址和网关不在同一网段 3.掩码居然全是255 拨号以后,是可以正常上网的.这是为 ...

  • 不可不知的线路板基础知识分享

    分以下5个方面给大家介绍: 1.线路板简介 2.线路板材料介绍 3.线路板基本叠构 4.线路板制作流程 5.线路板案例分享 一.线路板简介 1.挠性印制电路板 挠性印制电路板(FlexPrintC ...

  • 电工基础知识分享:相线、中性线和火线、零线

    在任何一个电路中,电路不工作时,线上有电压(俗称带电)的线,叫做相线,线上无电压的线,叫做中性线. 在单相电路中,为了更形象.更好理解,为相线和中性线又分别起了两个别名,叫做火线和零线.因此,相线=火 ...

  • 股票入门基础知识分享

    弱弱地说,对初学者而言,要看懂股票说难不难,说不难也难,因为如果只是纯粹看懂股票的基本知识还是蛮简单,但是要从简单的股票知识之中升华为有效的实战技能就还是有一定难度,比如如何运用股票知识选对股票,又能 ...

  • 钢琴入门的一些基础知识分享

    学钢琴不能急于求成,钢琴不是一朝一夕就能学会的.要想学好钢琴,在开始时就要打下一个良好的基础,这是很重要的.那么钢琴如何入门呢?初学钢琴又要注意什么?央之艺课堂根据多位钢琴教师的意见,总结出以下三点初 ...

  • 华为认证PPP与PPOE基础知识分享~

    PPP协议基本概念 PPP是Point-to-Point Protocol的简称,中文翻译为点到点协议.与以太网协议一样,PPP也是一个数据链路层协议.以太网协议定义了以太帧的格式,PPP协议也定义了 ...

  • 【干货】从0到1,“大型WLAN组网”基础知识分享~

    目前,大多数企业办公环境同时使用有线和无线网络来支撑业务.办公区在提供有线网口的同时,也采用全Wi-Fi覆盖,办公环境更为开放和智能.未来,企业云桌面办公.智真会议.4K视频等大带宽业务将从有线网络迁 ...

  • 电工基础知识分享(三)你真的了解电源线吗?彻底颠覆你的认知

    哈喽,大家好!我们又见面了,上几期我们了解了,电的一些基本概念和由来. 这期呢我就给大家详细介绍一下电源线也就是承载电流传输过程的一个很重要的载体.那么,我们常用的电源线又有哪几种呢?他们又都有什么样 ...

  • 电脑基础知识分享(一):装机必备!超级详细的BIOS设置图解

    哈喽,大家好!我们在学习弱电系统知识的时候会涉及到很多有关电脑方面的知识. 所以,这期我会讲解一些有关电脑方面的基础知识与大家一起分享学习. 对于很多人来说,在装系统过程中难免遇到各类问题,其中最让人 ...

  • 中天易学基础知识分享:八字中制的形式和应用《一》

    导师:张永红 弟子:王侠整理 一.制的含义 制,实际就是有力的克,也就是克制.一般的克,只有牵制之意,不影响另一种五行发挥正常的作用:而制,就是让对方不能再发挥余力.制包括牵制.制服.制掉三种. 1. ...