`
xiaoer_1982
  • 浏览: 1882400 次
  • 性别: Icon_minigender_2
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论
阅读更多

ADSL 数据链路层协议介绍

1.引言

ADSL的虚拟拨号方式就是上网的操作和普通拨号一样,使用简单,用户熟悉,有账号验证、IP地址分配等过程。但ADSL连接的并不是具体的ISP接入号码如163或169,而是ADSL虚拟专网接入的服务器。根据网卡类型的不同又分为ATM和Ethernet局域网虚拟拨号方式,由于局域网虚拟拨号方式具有安装维护简单等特点,目前成为ADSL虚拟拨号的主流并有自己的一套网络协议来实现账号验证、IP分配等工作,这就是PPPoE协议。

概括的来讲,它的全称是Point to Point Protocol over Ethernet(基于局域网的点对点通讯协议),这个协议是为了满足越来越多的宽带上网设备( 即 ADSL , 无线等 )和越来越快的网络之间的通讯而最新制定开发的标准,它基于两个广泛接受的标准即:局域网Ethernet和PPP点对点拨号协议。对于最终用户来说不需要用户了解比较深的局域网技术只需要当作普通拨号上网就可以了,对于服务商来说在现有局域网基础上不需要花费巨资来做大面积改造,设置IP地址绑定用户等来支持专线方式。这就使得PPPoE 在宽带接入服务中比其他协议更具有优势。因此逐渐成为宽带上网的最佳选择。 PPPoE的实质是以太网和拨号网络之间的一个中继协议,他继承了以太网的快速和PPP拨号的简单,用户验证,IP分配等优势。在实际应用上,PPPoE利用以太网络的工作机理,将ADSL Modem的10BASE-T接口与内部以太网络互联,在ADSL Modem中采用RFC1483的桥接封装方式对终端发出的PPP包进行LLC/SNAP封装后,通过连结两端的PVC在ADSL Modem与网络侧的宽带接入服务器之间建立连接,实现PPP的动态接入。PPPoE接入利用在网络侧和ADSL Modem之间的一条PVC就可以完成以太网络上多用户的共同接入,实用方便,实际组网方式也很简单,大大降低了网络的复杂程度。 PPPOE具备了以上这些特点,所以成为了当前ADSL宽带接入的主流接入协议。

详细说来,modem接入技术面临一些相互矛盾的目标,既要通过同一个用户前置接入设备连接远程的多个用户主机,又要提供类似拨号一样的接入控制,计费等功能,而且要尽可能地减少用户的配置操作。 PPPOE 的目标就是解决上述问题, 1998年后期问世的以太网上点对点协议(PPP over Ethernet )技术是由Redback 网络公司、客户端软件开发商RouterWare公司以及Worldcom子公司UUNET Technologies公司在IETF RFC的基础上联合开发的。通过把最经济的局域网技术-以太网和点对点协议的可扩展性及管理控制功能结合在一起,网络服务提供商和电信运营商便可利用可靠 和熟悉的技术来加速部署高速互联网业务。它使服务提供商在通过数字用户线、电缆调制解调器或 无线连接等方式,提供支持多用户的宽带接入服务时更加简便易行。同时该技术亦简化了最终用户在选择这些服务时的配置操作。

2.特点

PPPOE的特点是在标准PPP报文的前面加上以太网的报头,使得PPPOE提供通过简单桥接接入设备连接远端接入设备,并可以利用以太网的共享性连接多个用户主机,在这个模型下,每个用户主机利用自身的ppp堆栈,用户使用熟悉的界面。接入控制,计费等都可以针对每个用户来进行。

3.优点

PPPOE的优点是安裝与操作方式类似于以往的拨号网络模式,方便用戶使用,用户处的XDSL调制解调器无须任何配置。允许多个用户共享一个高速数据接入链路。适应小型企业和远程办公的要求。并且终端用户可同时接入多个ISP,这种动态服务选择的功能可以使ISP容易创建和提供新的业务。还有,它兼容现有所有的XDSL Modem 和DSLAM。 可与ISP现有接入结构相融合。

4.帧格式

下图为PPPOE的帧格式

clip_image002

参数取值

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

5.建立过程

建立一个以太网上点对点协议PPPOE会话包括两个阶段:

1. 发现(Discovery)阶段

在Discovery过程中用户主机以广播方式寻找可以连接的所有接入设备,获得其以太网MAC地址。然后选择需要连接的用户主机并最后获得所要建立的PPP会话的SESSION_ID。在Discovery过程中节点间是客户端-服务器关系,一个用户主机(客户端)最终要发现一个接入设备(服务器)。在网络拓朴中,一般有不止一个的接入设备可以通信,Discovery阶段允许用户主机发现所有的接入设备,并从中选择一个。当Discovery阶段结束时,用户主机和接入设备之间都获得了可供以太网上建立PPP连接的全部信息。Discovery阶段保持无连接状态直到一个PPP会话的建立。一旦PPP连接建立,则用户主机和接入设备都必须为PPP虚拟端口分配资源。

详细的,典型的发现(Discovery)阶段共包括4个步骤:

1)用户主机发出PPPOE有效发现初始(PADI)包。以太网目的地址为广播地址0xffffffff,CODE字段为0x09,SESSION_ID为0x0000。PADI包必须至少包含一个服务名称类型(Service-Name)的标签(标签类型字段为0x0101),向接入设备提出所要求提供的服务。 一个完整的PADI(包括PPPOE头)不能超过1484字节,以留下充足的预留给agent设备增加Relay-Session-Id标识。

2) 接入设备收到在服务范围内的PADI包后,发送PPPOE有效发现提供(PADO)包以响应请求。其CODE字段为0x07 ,SESSION_ID仍为0x0000。PADO包必须包含一个接入设备名称类型(AC-Name)的标签(标签类型字段为0x0102)以及一个或多个服务名称类型标签,表明可向用户主机提供的服务种类。

3) 用户主机在可能收到的多个PADO包中选择一个合适的接入设备,选择的原则是根据PADO中接入设备名称类型标签和服务名称类型标签的内容。然后向所选择的接入设备发送PPPOE有效发现请求(PADR)包。其CODE字段为0x19,SESSION_ID仍为0x0000。PADR包必须包一个服务名称类型标签,确定向接入设备请求的服务种类。 当一个用户主机在确定时间没有收到PADO,他会重发一个PADI,同时等待两倍的时间。这种过程可以根据需要重复多次。

4) 接入设备收到PADR包后准备开始PPP会话,它发送一个PPPOE有效发现会话确认(PADS)包。其CODE字段为0x65 ,SESSION_ID为接入设备所产生的一个唯一的PPPOE会话标识号码。0xffff作为预留资源,目前不能被使用作SESSION_ID。PADS包也必须包含一个服务名称类型的标签确认向用户主机提供的服务。当用户主机收到PADS包确认后,双方就进入PPP会话阶段。如果接入设备不能识别PADR中的服务名称类型的标签,则 会回 一个包含服务名称错误( Service-Name-Error) 标签的 PADS ,其SESSION_ID仍然是0x0000。如果用户主机在确定时间没收到PADS包,与没收到PADO作同样处理。

还有一种PPPOE有效发现终止(PADT)包,在一个PPP会话建立后它随时可由用户主机或接入设备中任何一方发送,指示PPP会话已终止。PADT包不需要任何标签,其CODE字段为0xa7 ,SESSION_ID为需要终止的PPP会话的会话标识号码。

在安全性上,为防止DOS(Denial of Service)攻击,接入设备应该可以使用AC-Cookie属性,接入设备应可以根据PADR中的源地址唯一再生成一个值,这样就而已保证PADI的源地址是真正可达,同时限制与这个地址同时连接数量。这个算法细节并没有在RFC2516中具体描述。虽然AC-Cookie在反DOS攻击方面很有效,但它并不能防止所有DOS攻击,在接入设备上也可以采用其他方法来对抗DOS。

2. PPP会话阶段

用户主机与在发现阶段确定的接入设备进行PPP协商。这个协商过程与标准的PPP协商并没有任何区别。 在PPP会话阶段节点间是对等关系。

6.常用软件

PPPOE软件的作用就是连接操作系统的PPP协议和Ethernet协议,并通过PPPOE协议连接。常用的有以下几个:

ISPEnterNet:

由 NTS.COM 开发(现在已经并入Efficient Networks这个有名的设备开发制造公司),自己具备独立的PPP协议,可以不依赖操作系统的拨号网络来提供PPP协议,具有直接通过网卡和ISP连接的能力,目前是最通用和流行的PPPOE软件,并且支持多种操作系统,目前已经提供有Windows,Linux,MacOS的版本,并且根据功能的多少又分为100、300、500等多个系列。该软件的300系列最流行,已经被多家特大型的ISP采用,例如法国电信,中国电信,在其网站提供有30天试用版。

WinPoET:

由iVasion.com开发(现在已经改为WindRiver公司),它是PPPOE协议起草者之一,它在PPPOE软件中也占有极大的份额,许多特大型ISP也采用它。它通过操作系统的拨号网络来提供PPP协议,所以在使用上和我们使用普通56K拨号上网非常相似,它只是在后台悄悄地进行着PPPOE服务。它的网站目前停止了该软件的下载评估,软件只批量卖给ISP

RASPPPOE:

个人开发的PPPOE驱动软件,小巧精干,没有自己的界面面板完全只是一个驱动程序,也是依靠操作系统拨号网络来提供PPP协议,由于它是以网络协议组件的形式来工作,所以在使用上,完全和使用老式的Modem一样简单。

Access Manager/IHS:

实质就是EnterNet 300,只是打上了BELL的ISP接入服务部门Sympatico的商标。

7.参考文献

1. PPPOE协议技术与标准培训教材,周一帆,深圳市华为技术有限公司

分享到:
评论

相关推荐

    PPPOE RFC文档中文版

    《PPPOE RFC文档中文版》详细解析 一、引言 点对点协议(PPP)作为在点对点连接上传输多种协议报文的标准方式,一直以来都是互联网基础架构中的重要组成部分。然而,在多点访问环境如以太网中,PPP的原始设计并不直接...

    PPPOE运用文档

    通过学习这个文档,读者可以理解PPPOE的工作原理,掌握如何配置和使用PPPOE进行宽带接入,并能解决使用过程中可能出现的问题。文件“PPPOE.doc”很可能是对此主题的详细说明,建议仔细阅读以获取全面的知识。

    DHCP与PPPOE相关文档的集合

    本集合包含了这两个主题的相关文档,为初学者提供了了解和学习的基础,同时也适合有一定经验的网络工程师进行深入研究。 DHCP协议主要用于自动分配、释放和管理网络设备的IP地址,以及其他网络配置参数,如子网掩码...

    ipv6学习文档

    总结,IPv6的学习文档涵盖了IPv6的基本概念、新特性、地址表示、自动配置协议以及PPPoE拨号过程,为理解IPv6的运作机制提供了全面的介绍。学习和掌握这些内容对于网络管理员和IT专业人士来说至关重要,因为IPv6的...

    RP-PPPOE 3.10源码(部分汉化)

    学习和分析RP-PPPOE源码有助于提升对PPPoE协议的理解,同时对于从事网络通信、路由器开发或者嵌入式系统的开发者来说,这将是一个宝贵的资源。通过研究源码,开发者可以学习到网络通信协议的实现细节,以及如何在...

    PPPoE.rar_linux pppoe_ppp linux_pppoe lin_pppos linux_拨号

    而"PPPoE"可能是源码文件夹或者压缩包,里面包含了实际的pppoe拨号程序的源代码、配置文件、文档等资源。 嵌入式Linux的PPPoE拨号程序涉及到的关键知识点包括: 1. PPP协议:PPP是互联网上一种点对点通信协议,用于...

    PPPOE驱动源码.rar_ pppoe_RASDial123.rar_pppoe

    在压缩包内的"www.pudn.com.txt"可能是关于PPPOE驱动或RASDial123的说明文档,通常包含使用方法、配置信息以及源代码的编译和调试指南。而"mtpppoe"可能是指多线程PPPOE的实现,这可能是一个实现了多个并发PPPOE连接...

    华为PPP&PPPOE协议讲解.rar

    PPP(Point-to-Point Protocol)和PPPoE(Point-to-Point Protocol over Ethernet)...通过华为提供的文档《PPPOE协议讲解.doc》和《华为PPP协议.pdf》,读者可以深入学习这两个协议在华为设备中的具体应用和操作实践。

    pppoe源码.rar_PPPoE源代码下载_golang pppoe_nonrootcn_pppoe_seriousqnn

    源代码的学习和分析可以帮助开发者深入了解PPPoE的工作原理,便于进行二次开发或针对特定场景优化。如果你是初学者,建议先熟悉PPPoE协议的基本概念,然后逐步深入代码细节,理解每个模块的功能和交互过程。对于...

    关于PPPOE的实现源文件,可以为需要做以太网下的PPP提供一个很有力的参考.zip

    这份压缩包文件包含的源代码和文档对于理解PPPOE的工作原理以及如何在以太网环境下实现PPPOE非常有帮助。 首先,让我们深入了解一下PPPOE的组成部分和工作流程: 1. **PPPOE发现阶段**:在这个阶段,客户端(通常...

    pppoe.rar_miniport _pppoe_pppoe_miniport.i_visual c

    开发者可能需要这些源代码来学习如何编写驱动程序,或者为了自定义和优化特定硬件的PPPoe连接。 压缩包内的文件名称列表包括"www.pudn.com.txt"和"pppoe在windows實現的miniport驅動源代碼"。"www.pudn.com.txt"...

    L2TP协议学习文档.docx

    文档主要描述了L2TP的原理、应用场景、报文格式、工作流程;除此之外还包括AAA认证框架、常见的L2TP配置;SLIP协议、PPP协议、PPPOE协议之间的关系以及特点

    基于PPPoE认证的公司出口配置.rar

    2、学习目标:配置PPPoE认证服务器,配置PPPoE客户端 3、应用场景:基于PPPoE认证的公司出口配置 4、特点:Word文档提供了实验的详细过程,包括每一步骤的操作命令和截图,并给出了实验的topo文件(包括配置信息) 5...

    PPPOE流程描述.rar_ppp_pppd_pppoe

    **PPP(Point-to-Point Protocol)点对点协议** PPP是一种在两个节点间建立直接通信连接的简单协议,常用于...理解PPPoE的工作流程有助于更好地管理和维护网络连接,而提供的文档和资源则为深入学习和实践提供了支持。

    pppoe-windows-driver-src.rar_miniport _ppp_pppoe

    在压缩包的文件名列表中,"www.pudn.com.txt"可能是一个文本文件,通常用于提供下载链接的来源信息或者一些额外的文档,而"pppoe"可能是源代码文件夹的名称,包含所有关于PPPoE Miniport驱动的源代码文件。...

    Cisco 2600系列路由器PPPoE配置指南

    最后,相关信息部分则为用户提供一些额外的学习资源,以便进一步深入了解与PPPoE配置相关的其他概念和技术。 整体来看,本文档为读者提供了一套完整的PPPoE客户端配置指南,尤其适用于Cisco 2600系列路由器以及非...

    linux环境下pppoe服务器搭建资料.pdf

    Linux 环境下 PPPoE 服务器搭建资料 一、简介 PPPoE 即 Point to Point Protocol over Ethernet 的简称,即基于...通过本文档,读者可以了解 PPPoE 的原理和应用,并学习如何在 Linux 环境下搭建 PPPoE 服务器。

    PPPOE_测试中心网络兴趣小组.zip

    对于想要学习或了解PPPOE的读者来说,这份文档可能是一份宝贵的资源,它能帮助你理解PPPOE的工作机制,学习如何配置和管理PPPOE网络,以及解决可能出现的问题。同时,它也可能包含了测试中心的成员们在实践中积累的...

    LwIP.rar_PPPoE PADI

    通过分析和学习这些内容,开发者可以学习如何在微控制器项目中集成LwIP,实现PPPoE功能,进行网络连接和数据传输。这涉及到设置网络接口、配置PPP和PPPoE选项、处理网络事件、调试通信问题等多个方面。对于嵌入式...

    PPPoE协议详解.ppt

    PPPoE(Point-to-Point Protocol over Ethernet)是一种在以太网上传输PPP(Point-to-Point Protocol)协议的数据封装技术。它结合了以太网的广泛覆盖和...通过2小时的学习,应具备初步的PPPoE协议理解和问题解决能力。

Global site tag (gtag.js) - Google Analytics