ppp协议的概念
PPP(点对点协议 Point to Point Protocol),是为在同等单元之间传输数据包这样的简单链路设计的链路层协议。它提供了一种标准的方式在点对点的链路上阐述多种网络层协议的数据报。
在 TCP-IP 协议集中它是一种用来同步调制连接的数据链路层协议(OSI 模式中的第二层),替代了原来非标准的第二层协议,即 SLIP。SLIP是一种仅能在点对点的链路上封装IP数据报的协议,SLIP不提供纠错机制,错误只能依靠上层协议实现。不支持IP地址的协商,所以双方IP层通信前必需先获知对方的IP地址,才能进行网络层的通信,否则链路层发送的数据帧在被送到对方网络层时将无法进行转发。正是由于SLP的诸多缺点,导致了SLIP很快的被PPP协议所替代。
ppp协议的三个组成部分
1、一个将IP数据报封装到串行链路的方法。PPP既支持异步链路(无奇偶校验的8比特数据),也支持面向比特的同步链路。
2、一个用来建立、配置和测试数据链路的链路控制协议LCP。通信双方可协商一些选项。
3、一套网络控制协议NCP,负责解决物理连接上运行什么网络协议,以及解决上层网络协议发生的问题。它支持不同的网络层协议,如IP、OSI网络层、DEnet、AppleTalk等。
ppp协议的功能
1、具有动态分配IP地址的能力,允许在连接时刻协商IP地址;
2、支持多种网络协议,比如TCP/IP、NetBEUI、NWLINK等;
3、具有错误检测以及纠错能力,支持数据压缩;
4、具有身份验证功能;
5、可以用于多种类型的物理介质上,包括串口线、电话线、移动电话和光纤(例如SDH),PPP也用于Internet接入。
ppp的帧格式
PPP的帧格式和HDLC帧格式的相似,标志字段F仍为 0x7E(二进制表示是 01111110);地址字段A只置为0xFF,地址字段实际上并不起作用;控制字段C通常置为0x03。PPP 是面向字节的,所有的 PPP 帧的长度都是整数字节,而HDLC使面向位的。
PPP 有一个2个字节的协议字段。当协议字段为0x0021时,PPP 帧的信息字段就是IP 数据报。若为0xC021, 则信息字段是 PPP 链路控制数据(LCP);若为0x8021,则表示这是网络控制数据(NCP)即IP控制协议IPCP;若为0xC023,则信息字段是密码认证协议PAP;若为0xC025,则信息字段是链路品质报告LinkQuality Report;若为0xC223,则信息字段为挑战握手验证协议CHAP。
ppp的不同协议的字段
当协议字段为0xC021时,即信息字段为LCP时,它用于协商适合于数据链路的选项,如指出链路的一边同意接收的最大数据报大小即最大接收单元(MRU);探测链路回路和其它普通的配置错误;以及终止链路。
如果在PPP链路上运行的是IP协议,则对PPP链路的每一端配置IP协议模块(如分配IP地址)时就要使用NCP中支持IP的协议——IP控制协议。此时协议字段为0xC8021时,即信息字段为IPCP。IPCP分组也封装成PPP帧在PPP链路上传送。
协议字段0xC023即信息字段PAP,提供了一种简单的方法,可以使链路双方使用2次握手建立身份验证。在链路建立完成后,链路一端不停地发送用户名/密码对给验证者,一直到验证被响应或者连接被终止为止。
协议字段0xC223即信息字段CHAP,使用3次握手周期性的验证对端。在链路建立初始化时这样做,也可以在链路建立后任何时间重复验证。在链路建立完成后,验证者向对端发送一个“challenge”(挑战)信息。对端使用“one-way-hash”(单向哈希)函数配合密钥(secret)计算出的值响应这个挑战信息。验证者使用自己计算的hash值校验响应值。如果两个值匹配,则验证是成功的,否则连接应该终止。
ppp协议的工作过程
PPP工作时:当用户拨号接入ISP时,路由器的调制解调器对拨做出确认,并建立一条物理连接。 PC机向路由器发送一系列的LCP分组(封装成多个 PPP 帧),,这些分组及其响应选择一些PPP链路参数。接着进行网络层配置,交互的NCP分组给新接入的PC机分配一个临时的IP地址,PC机成为因特网上的一个主机。通信完毕时,NCP释放网络层连接,收回原来分配出去的IP地址。接着,LCP 释放数据链路层连接。最后释放物理层的连接。