PPPoE技术详解

一  , 背景

        随着运营商对宽带接入技术要求的不断提高,以xDSL,CableModem和以太网为主的几种宽带接入技术在用户管理和计费等方面的不足开始显露,已无法满足运营商的需求。

        在众多的技术中,以太网接入方式经济实惠,而PPP协议又可以提供良好的访问控制和计费功能,结合以太网的经济性及PPP良好的可扩展性与管理控制功能,于是产生了PPPoE(在以太网上承载PPP协议)。

        PPPoE协议的提出很好地解决了用户管理和上网收费等实际应用问题,得到了运营商的认可并广为采用。

二  ,PPPoE 技术优点

(1)用户角度

        对于用户来说,PPPoE具有以下优点:

        沿袭传统的拨号上网方式,依旧使用用户熟悉的硬件以及类似的软件进行internet的接入;

        兼容现有的所有xDSL Modem,不需要对客户端的xDSL Modem进行复杂的配置;

        使用以太网网卡连接PC和xDSL Modem,允许多台同时共享xDSL线路,可以节约用户投资;

(2)运营商角度

        对于运营商来说,PPPoE具有以下优点:

三  , PPPoE技术实现

(1)PPPoE组网结构

        PPPoE使用 client / server 模型,PPPoE client 向PPPoE server 发起连接请求,两者之间会话协商通过后,就建立PPPoE会话,此后PPPoE server 向 pppoe client 提供控制,认证,计费功能;

        根据pppoe会话的起点所在位置的不同,pppoe分为 router-initiated 和 host-initiated 两种组网结构。

(2)router-initiated 组网结构

        如下图所示,router-initiated 组网结构是在两台路由器之间建立 pppoe 会话,所有主机通过同一个 pppoe 会话传送数据,主机上不用安装 pppoe 客户端拨号软件,一般是一个企业共用一个账号接入网络(图中pppoe client 位于企业 / 公司内部,pppoe server 是运营商的设备)。

        router-initiated 组网结构图

(3)host-initiated 组网结构

        如下图所示,host-initiated 组网结构是将pppoe会话建立在host和运营商的路由器之间,为每一个host建立一个pppoe会话,每个host都是pppoe client ,每一个host 使用一个账号,方便运营商对用户进行计费和控制,host上必须安装pppoe客户端拨号软件。

        host-initiated组网结构图

四  , PPPoE报文

(1)PPPoE报文格式

        如图所示:ppoe报文的格式是在以太网帧中携带的ppp报文

各个字段解释如下:

        desination_address域:一个以太网单播目的地址或者以太网广播地址,在Discovery阶段,确认pppoe server后使用单播地址。在 session阶段,该域的值必须是Discovery阶段已确定对方的单播地址。

        source_address:源设备的以太网MAC地址。

        ether_type:取值为0x8863表示Discovery阶段或Terminate阶段,0x8864表示session阶段。

        ver域:pppoe版本号。

        type域:pppoe类型。

        code域:pppoe报文类型

                0x00:会话数据

                0x09:PADI报文

                0x07:PADO 或 PADT 报文

                0x19:PADR报文

                0x65:PADS报文

        seeeion_ID域:对于一个给定的PPP会话,该值是一个固定值,并且与以太网source_address和destination_address一起实际地定义了一个PPP会话,值0xffff为将来的使用保留,不允许使用。

        length域:16bits,定义PPPoE的Payload域长度,不包括以太网头部和PPPoE头部的长度。

(2)PADI报文

        如图所示,PADI报文的主要字段包括:

        code域为0x09

        session_ID域为0x0000

        TAG_TYPE域为0x0101(server-name),表明后面紧跟的是服务的名称,有且只有一个TAG_TYPE为server-name的TAG,其他类型的TAG可选。

(3)PADO报文

        如图所示

        code域为0x07

        session_ID域为0x0000

        TAG_TYPE域为0x0101(server-name),表明后面紧跟的是服务的名称,为0x0102(AC-name)表明后面紧跟的字符串唯一地表示了某个特定的访问集中器。有且只有一个TAG_TYPE为AC-name的TAG,至少一个TAG_TYPE为server-name的TAG。

(4)PADR报文

        如图所示

        code域为0x19

        session_ID域为0x0000

        TAG_TYPE域为0x0101(server-name),表明后面紧跟的是服务的名称,有且只有一个TAG_TYPE为server-name的TAG,其他类型的TAG可选。

(5)PADS报文

        如图所示

                code域为0x65

                session-id域为discovery阶段分配的值

                TAG为可选

(6)PADT报文

        如图所示

                code域为0xa7

                session-id域为discovery阶段分配的值

五  , PPPoE工作过程

        PPPoE协商过程如图所示,协商过程包括discovery,session和terminate三个阶段。

(1)discovery阶段

        discovery阶段完成之后通信双方都会知道pppoe的session-id以及对方以太网地址,它们共同确定了唯一的pppoe session 。

                client广播发PADI,包含client想要的服务类型信息。

                server收到PADI,比较,可以则单播发PADO。

                client可能收到多个PADO,选择一个,并单播发PADR。

                server产生唯一一个session-id,标识和client的会话,发PADS,建立会话阶段。

(2)session阶段

        分为lcp , 认证 , ncp三个阶段。

                LCP:完成建立,配置,检测数据链路连接。

                认证:CHAP 或 PAP 。

                NCP:配置用户的IP和DNS等 。

(3)terminate阶段

         PADT可以在任意时刻发送终止。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.xdnf.cn/news/17275.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

[JAVA]MyBatis环境配置介绍

什么是MyBatis环境配置? MyBatis是基于JDBC对数据库进行操作,在我们进行数据操作时,我们需要告诉MyBatis我们连接哪个数据库,ip地址,数据库名称,用户名密码等。以此来进行环境配置。 首先,MyB…

Javascirpt时区——脱坑指南

最近业务反馈了一个约课功能的问题,澳大利亚的用户反馈,无法进行选课。排查之后发现是时区不对引起的,由于时区的偏差已经超过时间,导致无法选课。 这里对js中处理时区的问题做一些总结。 时区 时区(Time Zone&#xf…

不用来回切换,一个界面管理多个微信

你是不是也有多个微信号需要管理? 是不是也觉得频繁切换账号很麻烦? 是不是也想提升多账号管理的效率? 在工作中,好的辅助工具,能让我们的效率加倍增长! 今天, 就给大家分享一个多微管理工具…

每日OJ题_牛客_AB32【模板】哈夫曼编码_C++_Java

目录 牛客_AB32【模板】哈夫曼编码 题目解析 C代码 Java代码 牛客_AB32【模板】哈夫曼编码 【模板】哈夫曼编码_牛客题霸_牛客网 描述: 给出一个有n种字符组成的字符串,其中第ii种字符出现的次数为ai​。请你对该字符串应用哈夫曼编码,…

UDP协议

​ UDP协议 前置知识一、应用层的进程为什么要bind端口号二、如何确定网络中的一个进程三、进程 服务 协议 端口之间的关系四、常见的协议对应的端口五、一些命令六、一个进程能不能绑定多个端口号,一个端口号能不能被多个进程绑定七、对任何一个协议报文的认识 UD…

KkFileView4.1.0部署文档--linux

先看下官方文档:kkFileView - 在线文件预览 环境要求中的JDK8如果没有的,需先安装JDK8,这里不做展示。 第二个office相关环境要求在linux中会自动下载安装,不用管。 1、下载地址 Linux 或 MacOS 版: https://kkfil…

[论文笔记]An LLM Compiler for Parallel Function Calling

引言 今天带来一篇优化函数调用的论文笔记——An LLM Compiler for Parallel Function Calling。 为了简单,下文中以翻译的口吻记录,比如替换"作者"为"我们"。 当前的函数(工具)调用方法通常需要对每个函数进行顺序推理和操作&…

基于JAVA的资源检索系统(源码+定制+开发)

博主介绍: ✌我是阿龙,一名专注于Java技术领域的程序员,全网拥有10W粉丝。作为CSDN特邀作者、博客专家、新星计划导师,我在计算机毕业设计开发方面积累了丰富的经验。同时,我也是掘金、华为云、阿里云、InfoQ等平台…

展望:多模态融合与marker推断

技术进步使得利用高维、高通量、多尺度的生物医学数据从多个角度研究患者和疾病成为可能。在肿瘤学中,正在生成大量数据,从分子、组织病理学到临床记录。深度学习的引入极大地促进了生物医学数据的分析。然而,大多数方法都侧重于单一模态&…

AI在电商平台中的创新应用:提升销售效率与用户体验的数字化转型

1. 引言 AI技术在电商平台的应用已不仅仅停留在基础的数据分析和自动化推荐上。随着人工智能的迅速发展,越来越多的电商平台开始将AI技术深度融合到用户体验、定价策略、供应链优化、客户服务等核心业务中,从而显著提升运营效率和用户满意度。在这篇文章…

基于Java Springboot餐厅点餐系统(加入商家版)

一、作品包含 源码数据库设计文档万字全套环境和工具资源部署教程 二、项目技术 前端技术:Html、Css、Js、Vue 数据库:MySQL 后端技术:Java、Spring Boot、MyBatis 三、运行环境 开发工具:IDEA 数据库:MySQL5.7…

NeRF在农业领域的应用-------------(1)

一、Exploring Accurate 3D Phenotyping in Greenhouse through Neural Radiance Fields(通过神经辐射场探索温室中精确的三维表型分析) 1.摘要 在精准农业中,准确收集植物表型对于优化可持续农业实践至关重要。 在受控实验室环境中进行的传…

pico-sdk(零)

pico-sdk(零) 项目概述license相关文档 依赖三方库链接 项目概述 Raspberry Pi Pico SDK(以下简称 SDK)提供了为 RP 系列微控制器设备(如 Raspberry Pi Pico 或 Raspberry Pi Pico 2)编写 C、C 或汇编语言…

基于java+SpringBoot+Vue的视频网站系统设计与实现

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: Springboot mybatis Maven mysql5.7或8.0等等组成&#x…

vue注册全局组件,其他地方可以直接方便的调用

文章目录 问题注册全局组件完结 问题 本来我们想使用某个组件,需要在各个地方引入对应的参数,并配置好components内容,才可以使用 但是随着用的越来越多,这种方法变得重复且易出错 注册全局组件 修改main.js文件,放…

javaScript交互补充(元素的三大系列)

1、元素的三大系列 1.1、offset系列 1.1.1、offset初相识 使用offset系列相关属性可以动态的得到该元素的位置(偏移)、大小等 获得元素距离带有定位祖先元素的位置获得元素自身的大小(宽度高度)注意:返回的数值都不…

基于SSM的特色美食推荐平台+LW示例参考

1.项目介绍 系统角色:管理员、普通用户功能模块:管理员(用户管理、店铺管理、美食类型、美食收录管理、论坛交流管理等)、普通用户(登录注册、论坛交流、信息查看、美食收藏、美食资讯等)技术栈&#xff1…

【javascript从零单排】变量let、var、const

🌈"It always seems impossible until it’s done." — Nelson Mandela 种一棵树最好是机会是十年前,其次是现在。 📗概念 在 JavaScript 中,变量是用于存储数据值的容器。可以使用变量来保存不同类型的数据&#xff0…

Marp for VScode插件 PPT无法预览的问题

优质好文:https://blog.csdn.net/lyuhaochina/article/details/141527208 这是因为很多人在VScode中安装markdown插件时都会安装插件Markdown Preview Enhanced,这个插件会和Marp插件的预览功能产生冲突,导致用Marp插件做的PPT无法预览 找到设置选项Markdown-previe…

响应时间指标的探索

响应时间指标的探索 最近又看到响应时间的一些讨论,就顺着这个响应时间的一些资料整理了如下内容 1968年 目前能够追溯的最早定义响应时间的文章应该是Rober B.Miller于1968年在AFIPS 68 (Fall, part I): Proceedings of the December 9-11, 1968, fall joint comp…