广域网与点对点协议(PPP)
3.7 的两节合为一页。广域网一节只有一个结论要带走:广域网和局域网的差别不在规模,而在技术——点对点与广播。 PPP 一节则是 3.2 组帧的实战样本,同时与以太网构成一组精确的对照:同为数据链路层协议,以太网是无连接的不可靠服务,PPP 是有连接的不可靠服务。
机制
广域网不是”大一点的局域网”
广域网(Wide Area Network,WAN)通常指覆盖范围很广(远超一个城市的范围)的长距离网络,任务是长距离运送主机所发送的数据。连接广域网各节点交换机的链路都是高速链路,广域网首要考虑的问题是通信容量必须足够大,以便支持日益增长的通信量。
广域网不等于互联网。互联网可以连接不同类型的网络,通常使用路由器来连接。相距较远的局域网通过路由器与广域网相连,就构成一个覆盖范围很广的互联网,局域网因此可以通过广域网与另一个相隔很远的局域网通信。
广域网由一些节点交换机及连接这些交换机的链路组成。节点交换机不是路由器:两者都用来转发分组,工作原理也类似,但节点交换机在单个网络中转发分组,路由器在多个网络构成的互联网中转发分组。节点交换机的功能是存储并转发分组。节点之间都是点到点连接,为提高网络的可靠性,一个节点交换机往往与多个节点交换机相连。
| 广域网 | 局域网 | |
|---|---|---|
| 覆盖范围 | 很广,通常跨区域 | 较小,通常在一个区域内 |
| 连接方式 | 通常采用点对点连接 | 普遍使用广播信道 |
| OSI 层次 | 三层:物理层、数据链路层、网络层 | 两层:物理层、数据链路层 |
| 着重点 | 强调资源共享 | 强调数据传输 |
两者的联系有两条:第一,广域网和局域网都是互联网的重要构件,从互联网的角度看二者是平等的,不是包含关系;第二,连接到一个广域网或一个局域网上的主机在该网内通信时,只需要使用其网络的物理地址。
表中”OSI 层次”一行直接来自连接方式:广域网由多个节点交换机点对点互连,分组要经过多跳才能到达目的地,必须有选路功能,所以用到网络层;局域网是一条广播信道,帧直接送达,用不着网络层(对照 3.6.1)。
在通信线路质量较差的年代,能实现可靠传输的高级数据链路控制(HDLC)是当时比较流行的数据链路层协议;但对于现在误码率很低的点对点有线链路,更简单的点对点协议才是目前使用最广泛的数据链路层协议。最新大纲已将 HDLC 删除。
PPP 的三个组成部分
点对点协议(Point-to-Point Protocol,PPP)是现在最流行的点对点链路控制协议,主要有两种应用:一是用户计算机与 ISP 通信时所用的数据链路层协议(用户通常都要连接到某个 ISP 才能接入互联网);二是两台网络设备之间的直连专用线路。
PPP 由三部分组成:
- 一个链路控制协议(LCP),用来建立、配置、测试数据链路连接,以及协商一些选项。
- 一套网络控制协议(NCP)。PPP 允许采用多种网络层协议,每个不同的网络层协议要用一个相应的 NCP 来配置,为网络层协议建立和配置逻辑连接。
- 一种将 IP 数据报封装到串行链路的方法。 IP 数据报在 PPP 帧中就是其信息部分,这个信息部分的长度受最大传送单元(MTU)的限制。
PPP 帧格式
| 字段 | 标志 F | 地址 A | 控制 C | 协议 | 信息 | FCS | 标志 F |
|---|---|---|---|---|---|---|---|
| 长度 | 1B | 1B | 1B | 2B | 0~1500B | 2B | 1B |
| 取值 | 0x7E | 0xFF | 0x03 | 如 0x0021 | IP 数据报等 | CRC | 0x7E |
首部 4 个字段、尾部 2 个字段。地址字段固定为 0xFF,控制字段固定为 0x03,这两个字段的意义暂未定义——点对点链路只有两端,本来就不需要地址。PPP 是面向字节的,所有 PPP 帧的长度都是整数个字节。
协议字段 2 字节,表示信息段运载的是什么种类的分组:0x0021 表示信息字段是 IP 数据报,0xC021 表示是 LCP 的数据。 信息段长度可变,为 0~1500 字节。
信息段下限是 0 而不是 46。 因为 PPP 是点对点的,不是总线形,无须使用 CSMA/CD,自然不会有最短帧长的限制。对照以太网的 46~1500 字节,见 3.6.2。尾部的 FCS 是 2 字节的 CRC 检验冗余码(以太网是 4 字节)。
透明传输:异步用字节填充,同步用零比特填充
首部和尾部各有一个标志字段,规定为 0x7E(01111110),表示一个帧的开始和结束,即 PPP 帧的定界符。当标志字段的比特组合出现在信息段中时,就必须采取措施,使这种组合不在信息段中出现。PPP 根据线路类型选用两种方法:
- 异步传输时采用字节填充法,使用的转义字符是 0x7D(01111101)。
- 同步传输时采用零比特填充法:发送端在连续 5 个 1 之后插入一个 0,接收端再删除。
两种方法的原理见 3.2 组帧。教材只给出转义字符 0x7D;RFC 1662 的具体规则(教材未展开)是:信息段中出现 0x7E 时改为 0x7D 0x5E,出现 0x7D 时改为 0x7D 0x5D,出现小于 0x20 的控制字符时在其前插入 0x7D 并把该字符加上 0x20。
一次拨号的完整过程
以用户拨号接入 ISP 为例:拨号接入后,就建立了一条从用户到 ISP 的物理连接。这时用户向 ISP 发送一系列 LCP 分组(封装成多个 PPP 帧),以便建立 LCP 连接;接着进行网络层配置,NCP 给新接入的用户分配一个临时 IP 地址。通信结束后,依次释放网络层、数据链路层和物理层连接。
stateDiagram-v2 direction LR [*] --> 链路静止 链路静止 --> 链路建立: 物理层连接建立 链路建立 --> 鉴别: LCP 配置协商成功 链路建立 --> 链路静止: LCP 配置协商失败 鉴别 --> 网络层协议: 鉴别成功或无须鉴别 鉴别 --> 链路终止: 鉴别失败 网络层协议 --> 链路打开: NCP 配置协商 链路打开 --> 链路终止: 链路故障或关闭请求 链路终止 --> 链路静止: LCP 链路终止(载波停止)
- 链路的起始和终止都是链路静止状态,此时用户与 ISP 之间不存在物理层连接。
- 检测到调制解调器的载波信号并建立物理层连接后,进入链路建立状态。
- 在链路建立状态下,LCP 开始协商配置选项(包括最大帧长、鉴别协议等)。协商成功则进入鉴别状态,失败则退回链路静止。
- 协商成功后双方建立了 LCP 链路。若无须鉴别或鉴别身份成功,进入网络层协议状态;鉴别失败则进入链路终止。
- 进入网络层协议状态后,双方用 NCP 配置网络层,配置完毕进入链路打开状态,开始数据通信。
- 数据传输结束后,一方发出终止请求且收到对方的终止确认,或链路出现故障时,进入链路终止状态;载波停止后回到链路静止。
从右往左读这张图就是链路逐层建起来的顺序:物理链路 → LCP 链路 → 已鉴别的 LCP 链路 → 已鉴别的 LCP 链路和 NCP 链路。 鉴别是可选的,但它排在网络层配置之前。
PPP 的四个特点
- PPP 虽然在连接建立的过程中使用了确认机制,但在数据帧的发送过程中只保证无差错接收(通过 CRC 检验),不使用序号和确认机制,因而是不可靠服务。
- PPP 只支持全双工的点对点链路,不支持多点线路。
- PPP 的两端可以运行不同的网络层协议,但仍可使用同一个 PPP 进行通信。
- PPP 是面向字节的,所有 PPP 帧的长度都是整数个字节。
边界
广域网与局域网的根本差异是协议和网络技术,不是范围和介质。 下面两道错题问的是同一件事的两个侧面。
错题复盘:广域网与局域网的差异在协议和技术,广域网采用存储转发
王道 3.7.3 第 1 题:局域网和广域网的差异不仅在于覆盖范围不同,还主要在于它们(A. 所使用的介质不同 B. 所使用的协议不同 C. 所能支持的通信量不同 D. 所提供的服务不同)。答案 B。
王道 3.7.3 第 3 题:广域网所使用的传输方式是(A. 广播式 B. 存储转发式 C. 集中控制式 D. 分布控制式)。答案 B。
广域网使用点对点等技术,局域网使用广播技术——这就是”协议和网络技术不同”的具体含义。广域网由节点交换机及其间的链路组成,节点交换机执行分组的存储、转发功能,所以传输方式是存储转发式。两题的判据都落在表 3.5 的”连接方式”一行。
局域网接入广域网靠路由器,不靠中继器或网桥。 中继器和网桥分别工作在物理层和数据链路层,只能在局域网内部扩展;局域网与广域网之间要跨网络,必须用网络层设备。
错题复盘:局域网与广域网的互连通过路由器实现
王道 3.7.3 第 5 题:现在大量计算机通过以太网这样的局域网连入广域网,局域网与广域网的互连是通过(A. 路由器 B. 资源子网 C. 桥接器 D. 中继器)实现的。答案 A。
中继器和桥接器通常指用于局域网的物理层和数据链路层的联网设备。目前局域网接入广域网,主要是通过称为路由器的互联设备实现的。同类题在第 4 章也出现过,“一个局域网与远处的另一个局域网互连需要什么”——答案是路由器和广域网技术,见 4.7.2 路由器的功能。
PPP 的透明传输方法取决于线路类型,默认按异步线路答字节填充。
错题复盘:PPP 在异步线路上用字节填充,在同步线路上用零比特填充
王道 3.7.3 第 7 题:为实现透明传输(默认为异步线路),PPP 使用的填充方法是(A. 位填充 B. 字符填充 C. 对字符数据使用字符填充,对非字符数据使用位填充 D. 对字符数据使用位填充,对非字符数据使用字符填充)。答案 B。
PPP 是面向字节的协议,所有帧长都是整数个字节。在异步线路中,PPP 采用字节填充法实现透明传输;在同步线路中,采用零比特填充法。选填充方法看的是线路是同步还是异步,不是看数据是不是字符,C、D 的划分标准本身就是错的。
“PPP 具有差错控制能力”算对,“PPP 仅支持 IP”算错。 前者要读成”差错检测”:PPP 提供差错检测功能,不提供纠错功能。后者与第 3 个特点直接冲突。
错题复盘:PPP 支持多种网络层协议,不是仅支持 IP
王道 3.7.3 第 8 题:以下对 PPP 的描述中,错误的是(A. 具有差错控制能力 B. 仅支持 IP C. 支持动态分配 IP 地址 D. 支持身份验证)。答案 B。
PPP 两端的网络层可以运行不同的网络层协议,每种网络层协议由一个相应的 NCP 来配置,所以不是仅支持 IP。A 正确,因为 PPP 提供差错检测(这里的”差错控制”取检测义,PPP 不纠错);C 正确,PPP 可用于拨号连接,NCP 给接入用户分配临时 IP 地址;D 正确,建立 LCP 链路后进入可选的身份鉴别状态。
PPP 为什么不用帧编号和确认来实现可靠传输(王道 3.9 疑难点 2)。第一,若使用能实现可靠传输的数据链路层协议(如 HDLC),开销会增大;链路层出现差错的概率不大时,使用比较简单的 PPP 更合理。第二,在因特网环境下,PPP 的信息字段放入的是 IP 数据报,即使链路层做到了可靠传输,数据帧在路由器中从数据链路层上升到网络层后,仍有可能因网络拥塞而被丢弃——数据链路层的可靠传输并不能保证网络层的传输也是可靠的。第三,PPP 帧格式中有 FCS 字段,对每个收到的帧都用硬件进行 CRC 检验,发现差错就丢弃(一定不能把有差错的帧交给上一层),端到端的差错控制最后由高层协议负责。因此 PPP 可以保证无差错接收,但不提供可靠传输——这与 3.1.5 中”有线链路只做 CRC 检错”是同一个道理。
PPP 与以太网的服务类型要成对记。 以太网不对帧编号、不要求确认,也不建立连接,是无连接的不可靠服务(2012 年真题);PPP 在连接建立过程中使用了确认机制,数据传输阶段只做 CRC 检验、检验正确就接收,否则丢弃,其他什么也不做,是有连接的不可靠服务(王道 3.7.3 第 12 题)。两者的”不可靠”原因相同——都不编号、不确认、不重传;区别只在有没有连接建立阶段。
PPP 是数据链路层协议,只支持全双工。 “PPP 是网络层协议""PPP 支持半双工或全双工""PPP 两端的网络层必须运行相同的协议”都是错的(王道 3.7.3 第 11 题)。
口径差异:今天的"拨号上网"是 PPPoE
教材口径:以调制解调器拨号为例,PPP 运行在用户与 ISP 之间的串行物理链路上。
工程口径:今天家用宽带的”拨号”是 PPPoE(PPP over Ethernet),PPP 帧被封装在以太网帧里传给 ISP 的接入设备,账号密码对应 PPP 的鉴别阶段,拨号成功后拿到的公网 IP 由 NCP(IPCP)分配。PPPoE 的 MTU 常见为 1492 字节,比以太网少 8 字节,就是 PPPoE 与 PPP 首部占掉的。
考试按教材的串行链路模型作答。
对照速查
| 以太网 | PPP | |
|---|---|---|
| 链路类型 | 广播信道(多点) | 点对点,仅全双工 |
| 服务类型 | 无连接、不可靠 | 有连接、不可靠 |
| 介质访问控制 | CSMA/CD(半双工时) | 不需要 |
| 数据部分 | 46~1500B | 0~1500B |
| FCS | 4B | 2B |
| 地址 | 源、目的 MAC 各 6B | 地址字段固定 0xFF |
| 帧定界 | 前导码 + 帧间隙,无结束定界符 | 首尾各一个 0x7E |
| 透明传输 | 不需要(靠长度与定界符定位) | 异步字节填充,同步零比特填充 |
| 说法 | 对错 |
|---|---|
| 广域网和局域网是包含关系 | ❌(平等关系) |
| 节点交换机就是路由器 | ❌(前者在单个网络内转发,后者在互联网中转发) |
| PPP 的地址字段标识通信对方 | ❌(固定 0xFF,意义未定义) |
| PPP 有最短帧长限制 | ❌ |
| PPP 在数据传输阶段使用序号和确认 | ❌ |
| PPP 是面向比特的协议 | ❌(面向字节) |
考点
- 广域网:点对点、存储转发、三层;局域网:广播、两层;二者是平等关系
- 节点交换机在单个网络内转发,路由器在互联网中转发;局域网接入广域网用路由器
- PPP = LCP + NCP + 封装 IP 数据报的方法
- 帧格式:F 7E、A FF、C 03、协议 2B(0x0021 = IP,0xC021 = LCP)、信息 0~1500B、FCS 2B、F 7E
- 透明传输:异步字节填充(0x7D),同步零比特填充
- PPP:有连接、不可靠;只支持全双工点对点;两端可跑不同网络层协议;面向字节
链接
- 🏠 返回总览:计算机网络第 3 章:数据链路层总览
- ⬅️ 上一节:3.6.4 VLAN 基本概念与基本原理
- ➡️ 下一节:3.8 网桥与以太网交换机
- 🔗 3.2 组帧(字节填充与零比特填充的原理)
- 📖 名词库:第 3 章名词库