CN114726804A - 周期性数据包的数据调度方法、设备及介质 - Google Patents
周期性数据包的数据调度方法、设备及介质 Download PDFInfo
- Publication number
- CN114726804A CN114726804A CN202210259285.5A CN202210259285A CN114726804A CN 114726804 A CN114726804 A CN 114726804A CN 202210259285 A CN202210259285 A CN 202210259285A CN 114726804 A CN114726804 A CN 114726804A
- Authority
- CN
- China
- Prior art keywords
- data
- input port
- data packet
- subscribed
- port
- 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.)
- Granted
Links
Images
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
-
- 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/625—Queue scheduling characterised by scheduling criteria for service slots or service orders
- H04L47/6275—Queue scheduling characterised by scheduling criteria for service slots or service orders based on priority
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/30—Peripheral units, e.g. input or output ports
- H04L49/3027—Output queuing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/30—Peripheral units, e.g. input or output ports
- H04L49/3045—Virtual queuing
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本公开描述了一种周期性数据包的数据调度方法、设备及介质,该方法包括在每个时隙,根据输入端口、输出端口和周期确定的数据类型将输入端口对应的数据类型为已订阅、或为未订阅但符合订阅条件的待订阅数据包作为目标数据包,其中订阅条件为数据类型按输入端口对周期的倒数进行累加获得的累加值与对应输入端口的第一占用率之和不大于预设值,且按输出端口对周期的倒数进行累加获取的累加值与对应输出端口的第二占用率之和不大于预设值;对符合订阅条件的数据类型进行订阅;将目标数据包存储至虚拟输出队列;基于当前时隙输入端口和输出端口的占用情况按紧急程度对虚拟输出队列中的目标数据包进行调度。由此,能够实现周期性数据包的确定性调度。
Description
技术领域
本公开涉及数据交换领域,具体涉及一种周期性数据包的数据调度方法、设备及介质。
背景技术
随着互联网的高速发展,越来越多的领域(例如工业自动化生产、汽车全自动驾驶以及虚拟现实技术等领域)需要网络提供高可靠实时性的网络传输服务。实现这些网络传输服务常常需要搭建庞大的工业互联网进行数据流转发,所以作为网络核心的联网设备(例如交换机)起到不可或缺的作用。
目前大多基于iSLIP(iterative round robin matching with slip)调度算法的联网设备虽然能够很好地应对时延非受限的应用场景,但是随着工业互联网对高可靠和实时性有了更高的要求,基于iSLIP调度算法的联网设备已经无法满足工业互联网的高可靠和实时性的传输要求。
发明内容
本公开是有鉴于上述现有技术的状况而提出的,其目的在于提供一种能够实现周期性数据包的确定性地调度以满足工业互联网的高可靠和实时性的传输要求的周期性数据包的数据调度方法、设备及介质。
为此,本公开第一方面提供一种周期性数据包的数据调度方法,应用于包括至少一个输入端口和至少一个输出端口的联网设备,各个输入端口设置有至少一个虚拟输出队列,各个虚拟输出队列分别与各个输出端口对应,所述数据调度方法包括:初始化各个输入端口的第一占用率和各个输出端口的第二占用率;在每个时隙,从各个输入端口接收的至少一个待订阅数据包中筛选数据类型为已订阅、或数据类型为未订阅但数据类型符合订阅条件的待订阅数据包作为目标数据包,其中,各个待订阅数据包的数据类型由自身的输入端口、输出端口和周期确定,所述订阅条件为从所述未订阅的数据类型中查找至少一种数据类型,使按输入端口对周期的倒数进行累加获得的累加值与对应输入端口的第一占用率之和不大于预设值,且按输出端口对周期的倒数进行累加获得的累加值与对应输出端口的第二占用率之和不大于所述预设值;对所述至少一种数据类型进行订阅,在所述订阅中,将所述至少一种数据类型标记为已被相关联的输入端口订阅,并更新相关联的输入端口的第一占用率和相关联的输出端口的第二占用率;将所述目标数据包存储至对应的虚拟输出队列;并且基于当前时隙各个输入端口和各个输出端口的占用情况、以及各个目标数据包的生命周期,并按紧急程度对所述至少一个输入端口的虚拟输出队列中的目标数据包进行调度以使各个目标数据包被从对应的输出端口输出,其中,各个目标数据包的生命周期由自身的周期初始化并在每个时隙减少。
在本公开中,能够使已订阅的数据包(也即,周期满足调度要求的数据包)均能够及时被调度,进而能够实现确定性地调度。由此,能够适应工业互联网的高可靠性和实时性的传输要求。另外,能够支持多种数据类型的数据流,且各个端口的支持的周期可以取不同值。另外,如果联网设备运行中,若需要添加新数据流,只需要满足调度要求(也即,通过筛选)即可参与调度。在这种情况下,不仅能够灵活地扩展以支持新数据流,且能够提高联网设备的端口的占用率以充分地利用端口资源。
另外,在本公开的第一方面所涉及的数据调度方法中,可选地,各个待订阅数据包的数据类型由自身的输入端口、输出端口、周期和优先级确定,按优先级从高至低的顺序对所述至少一个待订阅数据包进行筛选以获取所述目标数据包,并按该顺序将所述目标数据包存储至对应的虚拟输出队列。在这种情况下,能够使优先级高的待订阅数据包被优先订阅和存储,进而能够被优先调度。
另外,在本公开的第一方面所涉及的数据调度方法中,可选地,按所述紧急程度对所述至少一个输入端口的虚拟输出队列中的目标数据包进行调度,进一步包括:从匹配数据集中优先选择生命周期最小的目标数据包进行匹配,其中,若存在多个所述生命周期最小的目标数据包,则从多个所述生命周期最小的目标数据包中,优先选择与所述匹配数据集的关联程度最低的目标数据包进行匹配,所述匹配数据集由所述至少一个输入端口的虚拟输出队列的队头的目标数据包组成,所述关联程度为与各个生命周期最小的目标数据包的端口相比,所述匹配数据集中端口存在冲突的目标数据包的数量,所述端口包括输入端口和输出端口。在这种情况下,优先调度生命周期最小且对其他目标数据包影响最小的目标数据包,不仅能够实现确定性地调度,还能够在当前时隙使尽量多目标数据包得到调度。由此,能够提高调度效率。
另外,在本公开的第一方面所涉及的数据调度方法中,可选地,对所述未订阅的数据类型对应的待订阅数据包进行筛选的方式包括单个筛选和批量筛选中的至少一种;若采用所述单个筛选的方式,则对所述未订阅的数据类型对应的待订阅数据包逐个进行判断,若当前的待订阅数据包的数据类型符合所述订阅条件,则将该当前的待订阅数据包作为所述目标数据包,并立即对该当前的待订阅数据包的数据类型进行订阅;若采用所述批量筛选的方式,则对所述未订阅的数据类型对应的待订阅数据包进行综合判断以查找所述至少一种数据类型,将所述至少一种数据类型对应的待订阅数据包作为所述目标数据包,并对所述至少一种数据类型进行订阅。由此,能够支持多种方式进行筛选。
另外,在本公开的第一方面所涉及的数据调度方法中,可选地,更新相关联的输入端口的第一占用率和相关联的输出端口的第二占用率,进一步包括:在所述至少一种数据类型中,将相关联的输入端口的第一占用率加上按输入端口对数据类型的周期的倒数进行累加获得的累加值,将相关联的输出端口的第二占用率加上按输出端口对数据类型的周期的倒数进行累加获得的累加值。在这种情况下,及时更新第一占用率和第二占用率,不仅能够方便调用第一占用率和第二占用率,而且减少了第一占用率和第二占用率的获取过程,进而能够节省硬件资源。
另外,在本公开的第一方面所涉及的数据调度方法中,可选地,
进行所述调度,进一步包括:初始化各个输入端口和各个输出端口的占用情况为未占用;获取由所述至少一个输入端口的虚拟输出队列的队头的目标数据包组成的匹配数据集,并从所述匹配数据集中按生命周期从小到大的顺序逐个选择目标数据包作为待匹配数据包;基于所述占用情况判断所述待匹配数据包对应的输入端口和输出端口是否均未被占用,若是,则形成所述待匹配数据包对应的输入端口和输出端口的匹配,并将所述待匹配数据包对应的输入端口和输出端口的占用情况标记为已占用;并且在遍历所述匹配数据集后,对已形成匹配的目标数据包进行转发。
另外,在本公开的第一方面所涉及的数据调度方法中,可选地,进行所述调度,进一步包括:初始化端口占用表的表项为未占用和初始化顺序表的表项,其中,所述端口占用表用于表示所述占用情况,所述顺序表初始化为按生命周期从小到大的顺序,存储所述至少一个输入端口的虚拟输出队列的队头的目标数据包的唯一标识;按存储顺序将所述顺序表中第一个唯一标识对应的目标数据包作为待匹配数据包,基于所述端口占用表判断所述待匹配数据包对应的输入端口和输出端口是否均未被占用;响应于所述待匹配数据包对应的输入端口和输出端口均未被占用而形成所述待匹配数据包对应的输入端口和输出端口的匹配,并将所述端口占用表中与所述待匹配数据包对应的输入端口和输出端口的表项标记为已占用;继续将所述顺序表中下一个唯一标识对应的目标数据包作为所述待匹配数据包进行匹配直至遍历所述顺序表;并且对所述端口占用表中输入端口标记为已占用的表项对应的目标数据包进行转发。
另外,在本公开的第一方面所涉及的数据调度方法中,可选地,所述联网设备是交换机,所述交换机包括交叉开关结构。由此,能够并行转发多个数据包。
本公开第二方面提供了一种联网设备,所述联网设备包括处理器和存储器,所述处理器执行所述存储器存储的计算机程序以实现上述的数据调度方法的步骤。
本公开第三方面提供了一种非暂态算机可读存储介质,所述非暂态计算机可读存储介质存储有至少一个指令,所述至少一个指令被处理器执行时实现上述的数据调度方法的步骤。
根据本公开,提供一种能够实现周期性数据包的确定性地调度以满足工业互联网的高可靠和实时性的传输要求的周期性数据包的数据调度方法、设备及介质。
附图说明
现在将仅通过参考附图的例子进一步详细地解释本公开,其中:
图1是示出了本公开示例所涉及的支持周期性数据包确定性地调度的交换机的示意图。
图2是示出了本公开示例所涉及的周期性数据包的数据调度方法的流程图。
图3是示出了本公开示例所涉及的对至少一个待订阅数据包进行筛选、订阅和存储的一种示例的流程图。
图4是示出了本公开示例所涉及的对虚拟输出队列中的目标数据包进行调度的一种示例的流程图。
图5是示出了本公开示例所涉及的对虚拟输出队列中的目标数据包进行调度的另一种示例的流程图。
图6是示出了本公开示例所涉及的iSLIP方案和本公开的方案的端口流量压力与调度成功率关系的对比图。
具体实施方式
以下,参考附图,详细地说明本公开的优选实施方式。在下面的说明中,对于相同的部件赋予相同的符号,省略重复的说明。另外,附图只是示意性的图,部件相互之间的尺寸的比例或者部件的形状等可以与实际的不同。需要说明的是,本公开中的术语“包括”和“具有”以及它们的任何变形,例如所包括或所具有的一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可以包括或具有没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。本公开所描述的所有方法可以以任何合适的顺序执行,除非在此另有指示或者与上下文明显矛盾。
本文中的术语“高可靠”可以是指所有的数据包在调度过程中都不能丢失。也即,零丢包率。本公开中的术语“低时延”可以是指每一个数据包都有一个生命周期,需要在生命周期结束前被调度。本公开的术语“交叉开关(Crossbar)结构”的交换控制可以包括交叉开关和控制逻辑两部分,其中交叉开关可以根据联网设备的调度算法提供从输入端口到输出端口的物理连接,控制逻辑可以根据交叉开关控制物理连接的建立和拆除。本文中的术语“相关联的输入端口”、“相关联的输出端口”、“对应的输入端口”和“对应的输出端口”,除非特意说明,可以对应句子中离得最近的对象(例如数据包或数据类型)的输入端口和输出端口。另外,本文中的术语“输入端口和输出端口”在数据信息(例如数据包、报头信息或数据类型等)中可以分别指输入端口的标识(例如地址或编号)和输出端口的标识。
本文中的术语“时延受限”可以为在实时系统中,数据包具有生命周期,当数据包超过该生命周期则可以被实时系统视作无效的数据包。具体地,若数据包具有生命周期,从该数据包进入联网设备的输入端口开始计时,若不能在给定的生命周期内到达联网设备的输出端口,则该数据包可以被丢弃。另外,生命周期的单位可以为slot(时隙),并在数据交换过程逐渐减少。其中,slot可以表示联网设备完成一次交换的时间。也即,从联网设备开始调度到数据包被交换至输出端口的时间。
本文中的数据包的数据类型是否被订阅可以是针对接收该数据包的输入端口(也可以是该数据包的数据类型对应的输入端口)。另外,数据包的报头信息中的输入端口、该数据包的数据类型对应的输入端口和接收该数据包的输入端口可以是一致的。
本文中的待订阅数据包可以为周期性的数据包。对于周期性的数据包,相同数据类型的数据包中的各个数据包可以在每隔该数据类型对应的周期个时隙到达输入端口。也即,对于一种数据类型的数据包,在每个时隙,输入端口可以最多收到一个该数据类型的数据包。另外,相同数据类型并周期性到达输入端口的一组数据包可以称为数据流。也即,数据流可以为一组相同数据类型的数据包,在每隔相应的周期个时隙,该数据流中的一个数据包可以被发送给输入端口。
如上文所简要提及的,基于iSLIP算法的联网设备无法满足工业互联网的高可靠和实时性的传输要求。例如,对于TSN网络(时间敏感网络,Time-Sensitive Networking),需要为不同优先级或不同时延的数据流(数据流可以为一组相同数据类型的数据包)提供低抖动且高可靠的数据流传输服务。也即,基于TSN网络的应用常常具有严格的时延要求。由此可见,如何对具有时延要求的数据包进行确定性地调度,以适应工业互联网的高可靠性和实时性的传输要求,还有待于研究。
发明人发现,先基于数据包的周期的倒数筛选联网设备支持(也即,能够调度)的数据类型,并在调度过程中,按紧急程度对已支持的数据类型对应的数据包进行调度,能够使联网设备支持的数据类型对应的数据包得到确定性地调度。
因此,本公开的示例提出了一种周期性数据包调度的方案,以解决上述问题和/或其他潜在问题中的一个或多个。该方案基于数据包的周期确定数据包的数据类型,并基于数据包的数据类型和周期的倒数对数据包进行筛选以确定该数据包是否支持订阅,且按紧急程度对已订阅的数据包进行调度。在这种情况下,能够使已订阅的数据包均能够及时被调度,进而能够实现确定性地调度。由此,能够适应工业互联网的高可靠性和实时性的传输要求。另外,在联网设备运行一段时间,已订阅一部分数据类型后,若有新数据流的传输需求,可以基于新数据流的周期判断是否支持该新数据流的调度,又或者可以基于当前已订阅的数据类型为该新数据流选择合适的周期以使该新数据流通过该合适的周期进行确定性地调度。在这种情况下,不仅能够灵活地扩展以支持新数据流,且能够提高联网设备的端口的占用率以充分地利用端口资源。
本公开涉及的周期性数据包的数据调度方法还可以称为数据调度方法、调度方法、数据交换方法或数据转发方法等。本公开涉及的方法可以适用于具有时延限制要求的周期性数据包传输的应用场景。
本公开示例涉及的联网设备可以包括至少一个输入端口和至少一个输出端口。在一些示例中,输入端口的数量可以与输出端口的数量一致。另外,各个输入端口可以设置有至少一个虚拟输出队列(Virtual Output Queue,VOQ),各个虚拟输出队列可以分别与各个输出端口对应。也即,各个输入端口对应的虚拟输出队列与输出端口具有一一对应的关系。
以下本公开示例的描述以联网设备为交换机为例。需要说明的是,针对交换机的描述可以同样适用于联网设备,并不表示对本公开的限制。
图1是示出了本公开示例所涉及的支持周期性数据包确定性地调度的交换机200的示意图。在一些示例中,本公开示例涉及的交换机200之类的联网设备可以包括交叉开关结构。由此,能够并行转发多个数据包。另外,交换机200可以基于数据包的周期对数据包进行筛选、存储和调度以满足时延受限的需求。
以10×10的交换机200之类的联网设备为例(也即,交换机200可以拥有10个输入端口和10个输出端口)。那么交换机200可以如图1所示,包括输入单元201、准入控制单元202、入口缓存单元203、调度单元204、交换单元205和输出单元206。交换机200可以将从输入单元201的输入端口1至输入端口10接收的且确定支持的目标数据包从输出单元206的输出端口1至输出端口10输出。在这种情况下,通过准入控制单元202筛选符合调度单元204调度要求的数据包,并由调度单元204进行确定性地调度,进而能够零丢包地传输数据包以满足工业互联网的高可靠和实时性的传输要求。
在一些示例中,输入单元201可以包括至少一个输入端口。例如,输入端口的数量可以为1、4、6、8、10、12、14、16或20等。作为示例,如图1所示,输入单元201可以包括输入端口1至输入端口10。
在一些示例中,各个输入端口接收的至少一个订阅数据包经由准入控制单元202可以进行筛选后存储至各个输入端口设置的虚拟输出队列。由此,能够使经由筛选获得的目标数据包在后续获得调度。
在一些示例中,准入控制单元202可以在每个时隙,对待订阅数据包进行筛选以获取目标数据包,对目标数据包中未订阅的数据类型进行订阅,以及对目标数据包进行存储。在这种情况下,能够筛选联网设备支持的数据包,且能够持续为已支持的数据类型的数据包提供调度服务。也即,只要是联网设备已支持(也可以称为已订阅)的数据类型对应的数据包,联网设备就可以实现确定性地调度。
另外,准入控制单元202可以基于待订阅数据包的数据类型确定联网设备是否能够支持该待订阅数据包。也即,准入控制单元202可以基于各个待订阅数据包的数据类型从至少一个待订阅数据包中筛选目标数据包。
在一些示例中,准入控制单元202可以从至少一个待订阅数据包中筛选数据类型为已订阅的待订阅数据包、或数据类型为未订阅但数据类型符合订阅条件的待订阅数据包作为目标数据包。也即,待订阅数据包的数据类型需属于接收该待订阅数据包的输入端口的已订阅的数据类型、或不属于该已订阅的数据类型但满足订阅条件,才能将该待订阅数据包作为目标数据包。在这种情况下,后续能够对已订阅或符合订阅条件的待订阅数据包进行确定性地调度,以适应工业互联网的高可靠性和实时性的传输要求(也即,只要待订阅数据包对应的数据类型被订阅成功,该数据类型的数据流就能够被确定性地调度)。
在一些示例中,订阅条件可以为从待筛选的待订阅数据包(例如,上述的未订阅的数据类型对应的待订阅数据包)的数据类型中查找至少一种数据类型,假设对该至少一种数据类型进行订阅(也即,全部订阅)的情况下,相关联的输入端口和输出端口的第一占用率和第二占用率均未超过预设值。例如,若仅对一种数据类型进行判断,则订阅条件可以为假设该数据类型被订阅情况下,相关联的输入端口的第一占用率和相关联的输出端口的第二占用率均未超过预设值,若同时对多种数据类型进行综合判断,则订阅条件可以为假设该多种数据类型均被订阅情况下,相关联的输入端口的第一占用率和相关联的输出端口的第二占用率均未超过预设值。
具体地,订阅条件可以为从未订阅的数据类型中查找至少一种数据类型,该至少一种数据类型同时满足第一条件和第二条件。
另外,第一条件可以为对于上述至少一种数据类型,按输入端口对周期的倒数进行累加获得的累加值与对应输入端口的第一占用率之和不大于预设值。例如,假设上述至少一种数据类型包括数据类型1和数据类型2,数据类型1的输入端口、输出端口和周期分别为输入端口1、输出端口2和3,数据类型2的输入端口、输出端口和周期分别为输入端口1、输出端口3和4,则按输入端口对周期的倒数进行累加,输入端口1对应的累加值为1/3+1/4。
另外,第二条件可以为对于上述至少一种数据类型,按输出端口对周期的倒数进行累加获得的累加值与对应输出端口的第二占用率之和不大于预设值。例如,继续上述数据类型1和数据类型2的例子,按输出端口对周期的倒数进行累加,输出端口2对应的累加值为1/3,输出端口3对应的累加值为1/4。
例如,在仅对一种数据类型进行判断的情况下,第一条件可以为该数据类型的周期的倒数与该数据类型对应的输入端口的第一占用率之和不大于预设值,第二条件可以为该数据类型的周期的倒数与该数据类型对应的输出端口的第二占用率之和不大于预设值。又例如,在对多种数据类型进行综合判断的情况下,可以分别按输入端口和输出端口对该多种数据类型的周期的倒数进行累加,进而获得该多种数据类型中各个输入端口对应的累加值和各个输出端口对应的累加值,第一条件可以为该多种数据类型中各个输入端口对应的累加值与第一占用率之和不大于预设值,第二条件可以为该多种数据类型中各个输出端口对应的累加值与第二占用率之和不大于预设值。
在一些示例中,预设值可以根据需要进行设置。例如,预设值可以为20%、40%、60%、80%或100%等。由此,能够通过预设值灵活地控制联网设备的端口资源的使用。优选地,预设值可以为100%。由此,能够充分地利用联网设备的端口资源。
另外,各个输入端口的第一占用率和各个输出端口的第二占用率可以在对相关联的数据类型进行订阅时更新。也即,各个输入端口的第一占用率和各个输出端口的第二占用率可以由至少一个输入端口的已订阅的数据类型确定。
在一些示例中,准入控制单元202还可以用于读取待订阅数据包的报头信息以获取待订阅数据包的基本信息。在一些示例中,待订阅数据包的基本信息可以包括接收该待订阅数据包的输入端口、转发该待订阅数据包的输出端口和周期。由此,能够获取待订阅数据包的基本信息。在一些示例中,待订阅数据包的基本信息还可以包括优先级。由此,能够根据优先级对待订阅数据包进行传输。另外,待订阅数据包的周期的单位可以为slot(时隙)。
在一些示例中,准入控制单元202还可以基于待订阅数据包的基本信息确定待订阅数据包的数据类型。也即,各个待订阅数据包的数据类型可以由自身(也即,该待订阅数据包)的基本信息确定。在一些示例中,各个待订阅数据包的数据类型可以由自身的输入端口、输出端口和周期确定。也即,输入端口、输出端口和周期可以唯一标识一种数据类型。在另一些示例中,各个待订阅数据包的数据类型可以由自身的输入端口、输出端口、周期和优先级确定。也即,输入端口、输出端口、周期和优先级可以唯一标识一种数据类型。具体选择哪些基本信息确定数据类型与联网设备的应用场景相关。
在一些示例中,准入控制单元202可以具有至少一个订阅表。各个订阅表可以用于记录各个输入端口的已订阅的数据类型。由此,能够基于订阅表方便地获取已订阅的数据类型。
继续参考图1,如上所述,待订阅数据包经由准入控制单元202可以进行筛选后存储至各个输入端口设置的虚拟输出队列。在一些示例中,至少一个输入端口的虚拟输出队列可以作为入口缓存单元203,用于缓存待调度的目标数据包。也即,虚拟输出队列可以用于存储待交换的目标数据包。另外,目标数据包可以从虚拟输出队列的队尾输入并在队头输出(也即,虚拟输出队列可以为先入先出的队列)。在每个时隙,位于虚拟输出队列的队头的目标数据包可以由调度单元204进行调度(也可以指可以由调度算法进行调度)。在这种情况下,在调度过程匹配成功的目标数据包能够从对应的输出端口输出。
另外,如上文所提及的,输入端口的各个虚拟输出队列可以分别与各个输出端口对应。例如,如图1所示,输入端口1对应的多个虚拟输出队列可以为VOQ1至VOQ10,其中,VOQ1可以对应输出端口1,VOQ10可以对应输出端口10,中间的虚拟输出队列类似。在这种情况下,各个输入端口接收的目标数据包能够根据目标数据包的输出端口被存储至相应的虚拟输出队列。也即,对于各个输入端口接收的目标数据包,输出端口相同的目标数据包可以存储于对应输入端口的同一个虚拟输出队列中。
继续参考图1,交换机200可以包括调度单元204。调度单元204可以用于对至少一个输入端口的虚拟输出队列中的目标数据包进行调度以使各个目标数据包被从对应的输出端口输出。
在一些示例中,调度单元204可以用于对至少一个输入端口的虚拟输出队列中的目标数据包进行匹配以获取无冲突匹配。由此,后续能够根据无冲突匹配进行数据交换。具体地,调度单元204可以对至少一个输入端口对应的全部非空的虚拟输出队列中的目标数据包进行匹配以获取无冲突匹配。
另外,无冲突匹配可以为输入端口与输出端口匹配对的集合。也即,无冲突匹配可以表示输入端口与输出端口一一对应的关系。具体地,每一个时隙,若一个匹配对的集合,满足每个输入端口最多只能选择一个输出端口转发数据包,同样地,每个输出端口最多只能选择一个输入端口接收数据包,则该匹配对的集合可以称为无冲突匹配。在这种情况下,后续基于无冲突匹配进行数据交换,能够避免将多个输入端口的数据包转发给一个输出端口,或将一个输入端口的数据包转发给多个输出端口。
在一些示例中,调度单元204可以基于紧急程度对各个虚拟输出队列中的目标数据包进行匹配以获取无冲突匹配。在一些示例中,基于紧急程度进行匹配可以为基于全局生命周期最小匹配算法进行匹配。具体地,可以从至少一个输入端口的虚拟输出队列中优先选择位于队头且生命周期最小(也即,最紧急)的目标数据包进行匹配。在这种情况下,能够使最紧急的目标数据包被优先调度,避免目标数据包在调度过程死亡,进而能够实现确定性地调度。另外,能够无需通过遍历所有的连接情况找出最佳的无冲突匹配。
另外,若至少一个输入端口的虚拟输出队列的队头的目标数据包(有时候也可以简称为匹配数据集,也即,匹配数据集可以由至少一个输入端口的虚拟输出队列的队头的目标数据包组成)中,存在多个生命周期最小的目标数据包,可以以任意方式(例如,按输入端口的顺序、输出端口的顺序或其他选择算法)从中选择一个目标数据包进行匹配。
优选地,若匹配数据集中,存在多个生命周期最小的目标数据包,则可以从多个生命周期最小的目标数据包中,优先选择与匹配数据集的关联程度最低的目标数据包进行匹配。换而言之,在当前时隙中,可以优先从匹配数据集中选择生命周期最小,并且端口占用(也即,输入端口和输出端口的占用)对其他目标数据包的影响最小的目标数据包进行匹配。在这种情况下,优先调度生命周期最小且对其他目标数据包影响最小的目标数据包,不仅能够实现确定性地调度,还能够在当前时隙使尽量多目标数据包得到调度(也即,能够增加物理连接的数量)。由此,能够提高调度效率。
另外,对于各个生命周期最小的目标数据包,关联程度可以为与各个生命周期最小的目标数据包的端口相比,匹配数据集中端口存在冲突(也即,存在至少一个相同的端口)的目标数据包的数量,其中,端口包括输入端口和输出端口。也即,对于各个生命周期最小的目标数据包,匹配数据集中端口存在冲突的目标数据包的数量越少,可以表示与匹配数据集的关联程度越低。
例如,以匹配数据集包括目标数据包1、目标数据包2和目标数据包3为例,令匹配数据集中的各个目标数据包的信息如表1所示:
表1 各个目标数据包的信息
目标数据包 | 输入端口 | 输出端口 | 生命周期 |
目标数据包1 | 输入端口1 | 输出端口1 | 2 |
目标数据包2 | 输入端口1 | 输出端口3 | 2 |
目标数据包3 | 输入端口3 | 输出端口1 | 4 |
如表1所示,目标数据包1、目标数据包2为匹配数据集中生命周期最小的目标数据包,可以优先进行匹配。由于存在两个生命周期最小的目标数据包,可以进一步优化。
具体地,目标数据包1的输入端口和输出端口分别为输入端口1和输出端口1,因此与目标数据包1的输入端口1和输出端口1中任意一个端口存在冲突的目标数据包有目标数据包2(输入端口1冲突)和目标数据包3(输出端口1冲突);另外,目标数据包2的输入端口和输出端口分别为输入端口1和输出端口3,因此与目标数据包2的输入端口1和输出端口3中任意一个端口存在冲突的有目标数据包1(输入端口1冲突)。
因此,匹配数据集中端口与目标数据包2的端口存在冲突的目标数据包的数量最少(也即,关联程度最低),可以优先对目标数据包2进行匹配。
另外,若多个生命周期最小的目标数据包中,存在关联程度一样的目标数据包,可以以任意方式(例如,按输入端口的顺序或输出端口的顺序)从中选择一个目标数据包进行匹配。
在一些示例中,调度单元204还可以用于在获取无冲突匹配后,基于无冲突匹配进行数据交换。在一些示例中,调度单元204可以基于无冲突匹配并利用由交换单元205提供的从输入端口到输出端口的物理连接,对目标数据包进行转发。由此,能够实现数据交换。
在一些示例中,调度单元204可以具有端口占用表。端口占用表可以用于表示每个时隙各个输入端口的占用情况和各个输出端口的占用情况。在一些示例中,端口占用表可以具有两列,第一列可以表示至少一个输入端口的占用情况,第二列可以表示至少一个输出端口的占用情况。另外,第一列可以具有分别与各个输入端口对应的表项,第二列可以具有分别与各个输出端口对应的表项。
在一些示例中,调度单元204可以具有顺序表。顺序表可以用于在每个时隙按生命周期从小到大的顺序,存储至少一个输入端口的虚拟输出队列的队头的目标数据包的唯一标识。优选地,队头的目标数据包的唯一标识可以包括输入端口和输出端口。由此,能够方便地获得目标数据包对应的输入端口和输出端口的占用情况。
在一些示例中,顺序表可以具有分别与至少一个输入端口的各个虚拟输出队列的队头的目标数据包对应的表项。在一些示例中,顺序表可以使用指针进行访问。例如,可以先将指针指向顺便表中的第一个表项(也即,生命周期最小的目标数据包对应的表项),在匹配完一个表项对应的目标数据包后,可以将指针指向下一个表项。
在一些示例中,调度单元204可以具有生命周期表。生命周期表可以用于记录各个目标数据包的生命周期。在一些示例中,若在当前时隙,目标数据包被调度成功,则可以从生命周期表中删除该目标数据包对应的生命周期。在一些示例中,若在当前时隙,目标数据包未被调度成功,则可以将生命周期表中该目标数据包对应的生命周期减1个时隙。
继续参考图1,如上所述,交换机200可以包括交换单元205。交换单元205可以用于管理输入端口到输出端口的物理连接。具体地,交换单元205可以用于控制输入端口到输出端口的物理连接的建立和拆除。在一些示例中,交换单元205可以接收由调度单元204获得的无冲突匹配并基于无冲突匹配建立从输入端口到输出端口的物理连接。在一些示例中,交换单元205可以具有交换电路。在一些示例中,交换单元205可以包括交叉开关结构。由此,能够并行转发多个数据包。
继续参考图1,如上所述,交换机200可以包括输出单元206。在一些示例中,输出单元206可以包括至少一个输出端口。例如,输出端口的数量可以为1、4、6、8、10、12、14、16或20等。作为示例,如图1所示,输出单元206可以包括输出端口1至输出端口10。
以下结合图2描述本公开示例涉及的周期性数据包的数据调度方法(以下简称数据调度方法)。本公开示例涉及的数据调度方法可以应用于联网设备(例如交换机200)。除非特别说明,上述针对交换机200的相关描述同样适用于数据调度方法。图2是示出了本公开示例所涉及的周期性数据包的数据调度方法的流程图。
如图2所示,数据调度方法可以包括步骤S102。在步骤S102中,可以初始化联网设备的全局参数。
在一些示例中,可以在联网设备启动时(也可以称为开始工作时)初始化联网设备的全局参数。在一些示例中,在初始化中,可以将全局参数初始化为联网设备初次运行预设的初始值、或联网设备运行一段时间后更新的最新参数值。具体根据联网设备的应用场景进行选择,本公开的示例不做特别限制。
在一些示例中,全局参数可以包括各个输入端口的第一占用率和各个输出端口的第二占用率。也即,在步骤S102中,可以初始化各个输入端口的第一占用率和各个输出端口的第二占用率。在一些示例中,各个输入端口的第一占用率和各个输出端口的第二占用率可以初始化为初始值,初始值可以为0。在一些示例中,各个输入端口的第一占用率和各个输出端口的第二占用率可以初始化为最新参数值。但本公开的示例不限于此,在另一些示例中,各个输入端口的第一占用率和各个输出端口的第二占用率也可以不预先初始化。例如,可以按输入端口和输出端口对所有输入端口的已订阅的数据类型的周期的倒数进行统计,以获取各个输入端口的第一占用率和各个输出端口的第二占用率。因此,除非特意说明,各个输入端口的第一占用率和各个输出端口的第二占用率的初始化和更新也可以不是必须的。
在一些示例中,全局参数可以包括订阅表和生命周期表中的至少一个参数。在一些示例中,各个订阅表的初始值可以为空表。在一些示例中,生命周期表的初始值可以为空表。
如图2所示,数据调度方法还可以包括步骤S104。在步骤S104中,在每个时隙,可以从各个输入端口接收的至少一个待订阅数据包中筛选目标数据包,对目标数据包中未订阅的数据类型进行订阅,以及对目标数据包进行存储。
在一些示例中,从输入端口接收至少一个待订阅数据包后,可以解析各个待订阅数据包的报头信息以获取各个待订阅数据包的基本信息,并基于各个待订阅数据包的基本信息确定各个待订阅数据包的数据类型。如上所述,各个待订阅数据包的数据类型可以由自身的输入端口、输出端口和周期确定或由自身的输入端口、输出端口、周期和优先级确定。具体内容参见准入控制单元202的相关描述。
如上所述,在步骤S104中,可以从各个输入端口接收的至少一个待订阅数据包中筛选目标数据包。另外,若存在目标数据包,目标数据包的数量可以为一个或多个。
如上所述,可以基于各个待订阅数据包的数据类型从至少一个待订阅数据包中筛选目标数据包。在一些示例中,可以从至少一个待订阅数据包中筛选数据类型为已订阅的待订阅数据包、或数据类型为未订阅但符合订阅条件的待订阅数据包作为目标数据包。具体内容参见准入控制单元202的相关描述。
在一些示例中,可以先从至少一个待订阅数据包中筛选数据类型为已订阅的待订阅数据包作为目标数据包,再从剩余的未订阅的数据类型对应的待订阅数据包中,筛选数据类型符合订阅条件的待订阅数据包作为目标数据包。
在一些示例中,对未订阅的数据类型对应的待订阅数据包进行筛选的方式可以包括单个筛选和批量筛选中的至少一种。由此,能够支持多种方式进行筛选。
在一些示例中,若采用单个筛选的方式,可以在筛选到一个符合订阅条件的数据类型时,将该数据类型对应的待订阅数据包作为目标数据包,并立即对该数据类型进行订阅。
具体地,若采用单个筛选的方式,则可以对未订阅的数据类型对应的待订阅数据包逐个进行判断,若当前的待订阅数据包的数据类型符合订阅条件,则可以将该当前的待订阅数据包作为目标数据包,并立即对该当前的待订阅数据包的数据类型进行订阅。在这种情况下,能够及时更新输入端口的已订阅的数据类型(也可以为及时更新相关联的输入端口的第一占用率和相关联的输出端口的第二占用率),进而能够使下一个待订阅数据包基于最新的已订阅的数据类型(也可以为基于相关联的输入端口的最新的第一占用率和相关联的输出端口的最新的第二占用率)进行筛选。
在一些示例中,若采用批量筛选的方式,则可以对未订阅的数据类型对应的待订阅数据包进行综合判断以查找符合订阅条件的至少一种数据类型,将该至少一种数据类型对应的待订阅数据包作为目标数据包,并对该至少一种数据类型进行订阅。也即,至少一种数据类型满足:假设对该至少一种数据类型均进行订阅情况下,相关联的输入端口的第一占用率和相关联的输出端口的第二占用率均未超过预设值。在这种情况下,能够根据实际需求灵活地选择若干个数据类型进行订阅。
在一些示例中,对于批量筛选,可以从至少一个待订阅数据包中的未订阅的数据类型的子集中选取符合订阅条件的一个子集作为上述的至少一种数据类型。例如,可以根据实际需求划分子集,以查找符合实际需求且满足订阅条件的子集作为至少一种数据类型。又例如,可以遍历所有子集,以查找满足预设需求条件(例如,综合优先级最高、数据类型最多、或平均端口占用率最高等)且满足订阅条件的子集作为至少一种数据类型。
在一些示例中,可以按预设顺序对至少一个待订阅数据包进行筛选(例如,单个筛选或批量筛选)以获取目标数据包。在一些示例中,对于数据类型由自身的输入端口、输出端口、周期和优先级确定的待订阅数据包,预设顺序可以为按优先级从高至低。也即,可以按优先级从高至低对至少一个待订阅数据包进行筛选以获取目标数据包。在一些示例中,可以按预设顺序对至少一个待订阅数据包中的未订阅的数据类型对应的待订阅数据包进行筛选以获取目标数据包。
在一些示例中,若按预设顺序进行筛选,则可以按预设顺序对获得的目标数据包进行存储。例如,可以按优先级从高至低的顺序对至少一个待订阅数据包进行筛选以获取目标数据包,并按该顺序将目标数据包存储至虚拟输出队列。在这种情况下,能够使优先级高的待订阅数据包被优先订阅和存储,进而能够被优先调度。但本公开的示例不限于此,在另一些示例中,待订阅数据包的筛选顺序和存储顺序也可以不一致。
在一些示例中,在对未订阅的数据类型的待订阅数据包进行筛选之前,可以进行初筛以获取未订阅的数据类型中,对单个待订阅数据包分别进行判断的情况下,符合订阅条件的数据类型以及符合订阅条件的数据类型对应的待订阅数据包。在这种情况下,能够基于初筛的结果在后续进行进一步筛选,进而简化后续筛选过程。需要说明的是,若进行了初筛,除非特别说明,筛选可以默认基于已进行初筛后的数据类型或初筛后的待订阅数据包。另外,由于订阅一种数据类型会影响(例如,更新)相关联的输入端口的第一占用率和输出端口的第二占用率(也可以为会影响相关联输入端口的已订阅的数据类型),进而影响后续待订阅数据包的订阅条件的判断。在这种情况下,初筛阶段,一个未订阅的数据类型符合订阅条件并不确定最终该未订阅的数据类型符合订阅条件,具体与筛选和订阅的过程有关。
另外,需要说明的是,已订阅的数据类型对应的待订阅数据包可以不受单个筛选和批量筛选的限制。例如,可以从至少一个待订阅数据包中批量筛选出已订阅的数据类型对应的待订阅数据包或从至少一个待订阅数据包中逐个筛选出已订阅的数据类型对应的待订阅数据包。
如上所述,在步骤S104中,可以对目标数据包中未订阅的数据类型(也即,上述的至少一种数据类型)进行订阅。换言之,对目标数据包中相关联的输入端口未订阅的数据类型进行订阅。如上文所提及的,可以逐个获取目标数据包,并立即对目标数据包对应的未订阅的数据类型进行订阅,或也可以批量获取多个目标数据包,并对该多个目标数据包中未订阅的数据类型进行订阅。
在一些示例中,在订阅中,可以更新相关联的输入端口的已订阅的数据类型。具体地,可以将确定可以订阅的数据类型(也即,上述的至少一种数据类型)标记为已被相关联的输入端口订阅。另外,标记为被相关联的输入端口订阅可以为将确定可以订阅的数据类型标记为属于该确定可以订阅的数据类型对应的输入端口已订阅的数据类型。
在一些示例中,在订阅中,可以更新相关联的输入端口的已订阅的数据类型,并更新相关联的输入端口和输出端口的第一占用率和第二占用率。在这种情况下,及时更新第一占用率和第二占用率,不仅能够方便调用第一占用率和第二占用率,而且减少了第一占用率和第二占用率的获取过程,进而能够节省硬件资源。
在一些示例中,更新相关联的输入端口的第一占用率和相关联的输出端口的第二占用率可以为在确定可以订阅的数据类型标中,将相关联的输入端口的第一占用率加上按输入端口对周期的倒数进行累加获得的累加值,将相关联的输出端口的第二占用率加上按输出端口对周期的倒数进行累加获得的累加值。也即,对确定可以订阅的数据类型中涉及的输入端口的第一占用率和涉及的输出端口的第二占用率分别加上相关的数据类型的周期的倒数。由此,能够基于数据类型的周期的倒数更新相关联的输入端口的第一占用率和相关联的输出端口的第二占用率。
如上所述,在步骤S104中,可以对目标数据包进行存储。在一些示例中,可以将目标数据包存储至对应的虚拟输出队列。具体地,可以将目标数据包存储至接收该目标数据包的输入端口中与目标数据包的输出端口对应的虚拟输出队列。也即,若一个时隙从至少一个输入端口中获得至少一个目标数据包,可以将至少一个目标数据包中的各个目标数据包存储至接收各个目标数据包的输入端口中与目标数据包的输出端口对应的虚拟输出队列。
以下结合图3描述一种对至少一个待订阅数据包进行筛选、订阅和存储的示例性的过程。图3是示出了本公开示例所涉及的对至少一个待订阅数据包进行筛选、订阅和存储的一种示例的流程图。
如图3所示,在本实施方式中,对至少一个待订阅数据包进行筛选、订阅和存储可以包括以下步骤:
步骤S202,接收进入各个输入端口的至少一个待订阅数据包,并基于各个待订阅数据包的基本信息确定各个待订阅数据包的数据类型。如上所述,待订阅数据包的基本信息可以通过读取待订阅数据包的报头信息获得。在本实施方式,各个待订阅数据包的数据类型可以由输入端口、输出端口、周期和优先级确定。
步骤S204,将至少一个待订阅数据包中输入端口已订阅的数据类型对应的待订阅数据包存储至虚拟输出队列中。如上所述,订阅表可以用于记录各个输入端口的已订阅的数据类型。在一些示例中,若待订阅数据包的数据类型存在对应输入端口的订阅表中,则可以表示该待订阅数据包为该输入端口已订阅的数据类型对应的待订阅数据包。另外,若经由步骤S204还剩余待订阅数据包未存储,可以转至步骤S206。
步骤S206,对于未订阅的数据类型对应的待订阅数据包逐个进行初筛以获取数据类型初步满足订阅条件的待订阅数据包。例如,若一个待订阅数据包的周期的倒数与对应的输入端口的第一占用率之和不大于预设值且周期的倒数与对应的输出端口的第二占用率之和不大于预设值,则可以表示该待订阅数据包为数据类型初步满足订阅条件的待订阅数据包。
在一些示例中,对于初筛不满足订阅条件的待订阅数据包可以忽略。也即,可以表示联网设备不支持该数据类型的待订阅数据包。另外,经初筛获得的待订阅数据包(也即,数据类型初步满足订阅条件的待订阅数据包)可以转至步骤S208进一步判断。
步骤S208,按优先级从高至低的顺序逐个选择由步骤S206初筛获得的待订阅数据包进行判断、订阅和存储。其中,在判断中,若待订阅数据包满足订阅条件,则可以对该待订阅数据包的数据类型进行订阅并将该待订阅数据包存储至虚拟输出队列。也即,若待订阅数据包的周期的倒数与对应的输入端口的第一占用率之和不大于预设值且周期的倒数与对应的输出端口的第二占用率之和不大于预设值,则可以进行订阅和存储。
另外,如上所述,在订阅中,可以更新相关联的输入端口的已订阅的数据类型。在一些示例中,若采用订阅表,则更新相关联的输入端口的已订阅的数据类型可以为将数据类型加入对应的输入端口的订阅表中。
返回参考图2,数据调度方法还可以包括步骤S106。在步骤S106中,可以对至少一个输入端口的虚拟输出队列中的目标数据包进行调度以使各个目标数据包被从对应的输出端口输出。
在一些示例中,在步骤S106中,可以基于当前时隙各个输入端口的占用情况和各个输出端口的占用情况、以及各个目标数据包的生命周期进行匹配。另外,各个目标数据包的生命周期可以由自身的周期初始化并在每个时隙减少。由此,能够使目标数据包的生命周期逐渐减小(也即,越紧急)。在一些示例中,可以在每个时隙,开始匹配之前,对新的目标数据包(也即,还未初始化生命周期的目标数据包)的生命周期进行初始化。
在一些示例中,匹配的方式可以是能够使虚拟输出队列中目标数据包在生命周期内的形成匹配(也即完成调度)的任意方式。
优选地,可以基于当前时隙各个输入端口的占用情况和各个输出端口的占用情况、以及各个目标数据包的生命周期并按紧急程度,对至少一个输入端口的虚拟输出队列中的目标数据包进行匹配。如上所述,基于紧急程度进行匹配可以为从至少一个输入端口的虚拟输出队列中优先选择位于队头且生命周期最小的目标数据包进行匹配。在这种情况下,能够使最紧急的目标数据包被优先调度,避免目标数据包在调度过程死亡,进而能够实现确定性地调度。
另外,若至少一个输入端口的虚拟输出队列的队头的目标数据包中,存在多个生命周期最小的目标数据包,则可以从多个生命周期最小的目标数据包中,优先选择与匹配数据集的关联程度最低的目标数据包进行匹配。在这种情况下,优先调度生命周期最小且对其他目标数据包影响最小的目标数据包,不仅能够实现确定性地调度,还能够在当前时隙使尽量多目标数据包得到调度(也即,能够增加物理连接的数量)。由此,能够提高调度效率。具体内容参见调度单元204的相关描述。
在一些示例中,在步骤S106中,经由匹配可以使各个目标数据包在相应的时隙形成匹配(也即,无冲突匹配)。由此,能够基于形成的匹配进行数据交换以使各个目标数据包被从对应的输出端口输出。在一些示例中,针对形成匹配的目标数据包可以建立该目标数据包的输入端口至输出端口的物理连接,进而能够通过该物理连接转发该目标数据包以完成调度。由此,能够使各个目标数据包被从对应的输出端口输出。
图4是示出了本公开示例所涉及的对虚拟输出队列中的目标数据包进行调度的一种示例的流程图。
如图4所示,本实施方式中,对虚拟输出队列中的目标数据包进行调度可以包括:
步骤S302,初始化各个输入端口的占用情况和各个输出端口的占用情况为未占用。也即,每个时隙都可以将各个输入端口和各个输出端口的占用情况重置为未占用。
步骤S304,获取由至少一个输入端口的虚拟输出队列的队头的目标数据包组成的匹配数据集,并从匹配数据集中按生命周期从小到大的顺序逐个选择目标数据包作为待匹配数据包。另外,根据上文的描述,若存在多个生命周期一样的目标数据包,可以优先选择与匹配数据集关联程度最低的目标数据包作为待匹配数据包。
步骤S306,基于各个输入端口和各个输出端口的占用情况判断待匹配数据包对应的输入端口和输出端口是否均未被占用以进行匹配。
在一些示例中,若待匹配数据包对应的输入端口和输出端口均未被占用,则可以形成待匹配数据包对应的输入端口和输出端口的匹配,并将待匹配数据包对应的输入端口和输出端口的占用情况标记为已占用。在一些示例中,若待匹配数据包对应的输入端口或输出端口被占用,则可以将待匹配数据包继续存储在虚拟输出队列中。
步骤S308,在遍历匹配数据集后,对已形成匹配的目标数据包进行转发。在这种情况下,能够使已形成匹配的目标数据包被从对应的输出端口输出。另外,未形成匹配的目标数据包可以在下个时隙继续进行调度。
图5是示出了本公开示例所涉及的对虚拟输出队列中的目标数据包进行调度的另一种示例的流程图。
如图5所示,本实施方式中,可以基于端口占用表和顺序表对虚拟输出队列中的目标数据包进行调度,可以包括:
步骤S402,可以初始化端口占用表的表项为未占用和初始化顺序表的表项。另外,顺序表可以初始化为按生命周期从小到大的顺序,存储至少一个输入端口的虚拟输出队列的队头的目标数据包的唯一标识。另外,端口占用表和顺序表可以参见调度单元204的相关描述。另外,根据上文的描述,若存在多个生命周期一样的目标数据包,顺序表可以优先存储与匹配数据集(也即,至少一个输入端口的虚拟输出队列的队头的目标数据包)关联程度最低的目标数据包的唯一标识。
步骤S404,按存储顺序将顺序表中第一个唯一标识对应的目标数据包作为待匹配数据包,基于端口占用表判断待匹配数据包对应的输入端口和输出端口是否均未被占用以进行匹配。其中,响应于待匹配数据包对应的输入端口和输出端口均未被占用,而形成待匹配数据包对应的输入端口和输出端口的匹配,并将端口占用表中与待匹配数据包对应的输入端口和输出端口的表项标记为已占用。在一些示例中,响应于待匹配数据包对应的输入端口或输出端口被占用而将待匹配数据包继续存储在虚拟输出队列中。
步骤S406,继续将顺序表中下一个唯一标识对应的目标数据包作为待匹配数据包进行匹配直至遍历顺序表。
步骤S408,对端口占用表中输入端口标记为已占用的表项对应的目标数据包进行转发(也即,对已形成匹配的目标数据包进行转发)。换言之,在匹配完成顺序表中唯一标识对应的目标数据包后,可以基于端口占用表获得匹配情况(也可以称为无冲突匹配),进而能够对已匹配成功的目标数据包进行转发。在一些示例中,在对形成匹配的目标数据包进行转发之前(例如,在形成匹配时),可以建立目标数据包对应的输入端口和输出端口的物理连接以通过该物理连接转发目标数据包。
在一些示例中,本公开示例涉及的数据调度方法还可以包括取消订阅。例如,若某种已订阅的数据类型的数据包不需要再通过联网设备进行传输了,可以对该数据类型进行取消订阅。在这种情况下,能够降低相应的输入端口和输出端口的占用率。由此,能够提高新的数据类型订阅的成功率。
本公开还涉一种联网设备,可以包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现上述应用于联网设备的数据调度方法。
本公开还涉及一种非暂态计算机可读存储介质,非暂态计算机可读存储介质可以存储有至少一个指令,至少一个指令可以被处理器执行时实现上述应用于联网设备的数据调度方法。本领域普通技术人员可以理解上述示例中的应用于联网设备的数据调度方法中的全部或部分步骤是可以通过程序(指令)来指令相关的硬件来完成,该程序(指令)可以存储于计算机可读存储器(存储介质)中。
图6是示出了本公开示例所涉及的iSLIP方案和本公开的方案的端口流量压力与调度成功率关系的对比图。其中,L1可以为本公开的方案的调度成功率的曲线,L1可以为iSLIP方案的调度成功率的曲线。
另外,为了验证周期性数据包的数据调度方法的有效性,与基于iSLIP调度算法的方案(可以简称为iSLIP方案)进行比较。本次仿真本公开的方案和iSLIP方案的交换机,基于交叉开关结构,拥有4个输入端口和4个输出端口,每个输入端口拥有4个虚拟输出队列。
另外,本公开的方案的交换机每个输入端口订阅的数据类型的周期的倒数之和小于等于1。每次仿真实验运行时间等于所有虚拟输出队列的已订阅的数据类型的周期的最小公倍数。实验重复100次得到在各个端口流量压力下的调度成功率。另外,端口流量压力可以表示为:
其中,N可以表示输入端口的数量,M可以表示各个输入端口的已订阅的数据类型,Tn,m可以表示第n个输入端口的第m个数据类型的周期。另外,调度成功率可以为在运行时间内,交换机零丢包调度数据包的概率。也即,调度过程中只要有一个数据包丢失,都可以算作是调度失败。如图6所示,每一个数据点都是在相同端口流量压力下实验100次得到的平均结果。从图6可以看出,随着端口流量压力的增加,使用iSLIP方案的交换机的调度成功率随之减小,使用本公开的交换机调度成功率一直保持在100%。详情如下:
(1)端口流量压力值处于0至40%时,使用iSLIP方案的交换机与本公开的方案的交换机调度成功率差别较小。在这个压力区间iSLIP方案能够满足零丢包的调度要求,本公开的方案的调度成功率保持在100%,能够满足零丢包的调度要求。
(2)端口压力值处于53%~90%时,使用iSLIP方案的交换机调度成功率急剧下降,当端口流量压力在87.6%附近时,调度成功率基本降低为0。
(3)端口流量压力值处于87.9~100%时,使用iSLIP方案的交换机调度成功率等于0,无法满足零丢包的调度要求,本公开的方案的调度成功率保持在100%,能够满足零丢包的调度要求。
综上所述,本公开的方案能够在任意端口流量压力值时均满足零丢包的调度要求,相比于已有方案有大幅度的提升。
本公开的周期性数据包的数据调度方法、设备及介质,基于数据包的输入端口、输出端口和周期确定待订阅数据包的数据类型,并基于待订阅数据包的数据类型对待订阅数据包进行筛选以确定支持订阅的待订阅数据包并作为目标数据包,对符合订阅条件的数据类型进行订阅,且按紧急程度对已订阅的目标数据包进行调度。在这种情况下,能够使已订阅的数据包(也即,周期满足调度要求的数据包)均能够及时被调度,进而能够实现确定性地调度。由此,能够适应工业互联网的高可靠性和实时性的传输要求。另外,能够支持多种数据类型的数据流,且各个端口的支持的周期可以取不同值。另外,如果联网设备运行中,若需要添加新数据流,只需要满足调度要求(也即,通过筛选)即可参与调度。在这种情况下,不仅能够灵活地扩展以支持新数据流,且能够提高联网设备的端口的占用率以充分地利用端口资源。
虽然以上结合附图和示例对本公开进行了具体说明,但是可以理解,上述说明不以任何形式限制本公开。本领域技术人员在不偏离本公开的实质精神和范围的情况下可以根据需要对本公开进行变形和变化,这些变形和变化均落入本公开的范围内。
Claims (10)
1.一种周期性数据包的数据调度方法,应用于包括至少一个输入端口和至少一个输出端口的联网设备,各个输入端口设置有至少一个虚拟输出队列,各个虚拟输出队列分别与各个输出端口对应,其特征在于,所述数据调度方法包括:
初始化各个输入端口的第一占用率和各个输出端口的第二占用率;
在每个时隙,从各个输入端口接收的至少一个待订阅数据包中筛选数据类型为已订阅、或数据类型为未订阅但数据类型符合订阅条件的待订阅数据包作为目标数据包,其中,各个待订阅数据包的数据类型由自身的输入端口、输出端口和周期确定,所述订阅条件为从所述未订阅的数据类型中查找至少一种数据类型,使按输入端口对周期的倒数进行累加获得的累加值与对应输入端口的第一占用率之和不大于预设值,且按输出端口对周期的倒数进行累加获得的累加值与对应输出端口的第二占用率之和不大于所述预设值;
对所述至少一种数据类型进行订阅,在所述订阅中,将所述至少一种数据类型标记为已被相关联的输入端口订阅,并更新相关联的输入端口的第一占用率和相关联的输出端口的第二占用率;
将所述目标数据包存储至对应的虚拟输出队列;并且
基于当前时隙各个输入端口和各个输出端口的占用情况、以及各个目标数据包的生命周期,并按紧急程度对所述至少一个输入端口的虚拟输出队列中的目标数据包进行调度以使各个目标数据包被从对应的输出端口输出,其中,各个目标数据包的生命周期由自身的周期初始化并在每个时隙减少。
2.根据权利要求1所述的数据调度方法,其特征在于:
各个待订阅数据包的数据类型由自身的输入端口、输出端口、周期和优先级确定,按优先级从高至低的顺序对所述至少一个待订阅数据包进行筛选以获取所述目标数据包,并按该顺序将所述目标数据包存储至对应的虚拟输出队列。
3.根据权利要求1所述的数据调度方法,其特征在于,按所述紧急程度对所述至少一个输入端口的虚拟输出队列中的目标数据包进行调度,进一步包括:
从匹配数据集中优先选择生命周期最小的目标数据包进行匹配,其中,若存在多个所述生命周期最小的目标数据包,则从多个所述生命周期最小的目标数据包中,优先选择与所述匹配数据集的关联程度最低的目标数据包进行匹配,所述匹配数据集由所述至少一个输入端口的虚拟输出队列的队头的目标数据包组成,所述关联程度为与各个生命周期最小的目标数据包的端口相比,所述匹配数据集中端口存在冲突的目标数据包的数量,所述端口包括输入端口和输出端口。
4.根据权利要求1所述的数据调度方法,其特征在于:
对所述未订阅的数据类型对应的待订阅数据包进行筛选的方式包括单个筛选和批量筛选中的至少一种;
若采用所述单个筛选的方式,则对所述未订阅的数据类型对应的待订阅数据包逐个进行判断,若当前的待订阅数据包的数据类型符合所述订阅条件,则将该当前的待订阅数据包作为所述目标数据包,并立即对该当前的待订阅数据包的数据类型进行订阅;
若采用所述批量筛选的方式,则对所述未订阅的数据类型对应的待订阅数据包进行综合判断以查找所述至少一种数据类型,将所述至少一种数据类型对应的待订阅数据包作为所述目标数据包,并对所述至少一种数据类型进行订阅。
5.根据权利要求1所述的数据调度方法,其特征在于,更新相关联的输入端口的第一占用率和相关联的输出端口的第二占用率,进一步包括:
在所述至少一种数据类型中,将相关联的输入端口的第一占用率加上按输入端口对数据类型的周期的倒数进行累加获得的累加值,将相关联的输出端口的第二占用率加上按输出端口对数据类型的周期的倒数进行累加获得的累加值。
6.根据权利要求1所述的数据调度方法,其特征在于,进行所述调度,进一步包括:
初始化各个输入端口和各个输出端口的占用情况为未占用;
获取由所述至少一个输入端口的虚拟输出队列的队头的目标数据包组成的匹配数据集,并从所述匹配数据集中按生命周期从小到大的顺序逐个选择目标数据包作为待匹配数据包;
基于所述占用情况判断所述待匹配数据包对应的输入端口和输出端口是否均未被占用,若是,则形成所述待匹配数据包对应的输入端口和输出端口的匹配,并将所述待匹配数据包对应的输入端口和输出端口的占用情况标记为已占用;并且
在遍历所述匹配数据集后,对已形成匹配的目标数据包进行转发。
7.根据权利要求1所述的数据调度方法,其特征在于,进行所述调度,进一步包括:
初始化端口占用表的表项为未占用和初始化顺序表的表项,其中,所述端口占用表用于表示所述占用情况,所述顺序表初始化为按生命周期从小到大的顺序,存储所述至少一个输入端口的虚拟输出队列的队头的目标数据包的唯一标识;
按存储顺序将所述顺序表中第一个唯一标识对应的目标数据包作为待匹配数据包,基于所述端口占用表判断所述待匹配数据包对应的输入端口和输出端口是否均未被占用;
响应于所述待匹配数据包对应的输入端口和输出端口均未被占用而形成所述待匹配数据包对应的输入端口和输出端口的匹配,并将所述端口占用表中与所述待匹配数据包对应的输入端口和输出端口的表项标记为已占用;
继续将所述顺序表中下一个唯一标识对应的目标数据包作为所述待匹配数据包进行匹配直至遍历所述顺序表;并且
对所述端口占用表中输入端口标记为已占用的表项对应的目标数据包进行转发。
8.根据权利要求1所述的数据调度方法,其特征在于:
所述联网设备是交换机,所述交换机包括交叉开关结构。
9.一种联网设备,其特征在于,所述联网设备包括处理器和存储器,所述处理器执行所述存储器存储的计算机程序以实现如权利要求1-8中任一项所述的数据调度方法。
10.一种非暂态计算机可读存储介质,其特征在于,所述非暂态计算机可读存储介质存储有至少一个指令,所述至少一个指令被处理器执行时实现如权利要求1-8中任一项所述的数据调度方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210259285.5A CN114726804B (zh) | 2022-03-16 | 2022-03-16 | 周期性数据包的数据调度方法、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210259285.5A CN114726804B (zh) | 2022-03-16 | 2022-03-16 | 周期性数据包的数据调度方法、设备及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114726804A true CN114726804A (zh) | 2022-07-08 |
CN114726804B CN114726804B (zh) | 2022-10-18 |
Family
ID=82237715
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210259285.5A Active CN114726804B (zh) | 2022-03-16 | 2022-03-16 | 周期性数据包的数据调度方法、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114726804B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101984713A (zh) * | 2010-10-20 | 2011-03-09 | 中兴通讯股份有限公司 | 一种实现业务数据分流的方法、终端及系统 |
CN109032534A (zh) * | 2018-08-30 | 2018-12-18 | 百度在线网络技术(北京)有限公司 | 一种消息传输方法、装置、设备和介质 |
US20190056978A1 (en) * | 2017-08-15 | 2019-02-21 | Microsoft Technology Licensing, Llc | Subscription based event notifications |
US20200028787A1 (en) * | 2016-12-15 | 2020-01-23 | Telefonaktiebolaget Lm Ericsson (Publ) | Flow control in a virtualized communication network |
US10721187B1 (en) * | 2017-05-18 | 2020-07-21 | Juniper Networks, Inc. | Emulating output queued behavior in a virtual output queue switch |
CN114020483A (zh) * | 2021-09-18 | 2022-02-08 | 广州极飞科技股份有限公司 | 数据传输的方法及装置、无人机控制系统及无人机 |
CN114338625A (zh) * | 2022-01-11 | 2022-04-12 | 平安科技(深圳)有限公司 | 实时通信方法、装置、设备及存储介质 |
-
2022
- 2022-03-16 CN CN202210259285.5A patent/CN114726804B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101984713A (zh) * | 2010-10-20 | 2011-03-09 | 中兴通讯股份有限公司 | 一种实现业务数据分流的方法、终端及系统 |
US20200028787A1 (en) * | 2016-12-15 | 2020-01-23 | Telefonaktiebolaget Lm Ericsson (Publ) | Flow control in a virtualized communication network |
US10721187B1 (en) * | 2017-05-18 | 2020-07-21 | Juniper Networks, Inc. | Emulating output queued behavior in a virtual output queue switch |
US20190056978A1 (en) * | 2017-08-15 | 2019-02-21 | Microsoft Technology Licensing, Llc | Subscription based event notifications |
CN109032534A (zh) * | 2018-08-30 | 2018-12-18 | 百度在线网络技术(北京)有限公司 | 一种消息传输方法、装置、设备和介质 |
CN114020483A (zh) * | 2021-09-18 | 2022-02-08 | 广州极飞科技股份有限公司 | 数据传输的方法及装置、无人机控制系统及无人机 |
CN114338625A (zh) * | 2022-01-11 | 2022-04-12 | 平安科技(深圳)有限公司 | 实时通信方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN114726804B (zh) | 2022-10-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107959636B (zh) | Bgp消息的发送方法及装置 | |
US6977935B2 (en) | Two-dimensional pipelined scheduling technique | |
US7606250B2 (en) | Assigning resources to items such as processing contexts for processing packets | |
CN113890860A (zh) | 用于支持时延受限的数据交换的方法、设备及介质 | |
EP1491011B9 (en) | Packet scheduling mechanism | |
CN111049667B (zh) | 一种时间触发以太网通信任务离线调度优化方法 | |
US7480308B1 (en) | Distributing packets and packets fragments possibly received out of sequence into an expandable set of queues of particular use in packet resequencing and reassembly | |
US8588239B2 (en) | Relaying apparatus and packet relaying apparatus | |
CN113821516A (zh) | 一种基于虚拟队列的时间敏感网络交换架构 | |
EP1488600B1 (en) | Scheduling using quantum and deficit values | |
US20060168405A1 (en) | Sharing memory among multiple information channels | |
CN114726804B (zh) | 周期性数据包的数据调度方法、设备及介质 | |
US7350208B1 (en) | Method and apparatus for scheduling using a resource variable decreased by amounts corresponding to the efficiency of the resource | |
CN114884893B (zh) | 一种转发和控制可定义的协同流量调度方法与系统 | |
JP2009260653A (ja) | 中継装置およびパケット中継方法 | |
CN102594670B (zh) | 多端口多流的调度方法、装置及设备 | |
CN112615796B (zh) | 一种兼顾存储利用率与管理复杂度的队列管理系统 | |
US9143453B2 (en) | Relay apparatus and buffer control method | |
KR100636272B1 (ko) | 포트 스케쥴링 장치 및 그 방법 | |
CN115835402A (zh) | 基于数据帧动态优先级的时间敏感网络流调度方法及装置 | |
CN117749721A (zh) | 用于时间触发业务的静态调度表生成与优化方法和系统 | |
JP2014121040A (ja) | 情報処理方法、情報処理回路、及び情報処理装置 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |