本文主要是介绍【链路层】点对点协议 PPP,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
目录
1、PPP协议的特点
2、PPP协议的组成和帧格式
3、PPP协议的工作状态
目前使用得最广泛的数据链路层协议是点对点协议PPP(Point-to-Point Protocol)。
1、PPP协议的特点
我们知道,互联网用户通常都要连接到某个 ISP 才能接入到互联网。PPP 协议就是用户计算机和 ISP 进行通信时所使用的数据链路层协议。//ISP是互联网服务提供商(Internet Service Provider)的缩写
简单:接收方每收到一个帧,就进行 CRC 检验。如 CRC 检验正确,就收下这个帧;反之,就丢弃这个帧,其他什么也不做。
封装成帧:规定作为帧定界符的特殊字符,以便使接收端从收到的比特流中能准确地找出顿的开始和结束位置。
透明性:如果数据中碰巧出现了和帧定界符一样的比特组合时,必须采取有效的措施来解决这个问题。
支持多种网络层协议:能够在同一条物理链路上同时支持多种网络层协议(如 IP 和IPX等)的运行。
支持多种类型链路:例如,串行的或并行的同步的或异步的,低速的或高速的,电的或光的,交换的或非交换的点对点链路。
差错检测:能够对接收端收到的帧进行检测,并立即丢弃有差错的帧,避免无用帧浪费网络资源。
连接状态检测:能够及时自动检测出链路是否处于正常工作状态。
最大传送单元限制:可对每一种类型的点对点链路设置最大传送单元 MTU 的标准默认值。
支持网络层地址协商:支持通信的两个网络层的实体能够通过协商知道或能够配置彼此的网络层地址。
支持数据压缩协商:协议需要支持协商使用数据压缩算法,但并不要求将数据压缩算法进行标准化。
在 TCP/IP 协议族中,可靠传输由运输层的 TCP 协议负责,因此数据链路层的 PPP 协议不需要进行纠错,不需要设置序号,也不需要进行流量控制。PPP 协议不支持多点线路,而只支持点对点的链路通信。此外,PPP 协议只支持全双工链路。
2、PPP协议的组成和帧格式
PPP 协议由三个组成部分:
- 一个将 IP 数据报封装到串行链路的方法。//数据报封装
- 一个用来建立、配置和测试数据链路连接的链路控制协议 LCP (Link Control Protocol)。//连接控制
- 一套网络控制协议 NCP(Network Control Protocol),其中的每一个协议支持不同的网络层协议,如 IP、OSI 的网络层、DECnet 和 AppleTalk 等。//网络控制协议
PPP协议的帧格式:
PPP 协议的帧格式如下图所示,首部和尾部分别为四个字段和两个字段:
首部的第一个字段和尾部的第二个字段都是标志字段 F (Flag),规定为 0X7E(符号 "0X" 表示它后面的字符是用十六进制表示的。十六进制的 7E 的二进制表示是 01111110)。标志字段表示一个帧的开始或结束。因此标志字段就是 PPP 的定界符。连续两帧之间只需要用一个标志字段。如果出现连续两个标志字段,就表示这是一个空帧,应当丢弃。
首部中的地址字段 A 规定为 OXFF(即 11111111),控制字段 C 规定为 OX03(即00000011)。最初曾考虑以后再对这两个字段的值进行其他定义,但至今也没有给出。可见这两个字段实际上并没有携带 PPP 的信息。//暂时无意义,不携带信息
PPP 首部的第四个字段是 2 字节的协议字段。当协议字段为 OX0021 时,PPP 的信息字段就是 IP 数据报。若为 OXC021 则信息字段是 PPP 链路控制协议 LCP 的数据,而 OX8021 表示这是网络层的控制数据。
信息字段的长度是可变的,不超过1500 字节。
尾部中的第一个字段(2字节)是使用 CRC 的检验序列 FCS。
3、PPP协议的工作状态
思考一个问题:PPP 链路一开始是怎样被初始化的?
当用户拨号接入 ISP 后,就建立了一条从用户个人电脑到 ISP 的物理连接。
这时,用户个人电脑向 ISP 发送一系列的链路控制协议 LCP 分组(封装成多个 PPP),以便建立 LCP 连接。这些分组及其响应选择了将要使用的一些 PPP 参数。接着还要进行网络层配置,网络控制协议 NCP 给新接入的用户个人电脑分配一个临时的 IP 地址。这样,用户个人电脑就成为互联网上的一个有 IP 地址的主机了。//物理连接+LCP连接+IP分配
当用户通信完毕时,NCP 释放网络层连接,收回原来分配出去的 IP 地址。接着,LCP 释放数据链路层连接。最后释放的是物理层的连接。
上述过程可用下图所示的状态图来描述。
图右方的绿色方框给出了对 PPP 协议的几个状态的说明。从设备之间无链路开始到先建立物理链路,再建立链路控制协议 LCP 链路。经过鉴别后再建立网络控制协议 NCP 链路,然后才能交换数据。
由此可见,PPP 协议已不是纯粹的数据链路层的协议,它还包含了物理层和网络层的内容。
至此,全文结束。
这篇关于【链路层】点对点协议 PPP的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!