一种数据交互方法、装置、设备及存储介质与流程

文档序号:28952611发布日期:2022-02-19 11:01阅读:93来源:国知局
一种数据交互方法、装置、设备及存储介质与流程

1.本公开涉及网络通信技术领域,尤其涉及云计算技术领域。


背景技术:

2.由于分布式计算系统能够提供丰富的计算资源,因此,越来越多的大规模应用程序部署于分布式计算系统,基于分布式计算系统中的各个服务器执行应用程序的各项任务。
3.一种情况下,分布式计算系统中的服务器基于tor(top of rack,架顶式)布设,这种情况下,分布式计算系统中的不同服务器可能位于不同机柜中,不同机柜中的服务器通过系统中的交换设备实现数据交互。
4.在此基础上,上述大规模应用程序的各项任务可能会由位于不同机柜的服务器执行,由于不同任务之间可能需要进行数据交互,因此,位于不同机柜的服务器也就存在数据交互需求,可以称为跨机柜交互需求。存在跨机柜交互需求的服务器进行数据交互时需要选择通信链路,在跨机柜交互需求较多时,多条通信链路可能会使用到同一交换设备,从而导致多条通信链路争抢一个交换设备的情况。


技术实现要素:

5.本公开提供了一种数据交互方法、装置、设备及存储介质。
6.根据本公开的一方面,提供了一种数据交互方法,包括:
7.确定针对每一预设的数据交互需求探测的多条通信链路,其中,数据交互需求对应的源设备和目的设备直连的交换设备不同;
8.针对每一数据交互需求,从该数据交互需求对应的通信链路中,选择用于实现该数据交互需求的通信链路;
9.通知各数据交互需求对应的源设备直连的交换设备按照为各数据交互需求选择的通信链路进行针对链路的信息配置,以使得各源设备按照配置后的信息与目的设备进行数据交互。
10.根据本公开的另一方面,提供了一种数据交互装置,包括:
11.通信链路确定模块,用于确定针对每一预设的数据交互需求探测的多条通信链路,其中,数据交互需求对应的源设备和目的设备直连的交换设备不同;
12.通信链路选择模块,用于针对每一数据交互需求,从该数据交互需求对应的通信链路中,选择用于实现该数据交互需求的通信链路;
13.信息通知模块,用于通知各数据交互需求对应的源设备直连的交换设备按照为各数据交互需求选择的通信链路进行针对链路的信息配置,以使得各源设备按照配置后的信息与目的设备进行数据交互。
14.根据本公开的另一方面,提供了一种电子设备,包括:
15.至少一个处理器;以及
16.与所述至少一个处理器通信连接的存储器;其中,
17.所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述数据交互方法。
18.根据本公开的另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行上述数据交互方法。
19.根据本公开的另一方面,提供了一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现上述数据交互方法。
20.由以上可见,本公开实施例提供的方案中,针对每一数据交互需求进行数据交互时,所使用的通信链路是已配置的,且在为各个数据交互需求配置通信链路时,针对每一数据交互需求探测出多条通信链路,这样能够以减少交换设备冲突的方式为每一数据交互需求选择通信链路,而不是随机分配通信链路。因此,可以有效降低交换设备发生冲突的概率,从而提高数据交互顺利进行的概率。
21.应当理解,本部分所描述的内容并非旨在标识本公开的实施例的关键或重要特征,也不用于限制本公开的范围。本公开的其它特征将通过以下的说明书而变得容易理解。
附图说明
22.附图用于更好地理解本方案,不构成对本公开的限定。其中:
23.图1为本公开实施例提供的一种网络拓扑示意图;
24.图2为本公开实施例提供的第一种数据交互方法的流程示意图;
25.图3为本公开实施例提供的一种通信链路探测方法的流程示意图;
26.图4为本公开实施例提供的第二种数据交互方法的流程示意图;
27.图5为本公开实施例提供的第一种数据交互装置的结构示意图;
28.图6为本公开实施例提供的第二种数据交互装置的结构示意图;
29.图7为本公开实施例提供的第三种数据交互装置的结构示意图;
30.图8是用来实现本公开实施例的数据交互方法的电子设备的框图。
具体实施方式
31.以下结合附图对本公开的示范性实施例做出说明,其中包括本公开实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本公开的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
32.下面对本公开实施例的应用场景进行说明。
33.本公开实施例提供的方案可以应用分布式计算系统,具体的,应用于分布式计算系统中直连于不同交换设备的服务器存在数据交互需求的场景。
34.其中,分布式计算系统可以是基于各种已知分布式框架的系统,该系统中可以包含多个服务器、交换设备等设备。其中,分布式计算系统所采用的框架以及设备接入方式可以根据应用场景、设计需求等因素确定。
35.下面以上述分布式计算系统中的服务器采用tor接入方式接入网络为例,对本公开实施例的应用场景进行说明。
36.参见图1,示出了一种网络拓扑示意图。图1中每一虚线框对应一个机柜,虚线框中最上方的矩形代表柜顶交换设备,虚线框中下方的多个矩形为多台服务器。图1中实线正方形代表上层交换设备。在不同网络架构模式下,上述上层交换设备可以是汇聚层交换设备或叶交换设备等。图1中设备间的连线代表设备间的物理链路,上述物理链路可以是铜缆或光纤等。
37.由图1可以看出,服务器被归拢到不同的机柜中,机柜的上部安装有交换设备,为了便于表述,以下称为柜顶交换设备。放置于同一机柜中的各台服务器可以通过线缆直接连接到柜顶交换设备,柜顶交换设备通过铜缆或光纤接入到上层交换设备,这样机柜中的服务器与其他设备进行数据交互时,通过该服务器所在机柜的柜顶交换设备实现。
38.具体的,机柜中的服务器与其他设备进行数据交互可以包括两种情况,第一种情况,同一机柜中的不同服务器进行数据交互,第二种情况,不同机柜中的服务器进行数据交互。
39.本公开实施例提供的方案主要用于实现上述第二种情况下的数据交互。针对上述第二种情况所示的数据交互,不同机柜中的服务器分别直连于各自机柜对应的柜顶交换设备,不同机柜对应的柜顶交换设备不同,这时两个机柜中的服务器需要进行数据交互时,认为该两机柜中的服务器之间存在交互需求,也可以称为存在跨机柜交互需求。例如,图1中,若机柜1中的服务器1与机柜2中的服务器2需要进行数据交互,则存在针对服务器1与服务器2的跨机柜交互需求。从图1还可以看出,不同机柜的柜顶交换设备之间没有直连的物理链路,也就是不同机柜的柜顶交换设备不能直接进行通信。因此,按照跨机柜交互需求进行数据交互时,需要借助上层交换设备实现。这时,若同时有两个或两个以上跨机柜交互需求使用的通信链路经过了同一个上层交换设备,则会发生交换设备冲突。
40.针对上述情况本公开实施例提供了一种数据交互方法,以在数据交互过程中减少交换设备冲突。
41.下面对本公开实施例的执行主体进行说明。
42.本公开实施例的执行主体可以是上述分布式计算系统中具有管理功能的交换设备,上述交换设备与源设备或目的设备直连。也可以是一台具有数据处理以及通信能力的电子设备。为便于表述,以下将本公开实施例的执行主体称为电子设备。
43.下面对本公开实施例提供的数据交互方法进行具体说明。
44.参见图2,图2为本公开实施例提供的第一种数据交互方法的流程示意图,上述方法包括以下步骤s201-s203。
45.步骤s201:确定针对每一预设的数据交互需求探测的多条通信链路。
46.其中,数据交互需求对应的源设备和目的设备直连的交换设备不同。
47.本步骤中,针对每一预设的数据交互需求,可以将发送数据的设备称为源设备,源设备的ip地址称为源ip地址,源设备的端口号称为源端口号,将接收数据的设备称为目的设备,目的设备的ip地址称为目的ip地址,目的设备的端口号称为目的端口号。
48.一条通信链路为实现一个数据交互需求的通信链路。预设的数据交互需求可以由运行在分布式计算系统中的应用程序决定。例如,应用程序的不同子任务运行在分布式计算系统中不同机柜内的设备上,当子任务之间需要进行数据交互时,这些子任务所在的设备也需要进行数据交互,此时源设备和目的设备直连的交换设备不同,这时可以认为存在
上述数据交互需求,这种情况下,也可以称上述数据交互需求为前述的跨机柜交互需求。
49.发明人在实现本公开实施例过程中发现,源设备和目的设备基于大多数路由协议进行数据交互时,源ip地址、源端口号、目的ip地址和目的端口号确定后,可以唯一确定一条通信链路。另外,还发现在上述源ip地址、目的ip地址和目的端口号不变的情况下,改变源端口号,上述通信链路会改变。
50.基于上述发现,每一预设的数据交互需求对应的源设备直连的交换设备可以针对该数据交互需求进行链路探测,且可以通过改变源端口号的方式探测多条通信链路。另外,也可以是一台设备中具有数据交互功能的模块针对每一预设的数据交互需求进行链路探测。
51.一种实施方式中,数据交互需求对应的源设备和目的设备可以是分布式计算系统中的服务器,源设备和目的设备直连的交换设备可以为服务器对应的柜顶交换设备。这种情况下,各柜顶交换设备探测到通信链路后,向上述电子设备发送所探测到通信链路的链路信息,从而使得电子设备能够确定各柜顶交换设备探测到的通信链路。上述通信链路的信息可以包括:源ip地址、源端口号、目的ip地址、目的端口号和通信链路经过的交换设备的mac地址等信息。
52.进行链路探测的具体实现方式可以参见后续图3所示实施例,这里暂不详述。
53.步骤s202:针对每一数据交互需求,从该数据交互需求对应的通信链路中,选择用于实现该数据交互需求的通信链路。
54.针对每一预设的数据交互需求探测出了多条可选的通信链路,这样电子设备可以针对每一预设的数据交互需求进行通信链路选择,为每一预设的数据交互需求选择进行数据交互时使用的通信链路。由于本公开实施例中,为各个预设的数据交互需求选择通信链路发生在进行数据交互之前,因此,在进行通信链路选择时,可以全面考虑各个预设的数据交互需求需要的交换设备,从而在进行链路规划时,尽量避免交换设备复用。
55.具体的,可以通过以下方式针对每一预设的数据交互需求进行通信链路选择。
56.一种实施方式中,电子设备可以以分布式计算系统中的交换设备为节点,基于上述步骤s201中确定的通信链路确定节点之间的边,实现数学建模,然后使用贪心算法对建模结果进行处理,为每一预设的数据交互需求选择使得局部范围内交换设备冲突较小的通信链路。
57.另一种实施方式中,由于按照数据交互需求进行数据交互时一定会经过数据交互需求对应的源设备直连的交换设备,因此,在减少交换设备冲突时,主要是减少分布式计算系统不与源设备和目的设备直连的交换设备的冲突。在此基础上,电子设备可以统计经过每一不与源设备和目的设备直连的交换设备的通信链路的链路数量,然后基于统计得到的链路数量为各数据交互需求选择通信链路。具体实现方式可以参见后续图4所示实施例中步骤s402-s405,这里暂不详述。
58.步骤s203:通知各数据交互需求对应的源设备直连的交换设备按照为各数据交互需求选择的通信链路进行针对链路的信息配置,以使得各源设备按照配置后的信息与目的设备进行数据交互。
59.在上述电子设备为源设备直连的交换设备的情况下,可以将数据交互需求划分为两类,第一类数据交互需求对应的源设备直连的交换设备为上述电子设备,第二类数据交
互需求对应的源设备直连的交换设备不是上述电子设备。
60.对于上述第一类数据交互需求,电子设备可以通知自身用于进行信息配置的模块,由上述信息配置模块按照为这些数据交互需求选择的通信链路进行针对链路的信息配置。
61.对于上述第二类数据交互需求,电子设备可以向这些数据交互需求对应的源设备直连的交换设备发送通知消息,由上述交换设备按照为这些数据交互需求选择的通信链路进行针对链路的信息配置。
62.另外,电子设备向各数据交互需求对应的源设备直连的交换设备发送通知时,不同实施方式中所通知的具体内容可以不同,下面分别介绍。
63.一种实施方式中,电子设备向各数据交互需求对应的源设备通知的具体内容可以为:通信链路对应的源端口号。这种情况下,电子设备针对每一数据交互需求,确定配置有第一链路的源ip地址的第一源设备直连的目标交换设备,然后向目标交换设备发送第一链路的源端口的端口号,这样目标交换设备可以将第一源设备按照该数据交互需求进行数据交互的源端口配置为第一链路的源端口。
64.其中,第一链路为:为该数据交互需求选择的通信链路。
65.由于数据交互需求对应的源ip地址、目的ip地址和目的端口号确定的情况下,再结合源端口号,能够确定出进行数据交互的通信链路,这样上述电子设备向各数据交互需求对应的源设备直连的交换设备发送通知时,发送的是源端口号,这样不仅能够保证确定出进行数据交互的通信链路,还能够减少所配置信息的数据量。
66.另一种实施方式中,电子设备向各数据交互需求对应的源设备直连的交换设备通知的具体内容可以为通信链路的链路信息,其中,上述链路信息可以包括:源端口号、源ip地址、目的ip地址、目的端口号以及链路所经过交换设备的mac地址等。这种情况下,电子设备针对每一预设的数据交互需求,向目标交换设备发送第一链路的链路信息,这样目标交换设备可以基于上述链路信息进行信息配置。
67.由以上可见,本公开实施例提供的方案中,针对每一数据交互需求进行数据交互时,所使用的通信链路是已配置的,且在为各个数据交互需求配置通信链路时,不仅针对每一数据交互需求探测出多条通信链路,还以减少交换设备冲突的方式为每一数据交互需求选择通信链路,而不是随机分配通信链路。因此,可以有效降低交换设备发生冲突的概率,从而提高数据交互顺利进行的概率。
68.下面对进行通信链路探测的实现方式进行说明。
69.参见图3,图3为本公开实施例提供的一种通信链路探测方法的流程示意图,上述方法包括以下步骤s301-s303。
70.步骤s301:根据数据交互需求,确定源ip地址、目的ip地址和目的端口。
71.由于数据交互需求反映的是两台设备进行数据交互的需求,因此,数据交互需要中一般会记录上述两台设备进行通信的信息,这样可以从数据交互需求中记录的信息中,获得上述源ip地址、目的ip地址和目的端口。
72.上述源ip地址和目的ip地址可以是上述数据交互需求的源设备和目的设备的网卡ip地址。
73.步骤s302:从配置有源ip地址的源设备的端口中,选择源端口。
74.一种实施方式中,与源设备直连的交换设备可以从配置有源ip地址的源设备的本地udp(user datagram protocol,用户数据包协议)端口中选择源端口。
75.具体的,从源设备的端口中选择源端口时,可以采用随机选择的方式选择源端口,也可以按照端口号由大到小或者由小到大的顺序选择源端口。为保证每次进行链路探测时依据的信息不同,每次选择源端口时,可以优先选择未选择过的端口作为源端口。
76.步骤s303:基于源端口、源ip地址、目的ip地址和目的端口,探测按照数据交互需求进行数据交互的通信链路,返回步骤s302,直至探测出预设数量条不同的通信链路。
77.上述源端口、源ip地址、目的ip地址和目的端口确定之后,数据交互需求对应的源设备直连的交换设备可以基于上述信息使用链路探测命令进行通信链路探测。
78.一种实施方式中,数据交互需求对应的源设备和目的设备可以是分布式计算系统中的服务器,源设备和目的设备直连的交换设备可以为服务器的柜顶交换设备。此时,上述柜顶交换设备可以将上述信息输入traceroute(路由追踪)这一链路探测工具,由traceroute基于上述信息进行链路探测,然后柜顶交换设备获得traceroute反馈的链路探测结果。
79.由于在一个数据交互需求对应的源ip地址、目的ip地址和目的端口确定的情况下,改变源端口能够改变通信链路,因此,柜顶交换设备可以多次从上述源设备的端口中选择不同的源端口进行链路探测,直到探测出预设数量条不同的通信链路,例如,上述预设数量可以是3、4、5等。
80.鉴于上述情况,从上述步骤s303返回s302后再次选择源端口时,优先选择未被选择过的端口作为源端口,这样可以有效保证柜顶交换设备基于不同的信息进行链路探测,也能够有效保证探测到不同的通信链路。
81.柜顶交换设备完成链路探测后,可以先判断自身是否为上述电子设备,也就是,判断自身是否为具有管理功能的交换设备,若不是上述电子设备,该柜顶交换设备向上述电子设备反馈所探测到通信链路的链路信息;若是上述电子设备,该柜顶交换设备先暂存所探测到的通信链路的链路信息,以备后续为数据交互需求选择通信链路。
82.本实施例提供的方案中针对每一数据交互需求,通过改变数据交互需求的源设备的源端口号的方式,多次进行通信链路探测,探测到了一个数据交互需求的多条可选的通信链路,这样为后续不同数据交互需求进行通信链路选择提供了多种可选通信链路,从而有利于为不同的数据交互需求选择出交换设备冲突较少的通信链路,进而能够减少数据交互时发生交换设备冲突的概率。
83.在选择通信链路时,除了前述图2所示实施中步骤s202处提及的实现方式外,还可以通过下述图4所示实施例中提及的步骤s402-s405实现。
84.参见图4,图4为本公开实施例提供的第二种数据交互方法的流程示意图,上述方法包括以下步骤s401-s406。
85.步骤s401:确定针对每一预设的数据交互需求探测的多条通信链路。
86.上述步骤s401与前述图2所示的步骤s201相同,这里不再详述。
87.步骤s402:统计经过每一第一交换设备的通信链路的链路数量。
88.其中,第一交换设备为不与源设备和目的设备直连的交换设备。
89.一种实施方式中,由于交换设备的mac地址能够表示该交换设备,所以,可以从各
条通信链路的链路信息中确定各条通信链路经过的第一交换设备的mac地址,然后,针对确定出的每一mac地址,统计链路信息中包含该mac地址的通信链路的链路数量,从而得到经过每一第一交换设备的通信链路的数量。
90.步骤s403:从未被选择过的第一交换设备中,选择链路数量最小的第二交换设备。
91.未被选择过的第一交换设备是指:第一交换设备中未作为过第二交换设备的交换设备。
92.若第一交换设备已被选择过,则表示已有完成通信链路规划的数据交互需求的通信链路经过该第一交换设备,因此,为了减少通信链路之间发生交换设备冲突的概率,可以选择未被选择过的第一交换设备进行通信链路规划,这样保证了对后续通信链路进行规划不会影响已规划好的数据交互需求对应的通信链路。
93.一种实施方式中,可以按照经过第一交换设备的通信链路数量对第一交换设备进行排序,例如,按照由大到小或者由小到大的顺序排序;然后按照排序结果从未被选择过的第一交换设备中选择通信链路数量最小的交换设备。
94.若通信链路数量最小的交换设备数量大于1,则可以从这些交换设备中任选一个交换设备,作为上述第二交换设备。
95.例如,若上述链路数量最小的交换设备有2个:设备a和设备b,则可以选择设备a作为第二设备,也可以选择设备b作为第二设备。
96.步骤s404:从经过第二交换设备的第二链路中选择待规划通信链路。
97.其中,第二链路所对应的数据交互需求未被规划通信链路。
98.若第二链路有多条,可以通过不同的方式选择一条第二链路作为待规划通信链路。
99.例如,可以从上述多条第二链路中任选一条作为待规划通信链路,可以选择上述多条第二链路中经过不与源设备和目的设备直连的交换设备最少的一条链路作为待规划通信链路,可以选择上述多条第二链路中所经过的交换设备中未被选择过的第一交换设备最多的一条链路作为待规划通信链路。
100.本公开实施例仅以上述为例进行说明,并不限定选择待规划通信链路的方式。
101.步骤s405:将待规划通信链路规划为用于实现待规划通信链路对应的数据交互需求的通信链路,返回步骤s403,直至各数据交互需求均被规划通信链路。
102.对待规划通信链路完成规划之后,上述待规划通信链路变为已被规划的通信链路。
103.在执行完本步骤后,可能还存在未被规划通信链路的数据交互需求,此时需要返回前述步骤s403,重新选择第二交换设备,以继续为数据交互需求规划通信链路。
104.步骤s406:通知各数据交互需求对应的源设备直连的交换设备按照为各数据交互需求选择的通信链路进行针对链路的信息配置,以使得各源设备按照配置后的信息与目的设备进行数据交互。
105.上述步骤s406与前述图2所示的步骤s203相同,这里不再详述。
106.由以上可见,本实施例提供的方案中,对经过第一交换设备的通信链路数量进行统计,优先从经过第二交换设备的通信链路中,选择通信链路,实现对数据交互需求的通信链路规划,由于第二交换设备为链路数量最小的交换设备,这样可以在局部范围内降低交
换设备的复用次数,从而有效降低了数据交互需求发生交换设备冲突的概率。
107.本公开的一个实施例中,分布式计算系统中的交换设备数量有限,在数据交互需求较多的情况下,在上述步骤s403选择第二交换设备时,可能会出现已不存在未被选择过的第一交换设备的情况。这种情况下若还存在未被规划通信链路的目标数据交互需求,则可以根据已规划通信链路经过各第三交换设备的链路数量,从第三链路中选择通信链路,并将所选择的通信链路规划为目标数据交互需求的通信链路。
108.其中,第三链路为:目标数据交互需求对应的通信链路,第三交换设备为:各第三链路经过的不与源设备和目的设备直连的交换设备。
109.不存在未被选择过的第一交换设备,说明所有不与源设备和目的设备直连的交换设备均有已规划通信链路经过,鉴于这种情况,为减少数据交互过程中交换设备冲突,本实施例中考虑了已规划通信链路经过各第三交换设备的链路数量。
110.下面对从第三链路中选择通信链路的方式进行说明。
111.一种实施方式中,根据已规划通信链路经过各第三交换设备的链路数量,确定最小的上述链路数量对应的第三交换设备,然后从第三链路中选择经过所确定第三交换设备的通信链路。
112.另一种实施方式中,针对每一第三链路,计算该第三链路经过的各第三交换设备对应的目标链路数量之和,得到和值;然后选择最小和值对应的第三链路。
113.目标链路数量为:已规划通信链路经过第三交换设备的链路数量。
114.例如,第三链路a经过了第三设备w和第三设备x,第三链路b经过了第三设备y和第三设备z,若第三设备w和第三设备x对应的目标链路数量之和为3,第三设备y和第三设备z中对应的目标链路数量之和为4,此时,可以选择第三链路b作为实现其对应的数据交互需求的通信链路。
115.由以上可见,本实施例提供的方案中,不存在未被选择过的第一交换设备的情况,根据已规划通信链路经过各第三交换设备的链路数量,从第三链路中选择通信链路,为未被规划通信链路的数据交互需求规划通信链路,这样有效保证了各数据交互需求均被成功规划通信链路。
116.与上述数据交互方法相对应的,本公开还提供了一种数据交互装置。
117.参见图5,图5为本公开实施例提供的第一种数据交互装置的结构示意图,上述装置包括以下模块501-503。
118.通信链路确定模块501,用于确定针对每一预设的数据交互需求探测的多条通信链路,其中,数据交互需求对应的源设备和目的设备直连的交换设备不同;
119.通信链路选择模块502,用于针对每一数据交互需求,从该数据交互需求对应的通信链路中,选择用于实现该数据交互需求的通信链路;
120.信息通知模块503,用于通知各数据交互需求对应的源设备直连的交换设备按照为各数据交互需求选择的通信链路进行针对链路的信息配置,以使得各源设备按照配置后的信息与目的设备进行数据交互。
121.由以上可见,本公开实施例提供的方案中,针对每一数据交互需求进行数据交互时,所使用的通信链路是已配置的,且在为各个数据交互需求配置通信链路时,不仅针对每一数据交互需求探测出多条通信链路,还以减少交换设备冲突的方式为每一数据交互需求
选择通信链路,而不是随机分配通信链路。因此,可以有效降低交换设备发生冲突的概率,从而提高数据交互顺利进行的概率。
122.本公开的一个实施例中,所述通信链路配置模块,具体用于:
123.针对每一数据交互需求,确定配置有第一链路的源ip地址的第一源设备直连的目标交换设备,向所述目标交换设备发送所述第一链路的源端口的端口号,以使得所述目标交换设备将所述第一源设备按照该数据交互需求进行数据交互的源端口配置为所述第一链路的源端口,其中,所述第一链路为:为该数据交互需求选择的通信链路。
124.由于数据交互需求对应的源ip地址、目的ip地址和目的端口号确定的情况下,再结合源端口号,能够确定出进行数据交互的通信链路,这样上述电子设备向各数据交互需求对应的源设备直连的交换设备发送通知时,发送的是源端口号,这样不仅能够保证确定出进行数据交互的通信链路,还能够减少所配置信息的数据量。
125.本公开的一个实施例中,每一数据交互需求对应的源设备直连的交换设备按照以下方式针对一个预设的数据交互需求探测通信链路:
126.根据数据交互需求,确定源ip地址、目的ip地址和目的端口;
127.从配置有所述源ip地址的源设备的端口中,选择源端口;
128.基于所述源端口、源ip地址、目的ip地址和目的端口,探测按照数据交互需求进行数据交互的通信链路;
129.返回所述从配置有所述源ip地址的源设备的端口中,选择源端口的步骤,直至探测出预设数量条不同的通信链路。
130.本实施例提供的方案中针对每一数据交互需求,通过改变数据交互需求的源设备的源端口号的方式,多次进行通信链路探测,探测到了一个数据交互需求的多条可选的通信链路,这样为后续不同数据交互需求进行通信链路选择提供了多种可选通信链路,从而有利于为不同的数据交互需求选择出交换设备冲突较少的通信链路,进而能够减少数据交互时发生交换设备冲突的概率。
131.参见图6,图6为本公开实施例提供的第二种数据交互装置的结构示意图,上述装置包括以下模块601-606。
132.通信链路确定模块601,用于确定针对每一预设的数据交互需求探测的多条通信链路,其中,数据交互需求对应的源设备和目的设备直连的交换设备不同;
133.链路数量统计子模块602,用于统计经过每一第一交换设备的通信链路的链路数量,其中,所述第一交换设备为不与源设备和目的设备直连的交换设备;
134.交换设备选择子模块603,用于从未被选择过的第一交换设备中选择链路数量最小的第二交换设备;
135.通信链路选择子模块604,用于从经过所述第二交换设备的第二链路中选择待规划通信链路,其中,所述第二链路所对应的数据交互需求未被规划通信链路;
136.第一通信链路规划子模块605,用于将所述待规划通信链路规划为用于实现所述待规划通信链路对应的数据交互需求的通信链路;触发所述交换设备选择子模块,直至各数据交互需求均被规划通信链路;
137.信息通知模块606,用于通知各数据交互需求对应的源设备直连的交换设备按照为各数据交互需求选择的通信链路进行针对链路的信息配置,以使得各源设备按照配置后
的信息与目的设备进行数据交互。
138.由以上可见,本实施例提供的方案中,对经过第一交换设备的通信链路数量进行统计,优先从经过第二交换设备的通信链路中,选择通信链路,实现对数据交互需求的通信链路规划,由于第二交换设备为链路数量最小的交换设备,这样可以在局部范围内降低交换设备的复用次数,从而有效降低了数据交互需求发生交换设备冲突的概率。
139.参见图7,图7为本公开实施例提供的第三种数据交互装置的结构示意图,上述装置包括以下模块701-707。
140.通信链路确定模块701,用于确定针对每一预设的数据交互需求探测的多条通信链路,其中,数据交互需求对应的源设备和目的设备直连的交换设备不同;
141.链路数量统计子模块702,用于统计经过每一第一交换设备的通信链路的链路数量,其中,所述第一交换设备为不与源设备和目的设备直连的交换设备;
142.交换设备选择子模块703,用于从未被选择过的第一交换设备中选择链路数量最小的第二交换设备;
143.通信链路选择子模块704,用于从经过所述第二交换设备的第二链路中选择待规划通信链路,其中,所述第二链路所对应的数据交互需求未被规划通信链路;
144.第一通信链路规划子模块705,用于将所述待规划通信链路规划为用于实现所述待规划通信链路对应的数据交互需求的通信链路;触发所述交换设备选择子模块,直至各数据交互需求均被规划通信链路;
145.第二通信链路规划子模块706,用于若不存在未被选择过的第一交换设备,且存在未被规划通信链路的目标数据交互需求,则根据已规划通信链路经过各第三交换设备的链路数量,从第三链路中选择通信链路,并将所选择的通信链路规划为所述目标数据交互需求的通信链路,其中,所述第三链路为:所述目标数据交互需求对应的通信链路,第三交换设备为:各第三链路经过的不与源设备和目的设备直连的交换设备;
146.信息通知模块707,用于通知各数据交互需求对应的源设备直连的交换设备按照为各数据交互需求选择的通信链路进行针对链路的信息配置,以使得各源设备按照配置后的信息与目的设备进行数据交互。
147.由以上可见,本实施例提供的方案中,不存在未被选择过的第一交换设备的情况,根据已规划通信链路经过各第三交换设备的链路数量,从第三链路中选择通信链路,为未被规划通信链路的数据交互需求规划通信链路,这样有效保证了各数据交互需求均被成功规划通信链路。
148.根据本公开的实施例,本公开还提供了一种电子设备、一种可读存储介质和一种计算机程序产品。
149.本公开的一个实施例中,提供了一种电子设备,包括:
150.至少一个处理器;以及
151.与所述至少一个处理器通信连接的存储器;其中,
152.所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行前述方法实施例所述的数据交互方法。
153.本公开的一个实施例中,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行前述方法实施例所述的数据交互方法。
154.本公开的一个实施例中,提供了一种计算机程序产品,包括计算机程序,所述计算机程序在被处理器执行时实现前述方法实施例所述的数据交互方法。
155.图8示出了可以用来实施本公开的实施例的示例电子设备800的示意性框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本公开的实现。
156.如图8所示,设备800包括计算单元801,其可以根据存储在只读存储器(rom)802中的计算机程序或者从存储单元808加载到随机访问存储器(ram)803中的计算机程序,来执行各种适当的动作和处理。在ram 803中,还可存储设备800操作所需的各种程序和数据。计算单元801、rom 802以及ram 803通过总线804彼此相连。输入/输出(i/o)接口805也连接至总线804。
157.设备800中的多个部件连接至i/o接口805,包括:输入单元806,例如键盘、鼠标等;输出单元807,例如各种类型的显示器、扬声器等;存储单元808,例如磁盘、光盘等;以及通信单元809,例如网卡、调制解调器、无线通信收发机等。通信单元809允许设备800通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据。
158.计算单元801可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元801的一些示例包括但不限于中央处理单元(cpu)、图形处理单元(gpu)、各种专用的人工智能(ai)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(dsp)、以及任何适当的处理器、控制器、微控制器等。计算单元801执行上文所描述的各个方法和处理,例如数据交互方法。例如,在一些实施例中,数据交互方法可被实现为计算机软件程序,其被有形地包含于机器可读介质,例如存储单元808。在一些实施例中,计算机程序的部分或者全部可以经由rom 802和/或通信单元809而被载入和/或安装到设备800上。当计算机程序加载到ram 803并由计算单元801执行时,可以执行上文描述的方法xxx的一个或多个步骤。备选地,在其他实施例中,计算单元901可以通过其他任何适当的方式(例如,借助于固件)而被配置为执行数据交互方法。
159.本文中以上描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、芯片上系统的系统(soc)、负载可编程逻辑设备(cpld)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
160.用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件
包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
161.在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或快闪存储器)、光纤、便捷式紧凑盘只读存储器(cd-rom)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
162.为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,crt(阴极射线管)或者lcd(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
163.可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(lan)、广域网(wan)和互联网。
164.计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,也可以为分布式系统的服务器,或者是结合了区块链的服务器。
165.应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发公开中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本公开公开的技术方案所期望的结果,本文在此不进行限制。
166.上述具体实施方式,并不构成对本公开保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本公开的精神和原则之内所作的修改、等同替换和改进等,均应包含在本公开保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1