CN116686272A - 一种报文传输方法及网络设备 - Google Patents
一种报文传输方法及网络设备 Download PDFInfo
- Publication number
- CN116686272A CN116686272A CN202180004332.5A CN202180004332A CN116686272A CN 116686272 A CN116686272 A CN 116686272A CN 202180004332 A CN202180004332 A CN 202180004332A CN 116686272 A CN116686272 A CN 116686272A
- Authority
- CN
- China
- Prior art keywords
- message
- queue
- input
- deterministic
- flow
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 59
- 230000005540 biological transmission Effects 0.000 title claims abstract description 45
- 238000012545 processing Methods 0.000 claims abstract description 194
- 238000005538 encapsulation Methods 0.000 claims abstract description 33
- 239000000872 buffer Substances 0.000 claims description 13
- 238000004148 unit process Methods 0.000 claims description 6
- 239000000523 sample Substances 0.000 claims 2
- 239000000758 substrate Substances 0.000 claims 1
- 230000006870 function Effects 0.000 description 27
- 230000008569 process Effects 0.000 description 26
- 238000010586 diagram Methods 0.000 description 21
- 238000004590 computer program Methods 0.000 description 7
- 125000004122 cyclic group Chemical group 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000004744 fabric Substances 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000003139 buffering effect Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/62—Queue scheduling characterised by scheduling criteria
- H04L47/6215—Individual queue per QOS, rate or priority
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/24—Traffic characterised by specific attributes, e.g. priority or QoS
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Computer And Data Communications (AREA)
Abstract
本申请提供一种报文传输方法及网络设备,该方法包括:输出转发处理单元获取到报文后,若报文属于确定性流,则将报文存储到确定性流输入队列;针对确定性流输入队列中每个报文,确定报文对应的封装信息,封装信息包括CQ队列信息,基于封装信息对报文进行封装,将封装后的报文存储到确定性流输出队列;输出接口单元从确定性流输出队列中获取报文,基于报文对应的CQ队列信息,将报文存储到与该CQ队列信息对应的CQ队列;输出接口单元确定与当前调度周期对应的目标CQ队列,在当前调度周期内向外部设备发送目标CQ队列中的报文。通过本申请的技术方案,能够保证确定性流转发不受尽力而为流转发的影响,并保证尽力而为流转发和确定性流转发的相互兼容。
Description
本申请涉及通信技术领域,尤其涉及一种报文传输方法及网络设备。
DetNet(Deterministic Network,确定性网络)可以在一个网络域内为承载业务提供确定性业务功能,这些确定性业务功能可以包括时延、丢包率等。TSN(Time Sensitive Networking,时间敏感型网络)是基于局域网实现的确定性网络,在TSN中,通过采用CQF(Cyclic Queuing and Forwarding,周期排队转发)确保转发层面的确定性传输,从而为承载业务提供确定性业务功能。
为便于描述,确定性网络中传输的具有确定性业务功能(如时延、丢包率等)的业务流称为确定性流。针对不同于确定性流的其它业务流,可以按照尽力而为转发的方式,因此,将不同于确定性流的其它业务流称为尽力而为流。
发明内容
本申请提供一种报文传输方法,应用于网络设备,所述网络设备至少包括输出转发处理单元和输出接口单元,所述方法包括:
所述输出转发处理单元在获取到报文后,若该报文属于确定性流,则将该报文存储到确定性流输入队列;针对所述确定性流输入队列中的每个报文,确定该报文对应的封装信息,所述封装信息至少包括CQ队列信息,基于所述封装信息对该报文进行封装,将封装后的报文存储到确定性流输出队列;
所述输出接口单元从所述确定性流输出队列中获取报文,基于该报文对应的CQ队列信息,将该报文存储到与该CQ队列信息对应的CQ队列;
所述输出接口单元确定与当前调度周期对应的目标CQ队列,在所述当前调度周期内,向外部设备发送所述目标CQ队列中的报文。
本申请提供一种网络设备,包括输出转发处理单元和输出接口单元;
所述输出转发处理单元,用于在获取到报文后,若该报文属于确定性流,则将该报文存储到确定性流输入队列;针对所述确定性流输入队列中的每个报文,确定该报文对应的封装信息,所述封装信息至少包括CQ队列信息,基于所述封装信息对该报文进行封装,将封装后的报文存储到确定性流输出队列;
所述输出接口单元,用于从所述确定性流输出队列中获取报文,基于该报文对应的CQ队列信息,将该报文存储到与该CQ队列信息对应的CQ队列;
所述输出接口单元,用于确定与当前调度周期对应的目标CQ队列,在所述当前调度周期内,向外部设备发送所述目标CQ队列中的报文。
由以上技术方案可见,本申请实施例中,能够保证确定性流转发不受尽力而为流转发的影响,并保证尽力而为流转发和确定性流转发的相互兼容。基于CSQF(Cycle Specified Queuing and Forwarding,指定周期排队转发)实现广域确定性网络的报文传输,实现确定性流与尽力而为流的共存,便于实现共网和共路的全业务全融合。在确定性流预留带宽没有被确定性流量使用时,能够被尽力而为流使用,在拥塞产生时,确定性流不受影响,通过控制尽力而为流的数量解决拥塞情况。维持尽力而为流的HQOS (Hierarchical Quality of Service,分层服务质量)调度,但是,不对确定性流实现HQOS调度。
为了更加清楚地说明本申请实施例或者现有技术中的技术方案,下面将对本申请实施例或者现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,还可以根据本申请实施例的这些附图获得其他的附图。
图1是本申请一种实施方式中的CSQF的工作原理示意图;
图2是本申请一种实施方式中的CSQF和CQF的对比示意图;
图3是本申请一种实施方式中的网络设备的结构示意图;
图4A和图4B是本申请一种实施方式中的网络设备的结构示意图;
图5A是本申请一种实施方式中的输入接口单元的结构示意图;
图5B是本申请一种实施方式中的输入转发处理单元的结构示意图;
图5C是本申请一种实施方式中的输出转发处理单元的结构示意图;
图5D是本申请一种实施方式中的输出接口单元的结构示意图;
图6是本申请一种实施方式中的报文传输方法的流程示意图。
在本申请实施例使用的术语仅仅是出于描述特定实施例的目的,而非限制本申请。本申请和权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其它含义。还应当理解,本文中使用的术语“和/或”是指包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请实施例可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,此外,所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
TSN是基于局域网实现的确定性网络,在TSN中,通过采用CQF确保转发层面的确定性传输,从而为承载业务提供确定性业务功能。当然,CQF只是提供确定性业务的示例,还可以采用其它方式确保转发层面的确定性传输,对此不做限制。CQF作为与CSQF接近的技术,本实施例以CQF为例。CQF的基本工作原理是:每个网络设备的出接口关联2个队列,并将时域划分为2个周期,这2个队列在这两个周期内交替发送和接收。比如说,将这2个队列记为队列Q1和队列Q2,将这2个周期记为T0周期和T1周期,在T0周期内,队列Q1进行发送,队列Q2进行接收(队列Q1的接收关,队列Q2的接收开,队列Q1的发送开,队列Q2的发送关),在T1周期内,队列Q1进行接收,队列Q2进行发送,以此类推,这样,队列Q1和队列Q2可以按照奇偶周期交替进行。
CQF要求每一跳传输一个周期,报文在某个网络设备的某一个周期内接收,在下一个周期内发送出去,而下一个网络设备就在下一个周期内接收到该报文,以此类推。这 样,当周期T为确定值,则报文在路径上的传输时延(端到端的传输时延)就是确定的,该传输时延的最小值为(H-1)*T,该传输时延的最大值为(H+1)*T,H为跳数,表示路径上经过的网络设备的总数量。
由于CQF是基于局域网的技术,在广域网中无法实现,为了实现广域网的确定性传输,基于CQF提出了CSQF(Cycle Specified Queuing and Forwarding,指定周期排队转发),CSQF结合SR(Segment Routing,分段路由)应用或者SRv6应用,实现广域网的确定性传输。其中,SR可以是基于MPLS(Multi-Protocol Label Switching,多协议标签交换)的SR,SRv6可以是基于IPV6的SRv6。
参见图1所示,为CSQF的工作原理示意图,控制器10用于收集各网络设备的信息,如发送能力、接口、周期数、节点内最大抖动等。针对发送者到接收者之间的确定性传输需求,控制器10经过计算后,若发现有足够的传输资源,则分配传输路径,并将传输路径的信息下发给边缘节点,参见图1所示,发送者到接收者之间的传输路径可以是:网络设备11-网络设备12-网络设备13-网络设备14,该传输路径的边缘节点(即首个网络设备)是网络设备11。
网络设备11在接收到需要转发的报文(packet)后,在报文中添加传输路径中每个网络设备的信息,如网络设备在路径中的节点标识(如SRv6的SID(Segment identifier,分段标识)中的Locator(位置)等)、网络设备的发送接口、网络设备中需要发送的周期。这样,报文到达某网络设备后,该网络设备可以取出相应的接口和周期信息,然后,将该报文存储到与该周期对应的队列。
针对每个网络设备来说,可以按照一定周期循环对各队列中的报文进行发送,即每个队列对应一个周期,可以在该周期内发送该队列中的报文,由于网络设备的周期循环以固定模式进行,因此,在网络设备11中,对发送者的每个报文的指定周期不变,发送者到接收者的报文在每个网络设备转发的周期是确定的,因此,报文的整个时延也是确定的,从而实现确定性传输。
综上可以看出,CSQF和CQF的实现过程类似,CSQF和CQF的区别可以在于:CSQF至少需要3个队列(如3、6、8、9、10、12、15个队列等,后续以15个队列为例),每一个周期内只有一个队列处于发送状态,而其它队列均处于接收状态。对于CQF来说,要求各网络设备的循环周期严格同步,包括需要相位同步,对于CSQF来说,只要求循环周期的频率同步,不需要相位同步,同时对于某跳传输时延无法在一个周期内完成的情况,可以指定下一个周期传输的队列,通过此方式来适应广域网的不同网络设备的传输时延。
参见图2所示,为CSQF和CQF的对比示意图,对于CQF来说,针对某个报文的传输过程,网络设备11在周期1发送该报文,网络设备12在周期1接收该报文,且网络设备12在周期2发送该报文,网络设备13在周期2接收该报文,且网络设备13在周期3发送该报文,网络设备14在周期3接收该报文,且网络设备14在周期4发送该报文。对于CSQF来说,以CSQF需要3个队列为例,针对某个报文的传输过程,网络设备11在周期1发送该报文,网络设备12在周期1或者周期2接收该报文,且网络设备12在周期3发送该报文,网络设备13在周期3接收该报文,且网络设备13在周期4发送该报文,网络设备14在周期4或者周期5接收该报文,且网络设备14在周期6发送该报文。
在CSQF的实现过程中,能够保证报文的整个时延确定,其原因在于:每个网络设备划分以固定长度为周期的时间片,对确定性的业务流进行统一流量调度,使其在确定时间片内进行转发。在传输路径上的每个网络设备,发送时间被限制在一个特定时间片内,使得报文在该网络设备的时延抖动均是确定的,无论增加多少个网络设备,前一网 络设备的抖动并不会增加后面一个网络设备的抖动时延。当然,当网络设备的总数量增加时,报文转发总延时也会增加。
对于最后一个网络设备来说,报文只在确定的时间片内进行接收和发送,即报文在最后一个网络设备的抖动范围被限制在一个确定时间片内。
虽然CSQF能够实现广域网的确定性传输,为承载业务提供确定性业务功能,但是,各网络设备应该如何实现CSQF,相关技术中并没有合理的解决方案。针对上述问题,本申请实施例提出一种基于CSQF实现的广域确定性网络传输方法,可以应用于网络设备,网络设备也称为网络节点或转发节点。参见图3所示,为网络设备的结构示意图,网络设备可以包括输入接口单元31、输入转发处理单元32、内部交换单元33、输出转发处理单元34、输出接口单元35。
其中,输入接口单元31可以实现确定性流接收辅助处理,输入接口单元31的功能可以包括但不限于:识别确定性流;辅助输入转发处理单元32实现流量分类,使得确定性流进入确定性流输入队列;时间戳功能;流量调度功能。
其中,输入转发处理单元32的功能可以包括但不限于:能够实现流量分类功能,即区分出属于确定性流的报文和属于尽力而为流的报文,针对属于确定性流的报文,将该报文存储到确定性流输入队列,针对属于尽力而为流的报文,将该报文存储到尽力而为流输入队列。能够实现优先级调度功能,即优先处理确定性流输入队列中的报文,在确定性流输入队列中的报文处理完成之后,才处理尽力而为流输入队列中的报文。能够实现确定性流的输入通道处理功能,即将确定性流的传输通道与尽力而为流的传输通道分开,通过确定性流的传输通道发送确定性流的报文,通过尽力而为流的传输通道发送尽力而为流的报文,通过将确定性流的传输通道与尽力而为流的传输通道分开,使得尽力而为流的传输通道被反压(即限速处理)时,确定性流的传输通道不被反压。
其中,内部交换单元33的功能是确保确定性流的高优先级通道,也就是说,内部交换单元33优先将确定性流的报文发送给输出转发处理单元34,在确定性流的报文发送完成后,才将尽力而为流的报文发送给输出转发处理单元34。
比如说,内部交换单元33可以包括高优先级交换通道和普通优先级交换通道,内部交换单元33可以通过高优先级交换通道发送确定性流的报文,内部交换单元33可以通过普通优先级交换通道发送尽力而为流的报文。
其中,输出转发处理单元34的功能可以包括但不限于:能够实现尽力而为输出管道处理功能,即对尽力而为流的报文进行处理。能够对尽力而为流进行HQOS调度,即针对尽力而为流的报文进行HQOS调度,但是,不对确定性流的报文进行HQOS调度。能够实现尽力而为流的限速功能,即针对尽力而为流的报文进行限速处理,但是,不对确定性流的报文进行限速处理。能够实现确定性流输出管道处理功能,即对确定性流的报文进行处理。
其中,输出接口单元35的功能可以包括但不限于:能够实现尽力而为缓存队列,通过尽力而为缓存队列存储尽力而为流的报文。能够实现尽力而为缓存队列的反压功能,比如说,当尽力而为缓存队列中的报文数量达到数量阈值之后,则控制输出转发处理单元34不再将尽力而为流的报文存储到尽力而为缓存队列。能够实现确定性流的CSQF队列,通过CSQF队列存储确定性流的报文。能够实现确定性流与尽力而为流的合成调度,即调度确定性流的报文和尽力而为流的报文。比如说,先发送确定性流的报文,后发送尽力而为流的报文。
示例性的,对于CSQF队列来说,可以包括SQ(Sending Queue,发送队列)、RQ(Receiving Queue,接收队列)和TQ(Tolerating Queue,容忍队列),SQ是CSQF中 正在被发送的队列,RQ是CSQF中正在接收的队列,由于抖动等原因,导致接收的报文无法正常进入RQ时,这样的报文进入TQ。本实施例中,将SQ、RQ和TQ称为CQ(Cyclic Queuing,周期队列)队列。综上,输出接口单元35能够实现确定性流的CQ队列,通过CQ队列存储确定性流的报文。
在一种可能的实施方式中,参见图4A所示,输入接口单元31可以通过FPGA(Field Programmable Gate Array,现场可编程逻辑门阵列)实现,输入转发处理单元32可以通过NP(Network Processor,网络处理器)实现,为区分方便,将这个NP称为Ingress NP(入口NP),内部交换单元33可以通过交换网板(fabric)实现,输出转发处理单元34可以通过NP实现,为区分方便,将这个NP称为Egress NP(出口NP),输出接口单元35可以通过FPGA实现。
在输入接口单元31与输入转发处理单元32之间创建两个通道,即在输入接口单元31与输入转发处理单元32之间的物理接口中创建两个通道(channel),为了区分方便,将这两个通道记为第三通道和第四通道。比如说,假设输入接口单元31与输入转发处理单元32之间的物理接口是Interlaken物理接口,则在同一Interlaken物理接口中创建第三通道和第四通道。其中,第三通道用于传输属于确定性流的报文,第四通道用于传输属于尽力而为流的报文。
在输出转发处理单元34和输出接口单元35之间创建两个通道,即在输出转发处理单元34与输出接口单元35之间的物理接口中创建两个通道(channel),为了区分方便,将这两个通道记为第一通道和第二通道。比如说,假设输出转发处理单元34与输出接口单元35之间的物理接口是Interlaken物理接口,则在同一Interlaken物理接口中创建第一通道和第二通道。其中,第一通道用于传输属于确定性流的报文,第二通道用于传输属于尽力而为流的报文。
在另一种可能的实施方式中,参见图4B所示,输入接口单元31和输入转发处理单元32可以通过同一器件实现,比如说,通过Ingress NP同时实现输入接口单元31和输入转发处理单元32,内部交换单元33可以通过交换网板实现,输出转发处理单元34和输出接口单元35可以通过同一器件实现,比如说,通过Egress NP同时实现输出转发处理单元34和输出接口单元35。
当然,图4A和图4B只是两个示例,对此输入接口单元31、输入转发处理单元32、内部交换单元33、输出转发处理单元34、输出接口单元35的实现方式不做限制,只要能够实现这些单元的功能即可,后续以图4A为例进行说明。
以下结合具体实施例,对输入接口单元31、输入转发处理单元32、内部交换单元33、输出转发处理单元34、输出接口单元35的功能进行说明。
第一、输入接口单元31。输入接口单元31从外部设备接收到报文后,确定该报文属于确定性流或者尽力而为流。其中,若该报文属于确定性流,则将该报文存储到确定性流输出队列,若该报文属于尽力而为流,则将该报文存储到尽力而为流输出队列。在此基础上,输入接口单元31通过第三通道将确定性流输出队列中的报文发送给输入转发处理单元32。输入接口单元31通过第四通道将尽力而为流输出队列中的报文发送给输入转发处理单元32。
示例性的,输入接口单元31从外部设备接收到报文后,从该报文中解析出流特征;若该流特征与已配置的ACL中的确定性流特征匹配,则确定该报文属于确定性流,若该流特征与ACL中的确定性流特征不匹配,则确定该报文属于尽力而为流。其中,该ACL可以包括至少一个确定性流特征。
示例性的,输入接口单元31可以优先从确定性流输出队列中获取报文,并通过第三 通道将获取的报文发送给输入转发处理单元32;在确定性流输出队列中的所有报文获取完成之后,输入接口单元31从尽力而为流输出队列中获取报文,并通过第四通道将获取的报文发送给输入转发处理单元32。
参见图5A所示,为输入接口单元31的结构示意图,输入接口单元31可以包括以太接口控制器311、接收缓冲器312、确定性流ACL(Access Control Lists,访问控制列表)单元313、控制逻辑单元314、确定性流输出队列315、尽力而为流输出队列316和发送DMA(Direct Memory Access,直接存储器访问)317。
其中,以太接口控制器311通过以太接口从外部设备接收到报文,并将报文发送给接收缓冲器312,由接收缓冲器312对该报文进行接收缓冲。
其中,确定性流ACL单元313用于获取针对确定性流的ACL,比如说,上层应用可以将针对确定性流的ACL发送给确定性流ACL单元313,该ACL可以包括至少一个确定性流特征,可以基于该ACL识别出确定性流。
比如说,该确定性流特征可以是目的IP地址,表示这个目的IP地址对应的报文属于确定性流。又例如,该确定性流特征可以是目的IP网段,表示这个IP网段对应的报文属于确定性流。当然,上述只是确定性流特征的两个示例,对此确定性流特征不做限制,只要基于确定性流特征能够区分出确定性流即可。
确定性流ACL单元313在得到针对确定性流的ACL之后,还可以存储该ACL,以由控制逻辑单元314从确定性流ACL单元313查询该ACL。
其中,控制逻辑单元314可以从接收缓冲器312中获取报文,并从该报文中解析出流特征(即ACL所需的关键字)。若该流特征与ACL中的任一确定性流特征匹配,则可以确定该报文属于确定性流,若该流特征与ACL中的所有确定性流特征均不匹配,则可以确定该报文属于尽力而为流。
比如说,若确定性流特征是目的IP地址,则控制逻辑单元314可以从该报文中解析出目的IP地址,若该报文的目的IP地址与ACL中的某个目的IP地址相同,则可以确定该报文属于确定性流,若该报文中的目的IP地址与ACL中的所有目的IP地址均不相同,则可以确定该报文属于尽力而为流。
若确定该报文属于确定性流,则控制逻辑单元314可以在报文头部添加时间戳等辅助信息,并将报文存储到确定性流输出队列315,该时间戳用于表示以太接口控制器311从外部设备接收到该报文的时间。若确定该报文属于尽力而为流,则控制逻辑单元314将该报文存储到尽力而为流输出队列316。
综上所述,每次接收到属于确定性流的报文,就可以将报文存储到确定性流输出队列315,即确定性流输出队列315可以包括多个属于确定性流的报文。
每次接收到属于尽力而为流的报文,就可以将报文存储到尽力而为流输出队列316,即尽力而为流输出队列316可以包括多个属于尽力而为流的报文。
其中,发送DMA317可以从确定性流输出队列315中读取报文,并通过第三通道将确定性流输出队列315中的报文发送给输入转发处理单元32。
发送DMA317可以从尽力而为流输出队列316中读取报文,并通过第四通道将尽力而为流输出队列316中的报文发送给输入转发处理单元32。
比如说,发送DMA317可以优先从确定性流输出队列315中读取报文,并通过第三通道将报文发送给输入转发处理单元32。在确定性流输出队列315中的所有报文均发送完成之后,发送DMA317才从尽力而为流输出队列316中读取报文,并通过第四通道 将报文发送给输入转发处理单元32。
又例如,发送DMA317可以从确定性流输出队列315中读取部分报文,并通过第三通道将报文发送给输入转发处理单元32。然后,发送DMA317从尽力而为流输出队列316中读取部分报文,并通过第四通道将报文发送给输入转发处理单元32。然后,发送DMA317继续从确定性流输出队列315中读取部分报文,并通过第三通道将报文发送给输入转发处理单元32。以此类推,一直到确定性流输出队列315和尽力而为流输出队列316中的报文均已经发送完成。
第二、输入转发处理单元32。输入转发处理单元32在获取到报文后,若该报文属于确定性流,则将该报文存储到确定性流输入队列;若该报文属于尽力而为流,则将该报文存储到尽力而为流输入队列。其中,输入转发处理单元32从第三通道获取到报文时,可以确定该报文属于确定性流。输入转发处理单元32从第四通道获取到报文时,可以确定该报文属于尽力而为流。
示例性的,确定性流输入队列对应的队列优先级高于尽力而为流输入队列对应的队列优先级,以使输入转发处理单元32优先对确定性流输入队列中的报文进行处理。在输入转发处理单元32对确定性流输入队列中的报文进行处理时,若该报文包括CQ队列指示信息,则确定该CQ队列指示信息对应的CQ队列,否则,基于该报文对应的时间戳确定该报文对应的CQ队列。在此基础上,在报文中添加该CQ队列对应的CQ队列信息,并将报文发送给内部交换单元33。
其中,在基于时间戳确定该报文对应的CQ队列时,输入转发处理单元32可以基于该报文对应的转发信息查询出接口,并确定该出接口对应的多个CQ队列,每个CQ队列对应一个调度周期;基于该报文对应的时间戳,从所有调度周期中选取与该时间戳对应的调度周期,并确定该调度周期对应的CQ队列。
输入转发处理单元32将确定性流输入队列中的报文发送给内部交换单元33时,在报文中添加高优先级标记,将高优先级的报文发送给内部交换单元33。输入转发处理单元32将尽力而为流输入队列中的报文发送给内部交换单元33时,在报文中添加低优先级标记,将低优先级的报文发送给内部交换单元33。
参见图5B所示,为输入转发处理单元32的结构示意图,该输入转发处理单元32可以包括流量分类单元321、确定性流输入队列322、尽力而为流输入队列323、管道调度单元324、确定性流输入管道处理单元325。
其中,流量分类单元321从第三通道获取到报文时,确定报文属于确定性流,将该报文存储到确定性流输入队列322。流量分类单元321从第四通道获取到报文时,确定报文属于尽力而为流,将该报文存储到尽力而为流输入队列323。
其中,输入转发处理单元32可以支持多个物理队列,不同物理队列的优先级可以不同,在此基础上,可以将高优先级的物理队列作为确定性流输入队列322,可以将低优先级的物理队列作为尽力而为流输入队列323。显然,由于确定性流输入队列322采用高优先级的物理队列,尽力而为流输入队列323采用低优先级的物理队列,因此,确定性流输入队列322对应的队列优先级可以高于尽力而为流输入队列323对应的队列优先级,从而保证确定性流输入队列322中的报文被优先处理,也就是说,属于确定性流的报文被优先处理。
其中,管道调度单元324可以对确定性流输入队列322中的报文进行转发处理,并对尽力而为流输入队列323中的报文进行转发处理,在对报文进行转发处理时,管道调度单元324可以为PMU(Processor Management Unit,处理器管理单元),即由PMU对报文进行转发处理,对此报文转发处理过程不做限制。
由于确定性流输入队列322对应的队列优先级高于尽力而为流输入队列323对应的队列优先级,因此,管道调度单元324优先对确定性流输入队列322中的报文进行转发处理,在确定性流输入队列322中的报文处理完成后,管道调度单元324才对尽力而为流输入队列323中的报文进行转发处理。在管道调度单元324对报文进行转发处理时,可以将报文分配给转发管道(分配处理器资源进行相应的管道处理),对此管道处理的过程不做限制。
其中,确定性流输入管道处理单元325用于进行与确定性相关的转发处理,即在常规转发处理(由管道调度单元324实现的转发处理称为常规转发处理)的基础上,由确定性流输入管道处理单元325实现与确定性相关的转发处理。
比如说,针对边缘节点,如图1的网络设备11,在确定性流输入管道处理单元325对确定性流输入队列322中的报文进行处理时,该报文未包括CQ队列指示信息(CQ队列指示信息需要由边缘节点在报文中添加),因此,可以从该报文中解析出时间戳(由输入接口单元31添加到报文中,表示网络设备接收到该报文的时间戳),并基于该时间戳确定该报文对应的CQ队列。
在基于该时间戳确定该报文对应的CQ队列时,可以基于该报文对应的转发信息(如目的IP地址等)查询转发表项(用于记录转发信息与出接口的对应关系),得到该转发信息对应的出接口。由于网络设备的每个出接口可以对应多个CQ队列,表示可以通过这个出接口转发这些CQ队列中的报文,因此,在得到该转发信息对应的出接口之后,就可以确定该出接口对应的多个CQ队列。
针对每个CQ队列,该CQ队列可以对应一个调度周期,表示需要在该调度周期内发送该CQ队列中的报文,在此基础上,基于该报文对应的时间戳,可以从所有调度周期中选取与该时间戳对应的调度周期,即该时间戳可以位于该调度周期。然后,确定该调度周期对应的CQ队列,这个CQ队列也就是该报文对应的CQ队列,在后续过程中,需要将该报文添加到这个CQ队列中。
为了确定调度周期对应的CQ队列,还可以获取时隙表,该时隙表包括调度周期与CQ队列的映射关系。在此基础上,在得到与该时间戳对应的调度周期之后,通过该调度周期查询该时隙表,就可以得到该调度周期对应的CQ队列。
综上所述,针对边缘节点,确定性流输入管道处理单元325可以得到报文对应的CQ队列,并在报文中添加该CQ队列对应的CQ队列信息,如队列标识。
针对边缘节点来说,还可以确定报文在各中间节点(如网络设备12、网络设备13、网络设备14等)的CQ队列,对此确定过程不再赘述,可以参见CSQF的工作原理。在得到报文在各中间节点的CQ队列之后,可以在报文中添加CQ队列指示信息,该CQ队列指示信息包括报文在各中间节点对应的CQ队列信息,如报文在网络设备12对应的CQ队列的CQ队列信息、在网络设备13对应的CQ队列的CQ队列信息、在网络设备14对应的CQ队列的CQ队列信息。
比如说,针对中间节点,如图1的网络设备12、网络设备13和网络设备14等,在确定性流输入管道处理单元325对确定性流输入队列322中的报文进行处理时,该报文可以包括CQ队列指示信息(CQ队列指示信息是边缘节点在报文中添加,比如说,可以在SRv6的SID中携带该CQ队列指示信息,当然,这只是一个示例),因此,可以从该报文中解析出CQ队列指示信息,并确定该CQ队列指示信息对应的CQ队列。例如,针对网络设备12来说,CQ队列指示信息可以包括报文在网络设备12对应的CQ队列的CQ队列信息,因此,可以直接确定该CQ队列信息对应的CQ队列,这个CQ队列也就是该报文对应的CQ队列,在后续过程中,需要将该报文添加到这个CQ队列 中。
综上所述,针对中间节点,确定性流输入管道处理单元325可以得到报文对应的CQ队列,并在报文中添加该CQ队列对应的CQ队列信息,如队列标识。
参见上述实施例,针对确定性流输入队列322中的报文,在经过管道调度单元324和确定性流输入管道处理单元325的处理之后,可以将报文发送给内部交换单元33,在将报文发送给内部交换单元33时,可以在报文中添加高优先级标记,并将高优先级标记的报文发送给内部交换单元33。针对尽力而为流输入队列323中的报文,在经过管道调度单元324的处理之后,可以将报文发送给内部交换单元33,在将报文发送给内部交换单元33时,可以在报文中添加低优先级标记,并将低优先级标记报文发送给内部交换单元33。
第三、内部交换单元33。内部交换单元33在接收到高优先级标记的报文(即属于确定性流的报文)之后,基于高优先级标记将报文发送给输出转发处理单元34,内部交换单元33在接收到低优先级标记的报文(即属于尽力而为流的报文)之后,基于低优先级标记将报文发送给输出转发处理单元34。
比如说,基于高优先级标记和低优先级标记,内部交换单元33优先将高优先级标记的报文发送给输出转发处理单元34,在高优先级标记的报文发送完成之后,内部交换单元33才将低优先级标记的报文发送给输出转发处理单元34。
第四、输出转发处理单元34。输出转发处理单元34在获取到报文后,若该报文属于确定性流,则可以将该报文存储到确定性流输入队列;若该报文属于尽力而为流,则可以将该报文存储到尽力而为流输入队列。针对确定性流输入队列中的每个报文,输出转发处理单元34可以确定该报文对应的封装信息,该封装信息至少包括CQ队列信息,基于该封装信息对该报文进行封装,将封装后的报文存储到确定性流输出队列。针对尽力而为流输入队列中的每个报文,输出转发处理单元34可以对该报文进行HQOS调度,并将HQOS调度后的报文存储到尽力而为流输出队列。其中,输出接口单元35与输出转发处理单元34之间存在第一通道和第二通道,输出转发处理单元34可以通过第一通道将确定性流输出队列中的报文发送给输出接口单元35,输出转发处理单元34可以通过第二通道将尽力而为流输出队列中的报文发送给输出接口单元35。
参见图5C所示,为输出转发处理单元34的结构示意图,可以包括流量分类单元341、确定性流输入队列342、尽力而为流输入队列343、管道调度单元344、确定性流输入管道处理单元345、尽力而为流输入管道处理单元346、HQOS调度单元347、确定性流输出队列348、尽力而为流输出队列349、发送DMA340。
其中,内部交换单元33可以包括高优先级交换通道和普通优先级交换通道,内部交换单元33可以通过高优先级交换通道发送确定性流的报文,并通过普通优先级交换通道发送尽力而为流的报文。在此基础上,流量分类单元341从高优先级交换通道获取到报文时,确定报文属于确定性流,将该报文存储到确定性流输入队列342。流量分类单元341从普通优先级交换通道获取到报文时,确定报文属于尽力而为流,将该报文存储到尽力而为流输入队列343。
其中,输出转发处理单元34可以支持多个物理队列,不同物理队列的优先级可以不同,在此基础上,可以将高优先级的物理队列作为确定性流输入队列342,将低优先级的物理队列作为尽力而为流输入队列343。显然,由于确定性流输入队列342采用高优先级的物理队列,尽力而为流输入队列343采用低优先级的物理队列,因此,确定性流输入队列342对应的队列优先级可以高于尽力而为流输入队列343对应的队列优先级,从而保证确定性流输入队列342中的报文被优先处理,也就是说,属于确定性流的报文 被优先处理。
其中,管道调度单元344对确定性流输入队列342中的报文进行转发处理,并对尽力而为流输入队列343中的报文进行转发处理,对此报文转发处理过程不做限制。由于确定性流输入队列342对应的队列优先级高于尽力而为流输入队列343对应的队列优先级,因此,管道调度单元344优先对确定性流输入队列342中的报文进行转发处理,在确定性流输入队列342中的报文处理完成后,管道调度单元344才对尽力而为流输入队列343中的报文进行转发处理。
其中,确定性流输入管道处理单元345用于进行与确定性相关的转发处理,即在常规转发处理(由管道调度单元344实现的转发处理称为常规转发处理)的基础上,由确定性流输入管道处理单元345实现与确定性相关的转发处理。
比如说,针对确定性流输入队列342中的每个报文,确定性流输入管道处理单元345可以从该报文中解析出CQ队列信息(由输入转发处理单元32在报文中添加),并将该CQ队列信息确定为该报文对应的封装信息。当然,上述只是封装信息的示例,对此封装信息不做限制,比如说,还可以查询出本网络设备的出接口的MAC地址、下一跳网络设备的MAC地址等,将本网络设备的出接口的MAC地址和下一跳网络设备的MAC地址也作为封装信息。
在得到封装信息之后,确定性流输入管道处理单元345可以基于该封装信息对该报文进行封装,比如说,在报文外层封装CQ队列信息等内容,并将封装后的报文存储到确定性流输出队列348。其中,确定性流输入管道处理单元345在对报文进行封装之后,还可以旁路掉为尽力而为流实现的HQOS调度单元347,即不需要采用HQOS调度单元347对确定性流输入队列342中的报文进行HQOS调度,确定性流输入队列342中的报文不进行HQOS调度,也就不会受到尽力而为调度的影响,使得确定性流输入队列342中的报文可以被快速转发。
其中,尽力而为流输入管道处理单元346用于进行与尽力而为相关的转发处理,即在常规转发处理的基础上,实现与尽力而为相关的转发处理。比如说,针对尽力而为流输入队列343中的每个报文,尽力而为流输入管道处理单元346确定该报文对应的封装信息,如本网络设备的出接口的MAC地址、下一跳网络设备的MAC地址等,并基于该封装信息对该报文进行封装,比如说,在报文外层封装这些封装信息,并将封装后的报文发送给HQOS调度单元347。
其中,HQOS调度单元347用于对尽力而为流输入队列343中的每个报文进行HQOS调度,对此HQOS调度过程不做限制,在报文的HQOS调度过程结束之后,HQOS调度单元347可以将报文存储到尽力而为流输出队列349。
其中,发送DMA340可以从确定性流输出队列348中读取报文,并通过第一通道将确定性流输出队列348中的报文发送给输出接口单元35。发送DMA340可以从尽力而为流输出队列349中读取报文,并通过第二通道将尽力而为流输出队列349中的报文发送给输出接口单元35。由于确定性流输出队列348中的报文和尽力而为流输出队列349中的报文是通过不同通道进行传输,因此,当输出接口单元35出现拥塞时,可以只反压尽力而为流的传输通道,即第二通道,而不反压确定性流的传输通道,即第一通道,从而为时延确定性提供有力支持。
比如说,发送DMA340可以优先从确定性流输出队列348中读取报文,并通过第一通道将报文发送给输出接口单元35,在确定性流输出队列348中的所有报文均发送完成之后,发送DMA340才可以从尽力而为流输出队列349中读取报文,并通过第二通道将报文发送给输出接口单元35。
又例如,发送DMA340可以从确定性流输出队列348中读取部分报文,并通过第一通道将报文发送给输出接口单元35,然后,发送DMA340可以从尽力而为流输出队列349中读取部分报文,并通过第二通道将报文发送给输出接口单元35,然后,发送DMA340可以继续从确定性流输出队列348中读取部分报文,并通过第一通道将报文发送给输出接口单元35,以此类推,一直到确定性流输出队列348和尽力而为流输出队列349中的报文均已经发送完成。
第五、输出接口单元35。输出接口单元35可以从确定性流输出队列348中获取报文,基于该报文对应的CQ队列信息,将该报文存储到与该CQ队列信息对应的CQ队列。输出接口单元35可以从尽力而为流输出队列349中获取报文,并将该报文存储到BEQ(Best Effort Queue,尽力而为缓存队列)队列。
针对每个调度周期,将当前正在进行的调度周期称为当前调度周期,输出接口单元35确定与当前调度周期对应的目标CQ队列,在当前调度周期内,向外部设备发送目标CQ队列中的报文。若目标CQ队列中的报文被发送完成之后,当前调度周期仍有剩余时间片,则输出接口单元35在当前调度周期的剩余时间片内,向外部设备发送BEQ队列中的报文。比如说,输出接口单元35确定剩余时间片能够发送的报文长度,若该报文长度大于已配置长度(可以根据经验配置),则在当前调度周期的剩余时间片内,向外部设备发送BEQ队列中的一个报文;若该报文长度不大于已配置长度,则在当前调度周期的剩余时间片内,停止向外部设备发送BEQ队列中的报文。示例性的,向外部设备发送BEQ队列中的一个报文之后,还可以更新当前调度周期的剩余时间片,基于更新后的剩余时间片,返回执行确定剩余时间片能够发送的报文长度的操作。
示例性的,在BEQ队列中的报文数量大于第一预设阈值时,输出接口单元35还可以输出针对第二通道的流控信号;在BEQ队列中的报文数量小于第二预设阈值时,输出接口单元35可以取消针对第二通道的流控信号。其中,第二预设阈值可以小于或者等于第一预设阈值,对此取值不做限制。在此基础上,当存在针对第二通道的流控信号时,暂停通过第二通道传输报文,也就是说,输出转发处理单元34不再通过第二通道将尽力而为流输出队列349中的报文传输给输出接口单元35。当不存在针对第二通道的流控信号时,继续通过第二通道传输报文,也就是说,输出转发处理单元34将尽力而为流输出队列349中的报文传输给输出接口单元35。
参见图5D所示,为输出接口单元35的结构示意图,输出接口单元35可以包括控制单元351、分类单元(Classification)352、周期选择单元(Select by Cycle)353、SP(Stream Processor,流处理器)单元354、MAC层转发单元355。此外,输出接口单元35还可以包括BEQ队列和CQ队列,BEQ队列的数量为至少一个,图5D中以一个BEQ队列为例,CQ队列的数量为至少三个,图5D中以15个CQ队列为例,将这15个CQ队列分别记为CQ1、CQ2、…、CQ15,当存在15个CQ队列时,也存在15个SP单元354,SP单元354与CQ队列一一对应。
其中,控制单元351在从第一通道获取到报文时,即针对确定性流输出队列348中的报文,可以确定该报文属于确定性流,并将该报文发送给分类单元352。控制单元351在从第二通道获取到报文时,即针对尽力而为流输出队列349中的报文,可以确定该报文属于尽力而为流,并将该报文存储到BEQ队列。
其中,BEQ队列是尽力而为缓存队列,用于缓存尽力而为流的报文,这些报文在HQOS调度单元347中已经完成调度。BEQ队列中设计高低2级水线,当BEQ队列中缓存的报文数量高于设定的高水线(即第一预设阈值)时,则可以输出针对第二通道的流控信号。当BEQ队列中缓存的报文数量低于设定的低水线(即第二预设阈值)时,则可以取消针对第二通道的流控信号。
在此基础上,当存在针对第二通道的流控信号时,发送DMA340不再通过第二通道发送报文,也就是不将尽力而为流输出队列349中的报文发送给输出接口单元35,控制单元351也就不会得到尽力而为流输出队列349中的报文。当取消针对第二通道的流控信号时,发送DMA340继续通过第二通道发送报文,也就是将尽力而为流输出队列349中的报文发送给输出接口单元35,控制单元351能够得到尽力而为流输出队列349中的报文,并将报文存储到BEQ队列。
其中,分类单元352用于对确定性流的报文进行分流,从而将报文存储到CQ1~CQ15中的某个CQ队列。由于一共存在15个CQ队列,如CQ1~CQ15,因此,针对确定性流的报文,分类单元352需要确定这个报文属于哪个CQ队列,并将该报文存储到这个CQ队列。比如说,由于报文封装有CQ队列信息,该CQ队列信息可以是队列标识等,用于指示某个CQ队列,因此,分类单元352可以从报文中解析出CQ队列信息,确定与该CQ队列信息对应的CQ队列,将该报文存储到这个CQ队列,如CQ队列信息对应CQ5,则将该报文存储到CQ5。
其中,周期选择单元353在时钟源(Clock)的控制下,周期性给出选择信号,相邻两个选择信号的长度为CSQF的一个调度周期。例如,假设调度周期1与CQ1对应,调度周期2与CQ2对应,以此类推,调度周期15与CQ15对应。
在此基础上,在当前调度周期是调度周期1时,则在调度周期1的起始时刻,周期选择单元353向CQ1连接的SP单元354发送选择信号,该SP单元354在接收到该选择信号后,确定与当前调度周期对应的目标CQ队列是CQ1,从CQ1中读取报文,并将读取的报文发送给MAC层转发单元355。在调度周期1的结束时刻,周期选择单元353向CQ1连接的SP单元354发送一个新的选择信号,该SP单元354在接收到该选择信号之后,可以停止发送报文。
在当前调度周期是调度周期2时,则在调度周期2的起始时刻(调度周期2的起始时刻是调度周期1的结束时刻),周期选择单元353向CQ2连接的SP单元354发送选择信号,该SP单元354在接收到该选择信号后,确定与当前调度周期对应的目标CQ队列是CQ2,从CQ2中读取报文,并将读取的报文发送给MAC层转发单元355。在调度周期2的结束时刻,周期选择单元353向CQ2连接的SP单元354发送一个新的选择信号,以使该SP单元354停止发送报文。
以此类推,在每个调度周期,周期选择单元353可以向某个SP单元354发送选择信号,以使该SP单元354基于该选择信号发送报文或停止发送报文。
其中,SP单元354用于在选择信号的控制下,按照优先级进行报文转发,即先发送目标CQ队列中的报文,在目标CQ队列中的报文被发送完成后,若当前调度周期仍有剩余时间片,则在剩余时间片内发送BEQ队列中的报文。
比如说,假设当前调度周期是调度周期n,调度周期n与CQn(1≤n≤15)对应,针对与CQn连接的SP单元354,该SP单元354在接收到选择信号之后,确定目标CQ队列是CQn,从CQn中读取报文,将读取的报文发送给MAC层转发单元355。该SP单元354在接收到选择信号后,还可以对计时器进行计时。
在CQn中报文被发送完成后,若当前调度周期仍有剩余时间片,则确定剩余时间片的长度,剩余时间片的长度是调度周期的时长与计时器的计时时长之差。在得到剩余时间片的长度之后,确定该剩余时间片能够发送的报文长度。
基于BEQ队列中一个报文的报文长度,可以预先配置一个已配置长度,如该已配置长度可以是9600字节,9600字节表示报文的规定长度。在此基础上,若剩余时间片能够发送的报文长度大于该已配置长度,则在当前调度周期的剩余时间片内,SP单 元354从BEQ队列中读取报文,将读取的报文发送给MAC层转发单元355。若剩余时间片能够发送的报文长度不大于该已配置长度,则在当前调度周期的剩余时间片内,SP单元354不再发送BEQ队列中的报文。
SP单元354从BEQ队列中读取一个报文,将读取的该报文发送给MAC层转发单元355之后,若当前调度周期的剩余时间片能够发送的报文长度仍然大于该已配置长度,则在当前调度周期的剩余时间片内,SP单元354继续从BEQ队列中读取一个报文,将读取的报文发送给MAC层转发单元355,以此类推。
假设调度周期1对应CQ1,在调度周期1从CQ1中取报文进行发送,当CQ1中报文发空时,根据调度周期的时长和计时器值计算剩余时间片,如果剩余时间片能够发送一个设定长度(如9600字节)的报文,则从BEQ队列中取出一个报文进行发送,否则调度周期1不再发送报文,等待下一个调度周期,即调度周期2。假设调度周期2对应CQ2,在调度周期2从CQ2中取报文进行发送,当CQ2中报文发空时,根据调度周期的时长和计时器值计算剩余时间片,如果剩余时间片能够发送一个设定长度的报文,则从BEQ队列中取出一个报文进行发送,否则调度周期2不再发送报文,等待下一个调度周期,以此类推。
示例性的,如果当前正在发送CQn中的报文,但当前调度周期的剩余时间片不够发送完CQn中的所有报文,则在当前调度周期结束后,可以继续发送CQn中的报文,一直到送CQn中的报文发送完成,才发送下一个CQ中的报文。
示例性的,对于各SP单元354来说,SP调度可以不采用帧抢占调度方式,以简化实现,当然,SP调度也可以采用帧抢占调度方式,在此不再赘述。
其中,MAC层转发单元355用于在接收到报文之后,向外部设备发送该报文。比如说,在接收到CQ队列中的报文时,向外部设备发送CQ队列中的报文,在接收到BEQ队列中的报文时,向外部设备发送BEQ队列中的报文。
由以上技术方案可见,本申请实施例中,能够保证确定性流转发不受尽力而为流转发的影响,并保证尽力而为流转发和确定性流转发的相互兼容。基于CSQF实现广域确定性网络的报文传输,实现确定性流与尽力而为流的共存,便于实现共网和共路的全业务全融合。在确定性流预留带宽没有被确定性流量使用时,能够被尽力而为流使用,在拥塞产生时,确定性流不受影响,通过控制尽力而为流的数量解决拥塞情况。维持尽力而为流的HQOS调度,但是,不对确定性流实现HQOS调度。可以约束SR或SRv6承载确定性流,确定性流可以为IP数据流。在网络设备的接收侧最前端尽快识别确定性流,在网络设备中建立独立的数据管道或通路,以保证确定性流不受尽力而为流的冲击。
本申请实施例中提出一种报文传输方法,该方法可以应用于网络设备,网络设备可以包括输出转发处理单元和输出接口单元,参见图6所示,为本申请实施例中提出的报文传输方法的流程示意图,该方法可以包括:
步骤601,输出转发处理单元在获取到报文后,若该报文属于确定性流,则将该报文存储到确定性流输入队列;针对确定性流输入队列中的每个报文,确定该报文对应的封装信息,该封装信息至少包括CQ队列信息,基于该封装信息对该报文进行封装,将封装后的报文存储到确定性流输出队列。
步骤602、输出接口单元从该确定性流输出队列中获取报文,基于该报文对应的CQ队列信息,将该报文存储到与该CQ队列信息对应的CQ队列。
步骤603、输出接口单元确定与当前调度周期对应的目标CQ队列,在当前调度 周期内,向外部设备发送该目标CQ队列中的报文。
在一种可能的实施方式中,输出转发处理单元在获取到报文之后,若该报文属于尽力而为流,则将该报文存储到尽力而为流输入队列;针对尽力而为流输入队列中的每个报文,可以对该报文进行HQOS调度,并将HQOS调度后的报文存储到尽力而为流输出队列。输出接口单元从该尽力而为流输出队列中获取报文,并将该报文存储到BEQ队列。在此基础上,输出接口单元在当前调度周期内,向外部设备发送目标CQ队列中的报文之后,若目标CQ队列中的报文被发送完成后,当前调度周期仍有剩余时间片,则输出接口单元在当前调度周期的剩余时间片内,向外部设备发送该BEQ队列中的报文。
在一种可能的实施方式中,网络设备还可以包括输入转发处理单元,输入转发处理单元在获取到报文后,若该报文属于确定性流,则将该报文存储到确定性流输入队列;若该报文属于尽力而为流,则将该报文存储到尽力而为流输入队列;其中,确定性流输入队列对应的队列优先级高于尽力而为流输入队列对应的队列优先级,以使输入转发处理单元优先对确定性流输入队列中的报文进行处理。输入转发处理单元对确定性流输入队列中的报文进行处理时,若该报文包括CQ队列指示信息,则确定该CQ队列指示信息对应的CQ队列,否则,基于该报文对应的时间戳确定该报文对应的CQ队列,该时间戳表示网络设备接收到该报文的时间戳。输入转发处理单元在该报文中添加该CQ队列对应的CQ队列信息,将报文发送给输出转发处理单元,由输出转发处理单元获取该报文。
示例性的,网络设备还包括内部交换单元。输入转发处理单元将确定性流输入队列中的报文发送给输出转发处理单元时,在报文中添加高优先级标记,将报文发送给内部交换单元,以使内部交换单元基于高优先级标记将报文发送给输出转发处理单元。输入转发处理单元将尽力而为流输入队列中的报文发送给输出转发处理单元时,在报文中添加低优先级标记,将报文发送给内部交换单元,以使内部交换单元基于低优先级标记将报文发送给输出转发处理单元。
在一种可能的实施方式中,网络设备还可以包括输入接口单元,输入接口单元从外部设备接收到报文后,确定该报文属于确定性流或者尽力而为流;若该报文属于确定性流,则将该报文存储到确定性流输出队列,若该报文属于尽力而为流,则将该报文存储到尽力而为流输出队列。输入接口单元通过第三通道将确定性流输出队列中的报文发送给输入转发处理单元,由输入转发处理单元从第三通道获取该报文;其中,输入转发处理单元确定自身从第三通道获取的报文属于确定性流。输入接口单元通过第四通道将尽力而为流输出队列中的报文发送给输入转发处理单元,由输入转发处理单元从第四通道获取该报文;其中,输入转发处理单元确定自身从第四通道获取的报文属于尽力而为流。
本申请实施例中提出一种网络设备,包括输出转发处理单元和输出接口单元。输出转发处理单元,用于在获取到报文后,若该报文属于确定性流,则将该报文存储到确定性流输入队列;针对确定性流输入队列中的每个报文,确定该报文对应的封装信息,封装信息至少包括CQ队列信息,基于该封装信息对该报文进行封装,将封装后的报文存储到确定性流输出队列。输出接口单元,用于从确定性流输出队列中获取报文,基于报文对应的CQ队列信息,将报文存储到与该CQ队列信息对应的CQ队列。输出接口单元,用于确定与当前调度周期对应的目标CQ队列,在当前调度周期内向外部设备发送目标CQ队列中的报文。
在一种可能的实施方式中,输出转发处理单元,还用于在获取到报文之后,若该报文属于尽力而为流,则可以将该报文存储到尽力而为流输入队列;针对尽力而为流 输入队列中的每个报文,可以对该报文进行HQOS调度,并将HQOS调度后的报文存储到尽力而为流输出队列。输出接口单元,还用于从尽力而为流输出队列中获取报文,并将该报文存储到BEQ队列。输出接口单元在当前调度周期内,向外部设备发送目标CQ队列中的报文之后还用于:若目标CQ队列中的报文被发送完成后,当前调度周期仍有剩余时间片,则在当前调度周期的剩余时间片内,向外部设备发送BEQ队列中的报文。
示例性的,网络设备还包括输入转发处理单元;输入转发处理单元,用于在获取到报文后,若该报文属于确定性流,则将该报文存储到确定性流输入队列;若该报文属于尽力而为流,则将该报文存储到尽力而为流输入队列;确定性流输入队列对应的队列优先级高于尽力而为流输入队列对应的队列优先级,以使输入转发处理单元优先对确定性流输入队列中的报文进行处理。输入转发处理单元,还用于在对确定性流输入队列中的报文进行处理时,若该报文包括CQ队列指示信息,则确定该CQ队列指示信息对应的CQ队列,否则,基于该报文对应的时间戳确定该报文对应的CQ队列,时间戳用于表示网络设备接收到该报文的时间戳。输入转发处理单元,还用于在该报文中添加该CQ队列对应的CQ队列信息,将报文发送给输出转发处理单元,由输出转发处理单元获取报文。
示例性的,网络设备还包括输入接口单元。输入接口单元,用于在从外部设备接收到报文后,确定该报文属于确定性流或者尽力而为流;若该报文属于确定性流,则将该报文存储到确定性流输出队列,若该报文属于尽力而为流,则将该报文存储到尽力而为流输出队列。输入接口单元,用于通过第三通道将确定性流输出队列中的报文发送给输入转发处理单元,由输入转发处理单元从第三通道获取该报文;其中,输入转发处理单元确定自身从第三通道获取的报文属于确定性流。输入接口单元,用于通过第四通道将尽力而为流输出队列中的报文发送给输入转发处理单元,由输入转发处理单元从第四通道获取该报文;其中,输入转发处理单元确定自身从第四通道获取的报文属于尽力而为流。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机,计算机的具体形式可以是个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件收发设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任意几种设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可以由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其它可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其它可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
而且,这些计算机程序指令也可以存储在能引导计算机或其它可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或者多个流程和/或方框图一个方框或者多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其它可编程数据处理设备上,使得在计算机或者其它可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其它可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (15)
- 一种报文传输方法,其特征在于,应用于网络设备,所述网络设备至少包括输出转发处理单元和输出接口单元,所述方法包括:所述输出转发处理单元在获取到报文后,若该报文属于确定性流,则将该报文存储到确定性流输入队列;针对所述确定性流输入队列中的每个报文,确定该报文对应的封装信息,所述封装信息至少包括周期队列CQ队列信息,基于所述封装信息对该报文进行封装,将封装后的报文存储到确定性流输出队列;所述输出接口单元从所述确定性流输出队列中获取报文,基于该报文对应的CQ队列信息,将该报文存储到与该CQ队列信息对应的CQ队列;所述输出接口单元确定与当前调度周期对应的目标CQ队列,在所述当前调度周期内,向外部设备发送所述目标CQ队列中的报文。
- 根据权利要求1所述的方法,其特征在于,所述方法还包括:所述输出转发处理单元在获取到报文后,若该报文属于尽力而为流,则将该报文存储到尽力而为流输入队列;针对尽力而为流输入队列中的每个报文,对该报文进行分层服务质量HQOS调度,将HQOS调度后的报文存储到尽力而为流输出队列;所述输出接口单元从所述尽力而为流输出队列中获取报文,并将该报文存储到尽力而为缓存队列BEQ队列;所述输出接口单元在所述当前调度周期内,向外部设备发送所述目标CQ队列中的报文之后,所述方法还包括:若所述目标CQ队列中的报文被发送完成后,所述当前调度周期仍有剩余时间片,则所述输出接口单元在所述当前调度周期的剩余时间片内,向外部设备发送所述BEQ队列中的报文。
- 根据权利要求2所述的方法,其特征在于,所述输出接口单元与所述输出转发处理单元之间存在第一通道和第二通道;所述输出接口单元从所述确定性流输出队列中获取报文,包括:所述输出接口单元通过所述第一通道从所述确定性流输出队列中获取报文;所述输出接口单元从所述尽力而为流输出队列中获取报文,包括:所述输出接口单元通过所述第二通道从所述尽力而为流输出队列中获取报文;其中,在所述BEQ队列中的报文数量大于第一预设阈值时,所述输出接口单元输出针对所述第二通道的流控信号;在所述BEQ队列中的报文数量小于第二预设阈值时,所述输出接口单元取消针对所述第二通道的流控信号;当存在针对所述第二通道的流控信号时,暂停通过所述第二通道传输报文;其中,所述第二预设阈值小于或等于所述第一预设阈值。
- 根据权利要求2所述的方法,其特征在于,所述输出接口单元在所述当前调度周期的剩余时间片内,向外部设备发送所述BEQ队列中的报文,包括:所述输出接口单元确定所述剩余时间片能够发送的报文长度,若所述报文长度大于已配置长度,则在所述当前调度周期的剩余时间片内,向外部设备发送所述BEQ队列中的一个报文;若所述报文长度不大于已配置长度,则在所述当前调度周期的剩余时间片内,停止向外部设备发送所述BEQ队列中的报文;所述向外部设备发送所述BEQ队列中的一个报文之后,更新所述当前调度周期的剩余时间片,返回执行确定更新后的剩余时间片能够发送的报文长度。
- 根据权利要求1-4任一项所述的方法,其特征在于,所述网络设备还包括输入转发处理单元,所述方法还包括:所述输入转发处理单元在获取到报文后,若该报文属于确定性流,则将该报文存储到确定性流输入队列;或者,若该报文属于尽力而为流,则将该报文存储到尽力而为流输入队列;其中,所述确定性流输入队列对应的队列优先级高于所述尽力而为流输入队列对应的队列优先级,以使所述输入转发处理单元优先对所述确定性流输入队列中的报 文进行处理;所述输入转发处理单元对所述确定性流输入队列中的报文进行处理时,若该报文包括CQ队列指示信息,确定该CQ队列指示信息对应的CQ队列,否则,基于该报文对应的时间戳确定该报文对应的CQ队列,所述时间戳表示所述网络设备接收到该报文的时间戳;在该报文中添加该CQ队列对应的CQ队列信息,将报文发送给输出转发处理单元,由所述输出转发处理单元获取该报文。
- 根据权利要求5所述的方法,其特征在于,所述输入转发处理单元基于该报文对应的时间戳确定该报文对应的CQ队列,包括:所述输入转发处理单元基于该报文对应的转发信息查询出接口,并确定所述出接口对应的多个CQ队列,每个CQ队列对应一个调度周期;所述输入转发处理单元基于该报文对应的时间戳,从所有调度周期中选取与该时间戳对应的调度周期,并确定该调度周期对应的CQ队列。
- 根据权利要求5所述的方法,其特征在于,所述网络设备还包括内部交换单元,所述方法还包括:所述输入转发处理单元将所述确定性流输入队列中的报文发送给输出转发处理单元时,在报文中添加高优先级标记,将报文发送给内部交换单元,以使所述内部交换单元基于所述高优先级标记将报文发送给输出转发处理单元;所述输入转发处理单元将所述尽力而为流输入队列中的报文发送给输出转发处理单元时,在报文中添加低优先级标记,将报文发送给内部交换单元,以使所述内部交换单元基于所述低优先级标记将报文发送给输出转发处理单元。
- 根据权利要求5所述的方法,其特征在于,所述网络设备还包括输入接口单元,所述方法还包括:所述输入接口单元从外部设备接收到报文后,确定该报文属于确定性流或者尽力而为流;若该报文属于确定性流,则将该报文存储到确定性流输出队列,若该报文属于尽力而为流,则将该报文存储到尽力而为流输出队列;所述输入接口单元通过第三通道将确定性流输出队列中的报文发送给输入转发处理单元,由输入转发处理单元从所述第三通道获取该报文;其中,所述输入转发处理单元确定自身从所述第三通道获取的报文属于确定性流;所述输入接口单元通过第四通道将尽力而为流输出队列中的报文发送给输入转发处理单元,由输入转发处理单元从所述第四通道获取该报文;其中,所述输入转发处理单元确定自身从所述第四通道获取的报文属于尽力而为流。
- 根据权利要求8所述的方法,其特征在于,所述输入接口单元确定该报文属于确定性流或者尽力而为流,包括:所述输入接口单元从该报文中解析出流特征;若所述流特征与已配置的访问控制列表ACL中的确定性流特征匹配,则确定该报文属于确定性流,若所述流特征与所述ACL中的确定性流特征不匹配,则确定该报文属于尽力而为流;其中,所述ACL包括至少一个确定性流特征。
- 根据权利要求8所述的方法,其特征在于,所述输入接口单元通过第三通道将确定性流输出队列中的报文发送给输入转发处理单元,通过第四通道将尽力而为流输出队列中的报文发送给输入转发处理单元,包括:所述输入接口单元优先从所述确定性流输出队列中获取报文,并通过第三通道将获取的报文发送给所述输入转发处理单元;在所述确定性流输出队列中的所有报文获取完成后,从所述尽力而为流输出队列中获取报文,通过第四通道将获取的报文发送给输入转发处理单元。
- 一种网络设备,其特征在于,包括输出转发处理单元和输出接口单元;所述输出转发处理单元,用于在获取到报文后,若该报文属于确定性流,将该报文 存储到确定性流输入队列;针对所述确定性流输入队列中的每个报文,确定该报文对应的封装信息,所述封装信息至少包括周期队列CQ队列信息,基于所述封装信息对该报文进行封装,将封装后的报文存储到确定性流输出队列;所述输出接口单元,用于从所述确定性流输出队列中获取报文,基于该报文对应的CQ队列信息,将该报文存储到与该CQ队列信息对应的CQ队列;所述输出接口单元,用于确定与当前调度周期对应的目标CQ队列,在所述当前调度周期内,向外部设备发送所述目标CQ队列中的报文。
- 根据权利要求11所述的网络设备,其特征在于,所述输出转发处理单元,还用于在获取到报文后,若该报文属于尽力而为流,则将该报文存储到尽力而为流输入队列;针对尽力而为流输入队列中的每个报文,对该报文进行分层服务质量HQOS调度,并将HQOS调度后的报文存储到尽力而为流输出队列;所述输出接口单元,还用于从所述尽力而为流输出队列中获取报文,并将该报文存储到尽力而为缓存队列BEQ队列;所述输出接口单元在所述当前调度周期内,向外部设备发送所述目标CQ队列中的报文之后还用于:若所述目标CQ队列中的报文被发送完成后,所述当前调度周期仍有剩余时间片,则在所述当前调度周期的剩余时间片内,向外部设备发送所述BEQ队列中的报文。
- 根据权利要求11或12所述的网络设备,其特征在于,所述网络设备还包括输入转发处理单元;所述输入转发处理单元,用于在获取到报文后,若该报文属于确定性流,则将该报文存储到确定性流输入队列;或者,若该报文属于尽力而为流,则将该报文存储到尽力而为流输入队列;其中,所述确定性流输入队列对应的队列优先级高于所述尽力而为流输入队列对应的队列优先级,以使所述输入转发处理单元优先对所述确定性流输入队列中的报文进行处理;所述输入转发处理单元,还用于在对所述确定性流输入队列中的报文进行处理时,若该报文包括CQ队列指示信息,则确定该CQ队列指示信息对应的CQ队列,否则,基于该报文对应的时间戳确定该报文对应的CQ队列,所述时间戳用于表示所述网络设备接收到该报文的时间戳;所述输入转发处理单元,还用于在该报文中添加该CQ队列对应的CQ队列信息,将报文发送给输出转发处理单元,由所述输出转发处理单元获取该报文。
- 根据权利要求13所述的网络设备,其特征在于,所述输入转发处理单元基于该报文对应的时间戳确定该报文对应的CQ队列时具体用于:基于该报文对应的转发信息查询出接口,并确定所述出接口对应的多个CQ队列,每个CQ队列对应一个调度周期;基于该报文对应的时间戳,从所有调度周期中选取与该时间戳对应的调度周期,并确定该调度周期对应的CQ队列。
- 根据权利要求13所述的网络设备,其特征在于,所述网络设备还包括输入接口单元;所述输入接口单元,用于在从外部设备接收到报文后,确定该报文属于确定性流或者尽力而为流;若该报文属于确定性流,则将该报文存储到确定性流输出队列,若该报文属于尽力而为流,则将该报文存储到尽力而为流输出队列;所述输入接口单元,用于通过第三通道将确定性流输出队列中的报文发送给输入转发处理单元,由输入转发处理单元从所述第三通道获取该报文;其中,所述输入转发处理单元确定自身从第三通道获取的报文属于确定性流;所述输入接口单元,用于通过第四通道将尽力而为流输出队列中的报文发送给输入转发处理单元,由输入转发处理单元从所述第四通道获取该报文;其中,所述输入转发处理单元确定自身从第四通道获取的报文属于尽力而为流。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2021/142637 WO2023123104A1 (zh) | 2021-12-29 | 2021-12-29 | 一种报文传输方法及网络设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116686272A true CN116686272A (zh) | 2023-09-01 |
Family
ID=86996927
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180004332.5A Pending CN116686272A (zh) | 2021-12-29 | 2021-12-29 | 一种报文传输方法及网络设备 |
Country Status (4)
Country | Link |
---|---|
EP (1) | EP4336795A1 (zh) |
JP (1) | JP2024519555A (zh) |
CN (1) | CN116686272A (zh) |
WO (1) | WO2023123104A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116887418B (zh) * | 2023-09-05 | 2023-12-15 | 浙江国利信安科技有限公司 | Epa网络中对高优先级消息进行调度的方法、设备和介质 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7231749B2 (ja) * | 2019-02-03 | 2023-03-01 | 華為技術有限公司 | パケットスケジューリング方法、スケジューラ、ネットワーク装置及びネットワークシステム |
CN113382442B (zh) * | 2020-03-09 | 2023-01-13 | 中国移动通信有限公司研究院 | 报文传输方法、装置、网络节点及存储介质 |
CN112737979B (zh) * | 2021-01-29 | 2022-12-09 | 西安电子科技大学 | 一种时间敏感网络尽力而为流调度方法 |
CN112995064B (zh) * | 2021-04-21 | 2021-07-27 | 鹏城实验室 | 一种时间敏感网络报文转发方法、装置、终端及存储介质 |
CN113708903B (zh) * | 2021-07-09 | 2022-12-02 | 北京邮电大学 | 基于时间戳的信令确定性传输方法、装置、设备及介质 |
-
2021
- 2021-12-29 CN CN202180004332.5A patent/CN116686272A/zh active Pending
- 2021-12-29 JP JP2023572986A patent/JP2024519555A/ja active Pending
- 2021-12-29 WO PCT/CN2021/142637 patent/WO2023123104A1/zh active Application Filing
- 2021-12-29 EP EP21969472.6A patent/EP4336795A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
EP4336795A1 (en) | 2024-03-13 |
WO2023123104A1 (zh) | 2023-07-06 |
JP2024519555A (ja) | 2024-05-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7558269B2 (en) | Method for transmitting high-priority packets in an IP transmission network | |
WO2021180073A1 (zh) | 报文传输方法、装置、网络节点及存储介质 | |
KR102239717B1 (ko) | 패킷 처리 방법 및 장치 | |
US7230923B2 (en) | Time based packet scheduling and sorting system | |
CN110545241B (zh) | 一种报文处理方法和装置 | |
US20090300209A1 (en) | Method and system for path based network congestion management | |
JP2008518552A (ja) | 粗細試験期間を使用したネットワーク・パケットの経験的スケジューリング法 | |
US20030198220A1 (en) | Method for reducing packet data delay variation in an internet protocol network | |
US10374959B2 (en) | Method for transmitting data in a packet-oriented communications network and correspondingly configured user terminal in said communications network | |
JP2003338837A (ja) | パケット通信システムにおける通信品質保証方法及び転送遅延保証機能付きパケット通信装置 | |
EP4152703A1 (en) | Network control method and device | |
CN113366805A (zh) | 报文调度方法、调度器、网络设备和网络系统 | |
US11038799B2 (en) | Per-flow queue management in a deterministic network switch based on deterministically transmitting newest-received packet instead of queued packet | |
CN115378874A (zh) | 数据发送、接收方法、装置、电子设备、芯片及存储介质 | |
CN116686272A (zh) | 一种报文传输方法及网络设备 | |
CN113542155B (zh) | 用于处理业务流的方法及装置 | |
CN109547352B (zh) | 报文缓存队列的动态分配方法和装置 | |
CN115632925B (zh) | 一种时间内生确定性融合网络架构及数据通信方法 | |
CN110809012B (zh) | 列车网络通信数据调度控制方法 | |
CN114221912B (zh) | 一种针对非周期时间触发业务流的时间敏感网络接入方法 | |
JP3511978B2 (ja) | 優先度制御機能付きルータ及びプログラムを記録した機械読み取り可能な記録媒体 | |
GB2355374A (en) | Packet forwarding device with selective packet discarding when paused | |
EP4336796A1 (en) | Deterministic traffic transmission method and apparatus | |
US11146485B1 (en) | Time sensitive network programming | |
US20210135999A1 (en) | Packet Control Method, Flow Table Update Method, and Node Device |
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 |