zoukankan      html  css  js  c++  java
  • PPPOE协议

    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报文中。

  • 相关阅读:
    函数
    python操作文件
    POJ-2689-Prime Distance(素数区间筛法)
    POJ-2891-Strange Way to Express Integers(线性同余方程组)
    POJ-2142-The Balance
    POJ-1061-青蛙的约会(扩展欧几里得)
    Educational Codeforces Round 75 (Rated for Div. 2) D. Salary Changing
    Educational Codeforces Round 75 (Rated for Div. 2) C. Minimize The Integer
    Educational Codeforces Round 75 (Rated for Div. 2) B. Binary Palindromes
    Educational Codeforces Round 75 (Rated for Div. 2) A. Broken Keyboard
  • 原文地址:https://www.cnblogs.com/happygirl-zjj/p/5981059.html
Copyright © 2011-2022 走看看