模拟广域网数据传输方法、装置、电子设备及存储介质与流程

文档序号:24127041发布日期:2021-03-02 14:22阅读:109来源:国知局
模拟广域网数据传输方法、装置、电子设备及存储介质与流程

[0001]
本申请涉及计算机通信技术领域,尤其涉及一种模拟广域网数据传输方法、装置、电子设备及存储介质。


背景技术:

[0002]
广域网中的转发延迟很大程度上会对基于互联网的应用或设备的工作性能产生影响,从而导致用户体验严重下降。为了保障基于互联网的应用或设备不受广域网的转发延迟和带宽限制等特征的影响而导致的报文传输异常的问题,在基于互联网的应用或设备上线应用之前,需要在测试环境中对基于互联网的应用或设备模拟广域网进行报文传输的测试。
[0003]
相关技术中,若要增加报文传输过程中的延迟特性,只能使用超长的线缆的方式来实现;或者,通过基于fpga(field programmable gate array,现场可编程逻辑门阵列)的网络损伤仿真设备,根据测试需要,加入丢包、重复、乱序、带宽限制、延迟、延迟抖动等异常,用来模拟广域网环境下的报文传输过程。但相关技术存在测试实现困难、复杂的缺点。


技术实现要素:

[0004]
本申请提供一种模拟广域网数据传输方法及装置,以至少解决相关技术中存在测试实现困难、复杂的缺点的问题。本申请的技术方案如下:
[0005]
根据本申请实施例的第一方面,提供一种模拟广域网数据传输方法,应用于设置虚拟局域网vlan集合、接收端口、发送端口和选定端口集合的交换机中,所述接收端口和所述发送端口为与外部连接的端口,所述vlan集合包括至少三个vlan,所述选定端口集合包括至少一个选定端口,所述vlan集合中的每个vlan对应一个端口对,所述方法包括:
[0006]
通过所述接收端口接收未携带vlan标识的第一报文;
[0007]
在各个端口对对应的设定转发路径中转发所述第一报文;
[0008]
通过所述发送端口发送所述第一报文。
[0009]
该方法的有益效果为:本申请实施例提供的方法,通过对传统交换机进行vlan和端口的设置,从而实现在交换机中不只实现对第一报文的一次二层转发,而可以实现多次转发,从而可以实现模拟广域网环境下的数据传输过程,相对于现有技术中需要专业的网络损伤仿真设备从而存在实现困难、复杂的缺点来说,本申请提供了一种便捷、容易实现的用来模拟广域网环境下的数据传输过程。通过将本申请提供的模拟广域网数据传输方法应用于交换机,实现了模拟广域网的低带宽、高延迟的特点进行数据传输,从而在没有基于fpga的专门的网络损伤设备的情况下,也可以进行广域网环境下进行数据传输的测试,满足了对于广域网环境传输的测试需求。
[0010]
在一种可能的实施方式中,所述在各个端口对对应的设定转发路径中转发所述第一报文,包括:
[0011]
通过所述接收端口所在端口对中的另一个端口发送所述第一报文;
[0012]
针对所述设定转发路径中不包含所述接收端口且不包含所述发送端口的其他任一端口对,执行:通过当前端口对中的一个端口接收所述第一报文,在所述当前端口对中的另一个端口进行自环操作后将所述第一报文发送给所述设定转发路径中位于所述当前端口对后且相邻的下一个端口对;
[0013]
针对所述设定转发路径中包含所述发送端口的端口对,执行:通过包含所述发送端口的端口对中的另一端口接收所述第一报文。
[0014]
该实施方式的有益效果为:限定了在多个端口对中进行转发的具体实现方式,可以更加清楚的确定如何在各个端口对对应的设定转发路径中转发第一报文。
[0015]
在一种可能的实施方式中,通过所述接收端口所在端口对中的另一个端口发送所述第一报文,具体包括:
[0016]
获取所述接收端口所在端口对对应的第一vlan标识,通过所述接收端口所在端口对中的另一个端口发送添加所述第一vlan标识的所述第一报文;
[0017]
在所述当前端口对中的另一个端口进行自环操作后将所述第一报文发送给所述设定转发路径中位于所述当前端口对后且相邻的下一个端口对,具体包括:
[0018]
根据所述设定转发路径确定所述第一vlan标识映射到的目标vlan标识;
[0019]
将所述第一报文添加的所述第一vlan标识变更为所述目标vlan标识。
[0020]
该实施方式的有益效果为:提供了一种实现多个端口对中互相转发的实现方式,基于每个端口对对应一个vlan,通过不同vlan之间的映射以及为第一报文添加vlan标识,从而实现可以根据vlan标识和vlan映射规则实现在多个端口对之间的转发。
[0021]
在一种可能的实施方式中,所述方法还包括:
[0022]
响应于对目标矩阵的行数值、列数值的配置指令,基于所述行数值、所述列数值确定vlan集合包括的vlan数量,且基于所述列数值确定选定端口集合包括的选定端口数量;
[0023]
根据所述vlan数量设置属于所述vlan集合的vlan,以及根据所述选定端口数量设置属于所述选定端口集合的选定端口;其中,所述vlan集合中包括第一vlan、第二vlan及其他vlan;
[0024]
配置所述接收端口与任一选定端口属于所述第一vlan,且配置所述接收端口与所述发送端口属于所述第二vlan,以及将多个所述其他vlan填入所述目标矩阵;其中,所述vlan集合中的每个vlan具有不同的编号,且任两个编号相邻的vlan填入所述目标矩阵中的不同列;
[0025]
配置填入所述目标矩阵同一列的vlan对应的各端口对中均包含一个相同的选定端口,并配置每个选定端口允许通过的vlan数量阈值相同,得到所述目标矩阵。
[0026]
该实施方式的有益效果为:通过配置矩阵的实施方式,可以实现对模拟广域传输的低带宽高延时的自由设定,若为了模拟更低的带宽,则通过为目标矩阵配置更大的行数值实现,同理,若为了模拟更高的延迟,则通过为目标矩阵的行数值和列数值的乘积配置更大的数值来实现,从而实现更加精准的模拟。
[0027]
在一种可能的实施方式中,所述根据所述设定转发路径确定所述第一vlan标识映射到的目标vlan标识,包括:
[0028]
获取所述第一vlan标识在所述目标矩阵中的第一位置;
[0029]
确定所述第一位置是否为所述目标矩阵中任一行中的最后位置;
[0030]
若是,则将所述任一行相邻下一行的初始位置上填入的vlan标识作为所述目标vlan标识;若否,则将所述第一位置右侧且相邻的第二位置上填入的vlan标识作为所述目标vlan标识。
[0031]
该实施方式的有益效果为:该实施方式给出了一种设定转发路径的实施方式,通过设定转发路径,可以根据设定转发路径设置vlan集合和选定端口集合的大小,从而保证设置的vlan集合和选定端口集合的最大利用率。
[0032]
在一种可能的实施方式中,所述方法还包括:
[0033]
若通过所述发送端口接收到未携带vlan标识的第二报文,则直接通过所述接收端口转发所述第二报文。
[0034]
该实施方式的有益效果为:本申请提供的方法,通过一个方向上的配置实现模拟广域网数据传输,而在另一个传输方向依然可以实现传统交换机的二层转发功能,从而提高了交换机的复用性。
[0035]
根据本申请实施例的第二方面,提供一种模拟广域网数据传输方法装置,应用于设置虚拟局域网vlan集合、接收端口、发送端口和选定端口集合的交换机中,所述接收端口和所述发送端口为与外部连接的端口,所述vlan集合包括至少三个vlan,所述选定端口集合包括至少一个选定端口,所述vlan集合中的每个vlan对应一个端口对,所述装置包括:
[0036]
收发单元,用于通过所述接收端口接收未携带vlan标识的第一报文;
[0037]
处理单元,用于在各个端口对对应的设定转发路径中转发所述第一报文;
[0038]
所述收发单元,还用于通过所述发送端口发送所述第一报文。
[0039]
在一种可能的实施方式中,所述处理单元,用于在各个端口对对应的设定转发路径中转发所述第一报文时,具体用于:
[0040]
通过所述接收端口所在端口对中的另一个端口发送所述第一报文;
[0041]
针对所述设定转发路径中不包含所述接收端口且不包含所述发送端口的其他任一端口对,执行:通过当前端口对中的一个端口接收所述第一报文,在所述当前端口对中的另一个端口进行自环操作后将所述第一报文发送给所述设定转发路径中位于所述当前端口对后且相邻的下一个端口对;
[0042]
针对所述设定转发路径中包含所述发送端口的端口对,执行:通过包含所述发送端口的端口对中的另一端口接收所述第一报文。
[0043]
在一种可能的实施方式中,所述收发单元,用于通过所述接收端口所在端口对中的另一个端口发送所述第一报文时,具体用于:
[0044]
获取所述接收端口所在端口对对应的第一vlan标识,通过所述接收端口所在端口对中的另一个端口发送添加所述第一vlan标识的所述第一报文;
[0045]
在所述当前端口对中的另一个端口进行自环操作后将所述第一报文发送给所述设定转发路径中位于所述当前端口对后且相邻的下一个端口对,具体包括:
[0046]
根据所述设定转发路径确定所述第一vlan标识映射到的目标vlan标识;
[0047]
将所述第一报文添加的所述第一vlan标识变更为所述目标vlan标识。
[0048]
在一种可能的实施方式中,所述处理单元,还用于:
[0049]
响应于对目标矩阵的行数值、列数值的配置指令,基于所述行数值、所述列数值确定vlan集合包括的vlan数量,且基于所述列数值确定选定端口集合包括的选定端口数量;
[0050]
根据所述vlan数量设置属于所述vlan集合的vlan,以及根据所述选定端口数量设置属于所述选定端口集合的选定端口;其中,所述vlan集合中包括第一vlan、第二vlan及其他vlan;
[0051]
配置所述接收端口与任一选定端口属于所述第一vlan,且配置所述接收端口与所述发送端口属于所述第二vlan,以及将多个所述其他vlan填入所述目标矩阵;其中,所述vlan集合中的每个vlan具有不同的编号,且任两个编号相邻的vlan填入所述目标矩阵中的不同列;
[0052]
配置填入所述目标矩阵同一列的vlan对应的各端口对中均包含一个相同的选定端口,并配置每个选定端口允许通过的vlan数量阈值相同,得到所述目标矩阵。
[0053]
在一种可能的实施方式中,所述收发单元,用于根据所述设定转发路径确定所述第一vlan标识映射到的目标vlan标识时,具体用于:
[0054]
获取所述第一vlan标识在所述目标矩阵中的第一位置;
[0055]
确定所述第一位置是否为所述目标矩阵中任一行中的最后位置;
[0056]
若是,则将所述任一行相邻下一行的初始位置上填入的vlan标识作为所述目标vlan标识;若否,则将所述第一位置右侧且相邻的第二位置上填入的vlan标识作为所述目标vlan标识。
[0057]
在一种可能的实施方式中,所述收发单元,还用于:
[0058]
若通过所述发送端口接收到未携带vlan标识的第二报文,则直接通过所述接收端口转发所述第二报文。
[0059]
根据本申请实施例的第三方面,提供一种电子设备,包括至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如第一方面所提供的任一方法。
[0060]
根据本申请实施例的第四方面,提供一种存储介质,其中,所述存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行如第一方面所提供的任一方法。
[0061]
根据本申请实施例的第五方面,提供一种程序产品,其包括程序代码,当所述程序产品在计算机设备上运行时,所述程序代码用于使所述计算机设备执行如第一方面所提供的任一方法。
[0062]
其中,第二方面至第五方面的有益效果请具体参阅第一方面中各可能的实施方式的有益效果,在此不再赘述。
[0063]
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
[0064]
本申请的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请而了解。本申请的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
[0065]
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施
例,并与说明书一起用于解释本申请的原理,并不构成对本申请的不当限定。
[0066]
图1为本申请实施例提供的一种模拟广域网数据传输的场景示意图;
[0067]
图2为本申请实施例提供的一种通过矩阵确定vlan对应的一个端口对的示意图;
[0068]
图3为本申请实施例提供的一种模拟广域网数据传输方法的流程示意图;
[0069]
图4为本申请实施例提供的一种模拟广域网数据传输方法的场景示意图;
[0070]
图5为本申请一示例性实施方式的一种模拟广域网数据传输方法装置的流程示意图;
[0071]
图6为本申请一示例性实施方式的电子设备示意图。
具体实施方式
[0072]
为了使本领域普通人员更好地理解本申请的技术方案,下面将结合附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。
[0073]
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的描述在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。
[0074]
以下,对本申请实施例中可能涉及到的专业术语用语进行解释说明,以便于本领域技术人员理解,包括:
[0075]
(1)自环操作:即端口自环。可选的,通过设置底层寄存器,以使得交换机中指定端口的发送和接收信号连接在一起,从而使得端口变为连接状态,此时该指定端口上的业务逻辑仍然正常生效;并且由该端口发送出去的数据会被本端口再次接收到,接收到的数据与发送出去的完全一样。可以理解的是,通过设置端口自环,可以使得不连接用户设备的端口也可实现交换机中的二层流量的转发。
[0076]
(2)vlan(virtual local area network,虚拟局域网)映射:vlan映射技术的原理是在用户报文进入isp网络时,将用户的vlan标识(tag)按照一定的规则替换成公网的vlan tag,使得报文只携带一层vlan tag穿越isp网络,在离开isp网络时再通过一定的规则替换回原来的用户vlan tag,这种技术称为vlan映射。
[0077]
应用到交换机上,交换机的每个端口可以配置一条或多条vlan映射规则,示例性的,每条规则可实现将一个vid1(vlan id,vlan编号)映射为另一个vid2。例如,若收到携带vlan tag 1的报文,则会先将其根据配置的vlan映射规则将该报文的vlan tag替换为vlan2的标识,从而再按照vlan 2的转发规则继续进行转发。
[0078]
目前,在通过互联网进行数据传输的过程中,网络中的转发延迟会很大程度上影响基于互联网的应用或设备工作的性能,从而可能导致吞吐量严重下降,进而严重影响用户体验。而这些应用或设备在研发的过程中,往往都是在有着高带宽、低延迟的局域网中进行调试和测试,因此在上线前无法发现一些在广域网的低带宽、高延迟的环境下才会出现的问题,从而导致应用或设备上线后用户体验差甚至导致上线失败。故而在上线之前需要一种工具或技术,用于在以太网的测试环境中引入低带宽、高延迟及延迟抖动等广域网传输特性,进而尽力避免上线之后在广域网环境下引起丢包、转发错误等问题。
[0079]
相关技术中,采用的测试方式有通过专门的硬件设备,如网络损伤仿真设备,实现模拟广域网进行数据传输的场景。通过基于fpga构成的网络损伤仿真设备,可以根据需要,加入丢包、重复、乱序、延迟、延迟抖动等异常,从而模拟传输过程中经过广域网环境下的数据传输情况。或者,相关技术中,若需要模拟高延迟的场景,通过超长的线缆实现,然而会造成成本极高的问题。因此,相关技术中对于模拟广域网环境下的数据传输的实现过程较复杂且困难,而且成本较高。
[0080]
有鉴于此,本申请提供了一种模拟广域网数据传输的方法,通过现有的普通交换机,便可实现模拟具有低带宽、高延迟的特性的广域网环境进行数据传输过程,从而使得对于模拟广域网数据传输请求的实现简便,且成本低。参阅图1,为本申请实施例提供的一种模拟广域网数据传输的场景示意图,如图1中所示的内容,相关技术中通过在通信链路中连接专门用于模拟的网络损伤仿真设备来实现模拟广域网环境下的数据传输,而本申请中只需通过现有的交换机实现,具体的实现方式如后文所介绍的内容。
[0081]
为了实现仅通过传统的以太网交换机支持的功能来实现广域网数据传输的模拟,需要在现有交换机配置多个vlan,以及选择多个端口,并且结合设置vlan映射、端口自环等功能实现报文的模拟广域网传输。基于本申请的设计构思,以下通过第一方面介绍为了实现本申请提供的模拟广域网数据传输方法,对交换机进行的配置;通过第二方面介绍基于对交换机的配置进行模拟广域网数据传输方法的实现过程。
[0082]
第一方面:配置过程
[0083]
考虑到广域网环境下的数据传输存在低带宽、高延迟及延迟抖动等特性,本申请主要的设计思想如下:
[0084]
(一)、本申请中通过在交换机中配置多个不同的vlan,结合vlan映射技术使得报文在不同的vlan之间进行多次转发,由于每次数据转发都具有一定的延迟,因此多次转发之后使得该交换机输出的报文是模拟经过高延迟环境传输后的数据。
[0085]
(二)、本申请中通过设置端口的自环操作,以及设置一个端口允许多个vlan通过,从而使得报文可在一个端口上环回多次,由于报文存在持续性的特点,因此使得报文在每个端口上实际可分到的带宽只是该端口带宽的一小部分。
[0086]
(三)、由于报文多次经过同一个端口,由于报文的大小具有不稳定的特性,因此会导致延迟发生抖动的问题。
[0087]
基于上述的设计思想,本申请在对交换机进行配置时,预先设置vlan集合、接收端口、发送端口和选定端口集合。其中,接收端口和发送端口为在所述交换机上与其他设备连接的接口,例如图1中交换机中与接入交换机1、接入交换机2连接的端口。并且,为了满足模拟广域网数据传输,所述vlan集合包括至少三个vlan,所述选定端口集合包括至少一个选定端口,所述vlan集合中的每个vlan对应一个端口对,其中每个端口对中至少包括一个接收报文的端口、一个发送报文的端口。示例性的,为了便于理解和描述,以下实施例中,假设为接收端口为端口a、发送端口为端口b、选定端口集合为(t1…
t
n
),其中n表示选定端口的数量。
[0088]
为了保证端口和vlan之间的充分利用以及规律性,基于一定的规则实现各vlan与各端口之间的对应关系,从而满足每个vlan对应的一个端口对的设置。一种可能的实施方式中,通过预先设定的目标矩阵确定每个vlan对应的一个端口对,以及确定vlan之间的映
射规则。
[0089]
实施时,通过下列方式生成所述目标矩阵:
[0090]
步骤a1:响应于对目标矩阵的行数值、列数值的配置指令,基于所述行数值、所述列数值确定vlan集合包括的vlan数量,且基于所述列数值确定选定端口集合包括的选定端口数量。
[0091]
假设构造一个m*n大小的目标矩阵,其中m≥1,n≥2,则构造如下公式1所示的目标矩阵:
[0092][0093]
其中,v
m,n
用于表示矩阵中的位置,当接收到对于m、n值的配置指令之后,根据如公式1所示的尚未填入数值的目标矩阵的示例构建对应尺寸大小的目标矩阵。并且,基于m、n值确定vlan集合中vlan的数量为(m*n+2)个,基于n值确定选定端口集合中包括的选定端口数量为n个。
[0094]
步骤a2:根据所述vlan数量设置属于所述vlan集合的vlan,以及根据所述选定端口数量设置属于所述选定端口集合的选定端口;其中,所述vlan集合中包括第一vlan、第二vlan及其他vlan。
[0095]
示例性的,配置vlan集合中包括的m*n+2个vlan具有不同的编号,表示为(v0,v1,

,v
mn+1
),需要说明的是,不同vlan的序号仅是用于区分不同的vlan,不用于标识其他关系或区别,例如顺序、优先级等。假设将v0作为第一vlan,将v
mn+1
作为第二vlan,所述vlan集合中除v0,v
mn+1
之外的vlan为其他vlan。
[0096]
步骤a3:配置所述接收端口与任一选定端口属于所述第一vlan,且配置所述接收端口与所述发送端口属于所述第二vlan,以及将多个所述其他vlan填入所述目标矩阵。
[0097]
示例性的,配置端口a、端口b、选定端口集合(t1…
t
n
)与vlan之间建立以下关系:
[0098]
(1)、为端口a、任一选定端口t
i
配置允许v0通过,即v0对应的端口对包括端口a和选定端口t
i

[0099]
(2)、为端口a、端口b配置允许v
mn+1
通过,即v
mn+1
对应的端口对包括端口a和选定端口b。
[0100]
(3)、将配置的(v0,v1,

,v
mn-1
)填入到如公式1建立的空矩阵中,并且任两个编号相邻的vlan填入所述目标矩阵中的不同列。
[0101]
一种可能的实施例,填入vlan后的矩阵如以下公式2所示:
[0102][0103]
步骤a4:配置填入所述目标矩阵同一列的vlan对应的各端口对中均包含一个相同的选定端口,并配置每个选定端口允许通过的vlan数量阈值相同。
[0104]
示例性的,假设以t1对应矩阵中第一列的vlan,t2对应矩阵中第二列的vlan,以此类推......,t
n
对应矩阵中第n列的vlan,结合图2来理解,则可得到矩阵中每列vlan对应的端口对中的一个端口为其所在目标矩阵对应列的端口,例如第一列中的vlan均对应选定端
口t1。
[0105]
其次,每端口对中具有两个端口,基于端口(t1…
t
n
)对应的vlan最大数量阈值相同,则可得到每个端口允许通过的vlan数量为2m个,其中m个vlan为其对应列的vlan,另外m为其他列任一vlan,最后满足每个vlan对应两个端口的条件即可。
[0106]
通过以上配置过程,可得到与外部连接的端口a允许v0、v
mn+1
通过,为了实现从端口a到端口b的模拟广域网数据传输,将端口a的默认vlan设置为v0,则端口a接收到未携带vlan tag的报文之后,默认在v0中继续传输,并且通过端口b输出报文的时候不携带vlan tag。其次,可以得到与外部连接的端口b允许v
mn
、v
mn+1
通过,并且,将端口b的默认vlan设置为v
mn+1
,则端口b接收到报文之后,默认在v
mn+1
中继续传输,并且通过端口a输出报文的时候不携带vlan tag。然后,得到端口(t1…
t
n
)基于如前述实施例介绍的配置过程确定其允许的vlan,并且,通过端口(t1…
t
n
)输出的报文携带对应的vlan tag,以便于实现vlan映射。
[0107]
此外,本申请实施时还为每个选定端口配置端口自环功能,当选定端口进行自环操作之后,触发vlan映射,从而将第一报文携带的第一vlan标识替换为目标vlan标识,进而继续在目标vlan对应的端口对中进行转发。
[0108]
其中,不同的vlan之间基于设定转发路径实现vlan映射,例如,一种可能的设定转发路径为,按照vlan在目标矩阵中的位置实现映射,例如结合图2中所示的目标矩阵,vlan映射规则可以为从v0映射到v1、从v1映射到v2,......,从v
mn-1
映射到v
mn
,即映射规则为按照每行依次从左到右进行映射的顺序,以及按照行从上到下的顺序来进行映射。
[0109]
需要说明的是,本申请上述实施方式中给出的具有标号的vlan、端口以及映射规则中仅是本申请给出的一种可能的示例,用于解释本申请的申请原理,并不用来限定本申请,基于本申请的申请原理的基础上对其进行的序号的变更也属于本申请的保护范围。
[0110]
第二方面:实现过程
[0111]
参阅图3,为本申请实施例提供的一种模拟广域网数据传输方法的流程示意图,应用于交换机,所述交换机的配置如第一方面所介绍的配置过程,在此不再赘述,其实现过程包括以下步骤:
[0112]
步骤301:通过所述接收端口接收未携带vlan标识的第一报文。
[0113]
示例性的,继续沿用前述实施例中的假设,接收端口为端口a,由于端口a的默认vlan为v0,则其默认在v0中继续进行传输。
[0114]
步骤302:在各个端口对对应的设定转发路径中转发所述第一报文。
[0115]
实施时,在通过步骤301接收到外部的其他设备发送的第一报文之后,基于第一方面的配置过程,第一报文会根据交换机的配置规则继续进行转发,实施过程的步骤包括:
[0116]
步骤3021:通过所述接收端口所在端口对中的另一个端口发送所述第一报文。
[0117]
实施时,根据vlan对于报文的转发规则,在通过一个端口接收到报文之后,确定该端口所属于的vlan,然后将该报文在该vlan进行转发。示例性的,结合图2所示,在通过端口a接收到第一报文之后,确定该端口所属于的vlan有v0和v
mn+1
,并且进一步确定v0为端口a的默认vlan,因此第一报文会在v0所对应的端口对中进行转发,通过图2可以确定v0的端口对中的另一个端口为t1,因此通过t1将所述第一报文转发出去,且为转发的第一报文添加vlan tag v0。
[0118]
由于交换机中的选定端口t
i
均设置有端口自环功能,则端口t1会接收到其自己转
发的第一报文。其次,当端口t1接收到第一报文后,基于预先配置的vlan映射规则,确定对应的目标vlan,假设映射后的vlan为v1,则vlan tag会被替换为vlan tag v1发送出去,以使v1对应端口对中的一个端口接收第一报文。
[0119]
步骤3022:针对所述设定转发路径中不包含所述接收端口且不包含所述发送端口的其他任一端口对,执行:通过当前端口对中的一个端口接收所述第一报文,在所述当前端口对中的另一个端口进行自环操作后将所述第一报文发送给所述设定转发路径中位于所述当前端口对后且相邻的下一个端口对。
[0120]
示例性的,针对不包含端口a且不包含端口b的其他任一端口对,对第一报文进行转发的原理相同,以下以其中一个端口对的转发过程为例进行介绍,其他端口对的实现过程类似,以下实施例中不再一一说明。
[0121]
在v0对应的端口对中的端口t1将第一报文发送出去之后,基于vlan映射规则,确定v0映射到v1,则通过v1对应的端口对中的一个端口接收到第一报文,然后将第一报文通过v1对应的端口对中的另一个端口进行自环操作后转发给下一端口对中的第一端口进行继续传输即可。需要说明的是,对于vlan对应的一个端口对中的一个端口、另一个端口没有明确的限定,若通过其中一个端口接收到该第一报文,则通过端口对中的另一端口转发出去即可。
[0122]
一种可能的实施方式中,确定下一个端口对的一种实施方式为通过vlan映射之后的目标vlan确定。实施为,根据设定转发路径确定第一vlan标识映射到的目标vlan标识;将所述第一报文添加的第一vlan标识变更为所述目标vlan标识,所述目标vlan标识用于确定所述下一个端口对。
[0123]
结合第一方面基于目标矩阵确定各vlan对应的端口对的实施方式,基于设定转发路径进行转发的具体实施方式可以为获取第一vlan标识在所述目标矩阵中的第一位置;确定所述第一位置是否为所述目标矩阵中任一行中的最后位置;若是,则将所述任一行相邻下一行的初始位置上填入的vlan标识作为所述目标vlan标识;若否,则将所述第一位置右侧且相邻的第二位置上填入的vlan标识作为所述目标vlan标识。示例性的,结合图2所示的目标矩阵,若第一vlan标识为v0,则目标vlan标识为在图2中目标矩阵中v0右侧且相邻的v1;若第一vlan标识为v
n-1
,则目标vlan标识为在图2中目标矩阵中v
n-1
的下一行的初始位置的v
n

[0124]
步骤3023:针对所述设定转发路径中包含所述发送端口的端口对,执行:通过包含所述发送端口的端口对中的另一端口接收所述第一报文。
[0125]
步骤303:通过所述发送端口发送所述第一报文。通过以上第一方面对于交换机配置过程的说明及以上第二方面对于实现过程的说明,可结合图2所示的目标矩阵确定本申请对于模拟广域网数据传输方法为,通过与外部连接的接收端口a接收第一报文后,基于端口a默认vlan为v0,则确定v0端口对中的另一端口为t1,则其通过t1自环操作后进行vlan映射到其他vlan,从而实现通过(t1…
t
n
)端口之间对于第一报文的多次转发。最后,直到(t1…
t
n
)端口中的某个端口收到第一报文时,基于vlan映射规则,将vlan tag替换为v
mn
后,由于v
mn
对应的一个端口对包含t
i
和端口b,当t
i
接收到第一报文后,通过该端口对中的另一端口b转发给连接的下一外部设备。
[0126]
通过本申请实施方式可得到,从端口a到端口b的第一报文,在交换机中进行了
(m
·
n+1)次同vlan端口对内的二层转发,从而实现对于广域网中高延迟特性的模拟。其中,每个报文在端口(t1…
t
n
)中的每个端口t
i
上发出又环回了m次,因此可得到每个端口上实际可达到的带宽只有最小端口带宽的1/m,从而实现对于广域网中低带宽特性的模拟。此外,由于第一报文的流量大小的不稳定,从而实现对于广域网中延迟抖动特性的模拟。
[0127]
基于以上实施方式,即实现了广域网传输的单向流量的模拟。并且,通过本申请提供的方法,可根据需要调整模拟的带宽大小,即同一端口通过的第一报文的次数越多则带宽越小,例如若想要模拟更小的带宽,则将矩阵的行数值m配置为更大的数值。同理,本申请提供的方法,还可根据需要调整模拟的延迟大小,即对于第一报文转发的次数越多则延迟越高,例如若想要模拟更高的带宽,则将矩阵的m*n配置为更大的数值。此外,可以理解的是m越大,第一报文的大小混合越复杂,则产生延迟抖动的概率就越大。
[0128]
此外,需要说明的是,由于第一报文不仅可能从端口a接收到,还可能是从端口b中接收到,若通过端口b接收到未携带vlan tag的第二报文之后,基于端口b默认在v
mn+1
中进行转发,然后确定v
mn+1
对应的一个端口对中的另一个端口为a,则其通过端口a将该第二报文转发出去。由于端口a也与外部连接,则其直接将第二报文转发给下一连接的外部设备。通过该场景可得到,当端口b接收到第二报文时,则从端口b到端口a的第二报文是进行正常转发的,以满足交换机进行二层流量转发的传统功能。
[0129]
进一步的,基于本申请的设计思想,还可以进一步实现对于第一报文的双向广域网数据传输的模拟,一种可能的实施方式为,可以通过两个交换机发送端口b进行连接来实现,其中两个交换机均根据第一方面的配置过程进行配置。
[0130]
例如,存在交换机1、和交换机2,均是基于第一方面的配置过程进行配置,假设其中交换机1的接收端口为a1、发送端口为b1、选定端口集合为(t
1a

t
na
)以及配置的vlan集合为(v
0a
,v
1a


,v
mn+1a
),而其中交换机2的接收端口为a2、发送端口为b2、选定端口集合为(t
1b

t
nb
)以及配置的vlan集合为(v
0b
,v
1b


,v
mn+1b
)。实施时,将交换机1的端口b1和交换机2的端口b2进行连接,用以实现双向的流量模拟。
[0131]
参阅图4,为本申请实施例提供的一种模拟广域网数据传输方法的场景示意图,若报文的传输方向为:从a1到b1再到b2、a2方向上,则通过第一交换机a1到b1实现广域网数据传输的模拟;若报文的传输方向为:从a2到b2再到b1、a1方向上,则通过第二交换机a2到b2实现广域网数据传输的模拟。由此实现了双向的流量模拟。
[0132]
另一种可能的实施方式中,若交换机中的端口数量以及可配置的vlan数量足够,则根据上述实施方式中实现对于交换机1和交换机2的配置以及连接方式相同的原理,在一个交换机上实现两组配置来实现双向的广域网数据传输的模拟,在此不再赘述。
[0133]
基于相同的发明构思,参阅图5,本申请还提供一种模拟广域网数据传输装置,提供一种模拟广域网数据传输方法装置,应用于设置虚拟局域网vlan集合、接收端口、发送端口和选定端口集合的交换机中,所述接收端口和所述发送端口为与外部连接的端口,所述vlan集合包括至少三个vlan,所述选定端口集合包括至少一个选定端口,所述vlan集合中的每个vlan对应一个端口对,所述装置包括:收发单元501、处理单元502;
[0134]
收发单元501,用于通过所述接收端口接收未携带vlan标识的第一报文;
[0135]
处理单元502,用于在各个端口对对应的设定转发路径中转发所述第一报文;
[0136]
所述收发单元501,还用于通过所述发送端口发送所述第一报文。
[0137]
在一种可能的实施方式中,所述处理单元502,用于在各个端口对对应的设定转发路径中转发所述第一报文时,具体用于:
[0138]
通过所述接收端口所在端口对中的另一个端口发送所述第一报文;
[0139]
针对所述设定转发路径中不包含所述接收端口且不包含所述发送端口的其他任一端口对,执行:通过当前端口对中的一个端口接收所述第一报文,在所述当前端口对中的另一个端口进行自环操作后将所述第一报文发送给所述设定转发路径中位于所述当前端口对后且相邻的下一个端口对;
[0140]
针对所述设定转发路径中包含所述发送端口的端口对,执行:通过包含所述发送端口的端口对中的另一端口接收所述第一报文。
[0141]
在一种可能的实施方式中,所述收发单元501,用于通过所述接收端口所在端口对中的另一个端口发送所述第一报文时,具体用于:
[0142]
获取所述接收端口所在端口对对应的第一vlan标识,通过所述接收端口所在端口对中的另一个端口发送添加所述第一vlan标识的所述第一报文;
[0143]
在所述当前端口对中的另一个端口进行自环操作后将所述第一报文发送给所述设定转发路径中位于所述当前端口对后且相邻的下一个端口对,具体包括:
[0144]
根据所述设定转发路径确定所述第一vlan标识映射到的目标vlan标识;
[0145]
将所述第一报文添加的所述第一vlan标识变更为所述目标vlan标识。
[0146]
在一种可能的实施方式中,所述处理单元502,还用于:
[0147]
响应于对目标矩阵的行数值、列数值的配置指令,基于所述行数值、所述列数值确定vlan集合包括的vlan数量,且基于所述列数值确定选定端口集合包括的选定端口数量;
[0148]
根据所述vlan数量设置属于所述vlan集合的vlan,以及根据所述选定端口数量设置属于所述选定端口集合的选定端口;其中,所述vlan集合中包括第一vlan、第二vlan及其他vlan;
[0149]
配置所述接收端口与任一选定端口属于所述第一vlan,且配置所述接收端口与所述发送端口属于所述第二vlan,以及将多个所述其他vlan填入所述目标矩阵;其中,所述vlan集合中的每个vlan具有不同的编号,且任两个编号相邻的vlan填入所述目标矩阵中的不同列;
[0150]
配置填入所述目标矩阵同一列的vlan对应的各端口对中均包含一个相同的选定端口,并配置每个选定端口允许通过的vlan数量阈值相同,得到所述目标矩阵。
[0151]
在一种可能的实施方式中,所述收发单元501,用于根据所述设定转发路径确定所述第一vlan标识映射到的目标vlan标识时,具体用于:
[0152]
获取所述第一vlan标识在所述目标矩阵中的第一位置;
[0153]
确定所述第一位置是否为所述目标矩阵中任一行中的最后位置;
[0154]
若是,则将所述任一行相邻下一行的初始位置上填入的vlan标识作为所述目标vlan标识;若否,则将所述第一位置右侧且相邻的第二位置上填入的vlan标识作为所述目标vlan标识。
[0155]
在一种可能的实施方式中,所述收发单元501,还用于:
[0156]
若通过所述发送端口接收到未携带vlan标识的第二报文,则直接通过所述接收端口转发所述第二报文。
[0157]
在介绍了本申请示例性实施方式的一种模拟广域网数据传输方法和装置之后,接下来,介绍根据本申请的另一示例性实施方式的电子设备。
[0158]
所属技术领域的技术人员能够理解,本申请的各个方面可以实现为系统、方法或程序产品。因此,本申请的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
[0159]
在一些可能的实施方式中,根据本申请的电子设备可以至少包括至少一个处理器、以及至少一个存储器。其中,存储器存储有程序代码,当程序代码被处理器执行时,使得处理器执行本说明书上述描述的根据本申请各种示例性实施方式的模拟广域网数据传输方法中的步骤。例如,处理器可以执行如图3中所示的步骤301-303。
[0160]
下面参照图6来描述根据本申请的这种实施方式的电子设备130。图6显示的电子设备130仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
[0161]
如图6所示,电子设备130以通用电子设备的形式表现。电子设备130的端口对件可以包括但不限于:上述至少一个处理器131、上述至少一个存储器132、连接不同系统端口对件(包括存储器132和处理器131)的总线133。
[0162]
总线133表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器、外围总线、处理器或者使用多种总线结构中的任意总线结构的局域总线。
[0163]
存储器132可以包括易失性存储器形式的可读介质,例如随机存取存储器(ram)1321和/或高速缓存存储器1322,还可以进一步包括只读存储器(rom)1323。
[0164]
存储器132还可以包括具有一端口对(至少一个)程序模块1324的程序/实用工具1325,这样的程序模块1324包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种端口对合中可能包括网络环境的实现。
[0165]
电子设备130也可以与一个或多个外部设备134(例如键盘、指向设备等)通信,还可与一个或者多个使得用户能与电子设备130交互的设备通信,和/或与使得该电子设备130能与一个或多个其它电子设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(i/o)端口135进行。并且,电子设备130还可以通过网络适配器136与一个或者多个网络(例如局域网(lan),广域网(wan)和/或公共网络,例如因特网)通信。如图所示,网络适配器136通过总线133与用于电子设备130的其它模块通信。应当理解,尽管图中未示出,可以结合电子设备130使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理器、外部磁盘驱动阵列、raid系统、磁带驱动器以及数据备份存储系统等。
[0166]
在一些可能的实施方式中,本申请提供的一种模拟广域网数据传输方法的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在计算机设备上运行时,程序代码用于使计算机设备执行本说明书上述描述的根据本申请各种示例性实施方式的一种模拟广域网数据传输方法的步骤,例如,计算机设备可以执行如图3中所示的步骤301-303。
[0167]
程序产品可以采用一个或多个可读介质的任意端口对合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的端口对合。可读存储介质的更具体的
例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的端口对合。
[0168]
本申请的实施方式的用于数据处理程序产品可以采用便携式紧凑盘只读存储器(cd-rom)并包括程序代码,并可以在电子设备上运行。然而,本申请的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
[0169]
可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的端口对合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
[0170]
可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、有线、光缆、rf等等,或者上述的任意合适的端口对合。
[0171]
可以以一种或多种程序设计语言的任意端口对合来编写用于执行本申请操作的程序代码,程序设计语言包括面向对象的程序设计语言—诸如java、c++等,还包括常规的过程式程序设计语言—诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户电子设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户电子设备上部分在远程电子设备上执行、或者完全在远程电子设备或服务器上执行。在涉及远程电子设备的情形中,远程电子设备可以通过任意种类的网络——包括局域网(lan)或广域网(wan)—连接到用户电子设备,或者,可以连接到外部电子设备(例如利用因特网服务提供商来通过因特网连接)。
[0172]
应当注意,尽管在上文详细描述中提及了装置的若干单元或子单元,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本申请的实施方式,上文描述的两个或更多单元的特征和功能可以在一个单元中具体化。反之,上文描述的一个单元的特征和功能可以进一步划分为由多个单元来具体化。
[0173]
此外,尽管在附图中以特定顺序描述了本申请方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
[0174]
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
[0175]
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产
生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0176]
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0177]
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0178]
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
[0179]
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1