路由器重温——串行链路链路层协议积累-帧中继FR协议

在串口链路中link-protocol还可以配置成fr,即使用帧中继,现在对帧中继进行学习。

帧中继技术是在数据链路层用简化的方法传送和交换数据单元的快速分组交换技术。帧中继技术是在分组交换技术充分发展,数字与光纤传输线路逐渐代替已有的模拟线路,用户终端日益智能化的条件下诞生并发展起来的

网络交换技术:

随着数据通讯技术的发展和演变,网络交换技术有电路方式,分组方式,帧方式,信元方式和交换型多兆比特数据业务SMDS。

电路方式是基于电话网电路交换的原理,发送数据时,交换机在主叫用户和被叫用户之间接通一条物理的数据传输通路,特点是时延小,透明传输,即传输通路对用户数据不进行任何修正或解释,信息传输的吞吐量大 缺点是所占带宽固定,网络资源利用率低。

分组方式是一种存储转发的交换方式,是将需要传输的信息划分为一定的长度的包(分组),以分组为单位进行存储转发的,每个分组信息都载有接收地址和发送地址的的标识,在传送分组之前必须首先建立虚电路,然后依序传送。分组方式在线路上采用动态复用的技术来传送各个分组,带宽可以复用。

常用分组技术有以下几个特点

1 传输质量高

分组交换方式具有差错控制功能。他不仅在节点交换机之间传输分组时采取差错校验与重发的措施,而且对于分组型终端,在用户部分也可以进行同样的差错控制,因而使分组在网内传输的出错率大大降低。

2 可靠性高

在电路交换方式中,一次呼叫的通信电路固定不变,在分组交换中,报文中的每个分组可以自由选择传输途径,当网内发生故障时,分组能自动选择另外的通路,不会造成通信中断

3 分组多路通信

由于每个分组都含有控制信息,所以,尽管分组型终端和分组交换机之间只有一条用户线相连,但可以同时和多个用户终端进行通信。这是公用电话网和电路交换的公用数据网所不能实现的。

缺点 由于采用存储转发方式工作 所以每个分组的传送延迟可达几百毫秒,时延比较大

帧方式(帧中继)是在OSI参考模型第二层,即数据链路层使用简化的方法传送和交换数据单元的一种方式。由于在链路层的数据单元一般称做帧,故称为帧方式。采用帧方式的重要特点之一是将x.25分组交换网中分组节点的差错控制、确认重传、流量控制、防止拥塞等处理过程进行简化,缩短了处理时间,这对有效利用高速数字传输信道十分关键。

信元方式(Cell Model)是以信元为单位进行传送的一种技术。信元长度是固定的,信元方式也是一种快速分组技术,他将信息切割成固定长度的信元。信元由两部分构成,即信元头和信元净荷,信元头包含地址和控制信息,信元净荷是用户数据。采用信元方式,网络不对信元的用户数据进行检查,但是信元头的CRC比特将指示信元地址信息的完整性。

信元方式仅是一个非常宏观的概念,在具体应用中,还需规范详尽的格式和协议。例如SMDS ATM等。(也就是说,信元方式是一个总概念,下面还有具体的实现,如ATM和SMDS都是信元方式的一种)

ATM是一种全新的面向连接的快速分组技术,他综合了分组交换和电路交换的优点,采用异步时分复用的方法,将信息流分成固定长度的信元,进行高速交换。

交换型多兆比特数据业务(Switched Multimegabit Data Service, SMDS是一种高速的、无连接信元交换业务,SMDS的主要原理是将信息切割成固定长度53个字节的信元在网上传输 采用帧方式的类似机理,由端系统完成差错检查和重传的功能。

帧中继技术的特点

帧中继仅完成OSI物理层和链路层核心层的功能,将流量控制、纠错等留给智能终端完成,大大简化的节点机之间的协议。同时,帧中继采用虚电路技术,能充分利用网络资源,因此帧中继具有吞吐量高、时延低、适合突发性业务等特点。帧中继对于ATM网络是一个重要的可选项,帧中继作为一种附加于分组方式的承载业务引入ISDN 其帧结构与ISDN的LAPD结构一致,可以进行逻辑复用 作为一种新的承载业务,帧中继具有很大的潜力。主要应用在广域网中,支持多种数据型业务。

帧中继技术可归纳为以下几点

1 帧中继技术主要用于传递数据业务,将数据信息以帧的形式进行传送。

2 帧中继传送数据使用的传输链路是逻辑连接,而不是物理连接,在一个物理连接上可以复用多个逻辑连接,可以实现带宽的复用和动态分配。

3 帧中继协议简化了X.25的第三层功能,使网络节点的处理大大简化,提高了网络的对信息的处理效率,采用物理层和链路层的两级结构,在链路层也只保留了核心子集部分。

4 在链路层完成统计复用、帧透明传输和错误检测,但不提供发现错误后的重传操作,省去了帧编号、流量控制、应答和监视等机制,大大节省了交换机的开销,提高了网络吞吐量,降低了通信时延,一般帧中继用户的接入速率在64kbps-2Mbps。

5 交换单元,帧的信息长度比分组长度要长,预约的最大帧长度至少要达到1600字节/帧 适合封装局域网的数据单元。

6 提供一套合理的带宽管理和防止拥塞的机制,用户有效的利用预约的带宽即承诺的信息速率 CIR 还允许用户的突发数据占用未预定的带宽,以提高网络资源的利用率。

7 与分组交换一样 帧中继采用面向连接的交换技术,可以提供SVC和PVC业务,但目前已应用的帧中继网络中 只采用PVC业务。

帧中继是链路层协议,链路层协议是非常重要的一层网络协议。

关于数据链路层

在所有计算机网络体系结构中都直接或间接地包含了数据链路层(在 TCP/IP 协议体系结构中数据链路层的功能包含在网络访问层中)。数据链路层和它下面的物理层其实本质作用都是一样的,就是用来构建进行网络通信、访问的通道,只不过物理层构建的是一条物理通道,而数据链路层构建的是真正用于数据传输的逻辑通道。广泛使用的 TCP/IP 协议体系结构中,物理层和数据链路层是集中划分在网络访问层这一层之中的。

划分数据链路层的必要性

虽然说物理层和数据链路层的本质作用都是用来构建网络通信、访问通道,但它们所建立的通信通道是不一样的。在物理层上构建的是物理链路,在数据链路层上构建的是逻辑链路或者数据链路,它们是不同的概念。

物理链路是指在物理层设备(包括传输介质、物理接口和收发器等)和相应物理层通信规程作用下形成的物理线路,是永久存在的,且是不可删除的(除非物理拆除);逻辑链路则是通信双方在需要进行数据通信时,在数据链路层设备和相应的通信规程作用下建立的逻辑链路,可以是永远存在的(如局域网中的以太网链路),也可以不是永久存在的(如广域网中的链路),是否永久存在要视具体的数据链路层服务类型而定。这里还有一个“链路”的概念,它是指相邻节点之间的那段数据线路。

在看到物理链路和逻辑链路之间区别的同时,又要看到它们之间的联系,那就是逻辑链路必须建立在物理链路之上。如果通信双方的物理线路都不通,是不可能建立用于数据传输的逻辑链路的。我们可以这样来理解它们之间的关系,物理链路是基础线路,相当于一条公路的路基,而逻辑链路是在物理链路之上的高级线路,可以理解为在公路上铺设了柏油或者水泥的车道。

无论在多么复杂的网络中,从逻辑意义上来讲真正的数据传输通道就是数据链路层中所定义的数据链路,只不过在要经过多个网络的数据通信中,数据链路是分段的,每个网络都有一段链路,这些链路段连接起来就是整个数据通信的数据链路

既然在“物理层”中构建了数据传输通道(也就是物理层中的“信道”),那为什么还要多加一个“数据链路层”的功能呢?其实这主要有两方面的原因:

一是由于物理层传输介质的多样性,通信规程也各不相同,性能不稳定,而数据链路层中构建的逻辑链路不考虑不同物理链路上传输介质及其通信规程上的区别(也就是我们通常所说的数据链路层可以屏蔽物理层中传输介质的不同),只是从逻辑意义上构建一条性能稳定、不受传输介质类型影响的逻辑数据传输通道。就像修建公路时,所用的材质也可能不一样,有的用普通的泥巴,有的用沙石,还有的用大石材。如果仅靠一些基础材料修建公路,可能修好的公路通车性能很差,有的甚至根本不能通车,只能步行。但如果我们在这些公路上再统一铺一层钢筋混凝土,那么这些由不同材料修建的公路就可能满足基本相同的通车性能的要求了。

再一个原因是,在物理层中数据是一位位地单独传输的,不仅数据传输效率低下,而且容易出现数据传输差错(如出现某些数据位丢失或者错位,在物理层中又没有相应的通信规程进行数据传输差错控制),就像一条不能通车的普通公路上,人只能一个个地步行,还可能出现迷路现象一样。而在数据链路层中数据是以“帧”为单位进行传输的,一个帧通常是有数千个比特位的,不仅传输效率提高,还不容易出错(因为在数据链路层中有专门的通信规程来负责数据传输差错控制),就像在能通车的公路上以车为单位运载人一样,不仅传输效率提高,还不容易出现各种交通事故。

数据链路层结构

各种计算机网络体系结构中,数据链路层的结构是不完全一样的。 OSI/RM TCP/IP 体系结构中,数据链路层就一层,而在局域网体系结构中是可细分为两个子层的,那就是逻辑链路控制(Logical Link ControlLLC)子层和介质访问控制(Medium Access ControlMAC)子层。设置 MAC 子层的目的主要是解决多路通信的介质争用和寻址,所以其主要适用于广播型链路和点对多点链路。对于点对点链路来说,没什么太大意义,因为点对点链路不存在介质争用,是一路通信所独占的。

在数据链路层中,与它的下一层 — 物理层相邻的是 MAC 子层,与它的上一层 — 网络层相邻的是 LLC 子层。所以 MAC 子层接受物理层的服务,为 LLC子层服务,而 LLC 子层则是接受 MAC 子层服务,为网络层服务。而各层(其他层也一样)之间接受服务或者提供服务的地方就是 SAPService Access Point,服务访问点)

从“LLC”的中文名称“逻辑链路控制”可以看出,LLC 子层的最基本功能就是负责数据链路层中逻辑链路(逻辑链路就是物理层信道中的物理链路在通过 LLC 子层协议作用后形成的虚拟链路)的控制,其中包括逻辑链路的建立和释放,控制信号交换、数据流量控制,解释上层通信协议传来的命令并且产生响应,以及克服数据在传送的过程当中所可能发生的种种问题,如数据发生错误、重复收到相同的数据、接收数据的顺序与传送的顺序不一致等。在 LLC 子层方面,IEEE 802 系列标准中只制定了一种标准——IEEE 802.2,各种不同局域网都使用相同的 LLC 子层通信标准。

在计算机网络中进行的数据传输,虽然实际上是从发送端的高层一路经过数据链路层、物理层,然后再从接收端的物理层、数据链路层一直传输到对应的高层(如图 5-5 中实线箭头所示),而从逻辑意义看,数据是从发送端数据链路层到接收端数据链路层间的一段段逻辑链路上进行传输的(如图 5-5 中虚线箭头所示),因为在物理层中传输的比特流最终还是要转换成数据帧在数据链路层中传输。

数据链路层主要功能及实现原理

数据链路层位于网络体系结构中“网络层”(在 TCP/IP 协议体系结构中称网际互连层)的下层,所以它的一项基本功能就是向网络层提供透明、可靠的数据传输服务(在计算机网络体系结构中,下一层是为相邻的上一层服务的)。“透明”是指要使在数据链路层上所传输的数据在内容、格式及编码上都没有限制,也就是要使一些本来用于特殊用途的控制字符也能像正常的数据一样传输,使接收端不要误认为这些字符为控制字符 ;可靠的传输使数据从发送端无差错地在数据链路上传输到目的接收端。总体而言,数据链路层(其实这里主要是针对 LLC 子层)的主要功能就是四个方面:数据链路管理、封装成帧、透明传输、差错控制。

数据链路管理

在数据链路层中要形成一条更有利于数据传输的数据链路,而不是直接利用下面物理层中建立的物理链路。物理链路在没有人为拆除时是永久存在的,而数据链路一般是非永久存在的(但局域网中的数据链路是永久的),仅当有数据传输时建立并存在,在数据传输完后自动拆除。数据链路是由数据链路层中的 LLC 子层通过相应的通信规程(也就是通常所说的协议)建立并管理的。

数据链路层提供的服务类型

根据数据链路层协议的不同,所建立的数据链路类型也会有不同。同时我们知道,数据链路层是为上面的网络层提供服务的,所以这些不同协议所建立的数据链路向网络层提供的服务类型也有所不同。总体上可把这些数据链路服务分为以下三类:有确认的面向连接服务、有确认的无连接服务、无确认的无连接服务。前者称为面向连接服务(Connection-oriented Servce),后面两者称为无连接服务(Connetionless Service

有确认的面向连接服务里面包括两层含义 :一是在提供服务时,必须先建立好双方通信连接 ;二是在提供服务时,必须要求对方确认后才进行。这种服务类型存在三个阶段,即数据链路建立、数据传输、数据链路释放等阶段。

大多数广域网中通信子网的数据链路层协议采用有确认的面向连接服务,如 SLIP(串行

线路协议)、PPP(点对点协议)、PPPoE(基于以太网的点对点协议)、HDLC(高级数据链

路控制)协议等

有确认的无连接服务与有确认的面向连接服务的相同之处就是接收端在接收到的每一个

数据帧时都向发送端确认 ;不同之处在于它在进行数据传输前是不需要建立专门的数据链路的,自然也不需要在数据传输结束后释放数据链路(事实上是因为这类服务所用的数据链路已建立起来,而且是永久存在的,所以不用另外建立,如局域网中的链路)。

无确认的无连接服务与前面的有确认的无连接服务的相同之处就在于它们都不需要在进行数据传输前先建立专门的数据链路,也就是无须先在通信双方建立通信连接 ;不同之处就是它在进行数据传输时不要求接收端对所接收到的每一个数据帧进行确认。常用的以太网中所使用的各种以太网协议就是采用这种服务的,因为以太网中的数据链路性能非常好,数据可靠传输有保障。在以太网中的数据链路始终是存在的,不用另外建立,在以太网中进行数据传输时接收端也不用对接收到的每一帧进行确认。

LLC 子层的链路管理功能主要是针对前面所介绍的有确认的面向连接服务类型(主要应

用于广域网中)。它包括三个主要阶段:链路建立、链路保持、链路释放

在这种数据链路层服务中,链路两端的节点要进行通信前,发送端的数据链路层必须先确认对方已处于就绪状态,并交换一些必要的信息以对帧序号进行初始化,然后双方才能建立连接 ;在传输过程中各个数据连接是要持续保持的 ;如果出现差错,需要重新初始化,重新自动建立连接。传输完毕后则要释放所占用的数据连接,以供其他通信所用。

数据连路层的这种链路连接的建立、维持和释放过程就是数据链路层的链路管理功能。

这里主要想理解面向连接的意思,

面向连接和无连接指的都是协议。也就是说,这些术语指的并不是物理介质本身,而是用来说明如何在物理介质上传输数据的。面向连接和无连接协议可以,而且通常也确实会共享同一条物理介质

  如果两者的区别与承载数据的物理介质无关,又和什么有关呢?它们的本质区别在于,对无连接协议来说,每个分组的处理都独立于所有其他分组,而对面向连接的协议来说,协议实现则维护了与后继分组有关的状态信息

无连接协议和面向连接协议的概念

  无连接协议中的分组被称为数据报(datagram),每个分组都是独立寻址,并由应用程序发送的。从协议的角度来看,每个数据报都是一个独立的实体,与在两个相同的对等实体之间传送的任何其他数据报都没有关系,这就意味着协议很可能是不可靠的。也就是说,网络会尽最大努力传送每一个数据报,但并不保证数据报不丢失、不延迟或者不错序传输。

  另一方面,面向连接的协议则维护了分组之间的状态,使用这种协议的应用程序通常都会进行长期的对话。记住这些状态,协议就可以提供可靠的传输。比如,发送端可以记住哪些数据已经发送出去了但还未被确认,以及数据是什么时候发送的。如果在某段时间间隔内没有收到确认,发送端可以重传数据。接收端可以记住已经收到了哪些数据,并将重复的数据丢弃。如果分组不是按序到达的,接收端可以将其保存下来,直到逻辑上先于它的分组到达为止。

  典型的面向连接协议有三个阶段。第一阶段,在对等实体间建立连接。接下来是数据传输阶段,在这个阶段中,数据在对等实体间传输。最后,当对等实体完成数据传输时,连接被拆除。

  一种标准的类比是:使用无连接协议就像寄信,而使用面向连接的协议就像打电话。

这里对链路的建立还是有些模糊不清,一说到建立链路,脑子中就会出现一条虚拟的链路,连接从一端到另一端,那么这条虚拟链路在中间经过多个设备的情况下,在设备上这样的情景呢?以前见过一个协议:资源预留协议。感觉链路的建立在中间的设备上要预留资源,这样建立的链路才符合自己的想象,也就是与物理链路相类似。但是现在看,实际情况很可能不是这样,所谓的建立链路,只是在两端建立,就是甲端发送一个连接建立的请求,并携带一些协商参数,到达乙端,乙端接受这些请求,并发送收到确认,这时两端只是在这两端设备上启动两个进程,并各自确定进程的目的地址,使用的协议,编号方案、差错控制、流控等,至于中间的传输线路没有规定,如下图

虚线代表甲乙两端建立了链接,而这条链接在中间是走哪一条是不确定的,因为中间有三条线路可走,就有可能出现传输的顺序出现错乱,这与面向链接的规定不符,这时就由甲乙两端的面向连接进程负责顺序的排列,最终对于上层协议,就好像是数据帧按顺序到达。也许这就是链接的含义,其他的一些在物理链路上表现出来的传输特性,都由两端的这个进程(或说协议)来维护。链接的维持就是周期性的使两端知道对端还在工作,还有维持刚才的那个进程,所谓链接的拆除,就是撤销刚才的进程,这样一端就不知道另一端,链路拆除。

帧中继协议的一些概念

帧中继提供的是一种面向连接的传输服务。

用户在本地传输数据将按照顺序通过网络到达终点,对端在接收数据时不需要对收到的数据进行重新排序。帧中继在传输数据前会通过网络和对方建立逻辑上的通路,这条通路叫做虚电路!那么什么叫做“面向有连接的服务”呢?上面已经提到了,就是数据在传输前已经建立了固定的连接,用户始终使用这一信道传输数据,不会发生信息错序的问题。和此对应的是“面向无连接的网络服务”,是指在传输之前不建立固定的连接,用户发送的数据可能会通过不同的途径(选路的结果)到达终点,所以终点接收到的数据顺序和对方发送的顺序可能不一致,从而需要重新排序。由路由器搭建的网络就属于这种网络。

上图就涉及到链路建立后,链路是只沿一条路径走还是几条路径走的问题。

帧中继协议是一种简化X.25的广域网协议,在控制面上提供虚电路的管理、带宽管理和防止阻塞等功能,在用户面上它仅完成物理层和链路层的功能,在链路层完成统计复用、帧透明传输和错误检测,但是不提供错误后重传操作。

帧中继协议是一种统计复用的协议,它在单一物理传输线路上能够提供多条虚电路,每条虚电路是用DLCI来标识的。虚电路是面向连接的,它提供了用户帧按顺序传送至目的,从建立虚电路方式的不同将帧中继虚电路分为两种类型:永久虚电路——PVC和交换虚电路——SVC。

永久虚电路是指给用户提供固定的虚电路,这种虚电路是通过人工设定产生的。如果没有人取消它,它一直是存在的。交换虚电路是指通过协议自动分配的虚电路。当本地设备需要与远端设备建立连接时,它首先向帧中继交换机发出建立虚电路请求报文,帧中继交换机如果接受该请求,就为它分配一虚电路。在通信结束后,该虚电路可以被本地设备或交换机取消 也就是说这种虚电路的创建/删除不需要人工操作。

虚电路的DLCI只在本地接口和与之直接相连的对端接口有效。 只具有本地意义,不具有全局有效性,即在帧中继网络中,不同的物理接口上相同的DLCI并不表示是同一个虚连接。 例如在路由器串口1上配置一条DLCI为100的PVC,在串口2上也可以配置一条DLCI为100的PVC,因为在不同的物理接口上这两个PVC尽管有相同的DLCI 但并不是同一个虚连接。(这一段需要好好琢磨一下)

在帧中继中支持子接口的概念,在一个物理接口上可以定义多个子接口,子接口和主接口共同对应一个物理接口,子接口只是逻辑上的接口,在逻辑上与主接口的地位是平等。在子接口上可以配置IP地址、DLCI和MAP,在同一个物理接口下的主接口和子接口不能指定相同的DLCI,因为他们对应同一个物理接口,每个物理接口上的DLCI必须是唯一的。

帧中继地址映射 MAP 是把对端设备的协议地址与连接对端设备的DLCI关联起来,以便高层协议使用对端设备的协议地址能够寻址到对端设备。

目前在帧中继中使用最多的方式是永久虚电路方式,即手工配置虚电路方式。

由于帧中继虚电路是面向连接的,本地不同的DLCI连接到不同的对端设备,所以,可以认为本地DLCI是对端设备的“帧中继地址”

帧中继地址映射是把对端设备的协议地址与对端设备的帧中继地址(本地的DLCI)关联,以便高层协议能根据对端设备的协议地址寻找到对端设备

帧中继主要用来承载IP协议,在发送IP报文时,首先从路由表中找到报文的下一跳地址,然后查找帧中继地址映射表,确定下一跳的DLCI。地址映射表存放对端IP地址和下一跳的DLCI的映射关系。地址映射表可以手工配置,也可以由Inverse ARP协议动态维护。

帧中继的应用

帧中继比较典型的应用有两种:帧中继接入和帧中继交换。帧中继接入即作为用户端承载上层报文,接入到帧中继网络中。帧中继交换指在帧中继网络中,直接在链路层通过PVC交换转发用户的报文。

帧中继网提供了用户设备,如路由器、桥、主机等之间进行数据通信的能力,用户设备被称作数据终端设备,即DTE。为用户设备提供接入的设备属于网络设备,被称为数据通信设备 即DCE。DTE和DCE之间的接口被称为用户-网络接口,即UNI,网络与网络之间的接口被称为网间网接口,即NNI。帧中继网络可以是公用网络或者是某一企业的私有网络 如图

上图两台数据终端设备(RouterA和RouterD)通过帧中继网络(FR Network)实现互连,RouterB和RouterC组成一个简单的帧中继交换网(FR Switch)。DTE与DCE只是在用户网络接口UNI(FR Access)处才进行的区分,而且DTEDCEDLCI必须相同;两台DTE之间建立的永久虚电路PVC(Permanent Virtual Circuit),不同虚电路段可以对应不同的DLCI。

对于DTE侧设备,PVC的状态完全由DCE侧的设备决定。对于DCE侧设备,PVC的状态由网络来决定。

在两台网络设备直接连接的情况下,DCE侧的设备的虚电路状态是由设备管理员来设置的。

本地管理接口LMI(Local Management Interface)协议通过状态请求报文和状态报文维护帧中继的链路状态和PVC状态。

帧中继PVC交换

帧中继PVC交换是根据PVC路由表来完成的,PVC路由表有如下结构:

输入接口 | 输入DLCI  |  输出接口 |  输出DLCI

PVC路由表可以手工产生的,也可以自动产生。根据该路由表就可以完成帧交换功能。我们可以看到帧交换功能是非常简单的,比较麻烦的是PVC状态的维护。

当一个PVC经过多个网络时,该PVC称为多网络PVC(Multi-network PVC),它是由每个单一网络的PVC构成,这种单一网络的PVC称为PVC段(PVC segment)如图2.4

只有所有的PVC段都设置完成,才构成一条多网络PVC。由于每个PVC段是在各自网络内设置的,不可能同时完成,通过NNI的LMI协议能够双向传递PVC段的状态,该状态一直传递到两端的DCE,再由DCE通知DTE,从而DTE能够了解PVC的端到端状态。如果所有的PVC段都设置完成,DTE能够发现一条可用的多网络PVC。

帧中继的帧封装和帧格式

上图的说法有待推敲,这里的帧格式封装是一个怎样的过程呢?是以太网帧被去掉以太网帧头,将上层数据进行帧中继封装,还是直接将以太网帧整个封装在帧中继帧中呢,感觉应该是前者,如果是后者,感觉应该叫以太网帧over 帧中继,即帧中继封装以太网帧。

帧中继帧格式

通过上一章的配置命令,在配置帧中继时有两个选项,link-protocol fr ietf | nonstandard,说明帧中继有两种封装格式。

帧中继的封装有两种格式:CISCO和IETF,两种封装略有不同,不能兼容。

第一种,IETF封装格式:

地址字段

地址字段的主要用途是区分同一通路上多个数据链路连接,以便实现帧的复用/分路。

Q.922地址一般由2个字节组成 含有一个10-bit的DLCI 在某些网络中,Q.922地址会可选的增加到3或4个字节 如图3.2所示:

地址字段通常包括地址字段扩展比特EA,命令/响应指示C/R,帧可丢失比特DE,前向显式拥塞比特FECN,后向显式拥塞比特BECN,数据链路连接标识符DLCI。

其中DLCI是一个10bit的数字值,范围从0到1023,DLCI用来标识用户网络接口(UNI)或网络网络接口(NNI)上承载通路的虚连接。

控制字段

控制字段代表帧的类型,IETF封装格式的控制字段值为十六进制03,即未编号帧

Optional Pad字段

Optional Pad字段用来使该帧的其余部分对齐到一个两字节的边界,即字对齐。该字段是可选的,如果需要,其值为0

NLPID字段

Network Level Protocol ID (NLPID) 字段由ISO和CCITT管理,用于区别各种不同的协议,如IP、CLNP和SNAP等。该字段告诉接收方该帧封装的是什么协议的包。在帧中继封装中NLPID的值不能为0。(这里因为NLPID不能为0,所以,这就跟前面的optional Pad能够区别开来了,如果Control字段后是0,则是Optional Pad字段,如果不是0,说明没有Optional Pad字段,直接是NLPID字段。)

有些协议分配了NLPID,但因为NLPID的值有限,不是所有的协议都分配了指定的NLPID,当没有分配NLPID的协议经过帧中继网络时,将使用NLPID为0x80的值,指明后面跟随的是SNAP。OUI为3个字节,值随协议的不同而不同,PID是协议的类型,有一个pad填充字节来把协议数据对齐到两个字节边界。如图3.3所示,如果一个协议分配了NLPID 将使用如图3.4之格式。该NLPID封装不需要一个pad字节来对齐

在IETF封装中,Q.933的NLPID为0x08,IP的NLPID为0xCC,IPX、INARP和FRAGMENT帧使用SNAP的NLPID ,IPX和INARP的OUI的值为0x00-00-00,FRAGMENT的OUI的值为0x00-80-C2,PID值分别为0x8137、0x0806、0x000D。

帧校验序列字段 FCS

FCS字段是一个16比特的序列,FCS具有很强的检错能力,它能检测出在任何位置上的3个以内的错误,所有奇数个错误,16个比特之内的连续错误以及大部分的大量突发错误。

CISCO封装

CISCO路由器除支持IETF封装格式外,还支持一套自己的标准的封装格式。

CISCO封装格式与IETF封装格式在LMI及INARP帧的封装上相同,仅在IP及IPX帧的封装上有所不同,CISCO的封装格式相对IETF来说比较简单, 它的IP和IPX帧的帧头只有4个字节 前两个字节与IETF相同,为Q922地址,后两个字节为协议的NLPID, IP帧为0x0800,IPX为0x8137。

 

LMI协议简介

在永久虚电路方式时,不管是网络设备还是用户设备都需要知道PVC的当前状态(可用/不可用),监控永久虚电路状态的协议叫本地管理接口(Local Management Interface LMI)协议 。

本地管理接口LMI协议通过状态请求报文和状态报文维护帧中继的链路状态和PVC状态。本地管理接口LMI模块用于管理永久虚电路PVC,包括PVC的增加、删除,PVC链路完整性检测,PVC的状态等。

系统支持三种标准LMI协议类型:

● ITU-T的Q.933附录A。

● ANSI的T1.617附录D。

● 非标准兼容类型。

该协议属于控制面上的功能。

DTE设备每隔一定的间隔发送一个状态请求报文查询链路状态,DCE设备收到该报文后,应立即发送状态响应报文。如果DTE设备在规定的时间内没有收到响应,就记录该错误。如果错误次数超过门限,DTE设备就认为物理通路不可用,所有的虚电路都不可用。

LMI  协议规程

LMI协议规程包括:

● 增加PVC的通知

● 删除PVC的探测

● 已设置的PVC的可用或不可用状态的通知

● 链路完整性检验

LMI  协议的消息(Message )类型

LMI协议的消息类型有两种:

● 状态请求(Status Enquiry)消息。状态请求消息由DTE端发送用来向DCE端请求虚电路的状态或验证链路完整性。

● 状态(Status)消息。状态消息是当DCE端接收到状态请求消息后向DTE端发送的一个应答消息,用于传送虚电路的状态或验证链路完整性。

LMI  协议的报文(Report )类型

LMI协议的报文(Report)类型有三种:

● 链路完整性验证(Link Integrity Verification Only)报文。链路完整性验证报文只用于验证链路的完整性。

● 全状态(Full Status)报文。全状态报文除了用于验证链路的完整性,还传递PVC的状态。

● 异步PVC状态(Single PVC Asynchronous Status)报文。异步PVC状态报文不具有状态请求消息,只是用于PVC状态改变时,及时通知DTE端PVC的状态。

在用户—网络接口(UNI)上,DTE的PVC状态完全是由DCE决定的,DCE负责通知DTE在UNI中所有PVC的状态。因此DTE只需定时询问DCE,就可获得该接口上当前PVC情况。DCE的PVC状态由网络设备来决定。

在网络-网络接口(NNI)上,两侧的网络设备定时交换PVC状态,它们也是使用LMI协议来完成的。与UNI不同的是,两侧的网络设备都向对端发送查询报文,收到查询报文后,都能进行响应。

InARP协议

逆向地址解析协议(Inverse ARP)的主要功能是求解每条虚电路连接的对端设备的IP地址。

如果知道了某条虚电路连接的对端设备的协议地址,在本地就可以生成对端IP地址与DLCI的映射(MAP),从而避免手工配置地址映射。

它的基本过程是:

1. 每当发现一条新的虚电路时,如果本地接口上已配置了协议地址,Inverse ARP就在该虚电路上发送Inverse ARP请求报文给对端。该请求报文包含有本地的协议地址。对端设备收到该请求时,可以获得本地的协议地址,从而生成地址映射,并发送Inverse ARP响应报文进行响应,这样本地同样生成地址映射。

2. 如果已经手工配置了静态MAP或已经建立了动态MAP,则无论该静态MAP中的对端地址正确与否,都不会在该虚电路上发送Inverse ARP请求报文给对端,只有在没有MAP的情况下才会向对端发送Inverse ARP请求报文。

3. 如果在Inverse ARP请求报文的接收端发现,对端的协议地址与本地配置的MAP中的协议地址相同,则不会生成该动态MAP。

Inverse ARP报文的格式与标准的ARP报文格式相同

帧中继的基本原理

LMI  协商过程

如 图4-3所示,两台路由器通过串口直连,

RouterA工作在帧中继的DCE方式。RouterB工作在帧中继的DTE方式。

LMI协商过程如下:

1. DTE端定时发送状态查询消息(Status Enquiry)。

2. DCE端收到询问消息后,用状态消息(Status)应答状态询问消息(Status Enquiry)

3. DTE解析收到的应答消息(Status),以了解链路状态和PVC状态。

4. 当两端设备LMI协商报文收发正确的情况下,链路协议状态变为Up状态,PVC状态变为Active状态。

5. 帧中继LMI协商通过。

InARP  协商过程

当帧中继LMI协商通过,PVC状态变为Active后,PVC开始InARP协商过程。

InARP协商过程如下:

1. 如果本地接口上已配置了协议地址,那么设备就在该虚电路上发送Inverse ARP请求报文给对端设备。该请求报文包含有本地的协议地址。

2. 对端设备收到该请求后,可以获得本端设备的协议地址,从而生成地址映射,并发送Inverse ARP响应报文进行响应。

3. 本端收到Inverse ARP响应报文后,解析报文中的对端地址,也生成地址映射。

4. RouterA端生成地址映射(10.1.1.2<--->100),RouterB端生成地址映射(10.1.1.1<--->100)。

经过LMI和InARP协商后,帧中继接口的协议状态变为Up状态,并且生成了对端IP地址映射,这样PVC上就可以承载IP报文了。

帧中继子接口

帧中继子接口的引入

帧中继网络可以将分散在不同地点的网络连接起来,可能的网络结构有星型结构、部分网状相连(Partial-meshed)和全网状相连(Full-meshed)。

从经济的角度考虑,星型结构是最优的网络结构,因为这种结构使用的PVC的数量最少,中心节点通过在一个接口上使用多个PVC将多个分散的分支节点连接起来。这种结构主要用于总部连接多个分部的情况。这种结构的缺点是各个分支节点之间通信需要经过中心节点进行中转。

在全网状相连结构中,所有的节点都有PVC和其他的节点相连,从一个节点到另外一个节点不需要其他节点中转,另外这种结构可靠性很高,当直连的PVC故障的时候可以通过其他的节点中转。缺点是需要的PVC数量较多,当网络中节点的数量增加时,需要的PVC数量也急剧增加,也就是我们平常所说的N平方问题。

在部分网状相连结构中,不是所有的节点都有到其他节点的PVC,优缺点介于前两者之间。帧中继默认的网络类型是非广播多点可达NBMA(Non-broadcast Multiaccess),也就是说虽然帧中继网络中的各个节点之间相互连通,但是和以太网不同的是这种网络不支持广播,如果某个节点得到路由信息,它需要复制多条然后通过PVC逐条发送到相连的多个节点。

为了减少路由器环路的产生,水平分割机制(在路由协议部分会学到)不允许路由器把从一个接口进来的更新信息再从该接口发送出去。

如 图4-4所示,RouterB通告给RouterA一条路由信息,由于水平分割机制,RouterA不能通过接收此路由信息的Serial1/0/0将这条信息通告给RouterC和RouterD。要解决这个问题有几个方法:

● 一个方法是使用多个物理接口连接多个相邻节点,这需要路由器具备多个物理接口,增加了用户的成本。

● 另外一个方法是使用子接口,也就是在一个物理接口上配置多个逻辑接口,每个子接口都有自己的网络地址,就好像一个物理接口一样。

● 或者是关闭水平分割,这需要路由协议的支持,另外关闭水平分割增加了产生路由环路的几率。

在RouterA上接口使用子接口,那么在Switch对应的接口上是否也需要使用子接口???另外,上图中RouterB、C、D使用的DLCI都是16,在Switch中是否会造成混乱??

我们可以在串口线路上定义这些逻辑子接口。每一个子接口使用一个或多个DLCI连接到对端的路由器。在子接口上配置了DLCI后,还需要建立目的端IP地址和该DLCI的映射。

这样,虽然在RouterA上仅拥有一个物理串口Serial1/0/0,但是在物理串口Serial1/0/0上现在定义了Serial1/0/0.1子接口上的DLCI到RouterB,Serial1/0/0.2子接口上的DLCI到RouterC,和Serial1/0/0.3子接口上的DLCI到RouterD

配置式样:

AR1作为DCE,AR2作为DTE直接帧中继连接

这时,进行PING命令ping 192.168.2.1是不通的

这时在AR1上查询

可见pvc和map都没有建立起来,LMI有信息。

在AR1,即DCE上继续如下配置:

即在DCE上配置DLCI,此时两端联通

通过MAP,可见对端地址192.168.2.1 本地端口serial4/0/0,DLCI为100.

通过这个实例,可见只要DCE上配置DLCI,则通过InARP和LMI协议,DCE和DTE都能发现PVC以及建立MAP映射表。

第二个实验:

Ar5的dlci为100,ip为1.1.1.1/24  ar6的dlci为200,ip为1.1.1.2/24,相互联通

Ar7的dlci为300,ip为2.2.2.1/24  ar8的dlci为400,ip为2.2.2.2/24,相互联通

配置:

Ar5

AR6

AR7

AR8

此时双方还是不通的,需要对帧中继交换机进行配置,映射如下:

配置好映射后,查看各路由器的map-info

此时AR5——AR6互通,AR7——AR8互通。

对于上图的拓扑,B\C\D的DLCI全部配置为16,感觉是不对的,虽然有描述说是DLCI只具有本地意义,虚电路的DLCI只在本地接口和与之直接相连的对端接口有效。 只具有本地意义,不具有全局有效性,即在帧中继网络中,不同的物理接口上相同的DLCI并不表示是同一个虚连接。 例如在路由器串口1上配置一条DLCI为100的PVC,在串口2上也可以配置一条DLCI为100的PVC,因为在不同的物理接口上这两个PVC尽管有相同的DLCI 但并不是同一个虚连接。它的举例是同一路由器上的两个端口配置相同DLCI,但是这两个接口不能连接到同一台帧中继交换机上,就如上图这样,因为在帧中继交换机上的PVC路由表是

输入接口 | 输入DLCI  |  输出接口 |  输出DLCI

并且根据其帧格式,其地址是DLCI,是根据DLCI转发的,如果同一个Switch上的多个接口的DLCI相同,相当于点对多点转发了,而又根据帧中继的MAP映射表,如上图通过dis fr map-info的查询结果,一个DLCI只能对应一个IP地址,无法实现一个DLCI同时对应多个对端IP。要实现上图的逻辑,在RouterA上要使用子接口:




关键是AR4的配置,因为串口默认是PPP协议,所以无法创建子接口,需要进入接口,修改为FR协议,然后fr的接口类型不能再子接口配置,应该接口上配置,子接口上只配置IP和DLCI就行了。然后配置交换机的PVC路由

对于帧中继交换机,一个接口上可以同时配置多个DLCI。

其实,最终的PVC还是同上一个实验一样,使用的IP一个不少。

模拟实验

这个测试主要了解帧中继交换机之间的连接,两台交换机通过一个端口一条物理线路连接,配置:


一开始的想法是:因为DLCI具有本地意义,所以在AR1与AR3的DLCI都配置的100,AR2和AR4都配置的200,但他们不代表同一条链路,交换机的端口S0/0/0配置为400,两边相同,这种配置下,只有AR1与AR3能相通,AR2与AR4不通。

如果两台交换机的相连接口的DLCI配置的不一样,如一个是300,一个是400,则都不通。

如果设置多个不同的DLCI,如下:


则都相通。

也就是说,两台交换机通过一条物理线路连接,同一条链路的两端的DLCI要配置相通,不同的链路要配置不同的DLCI。其实就相当于建立子接口,在子接口上配置DLCI。

我原来的想法是利用一条物理线路,利用一个DLCI实现多条逻辑链路的连接,即交换机之间的链路物理上是共享一条,逻辑上也是共享一条,现在看来不行,这样一来,一台交换机最多也就建立500多条链路,一半DLCI用于连接用户,一半用于与其他交换机连接,DLCI会不会不够用??

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值