WAN之PPP(1)

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


©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。