CN107995119A - 基于端口模型的三层及以上网络设备stp的实现方法及系统 - Google Patents
基于端口模型的三层及以上网络设备stp的实现方法及系统 Download PDFInfo
- Publication number
- CN107995119A CN107995119A CN201711309495.6A CN201711309495A CN107995119A CN 107995119 A CN107995119 A CN 107995119A CN 201711309495 A CN201711309495 A CN 201711309495A CN 107995119 A CN107995119 A CN 107995119A
- Authority
- CN
- China
- Prior art keywords
- port
- data frame
- tag
- special tag
- virtual
- 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.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/48—Routing tree calculation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4604—LAN interconnection over a backbone network, e.g. Internet, Frame Relay
- H04L12/462—LAN interconnection over a bridge based backbone
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4604—LAN interconnection over a backbone network, e.g. Internet, Frame Relay
- H04L12/462—LAN interconnection over a bridge based backbone
- H04L12/4625—Single bridge functionality, e.g. connection of two networks over a single bridge
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4641—Virtual LANs, VLANs, e.g. virtual private networks [VPN]
- H04L12/4645—Details on frame tagging
- H04L12/4666—Operational details on the addition or the stripping of a tag in a frame, e.g. at a provider edge node
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种基于端口模型的三层及以上网络设备STP的实现方法,包括配置交换芯片的工作模式,使所述交换芯片以Special Tag方式运行:以Special Tag方式运行的交换芯片对从当前物理端口进入的数据帧进行添加Special Tag,并将带有Special Tag的数据帧进行发送;创建端口模型:根据所述交换芯片当前物理端口创建相应的虚拟端口;创建桥接模块的虚拟桥接口:将所述端口模型的虚拟端口和所述桥接模块进行绑定,作为桥接模块的虚拟桥接口,所述桥接模块对所述虚拟端口进行管理和控制。本发明抽象出每个物理端口,每个物理端口对应设置虚拟端口,虚拟端口同时作为桥模块的成员,桥接模块的STP的算法控制就相当于对设备实际物理端口的控制,很好地实现了设备STP功能。
Description
技术领域
本发明涉及网络通信技术领域,尤其涉及了一种基于端口模型的三层及以上网络设备STP的实现方法及系统。
背景技术
目前,STP最主要的应用是为了避免局域网中的单点故障、网络回环,解决成环以太网网络的“广播风暴”问题,是一种网络保护技术,可以消除由于失误或者意外带来的循环连接。STP也提供了为网络提供备份连接的可能,也可与SDH保护配合构成以太环网的双重保护。STP通过在交换机之间传递一种特殊的协议报文,BPDU即网桥协议数据单元(Bridge Protocol Data Unit),来确定网络的拓扑结构。BPDU有两种,配置BPDU和TCNBPDU,前者是用于计算无环的生成树的,后者则是用于在二层网络拓扑发生变化时产生用来缩短MAC表项的刷新时间的。
STP算法的基本思想就是按照"树"的结构构造网络的拓扑结构,树的根是一个称为根桥的桥设备,根桥的确立是由交换机或网桥的BID(BridgeID)确定的,BID最小的设备成为二层网络中的根桥。BID又是由网桥优先级和MAC地址构成,不同厂商的设备的网桥优先级的字节个数可能不同。由根桥开始,逐级形成一棵树,根桥定时发送配置BPDU,非根桥接收配置BPDU,刷新最佳BPDU并转发。这里的最佳BPDU指的是当前根桥所发送的BPDU。如果接收到了下级BPDU(新接入的设备会发送BPDU,但该设备的BID比当前根桥大),接收到该下级BPDU的设备将会向新接入的设备发送自己存储的最佳BPDU,以告知其当前网络中根桥;如果接收到的BPDU更优,将会重新计算生成树拓扑。当非根桥在离上一次接收到最佳BPDU最长寿命(Max Age,默认20s)后还没有接收到最佳BPDU的时候,该端口将进入监听状态,该设备将产生TCN BPDU,并从根端口转发出去,从指定端口接收到TCN BPDU的上级设备将发送确认,然后再向上级设备发送TCN BPDU,此过程持续到根桥为止,然后根桥在其后发送的配置BPDU中将携带标记表明拓扑已发生变化,网络中的所有设备接收到后将CAM表项的刷新时间从300s缩短为15s,整个收敛的时间为50s左右。
STP算法实现当今已经非常成熟,Linux网桥模块中也完整的实现了此功能,这里不再赘述。本发明并非是实现或改进Linux系统下STP的算法,而是如何将这种算法应用到网络设备中,使网络设备具有STP功能。
目前,现有的网络设备对STP的实现方法有2种,一种单纯依靠网络设备中的二层芯片,把STP的算法与物理端口的映射表都由芯片实现,这种方法对于设备而言,配置简单,使用方便,但是提高了设备成本,而且对于没有使用这种高级芯片的三层设备,就无法实现了。另外一种是单纯的依靠Linux网桥模块STP算法模块实现,当前的Linux系统网桥模块STP算法可以实现对网桥的成员的STP操作,实现成员的状态检测、切换和控制等,但不是对设备实际物理端口的操作。这中间缺少一种桥梁,将设备的实际物理端口和Linux网桥模块的成员相互对应。在这种方式下,如果要将网桥的成员端口与设备的物理端口建立一一对应关系,行业有种做法是将每个端口划为一个VLAN,这样,就可以实现设备的STP功能了。但每个端口划为一个VLAN肯定会影响网络设备本身的VLAN功能,如果要求多物理端口属于同一VLAN,STP功能就无法实现了。
发明内容
本发明针对现有技术中的缺点,提供了一种基于端口模型的三层及以上网络设备STP的实现方法。
为了解决上述技术问题,本发明通过下述技术方案得以解决:
一种基于端口模型的三层及以上网络设备STP的实现方法,包括以下步骤:
配置交换芯片的工作模式,使所述交换芯片以Special Tag方式运行:以SpecialTag方式运行的交换芯片对从当前物理端口进入的数据帧进行添加Special Tag,并将带有Special Tag的数据帧进行发送;
创建端口模型:根据所述交换芯片当前物理端口创建相应的虚拟端口,带有Special Tag的数据帧从交换芯片经网络接口发送至所述端口模型中,所述虚拟端口和带有Special Tag的数据帧进行匹配,所述虚拟端口接收与其相匹配的带有Special Tag的数据帧,将带有Special Tag的数据帧脱去Special Tag,所述端口模型将脱去Special Tag的数据帧进行发送;
创建桥接模块的虚拟桥接口:将所述端口模型的虚拟端口和所述桥接模块进行绑定,作为桥接模块的虚拟桥接口,所述桥接模块对所述虚拟端口进行管理和控制,脱去Special Tag的数据帧经虚拟桥接口进入桥接模块中。
作为一种可实施方式,所述以Special Tag方式运行的交换芯片对从当前物理端口进入的数据包进行添加Special Tag,并将带有Special Tag的数据帧进行发送具体是指:
数据帧从所述交换芯片的物理端口进入后,所述交换芯片根据所述数据帧的目标地址和原地址加上相应的Special Tag。
作为一种可实施方式,所述Special Tag为4个字节的数据,Special Tag包括Src_Port,所述Src_Port表示该数据帧的源端口。
作为一种可实施方式,所述根据所述交换芯片当前物理端口创建相应的虚拟端口,带有Special Tag的数据帧从交换芯片经网络接口发送至所述端口模型中,所述虚拟端口和带有Special Tag的数据帧进行匹配,所述虚拟端口接收与其相匹配的带有SpecialTag的数据帧,将带有Special Tag的数据帧脱去Special Tag,所述端口模型将脱去Special Tag的数据帧进行发送具体过程为:
根据交换芯片当前的物理端口个数创建相应个数的虚拟端口,将每个虚拟端口注册为网络设备,并注册每个网络设备的控制方法和定义每个网络设备的属性,所述属性至少包括Tag值,所述Tag值与虚拟端口名称一致,将所有虚拟端口组成一个HASH表作为Group,链接到内核链表中;
带有Special Tag的数据帧经过网络接口进入到端口模型中,所述端口模型遍历所述内核链表,用数据帧中的Src_port作为索引来匹配链表中的成员的Tag属性值,找到和该数据帧相应的虚拟端口;
所述虚拟端口接收到数据帧后,去掉所述数据帧的Special Tag,将去掉SpecialTag的数据帧发送至桥接模块中。
作为一种可实施方式,还包括以下步骤:
所述端口模型模块的虚拟端口从桥接模块收到未带有Special Tag的数据帧,根据所述虚拟端口的Tag属性值,给数据帧增加Special Tag,根据Special Tag的Tag值将带有Special Tag的数据帧经网络接口发送给交换芯片;
所述交换芯片将带有Special Tag的数据帧通过相对应的物理端口进行发送和转发。
一种基于端口模型的三层及以上网络设备STP的实现系统,包括以下模块:
配置模块,用于配置交换芯片的工作模式,使所述交换芯片以Special Tag方式运行:以Special Tag方式运行的交换芯片对从当前物理端口进入的数据帧进行添加SpecialTag,并将带有Special Tag的数据帧进行发送;
第一创建模块,用于创建端口模型:根据所述交换芯片当前物理端口创建相应的虚拟端口,带有Special Tag的数据帧从交换芯片经网络接口发送至所述端口模型中,所述虚拟端口和带有Special Tag的数据帧进行匹配,所述虚拟端口接收与其相匹配的带有Special Tag的数据帧,将带有Special Tag的数据帧脱去Special Tag,所述端口模型将脱去Special Tag的数据帧进行发送;
第二创建模块,用于创建桥接模块的虚拟桥接口:将所述端口模型的虚拟端口和所述桥接模块进行绑定,作为桥接模块的虚拟桥接口,所述桥接模块对所述虚拟端口进行管理和控制,脱去Special Tag的数据帧经虚拟桥接口进入桥接模块中。
作为一种可实施方式,所述配置模块被设置为:数据帧从所述交换芯片的物理端口进入后,所述交换芯片根据所述数据帧的目标地址和原地址加上相应的Special Tag。
作为一种可实施方式,所述配置模块被设置为:所述Special Tag为4个字节的数据,Special Tag包括Src_Port,所述Src_Port表示该数据帧的源端口。
作为一种可实施方式,所述第一创建模块被设置为:根据交换芯片当前的物理端口个数创建相应个数的虚拟端口,将每个虚拟端口注册为网络设备,并注册每个网络设备的控制方法和定义每个网络设备的属性,所述属性至少包括Tag值,所述Tag值与虚拟端口名称一致,将所有虚拟端口组成一个HASH表作为Group,链接到内核链表中;
带有Special Tag的数据帧经过网络接口进入到端口模型中,所述端口模型遍历所述内核链表,用数据帧中的Src_port作为索引来匹配链表中的成员的Tag属性值,找到和该数据帧相应的虚拟端口;
所述虚拟端口接收到数据帧后,去掉所述数据帧的Special Tag,将去掉SpecialTag的数据帧发送至桥接模块中。
作为一种可实施方式,所述第一创建模块被设置为:所述端口模型模块的虚拟端口从桥接模块收到未带有Special Tag的数据帧,根据所述虚拟端口的Tag属性值,给数据帧增加Special Tag,根据Special Tag的Tag值将带有Special Tag的数据帧经网络接口发送给交换芯片;
所述配置模块被设置为:所述交换芯片将带有Special Tag的数据帧通过相对应的物理端口进行发送和转发。
本发明由于采用了以上技术方案,具有显著的技术效果:
本发明提出了一种基于端口模型的三层及以上网络设备STP的实现方法,在Linux系统中抽象出每个物理端口,每个物理端口对应Linux系统中的虚拟端口,虚拟端口同时作为桥模块的成员,这样,桥接模块的STP的算法控制就相当于对设备实际物理端口的控制。这种利用软件与硬件相结合的方法,很好地实现了设备STP功能,而且不需要芯片具有STP功能,也不需要芯片能够识别BPDU包的能力,节约了硬件成本,填补了市场空白。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本发明的具体流程示意图;
图2是本发明的网络设备基本硬件结构示意图;
图3是本发明的软件结构示意图;
图4是本发明的交换芯片接收数据帧的示意图;
图5是本发明的交换芯片发送数据帧的示意图;
图6是本发明的详细流程示意图;
图7是本发明的结构框图。
具体实施方式
下面结合实施例对本发明做进一步的详细说明,以下实施例是对本发明的解释而本发明并不局限于以下实施例。
示例性方法:
本发明是一种基于端口模型的三层及以上网络设备STP的实现方法,如图1所示,包括以下步骤:
一种基于端口模型的三层及以上网络设备STP的实现方法,包括以下步骤:
S1、配置交换芯片的工作模式,使所述交换芯片以Special Tag方式运行:以Special Tag方式运行的交换芯片对从当前物理端口进入的数据帧进行添加Special Tag,并将带有Special Tag的数据帧进行发送;
S2、创建端口模型:根据所述交换芯片当前物理端口创建相应的虚拟端口,带有Special Tag的数据帧从交换芯片经网络接口发送至所述端口模型中,所述虚拟端口和带有Special Tag的数据帧进行匹配,所述虚拟端口接收与其相匹配的带有Special Tag的数据帧,将带有Special Tag的数据帧脱去Special Tag,所述端口模型将脱去Special Tag的数据帧进行发送;
S3、创建桥接模块的虚拟桥接口:将所述端口模型的虚拟端口和所述桥接模块进行绑定,作为桥接模块的虚拟桥接口,所述桥接模块对所述虚拟端口进行管理和控制,脱去Special Tag的数据帧经虚拟桥接口进入桥接模块中。
更进一步地,在步骤S2中,更具体的流程为:
S21、根据交换芯片当前的物理端口个数创建相应个数的虚拟端口,将每个虚拟端口注册为网络设备,并注册每个网络设备的控制方法和定义每个网络设备的属性,所述属性至少包括Tag值,所述Tag值与虚拟端口名称一致,将所有虚拟端口组成一个HASH表作为Group,链接到内核链表中;
S22、带有Special Tag的数据帧经过网络接口进入到端口模型中,所述端口模型遍历所述内核链表,用数据帧中的Src_port作为索引来匹配链表中的成员的Tag属性值,找到和该数据帧相应的虚拟端口;
S23、所述虚拟端口接收到数据帧后,去掉所述数据帧的Special Tag,将去掉Special Tag的数据帧发送至桥接模块中。
本发明还能进行下行数据传输,具体步骤是:
S4、所述端口模型模块的虚拟端口从桥接模块收到未带有Special Tag的数据帧,根据所述虚拟端口的Tag属性值,给数据帧增加Special Tag,根据Special Tag的Tag值将带有Special Tag的数据帧经网络接口发送给交换芯片;
S5、所述交换芯片将带有Special Tag的数据帧通过相对应的物理端口进行发送和转发。
实施例1:
本发明是基于linux系统中的网桥模块、交换芯片以及端口模型模块实现的,大致的方法是:先构建虚拟端口,在linux系统下虚拟端口,进一步定义为虚拟网络设备,使其与网络设备的实际物理端口一一对应;配置交换芯片的工作模式,使其在转发的数据帧中打上Special tag,在本发明中,Special tag就是通篇所讲的专属标签,此Special tag中带有物理端口信息。为了能更好的说明此硬件结构,如图2所示,图2给出了三层网络设备基本硬件结构,交换芯片有2个网络接口Gbe#0和Gbe#1,WAN侧的网络接口Gbe#1直接与设备WAN口相连。LAN口的网络接口Gbe#0与交换芯片的CPU port相连,网络设备的物理端口就是此图中的交换芯片的物理端口。
图3是本发明的软件组成结构图。网络接口ethX是物理接口Gbe#0的Linux系统下虚拟端口,也就是创建的虚拟端口,此接口是数据包接收和发送的透明通道。在此发明的实现过程中,在Linux TCP/IP协议栈下面,增加了端口模型模块,并将端口模型模块中的虚拟端口和网络设备的物理端口建立起一一对应关系,启用了数据链路层的桥接模块,将端口模型模块中的每个虚拟端口接口作为桥的成员。Linux系统桥接模块STP的算法实现是认为它的每个成员是STP的端口,路径的计算以及最终需要改变的状态是其成员的状态,进一步桥接模块根据成员的状态来决定对哪些成员是否转发数据包或转发哪种数据包,如某个成员是Blocking状态,桥接模块就只对该成员转发BPDU数据包,如是Disable状态,就不对该成员转发任何数据包,如是Forwarding状态,就转发所有数据包,所以,将端口模型模块中的每个虚拟端口作为桥接模块的成员后,STP算法实现在虚拟端口上发挥作用了,下一步只要把端口模型模块中的每个虚拟端口接口和设备的物理接口一一对应就行了,具体的步骤为:
S21、根据交换芯片当前的物理端口个数创建相应个数的虚拟端口,将每个虚拟端口注册为网络设备,并注册每个网络设备的控制方法和定义每个网络设备的属性,所述属性至少包括Tag值,所述Tag值与虚拟端口名称一致,将所有虚拟端口组成一个HASH表作为Group,链接到内核链表中;
S22、带有Special Tag的数据帧经过网络接口进入到端口模型中,所述端口模型遍历所述内核链表,用数据帧中的Src_port作为索引来匹配链表中的成员的Tag属性值,找到和该数据帧相应的虚拟端口;
S23、所述虚拟端口接收到数据帧后,去掉所述数据帧的Special Tag,将去掉Special Tag的数据帧发送至桥接模块中。
通俗的讲:在端口模型模块中注册虚拟端口,所有的虚拟端口组成一个HASH表组成Group链接到端口模型链表中,每个虚拟端口代表一个实际物理端口,其次,配置交换芯片的工作模式,使其以Special TAG方式运行,并指定交换芯片与Gbe#0相连的端口CPUport,交换芯片在此模式下运行后,根据交换芯片的功能属性,对于从物理端口进入的数据包,带有Special Tag,而且此Special Tag中带有数据帧的源端口信息,如图4所示。交换芯片的CPU port收到的数据包,交换芯片会根据数据包中的Special Tag里的端口信息Target_port将该数据包发送到对应物理端口,如图5所示,具体描述为,数据上行时,端口模型模块根据收到的带有Special Tag的数据帧里面的端口号匹配其注册的虚拟端口(如port1,port2…),就是说,从端口1进来的数据包由端口虚拟设备port1接收,然后脱去Special tag,发送给桥接模块;数据下行时,端口模型模块从桥接模块接收到数据,虚拟端口发送时,填充Special Tag,将自己的虚拟端口号增加到Special Tag信息中,比如,从虚拟端口port1发送的数据,将1加入到Special Tag信息中,如此类推,数据下行的方法参见,从所述目标端口中接收数据帧,将所述数据帧通过所述虚拟端口进行发送;所述数据帧通过虚拟端口发送时,给所述数据帧添加专属标签,并将所述专属标签对应的虚拟端口的号码增加到专属标签中;通过所述专属标签对应的虚拟端口将带有专属标签的数据帧发送至对应的所述物理端口中。然后通过虚拟端口ethX发送给交换芯片,交换芯片根据其SpecialTag中的Trg_port端口信息,发送给指定物理端口。这样,对于数据包的收发,即:端口模型模块中的虚拟端口和实际物理端口一一对应。实现了端口模型模块的虚拟端口的透明化,换句话说,将桥接模块的成员变成了实际的物理接口。
就以上方式搭建的网络结构,网络设备的物理端口实际上已经变成了桥接模块的成员,这样,Linux系统下的桥接模块的STP算法就直接作用在物理端口上了,也就是实现了该设备的STP功能。
如图6所示,是本发明的详细过程:配置交换交换芯片的工作模式,使其以SpecialTag方式运行;配置交换芯片CPU port,使得与Gbe#0相连的端口成为交换芯片的CPU port。交换芯片在此模式下运行后,根据交换芯片的功能属性,对于从物理端口进入的数据包,交换芯片都会在该数据帧的目标地址和原地址之后加上Special Tag,然后通过网络虚拟端口ethX转发到端口模型模块,Special Tag包含4个字节的数据,如图2所示,bit19~bit23五位Src_Port表示该数据帧是从交换芯片的哪个端口进入的,即该数据帧的源端口。即,从端口1进来的数据包,Special Tag中的Src_port为1,从端口2进来的数据包,Special Tag中的Src_port为2,以此类推,等等。对于下行报文,即端口模型模块通过网络虚拟端口ethX进入交换芯片CPU port口口的数据报,交换芯片根据Special Tag的信息进行转发。如图3所示,其中bit19~bit23这5位为Target_port,即该报文的目标端口,即根据Target_port直接将该报文转发到那个端口。交换芯片的Special Tag特征为网桥的成员端口与设备的物理端口建立一一对应关系创造了条件。
进一步地,根据这些特征,设计端口模型模块。根据当前的物理端口个数创建相应个数的端口虚拟设备接口port1,port2,port3…portN,每个虚拟端口注册为网络设备类型,所有虚拟端口port1,port2,port3…portN组成一个HASH表作为Group,链接到内核链表中。每个虚拟端口作为标准的网络虚拟设备,注册其控制方法,如open(),close(),xmit(),rx(),以及ioctl()等基本函数,定义每个虚拟设备的属性,如Tag值,Remove Tag,AddTag属性等,为配置和管理方便,Tag值与接口名称一致,如port1的Tag属性值为1,port2的Tag属性值为2,以此类推,等等。上行数据包在端口模型模块中传送流程如下:进入物理端口的数据帧,从交换芯片的CPU port发出后,带有Special Tag的数据帧经过ethX接口发送到端口模型模块,端口模型模块会遍历虚拟端口Group链表,用数据帧中的Src_port作为索引来匹配链表中的成员的Tag属性值,从而发现该数据包从哪个虚拟端口往上层发送。因为配置时将每个虚拟端口的Tag值与接口名一致,所以Src_port为1的数据包会由port1的虚拟端口接收,Src_port为2的数据包会由port2的虚拟端口接收,以此类推,等等。虚拟端口接收到数据包后,去掉Special Tag的内容,再向上层的桥接模块传送。再根据前面描述的交换芯片的属性,即是说,从物理端口1上来的数据包由数据模型模块中的虚拟端口port1完成接收和进一步向上层传送,从物理端口2上来的数据包由数据模型模块中的虚拟端口port2完成接收和进一步向上传送,等等。对于下行数据包,端口模型模块的虚拟端口从桥接模块收到数据包后,根据自己的Tag属性值,在数据包上增加Special Tag内容,把Tag属性值作为Special Tag中的Target_port,然后数据包经由ethX发给交换芯片的CPU port。由于Tag属性值和虚拟端口名一致,如虚拟端口port1从桥接模块收到的数据包后,把1作为在Special Tag的Target_port,在数据包上增加Special Tag的内容,然后经由ethX发给交换芯片的CPU port,CPU port收到带有Special Tag的数据帧后,根据对前面交换芯片的描述可知,它会将数据包转发给对应的端口1。即是说,数据模型模块中的虚拟端口port1收到的数据包都从物理端口1发送出去,数据模型模块中的虚拟端口port2收到的数据包都从物理端口2发送出去。
由上面对交换芯片和端口模型模块的上下行数据的分析得出如下结论:设备的物理端口和端口模型模块的虚拟端口一一对应。
进一步地,创建桥接模块的虚拟桥接口br,绑定端口模型模块的虚拟端口port1,port2…portN作为桥br的成员,这样桥接模块就可以根据STP的算法来管理和控制端口模型模块的虚拟端口了。而设备的物理端口和端口模型模块的虚拟端口一一对应,所以,接模块就可以根据STP的算法来管理和控制端口设备的物理端口了,在网络逻辑上,物理端口就成为了桥接模块的成员了。
实施例2:
一种基于端口模型的三层及以上网络设备STP的实现系统,如图7所示,包括以下模块:
配置模块,用于配置交换芯片的工作模式,使所述交换芯片以Special Tag方式运行:以Special Tag方式运行的交换芯片对从当前物理端口进入的数据帧进行添加SpecialTag,并将带有Special Tag的数据帧进行发送;
第一创建模块,用于创建端口模型:根据所述交换芯片当前物理端口创建相应的虚拟端口,带有Special Tag的数据帧从交换芯片经网络接口发送至所述端口模型中,所述虚拟端口和带有Special Tag的数据帧进行匹配,所述虚拟端口接收与其相匹配的带有Special Tag的数据帧,将带有Special Tag的数据帧脱去Special Tag,所述端口模型将脱去Special Tag的数据帧进行发送;
第二创建模块,用于创建桥接模块的虚拟桥接口:将所述端口模型的虚拟端口和所述桥接模块进行绑定,作为桥接模块的虚拟桥接口,所述桥接模块对所述虚拟端口进行管理和控制,脱去Special Tag的数据帧经虚拟桥接口进入桥接模块中。
更进一步地,所述配置模块被设置为:数据帧从所述交换芯片的物理端口进入后,所述交换芯片根据所述数据帧的目标地址和原地址加上相应的Special Tag。所述配置模块1还被设置为:所述Special Tag为4个字节的数据,Special Tag包括Src_Port,所述Src_Port表示该数据帧的源端口。
在本实施例中,所述第一创建模块被设置为:根据交换芯片当前的物理端口个数创建相应个数的虚拟端口,将每个虚拟端口注册为网络设备,并注册每个网络设备的控制方法和定义每个网络设备的属性,所述属性至少包括Tag值,所述Tag值与虚拟端口名称一致,将所有虚拟端口组成一个HASH表作为Group,链接到内核链表中;
带有Special Tag的数据帧经过网络接口进入到端口模型中,所述端口模型遍历所述内核链表,用数据帧中的Src_port作为索引来匹配链表中的成员的Tag属性值,找到和该数据帧相应的虚拟端口;
所述虚拟端口接收到数据帧后,去掉所述数据帧的Special Tag,将去掉SpecialTag的数据帧发送至桥接模块中。
所述第一创建模块被设置为:所述端口模型模块的虚拟端口从桥接模块收到未带有Special Tag的数据帧,根据所述虚拟端口的Tag属性值,给数据帧增加Special Tag,根据Special Tag的Tag值将带有Special Tag的数据帧经网络接口发送给交换芯片;
所述配置模块被设置为:所述交换芯片将带有Special Tag的数据帧通过相对应的物理端口进行发送和转发。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本发明的实施例可提供为方法、装置、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
此外,需要说明的是,本说明书中所描述的具体实施例,其零、部件的形状、所取名称等可以不同。凡依本发明专利构思所述的构造、特征及原理所做的等效或简单变化,均包括于本发明专利的保护范围内。本发明所属技术领域的技术人员可以对所描述的具体实施例做各种各样的修改或补充或采用类似的方式替代,只要不偏离本发明的结构或者超越本权利要求书所定义的范围,均应属于本发明的保护范围。
Claims (10)
1.一种基于端口模型的三层及以上网络设备STP的实现方法,其特征在于,包括以下步骤:
配置交换芯片的工作模式,使所述交换芯片以Special Tag方式运行:以Special Tag方式运行的交换芯片对从当前物理端口进入的数据帧进行添加Special Tag,并将带有Special Tag的数据帧进行发送;
创建端口模型:根据所述交换芯片当前物理端口创建相应的虚拟端口,带有SpecialTag的数据帧从交换芯片经网络接口发送至所述端口模型中,所述虚拟端口和带有SpecialTag的数据帧进行匹配,所述虚拟端口接收与其相匹配的带有Special Tag的数据帧,将带有Special Tag的数据帧脱去Special Tag,所述端口模型将脱去Special Tag的数据帧进行发送;
创建桥接模块的虚拟桥接口:将所述端口模型的虚拟端口和所述桥接模块进行绑定,作为桥接模块的虚拟桥接口,所述桥接模块对所述虚拟端口进行管理和控制,脱去SpecialTag的数据帧经虚拟桥接口进入桥接模块中。
2.根据权利要求1所述的基于端口模型的三层及以上网络设备STP的实现方法,其特征在于,所述以Special Tag方式运行的交换芯片对从当前物理端口进入的数据包进行添加Special Tag,并将带有Special Tag的数据帧进行发送具体是指:
数据帧从所述交换芯片的物理端口进入后,所述交换芯片根据所述数据帧的目标地址和原地址加上相应的Special Tag。
3.根据权利要求1或2所述的基于端口模型的三层及以上网络设备STP的实现方法,其特征在于,所述Special Tag为4个字节的数据,Special Tag包括Src_Port,所述Src_Port表示该数据帧的源端口。
4.根据权利要求3所述的基于端口模型的三层及以上网络设备STP的实现方法,其特征在于,所述根据所述交换芯片当前物理端口创建相应的虚拟端口,带有Special Tag的数据帧从交换芯片经网络接口发送至所述端口模型中,所述虚拟端口和带有Special Tag的数据帧进行匹配,所述虚拟端口接收与其相匹配的带有Special Tag的数据帧,将带有Special Tag的数据帧脱去Special Tag,所述端口模型将脱去Special Tag的数据帧进行发送具体过程为:
根据交换芯片当前的物理端口个数创建相应个数的虚拟端口,将每个虚拟端口注册为网络设备,并注册每个网络设备的控制方法和定义每个网络设备的属性,所述属性至少包括Tag值,所述Tag值与虚拟端口名称一致,将所有虚拟端口组成一个HASH表作为Group,链接到内核链表中;
带有Special Tag的数据帧经过网络接口进入到端口模型中,所述端口模型遍历所述内核链表,用数据帧中的Src_port作为索引来匹配链表中的成员的Tag属性值,找到和该数据帧相应的虚拟端口;
所述虚拟端口接收到数据帧后,去掉所述数据帧的Special Tag,将去掉Special Tag的数据帧发送至桥接模块中。
5.根据权利要求4所述的基于端口模型的三层及以上网络设备STP的实现方法,其特征在于,还包括以下步骤:
所述端口模型模块的虚拟端口从桥接模块收到未带有Special Tag的数据帧,根据所述虚拟端口的Tag属性值,给数据帧增加Special Tag,根据Special Tag的Tag值将带有Special Tag的数据帧经网络接口发送给交换芯片;
所述交换芯片将带有Special Tag的数据帧通过相对应的物理端口进行发送和转发。
6.一种基于端口模型的三层及以上网络设备STP的实现系统,其特征在于,包括以下模块:
配置模块,用于配置交换芯片的工作模式,使所述交换芯片以Special Tag方式运行:以Special Tag方式运行的交换芯片对从当前物理端口进入的数据帧进行添加SpecialTag,并将带有Special Tag的数据帧进行发送;
第一创建模块,用于创建端口模型:根据所述交换芯片当前物理端口创建相应的虚拟端口,带有Special Tag的数据帧从交换芯片经网络接口发送至所述端口模型中,所述虚拟端口和带有Special Tag的数据帧进行匹配,所述虚拟端口接收与其相匹配的带有SpecialTag的数据帧,将带有Special Tag的数据帧脱去Special Tag,所述端口模型将脱去Special Tag的数据帧进行发送;
第二创建模块,用于创建桥接模块的虚拟桥接口:将所述端口模型的虚拟端口和所述桥接模块进行绑定,作为桥接模块的虚拟桥接口,所述桥接模块对所述虚拟端口进行管理和控制,脱去Special Tag的数据帧经虚拟桥接口进入桥接模块中。
7.根据权利要求6所述的基于端口模型的三层及以上网络设备STP的实现系统,其特征在于,所述配置模块被设置为:数据帧从所述交换芯片的物理端口进入后,所述交换芯片根据所述数据帧的目标地址和原地址加上相应的Special Tag。
8.根据权利要求6或7所述的基于端口模型的三层及以上网络设备STP的实现系统,其特征在于,所述配置模块被设置为:所述Special Tag为4个字节的数据,Special Tag包括Src_Port,所述Src_Port表示该数据帧的源端口。
9.根据权利要求8所述的基于端口模型的三层及以上网络设备STP的实现系统,其特征在于,所述第一创建模块被设置为:根据交换芯片当前的物理端口个数创建相应个数的虚拟端口,将每个虚拟端口注册为网络设备,并注册每个网络设备的控制方法和定义每个网络设备的属性,所述属性至少包括Tag值,所述Tag值与虚拟端口名称一致,将所有虚拟端口组成一个HASH表作为Group,链接到内核链表中;
带有Special Tag的数据帧经过网络接口进入到端口模型中,所述端口模型遍历所述内核链表,用数据帧中的Src_port作为索引来匹配链表中的成员的Tag属性值,找到和该数据帧相应的虚拟端口;
所述虚拟端口接收到数据帧后,去掉所述数据帧的Special Tag,将去掉Special Tag的数据帧发送至桥接模块中。
10.根据权利要求9所述的基于端口模型的三层及以上网络设备STP的实现系统,其特征在于,所述第一创建模块被设置为:所述端口模型模块的虚拟端口从桥接模块收到未带有Special Tag的数据帧,根据所述虚拟端口的Tag属性值,给数据帧增加Special Tag,根据Special Tag的Tag值将带有Special Tag的数据帧经网络接口发送给交换芯片;
所述配置模块被设置为:所述交换芯片将带有Special Tag的数据帧通过相对应的物理端口进行发送和转发。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711309495.6A CN107995119B (zh) | 2017-12-11 | 2017-12-11 | 基于端口模型的三层及以上网络设备stp的实现方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711309495.6A CN107995119B (zh) | 2017-12-11 | 2017-12-11 | 基于端口模型的三层及以上网络设备stp的实现方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107995119A true CN107995119A (zh) | 2018-05-04 |
CN107995119B CN107995119B (zh) | 2020-12-18 |
Family
ID=62037543
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711309495.6A Active CN107995119B (zh) | 2017-12-11 | 2017-12-11 | 基于端口模型的三层及以上网络设备stp的实现方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107995119B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110365586A (zh) * | 2019-07-16 | 2019-10-22 | 迈普通信技术股份有限公司 | 报文传输的方法及装置 |
CN113742098A (zh) * | 2021-08-20 | 2021-12-03 | 苏州浪潮智能科技有限公司 | 一种内核消息处理方法、装置、设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1985472A (zh) * | 2004-01-23 | 2007-06-20 | 城域信息包系统公司 | 通过节点发送分组的方法 |
CN102474449A (zh) * | 2009-11-02 | 2012-05-23 | 马维尔国际贸易有限公司 | 基于虚拟接口的交换装置和方法 |
CN103905325A (zh) * | 2012-12-26 | 2014-07-02 | 中兴通讯股份有限公司 | 二层网络数据传送方法及网络节点 |
US20140317248A1 (en) * | 2013-04-17 | 2014-10-23 | Ciena Corporation | Network technology interworking via user programmable event-action profiles |
-
2017
- 2017-12-11 CN CN201711309495.6A patent/CN107995119B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1985472A (zh) * | 2004-01-23 | 2007-06-20 | 城域信息包系统公司 | 通过节点发送分组的方法 |
CN102474449A (zh) * | 2009-11-02 | 2012-05-23 | 马维尔国际贸易有限公司 | 基于虚拟接口的交换装置和方法 |
CN103905325A (zh) * | 2012-12-26 | 2014-07-02 | 中兴通讯股份有限公司 | 二层网络数据传送方法及网络节点 |
US20140317248A1 (en) * | 2013-04-17 | 2014-10-23 | Ciena Corporation | Network technology interworking via user programmable event-action profiles |
Non-Patent Citations (1)
Title |
---|
李鹏: "快速生成树协议在交换芯片BCM53202M上的实现", 《中国优秀硕士学位论文全文库》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110365586A (zh) * | 2019-07-16 | 2019-10-22 | 迈普通信技术股份有限公司 | 报文传输的方法及装置 |
CN113742098A (zh) * | 2021-08-20 | 2021-12-03 | 苏州浪潮智能科技有限公司 | 一种内核消息处理方法、装置、设备及存储介质 |
CN113742098B (zh) * | 2021-08-20 | 2023-08-08 | 苏州浪潮智能科技有限公司 | 一种内核消息处理方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN107995119B (zh) | 2020-12-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104702479B (zh) | Sdn网络中建立隧道的方法和装置 | |
CN104639470B (zh) | 流标识封装方法及系统 | |
CN103685009B (zh) | 数据包的处理方法、控制器及系统 | |
CN109218178A (zh) | 一种报文处理方法及网络设备 | |
CN104380667B (zh) | 一种数据报文的路由方法和设备 | |
CN109861926A (zh) | 报文的发送、处理方法及装置、pe节点、节点 | |
CN104092595B (zh) | 基于802.1br的虚拟化系统中的报文处理方法及装置 | |
CN107689931A (zh) | 一种基于国产fpga的实现以太网交换功能系统及方法 | |
CN105827495B (zh) | Vxlan网关的报文转发方法和设备 | |
CN104717098B (zh) | 一种数据处理方法及装置 | |
CN106685826B (zh) | 交换机堆叠系统、从设备、交换芯片及处理协议报文方法 | |
CN103209132B (zh) | 在透明多链路互联(trill)网络中实现组播的方法、装置及系统 | |
CN104579968A (zh) | Sdn交换机获取精确流表项方法及sdn交换机、控制器、系统 | |
CN111049752B (zh) | 多传输线路的负载均衡方法及装置 | |
CN101001196A (zh) | 一种建立伪线隧道并利用其传送报文的方法和装置 | |
CN107404436A (zh) | 用于虚拟可扩展局域网的通信方法和装置 | |
CN105991435B (zh) | 用于获取端口路径的方法及装置 | |
CN104135446B (zh) | 基于SDN实现IPv4向IPv6过渡的系统及方法 | |
CN104301252B (zh) | 一种数据发送系统及数据发送方法 | |
CN104378299B (zh) | 流表项处理方法以及装置 | |
CN107968750A (zh) | 报文传输方法、装置及节点 | |
CN101394361A (zh) | 报文传输方法、设备和系统 | |
CN106254256A (zh) | 基于三层vxlan网关的数据报文转发方法和设备 | |
CN107770073A (zh) | 一种信息同步的方法,装置及系统 | |
CN104852855B (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 | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: Yuhang District Linping Street South River Road Hangzhou City, Zhejiang province 311100 No. 5 Building 7 Applicant after: ZHEJIANG EBANG COMMUNICATION Co.,Ltd. Address before: 311100 room 2, building 2, 3 Tai Chi Road, Yuhang economic and Technological Development Zone, Yuhang District, Hangzhou, Zhejiang, China Applicant before: ZHEJIANG EBANG COMMUNICATION Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |