网络知识点之—PPPoE

本文章已收录至《网络》专栏,点进右上角专栏图标可访问本专栏

PPPoE(Point-to-Point Protocol Over Ethernet),指以太网上的点对点协议,是将点对点协议(PPP)封装在以太网(Ethernet)框架中的一种网络隧道协议。由于协议中集成PPP协议,所以实现出传统以太网不能提供的身份验证、加密以及压缩等功能,也可用于缆线调制解调器(cable modem)和数字用户线路(DSL)等以以太网协议向用户提供接入服务的协议体系。

  • 中文名:基于以太网的点对点通讯协议
  • 外文名:Point to Point Protocol over Ethernet
  • 简称:PPPoE
  • 适用:ADSL等
  • 学科:计算机
  • 领域:计算机

简介

PPPoE本质上它是一个允许在以太网广播域中的两个以太网接口间创建点对点隧道的协议。
以Linux系统常用的pppd为例,支持PPP接口上面的IP、IPv6和IPX网络层协议。
它使用传统的基于PPP的软件来管理一个不是使用串行线路而是使用类似于以太网的有向分组网络的连接。这种有登陆和口令的标准连接,方便了接入供应商的记费。并且,连接的另一端仅当PPPoE连接接通时才分配IP地址,所以允许IP地址的动态复用。
PPPoE是由UUNET、Redback Networks和RouterWare所开发的发表于RFC 2516说明中。

PPPoE的阶段

PPPoE发现

由于传统的PPP连接是创建在串行链路或拨号时创建的ATM虚电路连接上的,所有的PPP帧都可以确保通过电缆到达对端。但是以太网是多路访问的,每一个节点都可以相互访问。以太帧包含目的节点的物理地址(MAC地址),这使得该帧可以到达预期的目的节点。 因此,为了在以太网上创建连接而交换PPP控制报文之前,两个端点都必须知道对端的MAC地址,这样才可以在控制报文中携带MAC地址。PPPoE发现阶段做的就是这件事。除此之外,在此阶段还将创建一个会话ID,以供后面交换报文使用。

PPP会话

一旦连接的双方知道了对端的MAC地址,会话就创建了。

PPPoE发现阶段

尽管传统的PPP是点对点协议,但是由于多个主机可以通过一个单独的物理连接连接到一个服务提供者,因此PPPoE本身就是一个客户端-服务器的关系。 发现过程包含四个步骤。主机作为客户端,ISP端的访问集中器作为服务器。这四步在下面详述。最后一步第五步是关闭一个现存会话的方法。

1.到服务器

PADI为PPPoE Active Discovery Initiation的缩写。

如果一个用户想要使用DSL拨号连入Internet,那么他的计算机必须首先在其ISP的网络服务提供点(POP)找到DSL访问集中器(DSL-AC)。在以太网上通讯只能通过MAC地址。由于计算机不知道DSL-AC的MAC地址,于是就在以太网上广播一个PADI报文。这个报文中包含发送者的MAC地址。

PADI报文可能被一个以上的DSL-AC接收。 只有可以提供“服务名称”(Service-Name)的DSL-AC设备才应该回复。

2.服务器到客户端

PADO为PPPoE Active Discovery Offer的缩写。

一旦用户计算机发送了PADI报文,DSL-AC就会使用PADI中提供的MAC地址回复一个PADO报文。PADO报文中包含了DSL-AC的MAC地址、名称以及服务名。如果多于一个POP的DSL-AC回复了PADO报文,用户计算机就使用提供的名称和服务来从中选择一个。

3.客户端到服务器

PADR为PPPoE Active Discovery Request的缩写。

当用户计算机收到一个来自DSL-AC的可接受的PADO报文后,就会发送一个PADR报文给DSL-AC,用来确认接受发送PADO报文的DSL-AC所提供的PPPoE连接。

4.服务器到客户端

PADS为PPPoE Active Discovery Session-confirmation的缩写。

上面的PADR报文由DSL-AC的PADS报文进行确认,并在其中携带一个会话ID。用户计算机与此DSL-AC的连接就完整创建了。

5.任何一方

PADT为PPPoE Active Discovery Termination的缩写。

这个报文终结用户计算机与POP的的连接,可由用户计算机或DSL-AC任意一方发送。

使用时的缺点

使用Internet前,需先透过PPPoE进行拨接,而非计算机引导后立即上网。(引导后立即上网,详见DHCP,有些ISP有提供第1台PC自DHCP获取固定IP)

部分ISP会对PPPoE的连线用户采取定时断线,以节省营运成本及IP地址的占用,故对于需长时间挂网的用户较不利。但也有部分ISP为提供用户选择PPPoE可发配非固定IP或固定IP的服务。

Windows XP之后的Windows,Mac OS X、Linux等操作系统等皆已内置PPPoE的拨接功能,更早期的操作系统需另行安装PPPoE的拨接程序,如Enternet 300、RAS PPPoE等。

故障分析

(1)645故障描述:拨号适配器未装
这种情况主要针对Windows ME和Windows98而言,解决办法是在Windows98下添加拨号适配器组件即可。对Windows ME而言,因为它没有直接添加拨号适配器的选项,所以必须在控制面板中先删除拨号网络组件,再添加拨号网络组件,完成适配器的添加。
(2)691/629故障描述:不能通过验证
可能的原因是用户的账户或者密码输入错误,或用户的账户余额不足,用户在使用时未正常退出而造成用户账号驻留,可等待几分钟或重新启动后再拨号。
(3)630故障描述:无法拨号,没有合适的网卡和驱动
可能的原因是网卡未安装好、网卡驱动不正常或网卡损坏。检查网卡是否工作正常或更新网卡驱动。
(4)633故障描述:调制解调器(或其它连接设备)已在使用,或没有正确配置。
如果是拨号网络连接,则网络连接试图使用的COM端口正在被其他活动网络连接或其他进程(例如,诸如传真程序之类的电话线路监视程序)使用。退出阻止使用COM端口的应用程序。
如果是虚拟专用网络(VPN),则不能打开网络连接试图使用的VPN设备。这需要您的系统管理员才能解决。
如果这是宽带连接,则无法打开网络连接尝试使用的宽带设备。确保要求硬件(电缆调制解调器)运行正常。有关所需硬件的详细信息需要您的宽带服务提供商来解答。
(5)720故障描述:不支持PPPoE连接
它是Windows 2000特有的故障,建议重新启动后再进行连接,如仍不能排除故障,建议重装系统。
(6)697故障描述:网卡禁用
只要在设备管理中重新启用网卡即可。
(7)769故障描述:拨号时报769错误
在Windows XP系统中网卡被禁用、系统检测不到网卡或者拨号软件故障,有时会报769错误。重新启用网卡、检查网卡工作是否正常或重装拨号软件即可解决。
(8)678(651)故障描述:无法建立连接
远程计算机没有响应,windows xp 错误代码为678,windows 7错误代码为651,造成此故障的原因是基础线路问题,或者您的互联网服务提供商设备问题。

发展前景

PPPoE是从窄带技术演化而来,PPP最早就是专门

为电话线上网而设计的,当宽带普及后,为了兼容以前的电话线用户习惯,故在宽带网络中继承了PPP技术。PPPoE是一种过渡技术,已经基本处于淘汰阶段。原因如下:
1、PPPoE是一种2层链路技术,正常下无法穿透三层交换机,若要在三层交换机传输,就必须做trunk,即把三层当作二层交换机使用。这导致不能充分发挥三层交换机的潜能,三层交换机的很多高级功能都无法使用,从而浪费了宝贵的网络设备资源。也给整体网络规划造成了一定的复杂性。如果一开始采用了PPPoE认证,那么以后想要使用三层交换机网络规划功能,调整整体网络,那么将是一个巨大的工作量。
2、宽带使用PPPoE方式,将造成不必要的带宽损耗,而且上网速度比正常宽带速度要慢一个级别。原因是采用PPPoE比正常宽带包,多了2个协议层,一个是PPPoE协议层,另一个就是PPP协议层,这几个协议层头会增加到正常数据包头部里,在传输数据过程中,多出了不少额外数据,拨号握手过程也比正常多了好几个步骤。
3、2004年开始,ARP攻击在网络流行时,PPPoE由于自身与ARP无关的特点,使其具有天然免疫优势,所以,当时很多场合对PPPoE有较高的需求。
但经过近10年网络发展,随着各种安全软件普及,如360、电脑管家、以及各种杀毒软件等都早已具有防止ARP攻击功能。因此,ARP攻击已经彻底消失殆尽。PPPoE的各种缺点已经越来越不适应宽带网络的发展。
4、PPPoE客户端一般都会采用操作系统自带的PPPoE,但设置比较麻烦,有很多步骤,普通家庭用户若不熟悉,大多数根本搞不定,此时维护人员必须挨家挨户进行上门设置,这给网络维护带来了很大工作量。非常不利宽带网络用户的发展和运营,将经常接到用户关于PPPoE的使用投诉。
5、PPPoE的效率比较低,从PPPoE协议模型可以看出,BAS汇聚了用户的所有数据流,它必须将每一个PPPoE包都拆开检查处理,这在很大程度上是沿袭了传统的PPP处理的方式,一旦用户很多,数据包数量很大,解封装速度就需要很快,BAS很大的精力花在检测用户的数据包上,容易形成接入的“瓶颈”。
6、PPPoE由于采用了二层链路方式,所以在防止ARP三层包攻击方式具有很大安全性,但PPPoE自身却存在着协议不安全性,因为PPPoE认证是采用广播方式,在网段内只要装个网络嗅探器,都能截获到PPPoE包,并能做任意修改重定向。

 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

机器学习的超参数 、训练集、归纳偏好

一、介绍 超参数(Hyperparameters)和验证集(Validation Set)是机器学习中重要的概念,用于调整模型和评估其性能。 超参数: 超参数是在机器学习模型训练过程中需要手动设置的参数,而不是从数据…

C/C++与汇编混合编程

1. C/C调用汇编 C/C想调用汇编代码必须要注意名称修饰的问题 名称修饰(name decoration): 一种标准的C/C编译技术, 通过添加字符来修改函数名, 添加的字符指明了每个函数参数的确切类型。主要是为了支持函数重载, 但对于汇编来说其问题在于, C/C编译器让链接器去找被修饰过的名…

K8S-EverNote同步

Node污点 释义看文档就好 https://kubernetes.io/zh-cn/docs/concepts/scheduling-eviction/taint-and-toleration/ 污点是Node的属性 容忍度是Pod的属性 用来标记各自特征的,通常协同工作。 举个例子, 一个Node的污点 kubectl taint nodes node1 key1v…

算法练习10——数组为空的最少操作次数

LeetCode 100032 使数组为空的最少操作次数 给你一个下标从 0 开始的正整数数组 nums 。 你可以对数组执行以下两种操作 任意次 : 从数组中选择 两个 值 相等 的元素,并将它们从数组中 删除 。 从数组中选择 三个 值 相等 的元素,并将它们从数…

cadence SPB17.4 S032 - 使用room来放置元件

文章目录 cadence SPB17.4 S032 - 使用room来放置元件概述笔记在orcad中设置子原理图的ROOM号码在空的Allegro工程中, 放入板框在allegro中建立room备注补充 - ROOM还得留着END cadence SPB17.4 S032 - 使用room来放置元件 概述 如果在allegro中直接手工或自动放置元件, 放好…

C++ —— 单机软件加入Licence许可权限流程(附详细流程图、详细代码已持续更新..)

单机版许可证简介 笼统的说:实现一个生成授权Lic文件应用程序(我们使用),生成的Lic文件给应用程序(客户使用)启动时读取一下对比加密后的字符串或自定义格式的密钥判断是否正确。 单机版许可证执行流程 第一级比对:发布的加密许可证文件,该加密许可证文件仅可用使用的软…

计算机网络各层设备

计算机网络通常被分为七层,每一层都有对应的设备。以下是各层设备的简要介绍: 物理层(Physical Layer):负责传输二进制数据位流的物理媒体和设备,例如网线、光纤、中继器、集线器等。 数据链路层&#xf…

LeNet网络复现

文章目录 1. LeNet历史背景1.1 早期神经网络的挑战1.2 LeNet的诞生背景 2. LeNet详细结构2.1 总览2.2 卷积层与其特点2.3 子采样层(池化层)2.4 全连接层2.5 输出层及激活函数 3. LeNet实战复现3.1 模型搭建model.py3.2 训练模型train.py3.3 测试模型test…

【网络协议】传输层协议

目录 传输层协议 1.传输层的两个协议 1.1TCP和UDP的应用场景 1.2传输层协议和应用层协议的关系 2.TCP和UDP的对比(重点) (1)无连接的UDP和面向连接的TCP (2)UDP和TCP对单播、多播和广播的支持情况 (3)UDP和TCP对应用层报文的处理 (4)UDP和TCP对数…

React实现多图片预览功能、预览图上下张切换(实战示例)

前言 在React项目中,展示和预览多张图片是一种常见的需求。本篇帖子将介绍如何使用React和antd库来实现这一功能,并探讨如何在预览模态框中切换到前一张或后一张图片。 背景 我们将以一个OCR图像列表展示的示例来演示代码的运用。假设我们有一个OCR系…

Linux系统编程系列之进程间通信-信号量组

一、什么是信号量组 信号量组是信号量的一种, 是system-V三种IPC对象之一,是进程间通信的一种方式。 二、信号量组的特性 信号量组不是用来传输数据的,而是作为“旗语”,用来协调各进程或者线程工作的。信号量组可以一次性在其内…

【LeetCode】滑动窗口妙解无重复字符的最长子串

Problem: 3. 无重复字符的最长子串 文章目录 思路算法原理分析暴力枚举 哈希表滑动窗口 复杂度Code 思路 首先我们来分析一下本题的思路 如果读者有看过 长度最小的子数组 的话就可以清楚这个子串其实和子数组是一个道理,都是 连续的一段区间但是呢它们本质上还是存…

应用架构的演进:亚马逊的微服务实践

当你在亚马逊上购物时,或许不会想到,你看到的这个购物网站,其背后技术架构经历了什么样的变迁与升级。 还记得上世纪 90 年代,那个只卖书的网上书店吗?那时的亚马逊,不过是一个架构简单的网站,所有的功能都堆积在一个庞大的软件堡垒里。随着更多业务的增加、更新和迭代,这个软…

【小程序 - 基础】页面导航、页面事件、生命周期、WXS脚本_04

目录 一、页面导航 1. 什么是页面导航 2. 小程序中实现页面导航的两种方式 2.1 声明式导航 2.1.1 导航到 tabBar 页面 2.1.2 导航到非 tabBar 页面 2.1.3 后退导航 2.2 编程式导航 2.2.1 导航到 tabBar 页面 2.2.2 导航到非 tabBar 页面 2.2.3 后退导航 2.3. 导航…

从1开始的Matlab(快速入门)

MATLAB软件版本:MATLAB R2016b 本文是博主从零开始学Matlab的记录,适合第一次接触Matlab的同学阅读。 一、基础介绍 1.1界面认识 1.2变量命名 注:Matlab中的注释 %% 独占一行的注释(有上下横线分割) % 普通注释 …

C语言:选择+编程(每日一练Day9)

目录 选择题: 题一: 题二: 题三: 题四: 题五: 编程题: 题一:自除数 思路一: 题二:除自身以外数组的乘积 思路二: 本人实力有限可能对…

stm32 - 串口

stm32 - 串口 OLED显示屏 OLED显示屏 oled.h #ifndef __OLED_H #define __OLED_Hvoid OLED_Init(void); void OLED_Clear(void); void OLED_ShowChar(uint8_t Line, uint8_t Column, char Char); void OLED_ShowString(uint8_t Line, uint8_t Column, char *String); void OLE…

深入理解 Swift 新并发模型中 Actor 的重入(Reentrancy)问题

问题现象 我们知道,Swift 5.5 引入的新并发模型极大简化了并行逻辑代码的开发,更重要的是:使用新并发模型中的 Actor 原语可以大大降低并发数据竞争的可能性。 不过,即便 Actor 有如此神奇之功效,它也不是“万能药”,仍不能防止误用带来的问题。比如:Actor 重入(Reen…

283. 多边形,《算法竞赛进阶指南》,

283. 多边形 - AcWing题库 “多边形游戏”是一款单人益智游戏。 游戏开始时,给定玩家一个具有 N 个顶点 N 条边(编号 1∼N)的多边形,如图 1 所示,其中 N4 每个顶点上写有一个整数,每个边上标有一个运算符…

数据分析方法:RFM模型

一、RFM基本原理 RFM是三个单词的缩写: 最近一次消费时间(Recency),取数的时候一般取最近一次消费记录到当前时间的间隔,比如:7天、30天、90天未到店消费;直观上,一个用户太久不到…