一种数据帧转发控制方法及系统
技术领域
本发明涉及一种通信技术领域,特别是涉及一种数据帧转发控制方法及系统。
背景技术
在通信技术领域中,交换机是转发数据帧的重要设备,其转发技术的基本原理是学习和转发。以以太网数据帧的学习和转换为例,当交换机在一个端口上接收到一个以太网数据帧后,首先对该数据帧的源媒体访问控制(MAC)地址进行学习,即:建立该数据帧的源MAC地址和接收该数据帧的端口号的对应关系(即MAC地址表),然后将该对应关系通知交换机的其它端口,这样交换机的每个端口都保存有其它端口的MAC地址与端口号的对应关系,此后,当交换机的端口接收到数据帧后,就提取该数据帧的目的MAC地址,然后在自身保存的MAC地址与端口号的对应关系(即MAC地址表)中,查找该目的MAC地址对应的端口号,若查找到,就将该数据帧向对应端口发送,否则,则将该数据帧以广播的方式发送出去。
在现有技术中,如果交换机建立的MAC地址表中不存在当前数据帧的目的MAC地址,交换机就将数据帧广播发送出去。目前,未知单播就是一种在MAC地址表中查找不到的情况,所以未知单播的转发是以广播的形式发送的,然而,这样广播形式的转发方式,使每个端口上都会被占用相应的带宽资源,会浪费交换机大量的资源。
发明内容
为克服上述现有技术存在的不足,本发明之目的在于提供一种数据帧转发控制方法及系统,其可以使未知单播尽可能的以单播的形式转发,减轻交换机的负担。
为达上述目的,本发明提出一种数据帧转发控制方法,包括如下步骤:
步骤一,各交换机通过转发数据时学习数据帧中的源MAC地址,对该源MAC地址进行记录,生成自己的第一MAC地址表,并将其发送给邻居交换机;
步骤二,第一交换机接收邻居交换机发送过来的该邻居交换机通过学习建立的第一MAC地址表,将接收到的该邻居交换机的第一MAC地址表中的端口替换为收到该MAC地址表的端口号,生成自己的第二MAC地址表;
步骤三,当该第一交换机收到一数据帧时,获取该数据帧中的目的MAC地址,将该目的MAC地址与该第一MAC地址表及第二MAC地址表中的MAC地址进行匹配,根据匹配结果对该数据帧以单播或广播的形式转发。
进一步地,于步骤三中,若匹配成功,则通过表中相应MAC地址的对应端口将数据帧转发出去,若未匹配成功,则将该数据帧广播发送出去。
进一步地,于步骤一中,该第一MAC地址表建立学习时数据帧的源MAC地址和接收该数据帧的端口号的对应关系。
进一步地,该第一MAC地址表与该第二MAC地址表具有优先级,于步骤三中,根据优先级将该目的MAC地址与第一MAC地址表与第二MAC地址表进行匹配。
进一步地,该第一MAC地址表的优先级别高于该第二MAC地址表。
进一步地,该第二MAC地址表大于或等于一个。
进一步地,若该第二MAC地址表大于1个时,各第二MAC地址表依据建立时间顺序获得优先级。
为达到上述目的,本发明一种数据帧转发控制系统,应用于交换机,包括:
学习单元,通过转发数据时学习并记录数据帧中的源MAC地址,生成本交换机的第一MAC地址表,并将其发送给邻居交换机;
第二MAC地址表生成单元,接收邻居交换机发送过来的该邻居交换机通过学习建立的第一MAC地址表,将接收到的该邻居交换机的第一MAC地址表中的端口替换为收到该MAC地址表的端口号,生成第二MAC地址表;
匹配单元,于本交换机收到一数据帧时,获取该数据帧中的目的MAC地址,将该目的MAC地址与该第一MAC地址表及第二MAC地址表中的MAC地址进行匹配;
转发单元,根据该匹配单元的匹配结果对该数据帧进行单播或广播。
进一步地,该第一MAC地址表建立学习时数据帧的源MAC地址和接收该数据帧的端口号的对应关系。
进一步地,当该匹配单元收到一数据帧并获得该数据帧的目的MAC地址后,将该目的MAC地址首先在该学习单元生成的第一MAC地址表中查找,如果命中就从第一MAC地址表中该地址对应的端口转发出去,如果没有命中,再将该目的MAC地址在该第二MAC地址表生成单元生成的第二MAC地址表中查找,如果命中就通过对应的端口发送给邻居交换机,如果没有则广播发送出去。
与现有技术相比,本发明一种数据帧转发控制方法及系统通过于交换机中建立一自己通过分析数据帧中的源MAC地址学习到的第一MAC地址表及一从邻居交换机处获得的第二MAC地址表,于转发数据帧时根据优先级将目的MAC地址于第一MAC地址表及第二MAC地址表中进行匹配,根据匹配结果对数据帧以单播或广播形式转发,由于本发明增加了从邻居交换机获得的一个或多个第二MAC地址表供转发数据帧时进行匹配,使得原来为未知单播的目的MAC能够尽量在第一MAC地址表与第二MAC地址表中匹配到,从而由原先的广播的方式变为单播的方式发送,降低了原先未知单播以广播方式发送占用交换机其他端口带宽的情况,尽可能的降低广播数据对交换机带宽的不必要占用。
附图说明
图1-1、图1-2、图1-3为本发明交换机转发学习获得MAC地址表的示意图;
图2为本发明一种数据帧转发控制方法的步骤流程图;
图3为本发明具体实施例中第一MAC地址表与第二MAC地址表的生成过程示意图;
图4为本发明具体实施例中交换机处理未知单播的流程示意图;
图5为本发明一具体实施例交换机转发数据帧的架构示意图;
图6为本发明一种数据帧转发控制系统的系统架构图。
具体实施方式
以下通过特定的具体实例并结合附图说明本发明的实施方式,本领域技术人员可由本说明书所揭示的内容轻易地了解本发明的其它优点与功效。本发明亦可通过其它不同的具体实例加以施行或应用,本说明书中的各项细节亦可基于不同观点与应用,在不背离本发明的精神下进行各种修饰与变更。
在介绍本发明之前,先说明本发明的基础架构:在交换机初始化时,也就是刚启动的时候,交换机的MAC地址表是没有任何MAC地址和端口的映射条目的(如图1-1所示);当PCA想与PCC,PCB,PCD进行通信时,当该二层数据帧通过端口E1/0/1发送到交换机上时,交换机会将PCA发送的数据帧中的源MAC地址和接受该数据帧的端口建立映射关系,并将该映射关系生成映射条目保存到MAC地址表中(如图1-2);PCB,PCC,PCD发出数据帧,通过和它相连接的交换机端口到达交换机时,交换机都会将其MAC地址和端口建立映射关系,并生成相应的映射条目,保存到交换机的MAC地址表中(如图1-3),这样交换机会完成了MAC地址学习的过程,获得了MAC地址表。
当PCA想与PCD通讯时,PCA将二层数据帧发送到交换机,交换机通过E1/0/1端口接受到该数据帧,提取要发送的数据帧的目的MAC地址,于是到MAC地址表中去查找该MAC地址与端口的映射条目,如果有该条目,就按照MAC地址表中的映射条目中的端口发送出去,图1-3中交换机在MAC地址表中通过目的MAC地址信息查找到该MAC地址与端口的映射条目,然后通过对应端口将数据帧发送到目的地址。
图2为本发明一种数据帧转发控制方法的步骤流程图。如图2所示,本发明一种数据帧转发控制方法,包括如下步骤:
步骤201,各交换机通过转发数据时获取数据帧中的源媒体访问控制(MAC)地址,将其记录下来,生成自己的第一MAC地址表。也就是说,当某一交换机在一个端口上接收到一数据帧后,对该数据帧的源媒体访问控制(MAC)地址进行学习,即,建立该数据帧的源MAC地址和接收该数据帧的端口号的对应关系,该MAC地址表即建立了该数据帧的源MAC地址和本交换机接收该数据帧的端口号的对应关系。该交换机于生成自己的第一MAC地址表后,将自己学习生成的第一MAC地址表发送给邻居交换机。
步骤202,第一交换机接收邻居交换机发送过来的该邻居交换机通过学习建立的第一MAC地址表,将接收到的该邻居交换机的第一MAC地址表中的端口替换为收到该MAC地址表的端口号,并将其作为自己的第二MAC地址表。也就是说,该第一交换机于接收到邻居交换机的第一MAC地址表后,将该MAC地址表中的MAC地址保留,将其中MAC地址对应的端口替换为本交换机收到该MAC地址表的端口号,并将替换后的MAC地址表作为第二MAC地址表保存在本交换机中。在此需说明的是,第一交换机与邻居交换机的通信采用唯一端口,也就是说,该端口不会用于与其他交换机通信或转发数据帧,仅用于与该邻居交换机之间的通信。另外,由于邻居交换机可能不止一个,所以,该第一交换机接收并保存的第二MAC地址表可能不止一个,对于邻居交换机的个数,本发明不做限制。
步骤203,当该第一交换机收到一数据帧时,获取该数据帧中的目的MAC地址,将该目的MAC地址与该第一MAC地址表及第二MAC地址表中的MAC地址进行匹配,若匹配成功,则通过表中相应MAC地址的对应端口将数据帧转发出去,若未匹配成功,则将其广播发送出去。具体地说,当该第一交换机收到一数据帧时并获得该数据帧的目的MAC地址后,首先将该目的MAC地址在自己的第一MAC地址表中查找,如果命中就从表中该地址对应的端口转发出去,如果没有命中,再将该目的MAC地址在从邻居交换机获得的第二MAC地址表中查找,如果命中就通过对应的端口发送给邻居交换机,如果没有则广播发送出去。也就是说,在第一交换机中,对第一MAC地址表与第二MAC地址表可以设有优先级,一般来说,第二MAC地址表的优先级低于第一MAC地址表的优先级,即优先于第一MAC地址表中对目的MAC地址进行匹配,当具有多个第二MAC地址表时,可以依据第二MAC地址表的建立时间顺序赋予每个第二MAC地址表优先级,例如,最早建立的优先级高,后建立的优先级低,当然,也可以最新建立的第二MAC地址表优先级最高,最早建立的第二MAC地址表优先级最低,本发明不以此为限。
图3为本发明具体实施例中第一MAC地址表与第二MAC地址表的生成过程示意图。首先,该第一交换机于收到一数据帧时,将数据帧中的源MAC地址和收到数据帧的端口对应起来,建立本交换机的第一MAC地址表;然后,将自己生成的第一MAC地址表发送给邻居交换机;最后,接收邻居交换机发送来的该邻居交换机自己的第一MAC地址表,将该表中的MAC地址和本交换机收到该MAC地址表的端口对应起来(即将该MAC地址表中的MAC地址保留,将MAC地址对应的端口替换为本交换机收到该MAC地址表的端口号),生成第二MAC地址表。
图4为本发明具体实施例中交换机处理未知单播的流程示意图。当第一交换机收到一数据帧时,获取该数据帧中的目的MAC地址后,首先在自己生成的第一MAC地址表中查找该目的MAC地址,若于第一MAC地址表中查找到,则按照该第一MAC地址表中对应的端口将该数据帧转发出去;若于第一MAC地址表中未查找到,则于从邻居交换机获得的第二MAC地址表中查找,若于第二MAC地址表中查找到,则按照该第二MAC地址表中对应的端口号转发出去,若于第二MAC地址表中未找到,则将该数据帧广播出去。
图5为本发明一具体实施例交换机转发数据帧的架构示意图。以下配合图5进一步说明本发明的数据帧转发过程:交换机SW1通过转发数据时获取数据帧中的源MAC地址建立自己的第一MAC地址表,该交换机SW1的端口E1/0/3与交换机SW2的端口E1/0/2连接,当交换机SW1接收到邻居交换机SW2发送过来的其第一MAC地址表时,将交换机SW2的第一MAC地址表中所有MAC地址对应的端口号都更改为E1/0/3,并形成交换机SW1的第二MAC地址表。
当终端PCA向终端PCX发送数据时,通过遍历交换机SW1的第一MAC地址表和第二MAC地址表,获得对应的端口E1/0/3,并通过交换机SW1的端口E1/0/3将数据发送给交换机SW2,交换机SW2根据其第一MAC地址表可以获得终端PCX对应了其端口E1/0/1,进而将终端PCA发送来的数据转发给终端PCX。
为便于理解,本实施例仅以两个交换机为例进行说明,可以想见的是,本发明申请并不以本实施例为限,与任一交换机相邻的邻居交互机的数量可以是多个,在相邻交换机为多个的情况下,第二MAC地址表会集成多个邻居交互机发送来的第一MAC地址表中的MAC地址以及接收端口号,从而使MAC地址表更加完备,进一步地减少了广播的概率。
图6为本发明一种数据帧转发控制系统的系统架构图。如图6所示,本发明一种数据帧转发控制系统,应用于一交换机,包括:学习单元601、第二MAC地址表生成单元602、匹配单元603以及转发单元604。
其中,学习单元601,通过转发数据时学习数据帧中的源媒体访问控制(MAC)地址,将其记录下来,生成本交换机的第一MAC地址表。也就是说,当交换机在一个端口上接收到一数据帧后,对该数据帧的源媒体访问控制(MAC)地址进行学习,即,建立该数据帧的源MAC地址和接收该数据帧的端口号的对应关系,该MAC地址表即建立了该数据帧的源MAC地址和本交换机接收该数据帧的端口号的对应关系。较佳地,学习单元601于生成本交换机自己的第一MAC地址表后,将该第一MAC地址表发送给邻居交换机。
第二MAC地址表生成单元602,接收邻居交换机发送过来的邻居交换机通过学习建立的第一MAC地址表,将接收到的邻居交换机的第一MAC地址表中的端口替换为收到该MAC地址表的端口号,并将其作为本交换机的第二MAC地址表。也就是说,第二MAC地址表生成单元602于接收到邻居交换机的第一MAC地址表后,将该MAC地址表中的MAC地址保留,将其中MAC地址对应的端口替换为本交换机收到该MAC地址表的端口号,并将替换后的MAC地址表作为第二MAC地址表保存。在此需说明的是,由于邻居交换机可能不止一个,所以,第二MAC地址表生成单元602接收并保存的第二MAC地址表可能不止一个,对于邻居交换机与第二MAC地址表的个数,本发明不做限制。
匹配单元603,于本交换机收到一数据帧时,获取该数据帧中的目的MAC地址,将该目的MAC地址与该第一MAC地址表及第二MAC地址表中的MAC地址进行匹配;转发单元604根据匹配单元603的匹配结果对数据帧进行单播或广播。也就是说,若匹配单元603匹配成功,则通过表中相应MAC地址的对应端口将数据帧转发出去,若未匹配成功,则将其广播发送出去。具体地说,当匹配单元603收到一数据帧时并获得该数据帧的目的MAC地址后,首先将该目的MAC地址在学习单元601生成的第一MAC地址表中查找,如果命中就从第一MAC地址表中该地址对应的端口转发出去,如果没有命中,再将该目的MAC地址在第二MAC地址表生成单元602生成的第二MAC地址表中查找,如果命中就通过对应的端口发送给邻居交换机,如果没有则广播发送出去。也就是说,在本交换机中,对第一MAC地址表与第二MAC地址表可以设置优先级,一般来说,第二MAC地址表的优先级低于第一MAC地址表的优先级,即优先于第一MAC地址表中对目的MAC地址进行匹配,当具有多个第二MAC地址表时,可以依据第二MAC地址表的建立时间顺序赋予每个第二MAC地址表优先级,例如,最早建立的优先级高,后建立的优先级低,但本发明不以此为限。
综上所述,本发明一种数据帧转发控制方法及系统通过于交换机中建立一自己通过分析数据帧中的源MAC地址学习到的第一MAC地址表及一从邻居交换机处获得的第二MAC地址表,于转发数据帧时根据优先级将目的MAC地址于第一MAC地址表及第二MAC地址表中进行匹配,根据匹配结果对数据帧以单播或广播形式转发,本发明降低了未知单播占用交换机其他端口带宽的情况,使得未知单播的目的MAC能够尽量在第一MAC地址表与第二MAC地址表中匹配到,从而由广播的方式变为单播的方式发送,尽可能的降低广播数据对交换机带宽的占用。
任何本领域技术人员均可在不违背本发明的精神及范畴下,对上述实施例进行修饰与改变。因此,本发明的权利保护范围,应如权利要求书所列。