PPPoE协议在宽带接入网中的应用

近年来,网络数据业务发展迅速,宽带用户呈爆炸式的增长,运营商在采用xDSL,LAN,HFC,无线等多种接入方式的同时,为了构建一个可运营、可管理、可盈利的宽带网络,十分关心如何有效地完成用户的管理,PPPoE就是随之出现的多种认证技术中的一种。

1 PPPoE协议概述

1.1PPPoE的工作原理

PPPoE(PPP over Ethernet)是在以太网上建立PPP连接,由于以太网技术十分成熟且使用广泛,而PPP协议在传统的拨号上网应用中显示出良好的可扩展性和优质的管理控制机制,二者结合而成的PPPoE协议得到了宽带接入运营商的认可并广为采用。

PPPoE建立过程可以分为Discovery阶段和PPP会话阶段。Discovery阶段是一个无状态的阶段,该阶段主要是选择接入服务器,确定所要建立的PPP会话标识符Session ID,同时获得对方点到点的连接信息;PPP会话阶段执行标准的PPP过程。

一个典型的Discovery阶段包括以下4个步骤:

(1)主机首先主动发送广播包PADI寻找接入服务器,PADI必须至少包含一个服务名称类型的TAG,以表明主机所要求提供的服务。

(2)接入服务器收到包后如果可以提供主机要求

0 1 2 3 4 5 6 78 9 0 1 2 3 4 56 7 8 9 0 1 2 34 5 6 7 8 9 0 1

以太网类=0x8863/8864版本(Ver)类型(Type)编码(CODE)

会话ID(Session ID)长度(Length)

净荷(Payload)

(3)主机在回应PADO的接入服务器中选择一个合适的,并发送PADR告知接入服务器,PADR中必须声明向接入服务器请求的服务种类。

(4)接入服务器收到PADR包后开始为用户分配一个唯一的会话标识符Session ID,启动PPP状态机以准备开始PPP会话,并发送一个会话确认包PADS。

主机收到PADS后,双方进入PPP会话阶段。在会话阶段,PPPoE的以太网类域设置为0x8864,CODE为0x00,Session ID必须是Discovery阶段所分配的值。

PPP会话阶段主要是LCP、认证、NCP 3个协议的协商过程,LCP阶段主要完成建立、配置和检测数据链路连接,认证协议类型由LCP协商(CHAP或者PAP),NCP是一个协议族,用于配置不同的网络层协议,常用的是IP控制协议(IPCP),它负责配置用户的IP和DNS等工作。

PADT包是会话中止包,它可以由会话双方的任意一方发起,但必须是会话建立之后才有效。

1.2PPPoE的特点

PPPoE不仅有以太网的快速简便的特点,同时还有PPP的强大功能,任何能被PPP封装的协议都可以通过PPPoE传输,此外还有如下特点:

(1)PPPoE很容易检查到用户下线,可通过一个PPP会话的建立和释放对用户进行基于时长或流量的统计,计费方式灵活方便。

(2)PPPoE可以提供动态IP地址分配方式,用户无需任何配置,网管维护简单,无需添加设备就可解决IP地址短缺问题,同时根据分配的IP地址,可以很好地定位用户在本网内的活动。

(3)用户通过免费的PPPoE客户端软件(如EnterNet),输入用户名和密码就可以上网,跟传统的拨号上网差不多,最大程度地延续了用户的习惯,从运营商的角度来看,PPPoE对其现存的网络结构进行变更也很小。

DSLAM是ADSL汇聚设备,其内核采用ATM或IP但上联口为以太网口,BAS是局端实现PPPoE功能的接入服务器,它终结由用户侧发起的PPPoE进程。下行的以太帧从IP城域网经路由器送到BAS,被加上PPPoE的头后送到DSLAM封装成AAL5帧,经过交叉模块发送到ADSL Modem,由其完成AAL5帧重组并解出以太帧发送到客户端,客户端从PPPoE包中取出IP数据包。

上行的PPPoE包在ADSL Modem中封装成AAL5帧,由ATM信元传输到局端的DSLAM,DSLAM负责终结ATM,重新组合出PPPoE包,并通过设好的PVC(永久虚电路)传送到BAS处理。

从上面可以看出,PPPoE将PPP承载到以太网之上,实质是在共享介质的网络上提供一条逻辑上的点到点链路,对用户而言,在DSLAM和ADSL Modem之间的ATM传输是透明的,如果将中间的DSLAM和ADSL Modem换成有线电视的接入设备,就是典型的HFC接入,BAS对PPPoE包的处理方式不变。
2 PPPoE在BAS上的实现

PPPoE拨号软件在应用中已经很成熟(Windows XP中自带),下面重点讨论PPPoE在接入服务器BAS中的实现方式。

2.1PPPoE的效率

从PPPoE协议模型可以看出,BAS汇聚了用户的所有数据流,它必须将每一个PPPoE包都拆开检查处理,这在很大程度上是沿袭了传统的PPP处理的方式,虽然有很好的安全性,但一旦用户很多,数据包数量很大,解封装速度就需要很快,BAS很大的精力花在检测用户的数据包上,容易形成接入的“瓶颈”。

为此,在BAS的硬件结构上可以采用分布式网络处理器(NP)和ASIC芯片设计。网络处理器是专门针对电信网络设备而开发的专用处理器,它有一套专门的指令集,用于处理电信网络的各种协议和业务,可以大大提高设备的处理能力。同时,ASIC芯片转发数据包时接近硬件的转发性能,远非CPU软件方式可比,采用这种方式将PPPoE数据流的处理与转发分开,工作效率大大提高。此外在软件系统结构上还应该与其他技术相结合,更好地发挥PPPoE的性能。

2.2PPPoE与VLAN的结合

VLAN即虚拟局域网,是一种通过将局域网内的设备逻辑地划分成一个个不同的网段,从而实现虚拟工作组的技术。划分VLAN的目的,一是提高网络安全性,不同VLAN的数据不能自由交流,需要接受第三层的检验;二是隔离广播信息,划分VLAN后,广播域缩小,有利于改善网络性能,能够将广播风暴控制在一个VLAN内部。

PPPoE是一个客户端/服务器协议,客户端需要发送PADI包寻找BAS,因此它必须同BAS在同一个广播式的二层网络内,与VLAN的结合很好地解决了这方面的安全隐患。此外通过将不同业务类型的用户分配到不同的VLAN处理,可以灵活地开展业务,加快处理流程,当然VLAN的规划必须在二层设备和BAS之间统一协调。

BAS收到上行的PPPoE包后,首先判别VLAN ID的所属类别,如果是普通的拨号用户,则确定是Discovery阶段还是会话阶段的数据包,并严格按照PPPoE协议处理。在会话阶段,根据不同的用户类型从不同的地址池中向用户分配IP地址,地址池由上层网管配置。如果是已经通过认证的用户的数据包,则根据该用户的服务类型处理,比如,如果是本地认证的拨号用户,且对方也申请有同样的功能,则直接由本地转发。

如果是专线用户,则不用经过PPPoE复杂的认证过程,直接根据用户的VLAN ID便可进入专线用户处理流程,接入速度大大提高。此外为了统一网管,在BAS与其他设备之间需要通信,这些数据包是内部数据包,也可根据VLAN ID来辨别。

对于下行数据,由于BAS负责分配和解析用户的IP,兼有网关的功能,它收到数据包的目的IP是用户的,因此以IP为索引查找用户的信息比根据MAC要方便得多,这一点与普通的交换机有所不同,具体过程跟上行处理差不多。

2.3PPPoE对多业务选择的支持

多业务选择指的是用户通过一条终结到BAS的PPP连接来自主地选择后台网络运营商所提供的多种业务。之所以要支持多业务的选择,一方面是因为各种业务的具体实现在技术上的侧重点是不同的,对网络性能的要求也不尽相同,以前采取的固定分配的方式非常不便;另一方面,从网络应用的发展看,网络内容服务供应商ICP与网络接入商ISP的分离是必然趋势,在接入汇聚侧,ISP必须严格保证将用户选择的业务流转发到相应的ICP中去。

目前采用的方法是用户先在PPPoE拨号软件中选择相应的业务,然后对用户进行业务授权确认,最后激活BAS内部相应的处理模块。但是采用这种方式,用户只能知道业务的名字,无法直观地、全面地获知BAS提供的各种业务类型,特别是在新业务的开展上十分困难,有很大的局限性。

因此可以将BAS与后台业务选择网关及RADIUS服务器相配合,采取先认证后选择业务的方式,具体操作如下:

(1)主机发送PADI寻找BAS,PADI中包含一个服务名类型的TAG,它的值为空,表示该用户可以接受任何类型的服务。

(2)BAS收到包后回送PADO,PADO中包含所有可以提供的服务的TAG,同时,还包含一个服务名为General的TAG。

(3)主机发送PADR。用户选择已知的服务名,也可以选择General服务。

(4)BAS收到PADR包后为用户分配资源,并开始PPP协商过程。在PPP过程中,BAS将用户输入的账号和密码等信息送到RADIUS服务器上认证。

(5)通过认证的用户,享受BAS提供的该项服务,但如果选择的是General,则被强制访问与BAS直连的服务选择网关。后台的服务选择网关是一台具有Web Server功能的服务器,用户可以通过Web的交互式界面得到可选择业务的相关信息(包括费用、带宽等),同时显示该用户账号对应的信息。

(6)用户选择相应的业务,同时服务选择网关会定义各种用户的业务范围和操作权限。

(7)服务选择网关激活接入服务器内部相应的业务模型实现该业务。以上方式是严格按照PPPoE协议执行的,与当前流行的拨号软件完全兼容,如果用户对其他的业务根本不感兴趣而对已申请的业务非常熟悉,也不影响用户的习惯。

从BAS的角度考虑,PPPoE的操作流程也没有什么改变,只是多添了一种服务类型而已。如果运营商当前没有服务选择网关,可以通过网管配置,在对PADI包的回应时不包含General服务就可以了。

对于运营商来说,采用以上方式不仅大大提高了接入用户操作的透明度,还可以起到业务门户的作用,为下一步的服务扩展提供空间,而且从宽带接入网以后发展的趋势来看,按需分配与业务类型相应的带宽和QoS是必然的。(学电脑)

时间: 2024-09-27 00:41:13

PPPoE协议在宽带接入网中的应用的相关文章

详解PPPOE协议的背景和简介

详解PPPOE协议的两个阶段:发现阶段会话阶段,向大家介绍PPPOE协议的方法,可能好多人还不了解怎么对PPPOE协议进行优化,没有关系,看完本文你肯定有不少收获,希望本文能教会你更多东西. PPPOE协议出现的背景 随着宽带网络技术的不断发展,以xDSL.CableModem和以太网为主的几种主流宽带接入技术的应用已开展的如火如荼.同时又给各大网络运营商们带来了种种困惑,无论使用哪种接入技术,对于他们而言可盼和可求的是如何有效的管理用户,如何从网络的投资中收取回报,因此对于各种宽带接入技术的收

如何解决局域网上的电脑无法使用PPPoE协议的问题

  公司或单位现在大多组建了局域网,内部网为100Mbps的网络,通过ADSL宽带连接Internet .ADSL Modem连接到10/100 Mbps的交换机,然后交换机再连接到服务器上.连接好后,发现内部网中的电脑无法使用PPPoE协议.这是什么原因呢?参考下面的内容,一定对您很有帮助 故障分析与排除:根据故障现象分析,由于PPPoE协议一般支持10 Mbps的网络,而对100 Mbps的网络支持不好,因此在100 Mbps网速下PPPoE协议有可能无法找到ADSL信号.接着将10/100

局域网上的电脑无法使用PPPoE协议

  故障现象:某公司内部网为100Mbps的网络,通过ADSL宽带连接Internet .ADSL Modem连接到10/100 Mbps的交换机,然后交换机再连接到服务器上.连接好后,发现公司内部网中的电脑无法使用PPPoE协议. 故障分析与排除:根据故障现象分析,由于PPPoE协议一般支持10 Mbps的网络,而对100 Mbps的网络支持不好,因此在100 Mbps网速下PPPoE协议有可能无法找到ADSL信号.接着将10/100Mbps的交换机设定为10Mbps工作速度后,故障排除.

.Net WInform开发笔记(二)Winform程序运行结构图及TCP协议在Winform中的应用_C#教程

中午没事,把去年刚毕业那会画的几张图翻出来了,大概介绍Winform应用程序运行的过程,以及TCP协议在Winform中的应用.如果有Windows消息机制等基础,很好理解这两张图. (1)Winform应用程序运行结构图 开发笔记(二)Winform程序运行结构图及TCP协议在Winform中的应用_C#教程-tcp ip协议 层结构图"> (2)TCP通讯协议在Winform程序中的应用示意图 熟悉整个程序的来龙去脉,编程的时候就会很轻松,不会云里雾里. 另附公司招聘面试题一份,用了几

云游戏服务商称上百笔游戏授权协议在谈判中

本网(编译/于子将)据海外媒体报道,云游戏服务商Gaikai联合创始人David Perry日前在接受采访时表示,他们与开发商已有上百笔协议正在谈判中,新的服务器也正在建设,公司与动视等大型发行商之间的关系也非常好. "我们现在已经获得了一些重要作品的授权,届时我们将举行一个盛大的发布会公布这些成果."David Perry说,"我们现在大概有上百笔授权协议正在谈判中,我还没听说过有谁拒绝过我们,这其中包括你所知道的所有大品牌." 此前在今年6月的E3展会上,Gai

HTTP协议请求方式: 中GET、POST和HEAD的介绍

      HTTP是Web协议集中的重要协议,它是从客户机/服务器模型发展起来的.客户机/服务器是运行一对相互通信的程序,客户与服务器连接时,首先,向服务 器提出请求,服务器根据客户的请求,完成处理并给出响应.浏览器就是与Web服务器产生连接的客户端程序,它的端口为TCP的80端口.浏览器与Web 服务器之间所遵循的协议就是HTTP. 请求方法是请求一定的Web页面的程序或用于特定的URL.可选用下列几种:GET: 请求指定的页面信息,并返回实体主体.HEAD: 只请求页面的首部.POST:

协议解析-python中的正则表达匹配问题

问题描述 python中的正则表达匹配问题 20C ma = re.search(r""^x00x00x00x00x0d"" tcpapp[9:]) 请问这句是什么意思?? 是在qq报文解析中的程序片段. x00x00x00x00x0d如何理解 解决方案 看下基本原则吧 http://m.blog.csdn.net/article/details?id=49151633 解决方案二: Search(patternstringflags=0)方法在一个字符中查找匹配(

协议-在socket中port设置,服务器为9001,客户端为9002可以吗?

问题描述 在socket中port设置,服务器为9001,客户端为9002可以吗? 因为我们设置端口时,大部分都设置的一样,比如都是port=9001,但是我看到帖子说可以不一致,那么客户端是怎么找到的服务器的端口的? 解决方案 设置的都要一样.................

http协议-关于MFC中访问内网的HTTP问题

问题描述 关于MFC中访问内网的HTTP问题 别人发我的文档上面是这样写的: 发布平台提供形如以下格式http servelet接口: http://ip:port/context/alarm.tfc?method=sendAlarm&yjxh=&yjsj=&ywlb=&bklx=&bkzlx=&gcxh=&kkbh=&kkmc=&fxlx=&hpzl=&hphm=&gcsj=; 我查了下servelet是ja