computer network

1. 广域网的基本概念

广域网通常是指覆盖范围很广(远超一个城市的范围)的长距离网络。广域网是因特网的核心部分,其任务是长距离运送主机所发送的数据。连接广域网各结点交换机的链路都是高速链路,它可以是长达几千千米的光缆线路,也可以是长达几万千米的点对点卫星链路。因此广域网首要考虑的问题是通信容量必须足够大,以便支持日益增长的通信量。

广域网不等于互联网,互联网可以连接不同类型的网络(既可以连接局域网,又可以连接广域网),通常使用路由器来连接。相距较远的局域网通过路由器与广域网相连而成一个覆盖范围很广的互联网。因此,局域网可以通过广域网与另一个相隔很远的局域网通信。

广域网由一些结点交换机(注意不是路由器,结点交换机和路由器都用来转发分组,它们的工作原理也类似。结点交换机在单个网络中转发分组,而路由器在多个网络构成的互联网中转发分组)及连接这些交换机的链路组成。结点交换机的功能是将分组存储并转发。结点之间都是点到点连接,但为了提高网络的可靠性,通常一个结点交换机往往与多个结点交换机相连。

从层次上考虑,广域网和局域网的区别很大,因为局域网使用的协议主要在数据链路层(还有少量在物理层),而广域网使用的协议主要在网络层。如果网络中的两个结点要进行数据交换,那么结点除要给出数据外,还要给数据 “包装” 上一层控制信息,用于实现检错纠错等功能。如果这层控制信息是数据链路层协议的控制信息,那么就称使用了数据链路层协议,如果这层控制信息是网络层的控制信息,那么就称使用了网络层协议。区别如下

  广域网 局域网
覆盖范围 很广,通常跨区域 较小,通常在一个区域内
连接方式 结点之间都是点对点连接,但为了提高网络的可靠性,一个结点交换机往往与多个结点交换机相连 普遍采用多点接入技术
OSI 层次 三层:物理层,数据链路层、网络层 两层:物理层,数据链路层
联系与相似点 ①广域网和局域网都是互联网的重要组成构件,从互联网的角度上看,二者平等(不是包含关系) ②连接到一个广域网或一个局域网上的主机在该网内进行通信时,只需要使用其网络的物理地址
着重点 强调资源共享 强调数据传输

广域网中的一个重要问题是路由选择和分组转发。路由选择协议负责搜索分组从某个结点到目的结点的最佳传输路由,以便构造路由表,然后从路由表再构造出转发分组的转发表。分组是通过转发表进行转发的。

PPP 协议和 HDLC 协议是目前最常用的两种广域网数据链路层控制协议。

2. PPP 协议

PPP(Point-to-Point Protocol)是使用串行线路通信的面向字节的协议,该协议应用在直接连接两个结点的链路上。设计的目的主要是用来通过拨号或专线方式建立点对点连接发送数据,使其称为各种主机、网桥和路由器之间简单连接的一种共同的解决方案。

PPP 协议是在 SLIP 协议的基础上发展而来的,它既可以在异步线路上传输,又可在同步线路上使用;不仅用于 Modem 链路,也用于租用的路由器到路由器的线路。

背景:SLIP 主要完成数据报的传传送,但没有寻址、数据检验、分组类型识别和数据压缩等功能,只能传送 IP 分组。如果上层不是 IP 协议,那么无法传输,并且此协议对一些高层应用也不支持,但实现比较简单。为了改进 SLIP 的缺点,于是指定了点对点协议(PPP)

PPP 协议有三个组成部分:

  1. 链路控制协议(LCP)。一种扩展链路控制协议,用于建立、配置、测试和管理数据链路。
  2. 网络控制协议(NCP)。PPP 协议允许同时采用多种网络层协议,每个不同的网络层协议要用一个相应的 NCP 来配置,为网络层协议建立和配置逻辑连接。
  3. 一个将 IP 数据报封装到串行链路的方法。IP 数据报在 PPP 帧中就是其信息部分,这个信息部分的长度受最大传送单元(MTU)的限制。

PPP 帧的前 3 个字段和最后 2 个字段与 HDLC 帧是一样的,标志字段(F)仍为 7E(01111110),前后各占 1 字节,若它出现在信息字段中,就必须做字节填充,使用的控制转义字节为 7D(01111101).但在 PPP 中,地址字段(A)占 1 字节,规定为 0xFF,控制字段(C)占 1 字节,规定为 0x03,两者的内容始终是固定不变的。PPP 是面向字符的,因而所有 PPP 帧的长度都是整数个字节。

PPP  = 首部 + 信息部分 + 尾部
首部 = F(7E) + A(FF) + C(03) + 协议(2字节)
信息部分 = IP 数据报(不超过1500B)
尾部 = FCS(2字节) + F(7E)

第 4 个字段是协议段,占 2 字节,在 HDLC 中没有该字段,它是说明信息段中运载的是什么种类的分组。以比特 0 开始的是诸如 IP、IPX 和 AppleTalk 这样的网络层协议;以比特 1 开始的被用来协商其他协议,包括 LCP 及每个支持的网络层协议的一个不同的 NCP。

第 5 段信息段的长度是可变的,大于等于 0 且小于等于 1500B。为了实现透明传输,当信息段中出现和标志字段一样的比特组合时,必须采用一些措施来改进。

注意:因为 PPP 是点对点的,并不是总线形,所以无须采用 CSMA/CD 协议,自然就没有最短帧,所以信息段占 0~1500 字节,而不是 46~1500 字节。另外,当数据部分出现和标志位一样的比特组合时,就需要采用一些措施来实现透明传输。

第 6 个字段是帧校验序列(FCS),占 2 字节,即循环冗余码检验中的冗余码。校验区包括地址字段、控制字段、协议字段和信息字段。

PPP 链路包括建立、使用、撤销等过程。当线路处于静止状态时,不存在物理层连接。当线路检测到载波信号时,建立物理连接,线路变为建立状态。此时,LCP 开始选项商定,商定成功后就进入身份验证状态。双发身份验证通过后,进入网络状态。这时,采用 NCP 配置网络层,配置成功后,进入打开状态,然后就可进行数据传输。当数据传输完成后,线路转为终止状态。载波停止后则回到静止状态。

注意:

  1. PPP 提供差错检测但不提供纠错功能,只保证无差错接收(通过硬件进行 CRC 校验)。它是不可靠的传输协议,因此也不适用序号和确认机制。
  2. 它仅支持点对点的链路通信,不支持多点线路
  3. PPP 只支持全双工链路
  4. PPP 的两端可以运行不同的网络层协议,但仍然可使用同一个 PPP 进行通信
  5. PPP 是面向字节的,当信息字段出现和标志字段一致的比特组合时,PPP 有两种不同的处理方法:若 PPP 用异步路线(默认),则采用字节填充法;若 PPP 用在异步线路(默认),则采用字节填充法;若 PPP 用在 SONET/SDH 等同步线路,则协议规定采用硬件来完成比特填充(和 HDLC 的做法一样)。

3. HDLC 协议

高级数据链路控制(High-level Data Link Control,HDLC)协议是 ISO 指定的面向比特(记住 PPP 协议是面向字节的)数据链路层协议,。该协议不依赖于任何一种字符编码集;数据报文可透明传输,用于实现透明传输的 “0 比特插入法” 易于硬件实现;全双工通信,有较高的数据链路传输效率;所有帧采用 CRC 检验,对信息帧进行顺序编号,可防止漏收或重发,传输可靠性高;传输控制功能与处理功能分离,具有较大的灵活性。

HDLC 适用于链路的两种基本配置:非平衡配置和平衡配置。

  1. 非平衡配置的特点是由一个主站控制整个链路的工作。
  2. 平衡配置的特点是链路两端的两个站都是复合站,每个复合站都可以平等地发起数据传输,而不需要得到对方复合站的允许。

3.1 站

HDLC 有 3 种站类型:主站、从站和复合站。主站负责控制链路的操作,主站发出的帧称为命令帧。从站受控于主站,按主站的命令进行操作;发出的帧称为响应帧。另外,有些站既具有主站的功能,又具有从站的功能,所以这类站称为复合站,它可以发出命令帧和响应帧。

3.2 数据操作方式

HDLC 有 3 种数据操作方式:

  1. 正常响应方式。这是一种非平衡结构操作方式,即主站向从站传输数据,从站响应传输,但从站只有在收到主站的许可后,才可进行响应。
  2. 异步平衡方式。这是一种平衡结构方式。在这种方式中,每个复合站都可以进行对另一站的数据传输。
  3. 异步响应方式。这是一种非平衡结构操作方式。在这种方式中,从站即使未受到主站的允许,也可进行传输。

3.3 HDLC 帧

HDLC 帧格式如下,它由标志、地址、控制、信息和帧校验序列(FCS)等字段构成。

HDLC 帧格式 = 标志 F + FCS 校验区间 + 帧校验序列FCS + 标志 F
FCS 校验区间 = 地址 A + 控制 C + 信息 info
标志 F 之间称为透明传输区间

标志字段 F,为 01111110 。在接收端只要找到标志字段就可确定一个帧的位置。HDLC 协议采用比特填充的首尾标志法实现透明传输。在发送端,当一串比特流数据中有 5 个连续的 1 时,就立即在其后填入一个 0。接收帧时,先找到 F 字段以确定帧的边界,接着对比特流进行扫描。每当发现 5 个连续的 1 时,就将其后的一个 0 删除,以还原成原来的比特流。

地址字段 A,共 8 位,在使用非平衡方式传送数据时,站地址字段总是写入从站的地址;在使用平衡方式传送数据时,站地址字段填入的是应答站的地址。

控制字段 C,共 8 位,是最复杂的字段。HDLC 的许多重要功能都考控制字段来实现。根据其第 1 位或第 1、2 位的取值,可将 HDLC 帧划分位为三类:

  1. 信息帧 I,第 1 位为 0,用来传输数据信息,或使用捎带技术对数据进行确认。
  2. 监督帧 S ,第 1、2 位分别为 1、0,用于流量控制和差错控制,执行对信息帧的确认、请求重发和请求暂停发送等功能。
  3. 无编号帧 U ,第 1、2 位均为 1,用于提供对链路的建立、拆除等多种控制功能。

PPP 帧和 HDLC 帧的格式很相似,但两者有以下几点不同:

  1. PPP 协议是面向字节的,HDLC 协议是面向比特的
  2. PPP 帧比 HDLC 帧多一个 2 字节的协议字段。当协议字段值为 0x0021 时,表示信息字段是 IP 数据报。
  3. PPP 协议不使用序号和确认机制,只保证无差错接收(通过硬件进行 CRC 检验),而端到端差错检测由高层协议负责。HDLC 协议的信息帧使用了编号和确认机制,能够提供可靠传输。