PPP的连接控制协议(LCP)、认证协议(CHAP、PAP)、IP控制协议I(PCP) 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(未分配); ●主机可能收到多个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) 2. 挑战-握手验证协议(CHAP) 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报的封装和分发处理。 |
|