天天看点

数据链路层最基本的服务有哪些,你知道吗?

作者:网络世界看不同人生

#头条创作挑战赛#数据链路层

数据链路层最基本的服务是将源计算机网络层来的数据可靠的传输到相邻节点的目标计算机的网络层。为达到这一目的,数据链路层必须具备一系列相应的功能,主要有:如何将数据组合成数据块(在数据链路层中将这种数据块称为帧,帧是数据链路层的传送单位);如何控制帧在物理信道上的传输,包括如何处理传输差错,如何调节发送谏率以使之与接收方相匹配;在两个网路实体之间提供数据链路通路的建立、维持和释放管理。

为了实现上述的目标,数据链路层主要需要完成的功能有组帧、差错控制、流量控制、链路管理、 MAC 寻址、区分数据与控制信息、透明传输。

1、组帧方法

数据链路层为了能实现数据有效的差错控制,就采用了一种"帧"的数据块进行传输。而要采帧格式传输,就必须有相应的帧同步技术,这就是数据链路层的"组帧"(也称为"帧同步"、"成帧")功能。

采用帧的好处是,在发现有数据传送错误时,只需将有差错的帧再次传送,而不需要将全部数据的位流进行重传,这样传送效率上将大大提高。但同时也带来了两方面的问题:

(1)如何识别帧的开始与结束。

(2)在夹杂着重传的数据帧中,接收方在接收到重传的数据帧时是识别成新的数据帧,还是识别成已传帧的重传帧呢?这就要靠数据链路层的各种"帧同步"技术来识别了。"帧同步"技术既可使接收方能从以上并不是完全有序的位流中准确地区分出每一帧的开始和结束,同时还可识别重传帧。

4种最常用的组帧方法有1.字符计数法、2.字符填充帧定界法、3.位填充帧定界法、4.物理层违例法。

2、数据链路层协议

数据链路层协议有 HDLC 、 PPP 、 SDLC 等,主要介绍 HDLC 和 PPP 协议。

1. HDLC 协议

HDLC 源于 IBM 开发的 SDLC , SDLC 是由 IBM 开发的第一个面向位的同步数据链路层协议。随后, ANSI 和 ISO 均采纳并发展了 SDLC ,并且分别提出了自己的标准, ANSI 提出了高级数据链路控制规程( Advanced Data Communication Control Procedure , ADCCP ),而 ISO 提出了 HDLC 。

作为面向位的同步数据控制协议的典型, HDLC 只支持同步传输。但是 HDLC 既可工作在点到点线路方式下,也可工作在点到多点线路方式下;同时 HDLC 既适用于半双工线路,也适用于全双工线路。 HDLC 协议的子集被广泛用于 X .25网络、帧中继网络以及局域网的逻辑链路控制( Logic Link Control , LLC )子层作为链路层协议以支持相邻节点之间可靠的数据传输。

1) HDLC 帧格式

1 1 1 >=0 2 1字节

01111110 Address Control Infor FCS 01111110

每个字段的含义如下:

(1)标志字段 F ( Flag )。该字段为01111110的位模式,用以标识帧的开始与结束,也可以作为帧与帧之间的填充。在连续发送多个帧时,同一个标识既可用于表示前一帧的结束,又可用于表示下一帧的开始。通常在不进行帧传送的时刻,信道仍处于激活状态,在这种状态下发送方不断地发送标识字段,而接收方则检测每一个收到的标识字段,一旦发现某个标识字段后面不再是一个标识字段,便可认为新的帧传输已经开始。采用"0位插入法"可以实现用户数据的透明传输。

(2)地址字段 A ( Address )。该字段的内容取决于所采用的操作方式。每个节点都被分配一个唯一的地址。控制帧中的地址字段携带的是对方节点的地址,而响应帧中的地址字段所携带的地址是本节点的地址。某一地址也可分配给不止一个节点,这种地址称为组地址。利用一个组地址传输的帧能被组内所有的节点接收。还可以用全"1"地址来表示包含所有节点的地址,全"1"地址称为广播地址,含有广播地址的帧传送给链路上所有的节点。另外,还规定全"0"的地址不分配给任何节点,仅作为测试用。

地址字段长度通常是8位,可表示256个地址。当地址字段的首位为"1"时,表示地址字段只用8位:若首位为"0"时,表示本字节后面1个字节是扩充地址字段。这就意味着 HDLC 地址字段可以标识超过256个以上的站点地址。

(3)控制字段 C ( Control )。控制字段占用1个字节长度。控制字段用于构成各种命令及响应,以便对链路进行监视与控制。该字段是 HDLC 帧格式的关键字段。控制字段中的第1位或第2位表示帧的类型,即信息帧 I 帧、监控帧 S 帧和无编号帧 U 帧。3种类型的帧控制字段的第5位是 P / F ( Poll / Final ,轮询/终止)位。

(4)信息字段 I ( Information )。信息字段可以是任意的二进制位串,长度未作限定,其上限由 FCS 字段或通信节点的缓冲容量来决定。目前,国际上用得较多的是1000~

2000位,而下限可以是0,即无信息字段。另外,监控帧中不可有信息字段。

(5)帧校验序列。在 HDLC 协议的所有帧中都包含一个16位的帧校验序列( Frame Check Sequence , FCS ),用于差错检测。 HDLC 协议的校验序列是对整个帧的内容进行 CRC 循环冗余校验,但标志字段和0位插入部分不包括在帧校验范围内。 HDLC 协议帧校验序列的生成多项式一般采用多项式x16+x12+ x +1。

2) HDLC 帧类型

HDLC 的控制字段有8位。如果第1位为"0"时,表示该帧为信息帧;第1、2位为"10"时,表示该帧为监控帧;第1、2位为"11"时,表示该帧为无编号帧。

(1)信息帧( Information Frame )用于传送有效信息或数据,通常简称为 1 帧。

I 帧控制字段的第1位为0。 HDLC 协议采用滑动窗口机制,允许发送方不必等待确认而连续发送多个信息帧。控制字段中的 N ( S )用于存放发送帧的序列, N ( R )用于存放接收方下一个预期要接收的帧的序号。 N ( S )与 N ( R )均为3位,可取值0~7。

(2)监控帧( Supervisor Frame )用于差错控制和流量控制,通常称为 S 帧。监控帧以控制字段第1、2位为10来标志。监控帧控制字段的第3、4位为监控帧类型编码,共有4种不同的编码,

帧类型 Type字段 功能描述 N(R)字段的含义
RR 00 接收就绪,请求发送下一帧 期望接受的下一个I帧的序号
REJ 01 请求重新发送序号为N(R)的所有帧 重发帧的开始序号
RNR 10 请求暂停发送数据帧 N(R)之前各帧已正确接收
SREJ 11 请求重发指定帧 重发帧的顺序号

接收方可以用接收就绪( Receive Ready , RR )监控帧应答发送方,希望发送方发送序号为 N ( R )的信息帧。 RR 帧就相当于专门应答帧(因为一般情况下,应答信息都是通过反向数据帧的捎带来完成的)。

接收方可以用拒绝( REJect , REJ )监控帧来要求发送方重传编号为 N ( R )之后所有的信息帧(包括 N ( R )帧),同时暗示 N ( R )以前的信息帧被正确接收。

接收方返回接收未就绪( Receive Not Ready , RNR )监控帧,表示编号小于 N ( R )的信息帧已被收到,但目前正忙,尚未准备好接收编号为 N ( R )的信息帧,这可用来对链路进行流量控制。

接收方返回选择拒绝( Select REJect , SREJ )监控帧来要求发送方只发送编号为 N ( R )的信息帧,并暗示其他编号的信息帧已经全部正确接收到。

RR 监控帧和 RNR 监控帧有两个主要功能:首先这两种监控帧用来表示接收方已经准备好或未准备好信息;其次确认编号小于 N ( R )的所有信息帧都正确接收到。

REJ 监控帧和 SREJ 监控帧用于向发送方指出发生了差错, REJ 监控帧用于 GO - BACK - N 策略用以请求重发 N ( R )起始的所有帧; SREJ 帧用于选择重传协议,用于指定重发某个特定的帧。

(3)无编号帧 U ( Unnumbered Frame )用控制字段第1、2位为11来标识。无编号帧因为其控制字段中不包含编号 N ( S )和 N ( R )而得名,简称 U 帧。 U 帧用于提供对链路的建立、拆除以及多种控制工程。无编号帧 U 用5个修正( Modifier )位来进行定义,最多可以表示32种控制帧。

3、PPP协议

PPP 是RFC1171/1172制定的,是在点对点线路上对包括 IP 在内的 LAN 协议进行中继的 Internet 标准协议。 PPP 被设计成支持多种上层协议,并设计成具有不依存于网络层协议的数据链路。在用 PPP 对各个网络层协议进行中继时,每个网络层协议必须有某个对应于 PPP 的规格,这些规格有一些已经存在。 PPP 是由两种协议构成的:一种是为了确保不依存于协议的数据链路而采用的 LCP ( Link Control Protocol ,链路控制协议);另一种为了实现在 PPP 环境中利用网络层协议控制功能的 NCP ( Network Control Protocol ,网络控制协议)。

NCP 的具体名称在对应的网络层协议中有所不同。更准确地说, PPP 所规定协议只是 LCP ,至于将 NCP 及网络层协议如何放入 PPP 帧中,要由开发各种网络层协议的厂家完成。 PPP 帧具有传输 LCP 、 NCP 及网络层协议的功能。对利用 LCP 的物理层规格没有特殊限制。可以利用 RS -232- C 、 RS -422/423、 V .35等通用的物理连接器,传输速率的应用领域也没有特别规定,可以利用物理层规格所容许的传输速率。

1) PPP 协议的应用

PPP 协议是目前广域网上应用最广泛的协议之一,它的优点在于简单、具备用户验证能力、可以解决 IP 分配等。

家庭拨号上网就是通过 PPP 在用户端和运营商的接入服务器之间建立通信链路。目前,宽带接入已经成为取代拨号上网的新方式,在宽带接入技术日新月异的今天, Ppp 也衍生出新的应用。典型的应用是在 ADSL 接入方式当中, PPP 与其他的协议共同派生出了符合宽带接入要求的新的协议,如 PPPoE ( PPP over Ethernet ,以太网上的 PPP ), PPPoA ( PPP over ATM , ATM 网上的 PPP )。

利用以太网资源,在以太网上运行 PPP 来进行用户认证接入的方式称为 PPPoE 。 PPPoE 既保护了用户方的以太网资源,又完成了 ADSL 的接入要求,是目前 ADSL 接入方式中应用最广泛的技术标准。

同样,在 ATM 网络上运行 PPP 协议来管理用户认证的方式称为 PPPoA 。它与 PPPoE 的原理、作用都相同;不同的是, PPPoA 是在 ATM 网络上,而 PPPoE 是在以太网网络上运行,所以要分别适应 ATM 标准和以太网标准。

2) PPPoE 协议简介

随着宽带网络技术的不断发展,以 xDSL 、 Cable Modem 和以太网为主的几种主流宽带接入技术的应用已如火如荼地展开。同时,又给各大网络运营商们带来了种种新的问题,无论使用哪种接入技术,对于他们而言,可盼和可求的是如何有效地管理用户,如何从网络的投资中收取回报,因此对于各种宽带接入技术的收费问题就变得更加敏感。在传统的以太网模型中,是不存在所谓的用户计费的概念,要么用户能获取 IP 地址上网,要么用户就无法上网。 IETF ( Internet Engineering Task Force ,互联网工程任务组)的工程师们在秉承窄带拨号上网的运营思路,制定出了在以太网上传送 PPP 数据包的协议,这个协议出台后,各网络设备制造商也相继推出自己品牌的宽带接入服务器( Broadband Access Server , BAS ),它不仅能支持 PPPoE 协议会话的终结,而且还能支持其他许多协议,例如,华为公司的MA5200和北电的Shasta5000。

PPPoE 协议提供了在广播式的网络(如以太网)中多台主机连接到远端的访问集中器(称目前能完成上述功能的设备为宽带接入服务器)上的一种标准。在这种网络模型中,不难看出所有用户的主机都需要能独立地初始化自己的 PPP 协议栈,而且通过 PPP 协议本身所具有的一些特点,能实现在广播式网络上对用户进行计费和管理。为了能在广播式的网络上建立、维持各主机与访问集中器之间点对点的关系,那么就需要每个主机与访问集中器之间能建立唯一的点到点的会话。

PPPoE 协议共包括两个阶段,即 PPPoE 的发现阶段( PPPoE Discovery Stage )和 PPPoE 的会话阶段( PPPoE Session Stage )。对于 PPPoE 的会话阶段,可以看成和 PPP 的会话过程是一样的,而两者的主要区别在于只是在 PPP 的数据报文前封装了 PPPoE 的报文头。无论是哪一个阶段的数据报文最终会被封装成以太网的帧进行传送。

PPPoE 的数据报文是被封装在以太网帧的数据域内的。可以把 PPPoE 报文分成两大块,一大块是 PPPoE 的数据报头;另一块则是 PPPoE 的净载荷(数据域),对于 PPPoE 报文数据域中的内容会随着会话过程的进行而不断改变。

PPPoE 数据报文最开始的4位为版本域,协议中给出了明确的规定,这个域的内容填充0x01。紧接在版本域后的4位是类型域,协议中同样规定,这个域的内容填充为0x01。代码域占用1字节,对于 PPPoE 的不同阶段这个域内的内容也是不一样的。会话 ID 占用2字节,当访问集中器还未分配唯一的会话 ID 给用户主机的话,则该域内的内容必须填充为0x0000,一旦主机获取了会话 ID 后,那么在后续的所有报文中该域必须填充那个唯一的会话 ID 值。

长度域为2字节,用来指示 PPPoE 数据报文中净载荷的长度。数据域有时也称为净载荷域,在 PPPoE 的不同阶段该域内的数据内容会有很大的不同。在 PPPoE 的发现阶段时,该域内会填充一些 Tag (标记);而在 PPPoE 的会话阶段,该域则携带的是 PPP 的报文。

继续阅读