今天给大家介绍一下PPPoE协议的相关内容,文章浅显易懂,特别适合0基础同学。本文将主要从PPPoE技术背景、基本概念和建立流程三个方面进行说明。
在阅读本文之前,强烈建议您先阅读本文的先导文章:一文看懂PPP协议——PPP协议简介

一、PPPoE技术背景

目前,我们普通家庭在上网的时候,一般都是利用了ADSL技术进行拨号上网。其大致网络架构拓扑图是这样的:

对于网络运营商而言,搭建如上的网络架构并不难,但是问题在于网络运营商要对用户上网行为进行收费和控制,因此,针对特定的数据包,就必须识别发送方的身份。
在以太网链路上,以太网帧不具有上述功能,但是在PPP链路上,由于PPP协议自带认证功能,因此可以完美的解决上述问题。但是,PPP链路又无法实现多用户上网的需求。为了解决这个矛盾问题,解决用户上网行为管理和收费的问题,提出了将PPP数据帧封装在以太网数据帧里边从而在以太网网络中传输的技术——PPPoE技术。
这里的PPP,就是指的PPP协议数据帧,而o就是over的意思,E就是Ethernet的意思,因此,PPPoE形象的说就是“在以太网上的PPP协议”。

二、PPPoE基本概念

上文中我们提到了PPPoE的背景——为了解决家庭用户上网行为控制和计费问题。并简要介绍了PPPoE的实现原理。PPPoE在数据链路层依旧是采用以太网格式的数据帧进行封装,但是在以太网封装完毕后,会进行PPPoE的数据头封装,PPPoE包括PPPoE头和PPPoE数据段两个部分,而PPPoE数据段部分中又包含了PPP帧和正常的数据。另外,在这里要特比注意:这里的PPP帧并不是一个完整的PPP帧,它只包含了PPP帧的Protocol字段和正常的数据。其他的字段(如FLAG、FCS等)在PPPoE建立过程中并不需要。PPPoE数据包封装如下所示:

三、PPPoE建立流程

上文中我们提到了PPPoE的数据包格式,那么PPPoE到底是如何实现的呢?下面我们一起来看一下:
PPPoE是典型的C/S架构,普通用户一般为Client,而运营商为Server。PPPoE的建立分为Discover阶段和PPP Session阶段。
在Discover阶段中,数据通信流程如下:

如上图所示,当Client要运行PPPoE时,首先以广播的形式发送一个PADI(PPPoE Active Discovery Initiation)报文,该报文中含有Client端要请求的服务信息,PPPoE服务器在收到该报文后,会以单播的方式发送一个PADO(PPPoE Active Discovery Offer)报文,对Client端的PADI报文进行回应。PPPoE Client端在收到这个报文后,会向PPPoE Server发送PADR(PPPoE Active Discovery Request)报文。在这个报文中,PPPoE Client会创建并携带一个PPPoE Session。之后,PPPoE Server还会向客户端发送PADS(PPPoE Active Discovery Session-confirmation)报文,表示收到了该Session ID。
到目前为止,Discover阶段已经结束了,PPPoE客户端和PPPoE服务端已经协商好了Session-ID,以后的PPPoE会话就会使用这个Session-ID了。
在Discover阶段结束后,PPPoE会话会进入到PPP Session阶段,在该阶段中,会完成PPPoE客户端和服务端的认证过程,最终会依照PPP协议中连接的建立流程,完成链路层和网络层参数的协商,最后就能够正常通信了。
原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200/article/details/118583965

一文看懂PPPoE协议——PPPoE协议简介相关推荐

  1. AMBA总线协议(三)——一文看懂AHB总线所有协议总结(AHB2 AHB-Lite AHB5 )

    AMBA AHB 总线协议介绍请点击以下链接: AMBA总线协议(一)--一文看懂APB总线协议 AMBA总线协议(二)一文看懂AMBA2 AHB2与AMBA3 AHB-Lite总线协议的区别 AMB ...

  2. AMBA总线协议(一)——一文看懂APB总线协议

    0.AMBA总线概括 AMBA AHB 总线协议介绍请点击以下链接: AMBA总线协议(二)一文看懂AMBA2 AHB2与AMBA3 AHB-Lite总线协议的区别 AMBA总线协议(三)--一文看懂 ...

  3. 无处 不在的无线智能——6g 的关键驱动与研究挑战_一文看懂什么是 6G

    原标题:一文看懂什么是 6G 2020年行将结束,随着5G网络的建设推进,以及3GPP R16版本的冻结,越来越多的人将关注焦点转移到6G身上. 7月14日,韩国三星电子发布了白皮书<下一代超连 ...

  4. 一文看懂开源许可证丨开源知识科普

    一文看懂开源许可证丨开源知识科普 1. 一文看懂开源许可证丨开源知识科普 1.1. 什么是开源许可证? ("Open Source License") 1.2. 常见开源许可证 1 ...

  5. 《SOC芯片研究框架》深度科普,发展趋势、技术特点、产业链一文看懂

    片上系统SoC(System on Chip),即在一块芯片上集成一整个信息处理系统,简单来说 SoC芯片是在中央处理器CPU的基础上扩展音视频功能和专用接口的超大规模集成电路,是智能设备的" ...

  6. 一文看懂WS2812的呼吸灯实现

    一文看懂WS2812呼吸灯实现 1. 相关资料   WS2812是一个集控制电路与发光电路于一体的智能外控LED光源,外形一般为5050封装,每个LED灯珠为一个像素点,支持RGB无极调色,同时每颗灯 ...

  7. 海普天刷卡机刷卡的时候显示服务器连接失败,一文看懂智能消费机解决方案,解锁新知识...

    原标题:一文看懂智能消费机解决方案,解锁新知识 文章来源:海普天一卡通 消费机的市场发展也呈现出一个快速发展的趋势.据调查报告表明,未来消费机的发展将会以25%的增长趋势发展,智能消费机的发展使得它应 ...

  8. php-fpm进程的用户组,一文看懂PHP进程管理器php-fpm

    php-fpm是什么 php-fpm是PHP的一个进程管理器.php下面的众多work进程皆有php-fpm进程管理器管理. php-fpm的工作原理 php-fpm全名是PHP FastCGI进程管 ...

  9. 一文看懂NLP神经网络发展历史中最重要的8个里程碑!

    一文看懂NLP神经网络发展历史中最重要的8个里程碑! https://mp.weixin.qq.com/s/gNZiiEfsQjlF9tArNDIt5Q 作者|Sebastian Ruder 译者|小 ...

  10. 2021-11-06一文看懂融合定位技术6种打开方式,深圳核芯物联国产蓝牙aoa融合定位生态合能伙伴方案展示 核芯物联岳毅恒

    一文看懂融合定位技术6种打开方式,深圳核芯物联国产蓝牙aoa融合定位生态合能伙伴方案展示 原创 市大妈 物联传媒 今天 方案素材:属于核芯物联国产蓝牙aoa融合定位生态伙伴所有 本文来源:物联传媒 本 ...

最新文章

  1. 009 自动打怪功能的设计和实现
  2. ImportError: No module named setuptools
  3. 单独使用 laydate 日期时间组件
  4. 装饰者模式(Decorator)
  5. 工具箱锁打不开了怎么办_木门门锁坏了怎么办?维修小技巧在手不发愁
  6. 网络协议从入门到底层原理(10)WebSocket、WebService、RESTful、HTTPDNS、FTP文件传输协议、邮件相关协议、IPv6
  7. 二叉树——基本知识+python实现
  8. 小马儿随笔十一:朋友一生一起走
  9. python中单词个数_python 统计单词个数
  10. CANape中使用vCDMStudio批量标定
  11. Confluence 6.15 附件(Attachments )宏
  12. 再也不用担心微信公众号排版了
  13. 《信号与系统》解读 第1章 信号与系统概述-1:信号与系统的描述和分析方法
  14. 离线地图数据tpk的制作
  15. Unity组件:Lens Flare 镜头光晕
  16. 检测OTU序列遗传发育信号的R实现
  17. 怎么将svn服务器上的文件彻底删除,如何彻底删除SVN中的文件和文件夹(附恢复方法)...
  18. timeval结构体的使用
  19. 【WAF剖析】——sql注入之bypass深度剖析
  20. 战区与游戏服务器的连线已中断,使命召唤战区无法连接服务器如何解决?无法连接服务器解决方法介绍[多图]...

热门文章

  1. 深度学习10-tf.data-数据输入管道简介
  2. 关于软件开发的一些常识和思考
  3. “李刚畅谈Java编程人生”讲座
  4. 面向对象之封装的成本价值
  5. Scipy教程 - 线性代数库scipy.linalg
  6. delphi 中文转 ascii编码_【转】Python 中文编码
  7. ztree 后台异步加载_zTree树形插件异步加载方法详解
  8. PTA 程序设计天梯赛(121~140题)
  9. 《Android 第1行代码》读后感—第15章【最后一步——将应用发布到360应用商店】
  10. JAVA—字符串怎么转换成整数