欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

理解点对点协议(PPP)的运作原理与应用

最编程 2024-08-02 16:22:16
...

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第5天

点对点协议(PPP)

对于点对点的链路,目前使用得最广泛的数据链路层协议是点对点协议(PPP)

PPP协议在1994年就已成为互联网的正式标准

PPP协议应满足的需求
  1. 简单——首要要求
  2. 封装成帧——必须规定特殊的字符作为帧定界符
  3. 透明性——必须保证数据传输的透明性
  4. 多种网络层协议——能够在同一条物理链路上同时支持多种网络层协议
  5. 多种类型链路——能够在多种类型的链路上运行
  6. 差错检测——能够对接收端收到的帧进行检测,并立即丢弃有差错的帧
  7. 检测连接状态——能够及时检测出链路是否处于正常工作状态
  8. 最大传输单元——必须对每一种类型的点对点链路设置最大传输单元MTU的标准默认值,促进各种实现之间的互操作性
  9. 网络层地址协商——必须提供一种机制使通信的两个网络层实体能够通过协商知道或能够配置彼此的网络层地址
  10. 数据压缩协商——必须提供一种方法来协商使用数据压缩算法
PPP协议的三个组成部分
  1. 一个将IP数据报封装到串行链路的方法
  2. 一个链路控制协议LCP
  3. 一套网络控制协议NCP
帧格式

PPPFrame.jpg

首部:4个字段

  • 标志字段F:0x7E 。连续两个帧之间只需要使用一个标志字段
  • 地址字段A:只有0xFF,保留字段,不起作用
  • 控制字段C:通常为0x03,同样为保留字段,不起作用
  • 协议字段

尾部:两个字段

透明传输问题的解决

当PPP用在异步传输的时候,使用字节填充法,将定界符进行转义

framebityFill.jpg

当PPP用在同步传输链路的时候,采用零比特填充法,帧开始结束符为7E,标志字段为01111110,如果信息字段中出现了这种比特组合,就容易被误认为是标志字段。所以我们每遇到五个连续的1,就在后面填充0。接收端收到后将0删除,恢复原数据。

PPP链路初始化过程
  • 用户拨号接入ISP后,就建立了一条从用户个人电脑到ISP的物理连接。
  • 用户个人电脑向ISP发送一系列链路控制协议LCP分组(封装多个PPP帧)以便建立LCP连接
  • 之后进行网络层配置。网络控制协议NCP给新接入的用户个人电脑分配一个临时的IP地址
  • 当用户通信完毕时,NCP释放网络层连接,收回原来分配出去的IP地址。LCP释放数据链路层连接。最后释放的是物理层的连接。
PPP协议状态

PPPstatus.jpg

推荐阅读