一文看懂PPP协议——PPP协议简介

2023-11-17

今天给大家介绍一下PPP协议的相关内容,文章浅显易懂,特别适合0基础同学。本文主将主要从PPP概述、PPP链路建立过程和PPP认证三个角度对PPP协议进行讲解。

一、PPP概述

PPP,point-to-point协议,即点对点协议,是数据链路层封装协议的一种。刚开始接触计算机网络的同学很多人都有一种误区,认为数据链路层网络等同于以太网,所有的数据链路层封装方式都是以太网格式的以太帧。但是其实数据链路层有很多种网络,其数据链路层封装方式有很多。目前,Internet协议普遍采用的是TCP/IP协议,只要不同的网络运行的网络运行的网络层协议是TCP/IP协议,不管数据链路层是什么协议,都可以接入到互联网大家庭。(实际上,这也是网络分层设计的一大好处之一)
PPP协议工作在串行接口和串行链路上,一般来说,PPP协议所构成的网络只允许双方之间通信,不允许像以太网一样接入交换机后接入其他的主机或设备。
刚才我们说过,PPP协议在数据链路层封装的是PPP帧,PPP帧格式如下:
在这里插入图片描述
上述字段介绍如下:
1、FLAG
在PPP协议中,头部和尾部都有一个Flag字段,Flag字段标识着一个PPP帧的开始和结束。FLAG字段长度8bit,固定为0x7e,因为PPP协议将FLAG设置为PPP帧的开始和结束,因此在一个PPP帧中不允许出现0x7e字段的数据,如果出现这样的数据,则需要进行特殊形式的转义。
2、Address
在PPP协议中,因为进行通信的只有两方,因此一方发送的数据总是另一方,这一点PPP协议不像以太网协议一样,必须使用MAC地址来表明数据帧的发送者和接收者。PPP协议中的Address字段取值固定为0xff。
3、Control
长度8bit,取值固定0x03,无特殊作用。
4、Protocol
长度16bit,其取值类似于以太网帧的类型,表明了上层数据的类型。
5、FCS
长度16bit,用于帧校验。一个设备在收到PPP帧后会进行PPP帧校验,如果发现PPP在传输过程中出错,该帧会被立即丢弃。PPP协议没有纠错和重传机制。

二、PPP链路建立

PPP帧从开始建立到能够正常转发数据包需要一段时间,并且需要经历协商验证过程。PPP链路建立共分5个阶段,过程如下:
在这里插入图片描述
在Link Dead阶段,PPP链路进行初始化,当物理层接口联通后,状态自动进入到Link Establishment阶段。
进入到Link Establishment阶段,通信双方互相发送LCP报文,进行参数协商,如果参数协商失败,则会回退到Link Dead阶段。如果参数协商成功,并且双方需要认证,则进入到authentication阶段,如果不需要认证,则会直接进入到Network Layer Protocol阶段。
在Authentication阶段,通信双方会进行认证。
在Network Layer Protocol阶段,双方会再次进行协商,这次协商主要协商网络层参数,比如发送自己的IP地址、子网掩码等信息,看是否存在IP地址冲突或者不属于一个网段等情况。如果参数协商一致,那么此时就可以进行正常的数据包传送了。
在Link Termination阶段,代表PPP链接终止,除了Link Dead阶段之外,任何协商过程失败都会进入这一阶段,而如果处于Network Layer Protocol阶段,管理员手动关闭了链路,也会进入这一状态。

三、PPP认证

PPP协议认证有PAP和CHAP两种方式。
如果采取PAP认证方式,在Link Establishment阶段中,一方会对另一方发送包含用户名和密码的Authentication Request报文,另一方会在自己的用户名密码列表中查找是否存在该用户名和密码。如果认证通过,则会向对方发送一个Authentication ACK报文,如果认证不通过,则会向对方发送一个Authentication Nak报文。而到了Authentication阶段,验证方和被验证方会交互重复上述过程。
注意,如果采用PAP认证方式,认证的用户名和口令都是采用明文传输,在安全性上存在一定的风险。
与PAP方式相比,CHAP认证方式大体与之相同,但是CHAP认证方式会将用户名和密码以密文的形式包含在报文中,因此在安全性方面有很大的提升。
原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200/article/details/118582795

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

一文看懂PPP协议——PPP协议简介 的相关文章

  • c++STL标准库排序函数std::sort使用

    Qt系列文章目录 文章目录 Qt系列文章目录 前言 一 错误原因 二 修改后的代码 前言 C sort 排序函数 C STL 标准库中的 sort 函数 本质就是一个模板函数 正如表 1 中描述的 该函数专门用来对容器或普通数组中指定范围内

随机推荐

  • js json格式数组自定义key

    封装对象数组的key进行自定义的方法 changeKey arr key let newArr arr forEach item index gt let newObj for var i 0 i lt key length i newOb
  • python 学习笔记 opencv 安装

    OpenCV opencv 是一个跨平台的计算机视觉库 有英特尔公司发起并参与开发 在以下领域应用广泛 增强现实 人脸识别 手势识别 人机交互 动作识别 运动跟踪 物体识别 图像分区 机器人 Windows python下的安装 下载地址
  • VSCode下载和安装教程(超详细)以及解决VSCode下载速度特别慢的问题

    文章目录 1 引言 2 下载VSCode 3 解决VSCode下载速度特别慢 4 安装VSCode 1 引言 今天用WebStorm运行前端代码时 发现不太好打断点 于是 打算改用VSCode来运行前端代码 但前提是要安装VSCode 如下
  • SAM-Med2D:打破自然图像与医学图像的领域鸿沟,医疗版 SAM 开源了!

    关注公众号 发现CV技术之美 本文转载自书生 OpenGVLab 由于医学图像和自然图像之间存在较大差异 以及缺少大规模医学图像基准数据集 这是导致AI在医学领域进展缓慢的原因之一 构建大规模基准数据集和可靠的基线模型 能够推动AI在医疗领
  • 关于Python的定义

    Python是一种高级编程语言 它被广泛应用于人工智能 大数据分析 网络编程 游戏开发等领域 Python的语法简单易学 代码可读性较高 使用简便 成为初学者入门的优秀选择 Python具有丰富的第三方库 可以轻松地实现各种功能 其中最为出
  • 最新让机器“看见”—计算机视觉原理及实战-从OpenCV基础到深度学习实战

    课程目标让机器 看见 计算机视觉原理及实战 从OpenCV基础到深度学习实战课程简介课程由浅入深 图文并茂 在讲述概念的同时注重和实际系统结合 为快速上手并深入研究无人驾驶 智能机器人 人机交互 医疗等行业应用奠定坚实基础 下载地址 百度网
  • 可见光与红外双模态图像融合行人检测

    摘要 由于传统融合检测方法未能较好地解决双模态融合中冗余信息带来的误检 漏检问题 为了更有效地利用双模态信息 提出一种光照感知和卷积块注意模块相结合的双模态特征融合行人检测网络 IWFC Net 首先根据可见光图像提取光照感知值 将其作为融
  • STM32------ADC基本原理

    目录 一 ADC 1 ADC简介 2 stm32f10x ADC特点 3 stm32f10x 大容量芯片带3个ADC控制器 4 ADC通道和引脚对应关系 5 ADC引脚 6 ADC框图 7 STM32F1的ADC的各个通道可以单次 连续 扫
  • Stable Diffusion Prompt用法

    Stable Diffusion可以根据你输入的提示词 prompt 来绘制出想象中的画面 1 正向提示词 Prompt 提高图像质量的prompt prompt 用途 HDR UHD 64K HDR UHD 4K 8K和64K 这样的质量
  • TinyMCE的上传文件的功能

    记录一下TinyMCE的上传文件的功能 用Base64上传图片 if meta filetype image var input document createElement input input setAttribute type fi
  • windows下安装使用git-lfs克隆大文件

    下载安装git lfs工具 首先去git lfs这里 下载相应平台的工具 我下载的windows版本 非安装版本 直接配置到系统环境变量里 执行以下命令验证是否成功 git lfs install 克隆数据集 这样自动会下载里边的大文件 g
  • 在vivado中使用tcl脚本(UG894)

    本文源自UG894 主要介绍如何在vivado中使用tcl脚本 1 vivado中如何获取tcl help vivado中任何自带的命令都可以通过 help 获取帮助信息 也可以直接输入 help 取得vivado命令合集 并通过 help
  • News Distribution(Codeforces 1167C) (并查集简单应用)

    并查集查询时间复杂度是O 1 合并时间复杂度才是O n 题意 n 人数 m 组数 m行 先输入k 表示这组有k个人 下面是k个人的编号 同组可以传递信息 问当第i个人是信息源时 有几个人知道信息 AC代码 include
  • 排序算法6-归并排序

    1 什么是归并排序 归并排序是建立在归并操作上的一种有效的排序算法 该算法是采用分治法 Divide and Conquer 的一个非常典型的应用 将已有序的子 序列合并 得到完全有序的序列 即先使每个子序列有序 再使子序列段间有序 若将两
  • 电路端接电阻与信号完整性

    信号沿着传输线传播时 每时每刻阻抗都可能发生变化 例如 PCB走线的宽度或者厚度发生变化 PCB过孔 PCB转角 PCB上的电阻 电容 电感 接插件和器件引脚都会产生阻抗变化 若走线的瞬时阻抗 只和传输线的横截面积和材质特性有关 发生变化
  • keil使用arm_math文件报错

    引入该文件后编译报错 application arm math h 306 error 35 error directive Define according the used Cortex cor 添加如下全局宏定义 USE HAL DR
  • 如何将任意数据保存到以太坊区块链?

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 虽然有北大博士讲 95 的区块链项目都没有前途 但我们知道区块链还是有它的优势 比如数据的不可篡改性对于版权保护有相当大的意义 而地址的匿名性则有其他潜在的用途 那么 如何
  • TensorFlow、PyTorch 和 Keras

    1 可用的 RNN 类型 在寻找 NLP 问题的深度学习解决方案时 循环神经网络 RNN 是开发人员最流行的首选架构 因此 从这个角度来比较框架是有意义的 所有正在考虑的框架都具有允许我们创建简单 RNN及其更进化的变体的模块 门控循环单元
  • V4l2框架基础知识(二)

    V4L2对uvc USB video class 免驱usb设备的编程框架 主要用于采集USB摄像头 采集方式 打开视频设备 设置视频设备的属性 缩放 裁剪等 在linux编程中直接使用ioctl 函数对设备I O通道进行管理 V4L2操作
  • 一文看懂PPP协议——PPP协议简介

    今天给大家介绍一下PPP协议的相关内容 文章浅显易懂 特别适合0基础同学 本文主将主要从PPP概述 PPP链路建立过程和PPP认证三个角度对PPP协议进行讲解 一 PPP概述 PPP point to point协议 即点对点协议 是数据链