第28章-PPPoE

1. 以太网接入的典型应用

 1.1. IP技术的应用与发展

 1.2. 以太网接入的典型应用场景之一——大型园区接入的典型应用

2. PPPoE技术的基本原理

 2.1. 技术背景

 2.2. PPPoE工作原理

 2.3. PPPoE的两个阶段:Discovery阶段和PPPSession阶段

 2.4. PPPoE的帧结构

 2.5. PPPoE的协商过程


1. 以太网接入的典型应用

1.1. IP技术的应用与发展

        语音+数据+移动 → 统一通讯

        例子:

        以太网接入技术:适用于园区内用户密集接入,传输介质以光纤和双绞线为主;

        HG:家庭网关(HG,Home Gateway),位于用户侧的设备;

        AN:接入点(AN,Access Node),位于运营商接入网边缘的设备;

        AGG:汇聚设备(AGG,Aggregation),位于AN和运营商城域网乃至骨干网之间设备;

1.2. 以太网接入的典型应用场景之一——大型园区接入的典型应用

        设计方案:大型住宅园区

        园区内设置一台园区交换机作为AN(接入点);

        园区交换机下行以百兆或千兆光纤连接所有楼道交换机,楼道交换机再连接到各用户的HG;

        园区交换机上行则采用千兆光纤连接到AGG,实现园区网络的高速接入;

        例如:

        AN设备可进行选择为三层交换机二层交换机

        采用三层转发延伸到AN的接入方式时:

        ① AN(Access Node)上行通过路由协议实现路由转发,AN(Access Node)下行通过VLAN实现不同用户二层隔离,这样广播域被限制在AN(Access Node)下行的同一业务VLAN内,提高了接入网的带宽利用率。

        ② AN(Access Node)对用户进行高密度接入并终结二层转发,从而同一AGG可以接入更多用户终端。

        ③ AN(Access Node)和AGG(Aggregation)上无须支持和部署复杂的二层隔离和安全特性网络改造规模小,有利于采用已有设备采用较低成本的设备进行快速部署。

        采用二层交换在 AGG (Aggregation)终结:

        ① 广播域的范围扩大到一台AGG设备下的同一业务VLAN。

        ② 在二层交换终结在AGG设备的方案中,一台AGG设备最多可接入用户终端数将受限于其自身MAC地址表项数。

2. PPPoE技术的基本原理

2.1. 技术背景

        针对用户进行认证、授权和计费也是运营商需要考虑的问题之一。

        解决方案1:在以太网交换机上支持的一些认证手段如802.1X主要基于以太网交换机的上的物理端口。

        问题:部署上需要尽量靠近边缘,甚至需要在运营商管理范围之外的些接入设备上进行部署,因此在部署和管理上都不太方便,具有一定的局限性。

        解决方案2:PPPoE(Point-to-Point Protocol over Ethernet)是一种广泛应用于宽带接入领域的网络协议,常见于家庭和企业的宽带拨号接入方式。例如,公共无线热点。

2.2. PPPoE工作原理

        模式:PPPoE协议采用Client/Server方式,它将包含用户认证信息的PPP报文封装在以太网之内,在以太网上提供点对点的连接的同时,也利用PPP协议的PAP和CHAP认证方式对用户进行认证。

        PPPOE Client

        ① 可以是用户侧的HG(Home Gateway)设备,也可以是连接到网络的PC。

        ② 将以太网帧(携带PPP帧)通过以太网传送到PPPOE Server上以进行PPP认证。

        PPPOE Server:通常是位于骨千网的边缘层宽带接入服务器(Broadband Remote AccessServer,简称BRAS)。

        宽带接入服务器(BRAS)主要完成两方面功能:

        ① 网络承载功能:负责终结用户的PPPOE连接、汇聚用户的流量功能;

        ② 控制实现功能:与认证系统、计费系统和客户管理系统及服务策略控制系统相配合实现用户接入的认证、计费和管理功能。

        这两项功能都可以利用路由器设备进行实现,为方便理解,在后续的组网图和介绍中我们都以路由器来代替宽带接入服务器和模拟PPPoE Server。

2.3. PPPoE的两个阶段:Discovery阶段和PPPSession阶段

        Discovery阶段:当一个主机想开始PPPoE进程的时候,它必须先识别接入端的以太网MAC地址,建立PPPoE的SESSION ID。这也是Discovery阶段的目的。

        PPP Session阶段:当PPPoE进入Session阶段后,PPP 报文就可以作为PPPoE帧的净荷封装在以太网帧发到对端,SESSION ID必须是Discovery阶段确定的ID。MAC地址必须是对端的MAC地址,PPP报文从Protocol ID 开始。在Session阶段主机或服务器任何一方都可发PADT(PPPOEActive Discovery Terminate)报文通知对方结束本Session。

2.4. PPPoE的帧结构

        在上图所示的以太网帧的结构中:

        DESTINATION_ADDR:部分为目的MAC地址,可以是广播MAC地址(Oxffff)或者单播MAC地址。对于PPP Session数据来说,必须使用在Discovery阶段中确认的单播MAC地址。

        SOURCE_ADDR:则表示源MAC地址。

        ETHER_TYPE:为0x8863时表示该为Discovery阶段的报文,ETHER_TYPE为0x8864时则表示该帧为PPP Sssion阶段的报文。

        在上图所示的PPPoE的以太网payload中各字段的解释如下:

        VER:PPPoE的版本,根据RFC2516要求必须被设为0x1。

        TYPE:根据现存的PPPoE版本必须被设为0x1。

        CODE:用于标识Discovery阶段和PPP Session阶段的不同报文,其取值在后面进行详细介绍。

        SESSION_ID:用于唯一标识一个PPP Session,在Discovery阶段被定义,在PPPSession阶段被使用。保留值为0xffff。

        LENGTH:仅指PPPoE payload 的长度,不括以太网和PPPoE的头部。

        payload:PPPoE的 Payload 包括0或多个TAG。TAG采用上图所示的TLV(Type-Length-Value)结构:其中 TAG_TYPE 表示 TAG的类型,常用的类型在后面会进行介绍。TAG_LENGTH则表示TAG_VALUE的长度。

2.5. PPPoE的协商过程

        在如上图所示的组网中,PPPoE Client先将用户数据封装为PPP,再将PPP封装到以太网帧中,PPP中相关的验证信息将会送给PPPoE Server进行PAP或CHA验证。通过验证之后,PPPoE Client会以IPCP协商的形式从PPPoE Server获得IP地址。

        PPPoE Client和PPPoE Server之间的PPPoE协商过程分为Discovery阶段和PPP Session阶段。

        Discovery阶段

        第1步:PPPoE Client在以太网口上广播PADI(PPPoE Active Discovery lnitiation)报文该报文以以太网帧的形式被ADSL Modem桥接到运营商的集中路由器(PPPoE Server)上。

        (PPPoE头部:CODE=0x09;SESSION_ID=0x0000。PPPoEPavload: TAG_TYPE必须包括Service-Name,用于指示请求的服务:也可以包含其他的TAG)

        第2步:PPPoE Server在收到PADI之后,发送回PADO(PPPoE Active Discovery Offer)报文,其中包含了PPPoE Server的AC-name(Access Concentrator's name)信息和可以提供的服务信息Service-Name,以供 PPPoE Client 进行选择。

        (PPPoE 头部:CODE=0x07;SESSION_ID=0x0000。PPPoE Payload:必须包含至少一个Service-Name的TAG,用于指示可以提供的服务类型;必须包含AC-name的TAG)

        第3步:PPPoE Client发送一个单播的PADR(PPPoE Active Discovery Request)报文给选定的PPPOE Server。报文中包含服务信息Service-Name。

(PPPoE头部:CODE=0x19;SESSION_ID=0x0000。PPPoE Payload:TAG_TYPE必须包括Service-Name用于指示请求的服务;也可以包含其他的TAG)

        第4步:PPPoE Server发回PADS(PPPoE Active Discovery Session-Confirmation)报文,其包含session ID信息。完成Discovery阶段。

        (PPPoE 头部:CODE=0x19;SESSION_ID由PPPoE Server定义。PPPE Payload: TAG_TYPE 必须包括Service-Name,用于指示PPPOE Server同意提供的服务;也可以包含其他的TAG)

        在Discovery阶段之后,PPPoE Client已经知道了PPPoE Server的MAC地址和session ID,并可以据此来建立相应的PPP连接。接下来进入PPP session阶段。

        PPP Session阶段

        在PPP session阶段,PPPoE Client和PPPoE Server之间进行普通的LCP、NCP、IPCP协商来进行PPP验证(PAP或CHAP)和IP地址的分配。

        在PPP session阶段,以太网的ETHER_TYPE为0x8864,PPPoE头部的CODE=0x00,SESSION_ID在会话建立过程中不能发生改变,PPPOE Payload为PPP帧。

        在PPP session建立之后,PPPOE Server和Client都可以通过发送PADT(PPPOE Active Discovery Terminate)报文来终止PPP session。PPPoE头部的CODE=0xa7,不括TAG。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【精品毕设推荐】搜索引擎的设计与实现

点击免费下载原文及代码 摘要 我们处在一个大数据的时代,伴随着网络信息资源的庞大,人们越来越多地注重怎样才能快速有效地从海量的网络信息中,检索出自己需要的、潜在的、有价值的信息,从而可以有效地在日常工作和生活中发挥作…

【NI 国产替代】cDAQ-9178, 8槽USB CompactDAQ机箱,国产数据采集卡控制器进口替代方案

8槽USB CompactDAQ机箱 cDAQ-9178是专为小型便携式传感器测量系统而设计的总线供电CompactDAQ USB机箱。机箱通过即插即用的USB可轻松连接传感器和电气测量。该机箱还可控制C系列I/O模块与外部主机之间的定时、同步和数据传输。机箱可以搭配不同的C系列I/O模块组合&#xff0c…

【C++】cin输入和cout输出

cin和cout简介 cin可以从键盘中读取数据,cout可以把数据打印到显示器上,cout配合endl可以打印换行符。cin、cout和endl是在iostream头文件内声明的,使用时必须#include包含iostream头文件。cin、cout和endl都在命名空间std里,参考…

区块链交易所开发

在当今数字化时代,区块链技术以其独特的去中心化、安全性和透明性,正在逐步改变我们的生活。其中,区块链交易所作为连接区块链技术与广大投资者的桥梁,其开发与发展备受关注。本文将从技术进步与市场需求两个维度,探讨…

抖音小店达人佣金应该怎么结算呢?给达人设置多少佣金合适?

大家好,我是电商小V 咱们在运营抖音小店的时候一定会遇到被达人催促结算佣金的情况,咱们给达人合作的时候都会遇到过新手达人,就是给咱们直播带货之后催促咱们赶紧结算商品的佣金, 但是咱们都需要知道一点,那就是小店的…

VTK —— 三、简单操作 - 示例2 - 计算从3D点到直线的距离(附完整源码)

代码效果 本代码编译运行均在如下链接文章生成的库执行成功,若无VTK库则请先参考如下链接编译vtk源码: VTK —— 一、Windows10下编译VTK源码,并用Vs2017代码测试(附编译流程、附编译好的库、vtk测试源码) 教程描述 本…

跟TED演讲学英文:How to govern AI — even if it‘s hard to predict by Helen Toner

How to govern AI — even if it’s hard to predict Link: https://www.ted.com/talks/helen_toner_how_to_govern_ai_even_if_it_s_hard_to_predict? Speaker: Helen Toner Date: April 2024 文章目录 How to govern AI — even if its hard to predictIntroductionVocabu…

Hadamard Product(点乘)、Matmul Product(矩阵相乘)和Concat Operation(拼接操作)在神经网络中的应用

Hadamard乘积(Hadamard Product),矩阵乘法(Matmul Product)和拼接操作(Concatenation Operation)在神经网络中的使用情况如下: Hadamard Product点乘、内积: Hadamard乘…

编程入门(六)【Linux系统基础操作一】

读者大大们好呀!!!☀️☀️☀️ 🔥 欢迎来到我的博客 👀期待大大的关注哦❗️❗️❗️ 🚀欢迎收看我的主页文章➡️寻至善的主页 文章目录 🔥前言🚀Linux操作系统介绍与环境准备Linux操作系统介…

Kafka源码分析(五) - Server端 - 基于时间轮的延时组件

系列文章目录 Kafka源码分析-目录 一. 背景 Kafka内部涉及大量的"延时"操作,比如收到PRODUCE请求后可为副本等待一个timeout的时间后再响应客户端。 那我们讨论一个问题:Kafka为什么自己实现了一个延时任务组件,而不直接使用ja…

《从Paxos到Zookeeper》——第五、六章:经典应用场景

目录 第五章 使用Zookeeper 5.1 服务端部署与运行 5.2 客户端相关 5.2.1 客户端运行 5.2.2 客户端命令 5.3 Java客户端API 5.4 开源客户端 第六章 经典应用场景 6.1 典型应用场景及实现 6.1.1 数据发布/订阅(全局配置中心) 6.1.2 负载均衡(Lo…

ChatGPT Web Midjourney一键集成最新版

准备工具 服务器一台 推荐使用浪浪云服务器 稳定 安全 有保障 chatgpt api 推荐好用白嫖的api 项目演示 项目部署 浏览器访问casaos 添加软件原添加 https://gitee.com/langlangy_1/CasaOS-AppStore-LangLangy/raw/master/chatmjd.zip 安装此软件 等待安装 安装后再桌面设置…

什么是模版方法模式,有哪些应用?

模板方法模式是一种行为设计模式,他的主要作用就是复用代码。在很多时候,我们的代码中可能会有-些公共的部分并且还有一些定制的部分,那么公共这部分就可以定义在一个父类中,然后将定制的部分实现在子类中。这样子类可以根据需要扩…

TRIZ理论助力充电桩产业跨越技术瓶颈,实现产业升级!

随着新能源汽车市场的迅猛发展和电动汽车保有量的不断增加,充电桩作为电动汽车的“能量补给站”,其重要性日益凸显。然而,充电桩产业在发展过程中也面临着诸多技术瓶颈,如何突破这些瓶颈,推动充电桩产业升级成为行业亟…

《Video Mamba Suite》论文笔记(2)Mamba对于多模态交互的作用

原文翻译 4.2 Mamba for Cross-Modal Interaction Tasks and datasets.除了单模态任务外,我们还评估了 Mamba 在跨模态交互方面的性能。我们首先使用视频时间定位 (Video Temporal Grounding) 任务进行评估。所涉及的数据集包含 QvHighlight [44] 和 Charade-STA …

Vue阶段练习:初始化渲染、获取焦点、记账清单

阶段练习主要承接Vue 生命周期-CSDN博客 ,学习完该部分内容后,进行自我检测,每个练习主要分为效果显示、需求分析、静态代码、完整代码、总结 四个部分,效果显示和准备代码已给出,我们需要完成“完整代码”部分。 练习…

交直流充电桩测试系统解决方案,你了解多少?

交直流充电桩测试系统是电动汽车充电设施的重要组成部分,它对充电桩的性能、安全性和可靠性进行全方位的检测和评估。随着电动汽车的普及,充电桩测试系统的需求也在不断增加。本文将对交直流充电桩测试系统的解决方案进行简要介绍。 1. 系统组成 交直流…

微信小程序如何使用svg矢量图标

微信小程序如何使用自定义SVG矢量图标 在微信小程序中,经常会用到小图标来装饰界面,我们常用的方法就是引用第三方的图标,但会存在收费或者找不到合适的图标,这时候我建议可以自行编写svg图标代码,就可以随心所欲的使…

纯干货,源代码防泄密之环境加密与文档加密的区别

环境加密和文档加密是两种不同的数据保护方法,下面用SDC沙盒及文档加密系统作对比,它们在设计理念、管控对象、安全性、性能以及适用场景等方面有所区别: 来百度APP畅享高清图片 1、设计理念: 环境加密(如SDC沙盒&am…

JavaScript继承的方法和优缺点

原型链继承 让一个构造函数的原型是另一个类型的实例,那么这个构造函数new出来的实例就具有该实例的属性。 优点: 写法方便简洁,容易理解。 缺点: 在父类型构造函数中定义的引用类型值的实例属性,会在子类型原型上…