数据链路层-第五节:点对点协议PPP

Posted 快乐江湖

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据链路层-第五节:点对点协议PPP相关的知识,希望对你有一定的参考价值。

文章目录

本节对应视频

一:点对点协议(PPP)概述

点对点协议(Point-to-Point Protocol):是目前使用最为广泛的点对点数据链路层协议。前面说过,一般用户需要通过连接到某个因特网服务提供者ISP才能接入因特网,用户计算机与ISP通信时所使用的数据链路层协议通常就是PPP协议

另外PPP协议也广泛应用于广域网路由器之间的专用线路

二:PPP协议组成部分

PPP协议组成部分:PPP协议为在点对点链路传输各种协议数据报提供了一个标准方法,由以下三部分组成

  • 对各种协议数据报的封装方法(封装成帧)
  • 链路控制协议LCP:用于建立、位置以及测试数据链路的连接
  • 一套网络控制协议NCPs:其中的每一个协议支持不同的网络层协议

三:PPP协议帧格式

PPP协议帧格式:如下图

各字段表示含义如下

  • 标志字段(F) 是PPP帧的定界符,取值为**0x7E**

  • 地址字段(A) 预留位,目前没有什么作用,取值为**0xFF**

  • 控制字段(C) 预留位,目前没有什么作用,取值为**0x03**

  • 协议字段(P) 指明帧的数据部分送交哪种协议处理

    • IP数据报:取值为 0x0021
    • LCP分组:取值为 0xc021
    • NCP分组:取值为 0x0081
  • 帧检验序列(FCS) 使用CRC计算出的校验位

四:PPP协议的透明传输

PPP协议的透明传输:F是PPP帧的定界符,取值为0x7E,也即01111110,当帧的数据部分出现定界符时,实现透明传输方法如下

  • 面向字节的异步链路:使用字节填充法,插入转义字符
  • 面向比特的同步链路:使用比特填充法,插入比特0

(1)字节填充法

字节填充法:以字节7E作为PPP帧的定界符,以字节为单位讨论问题

  • 发送方处理

    • 将出现的每一个7E字节(定界符)转变为2字节序列(7D,5E)
    • 将出现的每一个7D字节(转义字符)转变为2字节序列(7D, 5D
    • 出现的每一个ASCII码控制字符(数值小于0x20的字符),其前面插入一个7D字节,同时该字符的编码加上0x20
  • 接收方处理 进行逆变换即可恢复PPP帧数据部分

(2)比特填充法

比特填充法:以比特序列01111110作为PPP帧的定界符,以比特为单位讨论问题

  • 发送方处理 对帧的数据部分进行扫描(一般由硬件实现),只要发现5个连续的比特1,则立即填充1个比特0

  • 接收方处理 对帧的数据部分进行扫描(一般由硬件实现),只要发现5个连续的比特1,则立即删除1个比特0

五:PPP协议的差错检测

PPP协议的差错检测:PPP帧尾部包含有1个两字节的帧检验序列FCS字段,使用循环冗余校验CRC来计算该字段的取值,采用如下生成多项式

C R C − C C I T T = X 16 + X 12 + X 5 + 1 CRC-C CITT = X^16+X^12+X^5+1 CRCCCITT=X16+X12+X5+1

为了减少对CPU占用,实现FCS时采用查表法完成

FCS计算范围如下图所示

接收方每收到一个PPP帧,就进行CRC检验,若CRC检验正确就收下这个帧,反之丢弃。使用PPP的数据链路层向上不提供可靠传输服务

六:PPP协议工作状态

以上是关于数据链路层-第五节:点对点协议PPP的主要内容,如果未能解决你的问题,请参考以下文章

数据链路层 点对点协议 PPP

数据链路层重点复习(点对点)

PPP点对点协议

数据链数层

计算机网络之数据链路层

计算机网络 之 数据链路层 考前快速复习