全光网技术宇林之数据交换技术浅谈
数据交换(Data Switching)是指在多个数据终端设备(DTE)之间,为任意两个终端设备建立数据通信临时互连通路的过程。数据交换可以分为:电路交换、报文交换、分组交换和混合交换。
电路交换原理与电话交换原理基本相同。电路交换的缺点是电路的利用率低,双方在通信过程中的空闲时间,电路不能得到充分利用。
报文交换
报文交换的原理是当发送方的信息到达报文交换用的计算机时,先存放在外存储器中,待中央处理机分析报头,确定转发路由,并选到与此路由相应的输出电路上进行排队,等待输出。一旦电路空闲,立即将报文从外存储器取出后发出,这就提高了这条电路的利用率。报文交换虽然提高了电路的利用率,但报文经存储转发后会产生较大的时延。
分组交换
分组交换也是一种存储转发交换方式,但与报文交换不同,它是把报文划分为一定长度的分组,以分组为单位进行存储转发。这就不但具备了报文交换方式提高电路利用率的优点,同时克服了时延大的缺点。
目前绝大部分的交换设备都是使用的分组交换方式。
从广义上讲,任何数据的转发都可以叫做交换。但传统的、狭义的第2层交换技术,仅包括数据链路层的转发。本文中介绍的就是这种第二层交换技术。
在这样的交换设备中,设备会对进入端口的每一个帧都进行转发操作。交换设备转发处理包括:泛洪、转发和丢弃三种方式。
“泛洪(Flooding):
从某一端口进入交换设备的帧通过其所有其他端口转发出去;
“转发(Forwarding):
从某一端口进入交换设备的帧通过另一个端口转发出去;
“丢弃(Discarding):
交换设备把从某一端口进来的帧直接丢弃,即不转发出去。需要注意的是,正常情况下,一个帧永远都不会从接收此帧的端口转发出去,即只进不出。
交换设备一般会维护一张“MAC 地址转发表”。MAC 地址转发表是一张基于端口的二层转发表,是交换设备实现二层报文快速转发的基础。其作用是可以将进入交换设备端口的单播帧进行快速转发。MAC 地址转发表的表项一般包括:
· 目的 MAC 地址
· 端口所属的 VLAN ID
· 转发端口号
交换设备通过查找 MAC 地址转发表得到二层报文的转发端口号,从而实现二层报文的快速转发。MAC 地址转发表中的表项分为静态表项和动态表项,静态表项是人工设置的,而动态表项则是由交换设备通过解析接收到的帧学习得来的,学习 MAC 地址的过程如下:
◆ 如果从某端口(假设为端口 1)收到一个数据帧,交换设备就会分析该数据帧的源 MAC 地址(假设为 SA1,即Source Address 1),并认为目的 MAC 地址为 SA1 的报文可以由端口 1 转发。
◆ 如果 MAC 地址转发表中已经包含 SA1,交换设备将对应表项进行更新,主要更新的是MAC地址的age,可以理解为保持该MAC地址的鲜活度而不致老化(这里先不考虑MAC地址迁移功能,该功能以后再做讲解)。
◆ 如果 MAC 地址转发表中尚未包含 SA1,交换设备则将这个新 MAC 地址(以及该 MAC 地址对应的转发端口和VLAN值)作为一个新的表项加入到 MAC 地址转发表中。
完成对该报文的源地址学习过程后,交换设备开始转发此报文:
◆ 对于目的 MAC 地址(称为DA,即Destination Address)已经存在于 MAC 地址转发表中的报文,系统将直接使用硬件转发。
◆ 对于目的 MAC 地址(单播MAC地址)没有存在于 MAC 地址转发表中的报文,系统将在接收端口所在 VLAN内向除接收端口外的所有其他端口转发该报文,通常称为对该报文进行广播操作。这种报文,我们习惯将其称为未知单播报文或DLF(Destination Los Frame)。
相关过程可以参考下图:
图 | 交换设备学习转发过程
在对该报文进行广播操作之后,交换设备根据是否收到应答报文会采取以下的操作:
◆ 如果本端设备收到目的设备对此广播报文的回应,表示报文已正常发送至目的设备。在应答报文中将包含目的设备的 MAC 地址,本端设备通过地址学习将目的设备的MAC地址加入到 MAC 地址转发表中。之后去往同一目的 MAC 地址的报文,就可以利用该新增的MAC地址表项直接进行转发了。
◆ 如果本端没有收到目的设备的回应,表示目的设备不可达或目的设备虽然收到报文但没有回复。这种情况下,本端仍将无法学习到目的设备的 MAC 地址。因此,本端设备在下一次转发目的为该 MAC 地址的报文时,依然以广播方式进行发送。
说明:通过MAC 地址学习机制只能学习到单播地址,源MAC 地址是广播地址的报文,将被直接丢弃。
参与评论 (0)