计算机网络: 点对点协议 PPP

简介: 计算机网络: 点对点协议 PPP


点对点协议 PPP

PPP 协议的特点

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

用户使用拨号电话线接入互联网时, 用户计算机和 ISP 进行通信时所使用的数据链路层协议就是 PPP 协议。

PPP 协议在1994年就已成为互联网的正式标准。

用户到 ISP 的链路使用 PPP 协议

PPP 协议应满足的需求

  • 简单 —— 这是首要的要求。
  • 封装成帧 —— 必须规定特殊的字符作为帧定界符。
  • 透明性 —— 必须保证数据传输的透明性。
  • 多种网络层协议 —— 能够在同一条物理链路上同时支持多种网络层协议。
  • 多种类型链路 —— 能够在多种类型的链路上运行。
  • 差错检测 —— 能够对接收端收到的帧进行检测,并立即丢弃有差错的帧。
  • 检测连接状态 —— 能够及时自动检测出链路是否处于正常工作状态。
  • 最大传送单元 —— 必须对每一种类型的点对点链路设置最大传送单元  MTU 的标准默认值,促进各种实现之间的互操作性。
  • 网络层地址协商 —— 必须提供一种机制使通信的两个网络层实体能够通过协商知道或能够配置彼此的网络层地址。
  • 数据压缩协商 —— 必须提供一种方法来协商使用数据压缩算法。

PPP 协议不需要的功能

  • 纠错
  • 流量控制
  • 序号
  • 多点线路
  • 半双工或单工链路

PPP 协议的组成

PPP 协议有三个组成部分:

  • (1) 一个将 IP 数据报封装到串行链路的方法。
  • (2) 链路控制协议 LCP (Link Control Protocol)。
  • (3) 网络控制协议 NCP (Network Control Protocol)。  

PPP 协议的帧格式

PPP 帧的首部和尾部分别为 4 个字段和 2 个字段。

标志字段 F = 0x7E (符号“0x”表示后面的字符是用十六进制表示。十六进制的 7E 的二进制表示是 01111110)。

地址字段 A 只置为 0xFF。地址字段实际上并不起作用。

控制字段 C 通常置为 0x03。

PPP 是面向字节的,所有的 PPP 帧的长度都是整数字节。

透明传输问题

当 PPP 用在同步传输链路时,协议规定采用硬件来完成比特填充(和 HDLC 的做法一样)。

当 PPP 用在异步传输时,就使用一种特殊的字符填充法。

字符填充

将信息字段中出现的每一个 0x7E 字节转变成为 2 字节序列 (0x7D, 0x5E)。

若信息字段中出现一个 0x7D 的字节, 则将其转变成为 2 字节序列 (0x7D, 0x5D)。

若信息字段中出现 ASCII 码的控制字符(即数值小于 0x20 的字符),则在该字符前面要加入一个 0x7D 字节,同时将该字符的编码加以改变。  

零比特填充

PPP 协议用在 SONET/SDH 链路时,使用同步传输(一连串的比特连续传送)。这时 PPP 协议采用零比特填充方法来实现透明传输。

在发送端,只要发现有 5 个连续 1,则立即填入一个 0。

接收端对帧中的比特流进行扫描。每当发现 5 个连续1时,就把这 5 个连续 1 后的一个 0 删除。

不提供使用序号和确认的可靠传输

PPP 协议之所以不使用序号和确认机制是出于以下的考虑:

  • 在数据链路层出现差错的概率不大时,使用比较简单的 PPP 协议较为合理。
  • 在因特网环境下,PPP 的信息字段放入的数据是 IP  数据报。数据链路层的可靠传输并不能够保证网络层的传输也是可靠的。
  • 帧检验序列 FCS 字段可保证无差错接受。

PPP 协议的工作状态

当用户拨号接入 ISP 时,路由器的调制解调器对拨号做出确认,并建立一条物理连接。

PC 机向路由器发送一系列的 LCP 分组(封装成多个 PPP 帧)。

这些分组及其响应选择一些 PPP 参数,并进行网络层配置,NCP 给新接入的 PC 机分配一个临时的 IP 地址,使 PC 机成为因特网上的一个主机。

通信完毕时,NCP 释放网络层连接,收回原来分配出去的 IP 地址。接着,LCP 释放数据链路层连接。最后释放的是物理层的连接。

可见,PPP 协议已不是纯粹的数据链路层的协议,它还包含了物理层和网络层的内容。

希望对你有帮助!加油!

若您认为本文内容有益,请不吝赐予赞同并订阅,以便持续接收有价值的信息。衷心感谢您的关注和支持!

目录
相关文章
|
7天前
|
传感器 数据采集 网络协议
什么是网络通信中的 Modbus协议?
网络协议是网络通信中至关重要的一部分,它定义了网络中两个或多个设备之间通信的规则、过程和格式。这些规则确保了计算机网络设备能够使用一种通用语言来传输和接收数据,而不管它们的设计、硬件或基础设施如何。
14 1
|
9天前
|
网络协议 数据安全/隐私保护 Python
在通讯系统工程中,这通常包括硬件、软件、网络协议、数据传输等多个方面的设计和实现。
在通讯系统工程中,这通常包括硬件、软件、网络协议、数据传输等多个方面的设计和实现。
|
11天前
|
网络协议 安全 Python
我们将使用Python的内置库`http.server`来创建一个简单的Web服务器。虽然这个示例相对简单,但我们可以围绕它展开许多讨论,包括HTTP协议、网络编程、异常处理、多线程等。
我们将使用Python的内置库`http.server`来创建一个简单的Web服务器。虽然这个示例相对简单,但我们可以围绕它展开许多讨论,包括HTTP协议、网络编程、异常处理、多线程等。
|
20天前
|
传感器 算法
基于LEACH路由协议的网络性能matlab仿真,包括数据量,能耗,存活节点
- **LEACH协议**在WSN中通过分簇减少能耗,普通节点向最近簇头发送数据,簇头融合后发送给基站。本项目研究LEACH在不同初始能量、数据包及控制包长度条件下的网络性能,如剩余节点、能量、接收数据量和累计接收量。
|
21天前
|
人工智能 缓存 网络协议
网络层之三层交换、icmp协议、arp协议
网络层之三层交换、icmp协议、arp协议
|
2天前
|
SQL 安全 网络安全
网络安全与信息安全:漏洞、加密技术与安全意识的深度剖析
在数字化时代,网络安全与信息安全成为维护数据完整性、保密性和可用性的关键。本文将深入探讨网络安全中常见的漏洞类型,介绍加密技术如何保护信息免受未授权访问,并强调培养安全意识的重要性。我们将通过具体案例和统计数据来展示网络攻击的实际影响,分析加密技术的工作原理及其面临的挑战,并提供实用的建议来提高个人和组织的安全意识。文章旨在为读者提供全面的网络安全知识,帮助他们在日益复杂的网络环境中保护自己的信息资产。
|
1天前
|
SQL 安全 网络安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
【7月更文挑战第23天】在数字化时代,网络安全和信息安全已成为全球关注的焦点。本文将探讨网络安全漏洞、加密技术以及安全意识的重要性。我们将了解不同类型的网络攻击和漏洞,并讨论如何通过加密技术和提高安全意识来保护个人和组织的数据。文章还将介绍一些实用的工具和策略,以帮助读者更好地保护自己的网络安全。
|
1天前
|
SQL 安全 算法
网络安全与信息安全:漏洞、加密技术与安全意识的三重奏
【7月更文挑战第23天】在数字时代的交响乐中,网络安全和信息安全如同紧密相连的旋律线,共同编织着防护屏障。本文将深入探讨网络安全的脆弱之处——漏洞,解析加密技术的复杂和弦,以及强调培养安全意识的重要性。我们将从技术的角度出发,不仅剖析当前的威胁和挑战,还将提供实用的策略和建议,旨在为读者呈现一场关于网络和信息安全的知识盛宴。
|
1天前
|
SQL 安全 网络安全
网络安全与信息安全:漏洞、加密技术与安全意识的三维防线
在数字化时代,网络安全与信息安全成为维护数据完整性和隐私保护的关键。本文深入探讨了网络安全漏洞的常见形式,分析了加密技术如何强化数据安全,并强调了提升个人和企业的安全意识在防范网络威胁中的重要作用。通过实例分析和技术解读,文章旨在为读者提供一套全面的网络安全知识框架,以促进更安全的网络环境构建。
|
1天前
|
存储 SQL 安全
网络安全与信息安全:漏洞、加密与意识的三重防线
【7月更文挑战第23天】在数字化时代,网络安全和信息安全是维护数据完整性、保密性和可用性的关键。本文将探讨网络安全漏洞的常见形式、加密技术的重要性以及提升个人和企业安全意识的必要性。通过分析最新的攻击案例、介绍先进的加密算法,并分享培养安全习惯的策略,旨在为读者提供一套综合性的安全知识框架,以强化网络环境中的防御能力。