PPP简介

news2024/11/28 0:53:39

介绍PPP特性的定义和目的。

定义

PPP(Point-to-Point Protocol)协议是一种点到点链路层协议,主要用于在全双工的同异步链路上进行点到点的数据传输。

目的

PPP协议是在串行线IP协议SLIP(Serial Line Internet Protocol)的基础上发展起来的。由于SLIP协议具有只支持异步传输方式、无协商过程(尤其不能协商如双方IP地址等网络层属性)、只能承载IP一种网络层报文等缺陷,在发展过程中,逐步被PPP协议所替代。

PPP协议有如下优点:

  • 对物理层而言,PPP既支持同步链路又支持异步链路,而X.25、FR(Frame Relay)等数据链路层协议仅支持同步链路,SLIP仅支持异步链路。
  • PPP协议具有良好的扩展性,例如,当需要在以太网链路上承载PPP协议时,PPP可以扩展为PPPoE。
  • 提供LCP(Link Control Protocol)协议,用于各种链路层参数的协商。
  • 提供各种NCP(Network Control Protocol)协议(如IPCP、IPXCP),用于各网络层参数的协商,更好地支持了网络层协议。
  • 提供认证协议CHAP(Challenge-Handshake Authentication Protocol)、PAP(Password Authentication Protocol),更好的保证了网络的安全性。
  • 无重传机制,网络开销小,速度快。

PPP报文格式

PPP的基本构架

PPP协议处于TCP/IP协议栈的数据链路层,主要用在支持全双工的同异步链路上,进行点到点之间的数据传输。

图1 PPP在协议栈中的位置

PPP主要由三类协议族组成:

  • 链路控制协议族(Link Control Protocol),主要用来建立、拆除和监控PPP数据链路。

  • 网络层控制协议族(Network Control Protocol),主要用来协商在该数据链路上所传输的数据包的格式与类型。

  • 扩展协议族CHAP(Challenge-Handshake Authentication Protocol)和PAP(Password Authentication Protocol),主要用于网络安全方面的验证。

PPP报文封装的帧格式

PPP报文封装格式如图2所示。

图2 PPP报文格式

各字段的含义如下:

  • Flag域

    Flag域标识一个物理帧的起始和结束,该字节为0x7E。

  • Address域

    Address域可以唯一标识对端。PPP协议是被运用在点对点的链路上,因此,使用PPP协议互连的两个通信设备无须知道对方的数据链路层地址。按照协议的规定将该字节填充为全1的广播地址,对于PPP协议来说,该字段无实际意义。

  • Control域

    该字段默认值为0x03,表明为无序号帧,PPP默认没有采用序列号和确认应答来实现可靠传输。

    Address和Control域一起标识此报文为PPP报文,即PPP报文头为FF03。

  • Protocol域

    Protocol域可用来区分PPP数据帧中信息域所承载的数据包类型。

    Protocol域的内容必须依据ISO 3309的地址扩展机制所给出的规定。该机制规定协议域所填充的内容必须为奇数,也就是要求最低有效字节的最低有效位为“1”。

    如果当发送端发送的PPP数据帧的协议域字段不符合上述规定,接收端则会认为此数据帧是不可识别的。接收端向发送端发送一个Protocol-Reject报文,在该报文尾部将填充被拒绝报文的协议号。

    表1 常见的协议代码

    协议代码

    协议类型

    0021

    Internet Protocol

    002b

    Novell IPX

    002d

    Van Jacobson Compressed TCP/IP

    002f

    Van Jacobson Uncompressed TCP/IP

    8021

    Internet Protocol Control Protocol

    802b

    Novell IPX Control Protocol

    8031

    Bridging NC

    C021

    Link Control Protocol

    C023

    Password Authentication Protocol

    C223

    Challenge Handshake Authentication Protocol

  • Information域

    Information域最大长度是1500字节,其中包括填充域的内容。Information域的最大长度称为最大接收单元MRU(Maximum Receive Unit)。MRU的缺省值为1500字节,在实际应用当中可根据实际需要进行MRU的协商。

    如果Information域长度不足,可被填充,但不是必须的。如果填充则需通信双方的两端能辨认出填充信息和真正需要传送的信息,方可正常通信。

  • FCS域

    FCS域的功能主要对PPP数据帧传输的正确性进行检测。

    在数据帧中引入了一些传输的保证机制,会引入更多的开销,这样可能会增加应用层交互的延迟。

LCP报文封装的帧格式

LCP报文封装格式请参见图2。

在链路建立阶段,PPP协议通过LCP报文进行链路的建立和协商。此时LCP报文作为PPP的净载荷被封装在PPP数据帧的Information域中,PPP数据帧的协议域的值固定填充0xC021。

在链路建立阶段的整个过程中信息域的内容是变化的,它包括很多种类型的报文,所以这些报文也要通过相应的字段来区分。

  • Code域

    Code域的长度为一个字节,主要是用来标识LCP数据报文的类型。

    在链路建立阶段,接收方接收到LCP数据报文。当其Code域的值无效时,就会向对端发送一个LCP的代码拒绝报文(Code-Reject报文)。

    表2 常见code值

    code值

    报文类型

    0x01

    Configure-Request

    0x02

    Configure-Ack

    0x03

    Configure-Nak

    0x04

    Configure-Reject

    0x05

    Terminate-Request

    0x06

    Terminate-Ack

    0x07

    Code-Reject

    0x08

    Protocol-Reject

    0x09

    Echo-Request

    0x0A

    Echo-Reply

    0x0B

    Discard-Request

    0x0C

    Reserved

  • Identifier域

    Identifier域为1个字节,用来匹配请求和响应,当Identifier域值为非法时,该报文将被丢弃。

    通常一个配置请求报文的ID是从0x01开始逐步加1的。当对端接收到该配置请求报文后,无论使用何种报文回应对方,但必须要求回应报文中的ID要与接收报文中的ID一致。

  • Length域

    Length域的值就是该LCP报文的总字节数据。它是Code域、Identifier域、Length域和Data域四个域长度的总和。

    Length域所指示字节数之外的字节将被当作填充字节而忽略掉,而且该域的内容不能超过MRU的值。

  • Data域

    Data域所包含的是协商报文的内容,这个内容包含以下字段。

    • Type为协商选项类型。

    • Length为协商选项长度,它是指Data域的总长度,也就是包含Type、Length和Data。

    • Data为协商选项的详细信息。

    表3 常见Type中的协商类型值

    协商类型值

    协商报文类型

    0x01

    Maximum-Receive-Unit

    0x02

    Async-Control-Character-Map

    0x03

    Authentication-Protocol

    0x04

    Quality-Protocol

    0x05

    Magic-Number

    0x06

    RESERVED

    0x07

    Protocol-Field-Compression

    0x08

    Address-and-Control-Field-Compression

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

vue---echarts环形图

1、完整代码直接可以cv <template><div id"main1"></div> </template><script> import * as echarts from echarts; // import { mapState } from vuex; // import { Alarm_Device } from ../utils/api.js; export default {name: P…

视频美颜SDK与直播美颜工具的架构设计与性能优化

本篇文章&#xff0c;小编将深入讲解视频美颜SDK与直播美颜工具的架构设计&#xff0c;并分享一些性能优化的实践经验。 一、视频美颜SDK的架构设计 视频美颜SDK的核心在于其模块化的设计思路。通常&#xff0c;视频美颜SDK由以下几个主要模块组成&#xff1a; 1.图像预处理…

【Qt】常用控件QCalendarWidget的使用

常用控件QCalendarWidget的使用 QCalendarWidget表示一个日历 核心属性 属性说明 selectDate 当前选中的⽇期 minimumDate 最⼩⽇期 maximumDate 最⼤⽇期 firstDayOfWeek 每周的第⼀天(也就是⽇历的第⼀列) 是周⼏. gridVisible 是否显⽰表格的边框 selectionMode…

AWS不同类型的EC2实例分别适合哪些场景?

Amazon Web Services&#xff08;AWS&#xff09;的弹性计算云&#xff08;EC2&#xff09;提供了多种实例类型&#xff0c;以满足不同的应用需求和工作负载。了解不同类型的 EC2 实例及其适用场景&#xff0c;可以帮助用户更好地优化性能和控制成本。九河云和大家一起了解一下…

Selenium + Python 自动化测试21(PO+HTML+Mail)

我们的目标是&#xff1a;按照这一套资料学习下来&#xff0c;大家可以独立完成自动化测试的任务。 上一篇我们讨论了PO模式并举例说明了基本的思路&#xff0c;今天我们继续学习。 本篇文章我们综合一下之前学习的内容&#xff0c;如先将PO模式和我们生成HTML报告融合起来&am…

gewe微信聊天机器人搭建教程

由于自身在机器人方面滚爬多年&#xff0c;现在收藏几个宝藏机器人 推荐一下自己常用的机器人&#xff1a; 适合有技术开发的公司&#xff0c;可以自主开发所需要的功能&#xff01;十分齐全 测试问文档&#xff1a;开发前必读 - GeWe开放平台 有需要的兄弟可以看一下&…

笔记 6 : 彭老师课本第 5 章 ,举例分析 IIC 编程,以及开启虚拟机

&#xff08;60&#xff09; 首先看 IIC 的陀螺仪的底板图&#xff0c;board 图&#xff1a; 以 GYRO_INT 为例去查找其对应的控制器&#xff1a; 继续查找 I2C_SCL5 以及 I2C_SDA5 : MPU6050 以及比较复杂&#xff0c;需要查看其手册&#xff0c;全英文版&#xff1a; 再…

iOS开发进阶(二十二):Xcode* 离线安装 iOS Simulator

文章目录 一、前言二、模拟器安装 一、前言 Xcode 15 安装包的大小相比之前更小&#xff0c;因为除了 macOS 的 Components&#xff0c;其他都需要动态下载安装&#xff0c;否则提示 iOS 17 Simulator Not Installed。 如果不安装对应的运行模拟库&#xff0c;真机和模拟器无法…

深入理解Java虚拟机(线程安全)

文章收录在网站&#xff1a;http://hardyfish.top/ 文章收录在网站&#xff1a;http://hardyfish.top/ 文章收录在网站&#xff1a;http://hardyfish.top/ 文章收录在网站&#xff1a;http://hardyfish.top/ 线程安全 当多个线程同时访问一个对象时&#xff0c;如果不用考虑…

图片清晰修复有什么方法?归纳了三种

图片清晰修复有什么方法&#xff1f;图片清晰度的修复是一项常见的后期处理任务&#xff0c;尤其当原始照片由于各种原因如手抖、光线不足等出现模糊不清的情况时。下文将介绍三种不同的软件修复方法来帮助提高图片的清晰度和细节&#xff0c;让你的照片看起来更加生动和专业。…

Kubectl命令、初识pod、namespace

文章目录 一、Kubectl简介基础命令1.基本信息命令2.创建和更新资源命令3.删除资源命令4. 查看日志和调试命令5. 端口转发和复制文件命令6. 部署管理命令7. 伸缩命令8. 配置和上下文管理命令9.常用命令 二、Pod简介核心概念pod常见状态调度和初始化阶段容器创建和运行阶段异常状…

【案例52】oracle进程占用CPU100%分析实战

问题现象 Linux环境&#xff0c;数据库CPU一直处于100%。业务系统运行很慢。Top命令结果如下&#xff1a; 问题分析 方法1 根据上图中的oracle进程在操作系统对应的 PID号 : 如 6999,8100 等 通过下面的SQL,查询 select s.SQL_HASH_VALUE, s.SQL_ADDRESSfrom v$session …

PCB线宽和线间距设计PCB抄板

尽量加宽电源、地线宽度&#xff0c;最好是地线比电源线宽&#xff0c;它们的关系是&#xff1a;地线>电源线>信号线&#xff0c;通常信号线宽&#xff1a;0.2~0.3mm&#xff0c;最细宽度可达到0.05~0.07mm&#xff0c;电源线宽为1.2~2.5mm 一般宽度不宜小于0.2mm(8mi…

鹭鹰优化算法SBOA优化RBF神经网络的扩散速度实现多数入多输出数据预测,可以更改数据集(MATLAB代码)

一、鹭鹰优化算法介绍 鹭鹰优化算法&#xff08;Secretary Bird Optimization Algorithm, SBOA&#xff09;是一种新型的元启发式算法&#xff0c;它于2024年4月由Youfa Fu等人提出&#xff0c;并发表在SCI人工智能二区顶刊《Artificial Intelligence Review》上。该算法的灵感…

【机器学习】神经网络简介以及如何用Tensorflow构建一个简单的神经网络

引言 神经网络是一种模拟人脑神经元连接和工作方式的计算模型&#xff0c;它是深度学习的基础&#xff0c;并在机器学习领域中扮演着重要角色 文章目录 引言一、神经网络简介1.1 结构组成1.2 工作原理1.3 学习过程1.4 应用领域1.5 感知器1.6 功能特点1.7 总结 二、用Tensorflow…

根据 Web 服务器端的架构相关知识,将PHP改JAVA重构企业网站系统

目录 案例 【题目】 【问题 1】(7 分) 【问题 2】(8 分) 【问题 3】(10 分) 答案 【问题 1】解析 【问题 2】解析 【问题 3】解析 相关推荐 案例 阅读以下关于应用服务器的叙述&#xff0c;在答题纸上回答问题 1 至问题 3。 【题目】 某电子产品制造公司&#xff0c…

现有electron-quick-start把vue项目打包后的dist打包exe自定义最小化点击事件

1.preload.js里暴露接口 const { contextBridge, ipcRenderer } require(electron) contextBridge.exposeInMainWorld(electronAPI, {WindowMin: (data) > {ipcRenderer.send(window-min, data);} });2.vue文件处理 if(window.electronAPI){window.electronAPI.WindowMi…

12/24/30v/36转固定5v输出芯片

设计电源芯片的应用方案时&#xff0c;必须保证输入电压在DC6V至30V范围内&#xff0c;输出电压为固定的5V&#xff0c;同时电流需在200至300mA之间。在这种需求下&#xff0c;推荐使用AH1405芯片&#xff0c;因其输入电压范围宽&#xff08;6-40V&#xff09;&#xff0c;内置…

正则表达式——详解

正则表达式是什么&#xff1f; 正则表达式&#xff08;Regular Expression&#xff0c;通常简写为 regex、regexp 或 RE&#xff09;是一种强大的文本处理工具&#xff0c;用于描述一组字符串的模式。它可以用来匹配、查找、替换等操作&#xff0c;几乎所有现代编程语言都支持…

【精选】基于Python的热门旅游景点数据分析系统的设计与实现(南京旅游,北京旅游,旅游网站,全国各地旅游网站)

目录&#xff1a; 系统简介&#xff1a; 关键技术介绍 2.1 PYTHON语言简介 2.2 MySql数据库 2.3 DJANGO框架 2.4 Hadoop介绍 2.5 Scrapy介绍 2.6 B/S架构 系统总功能结构设计 系统详细实现&#xff1a; 6系统测试 系统测试的目的 软件测试过程 测试用例 为什么选择…