PPP(Point to Point Protocol)是一种点到点链路上的传输协议,工作在数据链路层,支持全双工,能够按照顺序传递数据包;
PPP的优势在于能够提供用户认证,易于扩充,支持同/异步通信;
PPP支持多种网络层协议,如IP、DECnet、IPX;
PPP和其他技术结合,可以提供多种业务,包括PPPoE、PPPoA、PPPoEoA、PPPoFR和PPPoISDN;
PPP的功能:
1、具备错误检测及纠错功能,支持数据压缩;
2、支持身份验证(PAP、CHAP);
3、支持多种网络层协议,如IP、IPX;
4、支持动态分配IP地址;
5、可以用作多种物理介质上,包括串口线、电话线等,也用于Internet接入;
一、PPP工作流程
1、PPP的组成部分
(1)链路控制协议族LCP,主要用来建立、维护和拆除数据链路;
(2)扩展协议族CHAP和PAP,主要用于网络安全方面的认证;
(3)网络控制协议族NCP,主要用来协商在该数据链路上所传输的数据包的格式和类型;
2、PPP的5个阶段
(1)Dead死亡阶段
表示物理层无连接,一旦物理层有连接就立刻进入到建立阶段;
(2)Establish建立阶段
通过交换Configure-Request、Configure-Ack来建立连接;
配置请求消息可以协商MRU最大接收单元、认证协议(CHAP、PAP)、魔术字、压缩、链路质量监控、工作方式(ppp、mp)等参数;
如果对方不同意,回应Configure-NAK或者Configure-Reject;
(3)Authenticate认证阶段
可选阶段,不认证直接进入网络阶段,否则只有认证通过后才能进入网络阶段;
在该阶段只有链路控制协议、认证协议和链路质量监控协议的报文是被允许的,其他报文会被丢弃;
(4)Network网络阶段
选择一种网络层协议并进行网络层参数协商;
(5)Terminate链路终止阶段
PPP可以在任意时间终止链路,物理链路断开、认证失败、链路质量监控失败或管理员关闭链路都可以终止链路;
LCP交换Terminate-Request和Terminate-Ack来终止链路,然后通知物理层断开,进入Dead阶段;
3、LCP通过魔术字检测环路
每个Configure-Request报文都会产生一个魔术字;
如果链路另一端收到一个Configure-Request报文后,其包含的魔术字需要和本地产生的魔术字比较,如果不同,表示链路无环路,其他参数也协商成功的话,使用Configure-Ack报文确认,在后续发送的报文中,如果报文含有魔术字字段,都使用协商成功的魔术字,LCP不再产生新的魔术字;
如果相同,则发送一个Configure-Nak报文,收到Configure-Request报文后,LCP会发送一个新的Configure-Request报文,携带一个新的魔术字,如果链路有环路,这个过程会一直持续下去,检测出链路环路;
二、PPP认证
1、PAP认证 password authentication protocol
(1)被认证方发送认证请求authenticate-request给认证方,包含用户名和密码;
(2)认证方收到认证请求后,检查收到的用户名和密码是否与本地数据库一致,如果一致发送authenticate-ack给被认证方,认证通过;
如果不一致发送authenticate-nak给被认证方,认证失败;
2、CHAP认证 challenge handshake authentication protocol
(1)认证方发送挑战报文给被认证方,包含ID、随机数和认证方的用户名;
ID是用来区分认证,双向认证时各自的ID不同;
(2)被认证方收到挑战报文后,根据报文中的用户名查找本地对应的密码,再将ID、随机数和密码一起hash得到hash值,然后将ID、hash值和被认证方的用户名放在响应报文中返回给认证方;
(3)认证方收到响应报文后,根据报文中的用户名查找本地对应的密码,将之前发给被认证方的ID、随机数连同本地查找出来的密码一起hash,也得到一个hash值,如果与收到的hash值一致,认证通过向被认证方发送Success;
如果不一致说明认证不通过,向被认证方发送failure报文;
三、MP
网友评论