2019独角兽企业重金招聘Python工程师标准>>>

PPP的连接控制协议(LCP)、认证协议(CHAP、PAP)、IP控制协议I(PCP)

分析一(PPPoE)

1.IP接入的功能包括动态IP地址分配、AAA和ISP动态选择

2.PPPoE主 要分为两个阶段即Discovery(地址发现)阶段和PPP会话阶段,当某个主机希望发起一个PPPoE会话时,它必须首先执行Discovery来确 定对方的以太网MAC地址并建立起一个PP-PoE会话标识符SSION_ID,虽然PPP定义的是端到端的对等关系,Discovery却是天生的一种 客户端-服务器关系,在Discovery的过程中,主机(作为客户端)发现某个访问集中器(Access Concentrator,作为服务器),根据网络的拓扑结构,主机能够与不只一个的访问集中器通信.Discovery阶段允许主机发现所有的访问集中 器并从中选择一个。当Discovery阶段成功完成后,主机和访问集中器二者都具备了用于在以太网上建立点到点连接所需的所有信息。

3.PPPoE的帧格式和种类

Discovery阶段:以太网帧的ETHER_TYPE域都设置为0x8863。

PPPoE Active Discovery Initiation (PADI)

PPPoE Active Discovery Offer(PADO)

PPPoE Active Discovery Request (PADR)

PPPoE Active Discovery Sessionconfirmation (PADS)

PPPoE Active Discovery Terminate(PADT)。

PPP会话阶段: 以太网帧的ETHER_TYPE域都设置为0x8864。

PPPoE的payload部分包含O个或多个TAG。一个TAG是一个TLV(type-length-value)结构,TAG_TYPE域为16位值(网络字节序),

4. PPPoE的工作流程

Discovery搜索阶段

●主机发送PADl分组,其目的地址为广播地址,会话IAD为0(未分配);  
●任一接入服务器收到PADI并任提供所需的服务时,就回送PADO分组,会话IAD为O;

●主机可能收到多个PADO,根据服务及其提供的服务选定一个服务器,然后向该服务器发送PADR分组,其目的地址为该服务器的单播地址。会话ID为0(未分配);

●该服务器收到PADR后生成一个唯一的会话ID,向主机回送PADS分组,准备启动PPP。

Session会话阶段,PPPoE的Host主机从接入服务器AC获取一个Session ID。进入PPP会话阶段

分析二(PPP)

1. PPP协议组成

a) 链路控制协议(LCP-Link Control Protocol),完成线路的启动、测试、任选参数的协商和最终线路断开功能

b) 认证协议,最常用的包括口令验证协议PAP(Password Authentication Protocol)和挑战握手验证协议CHAP(Challenge-Handshake Authentication Protocol)

c) 用户认证,主要通过LCP协商采用何种认证协议,但认证协议本身不是PPP协议的范围

d) IP控制协议IPCP(网络控制协议(NCP)),最常用的NCP协议为。它的一个重要功能就是动态分配IP地址;

2. 认证方式

1. 口令验证协议(PAP)  
PAP 是一种简单的明文验证方式。NAS(网络接入服务器,Network Access Server)要求用户提供用户名和口令,PAP以明文方式返回用户信息。很明显,这种验证方式的安全性较差,第三方可以很容易的获取被传送的用户名和口 令,并利用这些信息与NAS建立连接获取NAS提供的所有资源。所以,一旦用户密码被第三方窃取,PAP无法提供避免受到第三方攻击的保障措施。

2. 挑战-握手验证协议(CHAP)  
CHAP 是一种加密的验证方式,能够避免建立连接时传送用户的真实密码。NAS向远程用户发送一个挑战口令(challenge),其中包括会话ID和一个任意生 成的挑战字串(arbitrary challengestring)。远程客户必须使用MD5单向哈希算法(one-way hashing algorithm)返回用户名和加密的挑战口令,会话ID以及用户口令,其中用户名以非哈希方式发送。    
CHAP对PAP进行了改进,不 再直接通过链路发送明文口令,而是使用挑战口令以哈希算法对口令进行加密。因为服务器端存有客户的明文口令,所以服务器可以重复客户端进行的操作,并将结 果与用户返回的口令进行对照。CHAP为每一次验证任意生成一个挑战字串来防止受到再现攻击(replay attack)。在整个连接过程中,CHAP将不定时的向客户端重复发送挑战口令,从而避免第3方冒充远程客户(remote client impersonation)进行攻击。

3. PPP工作流程

a) LCP协商(之下物理层,之上网络接口层)创建链路

Open事件发送到PPP的LCP子层,当LCP启动后,即请求建立物理链路,开始以上的PPPoE协商,当PPPoE协商成功后,就向LCP层发送Up事件。

b) 认证

LCP向对端发送协商请求,双方确定链路的配置参数后,LCP向认证层发送Up事件。

c) NCP协商 调用链路层创建阶段选定的网络控制层协议

认证成功后,在向NCP层发Up事件。如不需要认证,则可直接向NCP层发送up事件,NCP协议收到Up事件后开始NCP处理。

d) PPP正常终结过程

NCP分别终结,然后LCP终结,最后物理层终结

说明:每层可向相邻的子层发送“Up”或“Down”事件。“Up”表示该层已激活,“Down”表示该层已终结.

4.PPP帧格式

a) 发送的顺序是从左到右Protocol

分析二(实现)

1. PPP和PPPoE数据包收发处理流程

PPPoE层主要实现PPPoE拨号过程和对上层PPP的数据包进行PPPoE封装及处理,主要处理帧类型为0x8863,则为PPPoE Dis-covery包,如为0x8864,则为PPPoE Session阶段的包经拆封处理后送到PPP层处理

PPP层软件主要实现LCP链路建立、PPP认证、IPCP协商IP地址和对IP数据包的PPP封装等功能。

2. 数据包流向

4. PPP和PPPoE软件模块设计

整个PPPoE、PPP软件可分为一下模块设计,

1)PPP模块主要实现LCP、IPCP和认让协议(chap、pap)等,PPP还实现一个虚拟的ifnet接口,实现对上层IP报的封装和分发处理。  
2)PPP Adpater模块主要实现PPP和PPPoE模块之间的接口适配。    
3)PPPoE Discoverv模块实现PPPoE的Discov-ely阶段的处理。    
4)PPPoE Session模块实现PPPoE的Session阶段的处理,主要是PPPoE封装和解包处理。    
5)PPPoE Timer模块主要实现PPPoE模块的定时处理功能,用于PPPoE Discovery阶段的状态机切换处理。    
6)PPPoE Adapater模块主要实现PPPoE的包的收发处理。    
7)PPPoE Config模块主要实现PPP和PPPoE的相关配置功能。如配置用户名密码等。

转载于:https://my.oschina.net/u/1041555/blog/295471

PPoE 与PPP 协议分析相关推荐

  1. PPP协议工作流程,结合ppp-2.4.9 源码分析

    ppp-2.4.9 源码分析 文章目录 ppp-2.4.9 源码分析 PPP协议工作流程 ppp-2.4.9 源码分析 全局变量和结构体说明 第一阶段 初始化 第二阶段 开始链接 第三阶段 建立PPP ...

  2. 理解并取证:广域网上的PPP协议

    目标: 1理解在广域网上数据的封装形式 2最初的SLIP协议 3PPP协议的组件 4理解并取证:PPP协议中LCP的工作原理(从数据帧的角度分析) 5理解并取证:PPP协议中NCP的工作原理(从数据帧 ...

  3. MMS发送的无线网络连接协议分析

    MMS 在进行发送前,要对无线模块进行无线网络连接,实现GPRS的拨号上网,无线网络连接成功后,才能利用无线模块基于WAP的方式对MMS进行发送,通过移动交换网络,最终发送到终端用户手机上.本节将对无 ...

  4. 实例协议分析RFC1483:AAL5和几种常见ADSL接入技术

    注:文中部分内容摘自RFC1483文档和肖建国<ADSL调制与业务承载技术> 我们先建立一个ADSL通用模型: PC(LAN)--ATU-R--DSLAM(ATM)--BRAS --WAN ...

  5. ppp协议提供什么服务器,PPP的工作原理是什么?单片机PPP协议有什么应用?

    PPP协议(Point-to-Point Protocol)提供了在串行点对点链路上传输数据报的方法,支持异步8位数据及位导向的同步连接(如ISDN).它提供了一种管理两点间会话的有效方法,正在取代S ...

  6. ppp lcp协商报文有哪些_课后分享PPP协议第十三周

    PPP协议 研学之旅 一起感受知识的魅力 01 课堂回顾 胡曦明老师对上节课任务(分组设计数据链路层点对点协议)进行回顾,以分析SLIP协议引导同学们学习协议设计优化过程,让同学们结合自己设计的协议进 ...

  7. Android PPP协议

    PPP协议简介 在以太网通讯中,广泛使用TCP(或UDP).IP与IEEE 802三个协议联合完成寻址和通讯控制任务.IEEE 802是一个局域网的链路层工作协议,不能在广域网中使用.在使用诸如电话网 ...

  8. 使用Perl编写协议分析脚本 z

    使用Perl编写协议分析脚本 创建时间:2005-07-31 更新时间:2005-08-07 文章属性:原创 文章提交:r00t (i_am_jojo_at_msn.com) 1.软件环境:Windo ...

  9. 使用Perl编写协议分析脚本

    使用Perl编写协议分析脚本 创建时间:2005-07-31 更新时间:2005-08-07 文章属性:转载 文章提交:r00t (i_am_jojo_at_msn.com) 1.软件环境:Windo ...

最新文章

  1. 宝塔linux计划任务ftp,宝塔面板定时备份网站及数据库至FTP存储空间图文教程
  2. 我所理解的 Block
  3. 使用脚本编写 Vim 编辑器,第 4 部分: 字典
  4. linux下文件以及目录权限修改(摘抄)
  5. mac上配置php开发环境,Mac配置PHP开发环境
  6. 加强版[BZOJ#3483] SGU505 Prefixes and suffixes(询问在线版)
  7. 一文快速理解23种经典设计模式
  8. html5+css3方式实现mobie app的一些瓶颈
  9. ElasticSearch出现Cluster state has not been recovered yet, cannot write to the [null] index的解决办法
  10. SpringMVC:学习笔记(7)——验证器(JSR303)
  11. 儿童专注力训练——虚线描成实现
  12. 山东省第五届ACM大赛--Problem E: Full Binary Tree
  13. 香农采样定理(奈奎斯特采样定理)
  14. 吐血推荐30个高质量但免费的自学网站,错过了就是亏大了!!!
  15. 传统实业巨头怎么搞产业互联网
  16. 用JSP/Servlet构建三层式管理信息系统
  17. 淘系页面详情API调用展示
  18. 在VMware中安装新版Ubuntu后,无法跨虚拟机复制粘贴和拖拽文件的解决方法
  19. 拥抱 Android Studio 之四:Maven 仓库使用与私有仓库搭建
  20. VUE新坑 中文乱码

热门文章

  1. 走进网络(网络三章)
  2. Rational Rose 画时序图、泳道业务流程图、用例图等。
  3. dbeaver——sql编辑区字体设置@baiyun
  4. 租用哪一家服务器好呢?
  5. 乐华网上阅卷系统服务器地址,乐华阅卷F版本
  6. 软件需求管理用例方法 pdf_一卡通管理软件功能需求
  7. 解决无线网卡断线两绝招!
  8. sysstat 安装
  9. 用ControlJS优化阿里妈妈广告
  10. 关于充分发挥政府性融资担保作用 为小微企业和“三农”主体融资增信的通知