PPPOE协议:

与传统的接入方式相比,PPPoE具有较高的性能价格比,它在包括小区组网建设等一系列应用中被广泛采用,目前流行的宽带接入方式ADSL 就使用了PPPoE协议。

随着低成本的宽带技术变得日益流行,DSL(Digital Subscriber Line)数字用户线技术更是使得许多计算机在互联网上能够酣畅淋漓的冲浪了。但是这也增加了DSL服务提供商们对于网络安全的担心。

通过ADSL方式上网的计算机大都是通过以太网卡(Ethernet)与互联网相连的。同样使用的还是普通的TCP/IP方式,并没有附加新的协议。另外一方面,调制解调器的拨号上网,使用的是PPP协议,即Point to Point Protocol,点到点协议,该协议具有用户认证及通知IP地址的功能。PPP over Ethernet(PPPoE)协议,是在以太网络中转播PPP帧信息的技术,尤其适用于ADSL等方式。

工作原理:

PPPoE协议的工作流程包含发现和会话两个阶段,发现阶段是无状态的,目的是获得PPPoE终结端(在局端的ADSL设备上)的以太网MAC地址,并建立一个唯一的PPPoESESSION-ID。发现阶段结束后,就进入标准的PPP会话阶段。

当一个主机想开始一个PPPoE会话,它必须首先进行发现阶段,以识别局端的以太网MAC地址,并建立一个PPPoESESSION-ID。在发现阶段,基于网络的拓扑,主机可以发现多个接入集中器,然后允许用户选择一个。当发现阶段成功完成,主机和选择的接入集中器都有了他们在以太网上建立PPP连接的信息。直到PPP会话建立,发现阶段一直保持无状态的Client/Server(客户/服务器)模式。一旦PPP会话建立,主机和接入集中器都必须为PPP虚接口分配资源。

PPPoE协议会话的发现和会话两个阶段具体进程如下。

发现阶段

在发现(Discovery)阶段中用户主机以广播方式寻找所连接的所有接入集中器(或交换机),并获得其以太网MAC地址。然后选择需要连接的主机,并确定所要建立的PPP会话标识号码。发现阶段有4个步骤,当此阶段完成,通信的两端都知道PPPoESESSION-ID和对端的以太网地址,他们一起唯一定义PPPoE会话。这4个步骤如下。

(1)主机广播发起分组(PADI),分组的目的地址为以太网的广播地址0×ffffffffffff,CODE(代码)字段值为0×09,SESSION-ID(会话ID)字段值为0×0000。PADI分组必须至少包含一个服务名称类型的标签(标签类型字段值为0×0101),向接入集中器提出所要求提供的服务。

(2)接入集中器收到在服务范围内的PADI分组,发送PPPoE有效发现提供包(PADO)分组,以响应请求。其中CODE字段值为0×07,SESSION-ID字段值仍为0×0000。PADO分组必须包含一个接入集中器名称类型的标签(标签类型字段值为0×0102),以及一个或多个服务名称类型标签,表明可向主机提供的服务种类。

(3)主机在可能收到的多个PADO分组中选择一个合适的PADO分组,然后向所选择的接入集中器发送PPPoE有效发现请求分组(PADR)。其中CODE字段为0×19,SESSION_ID字段值仍为0×0000。PADR分组必须包含一个服务名称类型标签,确定向接入集线器(或交换机)请求的服务种类。当主机在指定的时间内没有接收到PADO,它应该重新发送它的PADI分组,并且加倍等待时间,这个过程会被重复期望的次数。

(4)接入集中器收到PADR分组后准备开始PPP会话,它发送一个PPPoE有效发现会话确认PADS分组。其中CODE字段值为0×65,SESSION-ID字段值为接入集中器所产生的一个唯一的PPPoE会话标识号码。PADS分组也必须包含一个接入集中器名称类型的标签以确认向主机提供的服务。当主机收到PADS分组确认后,双方就进入PPP会话阶段。

PPP会话阶段

用户主机与接入集中器根据在发现阶段所协商的PPP会话连接参数进行PPP会话。一旦PPPoE会话开始,PPP数据就可以以任何其他的PPP封装形式发送。所有的以太网帧都是单播的。PPPoE会话的SESSION-ID一定不能改变,并且必须是发现阶段分配的值。

PPPoE还有一个PADT分组,它可以在会话建立后的任何时候发送,来终止PPPoE会话,也就是会话释放。它可以由主机或者接入集中器发送。当对方接收到一个PADT分组,就不再允许使用这个会话来发送PPP业务。PADT分组不需要任何标签,其CODE字段值为0×a7,SESSION-ID字段值为需要终止的PPP会话的会话标识号码。在发送或接收PADT后,即使正常的PPP终止分组也不必发送。PPP对端应该使用PPP协议自身来终止PPPoE会话,但是当PPP不能使用时,可以使用PADT。

验证过程

PPPoE的验证过程:

1. 在STA和AP之间建立好关联之后,客户端向AC设备发送一个PADI报文,开始PPPOE接入的开始。

2.AC向客户端发送PADO报文。

3. 客户端根据回应,发起PADR请求给AC。

4. Ac产生一个session id,通过PADS发给客户端。

5. 客户端和AC之间进行PPP的LCP协商,建立链路层通信。同时,协商使用PAP、CHAP认证方式。

6. AC通过Challenge报文发送给认证客户端,提供一个128bit的Challenge。

7. 客户端收到Challenge报文后,将密码和Challenge做MD5算法后的Challenge-Password,在Response回应报文中把它发送给AC设备。

8. Ac将Challenge、challenge-Password和用户名一起送到RADIus用户认证服务器,由RADIUS用户认证服务器进行认证。

9.RADIUS用户认证服务器根据用户信息判断用户是否合法,然后回应认证成功/失败报文到AC。如果成功,携带协商参数,以及用户的相关业务属性给用户授权。如果认证失败,则流程到此结束。

10.AC将认证结果返回给客户端。

l 1.用户进行NCP(如IPCP)协商,通过AC获取到规划的IP地址等参数。

12.认证如果成功,AC发起计费开始请求给RADIUS用户认证服务器。

13.RADIUS用户认证服务器回应计费开始请求报文。用户上线完毕,开始上网。

计算机网络中的PPPoE协议是做什么用的?相关推荐

  1. 计算机网络中的传输协议是_计算机网络中的传输方式

    计算机网络中的传输协议是 传输方式 (Transmission Modes) The mechanism of transferring data or information between two ...

  2. 计算机网络中的五层协议体系结构

    五层协议是综合OSI七层协议和TCP/IP四层协议的优点,采用一种只有五层协议的体系结构,从下往上依次为:物理层.数据链路层.网络层.运输层.应用层.下面就对计算机网络中的五层协议体系结构作一下简单介 ...

  3. 计算机网络中的五层协议的体系结构

    OSI的七层协议体系结构的概念清楚,理论也比较完整,但它既复杂又不实用. TCP/IP体系结构则不同,但它却得到了非常广泛的应用.TCP/IP是一个四层的体系结构,它包含应用层.运输层.网际层和网络接 ...

  4. 软考——计算机网络中的各种协议

    目录 1,计算机网络的组成 2,计算机网络的分类 3,计算机网络传输载体 4,三种协议类型 5,TCP/IP模型 6,TCP/IP协议 计算机网络的组成: 1,计算机网络的物理组成: 从物理构成上看, ...

  5. 计算机网络中网络时间协议NTP是什么原理?

    NTP是网络时间协议(Network Time Protocol),它是用来同步网络中各个计算机的时间的协议.在计算机的世界里,时间非常地重要,例如对于火箭发射这种科研活动,对时间的统一性和准确性要求 ...

  6. 什么叫计算机网络阻塞,计算机网络中的“线端阻塞”释义

    李勇军 张胜兵 刘潮东 张隽 秦涛 摘要:在与计算机网络相关课程的教学或实践过程中经常提及"线端阻塞"这个概念,其与拥塞控制.网络性能和网络应用紧密联系.了解该概念的本义与延伸,可 ...

  7. 服务器和交换机之间网络协议,网络协议是计算机网络中服务器,计算机,交换机.doc...

    网络协议是计算机网络中服务器,计算机,交换机 篇一:计算机网络-参考答案 (1)不能保证所有题目都在里面,但能保证大部分题目都在这里. (2)建议用快捷方式ctrl+f 进行答案的查找,关键字只需复制 ...

  8. 计算机网络中各层的协议图表(TCP/IP)

    计算机网络中各层的协议图表:

  9. 【计算机网络】PPP和PPPoE协议

    实验目的 应用所学知识,熟悉 PPP 的封装格式,了解 PPPoE 的封装格式,理解 PPP 的两种认证方式. 实验步骤与结果 ①观察PPP和PPPoE的数据封装格式 安装好Cisco Packet ...

最新文章

  1. java实现的18位×××格式验证算法
  2. C# 操作ACCESS数据库
  3. ubuntu 16.04 配置Python2.7 和 Python3.5 同时调用OpenCV
  4. UVA10236 斐波那契素数
  5. Mybatis之typeAlias配置的3种方法
  6. QT 010 Qt 4.2 在线手册含UML图解释 User's Guide Documentation
  7. python编程(动态加载)
  8. 创建自己SQL Server Docker映像
  9. 在相近背景中找圆和直线
  10. ngrok下载并运行实现内网穿透
  11. c语言程序设计967,2017年湖南师范大学数学与计算机科学学院967C语言程序设计和数据结构[专业硕士]之C程序设计考研仿真模拟题...
  12. java实现netstat命令功能_netstat命令 详解
  13. KITTI数据集无法下载的解决方法
  14. Netty 如何做到单机百万并发?
  15. php excel 导入图片,利用php实现读取excel中的图片
  16. 国信证券金色阳光版修改增强,还有闪电下单爽啊
  17. 每天学一个 Linux 命令:dnf
  18. 【C++】如何阅读别人的代码?如何阅读别人的C++代码?如何高效学习他人代码
  19. python富翁与陌生人编程_GitHub近10万星:印度小哥用Python和Java实现所有AI算法
  20. 中国移动MAS机的特点

热门文章

  1. 转换RM为MP3(转)
  2. 小学计算机课教案模板,小学信息技术:《图文并茂更精彩》教案
  3. 照片处理教程打包下载!
  4. jquery 幻灯片 左右滚动
  5. SpringBoot实践(十七):与vue-element-admin登录集成
  6. vue-element-admin用户登录流程
  7. 利用Aspose.PDF以编程方式打印PDF文档
  8. jquery 实现时间倒计时,精确到时分秒@令狐张豪
  9. 聊一聊fastjson
  10. aardio 谷歌浏览器自动化 (一) 浏览器初始化