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

一、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.mzph.cn/web/64852.shtml

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

相关文章

Tailwind CSS 实战:表单设计与验证实现

在 Web 开发中,表单就像是一位尽职的接待员,负责收集和验证用户的输入信息。记得在一个企业级项目中,我们通过重新设计表单交互流程,将表单的完成率提升了 42%。今天,我想和大家分享如何使用 Tailwind CSS 打造一个既美观又实用的表单系统。 设计理念 设计表单就像是在设计一…

信息系统项目管理师——第8章章 项目整合管理 笔记

8 项目整合管理(最后反过来看) 项目整合过程:①制定项目章程(启动过程)、②制订项目管理计划(规划过程)、③指导和管理项目工作、管理项目知识(执行过程)、④监控项目工…

MLP、CNN、Transformer 的区别解析

亲爱的小伙伴们😘,在求知的漫漫旅途中,若你对深度学习的奥秘、Java 与 Python 的奇妙世界,亦或是读研论文的撰写攻略有所探寻🧐,那不妨给我一个小小的关注吧🥰。我会精心筹备,在未来…

WebRTC线程的启动与运行

WebRTC线程运行的基本逻辑: while(true) {…Get(&msg, …);…Dispatch(&msg);… }Dispatch(Message *pmsg) {…pmsg->handler->OnMessage(pmsg);… }在执行函数内部,就是一个while死循环,只做两件事,从队列里Get取…

CSS 学习之 padding 与图形绘制

padding 属性和 background-clip 属性配合,可以在有限的标签下实现一些 CSS 图形绘制效果,我这里举两个小例子,重在展示可行性。 例 1:不使用伪元素,仅一层标签实现大队长的“三道杠”分类图标效果。此效果在移动端比较常见&…

yolov5核查数据标注漏报和误报

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、误报二、漏报三、源码总结 前言 本文主要用于记录数据标注和模型预测之间的漏报和误报思想及其源码 提示:以下是本篇文章正文内容,…

UnityRenderStreaming使用记录(四)

测试把UnityRenderStreaming部署在docker,剧透一下,嘎了…… 当然webserver运行的妥妥的 那么打包出的程序运行log Mono path[0] /home/unity/Broadcast/Broadcast_Data/Managed Mono config path /home/unity/Broadcast/Broadcast_Data/MonoBleedingE…

salesforce addMonths()的问题

如果使用 Salesforce 的 addMonths(1) 方法,将 1月30日 或 1月31日 加一个月,都会得到 2月28日(或 2月29日,如果是闰年)。这是因为 Salesforce 的 addMonths 方法在跨月份时会自动调整日期,确保结果是有效日…

3. C语言 数据类型

本章目录: 前言:C语言中的数据类型分类1. 基本数据类型1.1 整数类型1.2 浮点类型1.3 字符型常量1.4 字符串常量 2. 枚举类型3. void 类型void类型的使用示例: 4. 类型转换4.1 隐式类型转换4.2 显式类型转换类型转换的注意事项 5. 小结 前言&a…

JUnit注解,枚举

一、JUnit注解(Annotations) JUnit 是 Java 中用于编写和运行单元测试的框架。JUnit 提供了许多注解,用于控制测试的执行顺序、测试生命周期、断言结果等。以下是一些常用的 JUnit 注解及其作用: 1. Test 用于标记一个方法是测…

富芮坤FR800X系列之软件开发工具链(如IDE、编译器、调试器等)

文章目录 一、IDE(集成开发环境)二、编译器三、调试器四、其他辅助工具五、小结 FR800x系列作为一款低功耗蓝牙芯片,其软件开发工具链对于开发者来说至关重要。以下是对FR800x软件开发工具链的详细介绍,包括IDE(集成开…

数据赋能电商:API如何助力品牌成长

在数字时代,数据已成为电商品牌发展的核心驱动力。API(应用程序编程接口)作为数据交互的桥梁,不仅促进了数据的高效流通,更为电商品牌带来了前所未有的增长机遇。本文将深入探讨API如何助力电商品牌实现数据赋能&#…

「Java 数据结构全面解读」:从基础到进阶的实战指南

「Java 数据结构全面解读」:从基础到进阶的实战指南 数据结构是程序设计中的核心部分,用于组织和管理数据。Java 提供了丰富的集合框架和工具类,涵盖了常见的数据结构如数组、链表、栈、队列和树等。本文将系统性地介绍这些数据结构的概念、…

LeetCode - 初级算法 数组(旋转数组)

旋转数组 这篇文章讨论如何通过编程实现数组元素的旋转操作。 免责声明:本文来源于个人知识与公开资料,仅用于学术交流。 描述 给定一个整数数组 nums,将数组中的元素向右轮转 k 个位置,其中 k 是非负数。 示例: 输入: nums = [1,2,3,

c#集合详解-Dictionary、List、Queue、Stack等

目录 一,非泛型集合 1,ArrayList (1)创建和初始化ArrayList() (2)常用方法 ①Add(value) ②AddRange(value) ③Insert(index,value) ④Remove(value) ⑤RemoveAt(index) ⑥clear() ⑦Contains(v…

记一次网闸部署经历

1.在成功获取某大厂伟思网闸设备,并与客户就现有网络架构(包括防火墙与交换机)进行了详尽的沟通与评估后,我们团队精心构思并提出了一个创新的实施方案——采用透明网桥模式。这一模式以其独特的优势,即无需对客户现有…

SpringCloud(一)--SpringCloud简介

一. 引言 ​ 在微服务架构日益盛行的今天,Spring Cloud凭借其简单易用、功能强大的特性,成为了众多开发者的首选。本文仅为学习所用,联系侵删。 二. SpringCloud概述 2.1 定义 ​ Spring Cloud是一系列框架的有序集合,它巧妙地…

SQLALchemy如何将SQL语句编译为特定数据库方言

最近在一个使用fastapitortoise-orm的项目中,需要将orm的语句编译成特定数据库方言,但是查询了官方文档及一些资料却找不到合适的方法论😔,于是乎我就把目光放到了sqlalchemy身上,东找西找给我找着了。话不多说&#x…

庐山派K230学习日记2 MicroPython基础

MicroPython文档: https://docs.micropython.org/ MicroPython是编程语言 Python3 的精简高效实现,语法和 Python3 保持一致,但只实现了 Python 标准库的一小部分,并且经过优化,适用于物联网 (IoT)、消费电子和嵌入式…

《计算机组成及汇编语言原理》阅读笔记:p177-p177

《计算机组成及汇编语言原理》学习第 13 天,p177-p177 总结,总计 1 页。 一、技术总结 1.real mode A programming model where the program has access to the entire capability of the machine, bypassing security and memory management. Useful…