【计算机网络】第三章——点对点协议PPP

个人主页:兜里有颗棉花糖

欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 兜里有颗棉花糖 原创

收录于专栏【计算机网络

本专栏旨在分享学习计算机网络的一点学习笔记,欢迎大家在评论区交流讨论💌

目录

一、什么是点对点协议PPP

一般来说,用户要想接入因特网的话,都是要通过连接到某个因特网服务提供者即lsp(比如三大运营商),这些lsp已经从因特网管理机构申请到了一些IP地址。用户计算机只有获取到lsp所分配的合法IP地址后,才能成为因特网上的主机

用户计算机与lsp进行通信时,所使用的数据链路层协议通常就是PPP协议。

这里需要说明的是,在1999年公布的在以太网上运行的PPP协议(PPP over Ethernet,简称为PPPoE),它使得lsp可以通过DSL、电路调制解调器、以太网等宽带接入技术以以太网接口的形式为用户提供接入服务。

另外,点对点协议PPP也广泛应用于广域网路由器之间的专用线路。

二、PPP协议的构成

从网络体系结构的角度来看 :PPP是数据链路层的协议 ,它将上层交付下来的协议数据单元封装成PPP帧。为了支持不同的网路层协议,PPP协议包含了一套网络控制协议NCPs,其中的每一个协议支持不同的网络层协议,例如TCP/IP协议中的IP、Novell Netware网络操作系统中的IPX,苹果公司的AppleTalk等。链路控制层协议LCP用于建立、配置以及测试数据链路的连接。PPP协议能够在多种类型的点对点链路上运行,例如面向字节的异步链路,面向比特的同步链路。

三、PPP协议的帧格式

帧首部由4个字段构成,帧尾部由两个字段构成。各字段的长度以及帧的数据部分的最大长度如下图所示:

  • 帧首部和帧尾部的标志字段(Flag)是PPP帧的定界符,取值为十六进制的0x7E。
  • 帧首部的地址字段(Address)取值为十六进制的FF。(预留,目前看没什么用)
  • 控制(Control)字段:取值为十六进制0x03,最初曾考虑到这两个字段的值进行其它定义,但是事到如今也没有给出,故这两个字段实际上并没有携带PPP帧的信息。
  • 协议(Protocol)字段:帧首部中的协议字段指明了帧的数据部分(即ip数据报)应该交给哪个协议进行处理。当协议字段取值为十六进制0x0021字段时,
  • 帧尾部中的帧检验序列FCS字段,其值是使用循环冗余检验CRC算出的校验位,用户检查PPP帧是否存在误码。

通过上面我们可以知道地址字段和控制字段实际上并没有携带PPP帧的信息。帧首部的协议字段指明了帧的数据部分应该交给哪个协议处理。当协议字段取值为十六进制的0x0021时,PPP帧的数据部分就是IP数据报(如下图),当协议字段取值为十六进制0xC021时,PPP帧的数据部分就是链路控制协议LCP的分组 ;当协议字段取值为十六进制的0x8021时,PPP帧的数据部分就是网络控制协议NCP的分组。

四、PPP协议是如何解决透明传输问题的

当PPP帧的数据部分出现帧首和帧尾中的标志字段时,如果不采取措施的话则会造成接收方对PPP帧是否结束的误判。标志字段(F是PPP帧的定界符,其值尾0x7E,即01111110)是PPP帧的定界符。

PPP协议实现透明传输的方法取决于所使用的链路类型(如下图):

  • 如果是面向字节的异步链路则采用字节填充法(即插入转义字符)。
  • 如果是面向比特的同步链路则采用比特填充法,即插入比特0。

现在我们通过举例说明字节填充法,即以字节7E作为PPP帧的定界符。以字节为单位讨论问题。

字节填充法

比特填充法

五、PPP协议是如何进行差错检测的

六、PPP协议的工作状态

我们以拨号为例,简单介绍一下PPP协议的工作状态:

PPP链路的开始和结束状态都是静止状态,这时并不存在物理层的连接。当检测到调制解调器的载波信号并建立物理层连接后,PPP就进入链路的建立状态。

这时,链路控制协议LCP开始协商(协商的配置选项包括最大帧长、鉴别协议等)一些配置选项,若协商成功,则进入鉴别状态,失败则退回到静止状态。

进入鉴别状态后,如果无需鉴别或者鉴别成功则进入网络状态;如果鉴别失败则进入终止状态。

进入网络状态后进行NPC配置(PPP链路的两端互相交换网络层特定的NCP分组。如果在PPP链路上运行的是IP,则使用IP控制协议IPCP来对PPP链路的每一端配置IP模块(如分配IP地址)。),配置完成则进入打开状态。只要链路处于打开状态就可以进行通信。

当链路故障或链路的一端发出终止请求时,就进入终止状态,当载波停止后就回到静止状态。

七、小结

本文到这里就结束了,希望友友们可以支持一下一键三连哈。嗯,就到这里吧,再见啦友友们!!!

相关推荐
.Ayang1 小时前
tomcat 后台部署 war 包 getshell
java·计算机网络·安全·web安全·网络安全·tomcat·网络攻击模型
云计算DevOps-韩老师3 小时前
【网络云计算】2024第48周-每日【2024/11/20】小测-理论题-计算机网络概述
计算机网络·网络设备
Hello Dam3 小时前
【计算机网络】物理层
计算机网络·物理层
_Power_Y5 小时前
计算机网络:应用层知识点概述及习题
计算机网络
co0t5 小时前
计算机网络(14)ip地址超详解
服务器·tcp/ip·计算机网络
C++忠实粉丝5 小时前
计算机网络socket编程(3)_UDP网络编程实现简单聊天室
linux·网络·c++·网络协议·计算机网络·udp
吃土少女古拉拉7 小时前
什么是计算机网络
计算机网络·学习笔记
C++忠实粉丝8 小时前
计算机网络socket编程(4)_TCP socket API 详解
网络·数据结构·c++·网络协议·tcp/ip·计算机网络·算法
->yjy19 小时前
计算机网络(第一章)
网络·计算机网络·php
摘星星ʕ•̫͡•ʔ20 小时前
计算机网络 第三章:数据链路层(关于争用期的超详细内容)
网络·计算机网络