计算机网络 第三章: 点对点协议

ops/2025/1/16 2:47:09/

文章目录

  • 点对点协议PPP概述
  • PPP的帧格式
  • PPP桢的透明传输
  • PPP帧的差错检测
  • PPP的工作状态

在这里插入图片描述


点对点协议PPP概述

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

点对点协议PPP是因特网工程任务组(Internet Engineering Task Force,IETF)于1992年制定的。经过多次修订,目前PPP已成为因特网的正式标准[RFC1661,RFC1662]。

点对点协议PPP主要有两种应用(下图):

在这里插入图片描述


网络体系结构的角度看点对点协议PPP的组成(下图):

在这里插入图片描述


PPP的帧格式

PPP的帧格式如下图:
在这里插入图片描述
标志(Flag)字段:PPP帧的定界符,取值为0x7E。
地址(Address)字段:取值为0xFF,预留(目前没有什么作用)。
控制(Control)字段:取值为0x03,预留(目前没有什么作用)。
协议(Protocol)字段:其值用来指明帧的数据载荷应向上交付给哪个协议处理。
在这里插入图片描述帧检验序列(Frame Check Sequence,FCS)字段:其值是使用循环冗余校验CRC计算出的检错码。

PPP桢的透明传输

在这里插入图片描述

  • 面向字节的异步链路使用字节填充来实现透明传输[RFC1662]
    在这里插入图片描述
    发送方的处理
    (1)将数据载荷中出现的每一个 0x7E 减去0x20(相当于异或0x20),然后在其前面插入转义字符0x7D。
    (2)若数据载荷中原来就含有0x7D,则把每一个0x7D减去0x20,然后在其前面插入转义字符0x7D。
    (3)将数据载荷中出现的每一个ASCII码控制字符(即数值小于0x20的字符),加上0x20(相当于异或0x20,将其转换成非控制字符),然后在其前面插入转义字符0x7D。

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


  • 面向比特的同步链路使用零比特填充来实现透明传输
    在这里插入图片描述
    发送方的处理
    对帧的数据载荷进行扫描(一般由硬件完成),每出现5个连续的比特1,则在其后填充一个比特0

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


PPP帧的差错检测

在这里插入图片描述

帧检验序列FCS字段:其值是使用循环冗余校验CRC计算出的检错码。

CRC采用的生成多项式为 CRC−CCITT=X^16+X^12+X^5+1

接收方每收到一个PPP帧,就进行CRC检验。若CRC检验正确,就收下这个帧;否则,就丢弃这个帧。

使用PPP的数据链路层,向上提供的是不可靠数据传输服务

PPP的工作状态

以用户主机拨号接入因特网服务提供者ISP的拨号服务器的过程为例

在这里插入图片描述

‌PPP协议的工作状态有六种‌,分别是链路静止、链路建立、鉴别、网络层协议、链路打开、链路终止。这些状态共同构成了PPP协议的状态转换图,确保用户与ISP之间能够建立稳定可靠的通信连接。

‌链路静止‌:这是PPP协议的初始状态,表示链路没有被使用,物理层活动载体,链路处于静默状态。
‌链路建立‌:当其中一端要进行通信时,将进入建立连接阶段,建立链路层的LCP连接;此阶段双方进行协商,确保双方对数据链路层的参数达成一致。
‌鉴别‌:在链路建立之后,进行身份鉴别,确保通信双方的身份真实性。
网络层协议‌:在鉴别成功后,进入网络层协议状态,此时双方开始交换网络层控制分组,如IP地址等,以便双方能够正确地进行网络层通信。
‌链路打开‌:当网络层配置完毕后,链路就进入可进行数据通信的“链路打开”状态。链路的两个PPP端点可以彼此向对方发送分组。
‌链路终止‌:当通信结束或出现错误时,进入链路终止状态,释放资源,准备下一次通信或进入链路静止状态。
通过这些状态的转换,PPP协议确保了用户与ISP之间能够建立起稳定可靠的通信连接,并能够在需要时进行身份验证和网络配置,从而实现了高效的数据传输和服务‌.






http://www.ppmy.cn/ops/109653.html

相关文章

Python如何爬取post请求头的数据

🏆本文收录于《CSDN问答解惑-专业版》专栏,主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案,希望能够助你一臂之力,帮你早日登顶实现财富自由🚀;同时,欢迎大家关注&&收…

开发中的网络问题逻辑推理分析

基于TCP/IP的逻辑推理,大部分软件从业人员都不是很懂,导致很多问题都被误认为诡异问题。有些人是惧怕TCP/IP网络书籍中的复杂知识内容,有的是被wireshark[1]显示的深红色内容所干扰。 经典案例1: 例如有一个DBA遇到了性能问题&a…

vs2019成功连接数据库mysql

②在vs2019中创建新项目,注意x64 ③ 右击项目打开属性 ④添加include路径 ⑤添加lib路径 点击确定后点击应用 ⑥ 点击全部确定 ⑦ ⑧启动mysql 进入数据库: 在数据库中创建student的表 ⑨在va2019中输入下面代码测试 注意:密码换成自己…

零基础转行自学大模型路线规划(附快速学习路线图)

每一波浪潮的到来,都意味一片无人占领的蓝海,也意味着众多新成长起来的巨头,还意味着什么?大量的技术人员需求,供不应求的开发市场,以及从业者的高薪与众多的机会。 我们最常做的事情是目送着上一次浪潮的…

c++修炼之路之AVL树与红黑树

目录 一:AVL树 1.AVL树的概念 2.AVL树插入数据后平衡因子及更新的情况 3.AVL树节点的定义 4.AVL树的插入及旋转 二:红黑树 1.红黑树的概念及性质 2.红黑树节点的定义 3.红黑树的插入操作情况 4.红黑树与AVL树的比较 接下来的日子会顺顺利利…

【AbMole】凯氏定氮法测定氨基酸含量

凯氏定氮法的原理是基于氨的定量反应,其中有机物样品中的氮通过消化和蒸馏步骤转化为氨气,并通过滴定进行量化测定。 由于氮在许多生物和环境样品中广泛存在,凯氏定氮法成为测定样品中氮含量的常用方法。往样品中加入浓硫酸和催化剂&#xf…

HarmonyOS】ArkTS学习之基于TextTimer的简易计时器的elapsedTime最小时间单位问题

本文旨在纪录自己对TextTimer使用过程的疑惑问题 我在查看教程时候,发现很多博客在onTimer(event: (utc: number, elapsedTime: number) > void) 这里提到elapsedTime:计时器经过的时间,单位为毫秒。我不清楚是否为版本问题。 在我查看ver…

Java项目: 基于SpringBoot+mybatis+maven大学生就业招聘系统(含源码+数据库+毕业论文)

一、项目简介 本项目是一套基于SpringBootmybatismaven大学生就业招聘系统 包含:项目源码、数据库脚本等,该项目附带全部源码可作为毕设使用。 项目都经过严格调试,eclipse或者idea 确保可以运行! 该系统功能完善、界面美观、操作…