点对点协议PPP

简介: 点对点协议PPP

点对点协议PPP(Point-to-Point Protocol)是目前使用最广泛的点对点数据链路层协议


2c1bb3e40e224b32a50c5933264b1a75.png

PPP协议是因特网工程任务组IETF在1992年制定的。经过1993年和1994年的修订,现在的PPP协议已成为因特网的正式标准[RFC1661RFC1662]。


d9dbeb1461304edebecfe600e68cc95e.png


PPP协议为在点对点链路传输各种协议数据报提供了一个标准方法


主要由以下三部分构成:


对各种协议数据报的封装方法(封装成)

链路控制协议LCP                        用于建立、配置以及测试数据链路的连接

一套网络控制协议NCPs               其中的每一个协议支持不同的网络层协议


ef065fd72c6146c6be967a9f6e6804e0.png

帧格式


06f1e06440be4451832231428c1fa7e4.png


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

地址(Address)字段: 取值为0xFF,预留(目前没有什么作用)


控制(Control)字段: 取值为0x03,预留(目前没有什么作用)


协议 (Protocol)字段: 指明的数据部分送交哪个协议处理


取值0x0021表示:顿的数据部分为IP数据报


取值0xC021表示:顿的数据部分为LCP分组取值


0x8021表示:顿的数据部分为NCP分组


0f1d0444b343417cbd0ce1bfa8c6412b.png


帧检验序列 (Frame Check Sequence) 字段: CRC计算出的校验位

透明传输

647bfbfeb2ee455db3d1b870f0bbc444.png

透明传输 ->面向字节的异步链路采用插入转义字符的字节填充法


发送方的处理:

       出现的每一个7E (PPP的定界符) 字节转变成2字节序列 (7D,5E)

       出现的每一个7D (转义字符) 字节转变成2字节序列 (7D,5D)

       出现的每一个ASCII码控制字符数值小于0x20的字符),则在该字符前面插入一个7D字            节,同时将该字符的编码加上0x20

接收方的处理: 进行反变换即可恢复出原来的帧的数据部分


e47ddf6a0d474f448bd2e08c0f14c461.png

透明传输-->面向比特的同步链路采用插入比特0的比特填充法

b0eabc1a1e214160a5ebdf449eea7984.png

发送方的处理:
       对帧的数据部分进行扫描(一般由硬件实现)。只要发现5个连续的比特1,则立即填充1个比特0
接收方的处理:
       对帧的数据部分进行扫描(一般由硬件实现)。只要发现5个连续的比特1,就把其后的1个比特0删除

 e5242ebf4a0c4526806e476cd44f3400.png

de4ae57632504a628d6391fcd9b91fdb.png




相关文章
|
传感器 数据采集 供应链
港口智能化,我们这样做!
港口智能化,我们这样做!
761 0
港口智能化,我们这样做!
|
8月前
|
传感器 机器学习/深度学习 人工智能
AI种田有多猛?看它如何“统治”自动化农业!
AI种田有多猛?看它如何“统治”自动化农业!
321 8
|
机器学习/深度学习 数据采集 人工智能
《人工智能之高维数据降维算法:PCA与LDA深度剖析》
在人工智能与机器学习中,数据处理至关重要。高维数据带来丰富信息的同时,也引入了计算复杂度高、过拟合风险等问题。降维算法如主成分分析(PCA)和线性判别分析(LDA)应运而生。PCA通过最大方差理论将数据投影到低维空间,保留关键信息;LDA则利用类别标签信息,使同类样本聚集、异类样本分离。两者分别适用于无监督和有监督场景,广泛应用于数据压缩、特征提取及分类任务,提升模型性能。
439 2
|
运维 程序员 项目管理
一份【软件工程】的学习指南已到达,请注意查收!!
该文章提供了一份软件工程的学习指南,包括学习软件工程的重要性、基本内容概览以及建议的学习方法和路径。
一份【软件工程】的学习指南已到达,请注意查收!!
|
安全 编译器 C语言
C语言常量的定义与使用的注意点
在 C 语言中,常量是在程序运行期间值不变的量,通过字面值、`#define` 或 `const` 关键字定义。字面常量直接在代码中表示固定值,如整数 `100`、浮点数 `3.14`、字符 `'A'` 和字符串 `"Hello, World!"`;`#define` 用于定义宏,如 `#define PI 3.14159`;`const` 则定义不可变变量,如 `const int daysInWeek = 7`。常量可用于数组大小、循环边界等场景,并能提升代码的可读性和可维护性。使用时需注意作用域、类型安全和命名,避免直接使用数字(魔法数字)。
|
编解码 人工智能 测试技术
ShareGPT4V作者团队又一力作!百万高质量视频-字幕数据助力社区提升多模态大模型视频理解及生成能力
【6月更文挑战第30天】ShareGPT4Video`团队推出百万视频-字幕数据集,强化多模态模型的视频理解和生成。包括40K视频的`ShareGPT4Video`数据集、`ShareCaptioner-Video`模型和8B参数的`ShareGPT4Video-8B`模型,后者在视频基准测试中取得最佳效果。差异化字幕生成策略解决了传统方法的局限。尽管取得突破,但数据规模和模型泛化仍是未来挑战。[论文链接](https://arxiv.org/abs/2406.04325v1)
447 1
|
NoSQL Java Redis
如何在Spring Boot中实现分布式锁
如何在Spring Boot中实现分布式锁
|
安全 算法 测试技术
深入理解PHP 7与PHP 8的性能差异
在探讨PHP版本间的性能差异时,我们通常关注于代码执行速度和资源消耗。本文将基于最新的基准测试和实际应用场景,对比PHP 7和PHP 8的性能表现,揭示二者之间的细微差别及其对开发实践的影响。通过分析具体数据,我们将提供开发者在面对版本选择时的科学依据,并探讨如何根据项目需求作出合理的决策。
671 0
|
应用服务中间件 缓存 nginx
消除单点,一篇搞定 | 架构设计篇
系统架构中,为什么会存在单点?思路比结论重要。
5886 1

热门文章

最新文章