【计算机网络篇】数据链路层(5)点对点协议PPP

发布于:2024-05-16 ⋅ 阅读:(46) ⋅ 点赞:(0)


在这里插入图片描述

🛸简述点对点协议(PPP)

点对点协议(PPP)是目前使用最广泛的点对点的数据链路层协议
点对点协议PPP主要有两种应用:

1.通过点对点链路连接到某个ISP,进而进入因特网,用户计算机与ISP通信的时候,所采用的数据链路层协议一般就是PPP协议
1999年公布了可以在因特网上运行的PPP协议,即PPPoE,它使得ISP可以通过数据用户线路,电路调制解调器,以及以太网等宽带接入技术,以以太网接口的形式,为用户提高接入服务在这里插入图片描述

2.点对点协议还广泛应用在广域网路由器之间的专用线路在这里插入图片描述

⭐从网络体系结构的角度看点对点协议PPP的组成

PPP是数据链路层协议,它将上层交付下来的协议数据单元PDU封装成帧
为了支持不同的网络层协议,PPP协议包含了一套网络控制协议NCPs,链路控制协议LCP,用于建立 配置以及测试数据链路的连接
PPP协议能够在多种类型的点对点线路上运行,例如:面向字节的异步链路,面向比特的同步链路
在这里插入图片描述

⭐PPP的帧格式

一个PPP帧由帧首部,帧尾部,以及数据载荷共3个部分组成
帧首部和尾部中各字段的长度,以及数据载荷部分的最大长度如下图所示在这里插入图片描述

⭐PPP帧的透明传输

在PPP帧的首部和尾部,各包含了一个帧定界符(F),若PPP帧的数据载荷中恰好包含帧定界符
在这里插入图片描述

换句话说,上层交付下来的协议数据单元中恰好包含有PPP帧定界符,在不采取措施的情况下,会造成接收方对帧定界的误判,PPP帧等到首部和尾部中作为帧定界符的标志字段
其取值从字节角度上看,为0x7E (16进制7E)
从比特角度看:取值为01111110。

🎈面向字节的异步链路

当PPP协议采用的是面向 字节异步链路的时候,使用字节填充来实现透明传输,此时,我们将帧首部和尾部中的帧定界符看作取值是0x7E的一个字符
发送方的处理
1.将数据载荷中出现的每一个0x7E减去0x20(相当于异或0x20),然后在其前面插入转义字符0x7D。(这相当于将数据载荷中出现的每一个16进制的7E字节转换成了2字节,也就是16进制的7D,5E)
2.若数据载荷中原来就含有0x7D,则把每一个0x7D减去0x20,然后在其前面插入转义字符0x7D。(这相当于将数据载荷中出现的每一个16进制的7D字节转换成了2字节,即16进制的7D,5D)
3.将数据载荷中出现的每一个ASCII码控制字符(即数值小于0x20的字符), 加上0x20(相当于异或0x20,将其转换成非控制字符),然后在其前面插入转义字符0x7D。
(也即是将16进制03转换成了2字节,即16进制7D,23)

在这里插入图片描述

接收方的处理:
进行与发送方相反的变换,就可以正确地恢复出未经过字节填充的原始数据载荷。

🎈面向比特的同步链路

当PPP协议采用的是面向 比特同步链路的时候,使用 零比特 填充来实现透明传输。
我们将帧首部和尾部的帧定界符看作是取值为01111110的8比特的 特定位串
假设帧的数据载荷包含有这个特定位串

在这里插入图片描述

发送方的处理
发送方对帧的数据载荷进行扫描(一般由硬件完成),每出现5个连续的比特1,则在其后填充一个比特0。
在这里插入图片描述
通过这种零比特填充后的数据载荷,就可以确保其不会包含有作为帧定界符的8比特特定位串
接收方的处理:
对帧的数据载荷进行扫描,每出现5个连续的比特1时,就把其后的一个比特0删除。

⭐PPP帧的差错检测

在PPP帧的尾部中,包含有一个2B的帧检验序列FCS字段,其值是使用循环冗余校验CRC计算出的检错码。在这里插入图片描述
FCS的计算范围
在这里插入图片描述

⭐PPP帧的工作状态

我们以用户主机拨号接入因特网服务提供者ISP的拨号服务器的过程为例:
PPP链路的开始和结束状态都是 静止 状态,这时,用户PC和ISP的拨号服务器之间并不存在物理层的连接,当检测到调制器的载波信号并建立物理层连接后,PPP就进入链路的 建立 状态
在 建立 状态下,链路控制协议LCP开始协商一些配置选项,若协商成功,则进入 鉴别 状态,若协商失败,则退回到 静止 状态
所协商的配置选项包括:最大帧长,鉴别协议等,可以不使用鉴别,也可以使用口令鉴别PAP或挑战握手鉴别协议CHAP
若通信双方无须鉴别或鉴别身份成功,则进入 网络 状态,若鉴别失败,则进入 终止 状态
进入 网络 状态后,PPP链路的两端,通过互相交换网络层特定的NCP分组来进行NCP配置
如果PPP链路的上层使用的是IP协议,则使用IP协议控制协议IPCP,来对PPP链路的每一端配置IP模块,例如:分配IP地址
NCP配置完成后,就进入 打开 状态,只要链路处于打开状态,双方就可以进行数据通信,当出现故障或链路的一端发出终止请求的时候,就进入 终止 状态
当载波停止后就回到 静止 状态在这里插入图片描述


网站公告

今日签到

点亮在社区的每一天
去签到