计算机网络:数据链路层 —— PPP 点对点协议

文章目录

    • PPP 帧
      • PPP帧的格式
      • PPP帧的透明传输
        • 面向字节的异步链路
        • 面向比特的同步链路
      • PPP帧的差错检测
    • PPP 的工作状态

点对点协议(Point-to-Point Protocol,PPP)是目前使用最广泛的点对点数据链路层协议,用于在两个节点之间进行数据传输。它通常用于建立在串行线路上的点对点连接,例如通过电话线或光纤的连接。

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

PPP 帧

PPP帧的格式

PPP 帧是在 PPP 点对点协议中用于传输数据的基本单元。它由帧首部、数据载荷和帧尾部三个部分组成:

![[PPP.png]]

  • 标志(Flag)字段:PPP帧的定界符,取值为0x7E

  • 地址(Address)字段:取值为0xFF

  • 控制(Control)字段:取值为0x03

  • 协议(Protocol)字段:其值用来指明帧的数据载荷应向上交付给哪个协议处理。

    • P 取值为 0x0021 时,数据载荷封装的是 IP数据报
    • P 取值为 0XC021 时,数据载荷封装的是 LCP分组
    • P 取值为 0X8021 时,数据载荷封装的是 NCP分组
  • 帧检验序列(Frame Check Sequence,FCS)字段:其值是使用[[数据链路层概述#循环冗余校验|循环冗余校验 CRC]] 计算出的检错码。

PPP帧的透明传输

PPP 帧的首部和尾部,均包含一个帧定界符,若帧的数据载荷中恰好包含有帧定界符,即 0x7E0111 1110

面向字节的异步链路

PPP 协议使用的是面向字节的异步链路,使用字节填充来实现透明传输,将帧定界符看作取值为0x7E的一个字符:

发送方

  1. 将数据载荷中出现的每一个 0x7E 减去 0x20(相当于异或 0x20),然后在其前面插入转义字符 0x7D

  2. 若数据载荷中原来就含有 0x7D,则把每一个 0x7D 减去 0x20,然后在其前面插入转义字符 0x7D

  3. 将数据载荷中出现的每一个 ASCII 码控制字符(即数值小于0x20的字符)加上 0x20(相当于异或 0x20,将其转换成非控制字符),然后在其前面插入转义字符 0x7D

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

面向比特的同步链路

面向比特的同步链路使用零比特填充来实现透明传输,将帧定界符看作取值为0111 1110 的 8 比特定位串:

发送方:对帧的数据载荷进行扫描(一般由硬件完成),每出现 5 个连续的比特1,则在其后填充一个比特0

接收方:对帧的数据载荷进行扫描,每出现 5 个连续的比特1时,就把其后的一个比特0删除

PPP帧的差错检测

PPP 帧尾部的帧检验序列 FCS 字段,其值是使用[[数据链路层概述 循环冗余校验 CRC 计算出的检错码,CRC 采用的生成多项式为 CRC - CCITT = X 16 + X 12 + X 5 + 1 X^{16}+X^{12}+X^5+1 X16+X12+X5+1

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

PPP 的工作状态

以用户主机拨号接入因特网服务提供者 ISP 的拨号服务器的过程为例:PPP 链路的开始和结束状态都是 静止 状态

在这里插入图片描述

PPP 的工作状态通常可以分为三个阶段:链路建立网络层协议配置数据传输。以下是 PPP 的工作状态:

  1. 链路建立(Link Establishment)

    • 在这个阶段,当检测到载波并建立物理层连接之后,PPP 使用链路控制协议(LCP)来建立、配置和测试数据链路连接。

    • 在通信的起始阶段,发送方发送 LCP 配置请求,接收方收到请求后发送 LCP 配置应答,进行链路参数的协商和确认。若协商成功,进入认证(鉴别)过程;若协商失败,回到静止状态。

    • 这个阶段还包括认证过程,如果配置了认证机制的话,发送方可能会要求接收方进行认证。

  2. 网络层协议配置(Network Layer Protocol Configuration)

    • 一旦链路建立完成,PPP 使用网络控制协议(NCP)来协商和配置网络层协议的选项。

    • 例如,对于 IP 协议,发送方发送 IPCP 配置请求,接收方收到请求后发送 IPCP 配置应答,协商 IP 地址、DNS 服务器等配置信息。

  3. 数据传输(Data Transmission)

    • 在链路建立和网络层协议配置完成后,PPP 进入数据传输阶段。

    • 在这个阶段,PPP 将封装好的网络层数据帧通过已建立的链路进行传输。

    • 发送方将数据封装成 PPP 帧并发送,接收方接收到帧后进行解封装并将数据交给上层网络协议进行处理。

在数据传输阶段,PPP 还会持续进行链路的检测和维护,以确保链路的稳定性和可靠性。如果链路出现故障或中断,PPP 将会尝试重新建立连接或进行相应的错误处理。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/446290.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

线性代数 行列式

一、行列式 1、定义 一个数学概念,主要用于 线性代数中,它是一个可以从方阵(即行数和列数相等的矩阵)形成的一个标量(即一个单一的数值) 2、二阶行列式 ,像这样将一个式子收缩称为一个 2*2 的…

西门子828d的plc一些信息记录

1、虽然是200的plc但是引入了DB的形式替代原来的V存储区。 2、用户自定义DB块范围,DB9000-DB9063,共64个DB块。 可用地址范围如上图 机床MCP483面板地址表,其它类型的面板地址自己在828d简明调试手册里查看。 如何上载828d的plc程序: 1.通…

Chainlit集成Dashscope实现语音交互网页对话AI应用

前言 本篇文章讲解和实战,如何使用Chainlit集成Dashscope实现语音交互网页对话AI应用。实现方案是对接阿里云提供的语音识别SenseVoice大模型接口和语音合成CosyVoice大模型接口使用。针对SenseVoice大模型和CosyVoice大模型,阿里巴巴在github提供的有开…

数据结构之红黑树实现(全)

一、红黑树 红黑树是一种自平衡的二叉搜索树,它通过约束节点的颜色和结构来保持平衡。红黑树是由 Rudolf Bayer 在1972年发明的,被认为是一种优秀的平衡树结构,广泛应用于各种数据结构和算法中。 1.红黑树的性质 1. 每个结点是红的或者黑的…

Mac 备忘录妙用

之前使用 Windows 的过程中,最痛苦的事是没有一款可以满足我快速进行记录的应用 基本都得先打开该笔记软件,然后创建新笔记,最后才能输入,这么多步骤太麻烦了 在切换到 MacOS 之后,让我惊喜的就是自带的备忘录&#…

android——自定义控件(不停变化的textview、开关switch、动画效果的打勾)

一、从开始数字到结束数字,不断变化 import android.animation.TypeEvaluator; import android.animation.ValueAnimator; import android.content.Context; import android.util.AttributeSet; import android.view.animation.AccelerateDecelerateInterpolator;i…

设计模式-原型模式(克隆、Clone、Prototype)

原型模式(克隆、Clone、Prototype)是一种创建型设计模式, 使你能够复制已有对象, 而又无需使代码依赖它们所属的类。 问题 譬如美国研制了一种特效药,而且还在专利保护器内,而印度制药公司看中了&#xff0…

2024 第一次周赛

A: 题目大意 骑士每连续 i 天每天会得到 i 个金币,(i 1, 2, 3 , …),那么展开看每一天可以得到的金币数:1 2 2 3 3 3 4 4 4 5 5 5 5 5 … 可以发现就是1个1 ,2个2, 3个3…,那么我…

Flutter 3.24 发布:GPU模块及多视图嵌入功能

Flutter 3.24 发布:GPU模块及多视图嵌入功能 Flutter 3.24 带来了许多新功能和改进,让开发应用程序变得更加容易和有趣。这个版本重点展示了 Flutter GPU 的预览功能,让应用程序可以直接使用高级图形和 3D 场景功能。 此外,网页…

win软件 超强的本地视频 图片去水印 动态水印!

AI视频图片去水印 HitPaw Watermark Remover 电脑软件,内涵安装教程,以后看到有水印的视频不怕啦,用这个就行了,可以去除动态水印! 【下载】 https://pan.quark.cn/s/1ba6f088f0b2 【应用名称】:HitPaw Watermark R…

ARIMA 模型初体验 —— 预测股票数据

第 1 步,从 twelvedata 上获取苹果 11 号 15:30 到 16:00 的 OHLC、成交量 数据。 第 2 步,编写 Python 代码(实际上可以用 R 语言,R 语言从语言的级别对分析预测提供了支持,而 Python 需要第三方库)。 …

C++ day04(友元 friend、运算符重载、String字符串)

目录 【1】友元 friend 1》概念 2》友元函数 3》友元类 4》友元成员函数 【2】运算符重载 1》概念 2》友元函数运算符重载 ​编辑 3》成员函数运算符重载 4》赋值运算符与类型转换运算符重载 5》注意事项 【3】String 字符串类 【1】友元 friend 1》概念 定义&#x…

BUUCTF-greatescape1

发现有ftp包和tcp包居多 下载解压是个流量包,使用wiresharh打开,CTRLF,按下图搜索ftp tcp18流发现ssc.key 传送,在19流发现key内容 复制保存为ssc.key, 加载key解密tls,再追踪tls流可得flag INS{OkThatWasWay2Easy} …

多元线性回归:机器学习中的经典模型探讨

引言 多元线性回归是统计学和机器学习中广泛应用的一种回归分析方法。它通过分析多个自变量与因变量之间的关系,帮助我们理解和预测数据的行为。本文将深入探讨多元线性回归的理论背景、数学原理、模型构建、技术细节及其实际应用。 一、多元线性回归的背景与发展…

基于Java的旅游网站管理系统—计算机毕业设计源码39235

摘 要 信息化社会内需要与之针对性的信息获取途径,但是途径的扩展基本上为人们所努力的方向,由于站在的角度存在偏差,人们经常能够获得不同类型信息,这也是技术最为难以攻克的课题。针对旅游网站等问题,对旅游网站进行…

一区大黄蜂!人工蜂群算法优化!ABC-CNN-LSTM-MATT多特征分类预测

一区大黄蜂!人工蜂群算法优化!ABC-CNN-LSTM-MATT多特征分类预测 目录 一区大黄蜂!人工蜂群算法优化!ABC-CNN-LSTM-MATT多特征分类预测分类效果基本介绍程序设计参考资料 分类效果 基本介绍 1.Matlab实现ABC-CNN-LSTM-MATT人工蜂群…

PDF转JPG神器!一键转换,轻松搞定文档分享

各位亲爱的小伙伴们,有没有遇到过需要把PDF文件转换成JPG图片的情况呢?今天我就来给大家推荐几款好用的PDF转JPG工具,让我们一起来看看这些工具的详细介绍和使用感受吧! 一、福昕转换器 直通车(粘贴到浏览器打开&…

获取时隔半个钟的三天与el-time-select

摘要&#xff1a; 今天遇到需求是配送时间&#xff0c;时隔半个钟的排线&#xff01;所以需要拼接时间&#xff01;例如2024-10-08 14&#xff1a;30&#xff0c;2024-10-08 15&#xff1a;00&#xff0c;2024-10-08 15&#xff1a;30 <el-form-item label"配送时间&a…

优先算法1--双指针

“一念既出&#xff0c;万山无阻。”加油陌生人&#xff01; 目录 1.双指针--移动零 2.双指针-复写零 ok&#xff0c;首先在学习之前&#xff0c;为了方便大家后面的学习&#xff0c;我们这里需要补充一个知识点&#xff0c;我这里所谓的指针&#xff0c;不是之前学习的带有…

如何构建高效的公路工程资料管理系统?

本文介绍了构建高效的公路工程资料管理系统的方法&#xff0c;涵盖了系统需求分析、功能设计、开发平台选择、开发过程、系统上线与培训、持续改进与维护等关键环节。通过合理规划和科学管理&#xff0c;可以确保系统满足用户需求&#xff0c;提高工作效率&#xff0c;保障公路…