网络拥塞控制方法及设备与流程

文档序号:27208667发布日期:2021-11-03 14:39阅读:299来源:国知局
网络拥塞控制方法及设备与流程

1.本发明涉及通信技术领域,尤其涉及一种网络拥塞控制方法及设备。


背景技术:

2.在某段时间里,如果对网络中的某一资源的需求超过了该资源所能提供的可用部分,网络的性能就会发生变化,这种情况称为网络拥塞。防止过多的数据输入到网络当中,使网络中的转发设备(例如交换机和路由器等)或链路不致过载,这种情况称为拥塞控制。
3.目前比较有效的拥塞控制技术是数据中心传输控制协议(data center transmission control protocol,dctcp),其核心思想是:在互联网协议(internet protocol,ip)层和传输控制协议(transmission control protocol,tcp)层使用显式拥塞通知(explicit congestion notification,ecn)作为网络拥塞信号。并在转发设备端根据报文队列的长度做主动队列管理(active queue management,aqm)。具体的做法是在报文队列超过一定的阈值的时候,转发设备在超过阈值后接收的报文的ip首部的ecn字段中打上ecn的标记,目的设备接收到报文之后,根据接收的报文ip层的ecn标记将该确认字符(acknowledge character,ack)中tcp首部的显式拥塞通知返回(ecn-echo,ece)字段也进行标记然后发送给源设备。源设备可以获知出现了拥塞,从而相应地调整发送窗口。但是,在出现拥塞时,dctcp拥塞控制技术所有数据流进行拥塞控制,这对于新建立通信连接的数据流的传输效率影响较大,导致新建立连接的数据流需要与已经传输了一段时间的数据流分享带宽,从而需要花费较长的时间才可以达到新数据流所需的业务带宽。


技术实现要素:

4.本技术公开了一种网络拥塞控制方法及设备,能够缩短达到新建立连接的流所需业务带宽所耗费的时间。
5.第一方面,公开了一种网络拥塞控制方法,该方法包括:
6.转发设备处于预拥塞状态后,识别出接收到的第一报文属于第一类流的报文,所述预拥塞状态为所述转发设备缓存的报文量大于第一阈值的状态,所述第一类流为从流的建立时刻到所述流的报文的接收时刻之间的时长小于第二阈值的流;所述转发设备发送所述第一报文,发送的所述第一报文中不包括第一标识,所述第一标识用于指示出现了所述预拥塞状态。
7.其中,所述流的建立时刻为接收到建立所述流的传输控制协议(transmission control protocol,tcp)同步序列编号(synchronize sequence numbers,syn)报文的时刻或接收到建立所述流的tcp确认字符(acknowledge character,ack)报文的时刻。上述方法中,第一报文的传输路径包括能够基于上述预拥塞状态调整发送策略的设备。
8.一种可能的实施方式中,该基于上述预拥塞状态调整发送策略的设备可以是第一报文的源设备。该源设备能够根据该预拥塞状态调整流的发送策略,并根据调整后的发送策略来发送该流,从而达到缓解网络拥塞的目的。
9.另一种可能的实施方式中,该基于上述预拥塞状态调整发送策略的设备可以是第一报文的传输路径包括的转发设备(例如交换机或路由器等)或者接入设备(例如接入点ap等)。该转发设备或接入设备能够根据该预拥塞状态调整流的发送策略,并将调整之后的该流的发送策略发送给该流的源设备,使得该源设备可以根据该调整后的发送策略来发送该流的报文,从而达到缓解网络拥塞的目的。
10.另一种可能的实施方式中,该基于上述预拥塞状态调整发送策略的设备可以包括第一报文的源设备和第一报文的传输路径包括的转发设备(例如交换机或路由器等),或者该基于上述预拥塞状态调整发送策略的设备可以包括第一报文的源设备和第一报文的传输路径包括的接入设备(例如接入点ap等)。在这种情况下,源设备和转发设备配合,或者源设备和接入设备配合,完成根据上述预拥塞状态调整流的发送策略的功能,使得源设备可以根据该调整后的发送策略来发送该流的报文,从而达到缓解网络拥塞的目的。
11.上述方法中,所述的流(或者报文)的源设备指的是生成该流(或者报文)并将该流(或者报文)向目的设备发送的设备。
12.上述方法中,转发设备在转发流的过程中,在网络出现预拥塞的情况下,不对上述第一类流(新建立的流,简称新流)的报文设置用于指示出现了预拥塞的标识,从而使得新流的源设备不感知预拥塞,继续根据原有的发送策略发送报文,可以使得新建立的流能够有效快速的传输数据,快速达到新流对应的业务所需的带宽,从而减少用户从源设备获取流所需的等待时间,提高用户体验。
13.在其中一种可能的实施方式中,所述转发设备处于预拥塞状态后,还包括:所述转发设备识别出接收到的第二报文属于第二类流的报文,其中,所述第二类流为从流的建立时刻到所述流的报文的接收时刻之间的时长大于第二阈值的流;所述转发设备根据所述第二报文获得第三报文,其中,所述第三报文中包括所述第一标识;所述转发设备发送所述第三报文。
14.上述方法,在网络出现预拥塞的情况下,可以对上述第二类流(与第一类流相对,可以简称老流)的报文设置用于指示出现了预拥塞的标识,使得第二类流的源设备感知预拥塞并相应减小与第二类流对应的发送窗口,从而减少流入网络的报文量,缓解网络拥塞。
15.上述方法中,上述第二报文的传输路径包括能够基于上述预拥塞状态调整发送策略的设备。该基于上述预拥塞状态调整发送策略的设备可以参见上述对第一报文的传输路径包括的能够基于上述预拥塞状态调整发送策略的设备的描述,此处不再赘述。
16.在其中一种可能的实施方式中,所述第一报文满足以下条件中的至少一种:
17.所述第一报文的优先级高于预设优先级;
18.所述第一报文所属流属于所述转发设备处于所述预拥塞状态后建立的前n个流,所述n为正整数;
19.所述第一报文所属流属于所述转发设备处于所述预拥塞状态后接收的前m个流,所述m为正整数。
20.上述方法中,在网络出现预拥塞时,只对满足条件的新流不设置用于指示出现了预拥塞的标识,而其它流均设置用于指示出现了预拥塞的标识,从而可以灵活的控制流入网络的报文量,这样既能有效快速传输满足条件的新流,又可以快速缓解拥塞或者避免出现拥塞。另外,对于满足优先级条件的报文所属流中的新流不设置用于指示出现了预拥塞
的标识,可以满足这类新流时延较短的需求,使其较快到达用户,为用户提供更好的体验。
21.第二方面,公开了一种网络拥塞控制方法,该方法包括:目的设备接收第一报文,所述第一报文包括第一标识,所述第一标识用于指示出现了预拥塞状态,所述预拥塞状态为用于转发所述第一报文的转发设备缓存的报文量大于第一阈值的状态;所述目的设备识别出所述第一报文属于第一类流的报文,所述第一类流为从流的建立时刻到所述流的报文的接收时刻之间的时长小于第二阈值的流;所述目的设备发送用于响应所述第一报文的第一确认报文,所述第一确认报文中不包括第二标识,所述第二标识用于通知出现了所述预拥塞状态。
22.其中,所述流的建立时刻为接收到建立所述流的tcp同步syn报文的时刻或接收到建立所述流的tcp确认ack报文的时刻。
23.本技术中,在网络出现预拥塞的情况下,通过目的设备识别第一类流,并不对第一类流的确认报文设置用于通知出现了预拥塞的标识。这样,新流(新建立的流)的源设备不感知预拥塞,继续根据发送新流所采用的发送策略发送新流的报文,可以使得新流能够有效快速的传输数据,快速达到新流对应的业务所需的带宽,从而减少用户从源设备获取流所需的等待时间,提高用户体验。
24.在其中一种可能的实施方式中,所述方法还包括:所述目的设备接收第二报文,所述第二报文包括所述第一标识;所述目的设备识别出所述第二报文属于第二类流的报文,其中,所述第二类流为从流的建立时刻到所述流的报文的接收时刻之间的时长大于第二阈值的流;所述目的设备发送用于响应所述第二报文的第二确认报文,所述第二确认报文包括所述第二标识。
25.即本技术中,在网络出现预拥塞的情况下,可以通过目的设备对反馈给源设备的上述第二类流的确认报文设置用于通知出现了预拥塞的标识,使得第二类流的源设备感知预拥塞并相应减小发送窗口,从而减少流入网络的报文量,缓解网络拥塞。
26.在其中一种可能的实施方式中,所述第一报文满足以下条件中的至少一种:
27.所述第一报文的优先级高于预设优先级;
28.所述第一报文所属流属于所述目的设备接收到的前k个包括所述第一标识的流,所述k为正整数。
29.上述方法中,在网络出现预拥塞时,只对满足条件的新流不设置用于通知出现了预拥塞的标识,而其它流均设置用于通知出现了预拥塞的标识,从而可以灵活的控制流入网络的报文量,既能有效快速传输满足条件的新流,又可以快速缓解拥塞或者避免出现拥塞。另外,对于满足优先级条件的报文所属流中的新流不设置用于通知出现了预拥塞的标识,可以满足这类新流时延较短的需求,使其较快到达用户,为用户提供更好的体验。
30.第三方面,公开了一种网络拥塞控制方法,该方法包括:中间设备接收第一报文,所述第一报文包括标识,所述标识为与预拥塞状态相关的标识,所述预拥塞状态为用于转发所述第一报文的转发设备缓存的报文量大于第一阈值的状态;所述中间设备识别出所述第一报文属于第一类流的报文,所述第一类流为从流的建立时刻到所述流的报文的接收时刻之间的时长小于第二阈值的流;所述中间设备根据所述第一报文获得第二报文,所述第二报文为所述第一报文删除了所述标识后获得的报文;所述中间设备发送所述第二报文。
31.其中,所述标识为第一标识或第二标识,所述第一标识用于指示出现了所述预拥
塞状态,所述第二标识用于通知出现了所述预拥塞状态。所述流的建立时刻为接收到建立所述流的tcp同步syn报文的时刻或接收到建立所述流的tcp确认ack报文的时刻。中间设备可以是第一报文传输路径中的转发设备,或者中间设备可以是与第一报文的目的设备通信的接入设备。
32.上述方法中,在网络出现预拥塞的情况下,通过中间设备识别第一类流,并删除第一类流中由于出现预拥塞而设置的预拥塞相关的标识,使得新流的源设备不感知预拥塞,继续根据发送新流所采用的发送策略发送新流的报文,可以使得新建立的流能够有效快速的传输数据,快速达到新流对应的业务所需的带宽,从而减少用户从源设备获取流所需的等待时间,提高用户体验。
33.在其中一种可能的实施方式中,所述方法还包括:所述中间设备接收第三报文,所述第三报文包括所述标识;所述中间设备识别出所述第三报文属于第二类流的报文,其中,所述第二类流为从流的建立时刻到所述流的报文的接收时刻之间的时长大于第二阈值的流;所述中间设备发送所述第三报文。
34.即本技术中,在网络出现预拥塞的情况下,如果中间设备识别出接收到的报文所属的流为第二类流,那么可以保留第二类流中的预拥塞相关的标识,使得第二类流的源设备感知预拥塞并相应减小该第二类流的发送窗口,从而减少流入网络的报文量,缓解网络拥塞。
35.在其中一种可能的实施方式中,所述第一报文满足以下条件中的至少一种:
36.所述第一报文的优先级高于预设优先级;
37.所述第一报文所属流属于所述中间设备接收到的前l个包括所述标识的流,所述l为正整数。
38.上述方法中,在网络出现预拥塞时,只删除满足条件的新流中的预拥塞相关的标识,而其它流中的预拥塞相关的标识保留,从而可以灵活的控制流入网络的报文量,既能有效快速传输满足条件的新流,又可以快速缓解拥塞或者避免出现拥塞。另外,对于满足优先级条件的报文所属流中的新流删除预拥塞相关的标识,可以满足这类新流时延较短的需求,使其较快到达用户,为用户提供更好的体验。
39.第四方面,公开了一种网络拥塞控制方法,该方法包括:调整设备按照发送策略发送第一报文;所述调整设备接收响应于所述第一报文的第一确认报文,所述第一确认报文包括第二标识,所述第二标识用于通知出现了预拥塞状态,所述预拥塞状态为用于转发所述第一报文所属流的转发设备缓存的报文量大于第二阈值的状态;所述调整设备根据所述第一确认报文识别出所述第一报文所属流为第一类流,所述第一类流为从流的建立时刻到所述流的报文的接收时刻之间的时长小于第二阈值的流;所述调整设备按照所述发送策略继续发送所述第一报文所属流的报文。
40.该调整设备可以是前述第一方面中所述的基于上述预拥塞状态调整发送策略的设备,比如可以是第一报文的源设备,或者第一报文的传输路径包括的转发设备(例如交换机或路由器等)或者接入设备(例如接入点ap等)。
41.可选的,所述流的建立时刻为接收到建立所述流的tcp同步syn报文的时刻或接收到建立所述流的tcp确认ack报文的时刻。
42.本技术中,在网络出现预拥塞的情况下,通过调整设备识别第一类流,而不调整第
一类流的发送策略,使得新流的源设备继续根据发送新流所采用的发送策略发送新流的报文,可以使得新建立的流能够有效快速的传输数据,快速达到新流对应的业务所需的带宽,从而减少用户从源设备获取流所需的等待时间,提高用户体验。
43.在其中一种可能的实施方式中,所述调整设备按照所述发送策略继续发送所述第一报文所属流的报文之后还包括:
44.所述调整设备接收响应于第二报文的第二确认报文,所述第二确认报文包括所述第二标识,所述第二报文所属流与所述第一报文所属流相同,所述第二确认报文所属流与所述第一确认报文所属流相同;
45.所述调整设备根据所述第二确认报文识别出所述第二报文所属流为第二类流,所述第二类流为从流的建立时刻到所述流的报文的接收时刻之间的时长大于第二阈值的流;
46.所述调整设备根据所述第二确认报文的第二标识调整所述第二报文所属流的发送策略;
47.所述调整设备按照所述调整后的发送策略继续发送所述第二报文所属流的报文。
48.而在本技术实施例中,当新流变成老流之后,在网络出现预拥塞的情况下,调整设备会调整老流的发送策略,使得第二类流的源设备相应减小该第二类流的发送窗口,从而减少流入网络的报文量,缓解网络拥塞。
49.在其中一种可能的实施方式中,所述第一确认报文满足以下条件中至少一种:
50.所述第一确认报文的优先级高于预设优先级;
51.所述第一确认报文所属流属于所述调整设备接收到的前q个包括所述第二标识的流,所述q为正整数。
52.上述方法中,在网络出现预拥塞时,只对满足条件的新流中的发送策略不作调整,而其它流的发送策略均需调整,从而可以灵活的控制流入网络的报文量,既能有效快速传输满足条件的新流,又可以快速缓解拥塞或者避免出现拥塞。另外,对于满足优先级条件的报文所属流中的新流的发送策略不作调整,可以满足这类新流时延较短的需求,使其较快到达用户,为用户提供更好的体验。
53.第五方面,公开了一种转发设备,该转发设备包括:
54.识别单元,用于所述转发设备处于预拥塞状态后,识别出接收到的第一报文属于第一类流的报文,所述预拥塞状态为所述转发设备缓存的报文量大于第一阈值的状态,所述第一类流为从流的建立时刻到所述流的报文的接收时刻之间的时长小于第二阈值的流;
55.发送单元,用于发送所述第一报文,发送的所述第一报文中不包括第一标识,所述第一标识用于指示出现了所述预拥塞状态。
56.在其中一种可能的实施方式中,所述识别单元,还用于识别出接收到的第二报文属于第二类流的报文,其中,所述第二类流为从流的建立时刻到所述流的报文的接收时刻之间的时长大于第二阈值的流;
57.所述转发设备还包括获取单元,用于根据所述第二报文获得第三报文,其中,所述第三报文中包括所述第一标识;
58.所述发送单元,还用于发送所述第三报文。
59.在其中一种可能的实施方式中,所述第一报文满足以下条件中的至少一种:
60.所述第一报文的优先级高于预设优先级;
61.所述第一报文所属流属于所述转发设备处于所述预拥塞状态后建立的前n个流,所述n为正整数;
62.所述第一报文所属流属于所述转发设备处于所述预拥塞状态后接收的前m个流,所述m为正整数。
63.在其中一种可能的实施方式中,所述流的建立时刻为接收到建立所述流的tcp同步syn报文的时刻或接收到建立所述流的tcp确认ack报文的时刻。
64.第六方面,公开了一种目的设备,该目的设备包括:
65.接收单元,用于接收第一报文,所述第一报文包括第一标识,所述第一标识用于指示出现了预拥塞状态,所述预拥塞状态为用于转发所述第一报文的转发设备缓存的报文量大于第一阈值的状态;
66.识别单元,用于识别出所述第一报文属于第一类流的报文,所述第一类流为从流的建立时刻到所述流的报文的接收时刻之间的时长小于第二阈值的流;
67.发送单元,用于发送用于响应所述第一报文的第一确认报文,所述第一确认报文中不包括第二标识,所述第二标识用于通知出现了所述预拥塞状态。
68.在其中一种可能的实施方式中,所述的目的设备还包括接收单元,用于接收第二报文,所述第二报文包括所述第一标识;
69.所述识别单元,还用于识别出所述第二报文属于第二类流的报文,其中,所述第二类流为从流的建立时刻到所述流的报文的接收时刻之间的时长大于第二阈值的流;
70.所述发送单元,还用于发送用于响应所述第二报文的第二确认报文,所述第二确认报文包括所述第二标识。
71.在其中一种可能的实施方式中,所述第一报文满足以下条件中的至少一种:
72.所述第一报文的优先级高于预设优先级;
73.所述第一报文所属流属于所述目的设备接收到的前k个包括所述第一标识的流,所述k为正整数。
74.在其中一种可能的实施方式中,所述流的建立时刻为接收到建立所述流的tcp同步syn报文的时刻或接收到建立所述流的tcp确认ack报文的时刻。
75.第七方面,公开了一种中间设备,该中间设备包括:
76.接收单元,用于接收第一报文,所述第一报文包括标识,所述标识为与预拥塞状态相关的标识,所述预拥塞状态为用于转发所述第一报文的转发设备缓存的报文量大于第一阈值的状态;
77.识别单元,用于识别出所述第一报文属于第一类流的报文,所述第一类流为从流的建立时刻到所述流的报文的接收时刻之间的时长小于第二阈值的流;
78.获得单元,用于根据所述第一报文获得第二报文,所述第二报文为所述第一报文删除了所述标识后获得的报文;
79.发送单元,用于发送所述第二报文。
80.在其中一种可能的实施方式中,所述接收单元,还用于接收第三报文,所述第三报文包括所述标识;
81.所述识别单元,还用于识别出所述第三报文属于第二类流的报文,其中,所述第二类流为从流的建立时刻到所述流的报文的接收时刻之间的时长大于第二阈值的流;
82.所述发送单元,还用于发送所述第三报文。
83.在其中一种可能的实施方式中,所述标识为第一标识或第二标识,所述第一标识用于指示出现了所述预拥塞状态,所述第二标识用于通知出现了所述预拥塞状态。
84.在其中一种可能的实施方式中,所述第一报文满足以下条件中的至少一种:
85.所述第一报文的优先级高于预设优先级;
86.所述第一报文所属流属于所述中间设备接收到的前l个包括所述标识的流,所述l为正整数。
87.在其中一种可能的实施方式中,所述流的建立时刻为接收到建立所述流的tcp同步syn报文的时刻或接收到建立所述流的tcp确认ack报文的时刻。
88.第八方面,公开了一种调整设备,该调整设备包括:
89.发送单元,用于按照发送策略发送第一报文;
90.接收单元,用于接收响应于所述第一报文的第一确认报文,所述第一确认报文包括第二标识,所述第二标识用于通知出现了预拥塞状态,所述预拥塞状态为用于转发所述第一报文所属流的转发设备缓存的报文量大于第二阈值的状态;
91.识别单元,用于根据所述第一确认报文识别出所述第一报文所属流为第一类流,所述第一类流为从流的建立时刻到所述流的报文的接收时刻之间的时长小于第二阈值的流;
92.所述发送单元,还用于按照所述发送策略继续发送所述第一报文所属流的报文。
93.在其中一种可能的实施方式中,所述接收单元,还用于在所述发送单元按照所述发送策略继续发送所述第一报文所属流的报文之后,接收响应于第二报文的第二确认报文,所述第二确认报文包括所述第二标识,所述第二报文所属流与所述第一报文所属流相同,所述第二确认报文所属流与所述第一确认报文所属流相同;
94.所述识别单元,还用于根据所述第二确认报文识别出所述第二报文所属流为第二类流,所述第二类流为从流的建立时刻到所述流的报文的接收时刻之间的时长大于第二阈值的流;
95.所述调整设备还包括调整单元,用于根据所述第二确认报文的第二标识调整所述第二报文所属流的发送策略;
96.所述发送单元,还用于按照所述调整后的发送策略继续发送所述第二报文所属流的报文。
97.在其中一种可能的实施方式中,所述第一确认报文满足以下条件中至少一种:
98.所述第一确认报文的优先级高于预设优先级;
99.所述第一确认报文所属流属于所述调整设备接收到的前q个包括所述第二标识的流,所述q为正整数。
100.在其中一种可能的实施方式中,所述流的建立时刻为接收到建立所述流的tcp同步syn报文的时刻或接收到建立所述流的tcp确认ack报文的时刻。
101.第九方面,公开了一种转发设备,该转发设备包括处理器、通信接口和存储器,其中,所述存储器用于存储计算机程序和/或数据,所述处理器用于执行所述存储器中存储的计算机程序,使得所述转发设备执行如下操作:
102.转发设备处于预拥塞状态后,识别出接收到的第一报文属于第一类流的报文,所
述预拥塞状态为所述转发设备缓存的报文量大于第一阈值的状态,所述第一类流为从流的建立时刻到所述流的报文的接收时刻之间的时长小于第二阈值的流;发送所述第一报文,发送的所述第一报文中不包括第一标识,所述第一标识用于指示出现了所述预拥塞状态。
103.在其中一种可能的实施方式中,所述转发设备处于预拥塞状态后,所述转发设备还执行如下操作:
104.识别出接收到的第二报文属于第二类流的报文,其中,所述第二类流为从流的建立时刻到所述流的报文的接收时刻之间的时长大于第二阈值的流;根据所述第二报文获得第三报文,其中,所述第三报文中包括所述第一标识;发送所述第三报文。
105.在其中一种可能的实施方式中,所述第一报文满足以下条件中的至少一种:
106.所述第一报文的优先级高于预设优先级;
107.所述第一报文所属流属于所述转发设备处于所述预拥塞状态后建立的前n个流,所述n为正整数;
108.所述第一报文所属流属于所述转发设备处于所述预拥塞状态后接收的前m个流,所述m为正整数。
109.在其中一种可能的实施方式中,所述流的建立时刻为接收到建立所述流的tcp同步syn报文的时刻或接收到建立所述流的tcp确认ack报文的时刻。
110.第十方面,公开了一种目的设备,该目的设备包括处理器、通信接口和存储器,其中,所述存储器用于存储计算机程序和/或数据,所述处理器用于执行所述存储器中存储的计算机程序,使得所述目的设备执行如下操作:
111.接收第一报文,所述第一报文包括第一标识,所述第一标识用于指示出现了预拥塞状态,所述预拥塞状态为用于转发所述第一报文的转发设备缓存的报文量大于第一阈值的状态;识别出所述第一报文属于第一类流的报文,所述第一类流为从流的建立时刻到所述流的报文的接收时刻之间的时长小于第二阈值的流;发送用于响应所述第一报文的第一确认报文,所述第一确认报文中不包括第二标识,所述第二标识用于通知出现了所述预拥塞状态。
112.在其中一种可能的实施方式中,所述目的设备还执行如下操作:
113.接收第二报文,所述第二报文包括所述第一标识;识别出所述第二报文属于第二类流的报文,其中,所述第二类流为从流的建立时刻到所述流的报文的接收时刻之间的时长大于第二阈值的流;发送用于响应所述第二报文的第二确认报文,所述第二确认报文包括所述第二标识。
114.在其中一种可能的实施方式中,所述第一报文满足以下条件中的至少一种:
115.所述第一报文的优先级高于预设优先级;
116.所述第一报文所属流属于所述目的设备接收到的前k个包括所述第一标识的流,所述k为正整数。
117.在其中一种可能的实施方式中,所述流的建立时刻为接收到建立所述流的tcp同步syn报文的时刻或接收到建立所述流的tcp确认ack报文的时刻。
118.第十一方面,公开了一种中间设备,该中间设备包括处理器、通信接口和存储器,其中,所述存储器用于存储计算机程序和/或数据,所述处理器用于执行所述存储器中存储的计算机程序,使得所述中间设备执行如下操作:
119.接收第一报文,所述第一报文包括标识,所述标识为与预拥塞状态相关的标识,所述预拥塞状态为用于转发所述第一报文的转发设备缓存的报文量大于第一阈值的状态;识别出所述第一报文属于第一类流的报文,所述第一类流为从流的建立时刻到所述流的报文的接收时刻之间的时长小于第二阈值的流;根据所述第一报文获得第二报文,所述第二报文为所述第一报文删除了所述标识后获得的报文;发送所述第二报文。
120.在其中一种可能的实施方式中,所述中间设备还执行如下操作:
121.接收第三报文,所述第三报文包括所述标识;识别出所述第三报文属于第二类流的报文,其中,所述第二类流为从流的建立时刻到所述流的报文的接收时刻之间的时长大于第二阈值的流;发送所述第三报文。
122.在其中一种可能的实施方式中,所述标识为第一标识或第二标识,所述第一标识用于指示出现了所述预拥塞状态,所述第二标识用于通知出现了所述预拥塞状态。
123.在其中一种可能的实施方式中,所述第一报文满足以下条件中的至少一种:
124.所述第一报文的优先级高于预设优先级;
125.所述第一报文所属流属于所述中间设备接收到的前l个包括所述标识的流,所述l为正整数。
126.在其中一种可能的实施方式中,所述流的建立时刻为接收到建立所述流的tcp同步syn报文的时刻或接收到建立所述流的tcp确认ack报文的时刻。
127.第十二方面,公开了一种调整设备,该调整设备包括处理器、通信接口和存储器,其中,所述存储器用于存储计算机程序和/或数据,所述处理器用于执行所述存储器中存储的计算机程序,使得所述调整设备执行如下操作:
128.按照发送策略发送第一报文;接收响应于所述第一报文的第一确认报文,所述第一确认报文包括第二标识,所述第二标识用于通知出现了预拥塞状态,所述预拥塞状态为用于转发所述第一报文所属流的转发设备缓存的报文量大于第二阈值的状态;根据所述第一确认报文识别出所述第一报文所属流为第一类流,所述第一类流为从流的建立时刻到所述流的报文的接收时刻之间的时长小于第二阈值的流;按照所述发送策略继续发送所述第一报文所属流的报文。
129.在其中一种可能的实施方式中,所述调整设备还执行如下操作:
130.按照所述发送策略继续发送所述第一报文所属流的报文之后还包括:接收响应于第二报文的第二确认报文,所述第二确认报文包括所述第二标识,所述第二报文所属流与所述第一报文所属流相同,所述第二确认报文所属流与所述第一确认报文所属流相同;根据所述第二确认报文识别出所述第二报文所属流为第二类流,所述第二类流为从流的建立时刻到所述流的报文的接收时刻之间的时长大于第二阈值的流;根据所述第二确认报文的第二标识调整所述第二报文所属流的发送策略;按照所述调整后的发送策略继续发送所述第二报文所属流的报文。
131.在其中一种可能的实施方式中,所述第一确认报文满足以下条件中至少一种:
132.所述第一确认报文的优先级高于预设优先级;
133.所述第一确认报文所属流属于所述调整设备接收到的前q个包括所述第二标识的流,所述q为正整数。
134.在其中一种可能的实施方式中,所述流的建立时刻为接收到建立所述流的tcp同
步syn报文的时刻或接收到建立所述流的tcp确认ack报文的时刻。
135.第十三方面,公开了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行以实现上述第一方面任意一项所述的方法;或者,所述计算机程序被处理器执行以实现上述第二方面任意一项所述的方法;或者,所述计算机程序被处理器执行以实现上述第三方面任意一项所述的方法;或者,所述计算机程序被处理器执行以实现上述第四方面任意一项所述的方法。
136.第十四方面,公开了一种计算机程序产品,当所述计算机程序产品被计算机读取并执行时,上述第一方面任意一项所述的方法将被执行;或者,当所述计算机程序产品被计算机读取并执行时,上述第二方面任意一项所述的方法将被执行;或者,当所述计算机程序产品被计算机读取并执行时,上述第三方面任意一项所述的方法将被执行;或者,当所述计算机程序产品被计算机读取并执行时,上述第四方面任意一项所述的方法将被执行。
137.第十五方面,公开了一种计算机程序,其特征在于,当所述计算机程序在计算机上执行时,将会使所述计算机实现上述第一方面任意一项所述的方法;或者,当所述计算机程序在计算机上执行时,将会使所述计算机实现上述第二方面任意一项所述的方法;或者,当所述计算机程序在计算机上执行时,将会使所述计算机实现上述第三方面任意一项所述的方法;或者,当所述计算机程序在计算机上执行时,将会使所述计算机实现上述第四方面任意一项所述的方法。
138.综上所述,本技术在网络出现预拥塞的情况下,不对新流进行拥塞控制(拥塞控制例如可以是对流的报文添加或删除预拥塞相关标识的操作,或者调整流的发送窗口的操作等),而只对老流进行拥塞控制,能够在兼顾缓解网络拥塞的同时,可以使得新建立的流能够有效快速的传输数据,快速达到新流对应的业务所需的带宽,从而减少用户从源设备获取流所需的等待时间,提高用户体验。
附图说明
139.下面将对本技术实施例中所需要使用的附图作介绍。
140.图1所示为本技术提供的一种系统结构示意图;
141.图2所示为ip报文首部的部分结构示意图;
142.图3所示为本技术提供的一种拥塞控制方法的交互流程示意图;
143.图4所示为本技术提供的一种转发设备中流的处理流程示意图;
144.图5所示为本技术提供的另一种拥塞控制方法的交互流程示意图;
145.图6所示为本技术提供的另一种拥塞控制方法的交互流程示意图;
146.图7所示为本技术提供的另一种拥塞控制方法的交互流程示意图;
147.图8所示为本技术提供的一种转发设备的逻辑结构示意图;
148.图9所示为本技术提供的一种目的设备的逻辑结构示意图;
149.图10所示为本技术提供的一种中间设备的逻辑结构示意图;
150.图11所示为本技术提供的一种调整设备的逻辑结构示意图;
151.图12所示为本技术提供的一种转发设备的硬件结构示意图;
152.图13所示为本技术提供的一种目的设备的硬件结构示意图;
153.图14所示为本技术提供的一种中间设备的硬件结构示意图;
154.图15所示为本技术提供的一种调整设备的硬件结构示意图。
具体实施方式
155.为了更好的理解本技术实施例提供的一种网络拥塞控制方法,下面先对本技术实施例适用的场景架构进行示例性地描述。
156.图1是本技术实施例提供的网络拥塞控制系统的构架示意图。如图1所示,该系统可以包括一个或多个服务器100、一个或多个转发设备110、一个或多个接入设备120以及包括一个或多个终端130。服务器100在网络中为终端130提供计算或者应用服务。服务器100具有高速的中央处理器(central processing unit,cpu)运算能力、长时间的可靠运行、强大的输入/输出(input/output,i/o)外部数据吞吐能力以及更好的扩展性。服务器100具备承担响应服务请求、承担服务、保障服务的能力。例如,在本技术实施例,服务器100可以响应于终端130的服务请求,为终端130提供服务响应等。转发设备110用于对报文进行路由和转发。转发设备110例如可以是物理交换机、物理路由器,或者是嵌入在物理服务器中的基于软件虚拟化技术的虚拟交换机(virtual switch,vswitch)、虚拟路由器(virtual router,vrouter)等。接入设备120为用于终端130接入网络的设备,例如可包括接入点(access point,ap)等。终端130可以包括但不限于任何一种基于智能操作系统的电子产品,其可与用户通过键盘、虚拟键盘、触摸板、触摸屏以及声控设备等输入设备来进行人机交互,诸如智能手机、平板电脑、台式电脑、手持计算机和可穿戴电子设备等。其中,智能操作系统包括但不限于任何通过向设备提供各种应用来丰富设备功能的操作系统,诸如安卓android、ios、windows和mac等系统。终端130通过接入设备120接入网络,当终端130与服务器100之间需要传输数据时,可以通过转发设备110实现数据的转发传输。终端130与服务器100之间的数据传输,既可以是终端130向服务器100发送数据,也可以是服务器100向终端130发送数据,即终端130和服务器100既可以作为源设备也可以作为目的设备。需要说明的是,本技术实施例提供的网络拥塞控制系统构架不限于图1所示系统架构。
157.下面先介绍一下本方案可能涉及的概念。
158.1、ip报文首部中的ecn字段
159.ip报文首部又称为ip报文头部或者ip包头等。ip报文首部中包括8位(bit)服务类型(type of service,tos)字段,该tos字段原先在“请求评论”(request for comments,rfc)rfc791中被定义为表明报文的发送优先级,时延,吞吐量,可靠性和消耗等特征。在rfc2474中,该tos字段被重新定义为包含6位的差分服务编码点(differentiated services code point,dscp)字段和未使用的2位字段。dscp字段的值表明在转发设备例如路由器上配置的和队列相关联的发送优先级。dscp字段的值的范围为0(二进制为000000)至63(二进制为111111),即优先级有0至63级,取值越大优先级越高。该未使用的2位字段被定义为ecn字段。
160.需要说明的是,rfc是一系列以编号排定的文件。这些文件收集了有关互联网相关信息,以及操作系统unix和互联网社区的软件文件。rfc文件是由互联网协会(internet society,isoc)赞助发行。基本的互联网通信协议都有在rfc文件内详细说明。rfc文件还额外加入许多在标准内的论题,例如对于互联网新开发的协议及发展中所有的记录。因此几乎所有的互联网标准都有收录在rfc文件之中。
161.为了便于理解ecn字段,可以参见图2,图2示例性示出了重新定义后的tos字段的组成结构。从图2中可以看到,该tos字段的8位分别用0、1、2、3、4、5、6和7来编号,其中,0位至5位为dscp字段,而6位和7位为ecn字段。该ecn字段可以有四个取值,例如该四个取值可以是00、01、10和11。
162.在rfc3168中描述,00代表报文不支持ecn功能,所以转发设备例如交换机将该报文按照过载丢包的方式处理。过载丢包表示发生了拥塞且导致丢包的发生。01和10这两个值对于转发设备来说是一样的,都表明该报文支持ecn功能,针对01和10的具体区别可参考rfc3168,此处不赘述。如果发生了预拥塞,则转发设备将该报文中的ecn字段的01或10修改为11,以表示该报文的传输路径出现了预拥塞,然后继续被转发设备转发。如果该报文的ecn的值已经被修改为11,且还要经由一个或多个转发设备路由转发,那么该一个或多个转发设备不会修改该ecn的值。
163.需要说明的是,上述描述的报文支持ecn功能又可以说是生成该报文的设备,例如终端或者服务器等,支持ecn功能,或者又可以说是生成该报文的设备,例如终端或者服务器等,支持dctcp技术。
164.2、tcp报文首部的cwr位和ece位
165.tcp报文首部又称为tcp报文头部或者tcp包头等。tcp首部包括8bit控制位,该8bit控制位中包括cwr位和ece位,cwr位和ece位均占一个bit。cwr表示已减少拥塞窗口(congestion window reduced,cwr),cwr位与ece位都用于拥塞控制。cwr位置1时,用于指示已将拥塞窗口缩小。ece表示显式拥塞通知返回(ecn-echo,ece),ece位置为1表示通知通信对方,从对方到这边的网络有拥塞。
166.3、tcp\ip协议传输中流的概念
167.基于tcp\ip协议传输的流包括数据流和控制流。数据流可以包含多个报文(这里报文又可以称为报文段或者数据包),这些报文包括从开始请求建立连接的同步序列编号(synchronize sequence numbers,syn)包到最后断开连接的第四次挥手的ack报文。这些报文的负载也就是除去所有的协议头部所剩下的数据,是需要传输的完整的数据。
168.控制流用于控制程序逻辑执行的先后顺序,控制流实际上是数据流融入控制层之后形成的逻辑处理和程序跳转的结果。控制流之所以能够称为控制流,完全是因为它所控制的对象是数据,数据在逻辑处理过程中的形式和状态的变化,一定程度上促成了控制层的逻辑处理和程序跳转的结果。
169.不管是数据流还是控制流,同方向(例如从服务器向终端的方向或者从终端向服务器的防线)流的报文的五元组是相同的。该五元组包括报文的源ip地址,源端口,目的ip地址,目的端口和传输层协议。例如:192.168.1.1、10000、tcp、121.14.88.76和80就构成了一个五元组,其意义是,一个ip地址为192.168.1.1的设备通过端口10000,利用tcp协议,与ip地址为121.14.88.76,端口为80的设备进行通信。
170.基于上述的描述,下面介绍本技术实施例提供的网络拥塞控制方法,该方法可以但不限于应用于图1所示的系统架构。参见图3,本技术实施例提供的网络拥塞控制方法可以包括但不限于如下步骤:
171.步骤301、源设备向转发设备发送多个报文。
172.该源设备可以包括一个或多个,该一个或多个源设备向对应的目的设备发送流,
每个流包括多个报文,可以通过转发设备转发到对应的目的设备。该源设备例如可以是图1中所示的服务器100,该转发设备例如可以是图1中所示的转发设备110,目的设备例如可以是图1中所示的终端130。
173.步骤302、转发设备接收该多个报文,并检测是否出现预拥塞状态。
174.具体的,预拥塞状态指的是还未达到拥塞,但即将达到拥塞的状态。例如,转发设备在同一时刻内能够转发的报文的数量为100个或者转发设备在同一时刻内能够转发的报文的字节数为1兆字节,如果在同一时刻需要该转发设备转发的报文超过100个或者1兆字节,则出现了拥塞。但是如果在同一时刻需要该转发设备转发的报文未超过100个或者1兆字节,但即将到达100个或1兆字节,例如为90个或0.9兆字节,则可以说出现了预拥塞。该报文的数量或报文的字节数也可被称为报文量。
175.在具体实施例中,预拥塞状态为转发设备缓存的报文量大于第一阈值的状态,转发设备可以通过多种方法检测是否出现预拥塞状态,下面示例性介绍两种:
176.第一种、可以通过检测该转发设备缓存中待发送的报文的数量是否大于第一阈值来检测是否出现预拥塞状态。如果该数量大于第一阈值,则可以确定出现了预拥塞状态,如果该数量小于第一阈值,则没有出现预拥塞状态。在该第一种预拥塞状态检测方法中,该第一阈值表示同一时刻该转发设备能够无拥塞地转发报文的数量大小。该第一阈值可以根据转发设备的转发性能决定。
177.具体的,上述转发设备中待发送的报文存储在该转发设备的流量管理器(traffic manager,tm)的寄存器中,转发设备的网络处理器(network processor,np)通过读取该寄存器获取待发送报文的数量,然后将该数量存储到该寄存器中。该寄存器中存储的待发送报文的数量为接收到该多个流之前的数量。转发设备接收到该多个流之后,通过np读取该tm的寄存器中的待发送报文的数量,并将该数量与第一阈值比较,从而确定是否出现预拥塞状态。
178.第二种、可以通过检测该转发设备缓存中待发送的报文的字节数是否大于第一阈值来检测是否出现预拥塞状态。如果该字节数大于第一阈值,则可以确定出现了预拥塞状态,如果该字节数小于第一阈值,则没有出现预拥塞状态。在该第二种预拥塞状态检测方法中,该第一阈值表示同一时刻该转发设备能够无拥塞地转发报文的字节数大小。同样的,该第一阈值可以根据转发设备的转发性能决定。
179.具体的,上述转发设备中待发送的报文存储在该转发设备的流量管理器(traffic manager,tm)的寄存器中,转发设备的网络处理器(network processor,np)通过读取该寄存器获取待发送报文的字节数,然后将该字节数存储到该寄存器中。该寄存器中存储的待发送报文的字节数为接收到该多个流之前的数量。转发设备接收到该多个流后,通过np读取该tm的寄存器中的待发送报文的字节数,并将该字节数与第一阈值比较,从而确定是否出现预拥塞状态。
180.本技术实施例中,待发送的报文的量大于或等于第一阈值,则表示出现了预拥塞状态,或者待发送的报文量大于第一阈值,则表示出现预拥塞状态。具体可根据需要设定,在此不再进行限定。第一阈值的单位和报文量的单位保持一致,比如报文量表示的是报文的数量,则第一阈值的单位是数量,报文量表示的报文的字节数,则第一阈值的单位是字节。
181.步骤303、在出现预拥塞状态时,该转发设备识别上述多个报文中属于第一类流和第二类流的报文。
182.其中,该第一类流为从流的建立时刻到所述流的报文的接收时刻之间的时长小于第二阈值的流。在本技术实施例中,除了第一类流之外的流为第二类流,该第二类流为从流的建立时刻到所述流的报文的接收时刻之间的时长大于该第二阈值的流。
183.本技术实施例中,对于从流的建立时刻到所述流的报文的接收时刻之间的时长小于或等于第二阈值的流,可以识别为第一类流;或者对于从流的建立时刻到所述流的报文的接收时刻之间的时长小于第二阈值的流,可以识别为第一类流。识别第二类流的过程是与识别第一类流相对的过程,比如对于从流的建立时刻到所述流的报文的接收时刻之间的时长大于第二阈值的流,可以识别为第二类流;或者对于从流的建立时刻到所述流的报文的接收时刻之间的时长大于第二阈值的流,可以识别为第二类流。具体可根据需要设定,在此不再进行限定。该流的建立时刻为转发设备接收到建立该流的tcp同步syn报文的时刻或接收到建立该流的tcp确认ack报文的时刻,如图3对应的实施例。
184.由于syn报文是tcp建立连接时最开始使用的握手信号,如果转发设备收到一个建立连接syn报文,那么表示一个新流的开始。转发设备每收到一个syn报文,都会读取该syn报文中的五元组,并根据该五元组建立该syn报文对应的流的流表。同时,建立一个与该syn报文的五元组关联的计时器,以表示一个第一类流的开始。可选的,该计时器可以是一个倒计时器,倒计时长为上述第二阈值,在该倒计时器归零之前,该转发设备接收到的该五元组的流为第一类流,否则为第二类流。当然,计时器还可以是其它类型的计时器,例如电磁打点计时器或电火花计时器等。该计时器还可以是通常的计时器,通过计时器的数值和第二阈值的比较结果来确定是否属于第一类流。本技术实施例中不对采用的计时器的种类进行限定。
185.或者,一个新流的开始也可以是从tcp建立连接时的ack报文开始的,即如果转发设备收到一个建立连接的ack报文,且还未建立关联该ack报文的五元组的计时器,那么,建立一个与该五元组关联的计时器,以表示一个第一类流的开始。可选的,该计时器可以是一个倒计时器,倒计时长为上述阈值,在该倒计时器归零之前,该转发设备接收到的该五元组的流为第一类流,否则为第二类流。该计时器可以是通常的计时器,通过计时器的数值和第二阈值的比较结果来确定是否属于第一类流。
186.可选的,该用于判断第一类流和第二类流的第二阈值可以是一个或多个平均往返时间(round-trip time,rtt)。例如,该第二阈值可以是80毫秒、90毫秒等。可选的,该第二阈值可以不超过100毫秒。具体的第二阈值可以根据实际情况确定,本方案对此不做限制。
187.上述平均rtt可以包括从源设备向目的设备发送一个或多个报文至接收到该目的设备发送的响应于该一个或多个报文的确认字符的时间。可选的,对于转发设备中转发的每一个数据流的报文的平均rtt可以是一个统一预设的时间长度;或者,转发设备也可以针对每一个数据流测量各个数据流的报文的平均rtt。具体根据实际情况确定该平均rtt,本方案对此不做限制。
188.在具体实施例中,在转发设备出现预拥塞状态时,转发设备可以首先识别出接收的该多个报文中属于第一类流和第二类流的报文。
189.当计时器为倒计时器的情况下,转发设备可以首先获取接收的该多个报文中的五
元组,根据五元组查询对应关联的计时器是否归零。若计时器未归零,则该计时器关联的五元组的流为第一类流,即该五元组的报文为属于第一类流的报文。若计时器已归零,则该计时器关联的五元组的流为第二类流,即该五元组的报文为属于第二类流的报文。由此,转发设备可以识别出该多个报文中属于第一类流和第二类流的报文。
190.步骤304、该转发设备对识别出的上述多个报文中属于第二类流的报文设置第一标识。
191.具体的,该第一标识用于指示出现了上述预拥塞状态。为了使得新建立的流能够有效快速的传输数据,快速达到对应的业务所需的带宽,即使出现了预拥塞状态,转发设备也可以不对该多个报文中属于第一类流的报文设置第一标识。而为了缓解拥塞或者为了避免出现拥塞,转发设备可以对该多个报文中属于第二类流的报文设置该第一标识。
192.可选的,第一标识的设置可以是将对应报文中的ip首部的ecn字段的值更改为11,以表示该报文经过了预拥塞。需要说明的是,报文中第一标识的设置不限于更改报文的ecn字段的值,如果后续开发了新的字段用于标记网络拥塞,或者出现了新的第一标识的设置方式,也在本技术的保护范围之内。
193.可选的,考虑到尽快缓解拥塞或者避免出现拥塞的情况,转发设备可以对满足条件的第一类流的报文不设置第一标识,而对除此之外的其它报文,即第二类流的报文以及不满足所述条件的第一类流的报文设置第一标识。
194.该条件可以包括如下条件中的一项或多项:
195.条件一、报文的优先级高于预设值;
196.条件二、报文所属流属于上述转发设备处于上述预拥塞状态后建立的前n个流,其中n为正整数;
197.条件三、报文所属流属于上述转发设备处于上述预拥塞状态后接收的前m个流,其中m为正整数。
198.对于条件一,由前面介绍的本方案可能涉及的概念可知,转发设备接收到的报文的ip首部中定义了表明报文的发送优先级的dscp字段,该字段的值即为该报文的优先级。那么,转发设备可以通过获取上述识别出的第一类流的报文的优先级,再将获取的优先级与预设优先级比较,若报文的优先级高于该预设的优先级,那么转发设备不对该报文设置第一标识。或者,转发设备也可以在进行第一类流的报文的识别之前,先根据报文的优先级筛选出高于预设优先级的报文,在从筛选出的报文中识别出第一类流的报文,并不对该报文设置第一标识。而转发设备可以对第二类流的报文和低于该预设优先级的第一类流的报文设置第一标识。为了便于理解,示例说明。例如,假设预设优先级为10,上述多个报文中的第一类流的报文的优先级的值分别为1、12、6、2和20。那么,经比较可知,该第一类流的报文中优先级为12和20的报文可以不设置第一标识,对于优先级为1、6和2的报文可以设置第一标识。
199.对于条件二,如果转发设备接收的上述多个报文所属流中包括在转发设备出现预拥塞状态之后才建立的流,那么该流中属于第一类流的报文可以不设置第一标识,而多个报文所属流中其余的流(可以包括第二类流和出现预拥塞状态之前建立的第一类流)的报文可以设置第一标识。可选的,在条件二中,即使在转发设备出现预拥塞状态之后才建立的第一类流也不是全部都不设置第一标识,而是选择出现拥塞之后首先建立的前n个第一类
流不设置第一标识,而其余的第一类流和第二类流则可以设置第一标识。
200.对于条件三,在转发设备出现预拥塞状态之后,转发设备可以对接收到的前m个流中属于第一类流的报文不设置第一标识。即转发设备可以不对上述多个报文中包括该前m个流中属于第一类流的报文设置第一标识,而其余的第一类流和第二类流则可以设置第一标识。
201.步骤305、该转发设备向目的设备发送上述多个报文中设置了第一标识的报文和未设置该第一标识的报文。
202.举例说明,转发设备实际上是接收到第一报文后,判断出其不需要设置第一标识后,直接存入缓存中,然后将其发送出去,该第一报文中不包括第一标识。转发设备接收到第二报文后,判断出需要设置第一标识,则对第二报文进行第一标识的设置,以获得第三报文。第三报文为进行第一标识设置的第二报文。转发设备将该第三报文存入缓存中并将其发送出去。
203.步骤306、目的设备接收上述多个报文,并检测该多个报文中是否包括第一标识。
204.步骤307、目的设备根据该多个报文生成对应的确认报文,其中,该多个报文中包括第一标识的报文的确认报文携带第二标识,未包括第一标识的报文的确认报文不携带第二标识。
205.步骤308、目的设备向源设备发送生成的确认报文。
206.在具体实施例中,目的设备接收到上述多个报文之后,可以先检测该多个报文中是否携带第一标识,例如,可以查看报文中的ecn字段的值是否为11。然后,识别出该多个报文中携带第一标识的报文和不携带第一标识的报文。再根据这些报文生成响应于这些报文的确认报文,那么目的设备生成的响应于携带第一标识的报文的确认报文中携带第二标识,而生成的响应于不携带第一标识的报文的确认报文中不携带该第二标识。该第二标识用于通知出现了预拥塞状态。然后,目的设备将生成的确认报文向对应的源设备发送。
207.可选的,目的设备为确认报文设置第二标识可以是将生成的确认报文的tcp首部的ece位置1。需要说明的是,确认报文中第二标识的设置不限于更改报文的ece字段的值,如果后续开发了新的字段用于标记网络拥塞,或者出现了新的第二标识的设置方式,也在本技术的保护范围之内。
208.另外,上述方法中,上述多个报文的传输路径包括能够基于上述预拥塞状态调整各自报文所属流的发送策略的设备。
209.一种可能的实施方式中,该基于上述预拥塞状态调整报文所属流的发送策略的设备可以是该流(或该报文)的源设备。该源设备能够根据该预拥塞状态调整流的发送策略,并根据调整后的发送策略来发送该流,从而达到缓解网络拥塞的目的。在这种情况下,源设备支持dctcp拥塞控制技术时,源设备具有调整自身发送的流的发送策略的功能。在具体实施例中,如果源设备接收到的响应于上述多个报文中某个报文的确认报文携带上述第二标识,则可以根据该第二标识感知到上述预拥塞状态,从而根据该预拥塞状态调整该某个报文所属流的发送策略。可选的,该发送策略可以是该某个报文所属流的发送窗口。具体的调整方法为现有技术,此处不赘述。
210.另一种可能的实施方式中,该基于上述预拥塞状态调整报文所属流的发送策略的设备可以是该流(或该报文)的传输路径包括的转发设备(例如交换机或路由器等)或者接
入设备(例如接入点ap等)。该转发设备或接入设备能够根据该预拥塞状态调整流的发送策略,并将调整之后的该流的发送策略发送给该流的源设备,使得该源设备可以根据该调整后的发送策略来发送该流的报文,从而达到缓解网络拥塞的目的。在这种情况下,源设备不支持dctcp拥塞控制技术时,即源设不备具调整自身发送的流的发送策略的功能。因此,可以配置流的传输路径中的转发设备或接入设备来完成基于预拥塞状态对流的发送策略的调整,然后将调整结果发送给该源设备。例如,该转发设备或接入设备接收到的响应于上述多个报文中某个报文的确认报文携带上述第二标识,则可以根据该第二标识感知到上述预拥塞状态,从而根据该预拥塞状态调整该某个报文所属流的发送策略,并将调整后的发送策略发送给该某个报文所属流的源设备。具体的调整方法可以参见现有技术中源设备基于预拥塞状态对流的发送策略的调整方法,此处不赘述。
211.另一种可能的实施方式中,该基于上述预拥塞状态调整报文所属流的发送策略的设备可以包括该流(或该报文)的源设备和该流(或该报文)的传输路径包括的转发设备(例如交换机或路由器等),或者该基于上述预拥塞状态调整报文所属流的发送策略的设备可以包括该流(或该报文)的源设备和该流(或该报文)的传输路径包括的接入设备(例如接入点ap等)。在这种情况下,源设备和转发设备配合,或者源设备和接入设备配合,完成根据上述预拥塞状态调整流的发送策略的功能,使得源设备可以根据该调整后的发送策略来发送该流的报文,从而达到缓解网络拥塞的目的。在这种情况下,也是源设备不支持dctcp拥塞控制技术时,即源设不备具调整自身发送的流的发送策略的功能。因此,可以配置流的传输路径中的转发设备或接入设备来辅助源设备完成基于预拥塞状态对流的发送策略的调整。例如,该转发设备或接入设备接收到的响应于上述多个报文中某个报文的确认报文携带上述第二标识,则可以根据该第二标识感知到上述预拥塞状态,从而根据该预拥塞状态调整该某个报文所属流的相关窗口(该相关窗口例如可以是该流的拥塞窗口或接收窗口),并将调整后的相关窗口发送给该某个报文所属流的源设备,该源设备再根据该调整后的相关窗口调整该流的发送窗口即上述发送策略。
212.需要说明的是,本技术中所述的流(或者报文)的源设备指的是生成该流(或者报文)并将该流(或者报文)向目的设备发送的设备。
213.在本技术实施例中,能够基于上述预拥塞状态调整各自报文所属流的发送策略的设备可以称为调整设备。流的发送策略可以是流的发送窗口,即每个流的源设备针对每个流都维护有一个发送窗口,根据该发送窗口来发送对应的流的报文。
214.具体实施例中,在出现预拥塞状态之后,转发设备对报文设置第一标识的最终目的是为了让调整设备感知预拥塞并基于该预拥塞状态的情况进行发送策略的调整,从而减少源设备输入网络的报文量,以缓解甚至避免网络的拥塞。
215.源设备根据调整后的发送策略发送对应的流。源设备可以在采用调整后的发送策略发送的第一个报文中设置窗口已调整的通知标记,例如,可以将该第一个报文中的cwr位置1,用于通知目的设备已将拥塞窗口缩小。目的设备接收到该cwr位置1的报文之后,在平均rtt内向源设备发送的确认报文中不再添加第二标识。如果下一个平均rtt内,再出现预拥塞状态情况,则重复上述的操作,以达到逐渐减缓甚至避免网络拥塞但又保证数据的传输效率,有效利用网络带宽的目的。
216.本实施例通过在转发设备转发流的过程中,在网络出现预拥塞状态的情况下,不
对上述第一类流的报文添加第一标识,而只对上述第二类流的报文添加标记,这样可以使得新建立的流能够有效快速的传输数据,快速达到新流对应的业务所需的带宽,从而减少用户从源设备获取流所需的等待时间,提高用户体验。
217.为了便于理解上述实施例中转发设备接收到上述多个报文后的具体处理过程,可以参见图4。图4所示为转发设备的结构示意图,转发设备包括接口板401、主控板402、网络处理器403、数据包编辑器404、寄存器405和流量管理器406等。其中,
218.接口板401可以用于接收该多个报文,并获取该多个报文的五元组信息;
219.主控板402可以根据该五元组信息向网络处理器403下发流表,该流表中可以包括该五元组的信息和转发策略。
220.网络处理器403可以从接口板401获取该多个报文,然后根据多个报文使能ecn功能。具体的,网络处理器403可以通过向数据包编辑器404发送使能ecn的指令。另外,网络处理器403还可以从流量管理器406读取寄存器405中的待发送报文队列,然后计算待发送报文的数量或字节数,并将计算得到的数量或字节数存储到寄存器405中。具体的,寄存器405中有专门存储待发送报文的数量或字节数的寄存位,每次计算待发送报文的数量或字节数后,都将计算得到的新的数量值或字节数的值替换掉该寄存位中原来的数量值或字节数的值。
221.数据包编辑器404可以根据网络处理器403的指令使能ecn功能。
222.流量管理器406可以接收数据包编辑器的使能ecn的指令对多个报文进行相应ecn功能的处理。具体的,流量管理器406获取寄存器405中的待发送报文提供给网络处理器403,并将网络处理器403计算得到的待发送报文的数量或字节数修改上述寄存位的值。另外,根据待发送报文的数量或字节数是否大于第一阈值来决定是否为多个报文添加第一标识,然后负责将寄存器405中的待发送报文按顺序发送出去。
223.下面介绍本技术实施例提供的另一种网络拥塞控制方法,该方法可以但不限于应用于图1所示的系统架构。参见图5,本技术实施例提供的网络拥塞控制方法可以包括但不限于如下步骤:
224.步骤501、源设备向转发设备发送多个报文。
225.步骤502、转发设备接收该多个报文,并检测是否出现预拥塞状态。
226.在具体实施例中,步骤501和步骤502的具体实现可以参见上述图3所述实施例中的步骤301和步骤302中相应的描述,此处不再赘述。
227.步骤503、在出现预拥塞状态时,转发设备对上述多个报文设置第一标识。
228.在转发设备出现预拥塞状态时,为了减少输入网络的报文量,转发设备会对出现预拥塞状态后接收到的该多个报文设置第一标识,该第一标识用于指示出现了上述预拥塞状态。具体的对于第一标识的描述可以参见上述图3所述实施例中的步骤304中相应的描述,此处不再赘述。
229.步骤504、转发设备向目的设备发送设置了第一标识的该多个报文。
230.转发设备为上述接收到的多个报文设置了第一标识之后,向对应的目的设备发送该携带第一标识的多个报文。
231.步骤505、目的设备接收该多个报文,并检测到该多个报文中包括第一标识。
232.目的设备接收到该多个报文后,首先可以解析该多个报文,检测该多个报文中是
否携带第一标识,例如,可以查看该多个报文中的ecn字段的值是否为11。由于转发设备出现了预拥塞,因此经该转发设备转发到该目的设备的多个报文中都携带了第一标识,例如该多个报文中的ecn字段的值均为11。
233.步骤506、目的设备识别出该多个报文中属于第一类流和第二类流的报文。
234.步骤507、目的设备根据该多个报文生成对应的确认报文,生成的响应于第一类流报文的确认报文中不包括第二标识,生成的响应于第二类流报文的确认报文中包括第二标识。
235.在具体实施例中,目的设备可以识别接收到的报文是第一类流还是第二类流的报文。该第一类流为从流的建立时刻到该流的报文的接收时刻之间的时长小于第二阈值的流,该第二类流为从流的建立时刻到该流的报文的接收时刻之间的时长大于该第二阈值的流,该流的报文由目的设备接收。该流的建立时刻为目的设备接收到建立该流的tcp同步syn报文的时刻或接收到建立该流的tcp确认ack报文的时刻。
236.同样的,目的设备可以根据建立流的syn报文或ack报文确定一个新流的开始,然后根据该syn报文或ack报文的五元组来识别一个流,并设置该五元组关联的计时器。可选的,该计时器可以是一个倒计时器,倒计时长为上述第二阈值,在该倒计时器归零之前,该目的设备接收到的该五元组的流为第一类流,否则为第二类流。
237.因此,目的设备检测到上述接收的多个报文中包括第一标识后,可以先识别出该多个报文中属于第一类流的报文和属于第二类流的报文,然后生成分别响应于该多个报文的多个确认报文。如果目的设备接收到的报文为属于第一类流的报文,则生成的响应于该报文的确认报文中不包括上述第二标识,即目的设备不对该确认报文设置第二标识。如果目的设备接收到的报文为属于第二类流的报文,则生成的响应于该报文的确认报文中包括上述第二标识,即目的设备对该确认报文设置第二标识。
238.可选的,考虑到尽快缓解拥塞或者避免出现拥塞的情况,目的设备可以对接收到的属于第一类流的报文中满足一定条件的报文的确认报文不设置第二标识,而其余报文的确认报文可以设置第二标识。
239.该条件可以包括如下条件中的一项或多项:
240.条件一、该报文的优先级高于预设优先级;
241.条件二、该报文所属流属于目的设备接收到的前k个包括所述第一标识的流,其中k为正整数。
242.对于条件一,目的设备可以对接收到的属于第一类流的报文中优先级高于预设优先级的报文对应的确认报文不设置第二标识,而对接收到的第二类流以及属于第一类流中优先级低于预设优先级的报文对应的确认报文设置第二标识。关于优先级的具体描述可以参见上述图3所示实施例中对应的描述,此处不再赘述。
243.对于条件二,如果目的设备接收到的报文所属的流属于该目的设备接收到的前k个携带第一标识的第一类流,则可以对该报文的确认报文不设置第二标识,而对属于第二类流以及不属于该前k个携带第一标识的第一类流的报文的确认报文设置第二标识。
244.对于需要根据该两个条件确定是否设置第二标识的,可以综合该两个条件选择出不设置第二标识的第一类流,此处不再赘述。
245.步骤508、目的设备向源设备发送生成的确认报文。
246.目的设备生成确认报文后,将该包括第二标识的确认报文和不包括第二标识的确认报文向对应的源设备发送。上述图5所示实施例中,上述多个报文的传输路径包括能够基于上述预拥塞状态调整各自报文所属流的发送策略的设备。该基于上述预拥塞状态调整报文所属流的发送策略的设备的相关描述可以参见上述图3所述实施例中对应的描述,此处不再赘述。
247.在本技术实施例中,目的设备能够区分第一类流(新流)和第二类流(老流),并对响应于携带第一标识的第一类流的确认报文不设置第二标识,一方面,相比于上述图3对应的实施例可以减轻上述出现预拥塞的转发设备的处理负担,另一方面也可以有效快速传输新流的数据,快速达到新流对应的业务所需的带宽,从而减少用户从源设备获取新流所需的等待时间,提高用户体验。
248.下面介绍本技术实施例提供的另一种网络拥塞控制方法,该方法可以但不限于应用于图1所示的系统架构。该方法中,在转发设备出现预拥塞状态的情况下,转发设备可以对该接收到的多个报文都设置第一标识。然后向下一跳设备发送携带第一标识的报文。在具体实施例中,在该多个携带第一标识的报文到达目的设备之前,这些报文可能还需要由另外的转发设备进行转发,然后经过接入设备才可以到达目的设备。在本技术实施例中,可以称该另外的转发设备和接入设备为中间设备。
249.在本技术实施例中,可以通过中间设备来识别第一类流和第二类流的报文,然后删除第一类流的报文中携带的与预拥塞相关的标识,保留第二类流的报文中携带的与预拥塞相关的标识,然后对这些报文进行转发。该与预拥塞相关的标识可以为第一标识或者第二标识,具体的对于第一标识和第二标识的描述可以参见前述实施例的描述,此处不再赘述。下面分两种情况对本技术实施例提供的一种网络拥塞控制方法进行介绍:
250.情况一、与预拥塞相关的标识为上述第一标识。参见图6,本技术实施例提供的网络拥塞控制方法可以包括但不限于如下步骤:
251.步骤601、转发设备接收源设备发送的多个报文,并检测是否出现预拥塞状态。
252.步骤601的具体实现可以参见上述图3所述实施例中步骤301和步骤302的相应描述,此处不再赘述。
253.步骤602、在出现预拥塞状态时,转发设备对上述多个报文设置第一标识。
254.在转发设备出现预拥塞状态时,为了减少输入网络的报文量,转发设备会对出现预拥塞状态后接收到的该多个报文设置第一标识,该第一标识用于指示出现了上述预拥塞状态。
255.步骤603、转发设备向中间设备发送包括第一标识的多个报文。
256.转发设备为上述接收到的多个报文设置了第一标识之后,向中间设备发送该携带第一标识的多个报文。
257.在具体实施例中,该转发设备可以是该中间设备的上一跳设备,或者该转发设备可以是该中间设备的上h(h为大于或等于1的整数)跳设备,即该转发设备和该中间设备之间还包括其它转发设备。
258.步骤604、中间设备接收该多个报文,并检测到该多个报文中包括第一标识。
259.中间设备接收到该多个报文后,首先可以解析该多个报文,检测该多个报文中是否携带第一标识,例如,可以查看该多个报文中的ecn字段的值是否为11。由于转发设备出
现了预拥塞,因此经该转发设备转发到该中间设备的多个报文中都携带了第一标识,例如该多个报文中的ecn字段的值均为11。
260.步骤605、中间设备识别出该多个报文中属于第一类流和第二类流的报文。
261.步骤606、中间设备删除识别出的属于第一类流的报文中的第一标识,保留识别出的属于第二类流的报文中的第一标识。
262.步骤607、中间设备向目的设备发送删除了第一标识的报文和识别出的属于第二类流的报文。
263.在具体实施例中,中间设备可以识别接收到的报文是第一类流还是第二类流的报文。该第一类流为从流的建立时刻到该流的报文的接收时刻之间的时长小于第二阈值的流,该第二类流为从流的建立时刻到该流的报文的接收时刻之间的时长大于该第二阈值的流,该流的报文由中间设备接收。该流的建立时刻为中间设备接收到建立该流的tcp同步syn报文的时刻或接收到建立该流的tcp确认ack报文的时刻。具体的识别第一类流和第二类流的方式可以参见前述实施例中的描述,此处不再赘述。
264.中间设备接收到携带第一标识的报文后,可以先识别出分别属于第一类流和第二类流的报文,然后删除属于第一类流的报文中的第一标识,而对于属于第二类流的报文中的第一标识则可以保留。然后,向对应的目的设备发送删除了第一标识的报文和保留第一标识的报文。示例性的,删除报文中的第一标识例如可以是将报文中ecn字段的值11修改为其它值,例如修改为00、01或10等。或者,直接将该ecn字段的值11去除即可。
265.步骤608、目的设备接收该多个报文,并检测该多个报文中是否包括第一标识。
266.步骤609、目的设备根据该多个报文生成对应的确认报文,其中,该多个报文中包括第一标识的报文的确认报文携带第二标识,未包括第一标识的报文的确认报文不携带第二标识。
267.步骤610、目的设备向源设备发送生成的确认报文。
268.步骤608至步骤610的具体实现可以参见上述图3所述实施例中步骤306至步骤308中相应的描述,此处不再赘述。
269.同样的上述图6所示实施例中,上述多个报文的传输路径包括能够基于上述预拥塞状态调整各自报文所属流的发送策略的设备。该基于上述预拥塞状态调整报文所属流的发送策略的设备的相关描述可以参见上述图3所述实施例中对应的描述,此处不再赘述。
270.情况二、与预拥塞相关的标识为上述第二标识。参见图7,本技术实施例提供的网络拥塞控制方法可以包括但不限于如下步骤:
271.步骤701、目的设备接收包括第一标识的多个报文,并生成响应于该多个报文的多个确认报文,该多个确认报文中包括第二标识。
272.在具体实施例中,上述多个报文从源设备发送后,经过转发设备转发,在该多个报文到达转发设备时,转发设备出现了预拥塞状态,则为了缓解网络的拥塞,转发设备对该多个报文设置了第一标识。对于源设备向转发设备发送该多个报文、转发设备接收该多个报文,并检测是否出现预拥塞状态以及转发设备对该多个报文设置第一标识的具体实现,可以参见前述实施例中对应的描述,此处不再赘述。
273.然后,转发设备将设置了第一标识的多个报文向目的设备发送,目的设备接收到该多个报文后,首先解析该多个报文,获知该多个报文中携带第一标识。然后,基于该携带
第一标识的多个报文生成携带第二标识的多个确认报文。
274.步骤702、目的设备向中间设备发送包括第二标识的多个确认报文。
275.目的设备生成上述携带第二标识的多个确认报文后,向源设备发送。但是,在该携带第二标识的多个确认报文到达源设备之前,需要经过接入设备和转发设备的转发,可以称该接入设备和转发设备为中间设备。那么,目的设备首先需要向中间设备(例如与该目的设备通信的接入设备或者该多个确认报文的传输路径中的转发设备)发送该携带第二标识的多个确认报文。
276.步骤703、中间设备接收该多个确认报文,并检测到该多个确认报文中包括第二标识。
277.中间设备接收到该多个确认报文后,首先可以解析该多个确认报文,检测该多个确认报文中是否携带第二标识,例如,可以查看该多个确认报文中的ece字段的值是否为1,如果为1,则该多个确认报文中携带第二标识。
278.步骤704、中间设备识别出该多个确认报文中属于第一类流和第二类流的报文。
279.步骤705、中间设备删除识别出的属于第一类流的报文中的第二标识,保留识别出的属于第二类流的报文中的第二标识。
280.在确定上述多个确认报文中包括第二标识后,中间设备可以识别出该多个确认报文中属于第一类流和第二类流的报文。该第一类流为从流的建立时刻到该流的报文的接收时刻之间的时长小于第二阈值的流,该第二类流为从流的建立时刻到该流的报文的接收时刻之间的时长大于该第二阈值的流,该流的报文由中间设备接收。该流的建立时刻为中间设备接收到建立该流的tcp同步syn报文的时刻或接收到建立该流的tcp确认ack报文的时刻。具体的识别第一类流和第二类流的方式可以参见前述实施例中的描述,此处不再赘述。
281.识别出第一类流的确认报文和第二类流的确认报文之后,中间设备可以删除识别出的属于第一类流的确认报文中的第二标识,而对于识别出的属于第二类流的报文中的第二标识则可以保留。示例性的,删除确认报文中的第二标识例如可以是将确认报文中ece字段的值1修改为其它值,例如修改为0等。或者,直接将该ece字段的值1去除即可。
282.步骤706、中间设备向源设备发送删除了第二标识的确认报文和保留第二标识的确认报文。
283.同样的上述图7所示实施例中,上述多个报文的传输路径包括能够基于上述预拥塞状态调整各自报文所属流的发送策略的设备。该基于上述预拥塞状态调整报文所属流的发送策略的设备的相关描述可以参见上述图3所述实施例中对应的描述,此处不再赘述。
284.需要说明的是,在图7所述实施例中,能够基于上述预拥塞状态调整各自报文所属流的发送策略的设备,是在中间设备删除识别出的属于第一类流的确认报文中的第二标识之后,再判断是否对相应的流的发送策略进行调整的。
285.在一种可能的实施方式中,对于上述图6和图7对应的实施例,考虑到尽快缓解拥塞或者避免出现拥塞的情况,中间设备可以对上述接收到的多个报文中满足一定条件的第一类流中的报文的第一标识或第二标识进行删除,而其余报文中的第一标识或第二标识保留。
286.该条件可以包括如下条件中的一项或多项:
287.条件一、报文的优先级高于预设优先级;
288.条件二、报文所属流属于中间设备接收到的前l个包括与预拥塞相关的标识的流,其中l为正整数。
289.对于条件一,中间设备可以对接收到的第一类流报文中优先级高于预设优先级的报文的第一标识或第二标识进行删除,而保留接收到的第二类流的报文和第一类流报文中优先级低于预设优先级的报文的第一标识或第二标识。关于优先级的具体描述可以参见上述图3所示实施例中对应的描述,此处不再赘述。
290.对于条件二,如果中间设备接收到的报文所属流为接收到的前l个包括第一标识或第二的第一类流,那么中间设备可以删除该报文中的第一标识或第二标识,而保留第二类流和不属于该前l个包括第一标识或第二的第一类流的报文中的第一标识或第二标识。
291.在本技术实施例中,通过中间设备来区分第一类流(新流)和第二类流(老流),并删除新流中的第一标识或第二标识,一方面,相比于上述图3对应的实施例可以减轻上述出现预拥塞的转发设备的处理负担,另一方面也可以有效快速传输新流的数据,快速达到新流对应的业务所需的带宽,从而减少用户从源设备获取新流所需的等待时间,提高用户体验。
292.本技术实施例提供的另一种网络拥塞控制方法中,在网络出现预拥塞状态时,例如报文的传输路径包括的转发设备出现预拥塞状态时,可以通过调整设备来识别接收到的报文是属于第一类流的报文还是属于第二类流的报文,然后,仅对第二类流的报文所属流调整该流的发送策略,对于第一类流的报文不调整该流的发送策略。
293.该调整设备可以是上述图3所述实施例中所述的上述多个报文的传输路径包括的能够基于上述预拥塞状态调整各自报文所属流的发送策略的设备。这些设备例如包括流(或报文)的源设备、与流(或报文)的目的设备通信的接入设备或者流(或报文)的传输路径中包括的转发设备等。
294.在具体实施例中,转发设备接收到多个报文,在转发设备出现预拥塞状态的情况下,转发设备可以对该接收到的多个报文都设置第一标识。携带第一标识的该多个报文可以顺利到达目的设备,目的设备响应于该多个携带第一标识的报文生成携带第二标识的多个确认报文。
295.携带第二标识的确认报文可以顺利到达调整设备。调整设备可以根据这些确认报文识别出对应的上述多个报文所属流为第一类流还是第二类流。例如,可以根据确认报文的五元组或者确认报文中的序列号关联到对应的该多个报文中的某一报文,然后识别该某一个报文所属流为第一类流还是第二类流。例如,可以查看该某一个报文所属流关联的计时器是否归零,若未归零,则属于第一类流,若归零则属于第二类流。对于流关联的计时器的相关描述,可以参见上述图3所述实施例中步骤303中对应的描述,此处不再赘述。
296.识别出上述多个报文所属流中的第一类流和第二类流后,该调整设备可以不调整识别出的第一类流的发送策略,而根据第二标识调整识别出的第二类流的发送策略。具体的发送策略的调整方法可以采用现有技术中的发送策略调整方法,本方案对此不做限制。
297.例如,对于第一报文,调整设备按照一定的发送策略发送该第一报文,如果该第一报文的传输过程中经历了拥塞,那么到达目的设备时该第一报文携带有第一标识。然后目的设备生成响应于该第一报文的第一确认报文,该第一确认报文中包括第二标识,并将该携带第二标识的第一确认报文发送到调整设备。如果调整设备根据该第一确认报文识别出
该第一报文所属流为第一类流,那么该调整设备不会调整上述第一报文所属流的发送策略,继续按照该第一报文所属流原来的发送策略继续发送该流的报文。
298.如果调整设备根据该第一确认报文识别出该第一报文所属流为第二类流,那么该调整设备对上述第一报文所属流的发送策略进行调整,然后按照调整后的发送策略发送该流的报文。
299.可选的,在上述调整设备继续按照第一报文所属流原来的发送策略继续发送该流的报文之后,如果调整设备接收到响应于该流的第二报文的第二确认报文,该第二确认报文携带第二标识,在调整设备根据该第二确认报文识别出该第二报文所属流为第二类流的情况下,该调整设备会根据该第二标识调整该第二报文所属流的发送策略,然后按照调整之后的发送策略来发送该流。
300.可选的,考虑到尽快缓解拥塞或者避免出现拥塞的情况,调整设备可以对上述接收到的确认报文中满足一定条件的第一类流所对应的由源设备发送的流的发送策略不进行调整,而对其余的由源设备发送的流的发送策略进行调整。
301.该条件可以包括如下条件中的一项或多项:
302.条件一、确认报文的优先级高于预设优先级;
303.条件二、确认报文所属流属于调整设备接收到的前q个包括所述第二标识的流,其中q为正整数。
304.对于条件一,以上述第一报文所属流属于第一类流为例说明,如果调整设备接收到的该第一确认报文的优先级高于预设优先级,则调整设备可以不调整该第一报文所属流的发送策略。而如果该第一确认报文的优先级低于预设优先级或者该第一确认报文属于第二类流的报文,则调整设备会根据该第一确认报文中携带的第二标识调整第一报文所属流的发送策略。关于优先级的具体描述可以参见上述图3所示实施例中对应的描述,此处不再赘述。
305.对于条件二,还是以上述第一报文所属流属于第一类流的报文为例说明,如果该第一确认报文所属的流为调整设备接收到的前q个包括上述第二标识的流,那么调整设备可以不调整该第一报文所属流的发送策略。但是,如果该第一确认报文属于第二类流的报文,或者即使该第一确认报文属于第一类流的报文,但该第一确认报文所属的流不属于调整设备接收到的前q个包括上述第二标识的流,那么调整设备会根据该第一确认报文中携带的第二标识调整第一报文所属流的发送策略。
306.在本技术实施例中,通过调整设备来区分第一类流和第二类流,且不调整第一类流的发送策略也可以有效快速传输第一类流的数据,快速达到新流对应的业务所需的带宽,从而减少用户从源设备获取新流所需的等待时间,提高用户体验。
307.上述主要对本技术实施例提供的拥塞控制方法进行了介绍。可以理解的是,各个设备为了实现上述对应的功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本技术能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
308.本技术实施例可以根据上述方法示例对转发设备、目的设备、中间设备以及调整设备等进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本技术实施例对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
309.在采用对应各个功能划分各个功能模块的情况下,图8示出了设备的一种可能的逻辑结构示意图,该设备可以是上述实施例中的转发设备。该转发设备800包括识别单元801和发送单元802。其中,识别单元801,用于该转发设备800处于预拥塞状态后,识别出接收到的第一报文属于第一类流的报文,该预拥塞状态为转发设备800缓存的报文量大于第一阈值的状态,该第一类流为从流的建立时刻到该流的报文的接收时刻之间的时长小于第二阈值的流;发送单元802,用于发送该第一报文,发送的该第一报文中不包括第一标识,该第一标识用于指示出现了该预拥塞状态。
310.在一种可能的实施方式中,识别单元801,还用于识别出接收到的第二报文属于第二类流的报文,其中,该第二类流为从流的建立时刻到该流的报文的接收时刻之间的时长大于第二阈值的流;转发设备800还包括获取单元,用于根据该第二报文获得第三报文,其中,该第三报文中包括该第一标识;发送单元802,还用于发送该第三报文。
311.图8所示转发设备800中各个单元的具体实现以及有益效果可以参见前述方法实施例中的描述,此处不再赘述。
312.在采用对应各个功能划分各个功能模块的情况下,图9示出了设备的一种可能的逻辑结构示意图,该设备可以是上述实施例中的目的设备。该目的设备900包括接收单元901和识别单元902和发送单元903。其中,接收单元901,用于接收第一报文,该第一报文包括第一标识,该第一标识用于指示出现了预拥塞状态,该预拥塞状态为用于转发该第一报文的转发设备缓存的报文量大于第一阈值的状态;识别单元902,用于识别出该第一报文属于第一类流的报文,该第一类流为从流的建立时刻到该流的报文的接收时刻之间的时长小于第二阈值的流;发送单元903,用于发送用于响应该第一报文的第一确认报文,该第一确认报文中不包括第二标识,该第二标识用于通知出现了该预拥塞状态。
313.在一种可能的实施方式中,目的设备900还包括接收单元,用于接收第二报文,该第二报文包括该第一标识;识别单元902,还用于识别出该第二报文属于第二类流的报文,其中,该第二类流为从流的建立时刻到该流的报文的接收时刻之间的时长大于第二阈值的流;发送单元903,还用于发送用于响应该第二报文的第二确认报文,该第二确认报文包括该第二标识。
314.图9所示目的设备900中各个单元的具体实现以及有益效果可以参见前述方法实施例中的描述,此处不再赘述。
315.在采用对应各个功能划分各个功能模块的情况下,图10示出了设备的一种可能的逻辑结构示意图,该设备可以是上述实施例中的中间设备。该中间设备1000包括接收单元1001和识别单元1002、获得单元1003和发送单元1004。其中,接收单元1001,用于接收第一报文,所述第一报文包括标识,所述标识为与预拥塞状态相关的标识,所述预拥塞状态为用于转发所述第一报文的转发设备缓存的报文量大于第一阈值的状态;识别单元1002,用于识别出所述第一报文属于第一类流的报文,所述第一类流为从流的建立时刻到所述流的报
文的接收时刻之间的时长小于第二阈值的流;获得单元1003,用于根据所述第一报文获得第二报文,所述第二报文为所述第一报文删除了所述标识后获得的报文;发送单元1004,用于发送所述第二报文。
316.在一种可能的实施方式中,接收单元1001,还用于接收第三报文,所述第三报文包括所述标识;识别单元1002,还用于识别出所述第三报文属于第二类流的报文,其中,所述第二类流为从流的建立时刻到所述流的报文的接收时刻之间的时长大于第二阈值的流;发送单元1004,还用于发送所述第三报文。
317.图10所示中间设备1000中各个单元的具体实现以及有益效果可以参见前述方法实施例中的描述,此处不再赘述。
318.在采用对应各个功能划分各个功能模块的情况下,图11示出了设备的一种可能的逻辑结构示意图,该设备可以是上述实施例中的调整设备。该调整设备1100包括发送单元1101、接收单元1102和识别单元1103。其中,发送单元1101,用于按照发送策略发送第一报文;接收单元1102,用于接收响应于所述第一报文的第一确认报文,所述第一确认报文包括第二标识,所述第二标识用于通知出现了预拥塞状态,所述预拥塞状态为用于转发所述第一报文所属流的转发设备缓存的报文量大于第二阈值的状态;识别单元1103,用于识别出所述第一确认报文属于第一类流的报文,所述第一类流为从流的建立时刻到所述流的报文的接收时刻之间的时长小于第二阈值的流;发送单元1101,还用于按照所述发送策略继续发送所述第一报文所属流的报文。
319.在一种可能的实施方式中,接收单元1102,还用于在发送单元1101按照所述发送策略继续发送所述第一报文所属流的报文之后,接收响应于第二报文的第二确认报文,所述第二确认报文包括所述第二标识,所述第二报文所属流与所述第一报文所属流相同,所述第二确认报文所属流与所述第一确认报文所属流相同;识别单元1103,还用于识别出所述第二确认报文属于第二类流的报文,所述第二类流为从流的建立时刻到所述流的报文的接收时刻之间的时长大于第二阈值的流;调整设备1100还包括调整单元,用于根据所述第二确认报文的第二标识调整所述第二报文所属流的发送策略;发送单元1101,还用于按照所述调整后的发送策略继续发送所述第二报文所属流的报文。
320.图11所示调整设备1100中各个单元的具体实现以及有益效果可以参见前述方法实施例中的描述,此处不再赘述。
321.图12所示为本技术提供的设备的一种可能的硬件结构示意图,该设备可以是上述方法实施例中所述的转发设备。该转发设备1200包括:处理器1201、存储器1202和通信接口1203。处理器1201、通信接口1203以及存储器1202可以相互连接或者通过总线1204相互连接。
322.示例性的,存储器1202用于存储转发设备1200的计算机程序和数据,存储器1202可以包括但不限于是随机存储记忆体(random access memory,ram)、只读存储器(read-only memory,rom)、可擦除可编程只读存储器(erasable programmable read only memory,eprom)或便携式只读存储器(compact disc read-only memory,cd-rom)等。通信接口1203用于支持转发设备1200进行通信,例如接收或发送数据。
323.示例性的,处理器1201可以是中央处理器单元、通用处理器、数字信号处理器、专用集成电路、现场可编程门阵列或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者
其任意组合。处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,数字信号处理器和微处理器的组合等等。处理器1201可以用于读取上述存储器1202中存储的程序,执行前述实施例所述的方法中转发设备所做的操作。
324.图13所示为本技术提供的设备的一种可能的硬件结构示意图,该设备可以是上述方法实施例中所述的目的设备。该目的设备1300包括:处理器1301、存储器1302和通信接口1303。处理器1301、通信接口1303以及存储器1302可以相互连接或者通过总线1304相互连接。
325.示例性的,存储器1302用于存储目的设备1300的计算机程序和数据,存储器1302可以包括但不限于是随机存储记忆体(random access memory,ram)、只读存储器(read-only memory,rom)、可擦除可编程只读存储器(erasable programmable read only memory,eprom)或便携式只读存储器(compact disc read-only memory,cd-rom)等。通信接口1303用于支持目的设备1300进行通信,例如接收或发送数据。
326.示例性的,处理器1301可以是中央处理器单元、通用处理器、数字信号处理器、专用集成电路、现场可编程门阵列或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,数字信号处理器和微处理器的组合等等。处理器1301可以用于读取上述存储器1302中存储的程序,执行前述实施例所述的方法中目的设备所做的操作。
327.图14所示为本技术提供的设备的一种可能的硬件结构示意图,该设备可以是上述方法实施例中所述的中间设备。该中间设备1400包括:处理器1401、存储器1402和通信接口1403。处理器1401、通信接口1403以及存储器1402可以相互连接或者通过总线1404相互连接。
328.示例性的,存储器1402用于存储中间设备1400的计算机程序和数据,存储器1402可以包括但不限于是随机存储记忆体(random access memory,ram)、只读存储器(read-only memory,rom)、可擦除可编程只读存储器(erasable programmable read only memory,eprom)或便携式只读存储器(compact disc read-only memory,cd-rom)等。通信接口1403用于支持中间设备1400进行通信,例如接收或发送数据。
329.示例性的,处理器1401可以是中央处理器单元、通用处理器、数字信号处理器、专用集成电路、现场可编程门阵列或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,数字信号处理器和微处理器的组合等等。处理器1401可以用于读取上述存储器1402中存储的程序,执行前述实施例所述的方法中中间设备所做的操作。
330.图15所示为本技术提供的设备的一种可能的硬件结构示意图,该设备可以是上述方法实施例中所述的调整设备。该调整设备1500包括:处理器1501、存储器1502和通信接口1503。处理器1501、通信接口1503以及存储器1502可以相互连接或者通过总线1504相互连接。存储器1502用于存储调整设备1500的计算机程序和数据,存储器1502可以包括但不限于是随机存储记忆体(random access memory,ram)、只读存储器(read-only memory,rom)、可擦除可编程只读存储器(erasable programmable read only memory,eprom)或便携式只读存储器(compact disc read-only memory,cd-rom)等。通信接口1503用于支持调整设备1500进行通信,例如接收或发送数据。处理器1501可以是中央处理器单元、通用处理
器、数字信号处理器、专用集成电路、现场可编程门阵列或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,数字信号处理器和微处理器的组合等等。处理器1501可以用于读取上述存储器1502中存储的程序,执行前述实施例所述的方法中调整设备所做的操作。
331.本技术实施例还公开了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行以实现上述图3、图5、图6或图7所述的方法或者可能的实施方式所述的方法。
332.本技术实施例还公开了一种计算机程序产品,当所述计算机程序产品被计算机读取并执行时,上述图3、图5、图6或图7所述的方法或者可能的实施方式所述的方法将被执行。
333.本技术实施例还公开了一种计算机程序,当所述计算机程序在计算机上执行时,将会使所述计算机实现上述图3、图5、图6或图7所述的方法或者可能的实施方式所述的方法。
334.最后应说明的是:以上各实施例仅用以说明本技术的技术方案,而非对其限制;尽管参照前述各实施例对本技术进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本技术各实施例技术方案的范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1