存储转发(Store and Forward)是计算机网络领域使用得最为广泛的技术之一,以太网交换机的控制器先将输入端口到来的数据包缓存起来,先检查数据包是否正确,并过滤掉冲突包错误。确定包正确后,取出目的地址,通过查找表找到想要发送的输出端口地址,然后将该包发送出去。正因如此,存储转发方式在数据处理时延时大,这是它的不足,但是它可以对进入交换机的数据包进行错误检测,并且能支持不同速度的输入/输出端口间的交换,可有效地改善网络性能。它的另一优点就是这种交换方式支持不同速度端口间的转换,保持高速端口和低速端口间协同工作。实现的办法是将10Mbps低速包存储起来,再通过100Mbps速率转发到端口上。
存储转发过程
存储转发特征
(1)错误检验功能
CRC的作用是对前面的数据进行校验,防止出错。由于存储转发 只有当收取了整个帧之后才开始转发进程,所以当收取到CRC字段的时候,可以进行错误的校验,交换机把已经收到的数据进行CRC计算,把计算出来的值同接收到的CRC字段的值进行比较,如果两者相同则说明数据没有被破坏,如果不同则说明已经破坏。
(2)自动缓存
(3)策略功能
也即ACL访问控制列表的功能,访问控制列表主要是通过策略来对数据进行控制,ACL所涉及的控制层面从OSI的第二层到第七层都有,既然存储转发把整个帧都存储下来了,那么可以想像如果交换机拥有了处理多层数据的能力就可以执行ACL了,毕竟ACL所参照的目标在接收的帧中都已经存在了。
存储转发交换方式
存储转发技术又分为报文交换技术和分组交换技术。
(1)报文交换技术
当报文交换技术用于通信双方为相邻接点的情形,信源直接将报文投递给信宿。
当报文交换技术的通信双方不在同一物理网络时,则将准备好的报文经由一定的路由选择机制通过中间节点传给接收方。此时,中间节点不再只是起连接的作用,其还具有存储和处理数据的能力。
在报文交换系统中,由于一次交换处理的数据量大,因而需要对通信处理的存储和处理能力提出较高的要求,使得通信成本大大增加。且这种系统还易造成堵塞,灵活性和可靠性都会下降。同时,数据交换过程中出现差错的可能性也很大,且检测困难。
(2)分组交换技术
分组交换技术是分割一个报文中有效载荷数据,并加上一定的控制信息后及报文号,组建出一个个分组后,以分组为单位进行传输的一种数据交换模式。
此交换系统中的中间节点也不再只是简单的连接链路,而需要判断分组的对错,并进行路由选择。
分组交换技术中为避免造成网络堵塞,采用了一定的流量控制机制。报文的分组和重组会耗费大量时间,但它只发生在收发处,而分组的处理效率高,因而整体的效率也较高。可是由于通信过程中要加入一些通信控制数据,因此会造成许多重复的额外的开销;传输过程中分组有可能出现丢失、破环、乱序等情形,相关人员还需采取一定的策略去解决这些问题。
分组交换技术根据实现机制的不同分为:数据报交换技术和虚电路交换技术。
① 数据报交换技术
数据报交换技术和报文交换技术相似,不同的是前者每次传输的数据包时分组,而后者传输的是整个报文。
这是一种“无连接”的数据交换技术,它在数据传输的过程中具一定的路由算法动态选择数据报的传输路径,且这是一种无序传输。
②虚电路交换技术
虚电路交换技术与数据报交换技术不同,它是一种面向连接的交换技术。其之所以称之为“虚电路”是因为在数据交换的过程中,通信双方间会建立专门的动态逻辑电路。不同于电路交换系统中的物理电路,这个逻辑电路时非独占使用的,而是类似于信道复用技术复用中间节点的策略进行数据交换。但由于每次数据交换的时间都非常短暂,因此我们可以将所有分组的传输看作是同时进行的。每一个成功的虚电路需要分配一个识别号码,编码到分组里去,以免造成混乱。分组通过建立的这一专用通道进行有序传输,因此每个分组中不再包含控制数据,降低了辅助开销。
虚电路交换技术是一种可靠性较强,系统效率高的交换技术。其是在工作过程中建立专用的逻辑连接,每个节点可以和任何节点建立多条虚电路连接。由于不带辅助信息,系统额外开销小,中间节点具有一定的差错检测机制。
数据报交换技术和虚电路交换技术中的分组都需根据一定的路由算法选择通信路径,但前者的每一个分组都要单独寻找路由,而虚电路交换技术中一次通信过程的所有分组只需进行一次路由选择即可。显然,按数据报方式工作的路由计算要比按虚电路方式频繁。
技术原理
存储转发技术要求
交换机在接收到全部数据包后再决定如何转发,而直通转发则是在交换机收到整个帧之前就已经开始转发数据了,这样可以有效地降低交换延迟。但是,如果交换机在没有完全接收并检查数据包的正确性之前就已经开始了数据转发,这样在通讯质量不高的环境下,交换机会转发所有的完整数据包和错误数据包,这实际上是给整个交换网络带来了许多垃圾通讯包。因此,直通转发技术适用于网络链路质量较好、错误数据包较少的网络环境。
优缺点
优点:可靠性很好,因为它把输入端口的数据帧先存储在交换机缓存中,然后进行CRC检查。若检测到该帧出现差错,则丢弃该帧,否则取出该帧的目的地址,通过查找MAC地址表获得输出端口,再转发出数据帧; 并且存储转发交换方式还支持不同的速度的端口间的转换,方便高速端口和低速端口之间的协议工作。
缺点:根据存储转发的一些特点,可以看到存储转发所能提供的特点还是很具有诱惑力的,也很完善,但是存储转发有一个致命的弱点就是速度问题。存储转发交换方式的数据处理时延时较大,主要原因输入输出端都要经过串并转换,这样繁琐的过程会影响响应速度,也就造成了高延迟的现象。