计算机网络 (17)点对点协议PPP

news/2025/1/9 3:54:33/

一、PPP协议的基本概念

       PPP协议最初设计是为两个对等节点之间的IP流量传输提供一种封装协议,它替代了原来非标准的第二层协议(如SLIP)。在TCP/IP协议集中,PPP是一种用来同步调制连接的数据链路层协议(OSI模式中的第二层)。除了IP以外,PPP还可以携带其他协议,包括DECnet和Novell的Internet网包交换(IPX)等。

二、PPP协议的构成

  1. 链路控制协议(LCP):用于建立、配置、测试和管理数据链路连接。它支持同步和异步线路,也支持面向字节的和面向位的编码方式。
  2. 网络控制协议(NCP):协商该链路上所传输的数据包格式与类型,建立、配置不同的网络层协议。对于所使用的每个网络层协议,PPP都分别使用独立的NCP来连接。
  3. PPP帧:是数据链路层中的基本传输单位,用于在物理介质上传输数据。PPP帧由标头、数据和尾部组成,其中标头包含控制信息和地址信息,数据部分包含传输的数据,尾部包含错误检测和校验信息。

三、PPP协议的帧格式

  1. 标志字段(F):取值为十六进制的0x7E,是PPP帧的定界符,用于标识一帧的开始和结束。
  2. 地址字段(A):取值为十六进制的FF,实际上并不起作用,但在帧格式中保留。
  3. 控制字段(C):取值为十六进制0x03,同样不携带PPP帧的信息。
  4. 协议字段:指明了帧的数据部分应该交给哪个协议处理。
  5. 信息字段:包含实际传输的数据。
  6. 帧检验序列(FCS)字段:用于对信息域进行校验,确保数据的完整性。

四、PPP协议的工作机制

  1. 建立连接:当检测到调制解调器的载波信号并建立物理层连接后,PPP进入链路的建立状态。LCP开始协商一些配置选项(如最大帧长、鉴别协议等),若协商成功,则进入鉴别状态;失败则退回到静止状态。
  2. 鉴别:在鉴别状态下,如果无需鉴别或者鉴别成功,则进入网络状态;如果鉴别失败,则进入终止状态。
  3. 网络层配置:进入网络状态后,进行NCP配置。PPP链路的两端互相交换网络层特定的NCP分组,以配置网络层参数(如分配IP地址)。
  4. 数据传输:配置完成后,PPP链路进入打开状态,此时可以进行数据传输。
  5. 终止连接:当链路故障或链路的一端发出终止请求时,PPP进入终止状态,释放所有资源并回到静止状态。

五、PPP协议的特点与应用

  1. 特点

    • PPP具有动态分配IP地址的能力。
    • 支持多种网络协议,如TCP/IP、NetBEUI、NWLINK等。
    • 具有错误检测能力,但不具备纠错能力。
    • 无重传机制,网络开销小,速度快。
    • 具有身份验证功能。
  2. 应用

    • 宽带接入:如DSL和光纤接入,用户通过调制解调器或光纤调制解调器使用PPP协议与互联网服务提供商建立连接。
    • 远程访问:允许员工或用户通过拨号或VPN连接到内部网络。
    • 移动通信:在移动设备和运营商的网络之间建立连接,实现数据传输和互联网访问。
    • 无线通信:应用于一些无线通信技术中,如Wi-Fi和蜂窝网络。
    • 网络路由:在网络路由器之间建立连接时,用于传输数据和进行路由协商。
    • 专线连接:用于实现安全、可靠的点对点数据传输。

 结语    

旦愿美好在

岁月常如新

!!!


http://www.ppmy.cn/news/1561134.html

相关文章

【设计模式-1】软件设计模式概述

1. 软件设计模式的产生背景 “设计模式”这个术语最初并不是出现在软件设计中,而是被用于建筑领域的设计中。 1977 年,美国著名建筑大师、加利福尼亚大学伯克利分校环境结构中心主任克里斯托夫亚历山大(Christopher Alexander)在…

我用AI学Android Jetpack Compose之Kotlin篇

前面我们大致了解了Compose项目的结构,基本代码,构建脚本等,这次我们来了解Kotlin的基本语法,答案 来自 通义千问 文章目录 1.我要学习Compose开发,请给我科普一下基本的Kotlin知识1. **变量声明**2. **函数定义**3. *…

微记录-Linux字符设备的write函数如何避免文件系统重复调用?

背景 linux字符设备的fops实现read write的时候,尤其是write,因为会指定写入的总长度,那么如果如果驱动中单次write最大个数小于需求len的时候,文件系统就会多次调用到write。他是根据wirte函数的返回值来判断的。如果返回值不是…

封装/前线修饰符/Idea项目结构/package/impore

目录 1. 封装的情景引入 2. 封装的体现 3. 权限修饰符 4. Idea 项目结构 5. package 关键字 6. import 关键字 7. 练习 程序设计:高内聚,低耦合; 高内聚:将类的内部操作“隐藏”起来,不需要外界干涉&#xff1b…

Laravel操作ElasticSearch

在Laravel项目中操作ElasticSearch可以通过以下步骤来实现,通常会借助相应的ElasticSearch客户端扩展包。 ### 安装ElasticSearch客户端包 在Laravel项目中,常用的是 elasticsearch/elasticsearch 这个PHP客户端库来与ElasticSearch进行交互&#xff0c…

【MATLAB】【Simulink仿真】向模型中添加自定义子系统

一、子系统的创建 1、启动Simulink,选择【新建】——【空白子系统】——【创建子系统】 2、选择【浏览组件库】,创建使能子系统。 3、保存至当前工作目录。 二、建立模型仿真 1、启动Simulink,选择【新建】——【空白子系统】——【创建子系…

【文献精读笔记】Explainability for Large Language Models: A Survey (大语言模型的可解释性综述)(五)

****非斜体正文为原文献内容(也包含笔者的补充),灰色块中是对文章细节的进一步详细解释! 五、 解释评估(Explanation Evaluation) 在前面的章节中,我们介绍了不同的解释技术和它们的用途&#…

oceanbase 集群启动操作

1.启动ocp服务(一般启动操作系统会自动启动ocp) 1.1确认observer直接的时间同步 2.登录ocp重启observer 服务器ocp agent 2.1选择主机→需要重启的机器→重启ocp agent 2.2观察重启ocp agent任务运行情况 2.3确认主机状态为在线 2.4确认所有主机在线 3…