CN109547344B - 一种基于mspg的以太网帧转发方法及其mspg系统 - Google Patents

一种基于mspg的以太网帧转发方法及其mspg系统 Download PDF

Info

Publication number
CN109547344B
CN109547344B CN201910033931.4A CN201910033931A CN109547344B CN 109547344 B CN109547344 B CN 109547344B CN 201910033931 A CN201910033931 A CN 201910033931A CN 109547344 B CN109547344 B CN 109547344B
Authority
CN
China
Prior art keywords
switch
mac
flow table
entry
mspg
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201910033931.4A
Other languages
English (en)
Other versions
CN109547344A (zh
Inventor
宋广佳
陈滨
安仲立
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Jiyang College of Zhejiang A&F University
Original Assignee
Jiyang College of Zhejiang A&F University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Jiyang College of Zhejiang A&F University filed Critical Jiyang College of Zhejiang A&F University
Priority to CN201910033931.4A priority Critical patent/CN109547344B/zh
Publication of CN109547344A publication Critical patent/CN109547344A/zh
Application granted granted Critical
Publication of CN109547344B publication Critical patent/CN109547344B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/32Flooding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering

Abstract

本发明涉及基于MSPG的以太网帧转发方法及其MSPG系统,包括控制器和交换机,1交换机收到一个帧,有匹配的流表,按流表动作;2流表无匹配,发送packetin到控制器;3收到packetin后,根据帧的src_MAC与packetin中的in_port字段和dpid字段,更新Dpip‑<MAC:inport>映射表;4根据帧中dst_MAC字段查找;交换机dpid为x,在与x对应的<MAC:inport>映射表中查找;5找到转发流表,找不到执行packetout,交换机进行flooding。本发明采用多表查找与路径生成算法,减少交换机发生MAC missing产生的泛洪,降低局域网广播负载。

Description

一种基于MSPG的以太网帧转发方法及其MSPG系统
技术领域
本发明涉及计算机技术领域,特别与一种软件定义网络中基于多表查找和路径生成的以太网帧转发方法有关。
背景技术
在局域网内,多种解析与发现协议(如ARP、NDP、DHCP)都会用到同一种局域网技术,即广播技术。由于在一个特定的局域网中,单一节点并不拥有网络中其他节点的相关知识,因此在进行目标节点的地址解析、重复地址检测及目标发现时需要以广播方式将报文发送给所有节点,因此会产生大量的网络负载。广播与网络设备是分不开的,所有的广播都需要网络设备的支持,而网络设备本身也会产生大量广播,典型的如交换机的MAC学习过程。
以图1为例,假设LAN中有3台主机,分别是A、B和C,分别连接到交换机的1、2、3端口上,地址配置见表1。
表1主机A、B、C配置
Figure BDA0001945197200000011
MAC地址学习过程描述如下:
步骤(1),当交换机刚接入到网络时,其MAC地址表是空的。如果主机A要发送帧给主机C,则主机A会在帧的源MAC地址和目的MAC地址字段分别写入自己的MAC地址MACA和目标主机C的MAC地址MACC,并发送至交换机1端口(这里我们不关注ARP过程,假设C的MAC地址是已知的)。
步骤(2),当A发出的帧到达交换机后,交换机在MAC地址表中记录下A的MAC地址MACA和端口1。由于MAC表中并无主机C的MAC地址,所以交换机将该帧以泛洪的方式发送到除端口1以外的所有端口,也就是端口2和3。主机B和C都可以收到这个帧,B通过检查发现帧的目的地址与自己的MAC不符合,则丢弃该帧。
步骤(3),C收到该帧后,检查发现帧的目的MAC地址是MACC,即发给自己的,所以发送应答帧。应答帧的目的地址填写MACA,源地址填写MACC。应答帧从端口3进入交换机,交换机通过地址学习功能将MACC和端口3加入MAC地址表,并通过查找MAC表后,将应答帧从端口1转发给A。
随着通信的继续,交换机会逐步学习到与各接口相连的主机的MAC地址,并将它们写入MAC地址表。
网络中的广播,严重影响了局域网性能。研究表明,在局域网中,由ARP协议产生的通信占据了广播总量的86%以上,是主要的广播负载来源,而大量的广播更是造成网络拥塞的源头。因此,为了减少局域网广播报文,本发明人设计了一种适用于软件定义网络(Software Defined Network,SDN)环境的帧转发方法,我们称之为多表查找路径生成方法(Multi-table Searching and Path Generation,MSPG)。MSPG采用了多表查找与路径生成算法,大大减少了由于交换机发生MACmissing(如果某个被查找的MAC地址在交换机的MAC地址表中不存在时,即发生了MAC missing)而产生的泛洪(Flooding:是交换机和网桥使用的一种数据流传递技术,将某个接口收到的数据流从除该接口之外的所有接口发送出去),有效降低了局域网广播负载。
发明内容
本发明的目的是一种基于MSPG的以太网帧转发方法及其MSPG系统,采用了多表查找与路径生成算法,大大减少了由于交换机发生MAC missing而产生的泛洪,有效降低了局域网广播负载。
为实现上述目的,本发明采用的技术方案如下:
一种基于MSPG的以太网帧转发方法,包括控制器(OC)和交换机(OVS),控制器维持一个全局的Dpip-<MAC:inport>映射表,格式为{Dpid:{‘MAC’:inport}},当其收到一个帧时,按如下步骤转发:
步骤一:当交换机收到一个帧时,如果有与帧匹配的流表,则按照流表动作;
步骤二:如果流表中并无与该帧匹配的条目,则发送packetin报文到控制器;
步骤三:控制器收到该packetin报文后,会根据帧的src_MAC与packetin报文中的in_port字段和Dpid字段,更新dpip-<MAC:inport>映射表;
步骤四:控制器根据帧中dst_MAC字段进行查找;假设交换机的Dpid为x,则在与x对应的<MAC:inport>映射表中查找;
步骤五:如果找到,则首先下发转发流表,然后发送packetout至交换机,要求交换机转发该帧;如果找不到,则执行packetout,要求交换机进行flooding操作。
MSPG系统,包括如下各功能模块:
(1)网络拓扑模块:利用LLDP协议生成全局网络拓扑,并负责监视网络拓扑变化;
(2)流表统计模块:该模块包括两方面的功能:a.根据网络拓扑,周期性的对交换机中与MAC帧转发有关的流表进行统计;b.处理交换机流表变化事件;
(3)维持模块:维持MSPG运行时需要的多种数据结构,该模块接收两方面的反馈信息:a.拓扑模块反馈的拓扑变化信息;b.流表统计模块的反馈信息;
(4)多设备查找(MS模块):当交换机发生missing(v,MACX)时,该模块将查找离目标MACX位置最近的交换机;
(5)路径生成模块(PG模块):对于给定的起点交换机和终点交换机,结合网络拓扑,生成一条从起点到终点的通路(Path);
(6)流表分派模块:根据给定的路径,结合发生MAC missing的设备Dpid、MAC地址和端口号,生成流表集合,并下发,避免发生MAC missing扩散。
MSPG系统可进一步优化:
所述网络拓扑模块监听事件包括:交换机的进入与离开、链路的增加与删除、交换机端口状态变化。
所述维持模块数据结构包括MDST、SDST、Links、Nodes。
所述的MSPG中,控制器为每个交换机维持一个Dpip-<MAC:inport>映射表。
MSPG系统工作过程:
Step 1:控制器通过LLDP协议生成全局的网络拓扑G=(Nodes,Links),Nodes为交换机集合,Links为边集合;对G中交换机下发优先级为0的流表,要求当发生Flow missing时发送packetin到控制器;
Step 2:如果某个交换机S_START发生了missing(S_START,MACX),其对应的帧为FrameX,并发送packetin报文,控制器收到该报文后,则进行step 3;
Step3:控制器首先在S_START.SDST中查找MACX,如果存在与MACX对应的条目,假设为(MACX,PortX),则首先下发流表到S_START,然后通过Packetout消息,要求S_START对FrameX从PortX转发;如果不存在与MACX对应的条目,则发送进行Step 4;
Step 4:在MDST中进行查找;如果存在n(n≥1)条与MACX有关的条目,则找到Createtime字段最小的条目,然后确定该条目所对应的交换机S_END与端口,进行Step5;如果没有找到与MACX有关的条目,则进行Step 6;
Step5:根据网络拓扑生成起始S_START与终点S_END之间的转发路径P;根据转发路径P生成流表集合F-set,然后将F-set中的每条流表下发至对应的交换机,然后要求S_START对FrameX进行转发;
Step6:控制器发送Packetout至S_START,要求S_START对FrameX进行泛洪。
所述的Step4中用了多表查找算法,多表查找算法会在MDST中查找,如果存在多个条目,则找出与MACX距离最近的交换机与相应的端口。
所述的多表查找算法如下:
Figure BDA0001945197200000061
所述的Step 5中如果找到了满足条件的S_END,路径生成算法会找出并构造一条从S_START到S_END的通路P(算法用Path表示),路径生成算法具体如下:
Figure BDA0001945197200000062
Figure BDA0001945197200000071
当网络交换机进入或离开,或者交换机状态发生变化以及交换机的流表变化时,MSPG的维持模块会对重要数据进行维护与更新。
所述的MSPG的维持模块会对重要数据进行维护与更新,采用数据更新算法,其中OpenFlow_Event指的是交换机发生的事件,算法如下:
Figure BDA0001945197200000072
所述的当S_START与S_END之间的路径p生成后,由流表分配模块负责生成流表集合F-set,并将F-set中的流表下发至对应的交换机上,从而避免路径上的交换机产生flooding。
所述的流表集F-set产生分派算法如下:
Figure BDA0001945197200000081
本发明采用上述方案后,改变传统方法中一台交换机泛洪,通常会引起其他交换机连带泛洪,从而导致网络产生大量报文,加重网络负担的问题。MSPG通过多表查找,找到与特定MAC地址对应的交换机和相应的端口,可以利用单播转发替换广播,降低网络负载,抑制flooding的产生。
附图说明
图1为传统交换机中以太网MAC地址学习过程;
图2为本发明中SDN中的MAC地址学习与帧转发(正常转发);
图3为本发明中SDN中的MAC地址学习与帧转发(发生MACmissing);
图4为本发明中MSPG系统架构示意图。
具体实施方式
参见说明书附图,对本发明较佳实施例做进一步阐述。
SDN网络主要由控制器和交换机构成。对于交换机,一般有两种工作模式,一种是主动模式proactive,一种是被动模式reactive。在proactive模式中,交换机通过预设的流表,可以自动处理数据链路层帧的转发,而不需要控制器的干预;而在reactive模式中,交换机不能自动处理数据链路层帧的转发,需要与控制器进行互动,即发送packetin报文到控制器,由控制器通过下发流表等操作来指导完成。
对于一个SDN网络来说,其拓扑中会包含许多交换机,每个交换机可能工作在proactive模式,也可能工作在reactive模式。因此当SDN网络中同时存在工作在不同模式下的交换机时,帧的转发将变得复杂。
(1)proactive模式交换机的MAC转发过程
交换机模拟传统交换机的工作,工作方式与传统交换机基本相同,也是通过MAC学习与flooding来完成,这里不再赘述。
(2)reactive模式的交换机的MAC转发过程,这也是本发明重点关注的。这种方式下,交换机需要与控制器配合。通常,控制器会维持一个全局的dpip-<MAC:inport>映射表,格式为{Dpid:{‘MAC’:inport}},当其收到一个帧时,按如下步骤转发:
Step 1:如果有与帧匹配的流表,则按照流表动作;
Step 2:如果流表中并无与该帧匹配的条目,则发送packetin报文到控制器;
Step 3:控制器收到该packetin报文后,会根据帧的src_MAC与packetin报文中的in_port字段和Dpid字段,更新dpip-<MAC:inport>映射表;
Step 4:控制器根据帧中dst_MAC字段进行查找。假设交换机的Dpid为x,则在与x对应的<MAC:inport>映射表中查找;
Step 5:如果找到,则首先下发转发流表,然后发送packetout至交换机,要求交换机转发该帧,详见图3;如果找不到,则执行packetout,要求交换机进行flooding操作,flooding可能会引起其他交换机的连锁反应,见图4。
下面着重说明MSPG系统和工作过程。
一、MSPG系统
如果某个被查找的MAC地址在交换机的MAC地址表中不存在时,即发生了MACmissing。传统交换机的缺点是当发生MAC missing时,会产生大量泛洪。一台交换机泛洪,通常会引起其他交换机连带泛洪,从而导致网络产生大量报文,加重网络负担。为了抑制flooding的产生,我们设计了一种新的MAC missing处理方法,我们称之为MSPG。MSPG系统结构见图4,各模块功能描述如下:
(1)网络拓扑模块:利用LLDP协议生成全局网络拓扑,并负责监视网络拓扑变化。主要监听事件包括:交换机的进入与离开、链路的增加与删除、交换机端口状态变化等;
(2)流表统计模块:该模块主要包括两方面的功能:a.根据网络拓扑,周期性的对交换机中与MAC帧转发有关的流表进行统计;b.处理交换机流表变化事件;
(3)维持模块:维持MSPG运行时需要的多种数据结构,包括MDST、SDST、Links、Nodes等;该模块接收两方面的反馈信息:a.拓扑模块反馈的拓扑变化信息;b.流表统计模块的反馈信息;
(4)多设备查找(MS模块):当交换机发生missing(v,MACX)时,该模块将查找离目标MACX位置最近的交换机;
(5)路径生成模块(PG模块):对于给定的起点交换机和终点交换机,结合网络拓扑,生成一条从起点到终点的通路(Path);
(6)流表分派模块:根据给定的路径,结合发生MAC missing的设备Dpid,MAC地址和端口号,生成流表集合,并下发、避免发生MAC missing扩散。
在MSPG中,控制器还会为每个交换机维持一个Dpip-<MAC:inport>映射表,我们称之为Single-Device Searching Table,简称SDST。
二、MSPG工作流程
为了便于描述,首先对后面将用到的缩写进行说明:
(1)missing(v,MACX):表示设备上由MACX引发的flooding;
(2)SDST:单设备查找表(Single-Device Searching Table),格式如表2所示,交换机Nodei的SDST表示为Nodei.SDST;
表2Single-Device Searching Table(SDST)
Dpid MAC Port
(3)MDST:多设备查找表Multi-Device Searching Table,格式如表3所示;
表3Multi-Device Searching Table(MDST)
Dpid MAC InPort IdleTime Createtime
(4)Nodes:交换机(节点)集合,
Nodes={node1,node2,…,nodem},其中nodei={dpid:node_obj};
Dpid为交换机的设备id,node_obj代表交换机对象;
(5)Links:交换机之间的链路(边)集合,
Links={link1,link2,...,linkn},其中
linki={(srcdpid,srcport):(dstdpid,dstport)}。(srcdpid,srcport)代表边起点的交换机的dpid和端口,(srcdpid,srcport)代表边终点的交换机换机的dpid和端口;
(6)路径P:表示一条从交换机x到交换机y的通路,
P={linkk,linkk+1,...,linkk+m},其中link∈Links;
MSPG工作过程如下:
Step 1:控制器通过LLDP协议生成全局的网络拓扑G=(Nodes,Links),Nodes为交换机集合,Links为边集合;对G中交换机下发优先级为0的流表,要求如果一个帧与任何流表都不匹配时发送packetin到控制器;
Step 2:如果某个交换机(假设为S_START)发生了missing(S_START,MACX)(对应的帧为FrameX),并发送packetin报文,控制器收到该报文后,则进行step 3;
Step3:控制器首先在S_START.SDST中查找MACX,如果存在与MACX对应的条目,假设为<MACX,PortX>,则首先下发流表到S_START,然后通过Packetout消息,要求S_START对FrameX从PortX转发;如果不存在与MACX对应的条目,则发送进行Step 4;
Step 4:在MDST中进行查找。如果存在n(n≥1)条与MACX有关的条目,则找到Createtime字段最小的条目,然后确定该条目所对应的交换机(假设为S_END)与端口,进行Step5;如果没有找到与MACX有关的条目,则进行Step 6;
Step 5:根据网络拓扑生成起始S_START与终点S_END之间的转发路径P;根据转发路径P生成流表集合F-set,然后将F-set中的每条流表下发至对应的交换机,然后要求S_START对FrameX进行转发;
Step6:控制器发送Packetout至S_START,要求S_START对FrameX进行泛洪。
三、算法说明
本实施例中涉及的算法伪代码均采用Python语法描述。
在MSPG工作流程Step 4中,MSPG采用了多表查找算法。算法会在MDST中查找,如果存在多个条目,则找出与MACX距离最近的交换机与相应的端口,这样就可以利用单播转发替换广播,降低网络负载。多表查找算法描述如下表4。
表4多表查找算法
Figure BDA0001945197200000131
Figure BDA0001945197200000141
在MSPG工作流程Step 5中,如果找到了满足条件的S_END,通过路径生成算法会找出并构造一条从S_START到S_END的通路P(算法中用Path表示)。路径生成算法描述见表5。
表5路径生成算法
Figure BDA0001945197200000142
当网络交换机进入或离开,或者交换机状态发生变化以及交换机的流表变化时,MSPG的维持模块会对重要数据(SDST,MDST,Nodes,Links)进行维护与更新,采用的数据更新算法见6。
表6数据更新算法
Figure BDA0001945197200000151
当S_START与S_END之间的路径P生成后,由流表分配模块负责生成流表集合F-set,并将F-set中的流表下发至对应的交换机上,从而避免路径上的交换机产生flooding。流表集F-set产生与分派算法见表7。
表7流表集产生与分派算法
Figure BDA0001945197200000152
Figure BDA0001945197200000161
以上是本发明优选实施方式,在本发明构思前提下所做出若干其他简单替换和改动,都应当视为属于本发明的保护范畴。

Claims (6)

1.一种基于MSPG的以太网帧转发方法,其特征在于:MSPG为Multi-table Searchingand Path Generation多表查找路径生成方法,包括控制器和交换机,控制器维持一个全局的dpip-<MAC:inport>映射表,格式为{Dpid:{‘MAC’:inport}},当其收到一个帧时,按如下步骤转发:
步骤一:当交换机收到一个帧时,如果有与帧匹配的流表,则按照流表动作;
步骤二:如果流表中并无与该帧匹配的条目,则发送packetin报文到控制器;
步骤三:控制器收到该packetin报文后,会根据帧的src_MAC与packetin报文中的in_port字段和Dpid字段,更新dpip-<MAC:inport>映射表;
步骤四:控制器根据帧中dst_MAC字段进行查找;假设交换机的Dpid为x,则在与x对应的<MAC:inport>映射表中查找;
步骤五:如果找到,则首先下发转发流表,然后发送packetout至交换机,要求交换机转发该帧;如果找不到,则执行packetout,要求交换机进行flooding操作;
所述步骤五中采用MSPG系统,包括如下各功能模块:
网络拓扑模块:利用LLDP协议生成全局网络拓扑,并负责监视网络拓扑变化;
流表统计模块:该模块包括两方面的功能:a.根据网络拓扑,周期性的对OpenFlow交换机中与MAC帧转发有关的流表进行统计;b.处理交换机流表变化事件;
维持模块:维持MSPG运行时需要的多种数据结构,该模块接收两方面的反馈信息:a.拓扑模块反馈的拓扑变化信息;b.流表统计模块的反馈信息;
多设备查找:当交换机发生missing(v,MACX)时,该模块将查找离目标MACX位置最近的交换机;
路径生成模块:对于给定的起点交换机和终点交换机,结合网络拓扑,生成一条从起点到终点的通路Path;
流表分派模块:根据给定的路径,结合发生MAC missing的设备Dpid、MAC地址和端口号,生成流表集合,并下发,避免发生MAC missing扩散;
所述的MSPG系统中,网络拓扑模块监听事件包括交换机的进入与离开、链路的增加与删除、交换机端口状态变化;
所述的MSPG系统中,维持模块数据结构包括多设备查找表MDST、单设备查找表SDST、边集合Links、节点集合Nodes;
所述的MSPG系统中,控制器为每个OpenFlow交换机维持一个dpip-<MAC:inport>映射表。
2.如权利要求1所述的一种基于MSPG的以太网帧转发方法,其特征在于:所述的MSPG系统工作过程:
Step1:控制器通过LLDP协议生成全局的网络拓扑G=(Nodes,Links),Nodes为交换机集合,Links为边集合;对G中交换机下发优先级为0的流表,要求当发生Flow missing时发送packet in到控制器;
Step2:如果某个交换机S_START发生了missing(S_START,MACX),其对应的帧为Framex,并发送packetin报文,控制收到该报文后,则进行step3;
Step3:控制器首先在S_START.SDST中查找MACX,如果存在与MACX对应的条目,假设为(MACX,PortX),则首先下发流表到S_START,然后通过packetout消息,要求S_START对FrameX从PortX转发;如果不存在与MACX对应的条目,则发送进行Step4;
Step4:在MDST中进行查找;如果存在n(n≥1)条与MACX有关的条目,则找到Createtime字段最小的条目,然后确定该条目所对应的交换机S_END与端口,进行Step5;如果没有找到与MACX有关的条目,则进行Step6;
Step5:根据网络拓扑生成起始S_START与终点S_END之间的转发路径P;根据转发路径P生成流表集合F-set,然后将F-set中的每条流表下发至对应的OpenFlow交换机,然后要求S_START对FrameX进行转发;
Step6:控制器发送packetout至S_START,要求S_START对FrameX进行泛洪。
3.如权利要求2所述的一种基于MSPG的以太网帧转发方法,其特征在于:所述的Step4中用了多表查找算法,多表查找算法会在MDST中查找,如果存在多个条目,则找出与MACX距离最近的交换机与相应的端口;表查找算法如下:
输入:起始交换机S_START和MAC地址MACX
输出:终止交换机S_END和转发端口Output;
Step1,如果MACX是一个广播地址,那么应该广播,设置S_END=S_Start,Output=Flood,算法结束;
Step2,将S_START的SDST中的各个条目依次与MACX进行匹配,如果某个条目的MAC字段与MACX相同,那么设置S_End=S_START,将该条目的Port字段赋值给Output,算法结束;
Step3,建立一个空的列表Flist,然后检索MDST,将MDST中的每个条目依次与MACX进行匹配,如果某个条目的MAC字段与MACX相同,则将该条目的Dpid字段、InPort字段和Createtime字段合并成一个条目,加入到列表Flist中;
Step4,设置三个变量,分别是Timemax,Port和Nearest,并初始化,即Timemax=0,Port=0;Nearest=None,并将S_END设置为空对象;
Step5,对于Flist中的每个条目,都判断条目中的Createtime字段是否大于Timemax;如果是,则将Createtime赋值给Timemax;把条目中的Dpid字段赋值给Nearest;把条目中的InPort字段赋值给Port;
Step6,如果Timemax>0,把Nearst赋值给S_END;Port赋值给Output,算法结束;否则把S_Start赋值给S_END,Output赋值为Floood。
4.如权利要求2所述的一种基于MSPG的以太网帧转发方法,其特征在于:所述的Step5中如果找到了满足条件的S_END,路径生成算法会找出并构造一条从S_START到S_END的通路P,路径生成算法具体如下:
输入:起始交换机S_START和终止交换机S_END;
输出:路径Path;
Step1,如果S_START=S_END,表明起始和终止交换机相同,那么Path路径值包括S_START的设备ID即可,即Path=[S_START.Dpid],算法结束;否则执行Step2;
Step2,设置Path1是一个空列表,即Path1=[];然后开始循环;每次循环完成如下内容:
步骤2-1:把S_START的设备ID加入到Path1中,
步骤2-2:如果S_START在网络拓扑中有祖先,那么就把该祖先赋值给S_START,然后继续下一次循环;否则退出循环;
Step3,设置Path2是一个空列表;即Path2=[],然后开始循环;每次循环完成如下内容:
步骤3-1:把S_END的设备ID加入到Path2中,
步骤3-2:如果S_END在网络拓扑中有祖先,那么就把该祖先赋值给S_END,继续下一次循环;否则退出循环;
Step4,把path2倒序排列,然后找出一个唯一节点,条件是这个节点在Path1和Path2中都存在,这个节点被称之为即Junction;然后以这个节点为连接点,将Path1和Path2合并,得到Path,算法结束。
5.如权利要求2所述的一种基于MSPG的以太网帧转发方法,其特征在于:当网络交换机进入或离开,或者交换机状态发生变化以及交换机的流表变化时,MSPG的维持模块会对重要数据进行维护与更新,其数据更新算法如下:
Step1,监听网络中发生的事件,然后对事件类别进行判断;如果是交换机进入事件,则执行Step2;如果是链路增加事件,则执行Step3;如果是链路删除事件,则执行Step4;如果是交换机离开事件,则执行Step5;如果是统计应答事件,则执行Step6;
Step2,把新加入网络的交换机加入到Nodes集合中;
Step3,把新增的链路加入到Links集合中;
Step4,把链路从Links集合中移除;
Step5,把发生该事件的交换机从Nodes集合中移除;同时检索Links集合,如果links集合中的某条边的起始交换机或终止交换机与发生该事件的交换机相同,则把该边从Links集合中移除;检索MDST,对于MDST中的每个条目,如果条目的Dpid字段与发生该事件的交换机的Dpid相同,则从MDST中删除该条目;
Step6,状态应答事件;对于应答中携带的每条信息,都将其与MDST的各个条目进行匹配;如果某条信息中的Dpid字段与MDST中的某个条目的Dpid字段匹配,则根据该条信息对MDST中的匹配条目进行更新。
6.如权利要求2所述的一种基于MSPG的以太网帧转发方法,其特征在于:所述的当S_START与S_END之间的路径P生成后,由流表分配模块负责生成流表集合F-set,并将F-set中的流表下发至对应的交换机上,从而避免路径上的交换机产生flooding,流表集F-set产生分派算法如下:
输入:路径Path,MACX
输出:流表集合F-set;
Step1,首先计算Path长度,将路径长度记为N;设置变量i=1;
Step2,获取Path上的第i个设备,记为Srcdp,获取Path上的第i+1个设备,记为Dstdp;遍历Links集合,对于Links中的每一条边,如果边的起始设备是Srcdp并且边的终止设备是Dstdp,那么创建一条新的流表,该流表的匹配规则是“以太网目的地址是MACX”,转发动作是从当前边所连接的起始设备的端口发出,空闲时间设置为300秒,优先级设置1,然后把该流表加入到F-set中;将i增加1;
Step3,如果i>N-1,将F-set下发至对应交换机,算法结束,否则回到Step2。
CN201910033931.4A 2019-01-15 2019-01-15 一种基于mspg的以太网帧转发方法及其mspg系统 Active CN109547344B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910033931.4A CN109547344B (zh) 2019-01-15 2019-01-15 一种基于mspg的以太网帧转发方法及其mspg系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910033931.4A CN109547344B (zh) 2019-01-15 2019-01-15 一种基于mspg的以太网帧转发方法及其mspg系统

Publications (2)

Publication Number Publication Date
CN109547344A CN109547344A (zh) 2019-03-29
CN109547344B true CN109547344B (zh) 2021-06-25

Family

ID=65835046

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910033931.4A Active CN109547344B (zh) 2019-01-15 2019-01-15 一种基于mspg的以太网帧转发方法及其mspg系统

Country Status (1)

Country Link
CN (1) CN109547344B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113225376B (zh) * 2021-03-29 2022-07-08 桂林电子科技大学 一种基于fpga的以太网帧与sdn数据帧的适配方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103248724A (zh) * 2013-04-19 2013-08-14 中国(南京)未来网络产业创新中心 一种基于sdn控制器的dhcp广播处理方法
CN104320267A (zh) * 2014-10-29 2015-01-28 武汉绿色网络信息服务有限责任公司 基于SDN框架实现VxLAN的ARP广播抑制系统及方法
US20150071289A1 (en) * 2013-09-11 2015-03-12 Electronics And Telecommunications Research Institute System and method for address resolution
CN106210157A (zh) * 2015-04-30 2016-12-07 中国电信股份有限公司 抑制地址解析协议消息的方法与系统、控制器
CN106506200A (zh) * 2016-10-31 2017-03-15 中国工程物理研究院计算机应用研究所 一种基于sdn的arp协议辅助模型

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103248724A (zh) * 2013-04-19 2013-08-14 中国(南京)未来网络产业创新中心 一种基于sdn控制器的dhcp广播处理方法
US20150071289A1 (en) * 2013-09-11 2015-03-12 Electronics And Telecommunications Research Institute System and method for address resolution
CN104320267A (zh) * 2014-10-29 2015-01-28 武汉绿色网络信息服务有限责任公司 基于SDN框架实现VxLAN的ARP广播抑制系统及方法
CN106210157A (zh) * 2015-04-30 2016-12-07 中国电信股份有限公司 抑制地址解析协议消息的方法与系统、控制器
CN106506200A (zh) * 2016-10-31 2017-03-15 中国工程物理研究院计算机应用研究所 一种基于sdn的arp协议辅助模型

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
"Scalable Ethernet Architecture using SDN by Suppressing Broadcast Traffic";Naseela Jehan,等;《2015 Fifth International Conference on Advances in Computing and Communications (ICACC)》;20160317;全文 *
"软件定义网络与传统网络混杂场景下的地址解析协议代理机制";王君君,等;《计算机应用. 2014年11期》;20141130;全文 *

Also Published As

Publication number Publication date
CN109547344A (zh) 2019-03-29

Similar Documents

Publication Publication Date Title
US10075371B2 (en) Communication system, control apparatus, packet handling operation setting method, and program
CN102197627B (zh) 组播流量收敛的改善
US9692650B2 (en) Control apparatus, communication system, communication method, and program
US20040071137A1 (en) Method for forwarding multicast message in network communication
US20130003549A1 (en) Resilient Hashing for Load Balancing of Traffic Flows
US20040264364A1 (en) Network system for building redundancy within groups
EP1593240B1 (en) Method and apparatus for fast re-configuration of a network topology
US20130286844A1 (en) Information system, control apparatus, communication method, and program
CN101820397A (zh) 虚拟专用局域网网络收敛的方法及设备
US20130246655A1 (en) Communication path control system, path control device, communication path control method, and path control program
WO2021017578A1 (zh) 报文发送方法、装置及存储介质
CN105471747A (zh) 一种智能路由器选路方法和装置
CN105099916A (zh) 开放流路由交换设备及其对数据报文的处理方法
CN109547344B (zh) 一种基于mspg的以太网帧转发方法及其mspg系统
US7940755B2 (en) Lookup engine with programmable memory topology
EP2908483B1 (en) Communication node, communication system, control device, packet transfer method, and program
CN112543145A (zh) 发送数据的设备节点通信路径选择方法及装置
US10541914B2 (en) Data packet forwarding method and network device
CN109768909A (zh) 报文转发方法和装置
US8559453B2 (en) Routing apparatus
CN110380971B (zh) 一种基于缓冲机制的网络数据通信方法
CN103546379A (zh) 一种vpls中mac地址表项更新的装置和方法
KR100560739B1 (ko) 분산 구조 라우터에서 멀티캐스트 패킷을 필터링하는 방법및 그 장치
CN115348596B (zh) 煤矿工作面的数据传输方法、系统、电子设备及存储介质
CN111556102B (zh) 一种数据通道建立方法、以太网交换机及存储介质

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant