点对点协议--PPP

1992 年制订了 PPP 协议。经过 1993 年和1994 年的修订,现在的 PPP 协议已成为因特网的正式标准[RFC 1661]。
现在全世界使用得最多的数据链路层协议是点对点协议 PPP (Point-to-Point Protocol)。用户使用拨号电话线接入因特网时,一般都是使用 PPP 协议。

用户到 ISP 的链路使用 PPP 协议
这里写图片描述


  • PPP 协议应满足的需求
    • 简单:这是首要的要求
    • 封装成帧
    • 透明性
    • 多种网络层协议
    • 多种类型链路
    • 差错检测
    • 检测连接状态
    • 最大传送单元
    • 网络层地址协商
    • 数据压缩协商
  • PPP 协议不需要的功能
    • 纠错
    • 流量控制
    • 序号
    • 多点线路
    • 半双工或单工链路 (只支持全双工链路)

不提供使用序号和确认的可靠传输:
在数据链路层出现差错的概率不大时,使用比较简单的 PPP 协议较为合理。 在因特网环境下,PPP 的信息字段放入的数据是IP数据报。数据链路层的可靠传输并不能够保证网络层的传输也是可靠的。帧检验序列 FCS 字段可保证无差错接受


PPP 协议有三个组成部分 :

  • 一个将 IP 数据报封装到串行链路的方法。
  • 链路控制协议 LCP (Link Control Protocol)。
  • 网络控制协议 NCP (Network Control Protocol)。

PPP 协议的帧格式

PPP 是面向字节的,所有的 PPP 帧的长度都是整数字节。

这里写图片描述

PPP 有一个 2 个字节的协议字段

  1. 当协议字段为 0x0021 时,PPP 帧的信息字段就是IP 数据报
  2. 若为 0xC021, 则信息字段是 PPP 链路控制数据
  3. 若为 0x8021,则表示这是网络控制数据

透明传输问题 : 当 PPP 用在异步传输时,使用一种特殊的字符填充法。 PPP 用在同步传输链路(SONET/SDH)时,协议规定采用硬件来完成比特填充

字符填充 :
将信息字段中出现的每一个 0x7E 字节转变成为 2 字节序列(0x7D, 0x5E)。 若信息字段中出现一个 0x7D 的字节, 则将其转变成为 2 字节序列(0x7D, 0x5D)。 若信息字段中出现 ASCII 码的控制字符(即数值小于 0x20 的字符),则在该字符前面要加入一个 0x7D 字节,同时将该字符的编码加以改变(例如: 控制字符0x03 变0x7D 0x23)
7E -> 7D 5E
7D -> 7D 5D
a (小于20 ) -> 7D (20 + a)

零比特填充 :
PPP 协议用在 SONET/SDH 链路时,使用同步传输(一连串的比特连续传送)。这时 PPP 协议采用零比特填充方法来实现透明传输。 在发送端,只要发现有 5 个连续 1,则立即填入一个 0。接收端对帧中的比特流进行扫描。每当发现 5 个连续1时,就把这 5 个连续 1 后的一个 0 删除。
这里写图片描述


PPP 协议的工作状态 :
当用户拨号接入 ISP 时,路由器的调制解调器对拨号做出确认,并建立一条物理连接。 PC 机向路由器发送一系列的 LCP 分组(封装成多个 PPP 帧)。 这些分组及其响应选择一些 PPP 参数,进行网络层配置,NCP 给新接入的 PC机分配一个临时的 IP 地址,使 PC 机成为因特网上的一个主机。 通信完毕时,NCP 释放网络层连接,收回原来分配出去的 IP 地址。接着,LCP 释放数据链路层连接。最后释放的是物理层的连接。

这里写图片描述


例:
一个PPP帧的数据部分(用十六进制写出)是 7D 5E FE 27 7D 5D 7D 5D 65 7D 5E 。试问真正的数据是什么(用十六进制写出)?

7D 5E -> 7E
7D 5D -> 7D
7E FE 27 7D 7D 65 7E

发布了1 篇原创文章 · 获赞 1 · 访问量 396

1992 年制订了 PPP 协议。经过 1993 年和1994 年的修订,现在的 PPP 协议已成为因特网的正式标准[RFC 1661]。
现在全世界使用得最多的数据链路层协议是点对点协议 PPP (Point-to-Point Protocol)。用户使用拨号电话线接入因特网时,一般都是使用 PPP 协议。

猜你喜欢

转载自blog.csdn.net/qq_35686185/article/details/104436582
今日推荐