本质上,它是一个允许在以太网广播域中的两个以太网接口间创建点对点隧道的协议。

PPPoE(英语:Point-to-Point Protocol Over Ethernet),以太网上的点对点协议,是将点对点协议(PPP)封装在以太网(Ethernet)框架中的一种网络隧道协议。

PPPoE的阶段

编辑

PPPoE分为两个阶段: [1] 

PPPoE发现

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

PPP会话

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

PPPoE发现阶段

编辑

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

客户端到服务器

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设备才应该回复。

服务器到客户端

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

客户端到服务器

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

服务器到客户端

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

任何一方

PADT为PPPoE Active Discovery Termination的缩写。
  这个报文终结用户计算机与POP的的连接,可由用户计算机或DSL-AC任意一方发送。
 
 
PPP
点对点协议(PPP,Point-to-Point Protocol)主要是用来通过拨号或专线方式在两个网络节点之间建立连接、发送数据。PPP是各类型主机、网桥和路由器之间简单连接的一种解决方案。PPP协议在RFC1661中有详细的描述。 PPP协议是目前广域网上应用最广泛的协议之一,它的优点在于简单、具备用户验证能力、可以解决IP分配等。
 

协议概述

PPP作为数据链路层layer 2协议既支持用于同步链路连接,
 

PPP协议的帧格式

标志字段(1B)
地址字段(1B)
控制字段(1B)
协议(2B)
信息部分
FCS(2B)
标志字段(1B)
  • PPP的帧格式前3个字段(Flag、Address、Control)固定为:0x7E、0xFF和0x03。
  • 协议字段:表示 Information 封装的协议包的类型(例如LCP、NCP和IP等)。
  • 数据字段:包含PPP的净荷,数据的长度是经过协商确定,是可变长度的。
  • FCS字段为整个帧的循环冗余校验码,用来检测传输中可能出现的数据错误。

PPP特点

PPP相比于其他协议,具有以下特点:
  • PPP具有动态分配IP地址的能力,允许在连接时刻协商IP地址。
  • PPP支持多种网络协议,比如TCP/IP、NetBEUI、NWLINK等。
  • PPP具有错误检测以及纠错能力,支持数据压缩。
  • PPP具有身份验证功能,互联的两台设备可以验证对方身份,加强了安全性。
  • PPP可以用于多种类型的物理介质上,包括串口线、电话线、移动电话和光纤(例如SDH),PPP也用于Internet接入。

PPP应用场景

PPP现在已经成为使用最广泛的Internet接入方式的数据链路层协议。PPP可以和ADSL、Cable Modem、LAN等技术结合起来完成各类型的宽带接入。我们家庭中使用最多的宽带接入方式就是PPPoE(PPP over Ethernet)。这是一种PPP利用以太网(Ethernet)资源,在以太网上运行PPP来对用户进行接入认证的技术,PPP负责在用户端和运营商的接入服务器之间建立通信链路。

PPPOE的更多相关文章

  1. 树莓派pppoe

    连接的网络是移动(铁通)的宽带,不同的宽带的dns需要修改. 1.首先安装pppoe包 apt-get install pppoe 2.然后,复制conf文件/etc/ppp/pppoe.conf: ...

  2. dd-wrt 定时重连 pppoe 更换ip地址

    因为做代理,IP时常被封的原因,所以,需要每天定时重启路由器,重启路由器影响太大,所以重新拨号是一个更好的选择. 在dd-wrt里面,杀掉pppoe服务进程就可以了,这个进程会自动重新启动,然后就相当 ...

  3. PPPoE(以太网上的点对点协议)

    协议概述 PPPoE分为两个阶段,即Discovery(地址发现)阶段和PPP会话阶段.当某个主机希望发起一个PPPoE会话时,它必须首先执行Discovery来确定对方的以太网MAC地址并建立起一个 ...

  4. Configure PPPoE on CentOS7

    Why? I prefer using ethernet to Wifi to access internet. But, I'm afraid, sometimes I have to use Wi ...

  5. openwrt刷机后配置PPPOE上网方法

    参考下帖13#的方式: 如何编辑配置openwrt,来实现pppoe拨号上网? 但其中有一句代码有错误: option 'peerdns' '0',其中需将‘0’改为‘1’

  6. PPPoE名词解释

    PPPoE拔号的发现阶段(Discovery): PPPoE的发现阶段一共分为4步. 分别是: PADI(PPPoE Active Discovery Initiation) PADO(PPPoE A ...

  7. 同时大量PPPoE连接请求,攻击PPPoE服务器,导致的用户异常掉线故障分析

    前几天接一个客户电话,PPPoE下用户异常掉线,掉线后拨号困难 到达后,我首先查看PPPoE日志,发现一秒钟内有大量PADI包,浪费服务器的SESSION,同时让服务器无法处理其他用户的请求. 打开W ...

  8. PPPOE原理及部署

    PPPOE 1,一个广播域 2,panabit可以做小区项目 http://edu.51cto.com/course/course_id-3849.html   Adsl的介绍 所谓非对称,即上下行速 ...

  9. 破解TP-Link路由-嗅探PPPoE拨号密码

    如果你平时都使用路由器直接上网,那么你还记得你的宽带(ADSL)帐户名和密码吗?忘记密码后又该如何找回呢?别急,本文带你一同找回遗忘的ADSL密码.1.安全性较差的路由器(例如腾达的某些路由器):这里 ...

  10. RouterOS软路由设置固定IP+PPPOE

    内网: IP:192.168.10.254/24 网关:192.168.10.254 外网: IP:218.17.172.17/28 子网掩码:255.255.255.240 网关:218.17.17 ...

随机推荐

  1. 微服务(Microservices )简介

    概念 微服务架构风格是一种将单个应用程序作为一套小型服务开发的方法,每种应用程序都在自己的进程中运行, 并与轻量级机制(通常是HTTP资源API)进行通信. 这些服务是围绕业务功能构建的,可以通过全自 ...

  2. Numpy详解

    NumPy 简介 Python并没有提供数组功能.虽然列表可以完成基本的数组功能,但它不是真正的数组,而且在数据量比较大时,使用列表的速度会很慢.为此,Numpy提供了真正的数组功能,以及对数据进行快 ...

  3. WPS for Linux

    https://www.cnblogs.com/gisalameda/p/6839482.html

  4. PHP实现简单倒计时

    PHP实现倒计时代码示例如下: <?php $time1 = time(); $time2 = strtotime("2018-10-1"); $time3 = strtot ...

  5. bootstrap----几个插件网址

    1.SweetAlert (弹出框):https://github.com/t4t5/sweetalert 2.SweetAlert2 (弹出框):https://github.com/limonte ...

  6. 《转》MySQL 5.7版本新特性连载

    MySQL 5.7版本新特性连载(一) 本文将和大家一起分享下5.7的新特性,不过我们要先从即将被删除的特性以及建议不再使用的特性说起.根据这些情况,我们在新版本及以后的版本中,应该不再使用,避免未来 ...

  7. 浅谈Spring MVC知识

    关于MVC框架,我相信大家都不陌生,都会说也就是模型-视图-控制器这三层的框架结构,如果你参加面试的时候考官会问:“MVC框架是什么?你说一说.”其实我们都知道这个问题还需要问的,只要你是一个开发人员 ...

  8. php事务回滚

    <?php $mysqli = new mysqli("127.0.0.1","root","111111","test&q ...

  9. 【BZOJ1135】[POI2009]Lyz

    题解: hall定理..第一次听说 思考了半小时无果 二分图匹配时间显然太大 但是有这个hall定理 二分图有完美匹配的充要条件是 对于左边任意一个集合(大小为|s|),其连边点构成的集合(大小为|s ...

  10. 【noip模拟赛7】足球比赛 树

    描述 在2009的中国城市足球比赛中,在2^N支队中,有一些队在开赛前宣布了退出比赛.比赛采取的是淘汰赛.比如有4支队伍参加,那么1队和2队比赛,3队和4队赛,然后1队和2队的胜者与3队和4队的胜者争 ...