PPP: Point to Point Protocol ( Data Link )
它是为在两个对等实体间传输数据包,建立简单连接而设计的,主要用于广域网的连接,并且它是面向数据报的全双工协议。
PPP 协议包含以下几个部分,
LCP: Link Control Protocol 链路控制协议
NCP: Network Control Protocol 网络控制协议
认证协议,目前用的比较多的有 PAP与CHAP
PAP ( Password Authentication Protocol , 密码认证协议 ): 请求应答认证,两次握手,明文认证
CHAP (Challenge Handshake Authentication Protocol , 质询握手认证协议 ): 为三次握手,加密认证,加密方法是MD5
LCP 负责创建、维护或终止一次物理连接;NCP是一族协议,负责解决物理连接上运行什么网络协议,以及解决上层网络协议发生的问题。
端对端协议网络控制协议(NCP)为IP,此时要使用IPCP(Internet Protocol Control Protocol)来协商IP信息。
PPP header非常简单
Value (in hex) Protocol Name
0001 Padding Protocol填料协议
0003 to 001f reserved (transparency inefficient)保留(透明度效率低的)
007d reserved (Control Escape)保留(控制逃逸)
00cf reserved (PPP NLPID)保留(PPP NLPID)
00ff reserved (compression inefficient)保留(压缩效率低的)
8001 to 801f unused(未使用)
807d unused(未使用)
80cf unused(未使用)
80ff unused(未使用)
c021 Link Control Protocol链路控制协议
c023 Password Authentication Protocol密码认证协议
c025 Link Quality Report链路品质报告
c223 Challenge Handshake Authentication Protocol挑战-认证握手协议。
以上这些是定义中的PPP,在我的影象中,从抽象来讲,PPP更像是一个跨平台的协议,跨平台是指不需要对PPP封包做出改动就可以放到另外的协议载体中去。确实是数据链路,它只负责数据链路传送,并不保证无差错到达。
我们在来看看PPP的连接过程。首先我们要明确一点,PPP中的端是对等的。首先当两端发现它们之间的物理线路是连通的,此时就要进行LCP的连接过程。LCP是请求应答模式,LCP是通过定时的进行echo request与echo reply来判断两端的联接情况。在开始连接的过程中主要是商定MRU、Authentication 与 Magic number。这些过程会来LCP专题里详细讲到,这里只简单提提。接下来是认证了,用的最多的就是PAP和CHAP了。这些也会在专题里详细讲到。最后进行NCP过程了,一般来讲在目前业界里使用最广泛的就是基于IP的体系构架了。所以这里只介绍介绍IPCP协议,它也是请求应答模式。上面说过PPP是对等的,但是这里的IPCP却不是对等的,它需要服务器来支持。通过它,可以为用户分配IP,DNS…
我们来看看PPP的释放过程,释放也是非常简单的,首先是某一端发送LCP Termination Request,然后另一端回LCP Termination Ack,即表示PPP连结正常结束。LCP关闭链路就足够了,不需要每一个NCP发送一个Terminate packets。相反,一个NCP关闭却不足以引起PPP链路的终止,即使那个NCP是当前唯一一个处于Opened状态的NCP。