什么是PPP协议,PPP协议是怎么工作的?

admin 7112 2026-01-05 22:33:31

什么是PPP协议

PPP协议最初设计用于通过电话线或串行线路实现拨号上网,但后来也被广泛应用于其他类型的点对点连接,如以太网、光纤等。PPP协议的主要功能包括数据封装、链路控制、网络层控制、网络认证、错误检测、多链路捆绑。

封装数据:PPP协议可以将上层协议的数据(如IP数据包)封装成适合在点对点链路上传输的格式。这种封装方式支持多种网络层协议,但最常见的是IP协议。

链路控制:通过LCP(Link Control Protocol,链路控制协议),PPP协议能够建立、配置、维护和终止点对点连接。LCP负责协商链路的配置参数,如认证方式、最大传输单元(MTU)等,确保两端设备能够正确地通信。

网络层控制:除了LCP,PPP协议还支持NCP(Network Control Protocol,网络控制协议),用于配置和管理网络层协议。例如,IPCP(Internet Protocol Control Protocol)用于配置IP地址等参数。

认证:PPP协议提供了多种认证机制,如PAP(Password Authentication Protocol,密码认证协议)和CHAP(Challenge-Handshake Authentication Protocol,挑战握手认证协议),用于验证连接双方的身份,确保通信的安全性。

错误检测:PPP协议能够检测并处理传输过程中出现的错误,确保数据的完整性和可靠性。

多链路捆绑:通过MP(Multilink Protocol,多链路协议),PPP协议允许将多个物理链路捆绑成一个逻辑链路,以提高带宽和连接的可靠性。

PPP协议与PPP帧格式

PPP协议的诞生

在PPP协议出现之前,SLIP(Serial Line Internet Protocol,串列线路互联网协议)是常用的点对点协议。SLIP简单但功能有限,不支持动态IP地址分配、身份验证等功能。PPP协议最初由互联网工程任务组(IETF)在1980年代末期开发,旨在解决SLIP的不足。1990年,IETF发布了PPP的第一个标准RFC 1171。后面随着PPP协议的标准化工作持续进行,多个RFC文档对其进行了详细定义和扩展,例如RFC 1661定义了PPP的基本框架和LCP,RFC 1332定义了IPCP(Internet Protocol Control Protocol,网际协议控制协议),RFC 1994定义了CHAP(Challenge-Handshake Authentication Protocol,询问握手认证协议)。

PPP协议基本架构

PPP协议处于TCP/IP协议栈的数据链路层,如下图所示。

PPP在协议栈中的位置

PPP协议主要由三类协议组成:

LCP,即链路控制协议,主要用来建立、拆除和监控PPP数据链路。

NCP,即网络层控制协议,主要用来协商在该数据链路上所传输的数据包的类型和格式。

扩展协议CHAP和PAP,主要用来实现网络安全方面的验证。

PPP帧

PPP报文的封装格式如下图所示。

PPP报文的封装格式

各字段的含义如下:

Flag域Flag域标识一个物理帧的起始和结束,该字节为0x7E。

Address域Address域可以唯一标识对端。PPP协议被运用在点对点的链路上,因此使用PPP协议互连的两个通信设备无须知道对方的数据链路层地址。对于PPP协议来说,该字段无实际意义,按照协议的规定将该字节填充为全1的广播地址。

Control域该字段默认值为0x03,表明为无序号帧,PPP协议默认没有采用序列号和确认机制来实现可靠传输。

Address和Control域一起标识此报文为PPP报文,即PPP报文头为FF03。

Protocol域Protocol域可用来区分PPP数据帧中信息域所承载的数据包类型。

Protocol域的内容必须依据ISO 3309的地址扩展机制所给出的规定进行填充。该机制规定Protocol域所填充的内容必须为奇数,即要求最低有效字节的最低有效位为“1”,最高有效字节的最低有效位为“0”。

如果发送端发送的PPP数据帧的Protocol域字段不符合上述规定,接收端则会认为此数据帧不可识别。接收端向发送端发送一个Protocol-Reject报文,在该报文尾部将填充被拒绝报文的协议号。

Information域Information域最大长度是1500字节,其中包括填充域的内容。Information域的最大长度称为最大接收单元MRU(Maximum Receive Unit)。MRU的缺省值为1500字节,在实际应用当中可根据实际需要进行MRU的协商。

如果Information域长度不足可被填充,但不是必须被填充。如果填充,则需要通信双方的两端能辨认出填充信息和真正需要传送的信息,方可正常通信。

FCS域FCS域主要对PPP数据帧传输的正确性进行检测。

该域在数据帧中引入了一些传输的保证机制,但会引入更多的开销,可能会增加应用层交互的延迟。

PPP协议工作机制

如下图所示,PPP协议包含Dead、Establish、Authenticate、Network、Terminate五个阶段。

PPP协议工作阶段

Dead阶段(链路不可用阶段)

Dead阶段也称为物理层不可用阶段。PPP链路都需从这个阶段开始和结束。

当通信双方的两端检测到物理线路激活(通常为检测到链路上有载波信号)时,就会从Dead阶段跃迁至Establish阶段。

链路被断开后同样会返回到Dead阶段。

Establish阶段(链路建立阶段)

在Establish阶段,PPP链路进行LCP协商。LCP的状态发生如下改变:

当链路处于不可用阶段时,此时LCP的状态机处于初始化Initial状态或准备启动Starting状态。当检测到链路可用时,则物理层会向链路层发送一个Up事件。链路层收到该事件后,会将LCP的状态机从当前状态改变为Request-Sent(请求发送)状态,根据此时的状态机LCP会进行相应的动作,也就是开始发送Configure-Request报文来配置数据链路。

如果本端设备先收到Configure-Ack报文,则LCP的状态机从Request-Sent状态改变为Ack-Received状态,本端向对端发送Configure-Ack报文以后,LCP的状态机从Ack-Received状态改变为Open状态。

如果本端设备先向对端发送Configure-Ack报文,则LCP的状态机从Request-Sent状态改变为Ack-Sent状态,本端收到对端发送的Configure-Ack报文以后,LCP的状态机从Ack-Sent状态改变为Open状态。

LCP状态机变为Open状态后,完成当前阶段的协商,并向下一个阶段跃迁。

下一个阶段既可能是Authenticate阶段,也可能是Network阶段。下一阶段的选择依据链路两端的设备配置,通常由用户来配置。

Authenticate阶段(认证阶段)

缺省情况下,PPP链路不进行认证。如果要求认证,在链路建立阶段必须指定认证协议。

PPP协议提供密码认证PAP和质询握手认证CHAP两种认证方式。

无论哪种认证方式,都存在单向认证和双向认证。单向认证是指一端作为认证方,另一端作为被认证方。双向认证是单向认证的简单叠加,即两端都是既作为认证方又作为被认证方。在实际应用中一般只采用单向认证。

PAP认证过程

PAP认证协议为两次握手认证,密码为明文。认证过程如下图所示

PAP认证过程

被认证方把本地用户名和密码发送到认证方。

认证方根据本地用户表查看是否有被认证方的用户名。

若有,则查看密码是否正确,若密码正确,则认证通过。

若密码不正确,则认证失败。若没有本地用户表没有被认证方的用户名,则同样认证失败。

CHAP认证过程

CHAP认证协议为三次握手认证。它只在网络上传输用户名,而并不传输用户密码,因此安全性比PAP高。CHAP的认证过程如图3所示。

CHAP认证过程

认证方主动发起认证请求,认证方向被认证方发送一些包含随机数的报文(Challenge),并同时将本端的用户名附带上一起发送给被认证方。

被认证方接到认证方的认证请求后,先检查本端接口上是否配置了CHAP密码。

若已配置CHAP密码,则被认证方通过哈希算法对报文ID、配置的密码和报文中的随机数计算哈希值,将该哈希值和自己的用户名发回认证方(Response)。

若未配置CHAP密码,则根据此报文中认证方的用户名在本端的用户表查找该用户对应的密码,通过哈希算法对报文ID、此用户的密码和报文中的随机数计算哈希值,将生成的哈希值和被认证方自己的用户名发回认证方(Response)。

认证方通过哈希算法对报文ID、自己保存的被认证方密码和Challenge报文中的随机数计算哈希值,并与Response报文中的哈希值进行比较,若比较结果一致,认证通过,若比较结果不一致,则认证失败。

CHAP与PAP认证比较

PAP认证中,密码以明文方式在链路上发送,完成PPP链路建立后,被认证方会不停地在链路上反复发送用户名和密码,直到身份认证过程结束,安全性不高。实际应用过程中对安全性要求不高时,可以采用PAP认证建立PPP连接。

CHAP认证协议为三次握手认证协议。它只在网络上传输用户名,而并不传输用户密码,因此安全性比PAP认证高。实际应用过程中对安全性要求较高时,可以采用CHAP认证建立PPP连接。

Network阶段(网络层协商阶段)

PPP协议完成前面几个阶段后,通过NCP协商来选择和配置一个网络层协议并进行网络层参数协商。

无论配置哪一个NCP协议,NCP协议都可在任何时间打开和关闭,当一个NCP协议的状态变为Open时,表明PPP可以开始在链路上承载网络层数据传输。

Terminate阶段(网络终止阶段)

PPP协议能在任何时候终止链路。载波丢失、认证失败或管理员人为关闭链路等情况均会导致链路终止。

PPP协议有什么作用

PPP协议在生产、生活中有着广泛的应用,从家庭宽带接入到企业网络连接,再到移动通信和物联网(IoT)应用,PPP协议都发挥着重要作用。它不仅能够提供稳定、高效的数据传输服务,还能通过多种认证方式保障网络连接的安全性。

1. 家庭宽带接入

在家庭宽带接入中,PPP协议的一个常见应用形式是PPPoE(Point-to-Point Protocol over Ethernet,以太网上的点对点协议)。当用户通过VDSL、光纤等宽带技术上网时,PPPoE协议允许用户的计算机或路由器与ISP(互联网服务提供商)的服务器之间建立一个点对点的连接。这种连接方式不仅能够提供稳定的网络连接,还能实现用户身份验证,确保网络资源的安全使用。

2. 企业网络连接

在企业环境中,PPP协议同样扮演着重要角色。例如,企业可能需要通过专线或虚拟专用网络(VPN)与远程分支机构建立连接。在这种情况下,PPP协议可以用于建立安全、可靠的点对点连接,确保数据传输的效率和安全性。此外,PPP协议还支持多种认证方式,如PAP(Password Authentication Protocol,密码认证协议)和CHAP(Challenge-Handshake Authentication Protocol,挑战握手认证协议),这些认证方式可以有效防止未经授权的访问,保护企业网络的安全。

3. 移动通信

在移动通信领域,PPP协议也有所应用。例如,在早期的GSM网络中,PPP协议被用于实现移动设备与网络之间的数据传输。虽然随着3G、4G乃至5G技术的发展,移动通信的数据传输方式已经发生了很大变化,但在某些特定场景下,如通过卫星通信实现远程数据传输时,PPP协议仍然是一种有效的解决方案。

4. 物联网应用

在物联网领域,PPP协议可以用于连接远程传感器或设备与中央服务器。例如,在农业监测系统中,安装在田间的传感器可以通过PPP协议与远程服务器建立连接,定期发送土壤湿度、温度等数据。这种方式不仅能够实现数据的远程传输,还能通过PPP协议提供的认证机制确保数据的安全性。

PPP协议的衍生协议

MP协议

多链路PPP(Multilink Protocol,简称MP)是PPP协议的一个扩展,用于将多个物理链路合并为一个逻辑链路,以提高带宽和可靠性。MP协议的主要特点包括:

带宽聚合:将多个物理链路的带宽合并,提供更高的总带宽。

负载均衡:在多个链路上分担数据传输,提高传输效率。

冗余和容错:即使某个链路故障,其他链路仍能继续工作,提高连接的可靠性。

与标准PPP协议相比,MP协议增加了多链路管理功能,但基本的帧结构和工作机制仍然基于PPP协议。

PPTP

与PPP协议相比,PPTP 在PPP的基础上增加了隧道功能,适用于通过公共网络建立安全连接的场景。

PPTP(Point-to-Point Tunneling Protocol,点对点隧道协议)是一种用于实现虚拟专用网络(VPN)的技术。它允许通过公共网络(如互联网)建立安全的点对点连接。PPTP通过在两个点之间创建一个隧道来传输数据,这个隧道可以用来传输加密的数据包,从而实现数据的安全传输。

L2TP

L2TP(Layer 2 Tunneling Protocol,第二层隧道协议)是一种用于通过互联网或其他网络传输数据的隧道协议。它通过将PPP数据包封装在UDP数据包中,实现虚拟私有拨号网络(VPDN),允许远程用户通过公共网络(如互联网)安全地连接到企业网络。L2TP本身并不提供加密功能,通常与IPsec(Internet Protocol Security)结合使用,以确保数据传输的安全性。

PPPoE

PPPoE(Point-to-Point Protocol over Ethernet,以太网上的PPP协议)应用在链路层。它通过在以太网上提供点到点的连接,建立PPP会话,封装PPP报文为PPPoE报文。PPPoE技术可以将用户连接到远程接入设备上,并提供良好访问控制功能,提供了一种经济的用户接入技术。

上一篇
下一篇
相关文章