CN114095431A - 队列管理的方法和网络设备 - Google Patents

队列管理的方法和网络设备 Download PDF

Info

Publication number
CN114095431A
CN114095431A CN202010742065.9A CN202010742065A CN114095431A CN 114095431 A CN114095431 A CN 114095431A CN 202010742065 A CN202010742065 A CN 202010742065A CN 114095431 A CN114095431 A CN 114095431A
Authority
CN
China
Prior art keywords
queue
empty
network device
time
target
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202010742065.9A
Other languages
English (en)
Inventor
叶建成
林栋�
何健飞
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN202010742065.9A priority Critical patent/CN114095431A/zh
Publication of CN114095431A publication Critical patent/CN114095431A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9063Intermediate storage in different physical parts of a node or terminal

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请提供了一种队列管理的方法,包括:第一网络设备接收第二网络设备发送的N个数据流,该N个数据流共用同一条链路,N为大于等于2的正整数;该第一网络设备确定与该N个数据流对应的该第一网络设备的队列组,该队列组包括M个第一队列,并将每个数据流加入与该每个数据流对应的该M个第一队列中的一个第一队列,M为正整数,且1≤M≤N;该第一网络设备确定该M个第一队列中每个非空第一队列对应的队列管理策略;该第一网络设备根据该M个第一队列中每个非空第一队列对应的队列管理策略,管理该M个第一队列中的每个非空第一队列。本申请通过对第一网络设备获取的每个数据流所在的队列进行独立队列管理,能提高网络拥塞控制质量和链路带宽利用率。

Description

队列管理的方法和网络设备
技术领域
本申请涉及网络通信领域,并且更具体地,涉及队列管理的方法和网络设备。
背景技术
源发送端运行的传输控制协议(transmission control protocol,TCP)算法与路由器端运行的主动队列管理(active queue management,AQM)算法协同工作,可以实现对网络的拥塞控制。
现有技术中的AQM算法,通常会假设与某个已知版本的TCP算法(例如Reno)协同工作,去处理网络的拥塞。当源发送端存在多个版本的TCP算法时(例如Reno,CUBIC,FAST等),AQM算法处理网络拥塞的粒度较粗,从而导致对网络拥塞控制的效果较差、链路带宽利用率低。
发明内容
本申请提供了一种队列管理的方法和网络设备,以提高网络拥塞控制的质量和链路带宽的利用率。
第一方面,提供了一种队列管理的方法,该方法包括:
第一网络设备接收第二网络设备发送的N个数据流,该N个数据流共用同一条链路,N为大于等于2的正整数;
该第一网络设备确定与该N个数据流对应的该第一网络设备的队列组,该队列组包括M个第一队列,并将每个数据流加入与该每个数据流对应的该M个第一队列中的一个第一队列,M为正整数,且1≤M≤N;
该第一网络设备确定该M个第一队列中每个非空第一队列对应的队列管理策略;
该第一网络设备根据该M个第一队列中每个非空第一队列对应的队列管理策略,管理该每个非空第一队列。
其中,第一网络设备或第二网络设备可以是路由器,或者,第一网络设备或第二网络设备也可以是交换机。
在上述技术方案中,第一网络设备通过对获取的多个数据流中的每个数据流进行独立的队列管理,保证了数据流之间公平性的拥塞控制以及实现了更细粒度的队列管理,从而可以提高网络拥塞控制的质量和链路带宽的利用率。
结合第一方面,在第一方面的某些实现方式中,该队列组还包括至少一个第二队列,该第一网络设备确定与该N个数据流对应的队列组之前,该方法还包括:
该第一网络设备确定该N个数据流包括M个第一数据流和L个第二数据流,L为整数,0≤L<N,且M+L≤N,每个第一数据流携带的数据量大于等于第一阈值,每个第二数据流携带的数据量小于该第一阈值;或者,每个第一数据流携带的数据包的数目大于等于第二阈值,每个第二数据流携带的数据包的数目小于该第二阈值;
该第一网络设备确定与该N个数据流对应的该第一网络设备的队列组,该队列组包括M个第一队列,并将每个数据流加入与该每个数据流对应的该队列组中的一个第一队列,包括:
该第一网络设备确定该M个第一队列与该M个第一数据流一一对应,并将该每个第一数据流加入与该每个第一数据流对应的第一队列;
该第一网络设备确定该至少一个第二队列与该L个第二数据流对应,并将该L个第二数据流加入该至少一个第二队列。
举例来说,根据数据流携带的数据量的不同,在一些实施例中,第一数据流可以为大象流,第二数据流可以为老鼠流。
在上述技术方案中,第一网络设备仅对获取的比较重要的数据流(例如,大象流)中的每个数据流进行独立的队列管理,在保证有效地对网络拥塞控制进行控制以及提高链路带宽利用率的情况下,可以进一步提高队列管理的效率。
结合第一方面,在第一方面的某些实现方式中,该第一网络设备确定该M个第一队列中每个非空第一队列对应的队列管理策略之前,该方法还包括:
在第一时刻,该第一网络设备根据该第一时刻对应的网络状态,确定该第i个非空第一队列的第一目标输出速度、该第i个非空第一队列的第一目标队列长度以及该第i个非空第一队列的第一丢包率;
在第二时刻,该第一网络设备根据该第二时刻对应的网络状态,确定该第i个非空第一队列的第二目标输出速度;
其中,该第二时刻大于该第一时刻,该第一丢包率为根据该第一目标队列长度和在该第一时刻获取的该第i个非空第一队列的实际队列长度确定的,i为正整数,且1≤i≤M。
结合第一方面,在第一方面的某些实现方式中,该第一网络设备确定该M个第一队列中每个非空第一队列对应的队列管理策略,包括:
在该第二时刻,若该第二目标输出速度与该第一目标输出速度的差等于零,则该第一网络设备确定该第i个非空第一队列的丢包率为该第一丢包率;
在该第二时刻,若该第二目标输出速度与该第一目标输出速度的差不等于零,则该第一网络设备确定第二目标队列长度,以及根据该第二目标队列长度和在该第二时刻获取的该第i个非空第一队列的实际队列长度,确定该第i个非空第一队列的第二丢包率,该第二目标队列长度为该第一网络设备根据该第二时刻对应的网络状态确定的该第i个非空第一队列的目标队列长度。
结合第一方面,在第一方面的某些实现方式中,该第一网络设备根据该M个第一队列中每个非空第一队列对应的队列管理策略,管理该M个第一队列中每个非空第一队列,包括:
在该第二目标输出速度与该第一目标输出速度的差等于零的情况下,该第一网络设备以该第一丢包率处理该第i个非空第一队列。
在该第二目标输出速度与该第一目标输出速度的差不等于零的情况下,该第一网络设备将该第一目标队列长度调整为该第二目标队列长度,并以该第二丢包率处理该第i个非空第一队列。
在上述技术方案中,当网络状态发生变化时,第一网络设备可以通过调整目标队列长度和丢包率来自适应网络状态的变化。
结合第一方面,在第一方面的某些实现方式中,该第一网络设备根据下列公式确定在当前时刻该第i个非空第一队列的丢包率,该当前时刻为该第一时刻或者为该第二时刻:
Figure BDA0002607086840000031
其中,在该当前时刻为该第一时刻的情况下,pi(t)为该第一丢包率,qi(t)为在该第一时刻获取的该第i个非空第一队列的实际队列长度,βi为该第一目标队列长度,σi为控制参数,该控制参数大于等于在该第一时刻获取的该第i个非空第一队列对应的数据流的目标输出速度的平方,[]+为非负操作符号,当括号内的数值小于零,[]+结果为零,当括号内的数值大于等于零,[]+结果等于括号内计算的数值;
其中,在该当前时刻为该第二时刻的情况下,pi(t)为该第二丢包率,qi(t)为在该第二时刻获取的该第i个非空第一队列的实际队列长度,βi为该第二目标队列长度,σi为控制参数,该控制参数大于等于在该第二时刻获取的该第i个非空第一队列对应的数据流的目标输出速度的平方,[]+为非负操作符号,当括号内的数值小于零,[]+结果为零,当括号内的数值大于等于零,[]+结果等于括号内计算的数值。
结合第一方面,在第一方面的某些实现方式中,该第一网络设备根据下列公式确定在当前时刻对应的网络状态下该第i个非空第一队列的目标队列长度,该当前时刻为该第一时刻或者为该第二时刻:
βi=Ci×di
其中,在该当前时刻为该第一时刻的情况下,βi为该第一目标队列长度,Ci为在该第一时刻该第i个非空第一队列对应的数据流的目标输出速度,该在该第一时刻该第i个非空第一队列对应的数据流的目标输出速度为根据该第一时刻对应的网络状态确定的,di为该第i个非空第一队列的目标排队时间。
其中,在该当前时刻为该第二时刻的情况下,βi为该第二目标队列长度,Ci为在该第二时刻该第i个非空第一队列对应的数据流的目标输出速度,该在该第二时刻该第i个非空第一队列对应的数据流的目标输出速度为根据该第二时刻对应的网络状态确定的,di为该第i个非空第一队列的目标排队时间。
结合第一方面,在第一方面的某些实现方式中,该第一网络设备以该第一丢包率处理该第i个非空第一队列之后,该方法还包括:
在第三时刻,若实际输入速度大于等于目标输入速度,则该第一网络设备确定该第i个非空第一队列的第三丢包率并根据该第三丢包率处理该第i个非空第一队列,以及向该第二网络设备发送第一信息,该第一指示信息用于指示该第二网络设备降低该实际输入速度;
在该第三时刻,若该实际输入速度小于该目标输入速度,则该第一网络设备向该第二网络设备发送第二信息,该第二指示信息用于指示该第二网络设备增加该实际输入速度;
其中,在该第三时刻该第i个非空第一队列的目标输出速度与该第二目标输出速度相同,该实际输入速度为在该第三时刻获取的该第i个非空第一队列对应的数据流输入至该第一网络设备的速度,该目标输入速度为在该第三时刻预定义的该第i个非空第一队列对应的数据流输入至该第一网络设备的速度。
结合第一方面,在第一方面的某些实现方式中,该第一网络设备根据下列公式确定该第三丢包率:
Figure BDA0002607086840000041
其中,δi(xi)为该第三丢包率,xi为该实际输入速度,
Figure BDA0002607086840000042
为该目标输入速度,[]+为非负操作符号,当括号内的数值小于零,[]+结果为零,当括号内的数值大于等于零,[]+结果等于括号内计算的数值。
结合第一方面,在第一方面的某些实现方式中,该第一信息包括第一指示信息和第一值,该第二信息包括第二指示信息和该第一值,该第一指示信息或该第二指示信息通过显示拥塞通告ECN携带,该第一值为该目标输入速度,该第一值通过差分服务代码点DSCP域携带。
在上述技术方案中,发送端(即第二网络设备)可以根据获取的指示信息确定以多大速度向第二网络设备发送数据流,从而可以在一定程度减轻或避免数据流在第一网络设备中的拥塞情况。
结合第一方面,在第一方面的某些实现方式中,该第一网络设备根据当前时刻对应的网络状态,确定在该当前时刻该第i个非空第一队列对应的数据流的目标输出速度,包括,该第一网络设备根据以下任意一种方法确定在该当前时刻该第i个非空第一队列对应的数据流的目标输出速度:
该第一网络设备根据在该当前时刻分配给该N个数据流的链路总带宽以及在该当前时刻该队列组包括的非空队列的数目,确定在该当前时刻该第i个非空第一队列对应的数据流的目标输出速度;或者
该第一网络设备根据在该当前时刻该队列组包括的每个非空队列对应的数据流的实际输入速度所占的比例,确定在该当前时刻该第i个非空第一队列对应的数据流的目标输出速度;或者
该第一网络设备根据在该当前时刻分配给该N个数据流的链路总带宽以及在该当前时刻该队列组包括的每个非空队列对应的数据流的权重,确定在该当前时刻该第i个非空第一队列对应的数据流的目标输出速度;
其中,该当前时刻为该第一时刻或者为该第二时刻。
第二方面,提供了一种第一网络设备,该第一网络设备包括:
收发单元,用于接收第二网络设备发送的N个数据流,该N个数据流共用同一条链路,N为大于等于2的正整数;
处理单元,用于确定与该N个数据流对应的该第一网络设备的队列组,该队列组包括M个第一队列,并将每个数据流加入与该每个数据流对应的该M个第一队列中的一个第一队列,M为正整数,且1≤M≤N;
该处理单元,还用于确定该M个第一队列中每个非空第一队列对应的队列管理策略;
该处理单元,还用于根据该M个第一队列中每个非空第一队列对应的队列管理策略,管理该每个非空第一队列。
在上述技术方案中,第一网络设备通过对获取的多个数据流中的每个数据流进行独立的队列管理,保证了数据流之间公平性的拥塞控制以及实现了更细粒度的队列管理,从而可以提高网络拥塞控制的质量和链路带宽的利用率。
结合第二方面,在第二方面的某些实现方式中,该队列组还包括至少一个第二队列,该处理单元还用于:
确定该N个数据流包括M个第一数据流和L个第二数据流,L为整数,0≤L<N,且M+L≤N,每个第一数据流携带的数据量大于等于第一阈值,每个第二数据流携带的数据量小于该第一阈值;或者,每个第一数据流携带的数据包的数目大于等于第二阈值,每个第二数据流携带的数据包的数目小于该第二阈值;
确定该M个第一队列与该M个第一数据流一一对应,并将该每个第一数据流加入与该每个第一数据流对应的第一队列;
确定该至少一个第二队列与该L个第二数据流对应,并将该L个第二数据流加入该至少一个第二队列。
举例来说,根据数据流携带的数据量的不同,在一些实施例中,第一数据流可以为大象流,第二数据流可以为老鼠流。
在上述技术方案中,第一网络设备仅对获取的比较重要的数据流(例如,大象流)中的每个数据流进行独立的队列管理,在保证有效地对网络拥塞控制进行控制以及提高链路带宽利用率的情况下,可以进一步提高队列管理的效率。
结合第二方面,在第二方面的某些实现方式中,该处理单元还用于:
在第一时刻,根据该第一时刻对应的网络状态,确定该第i个非空第一队列的第一目标输出速度、该第i个非空第一队列的第一目标队列长度以及该第i个非空第一队列的第一丢包率;
在第二时刻,根据该第二时刻对应的网络状态,确定第二目标输出速度;
其中,该第二时刻大于该第一时刻,该第一丢包率为根据该第一目标队列长度和在该第一时刻获取的该第i个非空第一队列的实际队列长度确定的,i为正整数,且1≤i≤M。
结合第二方面,在第二方面的某些实现方式中,该处理单元还用于:
在该第二时刻,若该第二目标输出速度与该第一目标输出速度的差等于零,则确定该第i个非空第一队列的丢包率为该第一丢包率;
在该第二时刻,若该第二目标输出速度与该第一目标输出速度的差不等于零,则确定第二目标队列长度,以及根据该第二目标队列长度和在该第二时刻获取的该第i个非空第一队列的实际队列长度,确定该第i个非空第一队列的第二丢包率,该第二目标队列长度为该第一网络设备根据该第二时刻对应的网络状态确定的该第i个非空第一队列的目标队列长度。
结合第二方面,在第二方面的某些实现方式中,该处理单元还用于:
在该第二目标输出速度与该第一目标输出速度的差等于零的情况下,以该第一丢包率处理该第i个非空第一队列。
在该第二目标输出速度与该第一目标输出速度的差不等于零的情况下,将该第一目标队列长度调整为该第二目标队列长度,并以该第二丢包率处理该第i个非空第一队列。
在上述技术方案中,当网络状态发生变化时,第一网络设备可以通过调整目标队列长度和丢包率来自适应网络状态的变化。
结合第二方面,在第二方面的某些实现方式中,该处理单元还用于:根据下列公式确定在当前时刻该第i个非空第一队列的丢包率,该当前时刻为该第一时刻或者为该第二时刻:
Figure BDA0002607086840000061
其中,在该当前时刻为该第一时刻的情况下,pi(t)为该第一丢包率,qi(t)为在该第一时刻获取的该第i个非空第一队列的实际队列长度,βi为该第一目标队列长度,σi为控制参数,该控制参数大于等于在该第一时刻获取的该第i个非空第一队列对应的数据流的目标输出速度的平方,[]+为非负操作符号,当括号内的数值小于零,[]+结果为零,当括号内的数值大于等于零,[]+结果等于括号内计算的数值;
其中,在该当前时刻为该第二时刻的情况下,pi(t)为该第二丢包率,qi(t)为在该第二时刻获取的该第i个非空第一队列的实际队列长度,βi为该第二目标队列长度,σi为控制参数,该控制参数大于等于在该第二时刻获取的该第i个非空第一队列对应的数据流的目标输出速度的平方,[]+为非负操作符号,当括号内的数值小于零,[]+结果为零,当括号内的数值大于等于零,[]+结果等于括号内计算的数值。
结合第二方面,在第二方面的某些实现方式中,该处理单元还用于:根据下列公式确定在当前时刻对应的网络状态下该第i个非空第一队列的目标队列长度,该当前时刻为该第一时刻或者为该第二时刻:
βi=Ci×di
其中,在该当前时刻为该第一时刻的情况下,βi为该第一目标队列长度,Ci为在该第一时刻该第i个非空第一队列对应的数据流的目标输出速度,该在该第一时刻该第i个非空第一队列对应的数据流的目标输出速度为根据该第一时刻对应的网络状态确定的,di为该第i个非空第一队列的目标排队时间。
其中,在该当前时刻为该第二时刻的情况下,βi为该第二目标队列长度,Ci为在该第二时刻该第i个非空第一队列对应的数据流的目标输出速度,该在该第二时刻该第i个非空第一队列对应的数据流的目标输出速度为根据该第二时刻对应的网络状态确定的,di为该第i个非空第一队列的目标排队时间。
结合第二方面,在第二方面的某些实现方式中,该处理单元还用于:
在第三时刻,若实际输入速度大于等于目标输入速度,则该第一网络设备确定该第i个非空第一队列的第三丢包率并根据该第三丢包率处理该第i个非空第一队列,以及向该第二网络设备发送第一信息,该第一指示信息用于指示该第二网络设备降低该实际输入速度;
在该第三时刻,若该实际输入速度小于该目标输入速度,则该第一网络设备向该第二网络设备发送第二信息,该第二指示信息用于指示该第二网络设备增加该实际输入速度;
其中,在该第三时刻该第i个非空第一队列的目标输出速度与该第二目标输出速度相同,该实际输入速度为在该第三时刻获取的该第i个非空第一队列对应的数据流输入至该第一网络设备的速度,该目标输入速度为在该第三时刻预定义的该第i个非空第一队列对应的数据流输入至该第一网络设备的速度。
结合第二方面,在第二方面的某些实现方式中,该处理单元还用于:根据下列公式确定该第三丢包率:
Figure BDA0002607086840000062
其中,δi(xi)为该第三丢包率,xi为该实际输入速度,
Figure BDA0002607086840000071
为该目标输入速度,[]+为非负操作符号,当括号内的数值小于零,[]+结果为零,当括号内的数值大于等于零,[]+结果等于括号内计算的数值。
结合第二方面,在第二方面的某些实现方式中,该第一信息包括第一指示信息和第一值,该第二信息包括第二指示信息和该第一值,该第一指示信息或该第二指示信息通过显示拥塞通告ECN携带,该第一值为该目标输入速度,该第一值通过差分服务代码点DSCP域携带。
在上述技术方案中,发送端(即第二网络设备)可以根据获取的指示信息确定以多大速度向第二网络设备发送数据流,从而可以在一定程度减轻或避免数据流在第一网络设备中的拥塞情况。
结合第二方面,在第二方面的某些实现方式中,该处理单元,还用于根据以下任意一种方法确定在该当前时刻该第i个非空第一队列对应的数据流的目标输出速度:
根据在该当前时刻分配给该N个数据流的链路总带宽以及在该当前时刻该队列组包括的非空队列的数目,确定在该当前时刻该第i个非空第一队列对应的数据流的目标输出速度;或者
根据在该当前时刻该队列组包括的每个非空队列对应的数据流的实际输入速度所占的比例,确定在该当前时刻该第i个非空第一队列对应的数据流的目标输出速度;或者
根据在该当前时刻分配给该N个数据流的链路总带宽以及在该当前时刻该队列组包括的每个非空队列对应的数据流的权重,确定在该当前时刻该第i个非空第一队列对应的数据流的目标输出速度;
其中,该当前时刻为该第一时刻或者为该第二时刻。
第三方面,提供了一种第一网络设备,该第一网络设备包括存储器和处理器,该存储器用于存储指令,该处理器用于读取该存储器中存储的指令,使得该装置执行上述第一方面及第一方面的任意可能的实现方式中的方法。
第四方面,提供了一种处理器,包括:输入电路、输出电路和处理电路。所述处理电路用于通过所述输入电路接收信号,并通过所述输出电路发射信号,使得所述第一方面中的任一方面,以及第一方面中任一种可能实现方式中的方法被实现。
在具体实现过程中,上述处理器可以为芯片,输入电路可以为输入管脚,输出电路可以为输出管脚,处理电路可以为晶体管、门电路、触发器和各种逻辑电路等。输入电路所接收的输入的信号可以是由例如但不限于接收器接收并输入的,输出电路所输出的信号可以是例如但不限于输出给发射器并由发射器发射的,且输入电路和输出电路可以是同一电路,该电路在不同的时刻分别用作输入电路和输出电路。本申请实施例对处理器及各种电路的具体实现方式不做限定。
第五方面,提供了一种处理装置,包括处理器和存储器。该处理器用于读取存储器中存储的指令,并可通过接收器接收信号,通过发射器发射信号,以执行第一方面以及第一方面任一种可能实现方式中的方法。
可选地,所述处理器为一个或多个,所述存储器为一个或多个。
可选地,所述存储器可以与所述处理器集成在一起,或者所述存储器与处理器分离设置。
在具体实现过程中,存储器可以为非瞬时性(non-transitory)存储器,例如只读存储器(read only memory,ROM),其可以与处理器集成在同一块芯片上,也可以分别设置在不同的芯片上,本申请实施例对存储器的类型以及存储器与处理器的设置方式不做限定。
应理解,相关的数据交互过程例如发送指示信息可以为从处理器输出指示信息的过程,接收能力信息可以为处理器接收输入能力信息的过程。具体地,处理输出的数据可以输出给发射器,处理器接收的输入数据可以来自接收器。其中,发射器和接收器可以统称为收发器。
第六方面,提供了一种计算机可读存储介质,用于存储计算机程序,该计算机程序包括用于执行上述第一方面及上述第一方面的任意可能的实现方式中的方法的指令。
第七方面,提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面及上述第一方面的任意可能的实现方式中的方法。
第八方面,提供了一种芯片,包括至少一个处理器和接口;所述至少一个所述处理器,用于调用并运行计算机程序,以使所述芯片执行上述第一方面及上述第一方面的任意可能的实现方式中的方法。
第九方面,提供了一种系统,包括前述的第一网络设备和第二网络设备。
附图说明
图1是适用于本申请实施例提供的队列管理的方法的一个应用场景。
图2是本申请提供的队列管理的方法200的示意性流程图。
图3是IP报文头部的部分结构示意图。
图4是本申请实施例提供的队列管理的方法400的示意性流程图。
图5是本申请实施例提供的数据流经过多个网络设备转发时的队列管理的方法的示意性流程图。
图6是本申请实施例提供的数据流经过多个网络设备转发时的队列管理的方法的示意性流程图。
图7是适用于本申请实施例提供的数据流经过多个网络设备转发时的队列管理的方法的一个应用场景。
图8是适用于本申请实施例提供的数据流经过多个网络设备转发时的队列管理的方法的另一个应用场景。
图9是本申请实施例提供的第一网络设备900的示意性结构图。
图10是本申请实施例提供的第一网络设备1000的硬件结构示意图。
具体实施方式
下面将结合附图,对本申请中的技术方案进行描述。
本申请将围绕包括多个设备、组件、模块等的系统来呈现各个方面、实施例或特征。应当理解和明白的是,各个系统可以包括另外的设备、组件、模块等,并且/或者可以并不包括结合附图讨论的所有设备、组件、模块等。此外,还可以使用这些方案的组合。
另外,在本申请实施例中,“示例的”、“例如”等词用于表示作例子、例证或说明。本申请中被描述为“示例”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用示例的一词旨在以具体方式呈现概念。
本申请实施例中,“相应的(corresponding,relevant)”和“对应的(corresponding)”有时可以混用,应当指出的是,在不强调其区别时,其所要表达的含义是一致的。
本申请实施例描述的网络架构以及业务场景是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域普通技术人员可知,随着网络架构的演变和新业务场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
在本说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
本申请中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,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可以是单个,也可以是多个。
为了便于理解,首先介绍一下本申请中涉及到的相关术语。
1,队列管理
队列管理,属于链路网际互连协议层(internet protocol,IP)的拥塞控制策略,主要是在路由器中采用排队算法和数据包丢弃策略。排队算法通过决定哪些包可以传输来分配带宽,而丢弃策略通过决定哪些包被丢弃来分配缓存。
2,主动队列管理(active queue management,AQM)
AQM,路由器中最常用的队列管理策略是“队尾丢弃”。它是一种拥塞恢复机制,能够维持网络的稳定运行,但是存在着满队列、死锁以及全局同步等问题。
3,传输控制协议(transmission control protocol,TCP)
TCP,是一种面向连接的、可靠的、基于字节流的传输层通信协议。
4,路由器
路由器,是连接两个或多个网络的硬件设备,在网络间起网关的作用,是读取每一个数据包中的地址然后决定如何传送的专用智能性的网络设备。它能够理解不同的协议,例如某个局域网使用的以太网协议,因特网使用的传输控制协议/网际协议(transmissioncontrol protocol/internet protocol,TCP/IP)。这样,路由器可以分析各种不同类型网络传来的数据包的目的地址,把非TCP/IP网络的地址转换成TCP/IP地址,或者反之;再根据选定的路由算法把各数据包按最佳路线传送到指定位置。所以路由器可以把非TCP/IP网络连接到因特网上。
5,大象流和老鼠流
依据流携带数据量的多少可将网络流分为大象流和老鼠流。大象流,占网络流总数的10%左右,但其承载了网络总数据量的85%,具有传输时间长、占用带宽大、数量较少的特点,而老鼠流则正好相反。
6,往返时间(round-trip time,RTT)
往返时间,表示从发送端发送数据开始,到发送端收到来自接收端的确认(接收端收到数据后便立即发送确认,不包含数据传输时间)总共经历的时间。
图1示出了适用于本申请实施例提供的队列管理的方法的一个应用场景。
如图1所示,该系统100包括输入端110、网络设备120、输出端130。
输入端110,用于根据路由器120分配给每个TCP流的带宽输入该每个TCP流携带的数据。
参见图1,输入端110包括:数据流1、数据流2、……、数据流k,k为大于等于1的正整数。其中,不同版本的TCP流共用一条链路。也就是说,数据流1、数据流2、……、数据流k共用一条链路。
需说明的是,输入端110包括的每个数据流对应的版本可以相同也可以不同,或者,输入端110包括的多个数据流的中的部分数据流对应的版本相同。
以数据流为TCP流介绍。TCP流对应的版本包括Tahoe、Reno、CUBIC、FAST或Sack等,且不同版本的TCP流具有不同的行为。例如,有的版本的TCP流为过于进取的流,该版本的TCP流会抢占更多链路带宽。
作为示例非限定,输入端110包括的TCP流1、TCP流2和TCP流3,则TCP流1的版本为Reno,TCP流2的版本为Reno,TCP流3的版本为Reno。例如,输入端110包括的TCP流1、TCP流2和TCP流3,则TCP流1的版本为Reno,TCP流2的版本为Reno,TCP流3的版本为CUBIC。例如,输入端110包括的TCP流1、TCP流2和TCP流3,则TCP流1的版本为Reno,TCP流2的版本为Tahoe,TCP流3的版本为CUBIC。
网络设备120,可以作为队列管理器,用于对输入端110输入的数据流(例如,TCP流)进行拥塞控制。
在本申请实施例中,对网络设备120的类型不做具体限定。例如,网络设备120可以为路由器。或者,网络设备120可以为交换机。
输出端130,用于将输入端110输入的TCP流稳定地输出。
本申请提供的队列管理的方法,可以通过在网络设备120(例如,路由器或交换机)上添加软件模块和/或硬件模块来实现。
应理解,图1仅为示意,并不对本申请构成任何限定。例如,在一些应用场景中该系统100中还可以包括多个路由器。又如,在一些应用场景中该系统100中还可以包括除上述列举之外的其它类型的TCP版本。再如,在一些应用场景中该系统100中的输入端110还可以包括与TCP流具有类似性质的数据流。
图2示出了本申请提供的队列管理的方法200的示意性流程图。如图2所示,方法200包括步骤210至步骤240,该方法200的执行主体为第一网络设备(例如,第一网络设备可以为路由器。或者,第一网络设备可以为交换机)。
步骤210,第一网络设备接收第二网络设备发送的N个数据流,N个数据流共用同一条链路,N为大于等于2的正整数。
在本申请实施例中,对第一网络设备接收的数据流的类型不作具体限定。
作为一种实现方式,该数据流可以为TCP流。参见图1,在此情况下,输入端110包括的N个数据流中的每个数据流都为TCP流。
作为另一种实现方式,该数据流可以为与TCP流具有类似性质的数据流。
需说明的是,在本申请实施例中,对N个数据流中每个数据流携带的数据量不作具体限定,对N个数据流中每个数据流携带的数据包的数目也不作具体限定。
步骤220,第一网络设备确定与N个数据流对应的队列组,队列组包括M个第一队列,并将每个数据流加入与每个数据流对应的M个第一队列中的一个第一队列,M为正整数,且1≤M≤N。
作为一种实现方式,M与N相等,M个第一队列与N个数据流对应,可以理解为,M个第一队列与N个数据流一一对应。
例如,第一网络设备获取了3个数据流,分别为数据流A、数据流B、数据流C。第一网络设备确定队列组包括3个第一队列,分别为队列1、队列2、队列3,并且队列1和数据流A对应,队列2和数据流B对应,队列3和数据流C对应。在此情况下,第一网络设备将数据流A加入队列1中,数据流B加入队列2中,数据流C加入队列3中。
作为另一种实现方式,1≤M<N,M个第一队列与N个数据流对应,可以理解为,M个第一队列中的至少一个第一队列与N个数据流中的至少P个数据流对应,M个第一队列中的其余第一队列与N个数据流中的其余数据流一一对应,P为正整数,且1≤P<N。
例如,第一网络设备了3个数据流,分别为数据流A、数据流B、数据流C。第一网络设备确定队列组包括2个第一队列,分别为队列1和队列2,且队列1与数据流A和数据流B对应(即,队列1包括数据流A和数据流B),队列2对应数据流C。在此情况下,第一网络设备将数据流A和数据流B加入队列1中,数据流C加入队列2中。
可选的,在一些实现方式中,队列组还包括至少一个第二队列,第一网络设备确定与N个数据流对应的队列组之前,方法还包括:
第一网络设备确定N个数据流包括M个第一数据流和L个第二数据流,L为整数,0≤L<N,且M+L≤N,每个第一数据流携带的数据量大于等于第一阈值,每个第二数据流携带的数据量小于第一阈值;或者,每个第一数据流携带的数据包的数目大于等于第二阈值,每个第二数据流携带的数据包的数目小于第二阈值。
在队列组包括M个第一队列和至少一个第二队列的情况下,第一网络设备确定与N个数据流对应的第一网络设备的队列组,队列组包括M个第一队列,并将每个数据流加入与每个数据流对应的队列组中的一个第一队列,包括:
第一网络设备确定M个第一队列与M个第一数据流一一对应,并将每个第一数据流加入与每个第一数据流对应的第一队列;
第一网络设备确定至少一个第二队列与L个第二数据流对应,并将L个第二数据流加入至少一个第二队列。
其中,第一阈值或第二阈值可以根据具体的应用场景进行设置。或者,第一阈值和/或第二阈值也可以根据经验进行设置。例如,可以设置第一阈值为100MB。例如,可以设置第二阈值为100或120。
可选的,在一些实施例中,根据第一阈值或第二阈值的选取,上述第一数据流可以为大象流,上述第二数据流可以为老鼠流。
例如,第一网络设备获取了5个数据流,分别为数据流A、数据流B、数据流C、数据流D和数据流E。第一网络设备确定队列组包括3个第一队列,分别为队列1、队列2和队列3,队列组还包括1个第二队列,即队列4。并且第一网络设备确定队列1和数据流A对应,队列2和数据流B对应,队列3和数据流C对应,队列4与数据流D和数据流E对应(即,第二队列包括数据流D和数据流E)。在此情况下,第一网络设备将数据流A加入队列1,将数据流B加入队列2,将数据流C加入队列3,将数据流D和数据流E加入队列4。
在本申请实施例中,对确定与N个数据流对应的队列组的方法不作具体限定。
例如,第一网络设备可以通过哈希(hash)算法确定与N个数据流对应的队列组。
在本申请实施例中,对确定数据流为第一数据流的方法不作具体限定。
例如,可以采用哈希(hash)算法确定数据流是否为第一数据流。例如,也可以采用并保持算法(sample and hold)确定数据流是否为第一数据流。例如,还可以多级过滤器算法(multistage)确定数据流是否为第一数据流。
步骤230,第一网络设备确定M个第一队列中每个非空第一队列对应的队列管理策略。
应理解的是,在本申请的步骤230之前,第一网络设备还执行如下操作:
在第一时刻,根据第一时刻对应的网络状态,确定第i个非空第一队列的第一目标输出速度、第i个非空第一队列的第一目标队列长度以及第i个非空第一队列的第一丢包率;
在第二时刻,根据第二时刻对应的网络状态,确定第二目标输出速度;
其中,第二时刻大于第一时刻,第一丢包率为根据第一目标队列长度和在第一时刻获取的第i个非空第一队列的实际队列长度确定的,i为正整数,且1≤i≤M。
在上述方案中,第一目标输出速度为第一网络设备根据第一时刻对应的网络状态确定的M个第一队列中第i个非空第一队列对应的数据流的目标输出速度,第一目标队列长度为第一网络设备根据第一时刻对应的网络状态确定的第i个非空第一队列的目标队列长度,第二目标输出速度为第一网络设备根据第二时刻对应的网络状态确定的第i个非空第一队列对应的数据流的目标输出速度。
需说明的是,上述第一时刻对应的网络状态与上述第二时刻对应的网络状态可以相同,在此情况下,第一目标输出速度与第二目标输出速度相等。上述第一时刻对应的网络状态与上述第二时刻对应的网络状态也可以不相同,在此情况下,第一目标输出速度与第二目标输出速度不相等。
在本申请中,为了保证输入至第一网络设备的各个数据流之间的公平,通过采用公平分配原则根据当前时刻对应的网络状态,为每个数据流对应的非空队列分配目标输出带宽。应理解的是,每个数据流对应的目标输出带宽与该每个数据流对应的目标输出速度相同。
下面,以队列组中包括k个非空队列为例进行介绍。应理解的是,在队列组包括其他数目的非空队列的情况下,也可以采用下述方法为每个流公平地分配目标输出速度(或目标输出带宽)。
具体的,第一网络设备可以通过以下三种方式确定在当前时刻第i个非空第一队列对应的数据流的目标输出速度:
第一种方式:
第一网络设备根据在当前时刻分配给N个数据流的链路总带宽以及在当前时刻队列组包括的非空队列的数目,确定在当前时刻第i个非空第一队列对应的数据流的目标输出速度。
具体的,可以通过下列公式确定:
Figure BDA0002607086840000131
其中,Ci为在当前时刻队列组中第i个非空第一队列对应的目标输出速度,Na(ti)为在当前时刻队列组包括的非空队列的数目,C为在当前时刻分配给N个数据流的链路总带宽。
第二种方式:
第一网络设备根据在当前时刻队列组包括的每个非空队列对应的数据流的实际输入速度所占的比例,确定在当前时刻第i个非空第一队列对应的数据流的目标输出速度。
具体的,可以通过下列公式确定:
Figure BDA0002607086840000132
其中,xi为实际输入速度,C为在当前时刻分配给N个数据流的链路总带宽,Ci为在当前时刻队列组中第i个非空第一队列对应的目标输出速度。
第三种方式:
第一网络设备根据在当前时刻分配给N个数据流的链路总带宽以及在当前时刻队列组包括的每个非空队列对应的数据流的权重,确定在当前时刻第i个非空第一队列对应的数据流的目标输出速度。
具体的,可以通过下列公式确定:
Figure BDA0002607086840000133
其中,wi为在当前时刻队列组包括的第i个非空第一队列对应的数据流的权重,C在当前时刻为分配给N个数据流的链路总带宽,Ci为在当前时刻队列组中第i个非空第一队列对应的目标输出速度。
需说明的是,在上述三种方式中的当前时刻为第一时刻或者为第二时刻。换句话是,当前时刻为第一时刻时,则根据上述公式(2.1)、上述公式(2.2)或上述公式(2.3)确定的目标输出速度为第一目标输出速度。当前时刻为第二时刻时,则根据上述公式(2.1)、上述公式(2.2)或上述公式(2.3)确定的目标输出速度为第二目标输出速度。
应理解,上述第一网络设备确定在当前时刻第i个非空第一队列对应的数据流的目标输出速度仅为示意,并不对本申请构成任何限定。例如,也可以采用其它分配规则,从而实现公平的带宽分配的目的。
在本申请中,对采用公平分配原则为队列组包括的每个非空队列分配目标输出带宽的方法不作具体限定。例如,可以利用加权公平排队(weighted fair queuing,WFQ)算法来公平地调度分配给每个队列轮流使用输出链路的带宽。例如,可以采用差额轮转(deficit round robin,DRR)算法来公平地调度分配给每个队列轮流使用输出链路的带宽。
下面,以差额轮转(deficit round robin,DRR)算法为例,介绍分配给每个队列轮流使用输出链路的带宽的方法。
例如,队列组中共包括3个第一队列和1个第二队列。这3个第一队列分别为队列1、队列2和队列3,且队列1对应数据流1,队列2对应数据流2,队列3对应数据流3。第二队列对应数据流4和数据流5。采用DRR算法为每个非空队列(总共3+1个)分配一个链路总带宽Qi,即非空队列i每轮最多可以发送的字节数。其中,Qi为预定义的值。例如,Qi可以为1500字节。
在本申请中,第一网络设备确定M个第一队列中每个非空第一队列对应的队列管理策略,包括:
在第二时刻,若第二目标输出速度与第一目标输出速度的差等于零,则第一网络设备确定第i个非空第一队列的丢包率为第一丢包率;
在第二时刻,若第二目标输出速度与第一目标输出速度的差不等于零,则第一网络设备确定第二目标队列长度,以及根据第二目标队列长度和在第二时刻获取的第i个非空第一队列的实际队列长度,确定第i个非空第一队列的第二丢包率,第二目标队列长度为第一网络设备根据第二时刻对应的网络状态确定的第i个非空第一队列的目标队列长度。
其中,上述第一目标输出速度和第二目标输出速度可以根据公式(2.1)、公式(2.2)或者公式(2.3)确定,此处不再详细赘述。
下面,以M个第一队列中包括k个第一非空队列为例介绍确定第一网络设备确定在当前时刻第i个非空第一队列的丢包率的方法,其中当前时刻为第一时刻或者为第二时刻,k为正整数,且1≤k≤M。
在本申请中,第一网络设备可以根据下列公式确定在当前时刻第i个非空第一队列的丢包率:
Figure BDA0002607086840000141
其中,在当前时刻为第一时刻的情况下,pi(t)为第一丢包率,qi(t)为在第一时刻获取的第i个非空第一队列的实际队列长度,βi为第一目标队列长度,σi为控制参数,控制参数大于等于在第一时刻获取的第i个非空第一队列对应的数据流的目标输出速度的平方,[]+为非负操作符号,当括号内的数值小于零,[]+结果为零,当括号内的数值大于等于零,[]+结果等于括号内计算的数值;
其中,在当前时刻为第二时刻的情况下,pi(t)为第二丢包率,qi(t)为在第二时刻获取的第i个非空第一队列的实际队列长度,βi为第二目标队列长度,σi为控制参数,控制参数大于等于在第二时刻获取的第i个非空第一队列对应的数据流的目标输出速度的平方,[]+为非负操作符号,当括号内的数值小于零,[]+结果为零,当括号内的数值大于等于零,[]+结果等于括号内计算的数值。
需说明的是,上述当前时刻可以为第一时刻,或者,上述当前时刻也可以为第二时刻。换句话是,当当前时刻为第一时刻时,则根据上述公式(2.4)确定的丢包率为第一丢包率。当当前时刻为第二时刻时,则根据上述公式(2.4)确定的丢包率为第二丢包率。
需说明的是,σi大于等于在第二时刻第i个非空第一队列对应的数据流的目标输出速度的平方,故σi的取值一般都比较大,例如,σi为1000或2000。
举例说明,当qi(t)为5,βi为3,σi为2000时,则pi(t)为0.1%。例如,当qi(t)为2,βi为6,σi为2000时,则pi(t)为0。
在本申请中,第一网络设备可以根据下列公式确定在当前时刻对应的网络状态下第i个非空第一队列的目标队列长度:
βi=Ci×di (2.5)
其中,在当前时刻为第一时刻的情况下,βi为第一目标队列长度,Ci为在第一时刻第i个非空第一队列对应的数据流的目标输出速度,在第一时刻第i个非空第一队列对应的数据流的目标输出速度为根据第一时刻对应的网络状态确定的,di为第i个非空第一队列的目标排队时间。
其中,在当前时刻为第二时刻的情况下,βi为第二目标队列长度,Ci为在第二时刻第i个非空第一队列对应的数据流的目标输出速度,在第二时刻第i个非空第一队列对应的数据流的目标输出速度为根据第二时刻对应的网络状态确定的,di为第i个非空第一队列的目标排队时间。
上述di为预定义的值,在本申请中对di的大小不作具体限定。例如,di可以为5ms。或者,di也可以为10ms。
需说明的是,上述当前时刻可以为第一时刻,或者,上述当前时刻也可以为第二时刻。换句话是,当当前时刻为第一时刻时,则根据上述公式(2.5)确定的目标队列长度为第一目标队列长度。当当前时刻为第二时刻时,则根据上述公式(2.5)确定的目标队列长度为第二目标队列长度。
将公式(2.1)代入公式(2.5)中可以得到:
Figure BDA0002607086840000151
由上述公式(2.6)可知,当Na(t)发生变化时,βi会发生变化;当改变di的大小时,βi也会发生变化。
步骤240,第一网络设备根据M个第一队列中每个非空第一队列对应的队列管理策略,管理每个非空第一队列。
在本申请中,第一网络设备根据M个第一队列中每个非空第一队列对应的队列管理策略,管理M个第一队列中每个非空第一队列,包括:
在第二目标输出速度与第一目标输出速度的差等于零的情况下,第一网络设备以第一丢包率处理第i个非空第一队列。
在第二目标输出速度与第一目标输出速度的差不等于零的情况下,第一网络设备将第一目标队列长度调整为第二目标队列长度,并以第二丢包率处理第i个非空第一队列。
可选的,在一些实现方式中,第一网络设备根据第i个非空第一队列的第一丢包率,处理第i个非空第一队列之后,方法还包括:
在第三时刻,若实际输入速度大于等于目标输入速度,则第一网络设备确定第i个非空第一队列的第三丢包率并根据第三丢包率处理第i个非空第一队列,以及向第二网络设备发送第一信息,第一指示信息用于指示第二网络设备降低实际输入速度;
在第三时刻,若实际输入速度小于目标输入速度,则第一网络设备向第二网络设备发送第二信息,第二指示信息用于指示第二网络设备增加实际输入速度;
其中,在第三时刻第i个非空第一队列的目标输出速度与第二目标输出速度相同,实际输入速度为在第三时刻获取的第i个非空第一队列对应的数据流输入至第一网络设备的速度,目标输入速度为在第三时刻预定义的第i个非空第一队列对应的数据流输入至第一网络设备的速度。
在本申请中,对确定目标输入速度的方法以及目标输入速度的大小不作具体限定。例如,可以根据具体的应用场景设置目标输入速度。或者,根据经验值设置目标输入速度。
在本申请中,第一网络设备可以根据下列公式确定第三丢包率:
Figure BDA0002607086840000161
在上述公式(2.7)中,δi(xi)为第三丢包率,xi为实际输入速度,
Figure BDA0002607086840000162
为目标输入速度,[]+为非负操作符号,当括号内的数值小于零,[]+结果为零,当括号内的数值大于等于零,[]+结果等于括号内计算的数值。
举例来说,当xi为510Mbps,
Figure BDA0002607086840000163
为500Mbps时,则δi(x'i)为0.02。例如,当xi为500Mbps,
Figure BDA0002607086840000164
为520Mbps时,则δi(x'i)为0。例如,当xi为100Mbps,
Figure BDA0002607086840000165
为97Mbps时,则δi(x'i)为0.031。例如,当xi为185Mbps,
Figure BDA0002607086840000166
为200Mbps时,则δi(x'i)为0。
需说明的是,在第二网络设备获取需要对其发送的数据流进行增速或减速的指示后,第二网络设备可以根据其发送的数据流对应的协议确定具体增速或减速的数值。例如,当第二网络设备发送的数据流为TCP流时,第二网络设备获取对数据流A进行增速提醒后,第二网络设备可以根据TCP协议具体确定对数据流A增速的数值。
可选的,在一些实现方式中,第一信息包括第一指示信息和第一值,第二信息包括第二指示信息和第一值,第一指示信息或第二指示信息可以通过显示拥塞通告(explicitcongestion notification,ECN)携带,第一值为目标输入速度,第一值可以通过差分服务代码差分服务代码点(differentiated services code point,DSCP)携带。
作为一种实现方式,第一网络设备确定实际输入速度大于目标输入速度后,第一网络设备会提前一个RTT向第二网络设备发送ECN(“-”信号)提示,ECN(“-”信号)提示用于指示第二网络设备降低实际输入速度,然后再以第二丢包率对第i非空第一队列进行丢包处理。
作为另一种实现方式,第一网络设备确定实际输入速度小于目标输入速度后,第一网络设备会提前一个RTT向第二网络设备发送发ECN(“+”信号)提示,ECN(“+”信号)提示用于指示第二网络设备增加实际输入速度。
需说明的是,当某个时刻第一网络设备所在的网络处于负载均衡时,则第i个非空第一队列在该某个时刻对应的目标输出速度、在该某个时刻获取的该第i个非空第一队列对应的数据流输入至第一网络设备的实际输入速度和在该某个时刻预定义的该第i个非空第一队列对应的数据流输入至第一网络设备的速度都相同。
本申请实施例提供的队列管理方法,第一网络设备通过对获取的多个数据流中的每个数据流进行独立的队列管理,保证了数据流之间公平性的拥塞控制以及实现了更细粒度的队列管理,从而可以提高对网络拥塞控制的质量和链路带宽的利用率。
具体的,当第一网络设备的网络状态(例如,第一网络设备包括的非空队列的数目)发生变化时,第一网络设备可以通过自动调整每个数据流(例如,大象流)所在的队列的队列参数(例如,目标队列长度、丢包率等)来适应网络状态的变化,从而可以提高对网络拥塞控制的质量和链路带宽的利用率。
下面结合图3,具体介绍通过域参数(例如,ECN)携带第一指示信息、第二指示信息以及域参数(例如,DSCP)携带第一值的方法。
图3示出了IP报文头部的部分结构示意图。如图3所示,IP报文头部的第8至第13个字节表示DSCP域,第14和第15个字节表示ECN域。
在本申请实施例中,第二网络设备可以根据ECN域携带的指示信息,确定对第二网络设备发送的数据流的速度进行增速或减速处理:
具体的,可以采用两比特位设置ECN域:
ECN设置为“11”=“-”信号,表示当前网络状态下第一网络设备获取的数据流#1的实际输入速度大于当前网络状态下接收端预定义的数据流#1的目标输入速度,因此需要对第二网络设备发送的数据流#1的实际输入速度进行减速处理。
例如,第二网络设备向第一网络设备发送了1个数据流,即数据流A,且数据流A对应队列A。在时刻#1,数据流A对应的实际输入速度为10Mbps,数据流A对应的目标输入速度为8Mbps。因此,第一网络设备向第二网络设备发送数据流A对应的第一信息和数据流B对应的第二信息。具体的,第一信息中第一指示信息为ECN设置为“11”=“-”信号,第一值为8Mbps。
ECN设置为“00”=“+”信号,表示当前网络状态下第一网络设备获取的数据流#1的实际输入速度小于当前网络状态下接收端预定义的数据流#1的目标输入速度,因此需要对第二网络设备发送的数据流#1的实际输入速度进行增速处理。
例如,第二网络设备向第一网络设备发送了1个数据流,即数据流A,且数据流B应队列B。在时刻#1,数据流A对应的实际输入速度为6Mbps,数据流A对应的目标输入速度为9Mbps。因此,第一网络设备向第二网络设备发送数据流B对应的第一信息和数据流B对应的第二信息。具体的,第一信息中第一指示信息为ECN设置为“00”=“+”信号,第一值为9Mbps。
例如,第二网络设备向第一网络设备发送了2条数据流,分别为数据流A和数据流B,数据流A对应队列A,数据流B对应队列B。在时刻#1,数据流A对应的实际输入速度为10Mbps,数据流A对应的目标输入速度为8Mbps;数据流B对应的实际输入速度为10Mbps,数据流B对应的目标输入速度为8Mbps。因此,第一网络涉笔向第二网络设备发送数据流A对应的第一信息和数据流B对应的第二信息。具体的,第一信息中第一指示信息为ECN设置为“11”=“-”信号,第一值为8Mbps。第二信息中第一指示信息为ECN设置为“00”=“+”信号,第一值为8Mbps。
ECN设置为“01”,或者,ECN设置为“10”时的具体处理方法与现有标准的ECN的用法相同。具体的,ECN设置为“01”,或者,ECN设置为“10”时,均表示支持ECN。一个支持ECN的主机发送数据包时将ECN域设置为01或者10。对于支持ECN的主机发送的包,如果路径上的第一网络设备支持ECN并且经历拥塞,它将ECN域设置为11。如果该数值已经被设置为11,那么下游第一网络设备不会修改该值。当第一网络设备检测到拥塞时,设置ECN域为11。
在本申请实施例中,第二网络设备可以根据DSCP域携带的数值,确定第二网络设备发送的数据流对应的目标输入速度:
作为一种实现方式,可以采用六个比特位设置DSCP域:
在目标输入速度xi小于等于1Gbps(即xi≤1024Mbps)的情况下,采用六个比特位设置DSCP域的方法具体如下:
首先,将1024Mbps除以64得到16Mbps,并设置六个比特位所对应的每个整数值(共64个)实际表示:(该整数值+1)×16Mbps的流速。
例如,“000001”所表示的xi为:(1+1)×16Mbps=32Mbps。例如,“000011”所表示的xi为:(3+1)×16Mbps=64Mbps。
然后,将上述计算出来的xi映射到最近一个不超过xi的16Mbps的倍数值。具体的,当xi大于等于16Mbps时,将xi映射到最近一个不超过xi的16Mbps的倍数;当xi小于16Mbps时,设置xi为16Mbps。
例如,xi=65Mbps,则取64Mbps(即“000011”)表示xi。例如,xi=31Mbps,则取16Mbps(即“000000”)表示xi
例如,xi=10Mbps,则取16Mbps(即“000000”)表示xi
在xi大于1Gbps但小于等于5Gbps(即1024Mbps<xi≤5Gbps)的情况下,采用六个比特位设置DSCP域的方法具体如下:
首先将(5Gbps-1Gbps)除以64得到64Mbps,并设置六个比特位所对应的每个整数值(共64个)实际表示:(该整数值×64Mbps)+1Gbps的流速。
例如,“000000”所表示的xi为:(0×64Mbps)+1Gbps=1000Mbps。
例如,“000001”所表示的xi为:(1×64Mbps)+1Gbps=1064Mbps。
例如,“000011”所表示的xi为:(3×64Mbps)+1Gbps=1192Mbps。
然后将上述计算出来的xi映射到最近一个不超过xi的64Mbps的倍数值。具体的,当xi大于等于64Mbps时,将xi映射到最近一个不超过xi的64Mbps的倍数值。
例如,xi=1065Mbps,则取1064Mbps(即“000001”)表示xi。例如,xi=1200Mbps,则取1192Mbps(即“000011”)表示xi
下面以图4为例,结合方法200,介绍本申请实施例提供的队列管理的方法的一个具体的实施例。
图4示出了本申请实施例提供的队列管理的方法400的示意性流程图。
如图4所示,方法400包括步骤410至步骤490。下面,以“路由器为执行主体,输入端获取的数据流为TCP流”为例,对上述步骤410至步骤490进行详细介绍。应理解,图4仅为示意并不对本申请构成任何限定。例如,方法400的执行主体还可以是交换机。例如,输入端获取的数据流还可以为与TCP流具有类似性质的数据流。
步骤410,路由器接收源发送端发送的N个TCP流,确定N个TCP流中的M个TCP流为大象流,N个TCP流中的L个TCP流为老鼠流。
上述步骤410中确定N个TCP流中包括大象流和老鼠流的方法与步骤220的方法相同,此处不再详细赘述。
步骤420,路由器确定与M个大象流一一对应的M个第一队列,与L个老鼠流对应的1个第二队列,并将每个大象流加入与每个大象流对应的第一队列,将L个老鼠流加入与L个老鼠流对应的第二队列。
上述步骤410中的方法与步骤220的方法相同,此处不再详细赘述。
步骤430,在时刻#1,路由器确定第i个非空第一队列的第一目标输出速度、第一目标队列长度以及第一丢包率。
其中,第i个非空第一队列为M个第一队列中的一个非空第一队列,i为正整数,且1≤i≤M。
上述步骤430中,第一目标输出速度为路由器根据时刻#1对应的网络状态确定的第i个非空第一队列对应的数据流的目标输出速度;第一目标队列长度为路由器根据时刻#1对应的网络状态确定的第i个非空第一队列的目标队列长度;第一丢包率为根据第一目标队列长度和在时刻#1获取的第i个非空第一队列的实际队列长度确定的。具体的,第一目标输出速度可以根据方法200中的公式(2.1)、公式(2.2)或公式(2.3)确定;第一丢包率可以根据方法200中的公式(2.4)确定;第一目标队列长度可以根据方法200中的公式(2.5)确定,此处不再详细赘述。
步骤440,在时刻#2,路由器确定第一目标输出速度与第二目标输出速度的差是否等于零。
上述步骤440中的时刻#2为上述步骤430中的时刻#1之后的时刻。
上述步骤440中,第二目标输出速度为路由器根据时刻#2对应的网络状态确定的第i个非空第一队列对应的数据流的目标输出速度。具体的,可以根据方法200中的公式(2.1)确定第二目标输出速度。
在时刻#2,路由器确定第一目标输出速度与第二目标输出速度的差是否等于零,包括:
在路由器确定第一目标输出速度与第二目标输出速度的差等于零的情况下,执行步骤460;
在路由器确定第一目标输出速度与第二目标输出速度的差不等于零的情况下,执行步骤450。
步骤450,路由器根据第二目标队列长度和在时刻#2获取的第i个非空第一队列的实际队列长度,确定第i个非空第一队列的第二丢包率,路由器将第一目标队列长度调整为第二目标队列长度,并以第二丢包率处理第i个非空第一队列。
上述步骤450中,路由器可以根据方法200中的公式(2.4)确定第二丢包率,此处不再详细赘述。
步骤460,路由器确定第i个非空第一队列的丢包率为第一丢包率,并以第一丢包率处理第i个非空第一队列。
步骤470,在时刻#3,路由器确定第i个非空第一队列在时刻#3对应的目标输入速度是否大于第i个非空第一队列在时刻#3获取的实际输入速度。
上述步骤470中的时刻#3为上述步骤440中的时刻#2之后的时刻;第i个非空第一队列在时刻#3对应的目标输入速度,可以理解为,在时刻#3预定义的第i个非空第一队列对应的数据流输入至路由器的速度;第i个非空第一队列在时刻#3获取的实际输入速度,可以理解为,在时刻#3获取的第i个非空第一队列对应的数据流输入至路由器的速度。
在时刻#3,路由器确定第i个非空第一队列在时刻#3对应的目标输入速度是否大于第i个非空第一队列在时刻#3获取的实际输入速度,包括:
在路由器确定第i个非空第一队列在时刻#3对应的目标输入速度大于等于第i个非空第一队列在时刻#3获取的实际输入速度的情况下,执行步骤490;
在路由器确定第i个非空第一队列在时刻#3对应的目标输入速度小于第i个非空第一队列在时刻#3获取的实际输入速度的情况下,执行步骤480。
应理解的是,当路由器所处的网络处于负载均衡态时,上述实际输入速度、目标输入速度以及在时刻#3第i个非空第一队列对应的数据流的目标输出速度相等。
需说明的是,路由器确定第i个非空第一队列在时刻#3对应的目标输入速度是否大于第i个非空第一队列在时刻#3获取的实际输入速度之前,还包括获取第i个非空第一队列在时刻#3对应的实际输入速度。例如,路由器可以通过控制面获取第i个非空第一队列在时刻#3对应的实际输入速度。
步骤480,路由器向源发送端发送第二信息。
其中,第二信息包括第二指示信息和第一值,第二指示信息用于指示增加第i个非空第一队列在时刻#3获取的实际输入速度,第一值为第i个非空第一队列在时刻#3对应的目标输入速度。具体的路由器确定第二信息的方法参见图3对应的内容。
步骤490,路由器确定第i个非空第一队列的第三丢包率并以第三丢包率处理第i个非空第一队列,以及向源发送端发送第一信息。
其中,第一信息包括第一指示信息和第一值,第一指示信息用于指示降低第i个非空第一队列在时刻#3获取的实际输入速度,第一值为第i个非空第一队列在时刻#3对应的目标输入速度。具体的路由器确定第一信息的方法参见图3对应的内容。
其中,路由器可以根据方法200中的公式(2.7)确定第三丢包率,此处不再详细赘述。
本申请实施例提供的队列管理的方法,仅对路由器获取的每个大象流对应的队列(即,第一队列)进行拥塞处理,可以进一步提高拥塞处理的效率。通过自动调节每个大象流对应的队列参数(例如,目标队列长度、控制参数等)来适应网络状态的变化(例如,当前网络中非空队列的数目),能够效地控制网络拥塞以及提高链路带宽利用率。
应理解,图4仅为示意,并不对本申请构成任何限定。例如,在另一些实现方式中,可以直接根据获取的N个TCP流确定该N个TCP流中每个TCP流对应的队列,并不对获取的N个TCP流进行分类(例如,大象流或老鼠流)。
以上,图2至图4中的方法均以一个第一网络设备为执行主体,执行本申请实施例提供的队列管理的方法。本申请实施例提供的队列管理的方法,还可以扩展到以多个第一网络设备为执行主体。
下面,介绍以多个第一网络设备为执行主体采用方法200进行队列管理的实施例。
具体的,多个第一网络设备中的每个第一网络设备分别可以独立地执行本申请实施例提供的方法200。以多个第一网络设备为执行主体,执行方法200时包括以下两种情况:
第一种情况:
在数据流经过多个第一网络设备转发的情况下,当多个第一网络设备中的一个第一网络设备收到一个带有ECN提示的报文,如果该ECN为“-”信号,则无论在该第一网络设备上情况如何,ECN提示保持为“-”信号。这样做的理由是,ECN“-”信号的出现表明转发数据流的第一网络设备中至少存在一个第一网络设备的实际输入速度已经超过了参考目标输入速度(或发生拥塞),第二网络设备应该降速,且第二网络设备发送数据流的速度(即参考目标输入速度)可以由该数据流所经过的路径中最小的目标输入速度决定。
下面,结合图5对上述第一种情况进行介绍。
参见图5,数据流C依次经过第一网络设备1、第一网络设备2转发。第一网络设备1确定数据流C的ECN为“-”信号,参考目标输入速度为x1。第一网络设备2确定数据流C的ECN为“-”信号,参考目标输入速度为x2。第一网络设备3确定数据流C的ECN为“+”信号,参考目标输入速度为x3。且x2<x1<x3
作为一种实现方式,第一网络设备2接收到第一网络设备1发送的ECN为“-”信号,获取第一网络设备1确定数据流C的参考目标输入速度为x1,且x2<x1。在此情况下,第一网络设备2确定向第二网络设备发送发送的ECN为“-”信号,且参考目标输入速度为x2
参见图5,数据流D依次经过第一网络设备3、第一网络设备4和第一网络设备5转发。第一网络设备3确定数据流D的ECN为“-”信号,参考目标输入速度为x1。第一网络设备4确定数据流D的ECN为“+”信号,参考目标输入速度为x2。第一网络设备5确定数据流D的ECN为“-”号,参考目标输入速度为x3。且x3<x1<x2
作为一种实现方式,第一网络设备4接收到第一网络设备3发送的ECN为“-”信号,获取第一网络设备3确定数据流D的参考目标输入速度为x1,且x2>x1。在此情况下,第一网络设备4确定向第一网络设备5发送的ECN为“-”信号,且参考目标输入速度为x1。第一网络设备5获取到第一网络设备4确定向第二网络设备发送的ECN为“-”信号,参考目标输入速度为x1,且x3<x1。在此情况下,第一网络设备5确定向第二网络设备发送的ECN为“-”信号,且参考目标输入速度为x3
第二种情况:
在数据流经过多个第一网络设备转发的情况下,当多个第一网络设备中的一个第一网络设备收到一个带有ECN“+”信号的报文,则ECN提示信号的设置由该第一网络设备及后续转发数据流的第一网络设备的情况决定。即如果收到ECN为“+”信号,当前第一网络设备根据本地情况刷新ECN提示(“+”或“-”信号)。后续经过的第一网络设备继续根据第一种情况中的方法或第二种情况中的方法决定ECN提示的信号。且第二网络设备发送数据流的速度(即参考目标输入速度)可以由该数据流所经过的路径中最小的目标输入速度决定。
下面,结合图6对上述第二种情况进行介绍。
参见图6,数据流A依次经过第一网络设备1和第一网络设备2转发。第一网络设备1确定数据流A的ECN为“+”信号,参考目标输入速度为x1。第一网络设备2确定数据流A的ECN为“-”信号,参考目标输入速度为x2。且x2<x1
作为一种实现方式,第一网络设备2接收到第一网络设备1发送的ECN为“+”信号,获取第一网络设备1确定数据流A的参考目标输入速度为x1,且x2<x1。在此情况下,第一网络设备2确定向第二网络设备发送的ECN为“-”信号,且参考目标输入速度为x2
参见图6,数据流B依次经过第一网络设备3、第一网络设备4和第一网络设备5转发。第一网络设备3确定数据流B的ECN为“+”信号,参考目标输入速度为x1。第一网络设备4确定数据流B的ECN为“+”信号,参考目标输入速度为x2。第一网络设备5确定数据流B的ECN为“-”信号,参考目标输入速度为x3。且x3<x1<x2
作为一种实现方式,第一网络设备4接收到第一网络设备3发送的ECN为“+”信号,获取第一网络设备3确定数据流B的参考目标输入速度为x1,且x2>x1。在此情况下,第一网络设备4确定向第一网络设备5发送的ECN为“+”信号,且参考目标输入速度为x1。第一网络设备5获取到第一网络设备4发送的ECN为“+”信号,参考目标输入速度为x1,且x3<x1。在此情况下,第一网络设备5确定向第二网络设备发送的ECN为“-”信号,且参考目标输入速度为x3
需说明的是,在第一种情况或第二种情况中,参考目标输入速度可以由DSCP携带,具体方法参见图3对应的内容,此处不再赘述。
图7示出了适用于本申请实施例提供的队列管理的方法的一个应用场景。
在实际应用中,当TCP流经过多个路由器转发时,对于该TCP流可能会存在一个瓶颈。该瓶颈可以理解为,当TCP流经过多个路由器转发时,多个路由器中分配给该TCP流链路带宽最小的路由器为该TCP流的瓶颈。还应理解的是,瓶颈处的路由器对TCP流的流速控制起最关键作用。
例如,TCP流A依次经过了3个路由器转发,这3个路由器分别为路由器1、路由器2和路由器3,路由器1分配给TCP流A的链路带宽为100MB,路由器1分配给TCP流A的链路带宽为100MB,路由器2分配给TCP流A的链路带宽为110MB,路由器3分配给TCP流A的链路带宽为60MB。在此情况下,路由器3为TCP流的瓶颈。
参见图7,该应用场景中包括6个路由器以及2个TCP流。这6个路由器分别为:路由器1、路由器2、路由器3、路由器4、路由器5和路由器6。其中,上述每个路由器分别可以独立地执行本申请实施例提供的方法200。这2个TCP流分别为:TCP流A和TCP流B。其中,这2个TCP流为2个不同的源和目的地址组成的TCP流的集合。具体的,TCP流A经过的转发路由器依次为:路由器1、路由器2、路由器3和路由器4。TCP流B经过的转发路由器依次为:路由器5、路由器2、和路由器6。
参见图7,路由器2为TCP流A的瓶颈,也就是说,路由器2对TCP流A的流速控制起最关键作用。也就是说,路由器2采用方法200独立运行,可以不受路由器5和/或路由器1发送的ECN信号和参考目标输入速度的影响。
作为一种实现方式,在图7中,可以仅根据路由器2、路由器3和路由器4分别确定的ECN信号和参考目标输入速度,确定向源发送端发送的ECN信号和参考目标输入速度。
例如,路由器3接收到路由器2发送的ECN为“+”信号,获取路由器3确定TCP流B的参考目标输入速度为x1,且x2>x1。在此情况下,路由器3确定向路由器4发送的ECN为“+”信号,且参考目标输入速度为x1。路由器4获取到路由器3发送的ECN为“+”信号,参考目标输入速度为x1,且x3<x1。在此情况下,路由器4确定向源发送端发送的ECN为“-”信号,且参考目标输入速度为x3。其中,参考目标输入速度可以由DSCP携带,具体方法参见图3对应的内容,此处不再赘述。
需说明的是,图7仅为示意,并不对本申请构成任何限定。在一些实施例中,图7中还可以包括更多或更少的路由器,以及更多或更少的TCP流。例如,参见图8,在该应用场景中包括8个路由器、4个TCP流以及两个瓶颈。
本申请实施例提供的队列管理的方法,根据TCP流经过的多个路由器中的每个路由器上的网络情况,确定该TCP流的参考目标输入速度和ECN信号,源发送端可以根据接收到的该参考目标输入速度和该ECN信号,确定该TCP流对应的实际输入速度,从而可以更好地处理网络拥塞。
以上,结合图2至图8详细描述了本申请提供的队列管理的方法。应理解,图2至图8的方法仅为示意,并不对本申请构成任何限定。
下面,结合图9和图10详细介绍本申请提供的第一网络设备以及第一网络设备的硬件结构。
图9示出了本申请实施例提供的第一网络设备900的示意性结构图。
该第一网络设备900包括:收发单元910、处理单元920。其中,收发单元910和处理单元920之间通过内部连接通路互相通信,传递控制和/或数据信号。
收发单元910,用于接收第二网络设备发送的N个数据流,该N个数据流共用同一条链路,N为大于等于2的正整数;
处理单元920,用于确定与该N个数据流对应的该第一网络设备的队列组,该队列组包括M个第一队列,并将每个数据流加入与该每个数据流对应的该M个第一队列中的一个第一队列,M为正整数,且1≤M≤N;
该处理单元920,还用于确定该M个第一队列中每个非空第一队列对应的队列管理策略;
该处理单元920,还用于根据该M个第一队列中每个非空第一队列对应的队列管理策略,管理该每个非空第一队列。
可选的,在一些实施例中,该队列组还包括至少一个第二队列,该处理单元920还用于:
确定该N个数据流包括M个第一数据流和L个第二数据流,L为整数,0≤L<N,且M+L≤N,每个第一数据流携带的数据量大于等于第一阈值,每个第二数据流携带的数据量小于该第一阈值;或者,每个第一数据流携带的数据包的数目大于等于第二阈值,每个第二数据流携带的数据包的数目小于该第二阈值;
确定该M个第一队列与该M个第一数据流一一对应,并将该每个第一数据流加入与该每个第一数据流对应的第一队列;
确定该至少一个第二队列与该L个第二数据流对应,并将该L个第二数据流加入该至少一个第二队列。
可选的,在一些实施例中,该处理单元920还用于:
在第一时刻,根据该第一时刻对应的网络状态,确定该第i个非空第一队列的第一目标输出速度、该第i个非空第一队列的第一目标队列长度以及该第i个非空第一队列的第一丢包率;
在第二时刻,根据该第二时刻对应的网络状态,确定第二目标输出速度;
其中,该第二时刻大于该第一时刻,该第一丢包率为根据该第一目标队列长度和在该第一时刻获取的该第i个非空第一队列的实际队列长度确定的,i为正整数,且1≤i≤M。
可选的,在一些实施例中,该处理单元920还用于:
在该第二时刻,若该第二目标输出速度与该第一目标输出速度的差等于零,则确定该第i个非空第一队列的丢包率为该第一丢包率;
在该第二时刻,若该第二目标输出速度与该第一目标输出速度的差不等于零,则确定第二目标队列长度,以及根据该第二目标队列长度和在该第二时刻获取的该第i个非空第一队列的实际队列长度,确定该第i个非空第一队列的第二丢包率,该第二目标队列长度为该第一网络设备根据该第二时刻对应的网络状态确定的该第i个非空第一队列的目标队列长度。
可选的,在一些实施例中,该处理单元920还用于:
在该第二目标输出速度与该第一目标输出速度的差等于零的情况下,以该第一丢包率处理该第i个非空第一队列。
在该第二目标输出速度与该第一目标输出速度的差不等于零的情况下,将该第一目标队列长度调整为该第二目标队列长度,并以该第二丢包率处理该第i个非空第一队列。
可选的,在一些实施例中,该处理单元920还用于:根据下列公式确定在当前时刻该第i个非空第一队列的丢包率,该当前时刻为该第一时刻或者为该第二时刻:
Figure BDA0002607086840000241
其中,在该当前时刻为该第一时刻的情况下,pi(t)为该第一丢包率,qi(t)为在该第一时刻获取的该第i个非空第一队列的实际队列长度,βi为该第一目标队列长度,σi为控制参数,该控制参数大于等于在该第一时刻获取的该第i个非空第一队列对应的数据流的目标输出速度的平方,[]+为非负操作符号,当括号内的数值小于零,[]+结果为零,当括号内的数值大于等于零,[]+结果等于括号内计算的数值;
其中,在该当前时刻为该第二时刻的情况下,pi(t)为该第二丢包率,qi(t)为在该第二时刻获取的该第i个非空第一队列的实际队列长度,βi为该第二目标队列长度,σi为控制参数,该控制参数大于等于在该第二时刻获取的该第i个非空第一队列对应的数据流的目标输出速度的平方,[]+为非负操作符号,当括号内的数值小于零,[]+结果为零,当括号内的数值大于等于零,[]+结果等于括号内计算的数值。
可选的,在一些实施例中,该处理单元920还用于:根据下列公式确定在当前时刻对应的网络状态下该第i个非空第一队列的目标队列长度,该当前时刻为该第一时刻或者为该第二时刻:
βi=Ci×di
其中,在该当前时刻为该第一时刻的情况下,βi为该第一目标队列长度,Ci为在该第一时刻该第i个非空第一队列对应的数据流的目标输出速度,该在该第一时刻该第i个非空第一队列对应的数据流的目标输出速度为根据该第一时刻对应的网络状态确定的,di为该第i个非空第一队列的目标排队时间。
其中,在该当前时刻为该第二时刻的情况下,βi为该第二目标队列长度,Ci为在该第二时刻该第i个非空第一队列对应的数据流的目标输出速度,该在该第二时刻该第i个非空第一队列对应的数据流的目标输出速度为根据该第二时刻对应的网络状态确定的,di为该第i个非空第一队列的目标排队时间。
可选的,在一些实施例中,该处理单元920还用于:
该处理单元920还用于:
在第三时刻,若实际输入速度大于等于目标输入速度,则该第一网络设备确定该第i个非空第一队列的第三丢包率并根据该第三丢包率处理该第i个非空第一队列,以及向该第二网络设备发送第一信息,该第一指示信息用于指示该第二网络设备降低该实际输入速度;
在该第三时刻,若该实际输入速度小于该目标输入速度,则该第一网络设备向该第二网络设备发送第二信息,该第二指示信息用于指示该第二网络设备增加该实际输入速度;
其中,在该第三时刻该第i个非空第一队列的目标输出速度与该第二目标输出速度相同,该实际输入速度为在该第三时刻获取的该第i个非空第一队列对应的数据流输入至该第一网络设备的速度,该目标输入速度为在该第三时刻预定义的该第i个非空第一队列对应的数据流输入至该第一网络设备的速度。
可选的,在一些实施例中,该处理单元920还用于:根据下列公式确定该第三丢包率:
Figure BDA0002607086840000242
其中,δi(xi)为该第三丢包率,xi为该实际输入速度,
Figure BDA0002607086840000251
为该目标输入速度,[]+为非负操作符号,当括号内的数值小于零,[]+结果为零,当括号内的数值大于等于零,[]+结果等于括号内计算的数值。
可选的,在一些实施例中,该第一信息包括第一指示信息和第一值,该第二信息包括第二指示信息和该第一值,该第一指示信息或该第二指示信息通过显示拥塞通告ECN携带,该第一值为该目标输入速度,该第一值通过差分服务代码点DSCP域携带。
可选的,在一些实施例中,该处理单元920,还用于根据以下任意一种方法确定在该当前时刻该第i个非空第一队列对应的数据流的目标输出速度:
根据在该当前时刻分配给该N个数据流的链路总带宽以及在该当前时刻该队列组包括的非空队列的数目,确定在该当前时刻该第i个非空第一队列对应的数据流的目标输出速度;或者
根据在该当前时刻该队列组包括的每个非空队列对应的数据流的实际输入速度所占的比例,确定在该当前时刻该第i个非空第一队列对应的数据流的目标输出速度;或者
根据在该当前时刻分配给该N个数据流的链路总带宽以及在该当前时刻该队列组包括的每个非空队列对应的数据流的权重,确定在该当前时刻该第i个非空第一队列对应的数据流的目标输出速度;
其中,该当前时刻为该第一时刻或者为该第二时刻。
图10示出了本申请实施例提供的第一网络设备1000的硬件结构示意图。
该第一网络设备1000的硬件结构包括:收发器1010、处理器1020和存储器1030。其中,收发器1010、处理器1020和存储器1030之间通过内部连接通路互相通信,传递控制和/或数据信号,该存储器1030用于存储计算机程序,该处理器1010用于从该存储器1030中调用并运行该计算机程序,以控制该收发器1020收发信号。
具体的,收发器1010的功能与图9所示的收发单元910的具体功能相对应,此处不再赘述。
具体的,处理器1020的功能与图9所示的处理单元920的具体功能相对应,此处不再赘述。
应理解,本申请实施例中的处理器可以为中央处理单元(central processingunit,CPU),该处理器还可以是其他通用处理器、数字信号处理器(digital signalprocessor,DSP)、专用集成电路(application specific integrated circuit,ASIC)、现成可编程门阵列(field programmable gate array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
还应理解,本申请实施例中的存储器可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(random access memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的随机存取存储器(random accessmemory,RAM)可用,例如静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data rate SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(direct rambus RAM,DR RAM)。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,高密度数字视频光盘(digital video disc,DVD))、或者半导体介质(例如,固态硬盘(solid state disc,SSD))等。
在本说明书中使用的术语“部件”、“模块”、“系统”等用于表示计算机相关的实体、硬件、固件、硬件和软件的组合、软件、或执行中的软件。例如,部件可以是但不限于,在处理器上运行的进程、处理器、对象、可执行文件、执行线程、程序和/或计算机。通过图示,在计算设备上运行的应用和计算设备都可以是部件。一个或多个部件可驻留在进程和/或执行线程中,部件可位于一个计算机上和/或分布在两个或更多个计算机之间。此外,这些部件可从在上面存储有各种数据结构的各种计算机可读介质执行。部件可例如根据具有一个或多个数据分组(例如来自与本地系统、分布式系统和/或网络间的另一部件交互的二个部件的数据,例如通过信号与其它系统交互的互联网)的信号通过本地和/或远程进程来通信。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请实施例的具体实施方式,但本申请实施例的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请实施例揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请实施例的保护范围之内。因此,本申请实施例的保护范围应以所述权利要求的保护范围为准。

Claims (25)

1.一种队列管理的方法,其特征在于,所述方法包括:
第一网络设备接收第二网络设备发送的N个数据流,所述N个数据流共用同一条链路,N为大于等于2的正整数;
所述第一网络设备确定与所述N个数据流对应的所述第一网络设备的队列组,所述队列组包括M个第一队列,并将每个数据流加入与所述每个数据流对应的所述M个第一队列中的一个第一队列,M为正整数,且1≤M≤N;
所述第一网络设备确定所述M个第一队列中每个非空第一队列对应的队列管理策略;
所述第一网络设备根据所述M个第一队列中每个非空第一队列对应的队列管理策略,管理所述每个非空第一队列。
2.根据权利要求1所述的方法,其特征在于,所述队列组还包括至少一个第二队列,所述第一网络设备确定与所述N个数据流对应的队列组之前,所述方法还包括:
所述第一网络设备确定所述N个数据流包括M个第一数据流和L个第二数据流,L为整数,0≤L<N,且M+L≤N,每个第一数据流携带的数据量大于等于第一阈值,每个第二数据流携带的数据量小于所述第一阈值;或者,每个第一数据流携带的数据包的数目大于等于第二阈值,每个第二数据流携带的数据包的数目小于所述第二阈值;
所述第一网络设备确定与所述N个数据流对应的所述第一网络设备的队列组,所述队列组包括M个第一队列,并将每个数据流加入与所述每个数据流对应的所述队列组中的一个第一队列,包括:
所述第一网络设备确定所述M个第一队列与所述M个第一数据流一一对应,并将所述每个第一数据流加入与所述每个第一数据流对应的第一队列;
所述第一网络设备确定所述至少一个第二队列与所述L个第二数据流对应,并将所述L个第二数据流加入所述至少一个第二队列。
3.根据权利要求1或2所述的方法,其特征在于,所述所述第一网络设备确定所述M个第一队列中每个非空第一队列对应的队列管理策略之前,所述方法还包括:
在第一时刻,所述第一网络设备根据所述第一时刻对应的网络状态,确定所述第i个非空第一队列的第一目标输出速度、所述第i个非空第一队列的第一目标队列长度以及所述第i个非空第一队列的第一丢包率;
在第二时刻,所述第一网络设备根据所述第二时刻对应的网络状态,确定所述第i个非空第一队列的第二目标输出速度;
其中,所述第二时刻大于所述第一时刻,所述第一丢包率为根据所述第一目标队列长度和在所述第一时刻获取的所述第i个非空第一队列的实际队列长度确定的,i为正整数,且1≤i≤M。
4.根据权利要求3所述的方法,其特征在于,所述所述第一网络设备确定所述M个第一队列中每个非空第一队列对应的队列管理策略,包括:
在所述第二时刻,若所述第二目标输出速度与所述第一目标输出速度的差等于零,则所述第一网络设备确定所述第i个非空第一队列的丢包率为所述第一丢包率;
在所述第二时刻,若所述第二目标输出速度与所述第一目标输出速度的差不等于零,则所述第一网络设备确定第二目标队列长度,以及根据所述第二目标队列长度和在所述第二时刻获取的所述第i个非空第一队列的实际队列长度,确定所述第i个非空第一队列的第二丢包率,所述第二目标队列长度为所述第一网络设备根据所述第二时刻对应的网络状态确定的所述第i个非空第一队列的目标队列长度。
5.根据权利要求4所述的方法,其特征在于,所述所述第一网络设备根据所述M个第一队列中每个非空第一队列对应的队列管理策略,管理所述M个第一队列中每个非空第一队列,包括:
在所述第二目标输出速度与所述第一目标输出速度的差等于零的情况下,所述第一网络设备以所述第一丢包率处理所述第i个非空第一队列。
在所述第二目标输出速度与所述第一目标输出速度的差不等于零的情况下,所述第一网络设备将所述第一目标队列长度调整为所述第二目标队列长度,并以所述第二丢包率处理所述第i个非空第一队列。
6.根据权利要求4或5所述的方法,其特征在于,所述第一网络设备根据下列公式确定在当前时刻所述第i个非空第一队列的丢包率,所述当前时刻为所述第一时刻或者为所述第二时刻:
Figure FDA0002607086830000021
其中,在所述当前时刻为所述第一时刻的情况下,pi(t)为所述第一丢包率,qi(t)为在所述第一时刻获取的所述第i个非空第一队列的实际队列长度,βi为所述第一目标队列长度,σi为控制参数,所述控制参数大于等于在所述第一时刻获取的所述第i个非空第一队列对应的数据流的目标输出速度的平方,[]+为非负操作符号,当括号内的数值小于零,[]+结果为零,当括号内的数值大于等于零,[]+结果等于括号内计算的数值;
其中,在所述当前时刻为所述第二时刻的情况下,pi(t)为所述第二丢包率,qi(t)为在所述第二时刻获取的所述第i个非空第一队列的实际队列长度,βi为所述第二目标队列长度,σi为控制参数,所述控制参数大于等于在所述第二时刻获取的所述第i个非空第一队列对应的数据流的目标输出速度的平方,[]+为非负操作符号,当括号内的数值小于零,[]+结果为零,当括号内的数值大于等于零,[]+结果等于括号内计算的数值。
7.根据权利要求4-6任一项所述的方法,其特征在于,所述第一网络设备根据下列公式确定在当前时刻对应的网络状态下所述第i个非空第一队列的目标队列长度,所述当前时刻为所述第一时刻或者为所述第二时刻:
βi=Ci×di
其中,在所述当前时刻为所述第一时刻的情况下,βi为所述第一目标队列长度,Ci为在所述第一时刻所述第i个非空第一队列对应的数据流的目标输出速度,所述在所述第一时刻所述第i个非空第一队列对应的数据流的目标输出速度为根据所述第一时刻对应的网络状态确定的,di为所述第i个非空第一队列的目标排队时间。
其中,在所述当前时刻为所述第二时刻的情况下,βi为所述第二目标队列长度,Ci为在所述第二时刻所述第i个非空第一队列对应的数据流的目标输出速度,所述在所述第二时刻所述第i个非空第一队列对应的数据流的目标输出速度为根据所述第二时刻对应的网络状态确定的,di为所述第i个非空第一队列的目标排队时间。
8.根据权利要求5-7任一项所述的方法,其特征在于,所述第一网络设备以所述第一丢包率处理所述第i个非空第一队列之后,所述方法还包括:
在第三时刻,若实际输入速度大于等于目标输入速度,则所述第一网络设备确定所述第i个非空第一队列的第三丢包率并根据所述第三丢包率处理所述第i个非空第一队列,以及向所述第二网络设备发送第一信息,所述第一指示信息用于指示所述第二网络设备降低所述实际输入速度;
在所述第三时刻,若所述实际输入速度小于所述目标输入速度,则所述第一网络设备向所述第二网络设备发送第二信息,所述第二指示信息用于指示所述第二网络设备增加所述实际输入速度;
其中,在所述第三时刻所述第i个非空第一队列的目标输出速度与所述第二目标输出速度相同,所述实际输入速度为在所述第三时刻获取的所述第i个非空第一队列对应的数据流输入至所述第一网络设备的速度,所述目标输入速度为在所述第三时刻预定义的所述第i个非空第一队列对应的数据流输入至所述第一网络设备的速度。
9.根据权利要求8所述的方法,其特征在于,所述第一网络设备根据下列公式确定所述第三丢包率:
Figure FDA0002607086830000031
其中,δi(xi)为所述第三丢包率,xi为所述实际输入速度,
Figure FDA0002607086830000032
为所述目标输入速度,[]+为非负操作符号,当括号内的数值小于零,[]+结果为零,当括号内的数值大于等于零,[]+结果等于括号内计算的数值。
10.根据权利要求8或9所述的方法,其特征在于,
所述第一信息包括第一指示信息和第一值,所述第二信息包括第二指示信息和所述第一值,所述第一指示信息或所述第二指示信息通过显示拥塞通告ECN携带,所述第一值为所述目标输入速度,所述第一值通过差分服务代码点DSCP域携带。
11.根据权利要求3-9任一项所述的方法,其特征在于,所述第一网络设备根据当前时刻对应的网络状态,确定在所述当前时刻所述第i个非空第一队列对应的数据流的目标输出速度,包括,所述第一网络设备根据以下任意一种方法确定在所述当前时刻所述第i个非空第一队列对应的数据流的目标输出速度:
所述第一网络设备根据在所述当前时刻分配给所述N个数据流的链路总带宽以及在所述当前时刻所述队列组包括的非空队列的数目,确定在所述当前时刻所述第i个非空第一队列对应的数据流的目标输出速度;或者
所述第一网络设备根据在所述当前时刻所述队列组包括的每个非空队列对应的数据流的实际输入速度所占的比例,确定在所述当前时刻所述第i个非空第一队列对应的数据流的目标输出速度;或者
所述第一网络设备根据在所述当前时刻分配给所述N个数据流的链路总带宽以及在所述当前时刻所述队列组包括的每个非空队列对应的数据流的权重,确定在所述当前时刻所述第i个非空第一队列对应的数据流的目标输出速度;
其中,所述当前时刻为所述第一时刻或者为所述第二时刻。
12.一种第一网络设备,其特征在于,所述第一网络设备包括:
收发单元,用于接收第二网络设备发送的N个数据流,所述N个数据流共用同一条链路,N为大于等于2的正整数;
处理单元,用于确定与所述N个数据流对应的所述第一网络设备的队列组,所述队列组包括M个第一队列,并将每个数据流加入与所述每个数据流对应的所述M个第一队列中的一个第一队列,M为正整数,且1≤M≤N;
所述处理单元,还用于确定所述M个第一队列中每个非空第一队列对应的队列管理策略;
所述处理单元,还用于根据所述M个第一队列中每个非空第一队列对应的队列管理策略,管理所述每个非空第一队列。
13.根据权利要求12所述的第一网络设备,其特征在于,所述队列组还包括至少一个第二队列,所述处理单元还用于:
确定所述N个数据流包括M个第一数据流和L个第二数据流,L为整数,0≤L<N,且M+L≤N,每个第一数据流携带的数据量大于等于第一阈值,每个第二数据流携带的数据量小于所述第一阈值;或者,每个第一数据流携带的数据包的数目大于等于第二阈值,每个第二数据流携带的数据包的数目小于所述第二阈值;
确定所述M个第一队列与所述M个第一数据流一一对应,并将所述每个第一数据流加入与所述每个第一数据流对应的第一队列;
确定所述至少一个第二队列与所述L个第二数据流对应,并将所述L个第二数据流加入所述至少一个第二队列。
14.根据权利要求12或13所述的第一网络设备,其特征在于,所述处理单元还用于:
在第一时刻,根据所述第一时刻对应的网络状态,确定所述第i个非空第一队列的第一目标输出速度、所述第i个非空第一队列的第一目标队列长度以及所述第i个非空第一队列的第一丢包率;
在第二时刻,根据所述第二时刻对应的网络状态,确定第二目标输出速度;
其中,所述第二时刻大于所述第一时刻,所述第一丢包率为根据所述第一目标队列长度和在所述第一时刻获取的所述第i个非空第一队列的实际队列长度确定的,i为正整数,且1≤i≤M。
15.根据权利要求14所述的第一网络设备,其特征在于,所述处理单元还用于:
在所述第二时刻,若所述第二目标输出速度与所述第一目标输出速度的差等于零,则确定所述第i个非空第一队列的丢包率为所述第一丢包率;
在所述第二时刻,若所述第二目标输出速度与所述第一目标输出速度的差不等于零,则确定第二目标队列长度,以及根据所述第二目标队列长度和在所述第二时刻获取的所述第i个非空第一队列的实际队列长度,确定所述第i个非空第一队列的第二丢包率,所述第二目标队列长度为所述第一网络设备根据所述第二时刻对应的网络状态确定的所述第i个非空第一队列的目标队列长度。
16.根据权利要求15所述的第一网络设备,其特征在于,所述处理单元还用于:
在所述第二目标输出速度与所述第一目标输出速度的差等于零的情况下,以所述第一丢包率处理所述第i个非空第一队列。
在所述第二目标输出速度与所述第一目标输出速度的差不等于零的情况下,将所述第一目标队列长度调整为所述第二目标队列长度,并以所述第二丢包率处理所述第i个非空第一队列。
17.根据权利要求15或16所述的第一网络设备,其特征在于,
所述处理单元还用于:根据下列公式确定在当前时刻所述第i个非空第一队列的丢包率,所述当前时刻为所述第一时刻或者为所述第二时刻:
Figure FDA0002607086830000051
其中,在所述当前时刻为所述第一时刻的情况下,pi(t)为所述第一丢包率,qi(t)为在所述第一时刻获取的所述第i个非空第一队列的实际队列长度,βi为所述第一目标队列长度,σi为控制参数,所述控制参数大于等于在所述第一时刻获取的所述第i个非空第一队列对应的数据流的目标输出速度的平方,[]+为非负操作符号,当括号内的数值小于零,[]+结果为零,当括号内的数值大于等于零,[]+结果等于括号内计算的数值;
其中,在所述当前时刻为所述第二时刻的情况下,pi(t)为所述第二丢包率,qi(t)为在所述第二时刻获取的所述第i个非空第一队列的实际队列长度,βi为所述第二目标队列长度,σi为控制参数,所述控制参数大于等于在所述第二时刻获取的所述第i个非空第一队列对应的数据流的目标输出速度的平方,[]+为非负操作符号,当括号内的数值小于零,[]+结果为零,当括号内的数值大于等于零,[]+结果等于括号内计算的数值。
18.根据权利要求15-17任一项所述的第一网络设备,其特征在于,
所述处理单元还用于:根据下列公式确定在当前时刻对应的网络状态下所述第i个非空第一队列的目标队列长度,所述当前时刻为所述第一时刻或者为所述第二时刻:
βi=Ci×di
其中,在所述当前时刻为所述第一时刻的情况下,βi为所述第一目标队列长度,Ci为在所述第一时刻所述第i个非空第一队列对应的数据流的目标输出速度,所述在所述第一时刻所述第i个非空第一队列对应的数据流的目标输出速度为根据所述第一时刻对应的网络状态确定的,di为所述第i个非空第一队列的目标排队时间。
其中,在所述当前时刻为所述第二时刻的情况下,βi为所述第二目标队列长度,Ci为在所述第二时刻所述第i个非空第一队列对应的数据流的目标输出速度,所述在所述第二时刻所述第i个非空第一队列对应的数据流的目标输出速度为根据所述第二时刻对应的网络状态确定的,di为所述第i个非空第一队列的目标排队时间。
19.根据权利要求16-18任一项所述的第一网络设备,其特征在于,所述处理单元还用于:
在第三时刻,若实际输入速度大于等于目标输入速度,则所述第一网络设备确定所述第i个非空第一队列的第三丢包率并根据所述第三丢包率处理所述第i个非空第一队列,以及向所述第二网络设备发送第一信息,所述第一指示信息用于指示所述第二网络设备降低所述实际输入速度;
在所述第三时刻,若所述实际输入速度小于所述目标输入速度,则所述第一网络设备向所述第二网络设备发送第二信息,所述第二指示信息用于指示所述第二网络设备增加所述实际输入速度;
其中,在所述第三时刻所述第i个非空第一队列的目标输出速度与所述第二目标输出速度相同,所述实际输入速度为在所述第三时刻获取的所述第i个非空第一队列对应的数据流输入至所述第一网络设备的速度,所述目标输入速度为在所述第三时刻预定义的所述第i个非空第一队列对应的数据流输入至所述第一网络设备的速度。
20.根据权利要求18所述的第一网络设备,其特征在于,
所述处理单元还用于:根据下列公式确定所述第三丢包率:
Figure FDA0002607086830000061
其中,δi(xi)为所述第三丢包率,xi为所述实际输入速度,
Figure FDA0002607086830000062
为所述目标输入速度,[]+为非负操作符号,当括号内的数值小于零,[]+结果为零,当括号内的数值大于等于零,[]+结果等于括号内计算的数值。
21.根据权利要求19或20所述的第一网络设备,其特征在于,
所述第一信息包括第一指示信息和第一值,所述第二信息包括第二指示信息和所述第一值,所述第一指示信息或所述第二指示信息通过显示拥塞通告ECN携带,所述第一值为所述目标输入速度,所述第一值通过差分服务代码点DSCP域携带。
22.根据权利要求14-21任一项所述的第一网络设备,其特征在于,所述处理单元,还用于根据以下任意一种方法确定在所述当前时刻所述第i个非空第一队列对应的数据流的目标输出速度:
根据在所述当前时刻分配给所述N个数据流的链路总带宽以及在所述当前时刻所述队列组包括的非空队列的数目,确定在所述当前时刻所述第i个非空第一队列对应的数据流的目标输出速度;或者
根据在所述当前时刻所述队列组包括的每个非空队列对应的数据流的实际输入速度所占的比例,确定在所述当前时刻所述第i个非空第一队列对应的数据流的目标输出速度;或者
根据在所述当前时刻分配给所述N个数据流的链路总带宽以及在所述当前时刻所述队列组包括的每个非空队列对应的数据流的权重,确定在所述当前时刻所述第i个非空第一队列对应的数据流的目标输出速度;
其中,所述当前时刻为所述第一时刻或者为所述第二时刻。
23.一种第一网络设备,包括处理器和存储器,所述存储器用于存储指令,所述处理器用于读取所述存储器中存储的指令,以执行权利要求1至11中任一项所述的方法。
24.一种计算机可读存储介质,包括计算机程序,当所述计算机程序在计算机上运行时,所述计算机执行权利要求1至11中任一项所述的方法。
25.一种芯片,其特征在于,所述芯片包括处理器与数据接口,所述处理器通过所述数据接口读取存储器上存储的指令,以执行权利要求1至11中任一项所述的方法。
CN202010742065.9A 2020-07-29 2020-07-29 队列管理的方法和网络设备 Pending CN114095431A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010742065.9A CN114095431A (zh) 2020-07-29 2020-07-29 队列管理的方法和网络设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010742065.9A CN114095431A (zh) 2020-07-29 2020-07-29 队列管理的方法和网络设备

Publications (1)

Publication Number Publication Date
CN114095431A true CN114095431A (zh) 2022-02-25

Family

ID=80294870

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010742065.9A Pending CN114095431A (zh) 2020-07-29 2020-07-29 队列管理的方法和网络设备

Country Status (1)

Country Link
CN (1) CN114095431A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114884902A (zh) * 2022-05-09 2022-08-09 中国联合网络通信集团有限公司 一种数据流传输方法、装置、网络设备及存储介质

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114884902A (zh) * 2022-05-09 2022-08-09 中国联合网络通信集团有限公司 一种数据流传输方法、装置、网络设备及存储介质

Similar Documents

Publication Publication Date Title
US10764215B2 (en) Programmable broadband gateway hierarchical output queueing
US20220200923A1 (en) Dynamic buffer management in data-driven intelligent network
Hoeiland-Joergensen et al. The flow queue codel packet scheduler and active queue management algorithm
US11316795B2 (en) Network flow control method and network device
CN109120544B (zh) 一种数据中心网络中基于主机端流量调度的传输控制方法
CN108259383B (zh) 一种数据的传输方法和网络设备
US8248930B2 (en) Method and apparatus for a network queuing engine and congestion management gateway
US8547846B1 (en) Method and apparatus providing precedence drop quality of service (PDQoS) with class-based latency differentiation
US7292578B1 (en) Flexible, high performance support for QoS on an arbitrary number of queues
CN112242956A (zh) 流速控制方法和装置
CN109995608B (zh) 网络速率计算方法和装置
Shpiner et al. A switch-based approach to throughput collapse and starvation in data centers
CN114095431A (zh) 队列管理的方法和网络设备
Patel et al. Comparative analysis of congestion control algorithms using ns-2
CN112751776A (zh) 拥塞控制方法和相关装置
Astuti Packet handling
CN111224884B (zh) 拥塞控制的处理方法、报文转发装置及报文接收装置
US20230254259A1 (en) System And Method For Using Dynamic Thresholds With Route Isolation For Heterogeneous Traffic In Shared Memory Packet Buffers
Zhang et al. An efficient scheduling scheme for XMP and DCTCP mixed flows in commodity data centers
US20240056385A1 (en) Switch device for facilitating switching in data-driven intelligent network
Mareev et al. Multipoint data transmission issues in high bandwidth-delay product TCP/IP networks
CN113746746A (zh) 数据处理方法及设备
CN115883457A (zh) 一种通信方法以及路由设备
Zhao et al. Priority-based and Throughput-guaranteed Transport protocol for data center networks
Gao et al. Feedback control for router congestion resolution

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination