一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

交换机动态链路备份及扩充方法、装置、设备及存储介质与流程

2022-02-22 03:26:32 来源:中国专利 TAG:


1.本发明涉及交换机数据传输技术领域,具体涉及一种交换机动态链路备份及扩充方法、装置、设备及存储介质。


背景技术:

2.白盒交换机是一种灵活、高效的网络设备,用户可根据需要在相同的硬件体系上部署不同的、具有个性化特点的应用及服务。其具有解耦软硬件的特性,可降低成本、提高使用灵活性,最大的亮点是其强大的开放性。
3.在对网络可靠性要求越来越高的今天,交换机通信链路的故障备份及扩展是一个十分重要的问题,特别在目前端口带宽越来越高,数据密度越来越大的情况下,任何一条交换机链路的短时间故障都有可能对网络业务造成严重的问题。另一方面,网络的发展也使得网络上的流量越来越多,对带宽的要求也越来越高,如果是短时间突然的大量流量,很有可能造成链路拥塞甚至丢包。目前也有许多现成的链路备份及自动扩充方案,例如链路备份来说,可以在物理上预留一条冗余的链路及端口,用于当前链路出故障时做备份,stp(生成树)系列协议即借助了这一思路。对于扩充链路带宽来说,二层网络有lacp(链路层聚合)协议,三层网络则有ecmp(等价路由)协议用于链路带宽的扩充。
4.但以上技术具有不同的劣势导致使用具有局限性。如预留的备份端口在未出故障的情况下是闲置的,且由于被阻塞而无法使用,这是一种纯硬件的物理备份,因此可以认为在此情况下,备份端口的转发能力是被浪费的,同时出故障时只能使用预定的备份端口,使用不够灵活,一旦预留的备份端口全部故障,那此条链路也就没有恢复的可能了。
5.另一方面,在现有的网络扩充协议中同样存在不够灵活的问题,需要扩充的端口及可扩充的端口都是设置好的,并无法根据实际流量的变化实时改变扩充的情况,总扩充的带宽大小也是固定的,无法充分的应对网络中的突发情况。
6.网络隧道(tunnel)技术是一种在网络中利用低层网络协议传输不同同层网络协议或高层网络协议报文的技术,如用于二层网络传输其他协议报文的l2tp(二层网络隧道协议)、pptp(点对点隧道协议),以及三层网络的gre(通用路由封装)协议。使用隧道技术,报文的收发双方并不需要考虑报文传输过程中的协议变化,可将两者间连接虚拟成一条点对点的专用链路,并提高传输可靠性与安全性。


技术实现要素:

7.针对现有链路备份及扩充技术中的不足,结合隧道技术的特点,本发明了提出了一种基于网络隧道的交换机动态链路备份及扩充方法、装置、设备及存储介质,克服了上述问题。
8.本发明的技术方案是:
9.第一方面,本发明技术方案提供一种交换机动态链路备份及扩充方法,包括如下步骤:
10.监控端口及链路状态;
11.将报文复制到缓冲区,根据监控状态添加相应的状态标记;
12.根据端口的属性将复制的报文封装入成相应属性的隧道协议报文;
13.将生成的隧道协议报文进行转发;
14.将接收到的隧道协议报文进行解包,读取原目的地址及转发次数;
15.当本机端口存在原目的地址的记录时,向该端口转发报文。
16.通过复制报文,封入隧道报文,然后根据一定的网络规则进行转发,接收到具有相应标记的报文的下一级交换机,将代替故障或者满带宽的交换机端口进行相应的转发,确保报文送达。
17.进一步的,监控端口及链路状态的步骤包括:
18.监控端口及链路状态;
19.若发现端口及链路状态在未进行设置下发生改变时,则判断为链路故障;
20.当带宽占满产生丢包时,则判断为需要链路扩充。
21.若发现端口/链路状态在没有管理员设置的情况下发生改变,或者直接断开,出现丢包的情况,则认为链路故障,当单链路由于带宽占满而发生丢包情况时则认为需要链路扩充。
22.进一步的,将报文复制到缓冲区,根据监控状态添加相应的状态标记的步骤包括:
23.当链路故障时,将需要从故障端口转发的报文复制到缓冲区,同时在报文中添加端口故障标记;
24.当需要链路扩充时,将要被丢弃的报文复制到缓冲区,同时在报文中添加端口扩充标记。
25.进一步的,根据端口的属性将复制的报文封装入成相应属性的隧道协议报文的步骤包括:
26.若端口的属性为二层口,将复制的报文封装为二层隧道协议报文,同时在报文中添加相应的状态标记及转发次数字段;每次转发该字段值加1;
27.若端口的属性为三层口,将复制的报文封装为三层隧道协议报文,并添加相应的状态标记。
28.隧道协议的报文中除了具有各种隧道报文的特性外,还会在其中增加故障标记及相关信息字段,包含故障端口号、类型机器型号等,用于向对端接收此报文的交换机传递故障信息,同时具有转发次数字段,每次转发此字段值加一。
29.三层隧道协议报文有超时字段,因此在报文中不添加转发次数字段。
30.进一步的,将生成的隧道协议报文进行转发的步骤包括:
31.当链路故障且属性为二层口时,将二层隧道协议报文从与故障端口处在同一虚拟局域网下的trunk端口发送出去;
32.当链路故障且属性为三层口时,将三层隧道协议报文从与故障端口具有相同目的路由的端口发送出去;
33.当链路需要扩充且属性为二层口时,将二层隧道协议报文从与该端口处于同一虚拟局域网下的trunk端口发送出去;
34.当链路需要扩充且属性为三层口时,将三层隧道协议报文从与该端口具有相同目
的路由的端口发送出去。
35.无需固定指定因备份或扩充而预留的端口,当出现端口故障或者需要扩展带宽时可自动进行备份或扩展,提高了端口的利用效率;若故障解除或者带宽占用下降,所占用端口或带宽也随之释放,不会影响其他报文的转发。
36.进一步的,当本机端口存在原目的地址的记录时,向该端口转发报文之前还包括:
37.查找本机端口是否存在原目的地址的记录;
38.若是,向本机端口转发报文;
39.若否:判断转发次数是否超过设定次数;若是,将报文丢弃;若否,执行步骤:根据端口的属性将复制的报文封装入成相应属性的隧道协议报文。
40.查询原报文的目的地址在本机端口上是否有记录,若存在则向此端口转发报文,若不存在则继续重新包装隧道并添加故障标记后转发,直到存在查找到存在此地址的端口,或者因为转发次数过多被丢弃。
41.第二方面,本发明技术方案还提供一种交换机动态链路备份及扩充装置,包括状态监控模块、报文预处理模块、报文封装模块、报文处理模块、报文解析模块;
42.状态监控模块,用于监控端口及链路状态;
43.报文预处理模块,用于将报文复制到缓冲区,根据监控状态添加相应的状态标记;
44.报文封装模块,用于根据端口的属性将复制的报文封装入成相应属性的隧道协议报文;
45.报文处理模块,用于将报文封装模块生成的隧道协议报文进行转发;还用于当本机端口存在原目的地址的记录时,向该端口转发报文;
46.报文解析模块,用于将接收到的隧道协议报文进行解包,读取原目的地址及转发次数。
47.进一步的,状态监控模块,具体用于监控端口及链路状态;若发现端口及链路状态在未进行设置下发生改变,则判断为链路故障;当带宽占满产生丢包时,则判断需要链路扩充。
48.进一步的,报文预处理模块,具体用于当状态监控模块监控到链路故障时,将需要从故障端口转发的报文复制到缓冲区,同时在报文中添加端口故障标记;当状态监控模块监控到链路需要扩充时,将要被丢弃的报文复制到缓冲区,同时在报文中添加端口扩充标记。
49.进一步的,报文封装模块包括二层口封装单元和三层口封装单元;
50.二层口封装单元,用于将复制的报文封装为二层隧道协议报文,同时在报文中添加相应的状态标记及转发次数字段;每次转发该字段值加1;
51.三层口封装单元,用于将复制的报文封装为三层隧道协议报文,并添加相应的状态标记。
52.进一步的,报文处理模块,具体用于当链路故障且属性为二层口时,将二层隧道协议报文从与故障端口处于同一虚拟局域网下的trunk端口发送出去;当链路故障且属性为三层口时,将三层隧道协议报文从与故障端口具有相同目的路由的端口发送出去;当链路需要扩充且属性为二层口时,将二层隧道协议报文从与该端口处于同一虚拟局域网下的trunk端口发送出去;当链路需要扩充且属性为三层口时,将三层隧道协议报文从与该端口
具有相同目的路由的端口发送出去。
53.进一步的,该装置还包括目的地址查找模块和转发次数判断模块;
54.目的地址查找模块,用于查找本机端口是否存在原目的地址的记录;
55.报文处理模块,具体还用于当目的地址查找模块查找到本机端口存在原目的地址的记录时,向本机端口转发报文;还用于当转发次数判断模块判断转发次数超过设定次数时,将报文丢弃;还用于当转发次数判断模块判断转发次数未超过设定次数时,触发报文封装模块重新封装相应的报文;
56.转发次数判断模块,用于当目的地址查找模块查找到本机端口不存在原目的地址的记录时,判断转发次数是否超过设定次数。
57.第三方面,本发明技术方案还提供一种计算机设备,包括处理器和存储器,所述处理器和所述存储器通过总线完成相互间的通信;所述存储器存储有可被所述处理器执行的程序指令,所述处理器调用所述程序指令能够执行如第一方面所述的交换机动态链路备份及扩充方法。
58.第四方面,本发明技术方案还提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行如第一方面所述的交换机动态链路备份及扩充方法。
59.从以上技术方案可以看出,本发明可应用于数据中心白盒交换机的链路故障备份及带宽的动态扩充,优点在于:
60.(1)无需预留用于备份或扩充的物理端口,提高了故障备份或动态扩充情况下交换机端口的利用率;
61.(2)配置灵活,故障或异常出现时自动启动,故障消除后可自动恢复;
62.(3)易于配置与部署,无需额外的硬件修改,成较低;
63.(4)使用隧道技术,接收端可做到无故障感知。
64.此外,本发明设计原理可靠,结构简单,具有非常广泛的应用前景。
65.由此可见,本发明与现有技术相比,具有突出的实质性特点和显著地进步,其实施的有益效果也是显而易见的。
附图说明
66.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
67.图1是本发明一个实施例的方法的示意性流程图。
68.图2是是本发明另一个实施例的方法的示意性流程图。
69.图3是本发明一个实施例的装置的示意性框图。
具体实施方式
70.为了使本技术领域的人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通
技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
71.如图1所示,本发明实施例1提供一种交换机动态链路备份及扩充方法,包括如下步骤:
72.s11:监控端口及链路状态;状态包括链路故障和链路扩充;
73.s12:将报文复制到缓冲区,根据监控状态添加相应的状态标记;
74.s13:根据端口的属性将复制的报文封装入成相应属性的隧道协议报文;
75.s14:将生成的隧道协议报文进行转发;
76.s15:将接收到的隧道协议报文进行解包,读取原目的地址及转发次数;
77.s16:当本机端口存在原目的地址的记录时,向该端口转发报文。
78.当为交换机的某一端口配置端口备份或者动态扩充后,将不断自动循环查询端口的状态及带宽利用情况;当出现端口状态不正常,或者是带宽利用率异常上升的情况后,交换机软件会将无法发送或者要被丢弃的报文复制到交换机存储空间中划分的一部分缓冲区中,在这里根据异常的类型添加不同的标记及端口机器信息,然后根据异常端口的属性封装入不同的隧道报文中,再根据不同的转发方式转发到下一级交换机。下一级交换机接收到此报文后,查询本机上是否存在原报文的目的地址,存在则进行原报文的转发。
79.通过复制报文,封入隧道报文,然后根据一定的网络规则进行转发,接收到具有相应标记的报文的下一级交换机,将代替故障或者满带宽的交换机端口进行相应的转发,确保报文送达。
80.如图2所示,本发明实施例2提供一种交换机动态链路备份及扩充方法,包括如下步骤:
81.s21:监控端口及链路状态;当链路故障时,执行步骤s22,当需要链路扩充时,执行步骤s23;
82.需要说明的是,若发现端口及链路状态在未进行设置下发生改变时,则判断为链路故障;当带宽占满产生丢包时,则判断为需要链路扩充。
83.本步骤中,当监控到端口正常时,继续进行监控过程;
84.s22:将需要从故障端口转发的报文复制到缓冲区,同时在报文中添加端口故障标记;执行步骤24;其中,缓冲区是在交换机上存储介质上划分出的一部分缓冲区;
85.s23:将要被丢弃的报文复制到缓冲区,同时在报文中添加端口扩充标记;
86.当带宽占满产生丢包时,交换机同样将要被丢弃的数据报文复制带缓冲区;
87.s24:判断端口的属性;若端口的属性为二层口,执行步骤s25,若端口的属性为三层口,执行步骤s27;
88.s25:将复制的报文封装为二层隧道协议报文,同时在报文中添加相应的状态标记及转发次数字段;每次转发该字段值加1;当链路故障时,在报文中添加端口故障标记;当需要链路扩充时,在报文中添加端口扩充标记;
89.s26:将二层隧道协议报文从同一虚拟局域网下的trunk端口发送出去;执行步骤29;
90.本步骤中,需要说明的是,当链路故障且属性为二层口时,将二层隧道协议报文从与故障端口处在同一虚拟局域网下的trunk端口发送出去;当链路需要扩充且属性为二层
口时,将二层隧道协议报文从与该端口处于同一虚拟局域网下的trunk端口发送出去;
91.s27:将复制的报文封装为三层隧道协议报文,并添加相应的状态标记;当链路故障时,在报文中添加端口故障标记;当需要链路扩充时,在报文中添加端口扩充标记;
92.s28:将三层隧道协议报文从具有相同目的路由的端口发送出去;执行步骤29;
93.当为交换机的某一端口配置端口备份或者动态扩充后,将不断自动循环查询端口的状态及带宽利用情况;当出现端口状态不正常,或者是带宽利用率异常上升的情况后,交换机软件会将无法发送或者要被丢弃的报文复制到交换机存储空间中划分的一部分缓冲区中,在这里根据异常的类型添加不同的标记及端口机器信息,然后根据异常端口的属性封装入不同的隧道报文中,再根据不同的转发方式转发到下一级交换机。
94.s29:将接收到的隧道协议报文进行解包,读取原目的地址及转发次数;
95.s30:查找本机端口是否存在原目的地址的记录,若否,执行步骤s31;若是,执行步骤33;查询原报文的目的地址在本机端口上是否有记录,若存在则向此端口转发报文,若不存在则继续重新包装隧道并添加故障标记后转发,直到存在查找到存在此地址的端口,或者因为转发次数过多被丢弃。
96.s31:判断转发次数是否超过设定次数;若是,执行步骤s32,若否,执行步骤s24;
97.s32:将报文丢弃;
98.s33:向本机端口转发报文。
99.下一级交换机接收到此报文后,进行隧道报文的解包并获取此报文的转发次数,超过转发次数的报文将被丢弃,若未超出,则查询本机上是否存在原报文的目的地址,存在则进行原报文的转发,否则将重新封入相应的隧道协议报文中,向下一级的交换机进行转发,直到转发次数超过限制被丢弃或者是被拥有原地址的交换机转发。
100.本实施例中,该方法还包括:如果故障解除,将停止报文的转发,自动恢复到交换机原状态。
101.隧道协议的报文中除了具有各种隧道报文的特性外,还会在其中增加故障标记及相关信息字段,包含故障端口号、类型机器型号等,用于向对端接收此报文的交换机传递故障信息,同时具有转发次数字段,每次转发此字段值加一。三层隧道协议报文有超时字段,因此在报文中不添加转发次数字段。
102.无需固定指定因备份或扩充而预留的端口,当出现端口故障或者需要扩展带宽时可自动进行备份或扩展,提高了端口的利用效率;若故障解除或者带宽占用下降,所占用端口或带宽也随之释放,不会影响其他报文的转发。
103.具体的,链路故障大多数故障原因是由于链路的介质问题,例如链路两端光收发器故障或者线缆中断。交换机启动后,若设置了对某一端口进行动态备份,便循环对端口状态进行查询。
104.若发现端口/链路状态在没有管理员设置的情况下发生改变。或者直接断开,出现丢包的情况。则立即将需要从故障端口转发的数据报文复制到交换机上存储介质上划分出的一部分缓冲区中,然后根据故障端口的类型进行划分:
105.若端口为二层口,则将复制的报文封装为二层隧道协议报文,同时在报文中加上原端口已故障的标记,再从与故障报文处于同一vlan(虚拟局域网)下的trunk端口(表示下一级通常为另一台交换机)发送出去,需要此端口状态为正常。下一级交换机接收到此报文
后会查询故障标记,确认为备份而来的数据包后将对此报文进行解包,查询原报文的目的地址在本机端口上是否有记录,若存在则向此端口转发报文,若不存在则继续向同vlan的端口重新包装隧道并添加故障标记后转发,直到存在查找到存在此地址的端口,或者因为转发次数过多被丢弃。
106.若端口为三层接,基本过程与二层口类似,但是将会封装三层隧道协议报文并添加相应的故障标记(三层报文有ttl(超时)字段,因此可在报文中不添加转发次数字段),并且会根据交换机内部的路由转发表向可达故障端口目的ip(网络地址)的端口转发报文。下一级交换机或路由器接收到此报文后,同样会读取故障标记,然后对数据包进行解包解析,发送到下一个目的地。
107.当单链路由于带宽占满而发生丢包情况时,本发明也可进行动态的链路扩展,其方法如下:当带宽占满产生丢包时,交换机同样将要被丢弃的数据报文复制到缓冲区,然后根据端口的属性(二层口或是三层口)不同封装入不同的隧道协议报文中,同样添加有关端口信息的部分,但是添加的标志并不注明故障,而是提示为扩充。然后此报文若为二层隧道协议报文则经过同vlan的trunk端口转发,若是三层隧道协议报文则经过有相同目的路由的端口转发,转发时将优先选择带宽占用较少的端口。当下一级的交换机或路由器接收到此报文后,则进行解包,按照目的地址直接转发或者重新封入隧道报文进入下一级交换机或者路由器。
108.如图3所述,本发明实施例还提供一种交换机动态链路备份及扩充装置,包括状态监控模块、报文预处理模块、报文封装模块、报文处理模块、报文解析模块;
109.状态监控模块,用于监控端口及链路状态;
110.报文预处理模块,用于将报文复制到缓冲区,根据监控状态添加相应的状态标记;
111.报文封装模块,用于根据端口的属性将复制的报文封装入成相应属性的隧道协议报文;
112.报文处理模块,用于将报文封装模块生成的隧道协议报文进行转发;还用于当本机端口存在原目的地址的记录时,向该端口转发报文;
113.报文解析模块,用于将接收到的隧道协议报文进行解包,读取原目的地址及转发次数。
114.需要说明的是,状态监控模块,具体用于监控端口及链路状态;若发现端口及链路状态在未进行设置下发生改变,则判断为链路故障;当带宽占满产生丢包时,则判断需要链路扩充。
115.在有些装置的实施例中,报文预处理模块,具体用于当状态监控模块监控到链路故障时,将需要从故障端口转发的报文复制到缓冲区,同时在报文中添加端口故障标记;当状态监控模块监控到链路需要扩充时,将要被丢弃的报文复制到缓冲区,同时在报文中添加端口扩充标记。
116.在有些装置的实施例中报文封装模块包括二层口封装单元和三层口封装单元;
117.二层口封装单元,用于将复制的报文封装为二层隧道协议报文,同时在报文中添加相应的状态标记及转发次数字段;每次转发该字段值加1;
118.三层口封装单元,用于将复制的报文封装为三层隧道协议报文,并添加相应的状态标记。
119.相应的,报文处理模块,具体用于当链路故障且属性为二层口时,将二层隧道协议报文从与故障端口处于同一虚拟局域网下的trunk端口发送出去;当链路故障且属性为三层口时,将三层隧道协议报文从与故障端口具有相同目的路由的端口发送出去;当链路需要扩充且属性为二层口时,将二层隧道协议报文从与该端口处于同一虚拟局域网下的trunk端口发送出去;当链路需要扩充且属性为三层口时,将三层隧道协议报文从与该端口具有相同目的路由的端口发送出去。
120.在有些装置的实施例中,该装置还包括目的地址查找模块和转发次数判断模块;
121.目的地址查找模块,用于查找本机端口是否存在原目的地址的记录;
122.报文处理模块,具体还用于当目的地址查找模块查找到本机端口存在原目的地址的记录时,向本机端口转发报文;还用于当转发次数判断模块判断转发次数超过设定次数时,将报文丢弃;还用于当转发次数判断模块判断转发次数未超过设定次数时,触发报文封装模块重新封装相应的报文;
123.转发次数判断模块,用于当目的地址查找模块查找到本机端口不存在原目的地址的记录时,判断转发次数是否超过设定次数。
124.本发明实施例提供的一种计算机设备,该设备可以包括:处理器、通信接口、存储器和总线,其中,处理器,通信接口,存储器通过总线完成相互间的通信。总线可以用于电子设备与传感器之间的信息传输。处理器可以调用存储器中的逻辑指令,以执行如下方法:监控端口及链路状态;将报文复制到缓冲区,根据监控状态添加相应的状态标记;根据端口的属性将复制的报文封装入成相应属性的隧道协议报文;将生成的隧道协议报文进行转发;将接收到的隧道协议报文进行解包,读取原目的地址及转发次数;当本机端口存在原目的地址的记录时,向该端口转发报文。
125.此外,上述的存储器中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、磁碟或者光盘等各种可以存储程序代码的介质。
126.本发明实施例提供一种非暂态计算机可读存储介质,该非暂态计算机可读存储介质存储计算机指令,该计算机指令使计算机执行上述方法实施例所提供的方法,例如包括:监控端口及链路状态;将报文复制到缓冲区,根据监控状态添加相应的状态标记;根据端口的属性将复制的报文封装入成相应属性的隧道协议报文;将生成的隧道协议报文进行转发;将接收到的隧道协议报文进行解包,读取原目的地址及转发次数;当本机端口存在原目的地址的记录时,向该端口转发报文。
127.在一些具体的实施例中,所述可读存储介质中被处理器执行的程序指令,具体可以实现以下步骤:查找本机端口是否存在原目的地址的记录;若是,向本机端口转发报文;若否:判断转发次数是否超过设定次数;若是,将报文丢弃;若否,执行步骤:根据端口的属性将复制的报文封装入成相应属性的隧道协议报文。
128.本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
129.尽管通过参考附图并结合优选实施例的方式对本发明进行了详细描述,但本发明并不限于此。在不脱离本发明的精神和实质的前提下,本领域普通技术人员可以对本发明的实施例进行各种等效的修改或替换,而这些修改或替换都应在本发明的涵盖范围内/任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献