首页 > 其他分享 >PPP协议

PPP协议

时间:2023-12-05 14:35:36浏览次数:26  
标签:协议 Protocol 报文 字段 PPP 链路

用途

用户计算机与ISP进行通信时,所使用的数据链路层协议通常就是点对点协议PPP(Point-to-Point Protocol)或PPPOE。

广域网路由器之间的专用线路,使用的也是PPP协议。

 组成

1. 将上层数据包封装为数据帧的方法

2. 一个LCP(Link Control Protocol),用于管理数据链路(创建、配置、测试、终止链路)

3. 一套NCP(Network Control Protocol),用于支撑不同的上层协议

ppp链路的工作流程:

1. 建立和配置链路 

2. 链路认证

3. 协议协商

4. 使用链路

5. 终止链路

 

封装成帧

PPP报文可由Protocal字段标识不同类型的PPP报文。例如,当Protocol为0xC021时,代表LCP报文,此时又由Information中的Code标识不同的LCP报文类型。

 1.Flag标志字段,为帧定界符,标识帧的起始和结束位置,为固定值0x7E

 2. Address标识接收方端口地址,PPP协议目前仅用于点到点的链路通讯,因此接收方是唯一的 ,故取固定值0xFF

 3. Control为控制字段,取固定值0x03,表示无序号信息(Unnumbered Information)

 4. Protocol字段为协议字段,用来标识PPP帧封装的协议数据类型,长度为2字节。此字段使PPP得以封装不同的协议。

 5. Information字段为信息字段,,该字段长度不固定,最大长度等于MRU(Maximum Receive Unit)值(1500字节)。此字段存放上层交付的数据,例如LCP、NCP,IP等。

 6. FCS(Frame Check Sequence)字段为帧校验和字段,用来检测PPP帧的完整性(CRC计算),长度为2字节。

透明传输

如果信息字段中出现帧定界符,就会导致接收端误以为帧结束了,因此必须对信息字段中出现的0x7E进行转义。

字节填充

当PPP使用异步传输时(以字节为单位),则使用字节填充方式,规定转义符为0x7D。具体填充方式:

  1. 将每一个x07E转义为 0x7D5E

  2. 将每一个0x7D转义为 0x7D5D

  3. 如信息字段中出现ASCII控制字符,则将控制字符也转义。例如当出现0x03转义为 0x7D03

零比特填充

当PPP使用同步传输时(以bit为单位),则使用零比特填充方式:

在发送端由硬件或软件扫描信息字段,如果出现连续的5个1则立即填入一个0。

 在接收端,也会扫描信息字段,如果出现连续的5个1,则将后面的0丢弃。

 

数据链路管理

PPP使用LCP进行数据链路管理。首先讨论LCP的协议格式:

  • Code为代码字段(也称类型字段),长度为1字节,用来标识LCP中链路控制报文的类型。
  • Identifier为标识符字段,长度为1字节,是报文的唯一标识,用于匹配请求和回复。
  • Length为长度字段,长度为2字节,Length字段指出该报文的长度,报文长度包括Code,Identifier,Length和Data。
  • Data为数据字段,长度是零或多个八位字节,由Length字段声明。

报文类型和格式

 当LCP报文的Code字段为0x01时,表示为Configure-Request报文。Configure-Request报文的Data字段有多个Options(选项)构成。每个Option的形式为TLV(Type,Length,Value)

  • Type为类型字段,用于区分协商的参数。
  • Length为长度字段,Length字段指出该配置选项(包括Type、Length和Data字段)的长度。
  • Data为数据字段,Data字段为零或者多个字节,其中包含配置选项的特定详细信息。

链路建立和配置

  •  当需要建立逻辑链路时,发起方发送Configure-Request(配置请求)报文,用于协商参数;
  • 若接收方收到的每一个配置选项的值都可接受,则回送Configure-Ack(配置确认)报文;
  • 若收到的配置选项是可以识别,但部分配置选项参数不能接受,则回送Configure-Nak(配置否认)报文,并标示出需要重新协商的配置选项;
  • 若配置选项不可识别或不可接受,则回送Configure-Reject(配置拒绝)报文。

Configure-Request(配置请求)报文示例:

 链路终止

 

链路测试和维护

 

链路认证

PPP建立和配置数据链路后,紧接着要进行认证。PPP有PAP核CHAP两种认证方式,具体使用哪一种由PPP在配置链路时的协商结果决定。

PAP认证

PAP(Password Authentication Protocol,口令认证协议),使用密码口令进行链路认证。

优点:认证流程简单

缺点:认证只能在链路建立阶段进行,身份和口令是以明文进行传输,安全性低

认证流程

 若PPP帧中Protocol字段取值为0xc023时,表示Information字段承载的是PAP报文。报文格式如下:

 

CHAP认证

CHAP(Challenge-Handshake Authentication Protocol,口令握手认证协议)。CHAP为三次握手协议,可以在链路建立和数据通信阶段多次使用,进行认证,同时安全性较高。

认证过程中需配合事先协商好的算法,确认被认证方的身份,通常使用MD5(Message Digest Algorithm 5)作为其默认算法。只在网络上传输用户名,而不传输用户口令。

认证流程

  若PPP帧中Protocol字段取值为0xc223时,表示Information字段承载的是CHAP报文。报文格式如下:

 

链路网络层协议协商

链路认证完成后,需要进行网络层协议及相关参数的协商。PPP有一组NCP(Network Control Protocol),用于建立、配置网络层协议。

NCP为一组协议的总称,对于不同的网络层协议,使用不同的NCP子协议进行协商。在网络上流行的IP协议使用IPCP(Internet Protocol Control Protocol,IP控制协议)协议进行协商。

IPCP会完成协商IP地址等工作,其后在该PPP链路上传送IP数据报;若IP数据报传送完毕,若要关闭IP协议,仍需通过IPCP协商终止;

若PPP帧中Protocol字段取值为0x8021时,表示ppp正在使用IPCP报文进行网络层协议协商。报文格式如下:

IPCP Configure-Request报文示例:

 IPCP协议中,通信双方可协商的配置选项包括3个:

  • 多个IP地址协商(很难全部协商成功,因此该选项很少使用)
  • IP压缩协议(IP Compression Protocol),用于协商压缩协议,默认为不压缩
  • IP地址协商,若发起方请求对端分配一个IP地址,接收方应会返回一个合法的IP地址。

整个过程与LCP类似:

 参考:https://blog.csdn.net/HinsCoder/article/details/130454920

标签:协议,Protocol,报文,字段,PPP,链路
From: https://www.cnblogs.com/lucidar/p/17876822.html

相关文章

  • Ntrip协议
    Ntrip通讯协议1.01.Ntrip协议CORS(ContinuouslyOperatingReferenceStations)就是网络基准站,通过网络收发GPS差分数据。用户访问CORS后,不用单独架设GPS基准站,即可实现GPS流动站的差分定位。访问CORS系统,就需要网络通讯协议。NTRIP(NetworkedTransportofRTCMviaInternetP......
  • Modbus RTU协议的风险,协议设计的漏洞
    modbusRTU协议读寄存器功能03H的回包桢格式为什么设计为只有数据长度校验省略起始地址校验?这样如果出现异常通信延迟,是否可能有将上一个读请求的回包当做当前读请求的回包的风险? 下面的chartGPT的解答,并没有给出什么好办法,个人以为还不如在回包中加上地址位校验。  GPT......
  • 神州医疗与海南乐城管理局签署战略合作协议,共同推进医疗科技创新
    近日,神州医疗科技股份有限公司(以下简称“神州医疗”)与海南博鳌乐城国际医疗旅游先行区管理局(以下简称“乐城管理局”)签署战略合作协议。双方本着互惠互利、优势互补的原则,将在临床急需医药健康协同创新、联合共建乐城临床成果转化综合创新服务平台、科技成果转化、人才培养交流、打......
  • 基于泰凌微的TLSR8355芯片的2.4G无线私有协议PCBA设计调试总结
    一前记经常做物联网的类的产品,TLSR8355凭借着它的射频距离远,功能强大等优点成为很多客户的首选。TLSR8355系列专用于2.4GHz射频系统芯片解决方案,如零售/物流、专用网络、Beacon应用程序、无线鼠标、无线USB加密狗等。它集成了2.4GHz射频系统片上应用开发所需的全系列片上外围......
  • TCP协议的流量控制与拥塞控制
    TCP协议的秘密武器:流量控制与拥塞控制合集-计算机网络(19) 1.网络协议的重要性与应用:理解进程间通信和网络分层结构(上)09-172.网络协议的重要性与应用:理解进程间通信和网络分层结构(下)09-183.深入理解HTTP的基础知识:请求-响应过程解析09-194.深入解析HTTP请求:了解请求特征......
  • PPP0E基础配置
    pppoeclient:#interfaceDialer0//创建dialer接口link-protocolppp//链路协议是PPPdialeruserlisi//创建dialer用户pppchapuserlisi//PPP密文账户是lisipppchappasswordsimpleabc123//PPP的密文密码明文显示是abc123ppppaplocal-userlisipasswordsim......
  • 【小沐学前端】Node.js实现基于Protobuf协议的数据处理
    1、简介1.1nodeNode.js是一个开源的、跨平台的JavaScript运行时环境。Node.js是一个开源和跨平台的JavaScript运行时环境。它是几乎任何类型项目的流行工具!Node.js在浏览器之外运行V8JavaScript引擎(GoogleChrome的内核)。这使得Node.js非常高效。2、Protobu......
  • NFS服务及RPC协议
    NFS服务及RPC协议FTP和NFS的区别文件系统类型FTP是一种基于客户端-服务器的协议,用于文件传输。NFS则是一种分布式文件系统协议,作为本地操作系统和远程文件系统之间的桥梁,可以实现跨平台文件共享。传输速度和效率由于FTP是基于客户端-服务器的协议,所以需要进行连接的建立和关......
  • RTSP协议安防平台LiteNVR配置视频流播放时长的操作步骤
    今天我们来分享一下另一个关于鉴权的功能:LiteNVR的视频流地址鉴权。有很多用户在使用LiteNVR时都遇到一个同样的需求,那就是将分发的流地址分享给用户播放时,如何控制用户的播放时长呢?LiteNVR平台是基于RTSP/Onvif协议的视频接入、处理及分发平台,能够实现设备接入、实时视频直播、录......
  • RTMP协议学习——Message与Chunk解读
    前言之前通过对抓包数据的学习和分析,对RTMP协议有了一个整体的认知,大致了解了RTMP从建立连接到播放视频的流程,文章请看《RTMP协议学习——从握手到播放》。但是对于RTMP消息传输的载体还没有过多的分析。本文将会就RTMP的传输数据方面,对RTMP协议进行进一步的研究和学习。Messag......