1.本技术实施例涉及通信技术领域,具体涉及一种拥塞控制
算法的处理方法以及相关装置。
背景技术:
2.高效的拥塞控制(congestion control,cc)算法对于数据传输至关重要,特别是对于视频流媒体、大文件下载等业务。随着网络技术和互联网基础设施在不断的快速发展,不同网络条件下、不同时间和/或用户之间可能需要不同的cc算法来确定出拥塞窗口(congestion window,cwnd)值,进而在cwnd值的指示下传输传输控制协议(transmission control protocol,tcp)流中的发包数量,避免发生拥塞以及不浪费带宽。
3.为了提升cc算法对tcp流进行拥塞控制时的性能,现有方案中采用深度强化学习方法和传统的拥塞控制方法相结合,即首先手动静态地配置传统的cc算法,并基于该传统的cc算法对每次接收到的tcp报文的应答(acknowledge character,ack)来调整cwnd值,同时通过强化学习算法(deep reinforcement learning,drl)在一定周期内监控网络
状态信息,并调整该cwnd值,进而直接控制发送窗口的发包数量。
4.然而,依旧采用手动静态地配置传统的cc算法来调整cwnd值,进而直接控制发送窗口的发包数量的方式,只能满足在某些特定的网络场景下该静态配置的cc算法的性能达到较优的情况,并不能够适用于在网络状态不断发生改变的情况。
技术实现要素:
5.本技术实施例提供了一种拥塞控制算法的处理方法以及相关装置,用于解决在cc算法过多时,基于手动静态地配置传统的cc算法无法适用于网络状态发生改变的情况,而且在网络状态不断发生变化的情况下,能够实现自适应地切换cc算法,以提升对tcp流进行拥塞控制时的性能。
6.第一方面,本技术实施例提供了一种拥塞控制算法的处理方法,该处理方法可以应用于第一
网络设备。在该处理方法中,第一网络设备获取第一网络状态信息,
所述第一网络状态信息反映基于第一拥塞控制cc算法对tcp流进行拥塞控制时的网络状态情况。该第一网络设备基于该第一网络状态信息,从候选cc算法集合中选取第二cc算法,基于该第二cc算法对所述tcp流进行拥塞控制时的性能高于基于所述第一cc算法对所述tcp流进行拥塞控制时的性能,并在确定所述第二cc算法与所述第一cc算法不相同时,将该第一cc算法切换为该第二cc算法。
7.通过上述方式,由于第一网络状态信息能够反映出第一网络设备基于第一cc算法对tcp流进行拥塞控制时的网络状态情况,因此第一网络设备在获取第一网络状态信息后,能够通过第一网络状态信息从候选cc算法中选取第二cc算法,而且通过该第二cc算法对tcp流进行拥塞控制时的性能高于通过第一cc算法对tcp流进行拥塞控制时的性能。这样,在第一cc算法与第二cc算法不相同时,第一网络设备可以将第一cc算法切换为第二cc算
法,进而通过第二cc算法对该tcp流进行拥塞控制。通过上述方式,不仅解决了在候选cc算法过多时,基于手动静态地配置传统的cc算法无法适用于网络状态发生改变的情况,而且还在网络状态不断发生变化的情况下,能够实现自适应地切换cc算法,有效地提升了对tcp流进行拥塞控制时的性能。
8.在一些可选的示例中,第一网络设备基于所述第一网络状态信息,从候选cc算法集合中选取第二cc算法,可以采用如下方式,即:第一网络设备将所述第一网络状态信息作为神经网络模型的输入,以选择所述第二cc算法。所描述的神经网络模型是以选取最优拥塞控制性能的cc算法为训练目标,以当前网络状态信息、基于所述当前网络状态信息从所述候选cc算法集合中所选取的候选cc算法、以及通过所选取的候选cc算法对所述tcp流进行拥塞控制时的奖励函数值作为训练数据对初始模型进行训练后获取的模型。
9.通过上述方式,由于神经网络模型是以选取最优拥塞控制性能的cc算法训练目标,以当前网络状态信息、基于当前网络状态信息从所述候选cc算法集合中所选取的候选cc算法、以及通过所选取的候选cc算法对tcp流进行拥塞控制时的奖励函数值作为训练数据对初始模型进行训练后获取的模型。因此,第一网络设备在获取到第一网络状态信息后,直接将该第一网络状态信息作为神经网络模型的输入,可以确定出对tcp流进行拥塞控制时性能更优第二cc算法,实现了能够在众多的候选cc算法集合中,选取并切换至性能更优的cc算法对tcp流进行拥塞控制。需说明,所描述的当前网络状态信息,可以理解成通过候选cc算法集合中的候选cc算法对tcp流进行拥塞控制时的网络状态信息。
10.在一些可选的示例中,第一网络设备在所述第二cc算法与所述第一cc算法不相同时,将所述第一cc算法切换为所述第二cc算法。其实现cc算法切换的切换方式可以理解成:第一网络设备在所述第二cc算法与所述第一cc算法不相同时,停止向第二网络设备传输所述tcp流,并重新建立与所述第二网络设备之间的连接。并且,该第一网络设备在重新建立所述连接后,通过所述第二cc算法,对继续传输的所述tcp流进行拥塞控制。
11.在一些可选的示例中,在确定所述第二cc算法与所述第一cc算法不相同的过程中,该第一网络设备确定所述第二cc算法的算法名称,以及所述第一cc算法的算法名称。然后,在所述第二cc算法的算法名称与所述第一cc算法的算法名称不相同时,该第一网络设备确定所述第二cc算法与所述第一cc算法不相同;或者,在所述第二cc算法的算法名称与所述第一cc算法的算法名称相同时,该第一网络设备确定所述第二cc算法中的参数和所述第一cc算法中的参数,并且在所述第二cc算法中的参数和所述第一cc算法中的参数不相同时,则确定所述第二cc算法与所述第一cc算法不相同。
12.通过上述方式,通过cc算法的算法名称是否相同来判断cc算法是否相同,为后续第一网络设备将第一cc算法切换至第二cc算法提供了切换依据。另外,还可以在cc算法的算法名称相同时,进一步通过cc算法的参数是否相同来判断cc算法是否相同,为切换提供了更为准确的依据。
13.在一些可选的示例中,在该处理方法中,该第一网络设备还能够获取第二网络状态信息,所述第二网络状态信息反映基于第二cc算法对所述tcp流进行拥塞控制时的网络状态情况。该第一网络设备通过奖励函数对所述第二网络状态信息进行处理,得到第一奖励函数值,所述第一奖励函数值用于表征所述第二cc算法对于所述神经网络模型的奖励程度。然后,该第一网络设备向网管设备发送所述第二cc算法、所述第一奖励函数值和所述第
一网络状态信息,以指示所述网管设备存储所述第二cc算法、所述第一奖励函数值和所第一网络状态信息,并基于所述第一奖励函数值、所述第二cc算法和所述第一网络状态信息更新所述神经网络模型的模型参数。最后,第一网络设备还接收所述网管设备发送的更新后的神经网络模型。
14.通过上述方式,在将第一cc算法切换为第二cc算法的一段时间内,通过该第二cc算法对tcp流进行拥塞控制,此时还可以进一步地监控相应的网络状态情况,即第一网络设备获取第二网络状态信息。然后,第一网络设备通过奖励函数和第二网络状态信息确定出第一奖励函数值,进而获知第二cc算法对于当前的神经网络模型的奖励程度。这样,第一网络设备便可以将第一奖励函数值、第一网络状态信息以及第二cc算法作为一个数据对,发送至网管设备。那么,网管设备在存储一段时间内的数据对后,便可以基于数据对对神经网络模型进行离线地训练,进而向第一网络设备发送更新后的神经网络模型,使得第一网络设备将下一时间段获取到的网络状态信息作为更新后的神经网络模型的输入,选取出更适合现网环境的cc算法,进而对tcp流进行拥塞控制。
15.在一些可选的示例中,在该处理方法中,该第一网络设备还能够获取第二网络状态信息,所述第二网络状态信息反映基于第二cc算法对所述tcp流进行拥塞控制时的网络状态情况。然后,该第一网络设备通过奖励函数对所述第二网络状态信息进行处理,得到第一奖励函数值,所述第一奖励函数值用于表征所述第二cc算法对于所述神经网络模型的奖励程度,并且基于所述第一奖励函数值、所述第二cc算法和所述第一网络状态信息更新所述神经网络模型的模型参数。通过上述方式,在第一网络设备中基于第一奖励函数值、第二cc算法和第一网络状态信息更新神经网络模型的参数,为训练神经网络模型提供了更广泛的适用场景。
16.在一些可选的示例中,所描述的第二网络状态信息包括吞吐量和时延,该第一奖励函数值基于所述吞吐量、所述时延得到。
17.在一些可选的示例中,所描述的第二网络状态信息包括吞吐量、时延和丢包率,该第一奖励函数值基于该吞吐量、时延和丢包率得到。
18.在一些可选的示例中,所描述的吞吐量包括平均吞吐量、最大吞吐量和最小吞吐量中的一个或多个。
19.在一些可选的示例中,所描述的时延包括平滑时延、最小时延、最大时延中的一个或多个。
20.在一些可选的示例中,在该处理方法中,第一网络设备在获取第一网络状态信息之前,还可以向第二网络设备发送数据报文,该数据报文携带序列号,所述序列号用于指示获取所述第一网络状态信息。这样,第一网络设备能够接收所述第二网络设备针对所述数据报文发送的应答报文,并且根据所述序列号、所述应答报文中的时间戳以及所述数据报文的重传信息获取所述第一网络状态信息。通过上述方式,由第一网络设备自行监测获取得到第一网络状态信息,提高了网络状态信息的获取方式的多样性。
21.在一些可选的示例中,在该处理方法中,第一网络设备在获取第一网络状态信息之前,该第一网络设备还可以向第二网络设备发送数据报文,该数据报文携带序列号,所述序列号用于指示获取所述第一网络状态信息。这样,第一网络设备接收所述第二网络设备发送的第一网络状态信息,所述第一网络状态信息由所述第二网络设备根据所述序列号和
所述数据报文的时间戳得到。通过上述方式,由第二网络设备监测获取得到第一网络状态信息后,将该第一网络状态信息直接发送至第一网络设备,能够提高网络状态信息的获取方式的多样性。
22.第二方面,本技术实施例提供了另一种拥塞控制算法的处理方法,该处理方法可以应用于网管设备。在该处理方法中,该网管设备向第一网络设备发送神经网络模型,以使所述第一网络设备基于所述神经网络模型对第一网络状态信息进行处理,以选择第二cc算法。所描述的第一网络状态信息反映所述第一网络设备基于第一拥塞控制cc算法对tcp流进行拥塞控制时的网络状态情况;而且,该神经网络模型是以选取最优拥塞控制性能的cc算法为训练目标,以当前网络状态信息、基于所述当前网络状态信息从所述候选cc算法集合中所选取的候选cc算法、以及通过所选取的候选cc算法对所述tcp流进行拥塞控制时的奖励函数值作为训练数据对初始模型进行训练后获取的模型。
23.在一些可选的示例中,在该处理方法中,该网管设备还接收并存储第一网络设备发送的所述第二cc算法、所述第一网络状态信息和第一奖励函数值,所述第一将奖励函数值由所述第一网络设备通过奖励函数对第二网络状态信息进行处理得到,所述第二网络状态信息反映基于所述第二cc算法对所述tcp流进行拥塞控制时的网络状态情况。然后,该网管设备基于所述第一奖励函数值、所述第二cc算法和所述第一网络状态信息更新所述神经网络模型的模型参数,并且向所述第一网络设备发送更新后的神经网络模型。通过上述方式,将第一奖励函数值、所述第二cc算法和所述第一网络状态信息作为一个数据对,这样网管设备在存储一段时间内的数据对后,便可以基于数据对对神经网络模型进行离线地训练,进而向第一网络设备发送更新后的神经网络模型,使得第一网络设备将下一时间段获取到的网络状态信息作为更新后的神经网络模型的输入,选取出更适合现网环境的cc算法,进而对tcp流进行拥塞控制。
24.第三方面,本技术实施例提供了另一种拥塞控制算法的处理方法,该处理方法可以应用于第二网络设备。在该处理方法中,该第二网络设备接收第一网络设备发送的数据报文,所述数据报文携带序列号,所述序列号用于指示获取第一网络状态信息。该第二网络设备根据所述序列号和所述数据报文的时间戳获取第一网络状态信息,并且向所述第一网络设备发送所述第一网络状态信息,以指示所述第一网络设备确定第二cc算法。
25.在一些可选的示例中,在该处理方法中,第二网络设备还向所述第一网络设备发送针对所述数据报文的应答报文,进而指示所述第一网络设备根据所述序列号和所述应答报文中的时间戳获取所述第一网络状态信息。
26.在一些可选的示例中,在该处理方法中,该第二网络设备还向所述第一网络设备发送第二网络状态信息,以指示所述第一网络设备根据所述第二网络状态信息计算第一奖励函数值。所提及的第一奖励函数值用于表征所述第二cc算法对于所述神经网络模型的奖励程度。
27.第四方面,本技术实施例提供了一种第一网络设备,该第一网络设备可以包括:获取单元、处理单元。其中,该获取单元用于获取第一网络状态信息,所述第一网络状态信息反映基于第一拥塞控制cc算法对tcp流进行拥塞控制时的网络状态情况。该处理单元,用于根据所述第一网络状态信息,从候选cc算法集合中选取第二cc算法,基于所述第二cc算法对所述tcp流进行拥塞控制时的性能高于基于所述第一cc算法对所述tcp流进行拥塞控制
时的性能,并且用于在所述第二cc算法与所述第一cc算法不相同时,将所述第一cc算法切换为所述第二cc算法。
28.在一些可选的示例中,该处理单元,用于将所述第一网络状态信息作为神经网络模型的输入,以选择第二cc算法。其中,该神经网络模型是以选取最优拥塞控制性能的cc算法为训练目标,以当前网络状态信息、基于所述当前网络状态信息从所述候选cc算法集合中所选取的候选cc算法、以及通过所选取的候选cc算法对所述tcp流进行拥塞控制时的奖励函数值作为训练数据对初始模型进行训练后获取的模型。
29.在一些可选的示例中,该处理单元在所述第二cc算法与所述第一cc算法不相同时,停止向第二网络设备传输所述tcp流,并重新建立与所述第二网络设备之间的连接。并且,该处理单元在重新建立所述连接后,通过所述第二cc算法,对继续传输的所述tcp流进行拥塞控制。
30.在一些可选的示例中,该处理单元用于确定所述第二cc算法的算法名称,以及所述第一cc算法的算法名称,并且在所述第二cc算法的算法名称与所述第一cc算法的算法名称不相同时,则确定所述第二cc算法与所述第一cc算法不相同。或者,该处理单元在所述第二cc算法的算法名称与所述第一cc算法的算法名称相同时,确定所述第二cc算法中的参数和所述第一cc算法中的参数,并且在所述第二cc算法中的参数和所述第一cc算法中的参数不相同时,则确定所述第二cc算法与所述第一cc算法不相同。
31.在一些可选的示例中,该第一网络设备还包括第一发送单元。该获取单元还用于获取第二网络状态信息,所述第二网络状态信息反映基于所述第二cc算法对所述tcp流进行拥塞控制时的网络状态情况。所提及的处理单元用于通过奖励函数对所述第二网络状态信息进行处理,得到第一奖励函数值,所述第一奖励函数值用于表征所述第二cc算法对于所述神经网络模型的奖励程度。该第一发送单元用于向网管设备发送所述第二cc算法、所述第一奖励函数值和所述第一网络状态信息,以指示所述网管设备存储所述第二cc算法、所述第一奖励函数值和所第一网络状态信息,并基于所述第一奖励函数值、所述第二cc算法和所述第一网络状态信息更新所述神经网络模型的模型参数。而且,该获取单元还用于接收所述网管设备发送的更新后的神经网络模型。
32.在一些可选的示例中,该获取单元还用于获取第二网络状态信息,所述第二网络状态信息反映基于所述第二cc算法对所述tcp流进行拥塞控制时的网络状态情况。这样,该处理单元,用于通过奖励函数对所述第二网络状态信息进行处理,得到第一奖励函数值,所述第一奖励函数值用于表征所述第二cc算法对于所述神经网络模型的奖励程度,并且基于所述第一奖励函数值、所述第二cc算法和所述第一网络状态信息更新所述神经网络模型的模型参数。
33.在一些可选的示例中,该第二网络状态信息包括吞吐量和时延;所述第一奖励函数值基于所述吞吐量、所述时延得到。
34.在一些可选的示例中,该第二网络状态信息还包括丢包率;所述第一奖励函数值基于所述吞吐量、所述时延和所述丢包率得到。
35.在一些可选的示例中,该吞吐量包括平均吞吐量、最大吞吐量和最小吞吐量中的一个或多个。
36.在一些可选的示例中,该时延包括平滑时延、最小时延、最大时延中的一个或多
个。
37.在一些可选的示例中,该第一网络设备还包括第二发送单元。该第二发送单元用于在该获取单元获取第一网络状态信息之前,向第二网络设备发送数据报文,所述数据报文携带序列号,所述序列号用于指示获取所述第一网络状态信息。该获取单元用于接收所述第二网络设备针对所述数据报文发送的应答报文,并且根据所述序列号、所述应答报文中的时间戳以及所述数据报文的重传信息获取所述网络状态信息。
38.在一些可选的示例中,该第一网络设备还包括第三发送单元。所描述的第三发送单元用于在获取第一网络状态信息之前,向第二网络设备发送数据报文,所述数据报文携带序列号,所述序列号用于指示获取所述第一网络状态信息。该获取单元还用于接收所述第二网络设备发送的第一网络状态信息,所述第一网络状态信息由所述第二网络设备根据所述序列号和所述数据报文的时间戳得到。
39.第五方面,本技术实施例提供了一种网管设备,该网管设备包括发送模块。该发送模块用于向第一网络设备发送神经网络模型,以使所述第一网络设备基于所述神经网络模型对第一网络状态信息进行处理,以选择第二cc算法。所提及的第一网络状态信息反映所述第一网络设备基于第一拥塞控制cc算法对tcp流进行拥塞控制时的网络状态情况。而且,该神经网络模型是以选取最优拥塞控制性能的cc算法为训练目标,以当前网络状态信息、基于所述当前网络状态信息从所述候选cc算法集合中所选取的候选cc算法、以及通过所选取的候选cc算法对所述tcp流进行拥塞控制时的奖励函数值作为训练数据对初始模型进行训练后获取的模型。
40.在一些可选的示例中,该网管设备还包括:接收模块和处理模块。该接收模块用于接收并存储第一网络设备发送的所述第二cc算法、所述第一网络状态信息和第一奖励函数值,该第一将奖励函数值由所述第一网络设备通过奖励函数对第二网络状态信息进行处理得到,所述第二网络状态信息反映基于所述第二cc算法对所述tcp流进行拥塞控制时的网络状态情况。然后,该处理模块还用于基于所述第一奖励函数值、所述第二cc算法和所述第一网络状态信息更新所述神经网络模型的模型参数。该发送模块还用于向所述第一网络设备发送更新后的神经网络模型。
41.第六方面,本技术实施例提供了一种接收送设备,该第二网络设备可以包括:第一接收模块、第一处理模块和第一发送模块。该第一接收模块用于接收第一网络设备发送的数据报文,数据报文携带序列号,序列号用于指示获取第一网络状态信息。该第一处理模块用于根据该第一接收模块接收到的序列号和数据报文的时间戳获取第一网络状态信息。第一发送模块,用于向第一网络设备发送该第一处理模块获取得到的第一网络状态信息,以指示第一网络设备确定第二cc算法。
42.在一些可选的示例中,该第一发送模块还用于向第一网络设备发送针对数据报文的应答报文,以指示第一网络设备根据序列号和应答报文中的时间戳获取第一网络状态信息。
43.在一些可选的示例中,该第一发送模块还用于向第一网络设备发送第二网络状态信息,以指示第一网络设备根据第二网络状态信息计算第一奖励函数值,第一奖励函数值用于表征第二cc算法对于神经网络模型的奖励程度。
44.第七方面,本技术实施例提供了一种拥塞控制的处理系统,该拥塞控制的处理系
统可以包括:如前述第四方面、第四方面任意一种可能的第一网络设备,以及如前述第五方面、第五方面任意一种可能的网管设备。
45.在一些可选的示例中,该拥塞控制的处理系统还可以包括:如前述第六方面、第六方面任意一种可能的第二网络设备。
46.第八方面,本技术实施例提供了一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行如第一方面、第二方面、或第三方面,或者第一方面、第二方面或第三方面任意一种可能实现方式的处理方法。
47.第九方面,本技术实施例提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行如第一方面、第二方面、或第三方面,或者第一方面、第二方面或第三方面任意一种可能实现方式的处理方法。
48.本技术第十方面提供一种芯片系统,该芯片系统可以包括处理器,用于支持第一网络设备实现上述第一方面、或者第一方面任意一种可能的实施方式中所描述的处理方法中所涉及的功能;用于支持网管设备实现上述第二方面、或者第二方面任意一种可能的实施方式中所描述的处理方法中所涉及的功能;用于支持第二网络设备实现上述第三方面、或者第三方面任意一种可能的实施方式中所描述的处理方法中所涉及的功能。
49.可选地,结合上述第十方面,在第一种可能的实施方式中,芯片系统还可以包括存储器,存储器,用于保存第一网络设备、网管设备或者第二网络设备必要的程序指令和数据。该芯片系统,可以由芯片构成,也可以包含芯片和其他分立器件。其中,芯片系统可以包括专用集成电路(application specific integrated circuit,asic)、现成可编程门阵列(field programmable gate array,fpga)或者其他可编程逻辑器件等。进一步,芯片系统还可以可以包括接口电路等。
50.上述第四方面、第七方面至第十方面所获得的技术效果与第一方面中对应的技术手段获得的技术效果近似,在这里不再赘述。
51.上述第五方面、第七方面至第九方面所获得的技术效果与第二方面中对应的技术手段获得的技术效果近似,在这里不再赘述。
52.上述第六方面至第九方面所获得的技术效果与第三方面中对应的技术手段获得的技术效果近似,在这里不再赘述。
53.从以上技术方案可以看出,本技术实施例具有以下优点:
54.本技术实施例中,由于第一网络状态信息能够反映出第一网络设备基于第一cc算法对tcp流进行拥塞控制时的网络状态情况,因此第一网络设备在获取第一网络状态信息后,能够通过第一网络状态信息从候选cc算法中选取第二cc算法,而且通过该第二cc算法对tcp流进行拥塞控制时的性能高于通过第一cc算法对tcp流进行拥塞控制时的性能。这样,在第一cc算法与第二cc算法不相同时,第一网络设备可以将第一cc算法切换为第二cc算法,进而通过第二cc算法对该tcp流进行拥塞控制。通过上述方式,不仅解决了在候选cc算法过多时,基于手动静态地配置传统的cc算法无法适用于网络状态发生改变的情况,而且还在网络状态不断发生变化的情况下,能够实现自适应地切换cc算法,有效地提升了对tcp流进行拥塞控制时的性能。
附图说明
55.为了更清楚地说明本技术实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的一些实施例。
56.图1为本技术实施例中提供的一种应用场景示意图;
57.图2为本技术实施例中提供的一种系统架构示意图;
58.图3为本技术实施例提供的拥塞控制算法的处理方法的一个实施例示意图;
59.图4为本技术实施例提供的拥塞控制算法的处理方法的另一个实施例示意图;
60.图5为本实施例中在网管设备在模拟环境下训练神经网络模型的示意图;
61.图6为本技术实施例提供的拥塞控制算法的处理方法的另一个实施例示意图;
62.图7a为本实施例中发送设备在现有网络环境中训练神经网络模型的一种示意图;
63.图7b为本实施例中发送设备在模拟环境下训练神经网络模型的示意图;
64.图8a为本技术实施例提供了第一网络设备的一种结构示意图;
65.图8b为本技术实施例提供了第一网络设备的另一种结构示意图;
66.图9a为本技术实施例提供了网管设备的一种结构示意图;
67.图9b为本技术实施例提供了网管设备的另一种结构示意图;
68.图10为本技术实施例提供了第二网络设备的一种结构示意图;
69.图11a为本技术实施例提供的拥塞控制处理系统的一种结构示意图;
70.图11b为本技术实施例提供的拥塞控制处理系统的一种结构示意图;
71.图12为本技术实施例提供的通信设备的硬件结构示意图。
具体实施方式
72.本技术实施例提供了一种拥塞控制算法的处理方法以及相关装置,用于解决在cc算法过多时,基于手动静态地配置传统的cc算法无法适用于网络状态发生改变的情况,进而在网络状态不断发生变化的情况下,能够实现自适应地切换cc算法,以提升对tcp流进行拥塞控制时的性能。
73.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
74.本技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本技术的实施例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含。在本技术中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b的情况,其中a,b可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,a和b,a和c,b和c或a和b和c,其中a、b和c可以是单个,也
bandwidth and round-trip propagation time)算法、pcc(performance-oriented congestion control)算法,或者其他能够对tcp流进行拥塞控制的算法等,此处不做限定说明。
80.需说明,上述所提及的至少一个第一网络设备中的每一个第一网络设备可以包括接入路由器、或者其他能够对tcp流进行收发处理的计算机,例如服务器、路由器、交换机等,此处不做限定说明。所提及的至少一个第二网络设备中的每一个第二网络设备也可以包括接入路由器、或者其他能够对tcp流进行收发处理的计算机,例如服务器、路由器、交换机等。所描述的网管设备可以包括但不限于服务器、集中控制点或者能够进行数据处理的集中式的处理装置等,此处不做具体限定。另外,本实施例所描述的第一网络设备可以作为上述图1中分支站点和企业数据中心两者中的一个收发设备,所描述的第二网络设备也可以作为上述图1中分支站点和企业数据中心两者中的另一个的收发设备,具体做不限定。
81.需说明,上述图2仅以第一网络设备2向第二网络设备1传输tcp流为例进行说明,在实际应用中,也可以存在其他的第一网络设备向其他的第二网络设备传输tcp流,例如:第一网络设备1向第二网络设备1、向第二网络设备3传输tcp流,第一网络设备2向第二网络设备2传输tcp流等,此处不做限定。
82.本技术实施例中的拥塞控制算法的处理方法除了可以适用于上述图2所示的系统架构,还可以适用于其他系统架构,具体此处不作限定。
83.为便于更好地理解本技术实施例所提出的方案,下面将对本实施例中的具体流程进行介绍,请参阅图3,是本技术实施例提供的拥塞控制算法的处理方法的一个实施例示意图,该方法可以包括:
84.301、第一网络设备获取第一网络状态信息。
85.实施例中,第一网络设备在向第二网络设备传输tcp流时,可以采用第一cc算法对该tcp进行拥塞控制,即通过该第一cc算法确定出cwnd值,进而在该cwnd值的指示下传输该tcp流中的发包数量。但在网络状态发生改变时,第一网络设备依旧通过第一cc算法对tcp流进行拥塞控制,有可能无法基于第一cc算法确定出较优的cwnd值,导致无法合理地传输该tcp流中的发包数量。
86.因此,第一网络设备需要获知通过第一cc算法对tcp流进行拥塞控制时的网络状态情况,即获取第一网络状态信息,进而通过该第一网络状态信息选取出性能较优的cc算法。
87.需说明,上述所描述的第一网络状态信息可以包括但不限于吞吐量、时延以及丢包率等,此处不做限定说明。所描述的吞吐量可以包括但不限于平均吞吐量、最大吞吐量和最小吞吐量中的一个或多个;所提及的时延也可以包括但不限于平滑时延、最小时延、最大时延中的一个或多个。
88.另外,所描述的第一cc算法可以理解成,在第一网络设备开始传输tcp流时,从候选cc算法集合中随机选取出的能够用于对tcp流进行拥塞控制的算法。所描述的候选cc算法集合中的每一个候选cc算法可以理解成该第一网络设备能够支持的cc算法,例如:cubic算法、new reno算法、bbr算法、pcc算法,或者其他能够对tcp流进行拥塞控制的算法等,此处不做限定说明。
89.在一些可选的实施例中,对于第一网络设备获取第一网络状态信息的获取方式,
可以由第一网络设备自行监控并获取到该第一网络状态信息;也可以由第一网络设备从第二网络设备中获取得到第一网络状态信息。下面将分别进行说明:
90.(1)、针对第一网络设备自行监控来获取第一网络状态信息。具体地,在第一网络设备执行步骤301的时候,该处理方法还包括:第一网络设备向第二网络设备发送数据报文,数据报文携带序列号,序列号用于指示获取第一网络状态信息;对应地,第一网络设备获取第一网络状态信息,可以通过以下方式来获取,即:第一网络设备接收第二网络设备针对数据报文发送的应答报文;第一网络设备根据序列号、应答报文中的时间戳以及数据报文的重传信息获取第一网络状态信息。
91.需理解,所描述的序列号可以包括但不限于数据报文的报文头中的sequence number,能够用于指示获取第一网络状态信息。应答报文中的时间戳可以用于计算往返时间(round-trip time,rtt),可以反映出数据报文从第一网络设备发出时的时间信息,可以从一定程度上反映出传输tcp流时的网络状态。所描述的数据报文的重传信息可以反映出第一网络设备向第二网络设备发送该数据报文时,未接收到应答报文时需要向第二网络设备重新发送该数据报文的情况,可以反映出传输tcp流时的丢包情况。所描述的数据报文包括但不限于tcp报文,此处不做限定。
92.因此,在由第一网络设备自行监控来获取第一网络状态信息的过程中,可以先向第二网络设备发送数据报文。这样,第二网络设备在接收到数据报文之后会向第一网络设备回复相应的应答报文。那么,第一网络设备在接收到应答报文后,便可以对该应答报文进行监控,进而根据该应答报文中的时间戳,以及该数据报文中的序列号、数据报文的重传信息来获取第一网络状态信息。
93.需说明,在实际应用中,可以在第一网络设备中增加linux垫片层,以通过该linux垫片层对应答报文进行监控,并根据该应答报文中的时间戳,以及该数据报文中的序列号、数据报文的重传信息来获取第一网络状态信息。
94.(2)、针对第一网络设备从第二网络设备中获取得到第一网络状态信息。具体地,第一网络设备在执行步骤301的时候,该处理方法还可以包括:第一网络设备向第二网络设备发送数据报文,数据报文携带序列号,序列号用于指示获取第一网络状态信息;对应地,第一网络设备获取第一网络状态信息,可以通过以下方式来获取,即:第一网络设备接收第二网络设备发送的第一网络状态信息,第一网络状态信息由第二网络设备根据序列号和数据报文的时间戳得到。
95.在该示例中,第一网络设备欲想获取第一网络状态信息,那么可以向第二网络设备发送数据报文,进而通过该数据报文中携带的序列号来指示第二网络设备对网络状态进行监测。这样,第二网络设备在接收到数据报文后,能够根据该序列号和数据报文的时间戳对网络状态进行监测,进而获取得到第一网络状态信息,然后再将该第一网络状态信息通过报文等应答方式发送至第一网络设备。这样,第一网络设备便可以获取到第一网络状态信息了。
96.需说明,所描述的序列号、数据报文等具体可以参照上述(1)中所描述的序列号、数据报文等进行理解,此处不做赘述。
97.另外,上述(1)和(2)的区别之处在于,第二网络设备向第一网络设备反馈的应答报文并不相同。即,在上述(1)中的应答报文实际上并没有直接携带具体的第一网络状态信
息;而上述(2)中第二网络设备反馈的报文已经携带了具体的第一网络状态信息,此时第一网络设备在接收到报文后,将该报文进行解析,便可以直接使用该第一网络状态信息了。
98.应当理解的是,第一网络设备除了通过上述(1)和/或(2)所描述的方式来获取第一网络状态信息以外,在实际应用中还可以通过其他的方式来获取,例如:修改第一网络设备中的linux内核,并增加新的应用程序接口(application programming interface,api),进而基于该新的api接口来获取第一网络状态信息。在本技术实施例中将对第一网络状态信息的获取方式不做具体限定。
99.302、第一网络设备基于第一网络状态信息,从候选cc算法集合中选取第二cc算法,基于第二cc算法对tcp流进行拥塞控制时的性能高于基于第一cc算法对tcp流进行拥塞控制时的性能。
100.该示例中,所描述的候选cc算法集合中的每一个候选cc算法,可以理解成第一网络设备能够支持的、并且对tcp流进行拥塞控制的cc算法,具体可以理解参照前述步骤301中所描述的内容进行理解,此处不做赘述。
101.在网络状态发生变化后,第一网络设备应当采用拥塞控制性能较好的cc算法对tcp流进行拥塞控制。因此,为了选择出拥塞控制性能较好的cc算法对tcp流进行拥塞控制,第一网络设备在获取到第一网络状态信息后,可以基于该第一网络状态信息从该候选cc算法集合中选取第二cc算法,使得第一网络设备通过第二cc算法对tcp流进行拥塞控制时的性能,高于基于第一cc算法对tcp流进行拥塞控制时的性能。
102.在一些可选的实施例中,第一网络设备基于第一网络状态信息,从候选cc算法集合中选取第二cc算法,可以采用如下方式来选取,即:第一网络设备将第一网络状态信息作为神经网络模型的输入,以选择第二cc算法。
103.该示例中,所描述的神经网络模型是以选取最优拥塞控制性能的cc算法为训练目标,以当前网络状态信息、基于当前网络状态信息从所述候选cc算法集合中所选取的候选cc算法、以及通过所选取的候选cc算法对tcp流进行拥塞控制时的奖励函数值作为训练数据对初始模型进行训练后获取的模型。下面将描述该神经网络模型的具体的训练过程,即:
104.首先,当有tcp流经过本实施例的第一网络设备时,从候选cc算法集合中随机选取第一cc算法,并通过该第一cc算法对tcp流进行拥塞控制,随后获取得到相应的第一网络状态信息。然后,再将第一网络状态信息输入到神经网络模型得到第二cc算法。这样,以第二cc算法作为新的拥塞控制算法,对tcp流进行拥塞控制一段时间,以此获取得到第二网络状态信息,并根据第二网络状态信息计算出第一奖励函数值,那么可以将第一网络状态信息、所选取出的第二cc算法、第一奖励函数值视为一个数据对。
105.由于tcp流还在继续传输,此处仍然可以将第二网络状态信息输入到神经网络模型,得到第三cc算法。以第三cc算法作为新的拥塞控制算法,对tcp流进行拥塞控制一段时间,以此获取得到得到第三网络状态信息,并根据第三网络状态信息计算出第二奖励函数值,那么此时可以将第二网络状态信息、所选取的第三cc算法、第二奖励函数值视为另一个数据对。
106.以此类推,直到结束tcp流的传输,即可得到足够充足的数据对。
107.这样,在训练的时候可以随机抽取一个batch的数据对进行训练,得到训练后的神经网络模型。
108.需说明,上述所描述的第一奖励函数值可以用来评价该神经网络模型推荐出的第二cc算法对于该神经网络模型的奖励程度,奖励函数值越大,说明所推荐出的第二cc算法对于该神经网络模型的奖励程度越高,也进一步说明神经网络模型所推荐出的第二cc算法的拥塞控制性能也较优。
109.需说明,所描述的神经网络模型可以包括但不限于强化学习算法,例如:a2c算法等,此处不做限定说明。所描述的一段时间可以以分钟为单位的时间(如:1分钟、10分钟等),也可以是30秒、50秒等,也可以是以小时为单位的时间,具体此处不做限定说明。
110.另外,该神经网络模型的训练过程可以由网管设备进行训练,也可以在第一网络设备中进行训练,具体可以分别参照后续图4和图5所描述的内容进行理解,此处先不做赘述。
111.303、第一网络设备在确定第二cc算法与第一cc算法不相同时,将第一cc算法切换为第二cc算法。
112.该示例中,第一网络设备在选取出第二cc算法后,通过判断第二cc算法与第一cc算法是否相同。在确定第二cc算法与第一cc算法不相同时,则将第一cc算法切换为第二cc算法,进而通过第二cc算法对该tcp流进行拥塞控制。
113.在一些可选的实施例中,第一网络设备将第一cc算法切换为第二cc算法的方式可以理解成,在第二cc算法与第一cc算法不相同时,停止向第二网络设备传输tcp流,随后重新建立与第二网络设备之间的连接;然后,在重新建立连接后,再继续传输该tcp流,进而通过第二cc算法对继续传输的该tcp流进行拥塞控制。
114.也就是理解成,由于所选取出的第二cc算法对tcp流进行拥塞控制的性能高于通过第一cc算法对tcp流进行拥塞控制的性能,因此第一网络设备在明确出第一cc算法与第二cc算法不相同时,如果依旧采用第一cc算法继续对tcp流进行拥塞控制,难免可能对tcp流无法起到有效地拥塞控制。因此,第一网络设备需要先断开传输该tcp流,不再使用第一cc算法对tcp流进行拥塞控制;然后,再通过tcp三次握手的流程重新建立连接,并继续传输该tcp流,此时使用第二cc算法对tcp流进行拥塞控制,进而达到了在网络状态发生改变的过程中,针对该tcp流,能够自适应地切换至拥塞控制性能较优的第二cc算法。
115.需说明,如果第一网络设备判断出第一cc算法与第二cc算法相同,此时第一网络设备可以不切换为第二cc算法,而是依旧使用第一cc算法对该tcp流进行拥塞控制。
116.在一些可选的实施例中,本技术还可以进一步地对第二cc算法与第一cc算法不相同进行介绍。具体可以参照下述方式进行理解:
117.确定第二cc算法的算法名称,以及第一cc算法的算法名称;
118.在第二cc算法的算法名称与第一cc算法的算法名称不相同时,则确定第二cc算法与第一cc算法不相同;或,
119.在第二cc算法的算法名称与第一cc算法的算法名称相同时,确定第二cc算法中的参数和第一cc算法中的参数;
120.在第二cc算法中的参数和第一cc算法中的参数不相同时,则确定第二cc算法与第一cc算法不相同。
121.在该示例中,不同的cc算法可以使用不同的算法名称来标识。因此,第一网络设备在选取出第二cc算法后,可以先确定第一cc算法的算法名称、以及确定第二cc算法的算法
名称;然后,再通过比较第一cc算法的算法名称和第二cc算法的算法名称,如果第一cc算法的算法名称与第二cc算法的算法名称不匹配时,则表明第一cc算法的算法名称与第二cc算法的算法名称不相同,此时可以确定出该第一cc算法与第二cc算法是两种完全不相同的cc算法。
122.或者,在有一些情形中,不同的cc算法也有可能会使用相同的算法名称来命名。因此,如果第一网络设备在比较第一cc算法的算法名称和第二cc算法的算法名称的过程中,如果第一cc算法的算法名称与第二cc算法的算法名称相匹配,则说明第一cc算法的算法名称与第二cc算法的算法名称相同。
123.那么,为了能够准确地判断出第一cc算法与第二cc算法是否相同,为后续是否执行切换提供依据,此时在第一cc算法的算法名称与第二cc算法的算法名称相同的情况下,还需要第一网络设备进一步地判断第一cc算法中的参数与第二cc算法中的参数是否相同。如果第一cc算法中的参数不同于第二cc算法中的参数,则表明该第二cc算法与第一cc算法不同。
124.需说明,第一网络设备除了通过算法名称、或者算法中的参数来判断第一cc算法与第二cc算法是否相同以外,在实际应用中,还可能存在其他的判断方式,此处不做限定说明。
125.本技术实施例中,由于第一网络状态信息能够反映出第一网络设备基于第一cc算法对tcp流进行拥塞控制时的网络状态情况,因此第一网络设备在获取第一网络状态信息后,能够通过第一网络状态信息从候选cc算法中选取第二cc算法,而且通过该第二cc算法对tcp流进行拥塞控制时的性能高于通过第一cc算法对tcp流进行拥塞控制时的性能。这样,在第一cc算法与第二cc算法不相同时,第一网络设备可以将第一cc算法切换为第二cc算法,进而通过第二cc算法对该tcp流进行拥塞控制。通过上述方式,不仅解决了在候选cc算法过多时,基于手动静态地配置传统的cc算法无法适用于网络状态发生改变的情况,而且还在网络状态不断发生变化的情况下,选取出更适合现网环境的cc算法,并能够实现自适应地切换cc算法,有效地提升了对tcp流进行拥塞控制时的性能。
126.上述图3主要从第一网络设备这一单侧的角度描述了本技术提供的拥塞控制算法的处理方法。需说明,上述所提及的第一网络状态信息既可以是第二网络设备提供,也可以由第一网络设备自行监控得到;而且神经网络模型的训练过程既可以在网管设备中完成,也可以在第一网络设备上完成。因此,在上述图3所描述的基础上,为了进一步地理解本技术实施例所提出的方案,下面将从网络设备、第一网络设备以及第二网络设备之间的交互,对本实施例中的具体流程进行介绍。请参阅图4,是本技术实施例提供的拥塞控制算法的处理方法的另一个实施例示意图,该处理方法可以包括:
127.401、第一网络设备向第二网络设备发送数据报文,数据报文携带序列号,序列号用于指示获取第一网络状态信息。
128.402、第二网络设备向第一网络设备发送与数据报文对应的应答报文。
129.403、第一网络设备根据序列号、应答报文中的时间戳以及数据报文的重传信息获取第一网络状态信息。
130.需说明,本实施例中的步骤401-403具体可以参照前述图3中的步骤301中所描述的内容进行理解,此处不做赘述。
131.另外,步骤401-403主要描述了第一网络设备自行监控来获取第一网络状态信息。在实际应用中,也可以由第二网络设备在根据序列号和数据报文的时间戳获取第一网络状态信息后,将第一网络状态信息发送至第一网络设备,此处不做限定说明。
132.404、网管设备向第一网络设备发送神经网络模型。
133.在网管设备启动时,如果直接将随机初始化的初始模型发送至第一网络设备,那么在第一网络设备将第一网络状态信息输入至随机初始化的初始模型中,则很难选取出性能较优的第二cc算法。因此,网管设备需要在模拟环境中对初始模型进行训练,然后再将训练后得到的神经网络模型发送至第一网络设备。
134.具体地,可以参阅图5,为本实施例中在网管设备在模拟环境下训练神经网络模型的示意图。从图5可以看出,动作模块(actor)与网管设备交互,其中网管设备可以包括存储模块(memory)、学习模块(learner)。
135.其中,动作模块主要在模拟环境中传输tcp流时,通过候选cc算法集合中的某一候选cc算法对该tcp流进行拥塞控制的过程中,从模拟环境中获取相应的网络状态信息;然后,将一段时间内所获取到的所有网络状态信息、以及相应的候选cc算法、以及相应的奖励函数值发送至存储模块。需说明,动作模块在模拟环境中获取的数据对,可以参照前述图3中在现网环境中获取的数据对的过程进行理解,此处不做赘述。
136.存储模块能够存储这一段时间内的所有网络状态信息、相应的cc算法以及奖励函数值,即该存储模块主要用于存储训练神经网络模型所需要的数据对。
137.学习模块主要用于从存储模块中随机获取一个batch的数据对对初始模型进行训练,得到训练后的模型,直到神经网络学习到了足够广泛的模拟网络环境,即可得到所描述的神经网络模型。
138.需说明,上述的步骤401-403与步骤404的执行顺序不限定于先执行401-403,后执行步骤404。在实际应用中,还可以先执行404,再执行步骤401-403,;或者同步执行401-403和步骤404,具体此处不做限定说明。
139.405、第一网络设备将第一网络状态信息作为神经网络模型的输入,以选取第二cc算法,基于第二cc算法对tcp流进行拥塞控制时的性能高于基于第一cc算法对tcp流进行拥塞控制时的性能。
140.406、第一网络设备在确定第二cc算法与第一cc算法不相同时,将第一cc算法切换为第二cc算法。
141.需说明,本实施例中的步骤405-406具体可以参照前述图3中的步骤302-303中所描述的内容进行理解,此处不做赘述。
142.在另一些可选的实施例中,在将第一cc算法切换为第二cc算法之后,还可以在系统继续运行一段时间后对前述的神经网络模型的参数进行更新,进而得到性能更好的神经网络模型,此处不限定所描述的系统继续运行一段时间的具体时长。因此,在上述步骤401-406所描述的拥塞控制算法的基础上,该拥塞控制算法还可以包括如下步骤:
143.407、第一网络设备获取第二网络状态信息,第二网络状态信息反映基于第二cc算法对tcp流进行拥塞控制时的网络状态情况。
144.该示例中,所描述的第二网络状态信息,是第一网络设备在使用第二cc算法对该tcp流进行一段时间的拥塞控制后获取到的信息,能够反映出根据第二cc算法对tcp流进行
拥塞控制时的网络状态情况。
145.所描述的第二网络状态信息可以包括但不限于吞吐量、时延以及丢包率等,此处不做限定说明。所描述的吞吐量可以包括但不限于平均吞吐量、最大吞吐量和最小吞吐量中的一个或多个;所提及的时延也可以包括但不限于平滑时延、最小时延、最大时延中的一个或多个。
146.需说明,第一网络设备获取第二网络状态信息的方式,具体可以参照前述图3中步骤301所描述的获取第一网络状态信息的方式进行理解,此处不做赘述。
147.408、第一网络设备通过奖励函数对第二网络状态信息进行处理,得到第一奖励函数值,第一奖励函数值用于表征第二cc算法对于神经网络模型的奖励程度。
148.该示例中,奖励函数可以将cc算法对于神经网络模型的奖励程度进行量化。因此,第一网络设备在通过第二cc算法对tcp流进行拥塞控制的过程中,还可以通过奖励函数对所获取到的第二网络状态信息进行处理,得到第一奖励函数值,进而使用该第一奖励函数值反映出第二cc算法对于神经网络模型的奖励程度。
149.需说明,第一奖励函数值越大,说明第二cc算法对于神经网络模型的奖励程度越高,进一步也可以反映出基于神经网络模型所选取的第二cc算法的拥塞控制性能也较优。
150.通常,在通过cc算法对tcp流进行拥塞控制的过程中,若吞吐量达到最大化,并且时延降到最低,也可以说明cc算法对tcp流进行拥塞控制时的性能达到最优。因此,在一些可选的实施例中,可以通过吞吐量和时延来表示出奖励函数;或者,在考虑一定丢包的情况发生时,还可以通过吞吐量、时延以及丢包率来表示出奖励函数。具体地,所描述的奖励函数可以采用如下公式进行表示:
151.或者,
152.其中,r表示第一奖励函数值,throughput表示吞吐量,delay表示时延,loss标识丢包率,l为正数。
153.需说明,所描述的吞吐量可以包括但不限于平均吞吐量、最大吞吐量和最小吞吐量中的一个或多个;所提及的时延也可以包括但不限于平滑时延、最小时延、最大时延中的一个或多个。
154.在实际应用中,除了通过上述的公式描述奖励函数以外,奖励函数还可以根据具体的传输需求进行设置,此处不做限定说明。
155.409、第一网络设备向网管设备发送第二cc算法、第一奖励函数值和第一网络状态信息。
156.该示例中,第一网络设备在得到第一奖励函数值后,可以将选取出的第二cc算法、第一奖励函数值以及第一网络状态信息发送至网管设备。这样,网管设备可以将第二cc算法、第一奖励函数值以及第一网络状态信息作为一个数据对,并进行存储,为后续更新神经网络模型的参数提供训练数据。
157.410、网管设备存储第二cc算法、第一奖励函数值和所第一网络状态信息。
158.该示例中,第一网络设备向网络设备发送第二cc算法、第一奖励函数值和第一网络状态信息之后,该网管设备便可以接收到第二cc算法、第一奖励函数值和第一网络状态信息。此时,网管设备需要对所获取到的第二cc算法、第一奖励函数值和第一网络状态信息
进行存储,进而能够适用在离线训练的场景中,对该神经网络模型进行离线训练。
159.411、网管设备基于第一奖励函数值、第二cc算法和第一网络状态信息更新神经网络模型的模型参数。
160.该示例中,由于第一奖励函数值、第二cc算法和第一网络状态信息可以看做一个数据对,因此,在网管设备已经将一段时间内的所有数据对进行存储的基础上,该网管设备可以从所存储的数据对中选取一个batch的数据对,进而基于该数据对对神经网络模型进行离线训练。
161.412、网管设备向第一网络设备发送更新后的神经网络模型。
162.该示例中,网管设备在更新神经网络模型的模型参数,得到更新后的神经网络模型后,可以将该更新后的神经网络模型,在预设时长内定期地发送给第一网络设备。这样,第一网络设备可以下一时间段获取到的网络状态信息作为更新后的神经网络模型的输入,进而选取出更合适现网环境的cc算法,进而对tcp流进行拥塞控制。
163.上述图4主要从网管设备对神经网络模型进行训练的角度,描述了本技术提供的拥塞控制算法的处理方法。在上述图3所描述的基础上,第一网络设备也可以对神经网络模型进行训练,因此为了进一步地理解本技术实施例所提出的方案,下面将从第一网络设备和第二网络设备之间的交互,对本实施例中的具体流程进行介绍。请参阅图6,是本技术实施例提供的拥塞控制算法的处理方法的另一个实施例示意图,该处理方法可以包括:
164.601、第一网络设备向第二网络设备发送数据报文,数据报文携带序列号,序列号用于指示获取第一网络状态信息。
165.602、第二网络设备向第一网络设备发送与数据报文对应的应答报文。
166.603、第一网络设备根据序列号、应答报文中的时间戳以及数据报文的重传信息获取第一网络状态信息。
167.需说明,本实施例中的步骤601-603具体可以参照前述图4中的步骤401-403中所描述的内容进行理解,此处不做赘述。
168.另外,步骤601-603主要描述了第一网络设备自行监控来获取第一网络状态信息。在实际应用中,也可以由第二网络设备在根据序列号和数据报文的时间戳获取第一网络状态信息后,将第一网络状态信息发送至第一网络设备,此处不做限定说明。
169.604、第一网络设备获取神经网络模型。
170.可以参阅图7a,为本实施例中第一网络设备在现有网络环境中训练神经网络模型的一种示意图。从图7a可以看出,在第一网络设备刚启动时,如果直接将随机初始化的初始模型发送至connection manager前端的neural network,那么neural network将通过linuxapi接口或者垫片层获取到的第一网络状态信息输入至随机初始化的初始模型中,则很难选取出性能较优的第二cc算法。因此,第一网络设备需要在模拟环境中对初始模型进行训练,进而得到训练后的神经网络模型。
171.具体地,可以参阅图7b,为本实施例中第一网络设备在模拟环境下训练神经网络模型的示意图。从图7b可以看出,该第一网络设备可以包括存储模块、学习模块以及动作模块。
172.其中,动作模块类似于图7a中的connection manager,主要在模拟环境中传输tcp流时,通过候选cc算法集合中的某一候选cc算法对该tcp流进行拥塞控制的过程中,从模拟
环境中获取相应的网络状态信息;然后,将一段时间内所获取到的所有网络状态信息、相应的候选cc算法、以及相应的奖励函数值发送至存储模块。需说明,动作模块在模拟环境中获取的数据对,可以参照前述图3中在现网环境中获取的数据对的过程进行理解,此处不做赘述。
173.存储模块类似于图7a中的数据收集模块(data collector),能够存储这一段时间内的所有网络状态信息、相应的cc算法以及相应的奖励函数值,即该存储模块主要用于存储训练神经网络模型所需要的数据对。
174.学习模块类似于图7a中的model trainer,主要用于从存储模块中获取一个batch的数据对,对初始模型进行训练,得到训练后的模型,直到神经网络学习到了足够广泛的模拟网络环境,即可得到所描述的神经网络模型。
175.需说明,图7b所描述的在模拟环境下训练神经网络模型的过程,可以参阅前述图5所描述的内容进行理解。
176.另外,上述的步骤601-603与步骤604的执行顺序不限定于先执行601-603,后执行步骤604。在实际应用中,还可以先执行604,再执行步骤601-603;或者同步执行601-603和步骤604,具体此处不做限定说明。
177.605、第一网络设备将第一网络状态信息作为神经网络模型的输入,以选取第二cc算法,基于第二cc算法对tcp流进行拥塞控制时的性能高于基于第一cc算法对tcp流进行拥塞控制时的性能。
178.606、第一网络设备在确定第二cc算法与第一cc算法不相同时,将第一cc算法切换为第二cc算法。
179.需说明,本实施例中的步骤605-606具体可以参照前述图3中的步骤302-303中所描述的内容进行理解,此处不做赘述。
180.在另一些可选的实施例中,在将第一cc算法切换为第二cc算法之后,还可以在切换之后的一段时间内对前述的神经网络模型的参数进行更新,进而得到性能更好的神经网络模型。因此,在上述步骤601-606所描述的拥塞控制算法的基础上,该拥塞控制算法还可以包括如下步骤:
181.607、第一网络设备获取第二网络状态信息,第二网络状态信息反映基于第二cc算法对tcp流进行拥塞控制时的网络状态情况。
182.608、第一网络设备通过奖励函数对第二网络状态信息进行处理,得到第一奖励函数值,第一奖励函数值用于表征第二cc算法对于神经网络模型的奖励程度。
183.需说明,本实施例中的步骤607-609具体可以参照前述图4中的步骤407-408中所描述的内容进行理解,此处不做赘述。
184.609、第一网络设备基于第一奖励函数值、第二cc算法和第一网络状态信息更新神经网络模型的模型参数。
185.需说明,本实施例中的步骤609具体可以参照前述图4中的步骤411中所描述的内容进行理解,此处不做赘述。
186.通过上述方式,由于第一网络状态信息能够反映出第一网络设备基于第一cc算法对tcp流进行拥塞控制时的网络状态情况,因此第一网络设备在获取第一网络状态信息后,能够通过第一网络状态信息从候选cc算法中选取第二cc算法,而且通过该第二cc算法对
tcp流进行拥塞控制时的性能高于通过第一cc算法对tcp流进行拥塞控制时的性能。这样,在第一cc算法与第二cc算法不相同时,第一网络设备可以将第一cc算法切换为第二cc算法,进而通过第二cc算法对该tcp流进行拥塞控制。不仅解决了在候选cc算法过多时,基于手动静态地配置传统的cc算法无法适用于网络状态发生改变的情况,而且还在网络状态不断发生变化的情况下,能够实现自适应地切换cc算法,有效地提升了对tcp流进行拥塞控制时的性能。
187.而且还可以基于第一奖励函数值、第二cc算法和第一网络状态信息,更新神经网络模型的模型参数,能够选取出更加合适现网环境的cc算法,进而对tcp流进行更优质的拥塞控制。
188.也就是理解成,一方面通过在线的神经网络模型,从候选cc算法中选取出更加合适现网环境的cc算法,并且将相应的数据对实时地存储;另一方面,能够利用所存储的数据对神经网络模型进行离线训练,并在一定时间后更新在线的神经网络模型。相较于现有方案,本技术实施例所提供的处理方法,无需在网络状态发生改变时,手动配置用于进行拥塞控制的cc算法,而是能够实现自适应地选取出更加合适现网环境的cc算法,大大地提升对tcp流进行拥塞控制时的性能。
189.上述主要从方法的角度对本技术实施例提供的方案进行了介绍。可以理解的是,上述的第一网络设备、网管设备以及第二网络设备为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的功能,本技术能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
190.从功能单元的角度,本技术可以根据上述方法实施例对第一网络设备、网管设备以及第二网络设备进行功能单元的划分,例如,可以对应各个功能划分各个功能单元,也可以将两个或两个以上的功能集成在一个功能单元中。上述集成的功能单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
191.比如,以采用集成的方式划分各个功能单元的情况下,参见图8a,本技术实施例提供了第一网络设备的一种结构示意图。所描述的第一网络设备可以包括:获取单元801和处理单元802。
192.其中,该获取单元801,用于获取第一网络状态信息,第一网络状态信息反映基于第一拥塞控制cc算法对tcp流进行拥塞控制时的网络状态情况;具体实现方式请参考图3所示实施例中的步骤301、图4所示实施例中的步骤403,以及图6所示实施例中的步骤603的详细说明,此处不做赘述。
193.该处理单元802,用于根据该获取单元801获取到的第一网络状态信息,从候选cc算法集合中选取第二cc算法,基于第二cc算法对tcp流进行拥塞控制时的性能高于基于第一cc算法对tcp流进行拥塞控制时的性能,并且在第二cc算法与第一cc算法不相同时,将第一cc算法切换为第二cc算法。具体实现方式请参考图3所示实施例中的步骤302-303的详细说明,此处不做赘述。
194.可选地,在一些示例中,处理单元802,用于将第一网络状态信息作为神经网络模
型的输入,以选择第二cc算法,神经网络模型是以当前网络状态信息、基于所述当前网络状态信息从所述候选cc算法集合中所选取的候选cc算法、以及通过所选取的候选cc算法对所述tcp流进行拥塞控制时的奖励函数值作为训练数据对初始模型进行训练后获取的模型。具体实现方式请参考图3所示实施例中的步骤302-303、图4所示实施例中的步骤405-406,以及图6所示实施例中的步骤605-606的详细说明,此处不做赘述。
195.可选地,在一些示例中,处理单元802用于:在第二cc算法与第一cc算法不相同时,停止向第二网络设备传输tcp流,并重新建立与第二网络设备之间的连接。并且,该处理单元802还用于在重新建立连接后,通过第二cc算法,对继续传输的tcp流进行拥塞控制。具体实现方式请参考图3所示实施例中的步骤303的详细说明,此处不做赘述。
196.可选地,在一些示例中,处理单元802用于确定第二cc算法的算法名称,以及第一cc算法的算法名称,并在第二cc算法的算法名称与第一cc算法的算法名称不相同时,则确定第二cc算法与第一cc算法不相同。或者,该处理单元802用于在第二cc算法的算法名称与第一cc算法的算法名称相同时,确定第二cc算法中的参数和第一cc算法中的参数,并且在第二cc算法中的参数和第一cc算法中的参数不相同时,则确定第二cc算法与第一cc算法不相同。具体实现方式请参考图3所示实施例中的步骤303的详细说明,此处不做赘述。
197.在一些可选的示例中,在上述图8a、以及任意一种可选的示例的基础上,还可以参阅图8b,为本技术实施例提供了第一网络设备的另一种结构示意图。如图8b所示,该第一网络设备还包括第一发送单元803;
198.该获取单元801,还用于获取第二网络状态信息,第二网络状态信息反映基于第二cc算法对tcp流进行拥塞控制时的网络状态情况;具体实现方式请参考图4所示实施例中的步骤407,以及图6所示实施例中的步骤607的详细说明,此处不做赘述。
199.该处理单元802,用于通过奖励函数对该获取单元801获取到的第二网络状态信息进行处理,得到第一奖励函数值,第一奖励函数值用于表征第二cc算法对于神经网络模型的奖励程度;具体实现方式请参考图4所示实施例中的步骤408,以及图6所示实施例中的步骤608的详细说明,此处不做赘述。
200.该第一发送单元803,用于向网管设备发送第二cc算法、第一奖励函数值和第一网络状态信息,以指示网管设备存储第二cc算法、第一奖励函数值和所第一网络状态信息,并基于第一奖励函数值、第二cc算法和第一网络状态信息更新神经网络模型的模型参数;具体实现方式请参考图4所示实施例中的步骤409-410的详细说明,此处不做赘述。
201.该获取单元801,用于接收网管设备发送的更新后的神经网络模型。具体实现方式请参考图4所示实施例中的步骤411的详细说明,此处不做赘述。
202.可选地,在一些示例中,获取单元801,还用于获取第二网络状态信息,第二网络状态信息反映基于第二cc算法对tcp流进行拥塞控制时的网络状态情况。具体实现方式请参考图4所示实施例中的步骤407,以及图6所示实施例中的步骤607的详细说明,此处不做赘述。
203.处理单元802,用于通过奖励函数对第二网络状态信息进行处理,得到第一奖励函数值,第一奖励函数值用于表征第二cc算法对于神经网络模型的奖励程度,并且基于第一奖励函数值、第二cc算法和第一网络状态信息更新神经网络模型的模型参数。具体实现方式请参考图4所示实施例中的步骤608-609的详细说明,此处不做赘述。
204.可选地,在一些示例中,第二网络状态信息包括吞吐量和时延;第一奖励函数值基于吞吐量、时延得到。具体实现方式请参考图4所示实施例中的步骤407-408,以及图6所示实施例中的步骤607-608的详细说明,此处不做赘述。
205.可选地,在一些示例中,第二网络状态信息还包括丢包率;第一奖励函数值基于吞吐量、时延和丢包率得到。具体实现方式请参考图4所示实施例中的步骤407-408,以及图6所示实施例中的步骤607-608的详细说明,此处不做赘述。
206.可选地,在一些示例中,吞吐量包括平均吞吐量、最大吞吐量和最小吞吐量中的一个或多个。具体实现方式请参考图4所示实施例中的步骤407-408,以及图6所示实施例中的步骤607-608的详细说明,此处不做赘述。
207.可选地,在一些示例中,时延包括平滑时延、最小时延、最大时延中的一个或多个。具体实现方式请参考图4所示实施例中的步骤407-408,以及图6所示实施例中的步骤607-608的详细说明,此处不做赘述。
208.可选地,在一些示例中,所描述的第一网络设备还可以包括第二发送单元。该第二发送单元还用于在获取单元获取第一网络状态信息之前,向第二网络设备发送数据报文,数据报文携带序列号,序列号用于指示获取第一网络状态信息;具体实现方式请参考图3所示实施例中的步骤301,以及图4所示实施例中的步骤401,以及图6所示实施例中的步骤601的详细说明,此处不做赘述。
209.该获取单元801用于接收第二网络设备针对数据报文发送的应答报文,并根据序列号、应答报文中的时间戳以及数据报文的重传信息获取网络状态信息。具体实现方式请参考图3所示实施例中的步骤301,以及图4所示实施例中的步骤402-403,以及图6所示实施例中的步骤602-603的详细说明,此处不做赘述。
210.可选地,在一些示例中,该第一网络设备还可以包括第三发送单元。该第三发送单元还用于在获取第一网络状态信息之前,向第二网络设备发送数据报文,数据报文携带序列号,序列号用于指示获取第一网络状态信息;具体实现方式请参考图3所示实施例中的步骤301的详细说明,此处不做赘述。
211.该获取单元801用于接收第二网络设备发送的第一网络状态信息,第一网络状态信息由第二网络设备根据序列号和数据报文的时间戳得到。具体实现方式请参考图3所示实施例中的步骤301的详细说明,此处不做赘述。
212.上述主要从功能模块的角度描述了第一网络设备的结构。因此,下面将分别从功能单元的角度介绍前述的网管设备。比如,以采用集成的方式划分各个功能单元的情况下,参见图9a,本技术实施例提供了网管设备的一种结构示意图,该网管设备可以包括:发送模块901。该发送模块901,用于向第一网络设备发送神经网络模型,以使第一网络设备基于神经网络模型对第一网络状态信息进行处理,以选择第二cc算法。该第一网络状态信息反映第一网络设备基于第一拥塞控制cc算法对tcp流进行拥塞控制时的网络状态情况。而且,神经网络模型是以选取最优拥塞控制性能的cc算法为训练目标,以当前网络状态信息、基于所述当前网络状态信息从所述候选cc算法集合中所选取的候选cc算法、以及通过所选取的候选cc算法对所述tcp流进行拥塞控制时的奖励函数值作为训练数据对初始模型进行训练后获取的模型。具体实现方式请参考图4所示实施例中的步骤404的详细说明,此处不做赘述。
213.在一些可选的示例中,在上述9a所示的基础上,还可以参阅图9b,为本技术实施例提供了网管设备的另一种结构示意图。如图9b所示,该网管设备还包括接收模块902、处理模块903。
214.其中,该接收模块902用于接收并存储第一网络设备发送的第二cc算法、第一网络状态信息和第一奖励函数值,第一将奖励函数值由第一网络设备通过奖励函数对第二网络状态信息进行处理得到,第二网络状态信息反映基于第二cc算法对tcp流进行拥塞控制时的网络状态情况;具体实现方式请参考图4所示实施例中的步骤410的详细说明,此处不做赘述。
215.该处理模块903,用于基于第一奖励函数值、第二cc算法和第一网络状态信息更新神经网络模型的模型参数;具体实现方式请参考图4所示实施例中的步骤411的详细说明,此处不做赘述。
216.该发送模块901,用于向第一网络设备发送更新后的神经网络模型。具体实现方式请参考图4所示实施例中的步骤412的详细说明,此处不做赘述。
217.上述主要从功能单元的角度描述了第一网络设备和网管设备,下面将从功能单元的角度描述第二网络设备。比如,以采用集成的方式划分各个功能单元的情况下,参见图10,本技术实施例提供了第二网络设备的一种结构示意图,该第二网络设备可以包括:第一接收模块1001、第一处理模块1002以及第一发送模块1003。其中,
218.第一接收模块1001,用于接收第一网络设备发送的数据报文,数据报文携带序列号,序列号用于指示获取第一网络状态信息;具体实现方式请参考图3所示实施例中的步骤301的详细说明,此处不做赘述。
219.第一处理模块1002,用于根据序列号和接收到数据报文的时间戳获取第一网络状态信息;具体实现方式请参考图3所示实施例中的步骤301的详细说明,此处不做赘述。
220.第一发送模块1003,用于向第一网络设备发送第一网络状态信息,以指示第一网络设备确定第二cc算法。具体实现方式请参考图3所示实施例中的步骤301的详细说明,此处不做赘述。
221.在一些可选的示例中,第一发送模块1003还用于向第一网络设备发送针对数据报文的应答报文,以指示第一网络设备根据序列号和应答报文中的时间戳获取第一网络状态信息。具体实现方式请参考图3所示实施例中的步骤301,以及图4所示实施例中的步骤402-403,以及图6所示实施例中的步骤602-603的详细说明,此处不做赘述。
222.在一些可选的示例中,第一发送模块1003还用于向第一网络设备发送第二网络状态信息,以指示第一网络设备根据第二网络状态信息计算第一奖励函数值,第一奖励函数值用于表征第二cc算法对于神经网络模型的奖励程度。具体实现方式请参考图4所示实施例中的步骤407-408,以及图6所示实施例中的步骤607-608的详细说明,此处不做赘述。
223.需要说明的是,上述装置各模块/单元之间的信息交互、执行过程等内容,由于与本技术方法实施例基于同一构思,其带来的技术效果与本技术方法实施例相同,具体内容可参见本技术前述所示的方法实施例中的叙述,此处不再赘述。
224.上述主要从功能单元的角度介绍了第一网络设备、网管设备以及第二网络设备。本技术也可以从系统的交互角度来描述拥塞控制处理系统。比如,图11a示出了一种拥塞控制处理系统的结构示意图。如图11a所示,本技术的拥塞控制处理系统的一个实施例可以包
括:第一网络设备和网管设备。
225.需说明,图11a中所描述的第一网络设备可以参照上述图8a和图8b所描述的结构进行理解,此处不做赘述。另外,图11a中所描述的网管设备也可以参照上述图9a和图9b所描述的结构进行理解,此处不做赘述。
226.在一些可选的示例中,在上述图11a所描述的拥塞控制处理系统的基础上,还可以参阅图11b,示出了另一种拥塞控制处理系统的结构示意图。如图11b所示,本技术的拥塞控制处理系统的一个实施例可以包括:第一网络设备、网管设备以及第二网络设备。
227.需说明,图11b中所描述的第一网络设备、网管设备可以参照上述图11a所描述的内容进行理解,此处不做赘述。另外,图11b中所描述的第一网络设备也可以参照上述图11a所描述的结构进行理解,此处不做赘述。
228.通过上述方式,由于第一网络状态信息能够反映出第一网络设备基于第一cc算法对tcp流进行拥塞控制时的网络状态情况,因此第一网络设备在获取第一网络状态信息后,能够通过第一网络状态信息从候选cc算法中选取第二cc算法,而且通过该第二cc算法对tcp流进行拥塞控制时的性能高于通过第一cc算法对tcp流进行拥塞控制时的性能。这样,在第一cc算法与第二cc算法不相同时,第一网络设备可以将第一cc算法切换为第二cc算法,进而通过第二cc算法对该tcp流进行拥塞控制。不仅解决了在候选cc算法过多时,基于手动静态地配置传统的cc算法无法适用于网络状态发生改变的情况,而且还在网络状态不断发生变化的情况下,能够实现自适应地切换cc算法,有效地提升了对tcp流进行拥塞控制时的性能。
229.需要说明的是,上述装置各模块/单元之间的信息交互、执行过程等内容,由于与本技术方法实施例基于同一构思,其带来的技术效果与本技术方法实施例相同,具体内容可参见本技术前述所示的方法实施例中的叙述,此处不再赘述。
230.上面从模块化功能实体的角度对本技术实施例中的第一网络设备、网管设备以及第二网络设备进行描述,以及从系统的角度描述了拥塞控制处理系统。从实体设备角度来描述,上述应用第一网络设备、网管设备以及第二网络设备可以由一个实体设备实现,也可以由多个实体设备共同实现,还可以是一个实体设备内的一个逻辑功能单元,本技术实施例对此不做具体限定。
231.例如,上述第一网络设备、网管设备以及第二网络设备可以由图12中的通信设备来实现。图12为本技术实施例提供的通信设备的硬件结构示意图。该通信设备包括至少一个处理器1201,通信线路1207,存储器1203以及至少一个通信接口1204。
232.处理器1201可以是一个通用中央处理器(central processing unit,cpu),微处理器,特定应用集成电路(application-specific integrated circuit,服务器ic),或一个或多个用于控制本技术方案程序执行的集成电路。
233.通信线路1207可包括一通路,在上述组件之间传送信息。
234.通信接口1204,使用任何收发器一类的装置,用于与其他装置或通信网络通信,如以太网等。
235.存储器1203可以是只读存储器(read-only memory,rom)或可存储静态信息和指令的其他类型的静态存储装置,随机存取存储器(random access memory,ram)或者可存储信息和指令的其他类型的动态存储装置,也可以是电可擦可编程只读存储器
(electrically erable programmable read-only memory,eeprom)、只读光盘(compact disc read-only memory,cd-rom)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器可以是独立存在,通过通信线路1207与处理器相连接。存储器1203也可以和处理器1201集成在一起。
236.其中,存储器1203用于存储执行本技术方案的计算机执行指令,并由处理器1201来控制执行。处理器1201用于执行存储器1203中存储的计算机执行指令,从而实现本技术上述实施例提供的拥塞控制算法的处理方法。
237.可选的,本技术实施例中的计算机执行指令也可以称之为应用程序代码,本技术实施例对此不作具体限定。
238.在具体实现中,作为一种实施例,处理器1201可以包括一个或多个cpu,例如图12中的cpu0和cpu1。
239.在具体实现中,作为一种实施例,通信装置可以包括多个处理器,例如图12中的处理器1201和处理器1202。这些处理器中的每一个可以是一个单核(single-cpu)处理器,也可以是一个多核(multi-cpu)处理器。这里的处理器可以指一个或多个装置、电路、和/或用于处理数据(例如计算机程序指令)的处理核。
240.在具体实现中,作为一种实施例,通信装置还可以包括输出装置1205和输入装置1206。输出装置1205和处理器1201通信,可以以多种方式来显示信息。输入装置1206和处理器1201通信,可以以多种方式接收用户的输入。例如,输入装置1206可以是鼠标、触摸屏装置或传感装置等。
241.上述的通信装置可以是一个通用装置或者是一个专用装置。在具体实现中,通信装置可以是便携式电脑、移动终端等或有图12中类似结构的装置。本技术实施例不限定通信装置的类型。
242.需说明,图12中的处理器1201可以通过调用存储器1203中存储的计算机执行指令,使得第一网络设备执行如图3、图4或图6-图7b对应的方法实施例中的方法。图12中的处理器1201可以通过调用存储器1203中存储的计算机执行指令,使网管设备执行如图4-图6中对应的方法实施例中网管设备所执行的方法。图12中的处理器1201可以通过调用存储器1203中存储的计算机执行指令,使得第二网络设备执行如图4、图6中对应的方法实施例中第二网络设备所执行的方法。
243.具体的,图8a和图8b中的处理单元802,图9b中的处理模块903,图10中的第一处理模块1002的功能/实现过程可以通过图12中的处理器1201调用存储器1203中存储的计算机执行指令来实现;图8a中的获取单元801、图8b中的第一发送单元803、获取单元801,图9a中的发送模块901、图9b中的接收模块902和发送模块903,图10中的第一接收模块1001、第一发送模块1003的功能/实现过程可以通过图12中的通信接口1204来实现。
244.在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。
245.所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
246.在本技术所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,该单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
247.该作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
248.另外,在本技术各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
249.该集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本技术各个实施例该方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
250.上述实施例,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现,当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。
251.计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机执行指令时,全部或部分地产生按照本技术实施例的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如ssd))等。
252.以上实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的精神和范围。
技术特征:
1.一种拥塞控制算法的处理方法,其特征在于,应用于第一网络设备,包括:获取第一网络状态信息,所述第一网络状态信息反映基于第一拥塞控制cc算法对tcp流进行拥塞控制时的网络状态情况;基于所述第一网络状态信息,从候选cc算法集合中选取第二cc算法,基于所述第二cc算法对所述tcp流进行拥塞控制时的性能高于基于所述第一cc算法对所述tcp流进行拥塞控制时的性能;在确定所述第二cc算法与所述第一cc算法不相同时,将所述第一cc算法切换为所述第二cc算法。2.根据权利要求1所述的处理方法,其特征在于,所述基于所述第一网络状态信息,从候选cc算法集合中选取第二cc算法,包括:将所述第一网络状态信息作为神经网络模型的输入,以选择所述第二cc算法,所述神经网络模型是以选取最优拥塞控制性能的cc算法为训练目标,以当前网络状态信息、基于所述当前网络状态信息从所述候选cc算法集合中所选取的候选cc算法、以及通过所选取的候选cc算法对所述tcp流进行拥塞控制时的奖励函数值作为训练数据对初始模型进行训练后获取的模型。3.根据权利要求1或2所述的处理方法,其特征在于,在所述第二cc算法与所述第一cc算法不相同时,将所述第一cc算法切换为所述第二cc算法,包括:在所述第二cc算法与所述第一cc算法不相同时,停止向第二网络设备传输所述tcp流,并重新建立与所述第二网络设备之间的连接;在重新建立所述连接后,通过所述第二cc算法,对继续传输的所述tcp流进行拥塞控制。4.根据权利要求1至3中任一项所述的处理方法,其特征在于,确定所述第二cc算法与所述第一cc算法不相同,包括:确定所述第二cc算法的算法名称,以及所述第一cc算法的算法名称;在所述第二cc算法的算法名称与所述第一cc算法的算法名称不相同时,则确定所述第二cc算法与所述第一cc算法不相同;或,在所述第二cc算法的算法名称与所述第一cc算法的算法名称相同时,确定所述第二cc算法中的参数和所述第一cc算法中的参数;在所述第二cc算法中的参数和所述第一cc算法中的参数不相同时,则确定所述第二cc算法与所述第一cc算法不相同。5.根据权利要求2-4中任一项所述的处理方法,其特征在于,所述处理方法还包括:获取第二网络状态信息,所述第二网络状态信息反映基于第二cc算法对所述tcp流进行拥塞控制时的网络状态情况;通过奖励函数对所述第二网络状态信息进行处理,得到第一奖励函数值,所述第一奖励函数值用于表征所述第二cc算法对于所述神经网络模型的奖励程度;向网管设备发送所述第二cc算法、所述第一奖励函数值和所述第一网络状态信息,以指示所述网管设备存储所述第二cc算法、所述第一奖励函数值和所第一网络状态信息,并基于所述第一奖励函数值、所述第二cc算法和所述第一网络状态信息更新所述神经网络模型的模型参数;
接收所述网管设备发送的更新后的神经网络模型。6.根据权利要求2-4中任一项所述的处理方法,其特征在于,所述处理方法还包括:获取第二网络状态信息,所述第二网络状态信息反映基于第二cc算法对所述tcp流进行拥塞控制时的网络状态情况;通过奖励函数对所述第二网络状态信息进行处理,得到第一奖励函数值,所述第一奖励函数值用于表征所述第二cc算法对于所述神经网络模型的奖励程度;基于所述第一奖励函数值、所述第二cc算法和所述第一网络状态信息更新所述神经网络模型的模型参数。7.根据权利要求5-6中任一项所述的处理方法,其特征在于,所述第二网络状态信息包括吞吐量和时延;所述第一奖励函数值基于所述吞吐量、所述时延得到。8.根据权利要求7所述的处理方法,其特征在于,所述第二网络状态信息还包括丢包率;所述第一奖励函数值基于所述吞吐量、所述时延和所述丢包率得到。9.根据权利要求7或8所述的处理方法,其特征在于,所述吞吐量包括平均吞吐量、最大吞吐量和最小吞吐量中的一个或多个。10.根据权利要求7或8所述的处理方法,其特征在于,所述时延包括平滑时延、最小时延、最大时延中的一个或多个。11.根据权利要求1至10中任一项所述的处理方法,其特征在于,在获取第一网络状态信息之前,所述处理方法还包括:向第二网络设备发送数据报文,所述数据报文携带序列号,所述序列号用于指示获取所述第一网络状态信息;对应地,获取第一网络状态信息,包括:接收所述第二网络设备针对所述数据报文发送的应答报文;根据所述序列号、所述应答报文中的时间戳以及所述数据报文的重传信息获取所述第一网络状态信息。12.根据权利要求1至10中任一项所述的处理方法,其特征在于,在获取第一网络状态信息之前,所述处理方法还包括:向第二网络设备发送数据报文,所述数据报文携带序列号,所述序列号用于指示获取所述第一网络状态信息;对应地,获取第一网络状态信息,包括:接收所述第二网络设备发送的第一网络状态信息,所述第一网络状态信息由所述第二网络设备根据所述序列号和所述数据报文的时间戳得到。13.一种拥塞控制算法的处理方法,其特征在于,应用于网管设备,包括:向第一网络设备发送神经网络模型,以使所述第一网络设备基于所述神经网络模型对第一网络状态信息进行处理,以选择第二cc算法,所述第一网络状态信息反映所述第一网络设备基于第一拥塞控制cc算法对tcp流进行拥塞控制时的网络状态情况,所述神经网络模型是以选取最优拥塞控制性能的cc算法为训练目标,以候选cc算法以及基于所述候选cc算法对tcp流进行拥塞控制时对应的网络状态信息作为训练数据对初始模型进行训练后获
取的模型。14.根据权利要求13所述的处理方法,其特征在于,所述处理方法还包括:接收并存储第一网络设备发送的所述第二cc算法、所述第一网络状态信息和第一奖励函数值,所述第一将奖励函数值由所述第一网络设备通过奖励函数对第二网络状态信息进行处理得到,所述第二网络状态信息反映基于所述第二cc算法对所述tcp流进行拥塞控制时的网络状态情况;基于所述第一奖励函数值、所述第二cc算法和所述第一网络状态信息更新所述神经网络模型的模型参数;向所述第一网络设备发送更新后的神经网络模型。15.一种第一网络设备,其特征在于,包括:获取单元,用于获取第一网络状态信息,所述第一网络状态信息反映基于第一拥塞控制cc算法对tcp流进行拥塞控制时的网络状态情况;处理单元,用于根据所述第一网络状态信息,从候选cc算法集合中选取第二cc算法,基于所述第二cc算法对所述tcp流进行拥塞控制时的性能高于基于所述第一cc算法对所述tcp流进行拥塞控制时的性能;所述处理单元,用于在所述第二cc算法与所述第一cc算法不相同时,将所述第一cc算法切换为所述第二cc算法。16.根据权利要求15所述的第一网络设备,其特征在于,所述处理单元,用于将所述第一网络状态信息作为神经网络模型的输入,以选择第二cc算法,所述神经网络模型是以选取最优拥塞控制性能的cc算法为训练目标,以当前网络状态信息、基于所述当前网络状态信息从所述候选cc算法集合中所选取的候选cc算法、以及通过所选取的候选cc算法对所述tcp流进行拥塞控制时的奖励函数值作为训练数据对初始模型进行训练后获取的模型。17.根据权利要求15或16所述的第一网络设备,其特征在于,所述处理单元用于:在所述第二cc算法与所述第一cc算法不相同时,停止向第二网络设备传输所述tcp流,并重新建立与所述第二网络设备之间的连接;在重新建立所述连接后,通过所述第二cc算法,对继续传输的所述tcp流进行拥塞控制。18.根据权利要求15至17中任一项所述的第一网络设备,其特征在于,所述处理单元用于:确定所述第二cc算法的算法名称,以及所述第一cc算法的算法名称;在所述第二cc算法的算法名称与所述第一cc算法的算法名称不相同时,则确定所述第二cc算法与所述第一cc算法不相同;或,在所述第二cc算法的算法名称与所述第一cc算法的算法名称相同时,确定所述第二cc算法中的参数和所述第一cc算法中的参数;在所述第二cc算法中的参数和所述第一cc算法中的参数不相同时,则确定所述第二cc算法与所述第一cc算法不相同。19.根据权利要求16-18中任一项所述的第一网络设备,其特征在于,所述第一网络设备还包括第一发送单元;
所述获取单元,还用于获取第二网络状态信息,所述第二网络状态信息反映基于所述第二cc算法对所述tcp流进行拥塞控制时的网络状态情况;所述处理单元,用于通过奖励函数对所述第二网络状态信息进行处理,得到第一奖励函数值,所述第一奖励函数值用于表征所述第二cc算法对于所述神经网络模型的奖励程度;所述第三发送单元,用于向网管设备发送所述第二cc算法、所述第一奖励函数值和所述第一网络状态信息,以指示所述网管设备存储所述第二cc算法、所述第一奖励函数值和所第一网络状态信息,并基于所述第一奖励函数值、所述第二cc算法和所述第一网络状态信息更新所述神经网络模型的模型参数;所述获取单元,用于接收所述网管设备发送的更新后的神经网络模型。20.根据权利要求16-18中任一项所述的第一网络设备,其特征在于,所述获取单元,还用于获取第二网络状态信息,所述第二网络状态信息反映基于所述第二cc算法对所述tcp流进行拥塞控制时的网络状态情况;所述处理单元,用于:通过奖励函数对所述第二网络状态信息进行处理,得到第一奖励函数值,所述第一奖励函数值用于表征所述第二cc算法对于所述神经网络模型的奖励程度;基于所述第一奖励函数值、所述第二cc算法和所述第一网络状态信息更新所述神经网络模型的模型参数。21.根据权利要求19至20中任一项所述的第一网络设备,其特征在于,所述第二网络状态信息包括吞吐量和时延;所述第一奖励函数值基于所述吞吐量、所述时延得到。22.根据权利要求21所述的第一网络设备,其特征在于,所述第二网络状态信息还包括丢包率;所述第一奖励函数值基于所述吞吐量、所述时延和所述丢包率得到。23.根据权利要求21或22所述的第一网络设备,其特征在于,所述吞吐量包括平均吞吐量、最大吞吐量和最小吞吐量中的一个或多个。24.根据权利要求21或22所述的第一网络设备,其特征在于,所述时延包括平滑时延、最小时延、最大时延中的一个或多个。25.根据权利要求15至24中任一项所述的第一网络设备,其特征在于,所述第一网络设备还包括第二发送单元;所述第二发送单元,还用于在所述获取单元获取第一网络状态信息之前,向第二网络设备发送数据报文,所述数据报文携带序列号,所述序列号用于指示获取所述第一网络状态信息;对应地,所述获取单元用于:接收所述第二网络设备针对所述数据报文发送的应答报文;根据所述序列号、所述应答报文中的时间戳以及所述数据报文的重传信息获取所述网络状态信息。26.根据权利要求15至24中任一项所述的第一网络设备,其特征在于,所述第一网络设备还包括第三发送单元;
所述第三发送单元,还用于在获取第一网络状态信息之前,向第二网络设备发送数据报文,所述数据报文携带序列号,所述序列号用于指示获取所述第一网络状态信息;对应地,所述获取单元,用于接收所述第二网络设备发送的第一网络状态信息,所述第一网络状态信息由所述第二网络设备根据所述序列号和所述数据报文的时间戳得到。27.一种网管设备,其特征在于,所述网管设备包括:发送模块,用于向第一网络设备发送神经网络模型,以使所述第一网络设备基于所述神经网络模型对第一网络状态信息进行处理,以选择第二cc算法,所述第一网络状态信息反映所述第一网络设备基于第一拥塞控制cc算法对tcp流进行拥塞控制时的网络状态情况,所述神经网络模型是以选取最优拥塞控制性能的cc算法为训练目标,以候选cc算法以及基于所述候选cc算法对tcp流进行拥塞控制时对应的网络状态信息作为训练数据对初始模型进行训练后获取的模型。28.根据权利要求27所述的网络设备,其特征在于,所述网管设备还包括:接收模块,用于接收并存储第一网络设备发送的所述第二cc算法、所述第一网络状态信息和第一奖励函数值,所述第一将奖励函数值由所述第一网络设备通过奖励函数对第二网络状态信息进行处理得到,所述第二网络状态信息反映基于所述第二cc算法对所述tcp流进行拥塞控制时的网络状态情况;处理模块,用于基于所述第一奖励函数值、所述第二cc算法和所述第一网络状态信息更新所述神经网络模型的模型参数;所述发送模块,用于向所述第一网络设备发送更新后的神经网络模型。29.一种拥塞控制处理系统,其特征在于,所述拥塞控制处理系统包括如权利要求15-26中任一项所述的第一网络设备、以及如权利要求27-28中任一项所述的网管设备。30.根据权利要求29所述的拥塞控制处理系统,其特征在于,所述拥塞控制处理系统还包括第二网络设备。31.一种第一网络设备,其特征在于,包括:存储器,用于存储计算机可读指令;还包括,与所述存储器耦合的处理器,用于执行所述存储器中的计算机可读指令从而执行如权利要求1至12中任一项所述的处理方法。32.一种网管设备,其特征在于,包括:存储器,用于存储计算机可读指令;还包括,与所述存储器耦合的处理器,用于执行所述存储器中的计算机可读指令从而执行如权利要求13至14中任一项所述的处理方法。33.一种计算机可读存储介质,其特征在于,当指令在计算机上运行时,使得所述计算机执行如权利要求1至12中任一项所述的处理方法。34.一种计算机可读存储介质,其特征在于,当指令在计算机上运行时,使得所述计算机执行如权利要求13至14中任一项所述的处理方法。
技术总结
本申请公开了一种拥塞控制算法的处理方法以及相关装置,用于解决在CC算法过多时,基于手动静态地配置传统的CC算法无法适用于网络状态发生改变的情况,而且在网络状态不断发生变化的情况下,能够实现自适应地切换CC算法,以提升对TCP流进行拥塞控制时的性能。前述的处理方法包括:获取第一网络状态信息,第一网络状态信息反映基于第一拥塞控制CC算法对TCP流进行拥塞控制时的网络状态情况;基于第一网络状态信息,从候选CC算法集合中选取第二CC算法,基于第二CC算法对TCP流进行拥塞控制时的性能高于基于第一CC算法对TCP流进行拥塞控制时的性能;在确定第二CC算法与第一CC算法不相同时,将第一CC算法切换为第二CC算法。将第一CC算法切换为第二CC算法。将第一CC算法切换为第二CC算法。
技术研发人员:
孙宸 周东明 蔡明杰
受保护的技术使用者:
华为技术有限公司
技术研发日:
2021.06.10
技术公布日:
2022/12/12