CN114095454A - 发送数据包的方法及网络设备 - Google Patents

发送数据包的方法及网络设备 Download PDF

Info

Publication number
CN114095454A
CN114095454A CN202010760188.5A CN202010760188A CN114095454A CN 114095454 A CN114095454 A CN 114095454A CN 202010760188 A CN202010760188 A CN 202010760188A CN 114095454 A CN114095454 A CN 114095454A
Authority
CN
China
Prior art keywords
time
network device
queue
data packet
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
CN202010760188.5A
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 CN202010760188.5A priority Critical patent/CN114095454A/zh
Priority to PCT/CN2021/104191 priority patent/WO2022022222A1/zh
Priority to EP21851520.3A priority patent/EP4184887A4/en
Publication of CN114095454A publication Critical patent/CN114095454A/zh
Priority to US18/159,875 priority patent/US20230171201A1/en
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/50Queue scheduling
    • H04L47/56Queue scheduling implementing delay-aware scheduling
    • H04L47/564Attaching a deadline to packets, e.g. earliest due date first
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/625Queue scheduling characterised by scheduling criteria for service slots or service orders
    • H04L47/6275Queue scheduling characterised by scheduling criteria for service slots or service orders based on priority
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/24Traffic characterised by specific attributes, e.g. priority or QoS
    • H04L47/2416Real-time traffic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/28Flow control; Congestion control in relation to timing considerations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/28Flow control; Congestion control in relation to timing considerations
    • H04L47/283Flow control; Congestion control in relation to timing considerations in response to processing delays, e.g. caused by jitter or round trip time [RTT]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/56Queue scheduling implementing delay-aware scheduling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/56Queue scheduling implementing delay-aware scheduling
    • H04L47/568Calendar queues or timing rings
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/50Queue scheduling
    • H04L47/62Queue scheduling characterised by scheduling criteria
    • H04L47/622Queue service order
    • H04L47/6225Fixed service order, e.g. Round Robin
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • H04L49/3018Input queuing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/30Peripheral units, e.g. input or output ports
    • H04L49/3027Output queuing

Landscapes

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

Abstract

本申请实施例提供了一种发送数据包的方法,该方法包括:第二网络设备可以根据预先定义的第一时延确定数据包在第一网络设备中的剩余处理时间,在该剩余处理时间大于零的情况下,以该数据包进入至该第二网络设备中的一个队列的时刻为起始时刻,经过一段时间到该数据包对应的第二参考时刻为止,该剩余处理时间在第二网络设备中被消耗掉,从而可以保证该数据包通过第一网络设备和第二网络设备转发后的确定性时延和抖动,进一步使得该数据包所在的流进入第二网络设备的形状和该数据包所在的流被第二网络设备输出后的形状相同。

Description

发送数据包的方法及网络设备
技术领域
本申请涉及通信技术领域,并且更具体地,涉及发送数据包的方法及网络设备。
背景技术
确定性时延是指数据包在服从一定突发性要求的前提下,数据包传输所经历的时延(delay)及抖动(jitter)满足上界。如果要满足数据包端到端的确定性时延及抖动,就需要实现规模可扩展的数据面确定性数据包调度。
现有的调度方法(例如加权公平队列(weighted fair queue)、循环队列转发(cyclic queueing and forwarding,CAF)等)都无法满足确定性时延的需求。
发明内容
本申请提供一种发送数据包的方法及网络设备,在不同的网络场景情况下,能够保证网络端到端的确定性时延和抖动。
第一方面,提供了一种发送数据包的方法,其特征在于,该方法包括:
第二网络设备在第一时刻接收第一网络设备发送的数据包;
该第二网络设备根据该数据包携带的时间信息,确定第二参考时刻,该第二参考时刻为指导该数据包进入第二队列系统中的队列的参考时刻,该第二队列系统为该第二网络设备的队列系统,该时间信息用于指示该数据包通过该第一网络设备的第一剩余处理时间,该第一剩余处理时间为第一时延与第一处理时间的差,该第一时延为不小于第一理论时间上限与第一传输时间的差的绝对值的值,该第一理论时间上限为第一参考时刻至该第二参考时刻的理论处理时间上限,该第一参考时刻为指导该数据包进入第一队列系统中的队列的参考时刻,该第一队列系统为该第一网络设备的队列系统,该第一传输时间为该数据包被该第一网络设备输出的第一输出时刻至该第一时刻的实际传输时间,该第一处理时间为该第一参考时刻至该数据包被该第一网络设备输出的第一输出时刻的实际处理时间;
该第二网络设备根据该第二参考时刻从该第二队列系统包括的多个队列中确定目标队列并将该数据包加入该目标队列;
该第二网络设备根据该第二队列系统对应的调度规则将该数据包发送至第三网络设备。
在上述技术方案中,第二网络设备可以根据预先定义的第一时延确定该数据包在第一网络设备中的剩余处理时间,当该剩余处理时间大于零时,以该数据包进入至该第二网络设备中的一个队列(即目标队列的一例)的时刻为起始时刻,经过一段时间到该数据包对应的第二参考时刻为止,该剩余处理时间在第二网络设备中被消耗掉,从而可以保证该数据包通过第一网络设备和第二网络设备转发后的确定性时延和抖动,进一步使得该数据包所在的流进入第二网络设备的形状和该数据包所在的流被第二网络设备输出后的形状相同。
结合第一方面,在第一方面的某些实现方式中,该第二队列系统包括的多个队列与多个预设时刻一一对应,该多个预设时刻中任意两个相邻预设时刻的差为第一值,该该第二网络设备根据该第二参考时刻从该第二队列系统包括的多个队列中确定目标队列,包括:
该第二网络设备根据该第二参考时刻,确定第一目标时刻对应的该第二队列系统包括的多个队列中的一个队列为该目标队列,该第一目标时刻为该第二参考时刻与第二值的和,该第二值为该第二参考时刻与第三时刻的差的绝对值加上该第一值的整数倍,该第二参考时刻与该第三时刻之间不包括该多个预设时刻中的任一个时刻,该第三时刻是该多个预设时刻中的一个时刻且该第三时刻大于该第二参考时刻,该第一目标时刻是该多个预设时刻中的一个时刻。
结合第一方面,在第一方面的某些实现方式中,该第二网络设备根据该数据包携带的时间信息,确定第二参考时刻,包括:
该第二网络设备根据该第一时延和该第一处理时间,确定该第二参考时刻。
结合第一方面,在第一方面的某些实现方式中,该第二网络设备根据该第一时延和该第一处理时间,确定该第二参考时刻,包括:
该第二网络设备根据该第一时延、该第一参考时刻、该数据包被该第一网络设备输出的第一输出时刻和该第一时刻,确定该第二参考时刻。
结合第一方面,在第一方面的某些实现方式中,该该第二网络设备根据该第一时延、该第一参考时刻、该数据包被该第一网络设备输出的第一输出时刻和该第一时刻,确定该第二参考时刻,包括:该第二网络设备根据以下公式确定该第二参考时刻:
Figure BDA0002612862540000021
其中,E2为该第二参考时刻,
Figure BDA0002612862540000022
为该第一时刻,
Figure BDA0002612862540000023
为该第一时延,
Figure BDA0002612862540000024
为该数据包被该第一网络设备输出的第一输出时刻,E1为该第一参考时刻。
结合第一方面,在第一方面的某些实现方式中,该该第二网络设备根据该第一时延和该第一处理时间,确定该第二参考时刻,包括:
该第二网络设备根据该第一时延、该第一参考时刻、该数据包被该第一网络设备输出的第一输出时刻、该数据包通过该第二网络设备的交换结构处理后的时刻和该第一时刻,确定该第二参考时刻,其中该数据包通过该第二网络设备的交换结构处理后的时刻小于该第二参考时刻。
结合第一方面,在第一方面的某些实现方式中,该该第二网络设备根据该第一时延、该第一参考时刻、该数据包被该第一网络设备输出的第一输出时刻、该数据包通过该第二网络设备的交换结构处理后的时刻和该第一时刻,确定该第二参考时刻,包括:该第二网络设备根据以下公式确定该第二参考时刻:
Figure BDA0002612862540000025
其中,E2为该第二参考时刻,
Figure BDA0002612862540000026
为该数据包通过该第二网络设备的交换结构处理后的时刻,
Figure BDA0002612862540000027
为该第一时延,
Figure BDA0002612862540000028
为该数据包被该第一网络设备输出的第一输出时刻,E1为该第一参考时刻,
Figure BDA0002612862540000029
为该第一时刻。
结合第一方面,在第一方面的某些实现方式中,该时间信息包括第一时间值,该第一时间值为该第一剩余处理时间。
结合第一方面,在第一方面的某些实现方式中,该时间信息包括第一指示信息,该第一指示信息用于指示该第一处理时间。
结合第一方面,在第一方面的某些实现方式中,该第一指示信息包括第二时间值,该第二时间值为该第一处理时间。
结合第一方面,在第一方面的某些实现方式中,该第一指示信息包括第三时间值和第四时间值,该第三时间值为该数据包被该第一网络设备输出的第一输出时刻,该第四时间值为该第一参考时刻。
结合第一方面,在第一方面的某些实现方式中,该时间信息还包括第二指示信息,该第二指示信息用于指示该第一时延。
结合第一方面,在第一方面的某些实现方式中,该该第二网络设备根据该第二队列系统对应的调度规则将该数据包发送至该第三网络设备,包括:
该第二网络设备确定该目标队列为该第二队列系统包括的多个队列中当前时刻被调度的队列,以及该目标队列为开启状态,该第二网络设备将该数据包发送至该第三网络设备。
结合第一方面,在第一方面的某些实现方式中,该方法还包括:
该第二网络设备在该目标队列满足第一预设条件的情况下,确定关闭该目标队列。
结合第一方面,在第一方面的某些实现方式中,在该第二网络设备确定关闭该目标队列之后,该方法还包括:
该第二网络设备根据第一信息,确定第二目标时刻,该第二目标时刻对应于该目标队列,该第二目标时刻为在第一目标时刻后该目标队列对应的开启的时刻,该第二目标时刻大于多个预设时刻中的任意一个预设时刻,该第一信息包括该第二队列系统包括的每个队列对应的调度顺序和该第二队列系统包括的每个队列对应的开启的时刻;
其中,该第二队列系统包括的多个队列与该多个预设时刻一一对应,该多个预设时刻中任意两个相邻预设时刻的差为第一值,该第一目标时刻对应的该第二队列系统包括的多个队列中的一个队列为该目标队列,该第一目标时刻为该第二参考时刻与第二值的和,该第二值为该第二参考时刻与第三时刻的差的绝对值加上该第一值的整数倍,该第二参考时刻与该第三时刻之间不包括该多个预设时刻中的任一个时刻,该第三时刻是该多个预设时刻中的一个时刻且该第三时刻大于该第二参考时刻,该第一目标时刻是该多个预设时刻中的一个时刻。
结合第一方面,在第一方面的某些实现方式中,该第二网络设备确定该目标队列为该第二队列系统包括的多个队列中当前时刻被调度的队列,包括:
当该第二网络设备确定该目标队列为该第二队列系统包括的多个队列中优先级最高的队列时,该第二网络设备确定该目标队列为该第二队列系统包括的多个队列中当前时刻被调度的队列;
在该第二网络设备确定关闭该目标队列之后,该方法还包括:
该第二网络设备将该目标队列的优先级设置为该第二队列系统包括的多个队列中优先级最低的队列,并将该第二队列系统包括的多个队列中除该目标队列之外的队列的优先级提升。
结合第一方面,在第一方面的某些实现方式中,该第二队列系统包括的多个队列与多个预设调度顺序一一对应,
该第二网络设备确定该目标队列为该第二队列系统包括的多个队列中当前时刻被调度的队列,包括:
当该第二网络设备根据该多个预设调度顺序确定该目标队列对应的预设调度顺序为该第二网络设备在该当前时刻调度的队列对应的调度顺序时,该第二网络设备确定该目标队列为该第二队列系统包括的多个队列中当前时刻被调度的队列。
结合第一方面,在第一方面的某些实现方式中,该第一预设条件包括:该目标队列为空队列,且该目标队列的开启时长大于等于第一值,该第一值为多个预设时刻中任意两个相邻预设时刻的差,该多个预设时刻与该第二队列系统包括的多个队列一一对应。
第二方面,提供了一种第二网络设备,其特征在于,该第二网络设备包括:
收发单元,用于在第一时刻接收第一网络设备发送的数据包;
处理单元,用于根据该数据包携带的时间信息,确定第二参考时刻,该第二参考时刻为指导该数据包进入第二队列系统中的队列的参考时刻,该第二队列系统为该第二网络设备的队列系统,该时间信息用于指示该数据包通过该第一网络设备的第一剩余处理时间,该第一剩余处理时间为第一时延与第一处理时间的差,该第一时延为不小于第一理论时间上限与第一传输时间的差的绝对值的值,该第一理论时间上限为第一参考时刻至该第二参考时刻的理论处理时间上限,该第一参考时刻为指导该数据包进入第一队列系统中的队列的参考时刻,该第一队列系统为该第一网络设备的队列系统,该第一传输时间为该数据包被该第一网络设备输出的第一输出时刻至该第一时刻的实际传输时间,该第一处理时间为该第一参考时刻至该数据包被该第一网络设备输出的第一输出时刻的实际处理时间;
该处理单元,还用于根据该第二参考时刻从该第二队列系统包括的多个队列中确定目标队列并将该数据包加入该目标队列;
该处理单元,还用于根据该第二队列系统对应的调度规则将该数据包发送至第三网络设备。
在上述技术方案中,第二网络设备可以根据预先定义的第一时延确定该数据包在第一网络设备中的剩余处理时间,当该剩余处理时间大于零时,以该数据包进入至该第二网络设备中的一个队列(即目标队列的一例)的时刻为起始时刻,经过一段时间到该数据包对应的第二参考时刻为止,该剩余处理时间在第二网络设备中被消耗掉,从而可以保证该数据包通过第一网络设备和第二网络设备转发后的确定性时延和抖动,进一步使得该数据包所在的流进入第二网络设备的形状和该数据包所在的流被第二网络设备输出后的形状相同。
结合第二方面,在第二方面的某些实现方式中,该第二队列系统包括的多个队列与多个预设时刻一一对应,
该处理单元还用于:
该第二参考时刻,确定第一目标时刻对应的该第二队列系统包括的多个队列中的一个队列为该目标队列,该第一目标时刻为该第二参考时刻与第二值的和,该第二值为该第二参考时刻与第三时刻的差的绝对值加上该第一值的整数倍,该第二参考时刻与该第三时刻之间不包括该多个预设时刻中的任一个时刻,该第三时刻是该多个预设时刻中的一个时刻且该第三时刻大于该第二参考时刻,该第一目标时刻是该多个预设时刻中的一个时刻。
结合第二方面,在第二方面的某些实现方式中,该处理单元还用于:
根据该第一时延和该第一处理时间,确定该第二参考时刻。
结合第二方面,在第二方面的某些实现方式中,该处理单元还用于:
根据该第一时延、该第一参考时刻、该数据包被该第一网络设备输出的第一输出时刻和该第一时刻,确定该第二参考时刻。
结合第二方面,在第二方面的某些实现方式中,该处理单元还用于:
根据以下公式确定该第二参考时刻:
Figure BDA0002612862540000051
其中,E2为该第二参考时刻,
Figure BDA0002612862540000052
为该第一时刻,
Figure BDA0002612862540000053
为该第一时延,
Figure BDA0002612862540000054
为该数据包被该第一网络设备输出的第一输出时刻,E1为该第一参考时刻。
结合第二方面,在第二方面的某些实现方式中,该处理单元还用于:
根据该第一时延、该第一参考时刻、该数据包被该第一网络设备输出的第一输出时刻、该数据包通过该第二网络设备的交换结构处理后的时刻和该第一时刻,确定该第二参考时刻,其中该数据包通过该第二网络设备的交换结构处理后的时刻小于该第二参考时刻。
结合第二方面,在第二方面的某些实现方式中,该处理单元还用于:
根据以下公式确定该第二参考时刻:
Figure BDA0002612862540000055
其中,E2为该第二参考时刻,
Figure BDA0002612862540000056
为该数据包通过该第二网络设备的交换结构处理后的时刻,
Figure BDA0002612862540000057
为该第一时延,
Figure BDA0002612862540000058
为该数据包被该第一网络设备输出的第一输出时刻,E1为该第一参考时刻,
Figure BDA0002612862540000059
为该第一时刻。
结合第二方面,在第二方面的某些实现方式中,该时间信息包括第一时间值,该第一时间值为该第一剩余处理时间。
结合第二方面,在第二方面的某些实现方式中,该时间信息包括第一指示信息,该第一指示信息用于指示该第一处理时间。
结合第二方面,在第二方面的某些实现方式中,该第一指示信息包括第二时间值,该第二时间值为该第一处理时间。
结合第二方面,在第二方面的某些实现方式中,该第一指示信息包括第三时间值和第四时间值,该第三时间值为该数据包被该第一网络设备输出的第一输出时刻,该第四时间值为该第一参考时刻。
结合第二方面,在第二方面的某些实现方式中,该时间信息还包括第二指示信息,该第二指示信息用于指示该第一时延。
结合第二方面,在第二方面的某些实现方式中,该处理单元还用于:
确定该目标队列为该第二队列系统包括的多个队列中当前时刻被调度的队列,以及该目标队列为开启状态;
该收发单元还用于:根据该第二队列系统对应的调度规则将该数据包发送至第三网络设备。
结合第二方面,在第二方面的某些实现方式中,该处理单元还用于:
在该目标队列满足第一预设条件的情况下,确定关闭该目标队列。
结合第二方面,在第二方面的某些实现方式中,根据第一信息,确定第二目标时刻,该第二目标时刻对应于该目标队列,该第二目标时刻为在第一目标时刻后该目标队列对应的开启的时刻,该第二目标时刻大于多个预设时刻中的任意一个预设时刻,该第一信息包括该第二队列系统包括的每个队列对应的调度顺序和该第二队列系统包括的每个队列对应的开启的时刻;
其中,该第二队列系统包括的多个队列与该多个预设时刻一一对应,该多个预设时刻中任意两个相邻预设时刻的差为第一值,该第一目标时刻对应的该第二队列系统包括的多个队列中的一个队列为该目标队列,该第一目标时刻为该第二参考时刻与第二值的和,该第二值为该第二参考时刻与第三时刻的差的绝对值加上该第一值的整数倍,该第二参考时刻与该第三时刻之间不包括该多个预设时刻中的任一个时刻,该第三时刻是该多个预设时刻中的一个时刻且该第三时刻大于该第二参考时刻,该第一目标时刻是该多个预设时刻中的一个时刻。
结合第二方面,在第二方面的某些实现方式中,该处理单元还用于:
当确定该目标队列为该第二队列系统包括的多个队列中优先级最高的队列时,确定该目标队列为该第二队列系统包括的多个队列中当前时刻被调度的队列;
将该目标队列的优先级设置为该第二队列系统包括的多个队列中优先级最低的队列,并将该第二队列系统包括的多个队列中除该目标队列之外的队列的优先级提升。
结合第二方面,在第二方面的某些实现方式中,该第二队列系统包括的多个队列与多个预设调度顺序一一对应,
该处理单元还用于:
当根据该多个预设调度顺序确定该目标队列对应的预设调度顺序为该第二网络设备在该当前时刻调度的队列对应的调度顺序时,确定该目标队列为该第二队列系统包括的多个队列中当前时刻被调度的队列。
结合第二方面,在第二方面的某些实现方式中,该第一预设条件包括:该目标队列为空队列,且该目标队列的开启时长大于等于第一值,该第一值为多个预设时刻中任意两个相邻预设时刻的差,该多个预设时刻与该第二队列系统包括的多个队列一一对应。
第三方面,提供了一种第二网络设备,该第二网络设备包括存储器和处理器,该存储器用于存储计算机执行指令,该处理器用于读取该存储器中存储的计算机执行指令,使得该装置执行上述第一方面及第一方面的任意可能的实现方式中的方法。
第四方面,提供了一种处理器,包括:输入电路、输出电路和处理电路。所述处理电路用于通过所述输入电路接收信号,并通过所述输出电路发射信号,使得所述第一方面中的任一方面,以及第一方面中任一种可能实现方式中的方法被实现。
在具体实现过程中,上述处理器可以为芯片系统,输入电路可以为输入管脚,输出电路可以为输出管脚,处理电路可以为晶体管、门电路、触发器和各种逻辑电路等。输入电路所接收的输入的信号可以是由例如但不限于接收器接收并输入的,输出电路所输出的信号可以是例如但不限于输出给发射器并由发射器发射的,且输入电路和输出电路可以是同一电路,该电路在不同的时刻分别用作输入电路和输出电路。本申请实施例对处理器及各种电路的具体实现方式不做限定。
第五方面,提供了一种处理装置,包括处理器和存储器。该处理器用于读取存储器中存储的计算机执行指令,并可通过接收器接收信号,通过发射器发射信号,以执行第一方面以及第一方面任一种可能实现方式中的方法。
可选地,所述处理器为一个或多个,所述存储器为一个或多个。
可选地,所述存储器可以与所述处理器集成在一起,或者所述存储器与处理器分离设置。
在具体实现过程中,存储器可以为非瞬时性(non-transitory)存储器,例如只读存储器(read only memory,ROM),其可以与处理器集成在同一块芯片系统上,也可以分别设置在不同的芯片系统上,本申请实施例对存储器的类型以及存储器与处理器的设置方式不做限定。
应理解,相关的数据交互过程例如发送指示信息可以为从处理器输出指示信息的过程,接收能力信息可以为处理器接收输入能力信息的过程。具体地,处理输出的数据可以输出给发射器,处理器接收的输入数据可以来自接收器。其中,发射器和接收器可以统称为收发器。
第六方面,提供了一种计算机可读存储介质,用于存储计算机程序,该计算机程序包括用于执行上述第一方面及上述第一方面的任意可能的实现方式中的方法的计算机执行指令。
第七方面,提供了一种包含计算机执行指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面及上述第一方面的任意可能的实现方式中的方法。
第八方面,提供了一种芯片系统,包括至少一个处理器和接口;所述至少一个所述处理器,用于调用并运行计算机程序,以使所述芯片系统执行上述第一方面及上述第一方面的任意可能的实现方式中的方法。
第九方面,提供了一种系统,包括上述的第二网络设备。
附图说明
图1是突发累积形成原因的示意图。
图2是能够应用本申请实施例的系统架构200的示意图。
图3是能够实现本申请实施例的路由器的示意性结构框图。
图4出了本申请实施例提供的发送数据包的方法400的示意性流程图。
图5是本申请实施例提供的时间信息在报头中的封装格式。
图6是本申请实施例提供的第二网络设备在上行板确定第二参考时刻的时序图。
图7是本申请实施例提供的另一种第二网络设备在上行板确定第二参考时刻的时序图。
图8是本申请实施例提供的第二网络设备在下行板确定第二参考时刻的时序图。
图9是本申请实施例提供的另一种第二网络设备在下行板确定第二参考时刻的时序图。
图10是本申请实施例提供的第二队列系统的示意图。
图11是本申请实施例提供的数据包通过网络设备转发后的确定性时延的示意图。
图12是本申请实施例提供的发送数据包的方法的一个具体实施例。
图13是本申请实施例提供的数据包通过网络设备转发后的确定性时延的示意图。
图14是本申请实施提供的第二网络设备的功能模块。
图15是本申请实施提供的发送数据包的网络设备的功能模块。
图16是本申请实施提供的另一种发送数据包的网络设备的功能模块。
图17是本申请实施例提供的第二网络设备1700的示意性结构图。
图18是本申请实施例提供的第二网络设备2000的硬件结构示意图。
具体实施方式
下面将结合附图,对本申请中的技术方案进行描述。
本申请将围绕可包括多个设备、组件、模块等的系统来呈现各个方面、实施例或特征。应当理解和明白的是,各个系统可以包括另外的设备、组件、模块等,并且/或者可以并不包括结合附图讨论的所有设备、组件、模块等。此外,还可以使用这些方案的组合。
另外,在本申请实施例中,“示例的”、“例如”等词用于表示作例子、例证或说明。本申请中被描述为“示例”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用示例的一词旨在以具体方式呈现概念。
本申请实施例中,“相应的(corresponding,relevant)”和“对应的(corresponding)”有时可以混用,应当指出的是,在不强调其区别时,其所要表达的含义是一致的。
本申请实施例中,有时候下标如W1可能会笔误为非下标的形式如W1,在不强调其区别时,其所要表达的含义是一致的。
本申请实施例描述的网络架构以及业务场景是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域普通技术人员可知,随着网络架构的演变和新业务场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
在本说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
本申请中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,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可以是单个,也可以是多个。
突发累积
互联网协议(internet protocol,IP)网络中,由于突发累积的存在,导致其无法为某条流提供确定性的端到端时延和抖动。
突发累积是导致时延不确定的根本原因。突发累积形成的原因是不同数据包之间的相互挤压。
图1示出了突发累积形成原因的示意图。
如图1中三条流(流1、流2和流3)同时到达网络设备101的时候是完全均匀的,由于网络设备101只能线速处理数据包,导致流2收到其他两条流的挤压,从而两个连续数据包紧挨在了一起,突发度增加。以上过程若干次循环之后,会导致某跳的流形成一个难以预测大突发,大突发进一步会挤压其他流,导致其他流的时延增加,并且难以预测。微突发逐跳累积是时延不确定性的根本原因。现有解决上述问题的方法要么依赖于全网设备的时间同步,要么对传输距离有限制,很难适用于大规模IP网络。
图2示出了能够应用本申请实施例的系统架构200的示意图。如图2所示,该系统架构200可以由边缘网络210、边缘网络220和核心网络230组成。
边缘网络210中包括用户设备211。边缘网络220包括用户设备221。核心网络230包括入口边缘(ingress edge)设备231、网络设备232、网络设备233、网络设备234和出口边缘(egress edge)设备235。
参见图2,用户设备211可以通过核心网络230与用户设备221进行通信。
本申请实施例可以由核心网络230中的设备实现。例如,可以由入口边缘设备231和网络设备232实现,也可以由网络设备231至网络设备235实现,还可以由网络设备232至出口边缘设备235实现。
下面,以网络设备231至网络设备235实现本申请实施例的方法为例进行介绍。
当入口边缘设备231是该多个流进入核心网络230中的第一个网络设备时,入口边缘设备231也可以称为第一跳的网络设备或者首跳网络设备。在此情况下,网络设备232是第二跳的网络设备,网络设备233是第三跳的网络设备,网络设备234是第四跳的网络设备,出口边缘设备235是第五跳的网络设备。
入口边缘设备231可以接收到多个业务流。入口边缘设备231对多个业务流中的每个业务流的处理方式是相同的。入口边缘设备231接收到的每个业务流的流量模型满足下列公式:
Ai(t)=ri×t+Bi
其中,t为时间;Ai(t)为t时间内第i条业务流的数据总流量;ri为第i条业务流需要的带宽,Bi为第i条业务流的最大突发度;ri为平均带宽,该平均带宽可以理解为第i条业务流在统计意义上的平均速度。
上述业务流有时也可称为流量(traffic)。
当入口边缘设备231接收到的某个目标流不满足上述流量模型时,入口边缘设备231可以利用现有的整形算法(例如,漏桶(leaky bucket)算法、令牌桶算法(tokenbucket)算法等)对该目标流进行整形,使得整形后的该目标流的流量模型满足上述流量模型。
能够实现本申请实施例的设备可以是路由器。能够实现本申请实施例的设备也可以是入口网关设备(例如,交换机)。
可以理解的是,图2仅是为了帮助本领域技术人员理解本申请方法的一个系统架构的示意图,而并非是对能够应用本申请技术方案的系统架构的限制。例如,在一些实现方式中,该系统架构200可以包括更多数目的网络设备。例如,在一些实现方式中,边缘网络210或边缘网络220中还可以包括更多数目的用户设备。
图3示出了能够实现本申请实施例的路由器的示意性结构框图。如图3所示,路由器300包括上行板301、交换结构302和下行板303。
上行板也可以称为上行接口板。上行板301可以包括多个输入端口。上行板可以输入端口接收到的数据包(packet)进行拆封等处理,利用转发表查找输出端口。一旦查找到输出端口(为了便于描述,以下将查找到的输出端口称为目标输出端口),数据包就会被发送至交换结构302。
交换结构302将接收到的数据包转发到一个该目标输出端口。具体地,交换结构302将接收到的数据包转发到包括该目标输出端口的下行板303上。下行板也可以称为下行接口板。下行板303中包括多个输出端口。下行板303接收来自于交换结构302的数据包。下行板可以对接收到的数据包进行缓存管理、封装等处理,然后通过该目标输出端口将该数据包发送至下一跳网络设备。
可以理解的是,如图3所示的路由器仅示出了一个上行板301和一个下行板303。在一些实施例中,路由器可以包括多个上行板和/或多个下行板。
图4出了本申请实施例提供的发送数据包的方法400的示意性流程图。
如图4所示,该方法400包括步骤410至步骤440,该方法400可以应用于图2所示的核心网230中,下面对步骤410至步骤440进行详细介绍。
步骤410,第二网络设备在第一时刻接收第一网络设备发送的数据包。
本申请实施例对网络设备的类型不做具体限定,例如,网络设备可以是交换机、路由器等。网络设备有时也可称为网络节点(network node)或跳(hop)。
在本申请实施例中,第二网络设备为第一网络设备的下一跳网络设备。
参见图2,当第一网络设备为入口边缘设备231时,第二网络设备可以为网络设备232。当第一网络设备为网络设备232时,第二网络设备可以为网络设备234。当第一网络设备为网络设备234时,第二网络设备可以为出口边缘设备235。
可选地,在步骤410之前还可以包括,第一网络设备接收数据包。当第一网络设备为接收数据包的第一个网络设备(即首跳设备)时,第一网络设备可以利用算法(例如,漏桶(leaky bucket)算法)对第一网络设备接收的数据包所在的业务流1进行整形处理,使得整形后的业务流1满足下列公式:
A1(t)=r1×t+B1
其中,t为时间;A1(t)为t时间内业务流1的数据总流量;r1为业务流1需要的带宽,B1为业务流1的最大突发度;r1为平均带宽,该平均带宽可以理解为业务流1在统计意义上的平均速度。
步骤420,第二网络设备根据数据包携带的时间信息,确定第二参考时刻。
在本申请实施例中,第二参考时刻为指导数据包进入第二队列系统中的队列的参考时刻,第二队列系统为第二网络设备的队列系统。换句话说,第二网络设备可以根据第二参考时刻确定该数据包应该进入到第二队列系统中的某一个队列。
其中,第二队列系统包括一组队列,该一组队列包括多个队列。第二队列系统有时也可以称为第二队列组。
可选地,当第二网络设备接收到的多个的数据包携带的业务的优先级不相同时,第二网络设备还可以根据每个数据包携带的业务的优先级以及第二网络设备包括的多个队列系统对应的业务优先级,从多个队列系统中确定第二队列系统,多个队列系统中的任意两个队列系统对应的业务优先级不相同,第二队列系统对应的业务优先级中的一个业务优先级与数据包携带的业务的优先级相同。
其中,多个队列系统也可以称为多个队列组,每个队列组可以包括多个队列。每个队列组可以对应一个或多个业务优先级。
假设第二网络设备包括3个队列系统,分别为队列系统1、队列系统2、队列系统3,且队列系统1包括队列1(对应的业务优先级为1)和队列2(对应的业务优先级为2),队列系统2包括队列3(对应的业务优先级为3)、队列4(对应的业务优先级为4)和队列5(对应的业务优先级为5),队列系统3包括队列6(对应的业务优先级为6)和队列7(对应的业务优先级为6)。在此情况下,当第二网络设备接收到的数据包携带的业务的优先级为6时,第二网络设备可以确定队列系统3为第二队列系统。
在本申请实施例中,时间信息用于指示数据包通过第一网络设备的第一剩余处理时间,第一剩余处理时间为第一时延与第一处理时间的差,第一时延为不小于第一理论时间上限与第一传输时间的差的绝对值的值,第一理论时间上限为第一参考时刻至第二参考时刻的理论处理时间上限,第一参考时刻为指导数据包进入第一队列系统中的队列的参考时刻,第一队列系统为第一网络设备的队列系统,第一传输时间为数据包被第一网络设备输出的第一输出时刻至第一时刻的实际传输时间,第一处理时间为第一参考时刻至数据包被第一网络设备输出的第一输出时刻的实际处理时间。
为了便于描述,此处将“第一理论时间上限与第一传输时间的差的绝对值”记作第一绝对值。
在一些实现方式中,第一时延为不小于第一绝对值的值可以理解为,可以任意选取大于等于第一绝对值的值作为第一时延。例如,当第一绝对值为10微秒时,可以设置第一时延为10微秒,11微秒,20微秒或50微秒等。
在另一些实现方式中,第一时延为不小于第一绝对值的值可以理解为,可以将非负整数与第一绝对值的和作为第一时延。例如,当第一绝对值为10微秒,且非负整数为1.5微秒时,可以设置第一时延为11.5微秒。
上述第一理论时延上限为预定义的值。例如,可以根据具体的网络环境设置该第一理论时延上限。例如,可以设置第一理论时延上限为10微秒。或者,可以设置第一理论时延上限为100微秒。
上述第一传输时间也是一个固定的值。例如,第一传输时延可以为2微秒。或者,第一传输时延可以为12微秒。
还应理解的是,第一时延为不小于第一理论时间上限与第一传输时间的差的绝对值的值,由于该第一传输时间是一个固定的值,该第一理论时延上限也是预定义的固定值,所以该第一时延也是一个固定的非负值。
需说明的是,当第一网络设备为转发数据包的第一个网络设备(即首跳设备)时,第一参考时刻可以理解为,该数据包通过该第一网络设备时的任意一个时刻。例如。可以定义该第一参考时刻为该数据包被该第一网络设备的整形结构输出的时刻。例如,可以定义该第一参考时刻为该数据包被该第一网络设备输出的时刻。例如。可以定义该第一参考时刻为该数据包进入该第一网络设备的时刻。换句话说,当第一网络设备为转发数据包的第一个网络设备时,第一参考时刻为预定义的时刻,该预定义的时刻可以为该数据包通过该第一网络设备时的任意一个时刻。
上述时间信息可以通过数据包报头携带。例如,报头可以是介质访问控制(mediaaccess control,MAC)头。或者,报头也可以是IP头(例如,IPv4报头或IPv6报头)。
下面,结合图5对时间信息包括的内容以及时间信息在报头中的封装格式进行介绍。
可选地,时间信息可以包括第一指示信息和第二指示信息,第一指示信息用于指示第一处理时间,第二指示信息用于指示第一时延。其中,第一指示信息包括第三时间值和第四时间值,第三时间值为数据包被第一网络设备输出的第一输出时刻,第四时间值为第一参考时刻,参见图5格式一。
当第二网络设备获取的时间信息为格式一时,第二网络设备可以根据格式一中的第四时间值和第三时间值通过计算获取第一处理时间。
可选地,时间信息可以包括第一指示信息,第一指示信息用于指示第一处理时间。其中,第一指示信息包括第三时间值和第四时间值,第三时间值为数据包被第一网络设备输出的第一输出时刻,第四时间值为第一参考时刻,参见图5格式二。
与图5格式一相比,图5格式二中的报文不携带第一时延,第二网络设备可以通过其他方式获取第一时延。例如,第二网络设备可以通过控制面信令下发的方式获取该第一时延。
可选地,时间信息可以包括第一指示信息和第二指示信息,第一指示信息用于指示第一处理时间,第二指示信息用于指示第一时延。其中,第一指示信息包括第二时间值,第二时间值为第一处理时间,参见图5格式三。
与格式一、格式二相比,格式三对应的报头可以直接携带第一处理时间。
可选地,时间信息可以包括第一指示信息,第一指示信息用于指示第一处理时间。其中,第一指示信息包括第二时间值,第二时间值为第一处理时间,参见图5格式四。
与格式三相比,格式四中的报头不携带第一时延,第二网络设备可以通过其他方式获取第一时延。例如,第二网络设备可以通过控制面信令下发的方式获取该第一时延。
可选地,时间信息可以包括第一时间值,第一时间值为第一剩余处理时间,参见图5格式五。
与格式一至格式四相比,格式五中的报头可以直接携带第一剩余处理时间。
在本申请实施例中,第二网络设备可以在第二网络设备的上行板中确定第二参考时刻。第二网络设备也可以在第二网络设备的下行板中确定第二参考时刻。还应理解的是,当在第二网络设备的上行板中确定第二参考时刻时,第二网络设备可以根据第二参考时刻确定数据包进入上行板中的目标队列。当在第二网络设备的下行板中确定第二参考时刻时,第二网络设备可以根据第二参考时刻确定数据包进入下行板中的目标队列。
首先,介绍第二网络设备在上行板中确定第二参考时刻的方法。
在本申请实施例中,第二网络设备根据数据包携带的时间信息,确定第二参考时刻,包括:第二网络设备根据第一时延和第一处理时间,确定第二参考时刻。
其中,第二网络设备根据第一时延和第一处理时间,确定第二参考时刻,包括:第二网络设备根据第一时延、第一参考时刻、数据包被第一网络设备输出的第一输出时刻和第一时刻,确定第二参考时刻。
其中,第二网络设备根据第一时延、第一参考时刻、数据包被第一网络设备输出的第一输出时刻和第一时刻,确定第二参考时刻,包括:第二网络设备根据以下公式确定第二参考时刻:
Figure BDA0002612862540000121
其中,E2为第二参考时刻,
Figure BDA0002612862540000122
为第一时刻,
Figure BDA0002612862540000123
为第一时延,
Figure BDA0002612862540000124
为第一处理时间,
Figure BDA0002612862540000125
为数据包被第一网络设备输出的第一输出时刻,E1为第一参考时刻,
Figure BDA0002612862540000126
为第一剩余处理时间。
需说明的是,当第一网络设备为转发数据包的第一个网络设备(即首跳设备)时,第一参考时刻可以理解为,该数据包通过该第一网络设备时的任意一个时刻。例如。可以定义该第一参考时刻为该数据包被该第一网络设备的整形结构输出的时刻。例如,可以定义该第一参考时刻为该数据包被该第一网络设备输出的时刻。例如。可以定义该第一参考时刻为该数据包进入该第一网络设备的时刻。换句话说,当第一网络设备为转发数据包的第一个网络设备时,第一参考时刻为预定义的时刻,该预定义的时刻可以为该数据包通过该第一网络设备时的任意一个时刻。
下面,结合图6和图7具体介绍第二网络设备在上行板确定第二参考时刻的过程中涉及到的各个时刻。
图6示出了本申请实施例提供的第二网络设备在上行板确定第二参考时刻的时序图。
在图6中,网络设备232可以理解为接收数据包的第二个网络设备,网络设备233可以理解为接收数据包的第三个网络设备。其中,
Figure BDA0002612862540000131
为网络设备232接收到来自上一跳网络设备发送的数据包的时刻;E1为指导数据包进入网络设备232的队列系统中的队列的参考时刻,即第一参考时刻;
Figure BDA0002612862540000132
为数据包被网络设备232输出的第一输出时刻;
Figure BDA0002612862540000133
为网络设备233接收到网络设备232发送的数据包的时刻,即第一时刻;E2为指导数据包进入网络设备233的队列系统中的队列的参考时刻,即第二参考时刻;
Figure BDA0002612862540000134
为数据包被网络设备233输出的第二输出时刻。
Figure BDA0002612862540000135
为数据包进入网络设备232的交换结构的时刻至数据包进入网络设备233的交换结构的时刻之间的时间(不包括数据包被网络设备232输出的时刻至数据包进入网络设备233的时刻之间的时间,即
Figure BDA0002612862540000136
)。
应理解,图6仅为示意并不对本申请实施例构成任何限定。例如,在一些实施例中,当图6中的网络设备232为图2中的网络设备233时,图6中的网络设备233可以为图2中的网络设备234。例如,在一些实施例中,当图6中的网络设备232为图2中的网络设备234时,图6中的网络设备233可以为图2中的出口边缘设备235。
图7示出了本申请实施例提供的另一种第二网络设备在上行板确定第二参考时刻的时序图。应理解,图7中示出的各个时刻仅为示意并不对本申请构成任何限定。
在图7中,入口边缘设备231可以理解为接收数据包的第一个网络设备(即首跳设备),网络设备232可以理解为接收数据包的第二个网络设备。其中,
Figure BDA0002612862540000137
为入口边缘设备231接收到数据包的时刻;E1为指导数据包从入口边缘设备231的整形结构输出的时刻,即第一参考时刻的一例;
Figure BDA0002612862540000138
为数据包被入口边缘设备231输出的第一输出时刻;
Figure BDA0002612862540000139
为网络设备232接收到入口边缘设备231发送的数据包的时刻,即第一时刻;E2为指导数据包进入网络设备232的队列系统中的队列的参考时刻,即第二参考时刻;
Figure BDA00026128625400001310
为数据包被网络设备232输出的第二输出时刻。
Figure BDA00026128625400001311
为数据包被入口边缘设备231的整形结构输出的时刻至数据包进入网络设备232的交换结构的时刻之间的时间(不包括数据包被入口边缘设备231输出的时刻至数据包进入网络设备232的时刻之间的时间,即
Figure BDA00026128625400001312
)。
需说明的是,在图7中,由于入口边缘设备231为转发数据包的第一个网络设备(即首跳设备),此时第一参考时刻E1可以理解为,该数据包通过该入口边缘设备231时的任意一个时刻。例如。可以定义该第一参考时刻为该数据包被该入口边缘设备231的整形结构输出的时刻。例如,可以定义该第一参考时刻为该数据包被该入口边缘设备231输出的时刻。例如。可以定义该第一参考时刻为该数据包进入该入口边缘设备231的时刻。也就是说,此时的第一参考时刻为预定义的时刻,该预定义的时刻可以为该数据包通过该第一网络设备时的任意一个时刻。
下面,介绍第二网络设备在下行板中确定第二参考时刻的方法。
在本申请实施例中,第二网络设备根据数据包携带的时间信息,确定第二参考时刻,包括:第二网络设备根据第一时延和第一处理时间,确定第二参考时刻。
其中,第二网络设备在下行板中根据第一时延和第一处理时间确定第二参考时刻,包括以下两种方法:
方法一:
第二网络设备根据第一时延和第一处理时间,确定第二参考时刻,包括:第二网络设备根据第一时延、第一参考时刻、数据包被第一网络设备输出的第一输出时刻和第一时刻,确定第二参考时刻。
在一些实施例中,第二网络设备根据第一时延、第一参考时刻、数据包被第一网络设备输出的第一输出时刻和第一时刻,确定第二参考时刻,包括:第二网络设备根据以下公式确定第二参考时刻:
Figure BDA0002612862540000141
其中,E2为第二参考时刻,
Figure BDA0002612862540000142
为第一时刻,
Figure BDA0002612862540000143
为第一时延,
Figure BDA0002612862540000144
为第一处理时间,
Figure BDA0002612862540000145
为数据包被第一网络设备输出的第一输出时刻,E1为第一参考时刻,
Figure BDA0002612862540000146
为第一剩余处理时间。
需说明的是,当第一网络设备为转发数据包的第一个网络设备时,第一参考时刻可以理解为,该数据包通过该第一网络设备时的任意一个时刻。例如。可以定义该第一参考时刻为该数据包被该第一网络设备的整形结构输出的时刻。例如,可以定义该第一参考时刻为该数据包被该第一网络设备输出的时刻。例如。可以定义该第一参考时刻为该数据包进入该第一网络设备的时刻。也就是说,此时的第一参考时刻为预定义的时刻,该预定义的时刻可以为该数据包通过该第一网络设备时的任意一个时刻。
上述方法一中确定第二参考时刻的方法,与第二网络设备在上行板中确定第二参考时刻的方法相同。
方法二:
第二网络设备根据第一时延和第一处理时间,确定第二参考时刻,包括:第二网络设备根据第一时延、第一参考时刻、数据包被第一网络设备输出的第一输出时刻、数据包通过第二网络设备的交换结构处理后的时刻和第一时刻,确定第二参考时刻,其中数据包通过第二网络设备的交换结构处理后的时刻小于第二参考时刻。
在一些实施例中,第二网络设备根据第一时延、第一参考时刻、数据包被第一网络设备输出的第一输出时刻、数据包通过第二网络设备的交换结构处理后的时刻和第一时刻,确定第二参考时刻,包括:第二网络设备根据以下公式确定第二参考时刻:
Figure BDA0002612862540000147
其中,E2为第二参考时刻,
Figure BDA0002612862540000148
为数据包通过第二网络设备的交换结构处理后的时刻,
Figure BDA0002612862540000149
为第一剩余处理时间,
Figure BDA00026128625400001410
为第一处理时间,
Figure BDA00026128625400001411
为第一时延,
Figure BDA00026128625400001412
为数据包被第一网络设备输出的第一输出时刻,E1为第一参考时刻,
Figure BDA00026128625400001413
为第一时刻。
需说明的是,当第一网络设备为转发数据包的第一个网络设备时,第一参考时刻可以理解为,该数据包通过该第一网络设备时的任意一个时刻。例如。该第一参考时刻可以是该数据包被该第一网络设备的整形结构输出的时刻。例如,该第一参考时刻可以是该数据包被该第一网络设备输出的时刻。例如。该第一参考时刻可以是该数据包进入该第一网络设备的时刻。也就是说,此时的第一参考时刻为预定义的时刻,该预定义的时刻可以为该数据包通过该第一网络设备时的任意一个时刻。
下面,结合图8和图9具体介绍第二网络设备在下行板确定第二参考时刻的过程中涉及到的各个时刻。
图8示出了示出了本申请实施例提供的第二网络设备在下行板确定第二参考时刻的时序图。其中,图8中包括的各个单元或结构的功能可以参见图6。需说明的是,图8所示的循环队列单元和出队列单元仅仅是逻辑上的单元结构。在实际应用中,循环队列单元和出队列单元可以包括在同一个物理单元中。或者,循环队列单元和出队列单元可以分别对应两个物理单元。
在图8中,网络设备232可以理解为接收数据包的第二个网络设备,网络设备233可以理解为接收数据包的第三个网络设备。其中,
Figure BDA0002612862540000151
为网络设备232接收到来自上一跳网络设备发送的数据包的时刻;
Figure BDA0002612862540000152
为数据包被网络设备232的交换结构输出的时刻;E1为指导数据包进入网络设备232的队列系统中的队列的参考时刻,即第一参考时刻;
Figure BDA0002612862540000153
为数据包被网络设备232输出的第一输出时刻;
Figure BDA0002612862540000154
为网络设备233接收到网络设备232发送的数据包的时刻,即第一时刻;
Figure BDA0002612862540000155
为数据包被网络设备233的交换结构输出的时刻;E2为指导数据包进入网络设备233的队列系统中的队列的参考时刻,即第二参考时刻;
Figure BDA0002612862540000156
为数据包被网络设备233输出的第二输出时刻;
Figure BDA0002612862540000157
为第一参考时刻E1至第二参考时刻E2之间的时间(不包括数据包被网络设备232输出的时刻至数据包进入网络设备233的时刻之间的时间,即
Figure BDA0002612862540000158
)。
应理解,图8仅为示意并不对本申请实施例构成任何限定。例如,在一些实施例中,当图8中的网络设备232为图2中的网络设备233时,图8中的网络设备233可以为图2中的网络设备234。例如,在一些实施例中,当图8中的网络设备232为图2中的网络设备234时,图8中的网络设备233可以为图2中的出口边缘设备235。
图9示出了本申请实施例提供的另一种第二网络设备在下行板确定第二参考时刻的时序图。其中,图9中包括的各个单元或结构的功能可以参见图7。应理解,图9中示出的各个时刻仅为示意并不对本申请构成任何限定。需说明的是,图9所示的循环队列单元和出队列单元仅仅是逻辑上的单元结构。在实际应用中,循环队列单元和出队列单元可以包括在同一个物理单元中。或者,循环队列单元和出队列单元可以分别对应两个物理单元。
在图9中,入口边缘设备231可以理解为接收数据包的第一个网络设备,入口边缘设备231可以理解为接收数据包的第二个网络设备。其中,
Figure BDA0002612862540000159
为入口边缘设备231接收到来自上一跳网络设备发送的数据包的时刻;
Figure BDA00026128625400001510
为数据包进入入口边缘设备231的整形结构的时刻;E1为指导数据包从入口边缘设备231的整形结构输出的时刻,即第一参考时刻的一例;
Figure BDA00026128625400001511
为数据包被入口边缘设备231输出的第一输出时刻;
Figure BDA00026128625400001512
为网络设备232接收到入口边缘设备231发送的数据包的时刻,即第一时刻;
Figure BDA00026128625400001513
为数据包被网络设备232的交换结构输出的时刻;E2为指导数据包进入网络设备232的队列系统中的队列的参考时刻,即第二参考时刻;
Figure BDA00026128625400001514
为数据包被网络设备232输出的第二输出时刻;
Figure BDA00026128625400001515
为第一参考时刻E1至第二参考时刻E2之间的时间(不包括数据包被入口边缘设备231输出的时刻至数据包进入网络设备232的时刻之间的时间,即
Figure BDA00026128625400001516
)。
需说明的是,在图9中,由于入口边缘设备231为转发数据包的第一个网络设备(即首跳设备),此时第一参考时刻E1可以理解为,该数据包通过该入口边缘设备231时的任意一个时刻。例如。可以定义该第一参考时刻为该数据包被该入口边缘设备231的整形结构输出的时刻。例如,可以定义该第一参考时刻为该数据包被该入口边缘设备231输出的时刻。例如。可以定义该第一参考时刻为该数据包进入该入口边缘设备231的时刻。也就是说,此时的第一参考时刻为预定义的时刻,该预定义的时刻可以为该数据包通过该入口边缘设备231时的任意一个时刻。
步骤430,第二网络设备根据第二参考时刻从第二队列系统包括的多个队列中确定目标队列并将数据包加入目标队列。
应理解的是,当在第二网络设备的上行板中确定第二参考时刻时,第二网络设备可以根据第二参考时刻确定数据包进入上行板中的目标队列。当在第二网络设备的下行板中确定第二参考时刻时,第二网络设备可以根据第二参考时刻确定数据包进入下行板中的目标队列。
在一些实施例中,第二队列系统包括的多个队列与多个预设时刻一一对应,多个预设时刻中任意两个相邻预设时刻的差为第一值,预设时刻可以理解为队列开启的时刻。
其中,第一值可以为预定义的值。例如,可以根据具体的应用场景或者设备能力设置第一值。例如,可以设置第一值为10微秒。或者,可以设置第一值为15微秒。
图10示出了本申请实施例提供的第二队列系统的示意图。
如图10所示,该第二队列系统包括M个队列,分别为队列Q1,队列Q2,队列Q3,……,队列QM,M为大于3的正整数。该M个队列与M个预设时刻一一对应。
在一些实施例中,队列Q1的优先级大于队列Q2的优先级,队列Q2的优先级大于队列Q3的优先级,以此类推。
参见图10,队列Q1至队列QM中的任意两个相邻队列(例如队列Q1和队列Q2,队列Q2和队列Q3)之间的时间间隔为Δ(即第一值)。假设起始时刻为T,那么队列Q1对应的预设时刻为T+Δ,队列Q2对应的预设时刻为T+2×Δ,队列Q3对应的预设时刻为T+3×Δ,以此类推,队列QM对应的预设时刻为Tmax。参见图10,该M个队列也可以是循环队列,在系统时间超过时刻Tmax之后,该M个队列继续以时间间隔Δ循环。例如,队列Q1对应的预设时刻与队列QM对应的预设时刻的时间间隔为Δ,换句话说,队列Q1对应的预设时刻为Tmax+Δ。类似的,队列Q2对应的预设时刻与队列Q1对应的预设时刻的时间间隔为Δ,换句话说,队列Q2对应的预设时刻为Tmax+2×Δ,以此类推。其中,确定循环队列的方法参见下文步骤440。
基于上述第二队列系统的设置方式,第二网络设备根据第二参考时刻从第二队列系统包括的多个队列中确定目标队列,包括:
第二网络设备根据第二参考时刻,确定第一目标时刻对应的第二队列系统包括的多个队列中的一个队列为目标队列,第一目标时刻为第二参考时刻与第二值的和,第二值为第二参考时刻与第三时刻的差的绝对值加上第一值的整数倍,第二参考时刻与第三时刻之间不包括多个预设时刻中的任一个时刻,第三时刻是多个预设时刻中的一个时刻且该第三时刻大于第二参考时刻,第一目标时刻是多个预设时刻中的一个时刻。
例如,参见图10,第一值为Δ,第二参考时刻E2=T+1.5×Δ,此时,第三时刻为T+2×Δ。
上述第二值为第二参考时刻与第三时刻的差的绝对值加上第一值的整数倍,具体的,第二值为第二参考时刻与第三时刻的差的绝对值加上第一值的n倍,n可以为负整数(例如,n=-1),n也可以为正整数(例如,n=1,2等),n还可以为零。应理解的是,由于第一值的取值非常小,所以第二参考时刻与第三时刻的差的绝对值与第二参考时刻与第三时刻的差的绝对值加上第一值的n倍近似相等。还应理解的是,当n为零时,第三时刻与第一目标时刻为同一个时刻。
参见图10,第一值为Δ,第二参考时刻E2=T+1.5×Δ。当n=-1时,第三时刻为T+2×Δ时,第二值为E2-(T+2×Δ)+(-1×Δ)=-0.5×Δ。因此,第一目标时刻为E2-0.5×Δ=T+Δ。在此情况下,目标队列为队列Q1。当n=1时,第三时刻为T+2×Δ时,第二值为E2-(T+2×Δ)+(1×Δ)=1.5×Δ。因此,第一目标时刻为E2+1.5×Δ=T+3Δ。在此情况下,目标队列为队列Q3。当n=0时,第三时刻为T+2×Δ时,第二值为E2-(T+2×Δ)+(0×Δ)=0.5×Δ。因此,第一目标时刻为E2+0.5×Δ=T+2Δ。在此情况下,目标队列为队列Q2。
需说明的是,在实际应用中,上述第一值的n倍对于第二网络设备接收的同一条流包括的每个数据包来说是相同的值。也就是说,此时n为一个固定的取值。例如,在场景A中,第二网络设备在某个时刻接收业务流A,此时在确定与业务流A包括的每个数据包对应的第一目标时刻的过程中,设置n=-1。
应理解,图10仅为示意并不对本申请提供的根据第二参考时刻确定目标队列的方法构成任何限定。
还应理解的是,以数据包被加入目标队列的时刻为起始时刻,在经过一段固定时间(即第二网络设备包括的多个队列中任意两个相邻开启的队列的开启时刻间隔,即第一值)后,该数据包通过该第二网络设备的上一跳的剩余处理时间(即数据包通过第一网络设备的第一剩余处理时间)在第二网络设备中被消耗掉。
在另一些实施例中,第二队列系统可以包括N个一级队列和M个二级队列,N和M为大于等于1的正整数。N个一级队列与N个第一预设时刻对应,M个二级队列与M个第二预设时刻对应。任意两个相邻第一预设时刻的差为第一值,任意两个相邻第二预设时刻的差为第二值,且第一值小于第二值。任意一个一级队列的优先级高于任意一个二级队列的优先级。
根据上述第二队列系统的设置方式,第二网络设备根据第二参考时刻确定目标队列,包括:
第二网络设备根据第二参考时刻、N个第一预设时刻和M个第二预设时刻,确定数据包进入第二队列系统包括的多个队列中的一个队列。
应理解的是,当第二网络设备确定该数据包在某个时刻既可以进入N个一级队列中的一个队列又可以进入M个二级队列中的一个队列时,第二网络设备确定该数据包进入该M个二级队列中的一个队列。
还应理解的是,根据上述第二队列系统的设置方式,第二网络设备都在N个一级队列中的一个队列将数据包发送至第三网络设备。也就是说,若第二网络设备确定将该数据包加入M个二级队列中的一个队列,则在此之后第二网络设备还会将该数据包从该数据包所在的M个二级队列中的一个队列出队并将该数据包加入N个一级队列中的一个队列。
根据上述第二队列系统的设置方式,第二网络设备确定数据包出队的方法,包括:
第二网络设备确定数据包从N个一级队列中的一个队列发送至第三网络设备的方法。具体的,第二网络设备可以根据N个一级队列对应的调度规则将该数据包发送至第三网络设备。其中,N个一级队列对应的调度规则可以是预先定义的调度规则。N个一级队列对应的调度规则也可以是与队列优先级相关的调度规则。本申请对此不作限定。
第二网络设备确定数据包从M个二级队列中的一个队列出队并入队至N个一级队列中的一个队列的方法。具体的,在数据包所加入的二级队列开启后,第二网络设备可以根据第二参考时刻将该数据包从该数据包所加入的二级队列出队并加入N个一级队列中的一个队列。
应理解的是,上述N个一级队列为一个循环队列,上述M个二级队列为另一个循环队列。也就是说,N个一级队列的循环方式与M个二级队列的循环方式互不影响。
步骤440,第二网络设备根据第二队列系统对应的调度规则将数据包发送至第三网络设备。
当时间信息包括第一处理时间时(参见图5中的格式四),在步骤440之前,还包括:
第二网络设备对数据包报头携带的第一处理时间进行更新。具体地,将数据包报头携带的第一处理时间更新为数据包被第二网络设备输出的第一输出时刻与第二参考时刻的差。
当时间信息包括数据包被第一网络设备输出的第一输出时刻(参见图5中的第三时间值)和第一参考时刻(参见图5中的第四时间值)时,在步骤440之前,还包括:
第二网络设备将数据包报头携带的数据包被第一网络设备输出的第一输出时刻更新为数据包被第二网络设备输出的第二输出时刻,以及将数据包报头携带的第一参考时刻更新为第二参考时刻。
在本申请实施例中,第二网络设备根据第二队列系统对应的调度规则将数据包发送至第三网络设备,包括:
第二网络设备确定目标队列为第二队列系统包括的多个队列中当前时刻被调度的队列,以及目标队列为开启状态,第二网络设备将数据包发送至第三网络设备。
可选地,在第二网络设备根据第二队列系统对应的调度规则将数据包发送至第三网络设备之后,还包括:
第二网络设备在目标队列满足第一预设条件的情况下,确定关闭目标队列。
其中,第一预设条件包括:目标队列为空队列,且目标队列的开启时长大于等于第一值,第一值为多个预设时刻中任意两个相邻预设时刻的差,多个预设时刻与第二队列系统包括的多个队列一一对应。
其中,第一值为预定义的值。第一值可以根据具体的应用场景或者设备能力设置第一值。例如,可以设置第一值为10微秒。或者,可以设置第一值为15微秒。
在一些实施例中,第二网络设备确定目标队列为第二队列系统包括的多个队列中当前时刻被调度的队列,包括:
当第二网络设备确定目标队列为第二队列系统包括的多个队列中优先级最高的队列时,第二网络设备确定目标队列为第二队列系统包括的多个队列中当前时刻被调度的队列;
在第二网络设备确定关闭目标队列之后,方法还包括:
第二网络设备将目标队列的优先级设置为第二队列系统包括的多个队列中优先级最低的队列,并将第二队列系统包括的多个队列中除目标队列之外的队列的优先级提升。
在上述方案中,网络设备按照严格优先级进行对第二队列系统包括的队列进行调度。换句话说,该网络设备按照优先级顺序调度对第二队列系统包括的队列进行调度,如果优先级高的队列中的数据包没有完成调度,那么该网络设备不会开始调度下一优先级的队列中的数据包。还应理解的是,在高优先级的队列排空但该高优先级的队列还没有被关闭的情况下,网络设备可以开始调度次高优先级的队列中的数据包。
例如,第二队列系统包括3个队列分别为队列1(优先级为1)、队列2(优先级为2)和队列3(优先级为3),其中,优先级1>优先级2>优先级3。由于队列1的优先级最高,第二网络设备可以确定队列1为目标队列。当第二网络设备已经完成对队列1中的所有数据包的调度后且该队列1的开启时长满足预设条件时,第二网络设备关闭队列1,同时,第二网络设备将队列2的优先级设置为1,队列3的优先级设置为2,队列1的优先级设置为3。在上述数据包的调度过程中,在第二网络设备已经完成对队列1中的所有数据包的调度后且队列1还未被关闭的情况下,第二网络设备可以开始对队列2中的数据包进行调度。
在另一些实施例中,第二队列系统包括的多个队列与多个预设调度顺序一一对应,第二网络设备确定目标队列为第二队列系统包括的多个队列中当前时刻被调度的队列,包括:
当第二网络设备根据多个预设调度顺序确定目标队列对应的预设调度顺序为第二网络设备在当前时刻调度的队列对应的调度顺序时,第二网络设备确定目标队列为第二队列系统包括的多个队列中当前时刻被调度的队列。
在上述方案中,网络设备可以按照预先定义好的调度顺序对第二队列系统包括的队列进行调度,具体调度队列过程中网络设备不需要比较每个队列的优先级。
可选地,在第二网络设备确定关闭目标队列之后,还包括:
第二网络设备根据第一信息,确定第二目标时刻,第二目标时刻对应于目标队列,第二目标时刻为在第一目标时刻后目标队列对应的开启的时刻,第二目标时刻大于多个预设时刻中的任意一个预设时刻,第一信息包括第二队列系统包括的每个队列对应的调度顺序和第二队列系统包括的每个队列对应的开启的时刻;
其中,第二队列系统包括的多个队列与多个预设时刻一一对应,多个预设时刻中任意两个相邻预设时刻的差为第一值,第一目标时刻对应的第二队列系统包括的多个队列中的一个队列为目标队列,第一目标时刻为第二参考时刻与第二值的和,第二值为第二参考时刻与第三时刻的差的绝对值加上第一值的整数倍,第二参考时刻与第三时刻之间不包括多个预设时刻中的任一个时刻,第三时刻是多个预设时刻中的一个时刻且第三时刻大于第二参考时刻,第一目标时刻是多个预设时刻中的一个时刻。具体的,确定第二值和第三时刻的方法参见步骤430,此处不再详细赘述。
其中,第二队列系统包括的每个队列对应的开启的时刻可以为预定义。第二队列系统包括的每个队列对应的调度顺序可以是预定义的。
在上述方案中,第二网络设备可以循环利用第二队列系统包括的每个队列,从而提高资源利用率。
下面,结合图11介绍数据包经过上述第一网络设备和第二网络设备转发后的时延。应理解,图11仅为示意并不对本申请构成任何限定。例如,还可以以图6包括的网络设备分析数据包经过上述第一网络设备和第二网络设备转发后的时延。
还应理解的是,由于图11中的入口边缘设备231为转发数据包的第一个网络设备(即首跳设备),所以此时第一参考时刻E1可以理解为,该数据包通过该入口边缘设备231时的任意一个时刻。例如。可以定义该第一参考时刻为该数据包被该入口边缘设备231的整形结构输出的时刻。例如,可以定义该第一参考时刻为该数据包被该入口边缘设备231输出的时刻。例如。可以定义该第一参考时刻为该数据包进入该入口边缘设备231的时刻。也就是说,此时的第一参考时刻为预定义的时刻,该预定义的时刻可以为该数据包通过该入口边缘设备231时的任意一个时刻。为了便于描述,在图11中,仅以第一参考时刻E1该数据包被该入口边缘设备231输出的时刻为例进行介绍。
参见图11,
Figure BDA0002612862540000201
为数据包被入口边缘设备231(即,第一网络设备的一例)接收至该数据包被入口边缘设备231入队至该入口边缘设备231的队列的最大时延;
Figure BDA0002612862540000202
为该数据包被入口边缘设备231的整形结构输出至该数据包入队至网络设备232(即,第二网络设备的一例)的队列的最大时延(不包括
Figure BDA0002612862540000203
);
Figure BDA0002612862540000204
为该数据包被网络设备232入队至网络设备232的队列至该数据包被网络设备232输出的最大时延。图11中其余参数的含义与图7中参数的含义相同,此处不再详细赘述。其中,
Figure BDA0002612862540000205
Figure BDA0002612862540000206
均为预定义的值。例如,可以根据具体的应用场景或者设备能力进行设置。例如,在网络环境良好的情况下,可以设置
Figure BDA0002612862540000207
Figure BDA0002612862540000208
都为10微秒(或者5微秒)。或者,在网络环境良好的情况下,还可以设置
Figure BDA0002612862540000209
为5微秒,设置
Figure BDA00026128625400002010
为10微秒,设置
Figure BDA00026128625400002011
为5微秒。例如,在网络环境较差的情况下,可以设置
Figure BDA00026128625400002012
Figure BDA00026128625400002013
都为10微秒(或者50微秒)。或者,在网络环境较差的情况下还可以
Figure BDA00026128625400002014
为50微秒,设置
Figure BDA00026128625400002015
为100微秒,设置
Figure BDA00026128625400002016
为50微秒等。
根据本申请提供的发送数据包的方法,在数据包经过入口边缘设备231转发后的剩余处理时间大于零的情况下,在该数据包进入网络设备232后,网络设备232根据该剩余处理时间以及该网络设备232接收到该数据包的时刻,确定该数据包入队至该网络设备232的一个队列中。以该数据包进入至该网络设备232的一个队列的时刻为起始时刻,经过一段时间到该数据包对应的第二参考时刻为止,该剩余处理时间在该网络设备232中被消耗掉。因此,该数据包经过入口边缘设备231和网络设备232转发后的确定性时延为
Figure BDA00026128625400002017
网络设备232对接收的流包括的每个数据包均采用本申请提供的发送数据包的方法后,可以保证该数据包所在的流进入该网络设备232和被该网络设备232输出的形状相同。
本申请实施例提供的发送数据包的方法,第二网络设备可以根据提前配置好的数据包在第一网络设备中允许停留的最大时延确定该数据包在第一网络设备中的剩余处理时间,在该剩余处理时间大于零的情况下,以该数据包进入至该第二网络设备中的一个队列(即目标队列的一例)的时刻为起始时刻,经过一段时间到该数据包对应的第二参考时刻为止,该剩余处理时间在第二网络设备中被消耗掉,从而可以保证该数据包通过第一网络设备和第二网络设备转发后的确定性时延和抖动,进一步使得该数据包所在的流进入网络设备的形状和该数据包所在的流被网络设备输出后的形状相同。
与现有技术相比,本申请实施例提供的发送数据包的方法,不要求转发数据包的各网络设备的时间同步,对转发数据包的链路长度没有具体限定,可以适用于大规模网络中,提供确定性端到端时延上限和抖动上限。
下面结合图12和图13,介绍本申请实施例提供的发送数据包的方法的一个具体实施例。
图12示出了本申请实施例提供的发送数据包的方法的一个具体实施例。该方法包括步骤1210至步骤1250,下面对这些步骤进行详细介绍。应理解,图12仅为示意,并不对本申请构成任何限定。还应理解,图13中示出的各个时刻仅为示意,并不对本申请构成任何限定。例如,图13中的E1还可以为数据包被入口边缘设备231输出的时刻。或者,图13中的E1还可以为数据包进入入口边缘设备231的时刻。
步骤1210,入口边缘设备231获取数据流1,对数据流1进行整形处理。
入口边缘设备231可以利用漏桶(leaky bucket)算法对数据流1进行整形处理,使得整形后的数据流1满足下列公式:
A1(t)=r1×t+B1
其中,t为时间;A1(t)为t时间内数据流1的数据总流量;r1为数据流1需要的带宽,B1为数据流1的最大突发度;r1为平均带宽,该平均带宽可以理解为数据流1在统计意义上的平均速度。
步骤1220,入口边缘设备231将携带时间信息1的数据包发送至网络设备232。
在步骤1220之前,还包括入口边缘设备231确定时间信息1。
其中,时间信息1用于指示数据包在入口边缘设备231中的剩余处理时间。该时间信息1可以包括数据包从入口边缘设备231的整形结构输出的时刻和数据包被入口边缘设备231输出的输出时刻,时间信息1被封装在数据包的报头中。为了便于描述,下面可以用参考时刻1表示数据包从入口边缘设备231的整形结构输出的时刻,由于入口边缘设备231为接收数据包的第一个网络设备(即首跳设备),所以参考时刻1为预定义的时刻。
具体的,参见图13,时间信息1包括E1
Figure BDA0002612862540000211
E1为数据包从入口边缘设备231的整形结构输出的时刻,
Figure BDA0002612862540000212
为数据包被入口边缘设备231输出的输出时刻。
步骤1230,网络设备232根据接收的数据包携带的时间信息1确定目标队列1。
其中,网络设备232根据接收的数据包携带的时间信息1确定目标队列1,包括:
网络设备232根据数据包携带的时间信息1,确定参考时刻2;以及网络设备232根据参考时刻2确定目标队列1。
其中,参考时刻2为指导数据包进入网络设备232的队列系统中的队列的参考时刻。
在确定参考时刻2之前,还包括网络设备232通过控制面获取时延1,时延1为数据包从入口边缘设备231的整形结构输出的时刻至参考时刻2之间的时间(不包括数据包被入口边缘231输出的时刻至数据包被网络设备232接收的时刻之间的时间)。换句话说,时延1也可以理解为,以数据包从入口边缘设备231的整形结构输出的时刻为起始时刻,在经过该时延1(不包括数据包被入口边缘231输出的时刻至数据包被网络设备232接收的时刻之间的时间)后,该数据包一定会被入队到网络设备232的队列系统包括的多个队列中的一个队列。其中,时延1为预定义的值。
在一些实施例中,网络设备232可以根据以下公式确定参考时刻2:
Figure BDA0002612862540000213
其中,E2为参考时刻2,
Figure BDA0002612862540000214
为数据包通过网络设备232的交换结构处理后的时刻,
Figure BDA0002612862540000215
为数据包通过入口边缘设备231的剩余处理时间,
Figure BDA0002612862540000216
为数据包在网络设备232的处理时延,
Figure BDA0002612862540000217
为时延1,
Figure BDA0002612862540000218
为数据包被第一网络设备输出的时刻,E1为参考时刻1,
Figure BDA0002612862540000219
为数据包进入网络设备232的时刻。
网络设备232根据参考时刻1,可以在网络设备232的下行板中确定目标队列1,具体确定目标队列1的方法与步骤430中的确定目标队列的方法相同,此处不再详细赘述。
应理解的是,在上述方案中以网络设备232接收网络设备231发送的数据包进入至该网络设备232中的一个队列(即目标队列1)的时刻为起始时刻,经过一段时间到参考时刻2为止,该数据包通过该网络设备231的剩余处理时间在该网络设备232中被消耗掉。
步骤1240,网络设备232将携带时间信息2的数据包发送至网络设备232。
在步骤1240之前,还包括网络设备232确定时间信息2,并将数据包报头中携带的时间信息1更新为时间信息2。其中,时间信息2可以包括参考时刻2和数据包被网络设备232输出的时刻。
对数据包报头携带的时间信息进行更新后,数据包携带的时间信息为时间信息2。
当网络设备232确定目标队列1的优先级(数据包所在的队列的优先级)为网络设备232包括的多个队列中优先级最高的队列,且目标队列1为开启状态时,网络设备232可以将携带时间信息2的数据包发送至网络设备232。
步骤1250,网络设备233根据接收的数据包携带的时间信息2确定目标队列2。
其中,网络设备233根据接收的数据包携带的时间信息2确定目标队列2,包括:
网络设备233根据数据包携带的时间信息2,确定参考时刻3;以及网络设备232根据参考时刻3确定目标队列2。
其中,参考时刻3为指导数据包进入网络设备233的队列系统中的队列的参考时刻。
在确定参考时刻3之前,还包括网络设备233通过控制面获取时延2,时延2为参考时刻2至参考时刻3之间的时间(不包括数据包被网络设备232输出的时刻至数据包被网络设备233接收的时刻之间的时间)。换句话说,时延2也可以理解为,以数据包从进入网络设备232的交换结构的时刻为起始时刻,在经过该时延2(不包括数据包被网络设备232输出的时刻至数据包被网络设备233接收的时刻之间的时间)后,该数据包一定会被调度到网络设备233的队列系统包括的多个队列中的一个队列。其中,时延2为预定义的值。
在一些实施例中,网络设备233可以根据以下公式确定参考时刻3:
Figure BDA0002612862540000221
其中,E3为参考时刻3,
Figure BDA0002612862540000222
为数据包通过网络设备233的交换结构处理后的时刻,
Figure BDA0002612862540000223
为数据包通过网络设备232的剩余处理时间,
Figure BDA0002612862540000224
为数据包在网络设备232的处理时延,
Figure BDA0002612862540000225
为时延2,
Figure BDA0002612862540000226
为数据包被网络设备232输出的时刻,E2为参考时刻2,
Figure BDA0002612862540000227
为数据包进入网络设备233的时刻。
网络设备233根据参考时刻2,可以在网络设备233的下行板中确定网络设备233的多个队列中的一个队列为目标队列2,具体确定目标队列2的方法与步骤430中的确定目标队列的方法相同,此处不再详细赘述。
应理解的是,在上述方案中以网络设备233接收网络设备232发送的数据包进入至该网络设备233中的一个队列(即目标队列2)的时刻为起始时刻,经过一段时间到参考时刻3为止,该数据包通过该网络设备232的剩余处理时间在该网络设备233中被消耗掉。
基于上述方法,数据包经过入口边缘设备231至网络设备233转发处理后,可以确定转发该数据包的固定时延为时延1、时延2、时延3与时延4之和。其中,时延3为该数据包被入口边缘设备231接收至参考时刻1之间的时间(即图13中的
Figure BDA0002612862540000228
),时延4为参考时刻3至该数据包被网络设备233输出的时刻之间的时间(即图13中的
Figure BDA0002612862540000229
)。上述时延1、时延2、时延3与时延4为预定义的值。例如,可以设置时延1、时延2、时延3和时延4都为12微秒。本申请实施例提供的发送数据包的方法可以保证任意流的端到端时延上界不超过时延1、时延2、时延3与时延4之和。
本申请实施例提供的发送数据包的方法,可以保证数据包通过入口边缘设备231、网络设备232和网络设备233转发后的确定性时延和抖动,进一步使得该数据包所在的流进入网络设备的形状和该数据包所在的流被网络设备输出后的形状相同。
与现有技术相比,本申请实施例提供的发送数据包的方法,不要求转发数据包的各网络网络设备的时间同步,对转发数据包的链路长度也没有具体限定,可以适用于大规模网络中,提供确定性端到端时延上限和抖动上限。
需说明的是,图12中仅以数据包经过3个网络设备转发,且每个网络设备在下行板中确定参考时刻和根据该参考时刻确定数据包进入下行板中的目标队列为例介绍本申请提供的发送数据包的方法,但这并不对本申请构成任何限定。例如,数据包还可以经过更多(例如,5个网络设备或者10个网络设备等)或更少的网络设备(例如,2个网络设备)转发等。
以上,结合图2至图13详细介绍了本申请实施例提供的发送数据包的方法。下面结合图14具体介绍本申请实施提供的第二网络设备的功能模块。
图14示出了本申请实施提供的第二网络设备的功能模块。
如图14所示,该第二网络设备可以包括6个功能模块,按照每个功能模块处理数据包的时间顺序这6个功能模块依次为:时间信息捕捉模块(packet arrival timecapture)、有界时延模块(bounded variable delay units)、报头更新模块(damperheader update unit)、时延均等模块(latency equalizer)、排队子系统(queueingsubsystem)以及报头插入模块(damper header insertion unit)。
下面,具体介绍上述各个功能模块的功能。
时间信息捕捉模块(packet arrival time capture):用于获取方法400中的时间信息以及参考时刻(例如,第一参考时刻或第二参考时刻)。
有界时延模块(bounded variable delay units):用于对数据包进行解析、查表、交换网转发等。其中,上述任意一个对数据包的处理均有着一个可预知的最大时延上界。
需说明的是,时间信息捕捉模块和有界时延模块共同用于获取方法400中的时间信息以及参考时刻。
报头更新模块(damper header update unit):用于对数据包携带的时间信息(即,方法400中的时间信息)进行更新。
时延均等模块(latency equalizer):用于对进入网络设备中的数据包等待一定时间后将该数据包加入该网络设备的队列中。具体的,该网络设备通过循环门控的调度方式实现数据包的主动等待。数据包经过时延均等模块(latency equalizer)后,可以完成对数据包的整形。
排队子系统(queueing subsystem):用于对网络设备的包括的多个队列进行排队管理。
报头插入模块(damper header insertion unit):用于在数据包被网络设备输出至该网络设备的下一跳网络设备之前,将与该网络设备相关的时间信息(即,方法400中的时间信息)插入该数据包的报文头中。
图15示出了本申请实施提供的发送数据包的网络设备的功能模块。
如图15所示,包括3个网络设备,分别为网络设备#1、网络设备#2和网络设备#3。网络设备#1和网络设备#3包括图14中的第二网络设备包括的所有功能模块。网络设备#2仅仅包括图14中的第二网络设备包括的4个功能模块,按照各模块处理数据包的顺序这4个功能模块依次为时间信息捕捉模块(packet arrival time capture)、有界时延模块(boundedvariable delay units)、排队子系统(queueing subsystem)和报头插入模块(damperheader insertion unit)。
下面,结合本申请实施例提供的发送数据包的方法400,具体介绍数据包经过网络设备包括的各个模块的处理过程。
假设已经知道数据包在网络设备1中可能经历的最大时延为
Figure BDA0002612862540000241
数据包在网络设备2中可能经历的最大时延为
Figure BDA0002612862540000242
数据包在网络设备3中可能经历的最大时延为
Figure BDA0002612862540000243
且数据包在进入网络设备1之前已经被其上一跳设备打上了该数据包在上一跳设备中剩余处理时间。
网络设备1按照本申请实施例提供的发送数据包的方法处理接收的数据包,在满足预设条件后网络设备1将该数据包发送给网络设备2。
网络设备2接收到网络设备1发送的该数据包后继续按照本申请实施例提供的发送数据包的方法处理该数据包。但是由于网络设备2的功能模块中没有时延均等模块(latency equalizer),因此在网络设备2中只能按照默认的调度方式对数据包进行转发。由于网络设备2的功能模块包括时间信息捕捉模块(packet arrival time capture)和报头插入模块(damper header insertion unit),因此在网络设备2中可以通过时间信息捕捉模块(packet arrival time capture)确定该数据包通过该网络设备2的处理时间(例如,处理时间可以为数据包进入网络设备2的交换结构的时间至数据包被网络设备2输出的输出时刻之间的时间),并利用报头插入模块(damper header insertion unit)将该处理时间插入该数据包的报头,然后在满足预设条件后网络设备2将该数据包发送给网络设备3。
数据包经过网络设备1和网络设备2处理后,该数据包携带的时间信息用于指示数据包通过网络设备1的剩余处理时间与数据包通过网络设备2的剩余处理时间的和。
网络设备3接收到网络设备2发送的数据包后,根据该数据包携带的时间信息,将数据包在网络设备3中按照本申请实施例提供的发送数据包的方法进行处理。其中,数据包在网络设备3中主动等待的时间包括数据包通过网络设备1的剩余处理时间与数据包通过网络设备2的剩余处理时间的和。
基于上述方法,可以在部分网络设备(网络设备#1和网络设备#3)中实现数据包的主动等待的功能,可以在所有网络设备上实现获取时间信息的能力,从而可以保证端到端的确定性时延和抖动。
图16示出了本申请实施提供的发送数据包的网络设备的功能模块。
如图16所示,包括3个网络设备,分别为网络设备#1、网络设备#2和网络设备#3。网络设备#1和网络设备#3包括图14中的第二网络设备包括的所有功能模块。网络设备#2仅仅包括图14中的第二网络设备包括的2个功能模块,按照各模块处理数据包的顺序这2个功能模块依次为有界时延模块(bounded variable delay units)和排队子系统(queueingsubsystem)。
下面,结合本申请实施例提供的方法数据包的方法,具体介绍数据包经过网络设备包括的各个模块的处理过程。
假设已经知道数据包在网络设备1中可能经历的最大时延为
Figure BDA0002612862540000244
数据包在网络设备2中可能经历的最大时延为
Figure BDA0002612862540000245
数据包在网络设备3中可能经历的最大时延为
Figure BDA0002612862540000246
且数据包在进入网络设备1之前已经被其上一跳设备打上了该数据包在上一跳设备中剩余处理的时间。
网络设备1按照本申请实施例提供的发送数据包的方法处理接收的数据包,在满足预设条件后网络设备1将该数据包发送给网络设备2。
网络设备2接收到网络设备1发送的该数据包后,按照网络设备2中预定义的方法对数据包进行调度。
数据包经过网络设备1和网络设备2处理后,该数据包携带的时间信息用于指示数据包通过网络设备1的剩余处理时间。
网络设备3接收到网络设备2发送的数据包后,根据该数据包携带的时间信息,将数据包在网络设备3中按照本申请实施例提供的发送数据包的方法进行处理。其中,数据包在网络设备3中主动等待的时间为数据包通过网络设备1的剩余处理时间。
根据本申请实施例提供的方法,可以确定任意流离开网络设备1的“时延均等”模块之后的流量形状,与该任意流进入网络设备1时的流量形状完全一致。由于,又知道经过网络设备1和网络设备2的所有流的流量特征,所以可以知道,该任意流在经过网络设备1的排队子系统之后和经过网络设备2之后该任意流的具体形状,因此也可以计算该任意流在网络设备3上的最坏时延上界。
基于上述方法,可以在部分网络设备(网络设备#1和网络设备#3)中实现数据包的主动等待的功能和获取时间信息的能力,从而可以保证端到端的确定性时延和抖动。
在本申请实施例中,某条流经过网络设备3的时延均等模块(latency equalizer)后的形状与其经过网络设备1的时延均等模块(latency equalizer)后的形状相比,突发度变大了。与图15所示的网络设备的功能相比,在本申请实施例中数据包经过网络设备3的时延上界变大了,从而使得端到端的时延上限和抖动上限变大了。
下面,结合图17和图18详细介绍本申请提供的第二网络设备和第二网络设备的硬件结构。
图17示出了本申请实施例提供的第二网络设备1700的示意性结构图。
参见图17,该第二网络设备1700包括:收发单元1710、处理单元1720。其中,收发单元1710和处理单元1720之间通过内部连接通路互相通信,传递控制和/或数据信号。
收发单元1710,用于在第一时刻接收第一网络设备发送的数据包;
该处理单元1720,用于根据该数据包携带的时间信息,确定第二参考时刻,该第二参考时刻为指导该数据包进入第二队列系统中的队列的参考时刻,该第二队列系统为该第二网络设备的队列系统,该时间信息用于指示该数据包通过该第一网络设备的第一剩余处理时间,该第一剩余处理时间为第一时延与第一处理时间的差,该第一时延为不小于第一理论时间上限与第一传输时间的差的绝对值的值,该第一理论时间上限为第一参考时刻至该第二参考时刻的理论处理时间上限,该第一参考时刻为指导该数据包进入第一队列系统中的队列的参考时刻,该第一队列系统为该第一网络设备的队列系统,该第一传输时间为该数据包被该第一网络设备输出的第一输出时刻至该第一时刻的实际传输时间,该第一处理时间为该第一参考时刻至该数据包被该第一网络设备输出的第一输出时刻的实际处理时间;
该处理单元1720,还用于根据该第二参考时刻从该第二队列系统包括的多个队列中确定目标队列并将该数据包加入该目标队列;
该处理单元1720,还用于根据该第二队列系统对应的调度规则将该数据包发送至第三网络设备。
可选地,在一些实施例中,该第二队列系统包括的多个队列与多个预设时刻一一对应,该多个预设时刻中任意两个相邻预设时刻的差为第一值,该处理单元1720还用于:
根据该第二参考时刻,确定第一目标时刻对应的该第二队列系统包括的多个队列中的一个队列为该目标队列,该第一目标时刻为该第二参考时刻与第二值的和,该第二值为该第二参考时刻与第三时刻的差的绝对值加上该第一值的整数倍,该第二参考时刻与该第三时刻之间不包括该多个预设时刻中的任一个时刻,该第一目标时刻是该多个预设时刻中的一个时刻。
可选地,在一些实施例中,该处理单元1720还用于:根据该第一时延和该第一处理时间,确定该第二参考时刻。
可选地,在一些实施例中,该处理单元1720还用于:根据该第一时延、该第一参考时刻、该数据包被该第一网络设备输出的第一输出时刻和该第一时刻,确定该第二参考时刻。
可选地,在一些实施例中,该处理单元1720还用于:根据以下公式确定该第二参考时刻:
Figure BDA0002612862540000261
其中,E2为该第二参考时刻,
Figure BDA0002612862540000262
为该第一时刻,
Figure BDA0002612862540000263
为该第一时延,
Figure BDA0002612862540000264
为该数据包被该第一网络设备输出的第一输出时刻,E1为该第一参考时刻。
可选地,在一些实施例中,该处理单元1720还用于:
根据该第一时延、该第一参考时刻、该数据包被该第一网络设备输出的第一输出时刻、该数据包通过该第二网络设备的交换结构处理后的时刻和该第一时刻,确定该第二参考时刻,其中该数据包通过该第二网络设备的交换结构处理后的时刻小于该第二参考时刻。
可选地,在一些实施例中,该处理单元1720还用于:根据以下公式确定该第二参考时刻:
Figure BDA0002612862540000265
其中,E2为该第二参考时刻,
Figure BDA0002612862540000266
为该数据包通过该第二网络设备的交换结构处理后的时刻,
Figure BDA0002612862540000267
为该第一时延,
Figure BDA0002612862540000268
为该数据包被该第一网络设备输出的第一输出时刻,E1为该第一参考时刻,
Figure BDA0002612862540000269
为该第一时刻。
可选地,在一些实施例中,该时间信息包括第一时间值,该第一时间值为该第一剩余处理时间。
可选地,在一些实施例中,该时间信息包括第一指示信息,该第一指示信息用于指示该第一处理时间。
可选地,在一些实施例中,该第一指示信息包括第二时间值,该第二时间值为该第一处理时间。
可选地,在一些实施例中,该第一指示信息包括第三时间值和第四时间值,该第三时间值为该数据包被该第一网络设备输出的第一输出时刻,该第四时间值为该第一参考时刻。
可选地,在一些实施例中,该时间信息还包括第二指示信息,该第二指示信息用于指示该第一时延。
可选地,在一些实施例中,该处理单元1720还用于:确定该目标队列为该第二队列系统包括的多个队列中当前时刻被调度的队列,以及该目标队列为开启状态;
该收发单元1710还用于:根据该第二队列系统对应的调度规则将该数据包发送至第三网络设备。
可选地,在一些实施例中,该处理单元1720还用于:在该目标队列满足第一预设条件的情况下,确定关闭该目标队列。
可选地,在一些实施例中,该处理单元1720还用于:根据第一信息,确定第二目标时刻,该第二目标时刻对应于该目标队列,该第二目标时刻为在第一目标时刻后该目标队列对应的开启的时刻,该第二目标时刻大于多个预设时刻中的任意一个预设时刻,该第一信息包括该第二队列系统包括的每个队列对应的调度顺序和该第二队列系统包括的每个队列对应的开启的时刻;
其中,该第二队列系统包括的多个队列与该多个预设时刻一一对应,该多个预设时刻中任意两个相邻预设时刻的差为第一值,该第一目标时刻对应的该第二队列系统包括的多个队列中的一个队列为该目标队列,该第一目标时刻为该第二参考时刻与第二值的和,该第二值为该第二参考时刻与第三时刻的差的绝对值加上该第一值的整数倍,该第二参考时刻与该第三时刻之间不包括该多个预设时刻中的任一个时刻,该第一目标时刻是该多个预设时刻中的一个时刻。
可选地,在一些实施例中,该处理单元1720还用于:
当确定该目标队列为该第二队列系统包括的多个队列中优先级最高的队列时,确定该目标队列为该第二队列系统包括的多个队列中当前时刻被调度的队列;
将该目标队列的优先级设置为该第二队列系统包括的多个队列中优先级最低的队列,并将该第二队列系统包括的多个队列中除该目标队列之外的队列的优先级提升。
可选地,在一些实施例中,该第二队列系统包括的多个队列与多个预设调度顺序一一对应,该处理单元1720还用于:根据该多个预设调度顺序确定该目标队列对应的预设调度顺序为该第二网络设备在该当前时刻调度的队列对应的调度顺序时,确定该目标队列为该第二队列系统包括的多个队列中当前时刻被调度的队列。
可选地,在一些实施例中,该第一预设条件包括:该目标队列为空队列,且该目标队列的开启时长大于等于第一值,该第一值为多个预设时刻中任意两个相邻预设时刻的差,该多个预设时刻与该第二队列系统包括的多个队列一一对应。
图18示出了本申请实施例提供的第二网络设备2000的硬件结构示意图。图18所示第二网络设备2000可以执行上述实施例的方法中第二网络设备执行的相应步骤。
如图18所示,所述第二网络设备2000包括处理器2001、存储器2002、接口2003和总线2004。其中接口2003可以通过无线或有线的方式实现,具体来讲可以是网卡。上述处理器2001、存储器2002和接口2003通过总线2004连接。
所述接口2003具体可以包括发送器和接收器,用于第二网络设备实现上述收发。例如,所述接口2003用于在第一时刻接收第一网络设备发送的数据包;还用于根据所述第二队列系统对应的调度规则将所述数据包发送至第三网络设备。
所述处理器2001用于执行上述实施例中由第二网络设备进行的处理。例如,该处理器用于根据所述数据包携带的时间信息,确定第二参考时刻;还用于根据所述第二参考时刻从所述第二队列系统包括的多个队列中确定目标队列并将所述数据包加入所述目标队列;还用于根据所述第二队列系统对应的调度规则将所述数据包发送至第三网络设备;和/或用于本文所描述的技术的其他过程。存储器2002包括操作系统20021和应用程序20022,用于存储程序、代码或计算机执行指令,当处理器或硬件设备执行这些程序、代码或计算机执行指令时可以完成方法实施例中涉及第二网络设备的处理过程。可选的,所述存储器2002可以包括只读存储器(read-only memory,ROM)和随机存取存储器(randomaccess memory,RAM)。其中,所述ROM包括基本输入/输出系统(basic input/outputsystem,BIOS)或嵌入式系统;所述RAM包括应用程序和操作系统。当需要运行第二网络设备2000时,通过固化在ROM中的BIOS或者嵌入式系统中的bootloader引导系统进行启动,引导第二网络设备2000进入正常运行状态。在第二网络设备2000进入正常运行状态后,运行在RAM中的应用程序和操作系统,从而,完成方法实施例中涉及第二网络设备2000的处理过程。
可以理解的是,图18仅仅示出了第二网络设备2000的简化设计。在实际应用中,第二网络设备可以包含任意数量的接口,处理器或者存储器。
本申请实施例还提供了一种计算机可读介质,该计算机可读介质存储有程序代码,当该计算机程序代码在计算机上运行时,使得计算机执行上述各方面中的方法。这些计算机可读存储包括但不限于如下的一个或者多个:只读存储器(read-only memory,ROM)、可编程ROM(programmable ROM,PROM)、可擦除的PROM(erasable PROM,EPROM)、Flash存储器、电EPROM(electrically EPROM,EEPROM)以及硬盘驱动器(hard drive)。
本申请实施例还提供了一种芯片系统,应用于第二网络设备中,该芯片系统包括:至少一个处理器、至少一个存储器和接口电路,所述接口电路负责所述芯片系统与外界的信息交互,所述至少一个存储器、所述接口电路和所述至少一个处理器通过线路互联,所述至少一个存储器中存储有计算机执行指令;所述计算机执行指令被所述至少一个处理器执行,以进行上述各个方面的所述的方法中所述第二网络设备的操作。
在具体实现过程中,该芯片系统可以以中央处理器(central processing unit,CPU)、微控制器(micro controller unit,MCU)、微处理器(micro processing unit,MPU)、数字信号处理器(digital signal processing,DSP)、片上系统(system on chip,SoC)、专用集成电路(application-specific integrated circuit,ASIC)、现场可编程门阵列(field programmable gate array,FPGA)或可编辑逻辑器件(programmable logicdevice,PLD)的形式实现。
本申请实施例还提供了一种计算机程序产品,应用于第二网络设备中,所述计算机程序产品包括一系列计算机执行指令,当所述计算机执行指令被运行时,以进行上述各个方面的所述的方法中所述第二网络设备的操作。
应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干计算机执行指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

Claims (39)

1.一种发送数据包的方法,其特征在于,所述方法包括:
第二网络设备在第一时刻接收第一网络设备发送的数据包;
所述第二网络设备根据所述数据包携带的时间信息,确定第二参考时刻,所述第二参考时刻为指导所述数据包进入第二队列系统中的队列的参考时刻,所述第二队列系统为所述第二网络设备的队列系统,所述时间信息用于指示所述数据包通过所述第一网络设备的第一剩余处理时间,所述第一剩余处理时间为第一时延与第一处理时间的差,所述第一时延为不小于第一理论时间上限与第一传输时间的差的绝对值的值,所述第一理论时间上限为第一参考时刻至所述第二参考时刻的理论处理时间上限,所述第一参考时刻为指导所述数据包进入第一队列系统中的队列的参考时刻,所述第一队列系统为所述第一网络设备的队列系统,所述第一传输时间为所述数据包被所述第一网络设备输出的第一输出时刻至所述第一时刻的实际传输时间,所述第一处理时间为所述第一参考时刻至所述数据包被所述第一网络设备输出的第一输出时刻的实际处理时间;
所述第二网络设备根据所述第二参考时刻从所述第二队列系统包括的多个队列中确定目标队列并将所述数据包加入所述目标队列;
所述第二网络设备根据所述第二队列系统对应的调度规则将所述数据包发送至第三网络设备。
2.如权利要求1所述的方法,其特征在于,所述第二队列系统包括的多个队列与多个预设时刻一一对应,所述多个预设时刻中任意两个相邻预设时刻的差为第一值,所述所述第二网络设备根据所述第二参考时刻从所述第二队列系统包括的多个队列中确定目标队列,包括:
所述第二网络设备根据所述第二参考时刻,确定第一目标时刻对应的所述第二队列系统包括的多个队列中的一个队列为所述目标队列,所述第一目标时刻为所述第二参考时刻与第二值的和,所述第二值为所述第二参考时刻与第三时刻的差的绝对值加上所述第一值的整数倍,所述第二参考时刻与所述第三时刻之间不包括所述多个预设时刻中的任一个时刻,所述第三时刻是所述多个预设时刻中的一个时刻且所述第三时刻大于所述第二参考时刻,所述第一目标时刻是所述多个预设时刻中的一个时刻。
3.如权利要求1或2所述的方法,其特征在于,所述第二网络设备根据所述数据包携带的时间信息,确定第二参考时刻,包括:
所述第二网络设备根据所述第一时延和所述第一处理时间,确定所述第二参考时刻。
4.如权利要求3所述的方法,其特征在于,所述第二网络设备根据所述第一时延和所述第一处理时间,确定所述第二参考时刻,包括:
所述第二网络设备根据所述第一时延、所述第一参考时刻、所述数据包被所述第一网络设备输出的第一输出时刻和所述第一时刻,确定所述第二参考时刻。
5.如权利要求4所述的方法,其特征在于,所述所述第二网络设备根据所述第一时延、所述第一参考时刻、所述数据包被所述第一网络设备输出的第一输出时刻和所述第一时刻,确定所述第二参考时刻,包括:所述第二网络设备根据以下公式确定所述第二参考时刻:
Figure FDA0002612862530000021
其中,E2为所述第二参考时刻,
Figure FDA0002612862530000022
为所述第一时刻,
Figure FDA0002612862530000023
为所述第一时延,
Figure FDA0002612862530000024
为所述数据包被所述第一网络设备输出的第一输出时刻,E1为所述第一参考时刻。
6.如权利要求3所述的方法,其特征在于,所述所述第二网络设备根据所述第一时延和所述第一处理时间,确定所述第二参考时刻,包括:
所述第二网络设备根据所述第一时延、所述第一参考时刻、所述数据包被所述第一网络设备输出的第一输出时刻、所述数据包通过所述第二网络设备的交换结构处理后的时刻和所述第一时刻,确定所述第二参考时刻,其中所述数据包通过所述第二网络设备的交换结构处理后的时刻小于所述第二参考时刻。
7.如权利要求6所述的方法,其特征在于,所述所述第二网络设备根据所述第一时延、所述第一参考时刻、所述数据包被所述第一网络设备输出的第一输出时刻、所述数据包通过所述第二网络设备的交换结构处理后的时刻和所述第一时刻,确定所述第二参考时刻,包括:所述第二网络设备根据以下公式确定所述第二参考时刻:
Figure FDA0002612862530000025
其中,E2为所述第二参考时刻,
Figure FDA0002612862530000026
为所述数据包通过所述第二网络设备的交换结构处理后的时刻,
Figure FDA0002612862530000027
为所述第一时延,
Figure FDA0002612862530000028
为所述数据包被所述第一网络设备输出的第一输出时刻,E1为所述第一参考时刻,
Figure FDA0002612862530000029
为所述第一时刻。
8.如权利要求1-7任一项所述的方法,其特征在于,
所述时间信息包括第一时间值,所述第一时间值为所述第一剩余处理时间。
9.如权利要求1-7任一项所述的方法,其特征在于,
所述时间信息包括第一指示信息,所述第一指示信息用于指示所述第一处理时间。
10.如权利要求9所述的方法,其特征在于,
所述第一指示信息包括第二时间值,所述第二时间值为所述第一处理时间。
11.如权利要求9所述的方法,其特征在于,
所述第一指示信息包括第三时间值和第四时间值,所述第三时间值为所述数据包被所述第一网络设备输出的第一输出时刻,所述第四时间值为所述第一参考时刻。
12.如权利要求10或11所述的方法,其特征在于,
所述时间信息还包括第二指示信息,所述第二指示信息用于指示所述第一时延。
13.如权利要求1-12任一项所述的方法,其特征在于,所述所述第二网络设备根据所述第二队列系统对应的调度规则将所述数据包发送至所述第三网络设备,包括:
所述第二网络设备确定所述目标队列为所述第二队列系统包括的多个队列中当前时刻被调度的队列,以及所述目标队列为开启状态,所述第二网络设备将所述数据包发送至所述第三网络设备。
14.如权利要求13所述的方法,其特征在于,所述方法还包括:
所述第二网络设备在所述目标队列满足第一预设条件的情况下,确定关闭所述目标队列。
15.如权利要求14所述的方法,其特征在于,在所述第二网络设备确定关闭所述目标队列之后,所述方法还包括:
所述第二网络设备根据第一信息,确定第二目标时刻,所述第二目标时刻对应于所述目标队列,所述第二目标时刻为在第一目标时刻后所述目标队列对应的开启的时刻,所述第二目标时刻大于多个预设时刻中的任意一个预设时刻,所述第一信息包括所述第二队列系统包括的每个队列对应的调度顺序和所述第二队列系统包括的每个队列对应的开启的时刻;
其中,所述第二队列系统包括的多个队列与所述多个预设时刻一一对应,所述多个预设时刻中任意两个相邻预设时刻的差为第一值,所述第一目标时刻对应的所述第二队列系统包括的多个队列中的一个队列为所述目标队列,所述第一目标时刻为所述第二参考时刻与第二值的和,所述第二值为所述第二参考时刻与第三时刻的差的绝对值加上所述第一值的整数倍,所述第二参考时刻与所述第三时刻之间不包括所述多个预设时刻中的任一个时刻,所述第三时刻是所述多个预设时刻中的一个时刻且所述第三时刻大于所述第二参考时刻,所述第一目标时刻是所述多个预设时刻中的一个时刻。
16.如权利要求14或15所述的方法,其特征在于,
所述第二网络设备确定所述目标队列为所述第二队列系统包括的多个队列中当前时刻被调度的队列,包括:
当所述第二网络设备确定所述目标队列为所述第二队列系统包括的多个队列中优先级最高的队列时,所述第二网络设备确定所述目标队列为所述第二队列系统包括的多个队列中当前时刻被调度的队列;
在所述第二网络设备确定关闭所述目标队列之后,所述方法还包括:
所述第二网络设备将所述目标队列的优先级设置为所述第二队列系统包括的多个队列中优先级最低的队列,并将所述第二队列系统包括的多个队列中除所述目标队列之外的队列的优先级提升。
17.如权利要求14或15所述的方法,其特征在于,所述第二队列系统包括的多个队列与多个预设调度顺序一一对应,
所述第二网络设备确定所述目标队列为所述第二队列系统包括的多个队列中当前时刻被调度的队列,包括:
当所述第二网络设备根据所述多个预设调度顺序确定所述目标队列对应的预设调度顺序为所述第二网络设备在所述当前时刻调度的队列对应的调度顺序时,所述第二网络设备确定所述目标队列为所述第二队列系统包括的多个队列中当前时刻被调度的队列。
18.如权利要求14-17任一项所述的方法,其特征在于,所述第一预设条件包括:所述目标队列为空队列,且所述目标队列的开启时长大于等于第一值,所述第一值为多个预设时刻中任意两个相邻预设时刻的差,所述多个预设时刻与所述第二队列系统包括的多个队列一一对应。
19.一种第二网络设备,其特征在于,所述第二网络设备包括:
收发单元,用于在第一时刻接收第一网络设备发送的数据包;
处理单元,用于根据所述数据包携带的时间信息,确定第二参考时刻,所述第二参考时刻为指导所述数据包进入第二队列系统中的队列的参考时刻,所述第二队列系统为所述第二网络设备的队列系统,所述时间信息用于指示所述数据包通过所述第一网络设备的第一剩余处理时间,所述第一剩余处理时间为第一时延与第一处理时间的差,所述第一时延为不小于第一理论时间上限与第一传输时间的差的绝对值的值,所述第一理论时间上限为第一参考时刻至所述第二参考时刻的理论处理时间上限,所述第一参考时刻为指导所述数据包进入第一队列系统中的队列的参考时刻,所述第一队列系统为所述第一网络设备的队列系统,所述第一传输时间为所述数据包被所述第一网络设备输出的第一输出时刻至所述第一时刻的实际传输时间,所述第一处理时间为所述第一参考时刻至所述数据包被所述第一网络设备输出的第一输出时刻的实际处理时间;
所述处理单元,还用于根据所述第二参考时刻从所述第二队列系统包括的多个队列中确定目标队列并将所述数据包加入所述目标队列;
所述处理单元,还用于根据所述第二队列系统对应的调度规则将所述数据包发送至第三网络设备。
20.如权利要求19所述的第二网络设备,其特征在于,所述第二队列系统包括的多个队列与多个预设时刻一一对应,
所述处理单元还用于:
所述第二参考时刻,确定第一目标时刻对应的所述第二队列系统包括的多个队列中的一个队列为所述目标队列,所述第一目标时刻为所述第二参考时刻与第二值的和,所述第二值为所述第二参考时刻与第三时刻的差的绝对值加上所述第一值的整数倍,所述第二参考时刻与所述第三时刻之间不包括所述多个预设时刻中的任一个时刻,所述第三时刻是所述多个预设时刻中的一个时刻且所述第三时刻大于所述第二参考时刻,所述第一目标时刻是所述多个预设时刻中的一个时刻。
21.如权利要求19或20所述的第二网络设备,其特征在于,所述处理单元还用于:
根据所述第一时延和所述第一处理时间,确定所述第二参考时刻。
22.如权利要求21所述的第二网络设备,其特征在于,所述处理单元还用于:
根据所述第一时延、所述第一参考时刻、所述数据包被所述第一网络设备输出的第一输出时刻和所述第一时刻,确定所述第二参考时刻。
23.如权利要求22所述的第二网络设备,其特征在于,所述处理单元还用于:
根据以下公式确定所述第二参考时刻:
Figure FDA0002612862530000041
其中,E2为所述第二参考时刻,
Figure FDA0002612862530000042
为所述第一时刻,
Figure FDA0002612862530000043
为所述第一时延,
Figure FDA0002612862530000044
为所述数据包被所述第一网络设备输出的第一输出时刻,E1为所述第一参考时刻。
24.如权利要求21所述的第二网络设备,其特征在于,所述处理单元还用于:
根据所述第一时延、所述第一参考时刻、所述数据包被所述第一网络设备输出的第一输出时刻、所述数据包通过所述第二网络设备的交换结构处理后的时刻和所述第一时刻,确定所述第二参考时刻,其中所述数据包通过所述第二网络设备的交换结构处理后的时刻小于所述第二参考时刻。
25.如权利要求24所述的第二网络设备,其特征在于,所述处理单元还用于:
根据以下公式确定所述第二参考时刻:
Figure FDA0002612862530000045
其中,E2为所述第二参考时刻,
Figure FDA0002612862530000046
为所述数据包通过所述第二网络设备的交换结构处理后的时刻,
Figure FDA0002612862530000047
为所述第一时延,
Figure FDA0002612862530000048
为所述数据包被所述第一网络设备输出的第一输出时刻,E1为所述第一参考时刻,
Figure FDA0002612862530000049
为所述第一时刻。
26.如权利要求19-25任一项所述的第二网络设备,其特征在于,
所述时间信息包括第一时间值,所述第一时间值为所述第一剩余处理时间。
27.如权利要求19-25任一项所述的第二网络设备,其特征在于,
所述时间信息包括第一指示信息,所述第一指示信息用于指示所述第一处理时间。
28.如权利要求27所述的第二网络设备,其特征在于,
所述第一指示信息包括第二时间值,所述第二时间值为所述第一处理时间。
29.如权利要求27所述的第二网络设备,其特征在于,
所述第一指示信息包括第三时间值和第四时间值,所述第三时间值为所述数据包被所述第一网络设备输出的第一输出时刻,所述第四时间值为所述第一参考时刻。
30.如权利要求28或29所述的第二网络设备,其特征在于,
所述时间信息还包括第二指示信息,所述第二指示信息用于指示所述第一时延。
31.如权利要求19-30任一项所述的第二网络设备,其特征在于,
所述处理单元还用于:
确定所述目标队列为所述第二队列系统包括的多个队列中当前时刻被调度的队列,以及所述目标队列为开启状态;
所述收发单元还用于:根据所述第二队列系统对应的调度规则将所述数据包发送至第三网络设备。
32.如权利要求31所述的第二网络设备,其特征在于,所述处理单元还用于:
在所述目标队列满足第一预设条件的情况下,确定关闭所述目标队列。
33.如权利要求32所述的第二网络设备,其特征在于,所述处理单元还用于:
根据第一信息,确定第二目标时刻,所述第二目标时刻对应于所述目标队列,所述第二目标时刻为在第一目标时刻后所述目标队列对应的开启的时刻,所述第二目标时刻大于多个预设时刻中的任意一个预设时刻,所述第一信息包括所述第二队列系统包括的每个队列对应的调度顺序和所述第二队列系统包括的每个队列对应的开启的时刻;
其中,所述第二队列系统包括的多个队列与所述多个预设时刻一一对应,所述多个预设时刻中任意两个相邻预设时刻的差为第一值,所述第一目标时刻对应的所述第二队列系统包括的多个队列中的一个队列为所述目标队列,所述第一目标时刻为所述第二参考时刻与第二值的和,所述第二值为所述第二参考时刻与第三时刻的差的绝对值加上所述第一值的整数倍,所述第二参考时刻与所述第三时刻之间不包括所述多个预设时刻中的任一个时刻,所述第三时刻是所述多个预设时刻中的一个时刻且所述第三时刻大于所述第二参考时刻,所述第一目标时刻是所述多个预设时刻中的一个时刻。
34.如权利要求32或33所述的第二网络设备,其特征在于,
所述处理单元还用于:
当确定所述目标队列为所述第二队列系统包括的多个队列中优先级最高的队列时,确定所述目标队列为所述第二队列系统包括的多个队列中当前时刻被调度的队列;
将所述目标队列的优先级设置为所述第二队列系统包括的多个队列中优先级最低的队列,并将所述第二队列系统包括的多个队列中除所述目标队列之外的队列的优先级提升。
35.如权利要求32或33所述的第二网络设备,其特征在于,所述第二队列系统包括的多个队列与多个预设调度顺序一一对应,
所述处理单元还用于:
当根据所述多个预设调度顺序确定所述目标队列对应的预设调度顺序为所述第二网络设备在所述当前时刻调度的队列对应的调度顺序时,确定所述目标队列为所述第二队列系统包括的多个队列中当前时刻被调度的队列。
36.如权利要求32-35任一项所述的第二网络设备,其特征在于,所述第一预设条件包括:所述目标队列为空队列,且所述目标队列的开启时长大于等于第一值,所述第一值为多个预设时刻中任意两个相邻预设时刻的差,所述多个预设时刻与所述第二队列系统包括的多个队列一一对应。
37.一种第二网络设备,包括处理器和存储器,所述存储器用于存储计算机执行指令,所述处理器用于读取所述存储器中存储的所述计算机执行指令,以实现如权利要求1至18中任一项所述的方法。
38.一种计算机可读存储介质,包括计算机程序,当其在计算机上运行时,使得所述计算机执行如权利要求1至18中任一项所述的方法。
39.一种芯片系统,其特征在于,包括至少一个处理器和接口;所述至少一个所述处理器,用于调用并运行计算机程序,以使所述芯片系统执行如权利要求1至18中任一项所述的方法。
CN202010760188.5A 2020-07-31 2020-07-31 发送数据包的方法及网络设备 Pending CN114095454A (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
CN202010760188.5A CN114095454A (zh) 2020-07-31 2020-07-31 发送数据包的方法及网络设备
PCT/CN2021/104191 WO2022022222A1 (zh) 2020-07-31 2021-07-02 发送数据包的方法及网络设备
EP21851520.3A EP4184887A4 (en) 2020-07-31 2021-07-02 METHOD FOR SENDING DATA PACKET, AND NETWORK DEVICE
US18/159,875 US20230171201A1 (en) 2020-07-31 2023-01-26 Method for sending data packet and network device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010760188.5A CN114095454A (zh) 2020-07-31 2020-07-31 发送数据包的方法及网络设备

Publications (1)

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

Family

ID=80037484

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010760188.5A Pending CN114095454A (zh) 2020-07-31 2020-07-31 发送数据包的方法及网络设备

Country Status (4)

Country Link
US (1) US20230171201A1 (zh)
EP (1) EP4184887A4 (zh)
CN (1) CN114095454A (zh)
WO (1) WO2022022222A1 (zh)

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7852763B2 (en) * 2009-05-08 2010-12-14 Bae Systems Information And Electronic Systems Integration Inc. System and method for determining a transmission order for packets at a node in a wireless communication network
US9124482B2 (en) * 2011-07-19 2015-09-01 Cisco Technology, Inc. Delay budget based forwarding in communication networks
US9538265B2 (en) * 2014-02-04 2017-01-03 Nec Corporation Lossless and low-delay optical burst switching using soft reservations and opportunistic transmission
EP3073680B1 (en) * 2015-03-23 2017-12-06 Alcatel Lucent Methods, queueing system, network element and network system for queueing and processing of packets
CN106921586B (zh) * 2015-12-25 2020-02-14 华为技术有限公司 一种数据流整形方法、数据调度方法以及装置
CN108282415B (zh) * 2017-12-29 2022-01-11 超聚变数字技术有限公司 一种调度方法及设备
EP3720069A4 (en) * 2017-12-31 2020-12-02 Huawei Technologies Co., Ltd. METHOD, DEVICE, AND SYSTEM FOR SENDING A MESSAGE
CN110086728B (zh) * 2018-01-26 2021-01-29 华为技术有限公司 发送报文的方法、第一网络设备及计算机可读存储介质
CN111416779B (zh) * 2020-03-27 2022-04-19 西安电子科技大学 基于时限的互联网业务队列调度方法

Also Published As

Publication number Publication date
WO2022022222A1 (zh) 2022-02-03
EP4184887A1 (en) 2023-05-24
EP4184887A4 (en) 2023-12-13
US20230171201A1 (en) 2023-06-01

Similar Documents

Publication Publication Date Title
EP4258611A2 (en) Message sending method, network node and system
EP3787244B1 (en) Packet sending method, network node, and system
CN114422448B (zh) 一种时间敏感网络流量整形方法
CN114338523B (zh) 一种报文转发方法和装置
Zhou et al. Insight into the IEEE 802.1 Qcr asynchronous traffic shaping in time sensitive network
Zhou et al. Analysis and modeling of asynchronous traffic shaping in time sensitive networks
WO2022022224A1 (zh) 调度数据包的方法和相关装置
CN113366805A (zh) 报文调度方法、调度器、网络设备和网络系统
Soni et al. Optimizing network calculus for switched ethernet network with deficit round robin
CN117675606A (zh) 一种基于数字化仿真的时间敏感网络资源调度算法组合方法
CN114095454A (zh) 发送数据包的方法及网络设备
US9860894B2 (en) Wireless backhaul system
Soni et al. Deficit Round-Robin: Network Calculus based Worst-Case Traversal Time Analysis Revisited
WO2022105686A1 (zh) 报文处理方法以及相关装置
CN116545947A (zh) 多链路速率组网下的数据流传输方法及其相关设备
WO2024016327A1 (zh) 报文传输
Yao et al. Burst-Aware Mixed Flow Scheduling in Time-Sensitive Networks for Power Business
Zhou Latency-Critical Networking
Li et al. Enhanced Switch Design Supporting Dual Preemption Under Real-Time Ethernet
CN114501544A (zh) 一种数据传输方法、装置和存储介质
CN117579577A (zh) 基于时间敏感网络的数据帧转发方法、装置及计算机设备
Li et al. Efficient Delay Guarantee in Industrial Backhaul Networks
Hong et al. A Novel Routing Algorithm based on Path Diversity and Congestion Estimation
Kanhere et al. Anchored opportunity queueing: a low-latency scheduler for fair arbitration among virtual channels
Wang Real-Time Switched Networks

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