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

  • 相关阅读:
    ES6新特性:使用export和import实现模块化
    常见Linux/Unix开发辅助命令什锦
    Spark高速上手之交互式分析
    Lua中的元表与元方法
    explicit 构造函数
    【排序】基数排序(计数排序、桶排序)
    拓展训练—心得体会
    poj3411--Paid Roads(bfs+状压)
    点击单选button后的文字就可以选定相应单选button
    hdu 2349 最小生成树
  • 原文地址:https://www.cnblogs.com/happygirl-zjj/p/5981059.html
Copyright © 2011-2022 走看看