这只是我自己在学习时的总结,对于我有用的知识点,希望可以和大家分享,主要学习的文章如下,如有兴趣也可以去了解一下其他作者写的ppp协议的知识点。
PPP协议详解https://blog.csdn.net/m0_49864110/article/details/124987932?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522168169028016800192235455%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=168169028016800192235455&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_positive~default-1-124987932-null-null.142^v83^insert_down38,239^v2^insert_chatgpt&utm_term=PPP%E5%8D%8F%E8%AE%AE&spm=1018.2226.3001.4187
介绍
PPP(点对点协议)为在点对点连接上传输多协议数据包提供了一个标准方法,是数据链路层封装协议的一种方法,支持同步和异步两种传输方式
PPP优点:
-
支持同步传输和异步传输
-
具有良好的扩展性,当需要在以太网链路上承载PPP协议时,可扩展为PPPoE
-
提供了LCP(Link Control Protocol)协议,用于各种链路层参数协商
-
提供了各种NCP(Network Control Protocol),用于网络层参数协商
-
提供了认证:CHAP 、PAP
-
没有重传机制,网络开销小,速度快
建立连接的五种状态(阶段)
Dead 链路不可用阶段
Establish 链路建立阶段(链路层协商阶段)--进行LCP协商
Authenticate验证阶段(可选阶段)-----进行PAP/CHAP认证
Network 网络层协议阶段-----------进行NCP协商
Terminate 网络终止阶段
Establish阶段
PPP协议最关键和最复杂的阶段,主要是LCP协商
链路控制协议,简称LCP(Link Control Protocol)。它是PPP协议的一个子集,在PPP通信中,发送端和接收端通过发送LCP包来确定那些在数据传输中的必要信息
主要的工作内容
工作方式----SP(Single-link PPP)单链路、MP(Multilink PPP)多链路
最大接受单元MRU
验证方式----不验证、PAP、CHAP
魔术字等----魔术字主要用于检查环路 在进行链路协商时,如果魔术字一样,会重新进行协商并更换魔术字但是只要LCP链接建立成功,魔术字就不会改变
Authenticate验证阶段(可选)
主要是PAP、CHAP认证
PAP认证报文交互过程
PAP验证协议为两次握手验证,密码为明文。被验证方发起认证,认证通过后不再认证
CHAP认证报文交互过程
CHAP验证协议为三次握手验证协议。它只在网络上传输用户名,而并不传输用户密码,因此安全性要比PAP高。验证方发起认证挑战,认证成功后。再次连接还需要认证。
验证方发送一个“challenge”报文给被验证方。被验证方经过一次哈希算法后,给验证方返回一个值(此值称为Chap ID)。验证方把自己经过哈希算法生成的值和被验证方返回的值进行比较。如果两者匹配,那么验证通过。否则验证不通过,连接应该被终止。
Network网络层协商阶段
进行各种NCP协议协商,主要协商双方的IP地址(以下主要介绍IPCP)
IPCP简介
IPCP是一个网络控制协议,用来在点对点协议连接上建立和配置网际协议。 IPCP负责在点对点连接的两端配置、使能和去使能IP协议模块。
IPCP报文类型
IPCP的数据的报文同LCP的数据报文非常类似,不同之处有两点:
协议字段。IPCP是在网络层协议阶段协商配置参数选项,协议字段为0x8021,而LCP协议则是在链路建立阶段协商配置参数选项的,协议字段为0xC021
code域字段。LCP共包括十几种报文,而IPCP只包括7种报文,但它的报文类型只是LCP数据报文的一个子集(只有LCP代码域从1到7这七种报文:Config-Request,Config-Ack,Config-Nak,Config-Reject,Terminate-Request,Terminate-Ack和Code-Reject),而且实际的数据报文交换过程中链路终止报文一般而言是不在网络协议阶段使用的。