计算机网络杂记-04

点对点协议PPP Point-to-Point Protocol

PPP是一种数据链路层协议,它规定了点对点通信的协议标准。

  • PPP 为在点对点通信链路上传输网络层数据报提供了一种标准方法。

    • PPP 为多种网络层协议提供了一种通用的封装方法。(封装成帧)
    • PPP 为在两数据链路层提供了链路控制协议LCP,用于建立、配置和测试数据链路连接。
    • PPP 为在两数据链路层提供了网络控制协议NCP,用于在两个节点之间传输网络层协议的数据包。

帧格式

1
2
3
帧的首部                            |     数据     | 帧的尾部
| F | A | C | P | DATA | FSC | F |
| 1 byte| 1 byte | 1 byte | 2 byte | 0~1500 byte | 2 byte | 1 byte |

标志 Flag 字段 F:标志字段是一个字节,它的值为 0x7E,表示帧的开始和结束。地址 Address 字段 A:地址字段是一个字节,它的值为 0xFF,表示广播地址。预留,但目前没有使用。控制 Control 字段 C:控制字段是一个字节,它的值为 0x03,表示无控制信息。预留,但目前没有使用。协议 Protocol 字段 P:协议字段是两个字节,指明上层协议类型。如 0x0021 表示 IP 协议、0xC021 表示 LCP 协议、0x8021 表示 IPX 协议、0x8023 表示 IPX 协议。数据 Data 字段:数据字段是 0~1500 个字节,表示上层协议的数据。帧检验序列 FCS 字段:帧检验序列字段是两个字节,用于差错检测。

透明传输

如果在帧的数据部分出现了和帧首部相同的字符,数据链路层就会误认为帧结束,因此,数据链路层必须对数据进行处理,以免出现这种情况。

数据链路层对数据进行处理的方法是:在数据中出现特定字符时,数据链路层自动在该字符前面插入一个转义字符,以免与帧的定界符混淆。

发送方的处理:

  • 出现的每一个 0x7E 字符,都用 0x7D 0x5E 代替。

  • 出现的每一个 0x7D 字符,都用 0x7D 0x5D 代替。

  • 出现每一个 ASCII 码小于 0x20 的字符,都用 0x7D 加上该字符的 ASCII 码的值加上 0x20 代替。

接收方的处理:只需要将 0x7D 0x5E 转换为 0x7E,将 0x7D 0x5D 转换为 0x7D,将 0x7D 加上 0x20 的值转换为原来的字符即可。

面向比特的同步链路采用插入比特0的比特填充方法

对发送方的处理:

  • 在数据中出现 5 个连续的 1 时,就在后面插入一个 0。

对接收方的处理:

  • 在接收到 5 个连续的 1 时,就删除后面的 0。

差错侦测

在FCS字段中使用CRC-CCITT差错检测码。

CRC-CCITT生成多项式为:$x{16}+x{12}+x^5+1$

参考:RFC 1662

接收方在接收到帧后,对帧进行差错检测,如果发现差错,则丢弃该帧。

PPP 的工作状态

媒体接入控制

由于多路访问信道是由多个节点共享的,因此,必须对多路访问信道进行管理,以便在多个节点同时发送数据时,不会发生冲突。

这时,就需要使用媒体接入控制(MAC Media Access Control)子层。

媒体接入控制分为两种类型:

  • 静态媒体接入控制

    • 频分多址
    • 时分多址
    • 码分多址
  • 动态媒体接入控制

    • 受控接入
      • 集中控制
      • 分布控制
  • 随机接入

预先固定分配好信道的使用权,这类方法非常不灵活,对于突发性的数据传输,效率很低。通常在无线网络物理层使用。

在动态接入控制中的集中控制,有一个主站以循环的方式向各个节点询问是否有数据要发送,如果有,则允许发送,否则,就询问下一个节点。缺点是主站成为了系统的瓶颈,如果主站出现故障,整个系统就无法工作。

而分布控制则是将主站的功能分散到各个节点,各个节点之间通过协商的方式来决定谁有权利发送数据。这种方法的缺点是,如果各个节点之间的协商出现问题,就会导致系统无法工作。

以上两种方式现在竞争中被淘汰了。

随机接入是一种分布式的媒体接入控制方法,它不需要主站,各个节点之间也不需要协商,而是通过一定的算法来决定谁有权利发送数据。

静态划分信道

信道复用

  • 复用 Multiplexing:将多个信号合成一个信号的过程。

  • 分用 Demultiplexing:将复用后的信号分解成多个信号的过程。

  • 当网络传输媒体的带宽有限时,就需要对带宽进行复用,以便多个用户共享带宽。

常见复用技术

  • 频分复用 FDM Frequency Division Multiplexing

  • 时分复用 TDM Time Division Multiplexing

  • 波分复用 WDM Wave Division Multiplexing

  • 码分复用 CDM Code Division Multiplexing

码片 Chip:在 CDMA 中,每一个比特时间被分为多个小的时间间隔,每一个小的时间间隔称为一个码片,每一个码片都有一个唯一的码片序列,每一个用户都有一个唯一的码片序列,用户的数据就是通过这个码片序列来进行传输的。

使用 CDMA 时,每一个用户都有一个唯一的码片序列,这样,即使多个用户同时发送数据,也不会发生冲突。这个叫 m bit 的码片序列(Chip Sequence)。

  • 一个站如果发送比特1,则发送它自己的 m 个码片序列。

  • 一个站如果发送比特0,则发送它自己的 m 个码片序列的二进制反码。

上面这种通讯方式叫做直接序列扩频通讯(DS-CDMA Direct Sequence Code Division Multiple Access)。

码片的挑选规则:

  1. 分配给每个用户的码片序列必须是正交的。(规格化内积为0)

  2. 分配给每个用户的码片序列必须各不相同。