PPPOE协议

  PPPOE的全称为PPP Over Ethernet,用于实现PPP在以太网上的传输。它要求通信双方是点到点的关系,不适于广播型的以太网和一些多点访问型网络。

一、PPPOE的作用

  • 将PPP协议运用到以太网上,利用以太网资源解决用户上网身份验证、收费、IP地址分配等问题,广泛应用于宽带接入中。
  • PPPoE采用动态分配IP地址的方式,用户拨号后无需自己配置IP地址、网关和域名等,对用户管理方便,且可实现对用户的灵活计费,可以按时长、流量计费或者包年包月制。

二、PPPOE建立链接的过程

  分为三个阶段Discovery,Session,Terminate。

1、整个过程

PADIPPPOE Active Discovery Initiation):

  客户端广播发送PADI请求,查找网络中的服务器。PPPOE发现阶段的第一步,由客户端首先以广播的方式发送这样一个报文。所以该报文所对应的以太网帧的目的地址域应填充为全1,而源地址域填充用户主机的MAC地址。广播包可能会被多个访问集中器接收到。

PADOPPPOE Active Discovery Offer):

  服务器端响应,将自己的一些信息告知客户端。PPPOE发现阶段的第二步,由访问集中器回应各用户主机发送的PADI报文,此时该报文所对应的以太网帧的源地址填充访问集中器的MAC地址,而目的地址则填充从PADI中所获取的用户主机的MAC地址。

PADRPPPOE Active Discovery Request):

  客户端向选中的服务器发送PADR,请求会话号。PPPOE发现阶段的第三步,由用户主机向访问服务器发送单播的请求报文。当用户主机收到PADO报文后,会从这些报文中挑选一个访问集中器作为后续会话的对象。由于用户主机在收到PADO报文后,就获知了访问集中器的MAC地址,因此PADR报文所以应的以太网帧的源地址填充用户主机的MAC地址,而以太网的目的地址填充为访问集中器的MAC地址。

PADSPPPOE Active Discovery Session­confirmation):

  服务器将分配的会话号告知对方。PPPOE发现阶段的第四步,也是最后一步,此时访问集中器当收到PADR报文时,就准备进入开始一个PPP的会话了,而此时访问集中器会为在这个会话分配一个唯一的会话进程ID,并在发送给主机的PADS报文中携带上这个会话ID。当然如果访问集中器不满足用户所申请的服务的话,则会向用户发送一个PADS报文,而其中携带一个服务名错误的标记,而且此时该PADS报文中的会话ID填充0x0000。

PADT (PPPOE Active Discovery Terminate):

  服务器或客户端发送终止会话请求。PADT报文可能在会话进行开始之后的任意时间内被发送,主要是用来终止一个PPPOE会话的止。它可以由主机或访问集中器发送,目的地址填充为对端的以太网的MAC地址。

2、Discovery 阶段

  Discovery阶段由四个过程组成。完成之后通信双方都会知道PPPoE的Session_ID 以及对方以太网地址,它们共同确定了唯一的PPPoESession。

  (1) PPPoE Client广播发送一个PADI报文,在此报文中包含PPPoEClient想要得到的服务类型信息。

  (2) 所有的PPPoEServer收到PADI报文之后,将其中请求的服务与自己能够提供的服务进行比较,如果可以提供,则单播回复一个PADO报文。

  (3)根据网络的拓扑结构,PPPoEClient可能收到多个PPPoEServer发送的PADO报文,PPPoE Client选择最先收到的PADO报文对应的PPPoEServer做为自己的PPPoE Server,并单播发送一个PADR报文。

  (4) PPPoE Server产生一个唯一的会话ID(SESSION ID),标识和PPPoE Client的这个会话,通过发送一个PADS报文把会话ID发送给PPPoEClient,如果没有错误,会话建立后便进入PPPoE Session阶段。

3、Session 阶段

  PPPoE Discovery阶段的工作为PPPoEClient和PPPoE之间建立了Session,之后PPPoE便进入了Session阶段,Session阶段可划分为两部分,一是PPP协商阶段,二是PPP报文传输阶段。

  PPPoESession上的PPP协商和普通的PPP协商方式一致,分为LCP、认证、NCP三个阶段。PPPoE Session的PPP协商成功后,其上就可以承载PPP数据报文。在PPPoESession阶段所有的以太网数据包都是单播发送的。    

  (1)LCP阶段主要完成建立、配置和检测数据链路连接。

  (2)LCP协商成功后,开始进行认证工作,认证协议类型由LCP协商结果(CHAP或者PAP)决定。

  (3) 认证成功后,PPP进入NCP阶段,NCP是一个协议族,用于配置不同的网络层协议,常用的是IP控制协议(IPCP),它负责配置用户的IP和DNS等工作。

4、Terminate 阶段

  PPP通信双方应该使用PPP协议自身(比如PPP终结报文)来结束PPPoE会话,但在无法使用PPP协议结束会话时可以使用PADT报文。进入PPPoESession阶段后,PPPoE Client和PPPoE Server都可以通过发送PADT报文的

方式来结束PPPoE连接。PADT数据包可以在会话建立以后的任意时刻单播发送。在发送或接收到PADT后,就不允许再使用该会话发送PPP流量了,即使是常规的PPP结束数据包也不允许发送。

三、PPP与PPPOE的区别

   1.PPP建立点对点的对等关系,PPPoE建立Client/Server关系,Client先要拨号连接到Server再进行PPP协商和数据传输。

  2.PPP是在点对点物理链路上传输,而PPPoE是在以太网上传输,二者报文格式不同, PPPoE连接包括发现阶段、会话阶段和终止阶段,PPPoE是在以太网帧上对数据进行PPP格式封装,省略了PPP格式的地址和控制字段。

  3.PPPoE建立起隧道后,PPP报文和数据报文被分装在PPPoE报文中。

PPPOE协议的更多相关文章

  1. HCNA Routing&Switching之PPPoE协议

    前文我们了解了广域网中的HDLC和PPP协议相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15174240.html:今天我们来聊一聊PPPoE协议相 ...

  2. PPP协议、PPPoE协议、L2TP协议的关系

    1. 简述 首先对这3中协议做一个简单的描述: 协议 协议类型 描述 PPP 点对点链路层协议 应用最广泛的点对点协议,可应用在多种网络,改善了SLIP协议的不足 PPPoE 点对点链路层协议 对PP ...

  3. PPPoE协议测试——网络测试仪实操

    前言: 与传统的接入方式相比,PPPoE具有较高的性能价格比,它在包括小区组网建设等一系列应用中被广泛采用,目前流行的宽带接入方式 ADSL 就使用了PPPoE协议. 随着低成本的宽带技术变得日益流行 ...

  4. PPP协议

    PPP协议PPP协议是二层(数据链路层)协议,常用于拨号上网时客户端向服务器获取IP地址.PPP支持在各种物理类型的点对点串行线路上传输上层协议报文.它具有很多特性,比如支持多协议.提供可选的身份认证 ...

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

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

  6. 2016.6.17 计算机网络复习要点之PPP协议

    点对点协议PPP是目前使用最广泛的数据链路层协议. 1.PPP协议的特点: **我们知道因特网用户通常需要连接到某个ISP才能接入到因特网,PPP协议就是用计算机和ISP进行通信时所使用的数据链路层协 ...

  7. 路由器中pppoe,动态IP,静态IP的区别

    路由器中pppoe,动态IP,静态IP的区别 要把路由器设置得能上网,无非就是设置WAN外网接口连接而已.WAN接口能上网,则连接的电脑就能上网,反之则上不了网.只不过WAN接口往往有pppoe,动态 ...

  8. PPPoE拨号流程

    PPPoE(Point to Point Protocol over Ethernet,基于以太网的点对点协议)的工作流程包含发现(Discovery)和会话(Session)两个阶段,发现阶段是无状 ...

  9. 烽火2640路由器命令行手册-13-VPDN(L2TP,PPTP,PPPOE)配置命令

    VPDN(L2TP,PPTP,PPPOE)配置命令 目  录 第1章 VPDN配置命令... 1 1.1 VPDN配置命令... 1 1.1.1 accept-dialin. 1 1.1.2 doma ...

随机推荐

  1. [转]关于 initWithNibName 和 loadNibNamed 的区别和联系-iPhone成长之路

    转载地址:http://blog.sina.com.cn/s/blog_7b9d64af01018f2u.html 关于 initWithNibName 和 loadNibNamed 的区别和联系.之 ...

  2. 【转】Cookie和Session的区别详解

    转载地址:http://www.phperzone.cn/portal.php?aid=541&mod=view 一.cookie机制和session机制的区别 具体来说cookie机制采用的 ...

  3. word中设置前几页为罗马数字,后几页设置为阿拉伯数字

    假如第1-5页摘要部分页脚要是罗马数字,第6页开始是正文部分是阿拉伯数字,起始页为1. WORD2003 1.将光标定位在第5页末尾处,在菜单栏中依次点击“插入——分隔符——(分节符类型)下一页”.按 ...

  4. c# UDP通信

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...

  5. C#常用日期格式处理转换[C#日期格式转换大全

    DateTime dt = DateTime.Now; Label1.Text = dt.ToString();//2005-11-5 13:21:25 Label2.Text = dt.ToFile ...

  6. 【Unix环境编程】select、poll、epoll机制的联系与区别

    在linux设计并发网络程序,主要有如下几种模型:Apache模型(Process Per Connection, PPC).TPC(Thread Per Connection)模型,select机制 ...

  7. Uva(10048),最短路Floyd

    题目链接:https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem ...

  8. 灰色预测模型 c# 算法实现

     public class GrayModel    {        private double a0, a1, a2;        private int size;        priva ...

  9. winform中利用反射实现泛型数据访问对象基类(1)

    考虑到软件使用在客户端,同时想简化代码的实现,就写了一个泛型的数据访问对象基类,并不是特别健全,按道理应该参数化的方式实现insert和update,暂未使用参数化,抽时间改进. /// <su ...

  10. [Python] 使用有道翻译API

    Python 使用youdao (有道翻译)API 想写一个给自己记录背单词状况的软件,需要获取英文单词的中文释义(基本功能).考虑使用有道翻译的API实现获取英文单词的中文释义的方法. 获取API_ ...