链路层协议之PPP协议与SLIP协议

SLIP协议

      SLIP 的全称为 Serial Line IP(串行线路 IP)。它是一种对 IP 数据报进行封装的简单形式。

SLIP 协议规定的帧格式规则:

  • IP 数据报以一个称作 END(0xc0)的特殊字符结束。同时为了防止数据报传输之前的线路噪音被误认为是数据报内容,在数据报开始处添加一个 END 字符;

  • 如果 IP 数据报中含有 END 字符,就连续传输 0xdb 和 0xdc 来取代它。0xdb 是 SLIP 的 ESC 字符,但它的值与 ASCⅡ码中的 ESC(0x1b)不同;

  • 如果 IP 数据报中含有 ESC 字符,就连续传输 0xdb 和 0xdd 来取代它。

SLIP 的缺陷:

  • 每一端必须知道对端的 IP 地址,没有办法把本端 IP 地址传递给对端;

  • 数据帧中无类型字段,当一条串行线路使用 SLIP 时则不能使用其他协议;

  • SLIP 数据帧中无 checksum,只能依靠上层协议来发现和纠正错误。

PPP协议

       PPP(点到点协议)是为在同等单元之间传输数据设计的链路层协议。这种链路提供全双工操作,并按照顺序传递数据。设计目的主要是用来通过 拨号或专线 方式建立 点对点 连接发送数据,使其成为各种主机、网桥和路由器之间简单连接的一种共通的解决方案。

      点对点协议(PPP)为在点对点连接上传输多协议数据包提供了一个标准方法。PPP 最初设计是为两个对等节点之间的 IP 流量传输提供一种封装协议。在 TCP/IP 协议集中它是一种用来同步调制连接的数据链路层协议。

PPP 协议修改了 SLIP 协议中的缺陷,包括以下三个部分:

  • PPP 封装 IP 数据报既支持数据为 8 位和无奇偶校验的异步模式,又支持面向比特的同步链接;

  • 通过 LCP(链路控制协议)允许双方进行协商;

  • 通过 NCP(网络控制协议)允许双方在网络层上进行协商。

PPP 协议的字符规则与 SLIP 有所不同:

  • PPP 帧以标志字符 0x7e 开始和结束,紧接着是一个值为 0xff 的地址字节,然后是一个值为 0x03 的控制字节;

  • 由于标志字符是 0x7e,当它出现在信息字段中时,需要连续传送 0x7d 和 0x5e 来替代它;

  • 当在信息字段中遇到 0x7d 时,需要连续传送 0x7d 和 0x5d 来替代它。

  • 默认情况下,如果字符的值小于 0x20,需要连续传送 0x7d 和 0x21 来替代它。

PPP 与 SLIP 相比具有下列优点:

  • PPP 支持在单根串行线路上运行多种网络层协议;

  • 每一帧都有 CRC 校验;

  • 通信双方可以用 NCP 进行 IP 地址的动态协商;

  • 可以类似于 CSLIP 对 TCP 和 IP 首部进行压缩;

  • LCP 可以对多个数据链路选项进行设置。

猜你喜欢

转载自blog.csdn.net/qq_30123335/article/details/83379932
今日推荐