PPP协议
Posted pbdragon
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PPP协议相关的知识,希望对你有一定的参考价值。
PPP协议简介
点到点协议(Point-to-Point Protocol,PPP)提供了一种在点到点链路上封装网络层协议信息的标准方法。PPP 最初设计是为两个对等节点之间的 IP 流量传输提供一种封装协议,在 TCP-IP 协议集中它是一种用来同步调制连接的数据链路层协议(OSI模式中的第二层),替代了原来非标准的第二层协议,即 SLIP。除了 IP 以外 PPP 还可以携带其它协议,包括 DECnet 和 Novell 的 Internet 网包交换(IPX)。
PPP协议组成
1.提供一个将IP数据报封装到串行链路的方法。IP数据报在PPP帧中就是信息部分,长度受最大传送单元MTU的限制。PPP支持异步链路(无奇偶校验的8比特数据)和面向比特的同步链路。
2.链路控制协议(LCP):一种扩展链路控制协议,用于建立、配置、测试和管理数据链路连接。
3.网络控制协议(NCP):协商该链路上所传输的数据包格式与类型,建立、配置不同的网络层协议。
为了在点到点链路(Point-to-Point Protocol)上建立通信,PPP链路的一端必须在建立阶段(Establishment Phase)首先发送LCP包(packets)配置数据链路。链路建立后,在进入到网络层协议阶段前,PPP提供一个可选择的验证阶段。
PPP认证方式
PPP支持两种验证协议:密码验证协议(Password Authentication Protocol,PAP)和挑战一握手验证协议(Challenge Handshake Authentication Protocol,CHAP)。
相对来说PAP的认证方式安全性没有CHAP高。PAP在传输password是明文的,而CHAP在传输过程中不传输密码,取代密码的是hash(哈希值)。PAP认证是通过两次握手实现的,而CHAP则是通过3次握手实现的。PAP认证是被叫提出连接请求,主叫响应。而CHAP则是主叫发出请求,被叫回复一个数据包,这个包里面有主叫发送的随机的哈希值,主叫在数据库中确认无误后发送一个连接成功的数据包连接。
PPP协议工作过程
PPP通讯是两个端点之间的通讯,每一端必须首先发送LCP packets数据来设定和测试数据链路,当链路建立后,peer才可以被认证,认证完成后,再通过发送NCP packets来选定网络层协议,这些后续的通讯就可以在网络层进行了。
LCP协商过程
LCP 两端通过发送LCP Config-Request和Config-Ack交互协商选项。 LCP一方通过发送LCP Config-Request来向另一方请求自己需要的LCP协商选项。如果Config-Request报文的接收方支持并接受这些选项则回复LCP Config-Ack报文。如果Config-Request部分(或者全部)不支持所有的LCP选项则回复其他报文。
(1)Config-ACK:若完全支持对端的LCP选项,则回应Config-ACK报文,报文中必须完全协带对端Request报文中的选项。
(2)Config-NAK:若支持对端的协商选项,但不认可该项协商的内容,则回应Config-NAK报文,在Config-NAK的选项中填上自己期望的内容,如:对端MRU值为1500,而自己期望MRU值为1492,则在Config-NAK报文中埴上自己的期望值1492。
(3)Config-Reject:若不能支持对端的协商选项,则回应Config-Reject报文,报文中带上不能支持的选项,如Windows拨号器会协商CBCP(被叫回呼),而ME60不支持CBCP功能,则回将此选项拒绝掉。
NCP协商协议
NCP有很多种,如IPCP、BCP、IPv6CP,最为常用的是IPCP(Internet Protocol Control Protocol)协议。NCP的主要功能是协商PPP报文的网络层参数,如IP地址,DNS Server IP地址,WINS Server IP地址等。PPPoE用户主要通过IPCP来获取访问网络的IP地址或IP地址段。
NCP流程与LCP流程类似,用户与ME设备之间互相发送NCP Config-Request报文并且互相回应NCP Config-Ack报文后,标志NCP己协商完,用户上线成功,可以正常访问网络了。
以上是关于PPP协议的主要内容,如果未能解决你的问题,请参考以下文章
计算机网络(谢希仁 第七版) 第三章(数据链路层)-- 3.2 点对点协议PPP(PPP协议的特点 & PPP协议的帧格式 & PPP协议的工作状态)