数据链路层-第五节:点对点协议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
- IP数据报:取值为
-
帧检验序列(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 CRC−CCITT=X16+X12+X5+1
为了减少对CPU占用,实现FCS时采用查表法完成
FCS计算范围如下图所示
接收方每收到一个PPP帧,就进行CRC检验,若CRC检验正确就收下这个帧,反之丢弃。使用PPP的数据链路层向上不提供可靠传输服务
六:PPP协议工作状态
以上是关于数据链路层-第五节:点对点协议PPP的主要内容,如果未能解决你的问题,请参考以下文章