发送报文的方法、第一网络设备及计算机可读存储介质转让专利

申请号 : CN201810075675.0

文献号 : CN110086728B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 赵岩李楠

申请人 : 华为技术有限公司

摘要 :

本申请提供了一种发送报文的方法、第一网络设备及计算机可读存储介质。所述方法包括:第一网络设备从第二网络设备接收业务流中的第一报文,所述第一报文包括第一时间标签;所述第一网络设备计算第二时间,将所述第一报文中的所述第一时间标签替换为第二时间标签以获得第二报文,将所述第二报文入队到所述第一网络设备的第二队列中,所述第二时间标签指示允许所述第二报文离开所述第二队列的所述第二时间;所述第一网络设备从所述第二队列中出队所述第二报文,向所述第三网络设备发送所述第二报文。本申请提供的技术方案中第一网络设备既可以降低业务流中报文的抖动,更贴合实际传输状况,又可以降低流量整形的复杂度。

权利要求 :

1.一种发送报文的方法,其特征在于,包括:

第一网络设备从第二网络设备接收业务流中的第一报文,所述第一报文包括第一时间标签,所述第一时间标签指示允许所述第一报文离开所述第二网络设备的第一队列的第一时间;

所述第一网络设备计算第二时间,将所述第一报文中的所述第一时间标签替换为第二时间标签以获得第二报文,将所述第二报文入队到所述第一网络设备的第二队列中,所述第二时间标签指示允许所述第二报文离开所述第二队列的所述第二时间;

所述第一网络设备从所述第二网络设备接收所述业务流中的第三报文,所述第三报文包括第三时间标签,所述第三时间标签指示允许所述第三报文离开所述第二网络设备的所述第一队列的第三时间;

所述第一网络设备计算第四时间,将所述第三报文中的所述第三时间标签替换为第四时间标签以获得第四报文,将所述第四报文入队到所述第一网络设备的所述第二队列中,所述第四时间标签指示允许所述第四报文离开所述第二队列的所述第四时间,所述第四时间与所述第二时间之差不小于所述第二队列的最大传输延时,所述第二队列的最大传输延时是所有入队过所述第二队列的所述业务流中的报文从所述第二网络设备到所述第一网络设备的传输延时中最大的传输延时;

所述第一网络设备从所述第二队列中出队所述第二报文,向第三网络设备发送所述第二报文,其中从所述第二队列中出队所述第二报文的时间不早于所述第二时间;

所述第一网络设备从所述第二队列中出队所述第四报文,向所述第三网络设备发送所述第四报文,其中从所述第二队列中出队所述第四报文的时间不早于所述第四时间。

2.如权利要求1所述的方法,其特征在于,所述计算第四时间,包括:

将预存储的传输延时与所述第三报文的传输延时中较大者作为所述最大传输延时,所述预存储的传输延时是所有在所述第三报文之前入队过所述第二队列的所述业务流中的报文从所述第二网络设备到所述第一网络设备的传输延时中最大的传输延时,所述第三报文的传输延时是所述第三报文从所述第二网络设备到所述第一网络设备的传输延时;

将所述预存储的传输延时的值更新为所述最大传输延时的值;

计算整形延时,所述整形延时是所述最大传输延时与所述第三报文的传输延时之差;

根据所述整形延时和当前时间计算所述第四时间,所述当前时间是所述第一网络设备计算所述第四时间时的时间,所述第四时间与所述当前时间之差不小于所述整形延时。

3.如权利要求2所述的方法,其特征在于,所述第三报文的传输延时是所述当前时间与所述第三时间之差。

4.如权利要求1至3任一项所述的方法,其特征在于,所述业务流包括至少一个子流,所述至少一个子流包括所述第一报文和所述第三报文,所述第三时间与所述第一时间之差不小于在所述至少一个子流的限制速率下所述第一报文从所述第二网络设备到所述第一网络设备的预计传输时间。

5.如权利要求1至3任一项所述的方法,其特征在于,所述第三时间与所述第一时间之差不小于所述第一队列的最大传输延时,所述第一队列的最大传输延时是所有入队过所述第一队列的所述业务流中的报文从所述第二网络设备的上一跳网络设备到所述第二网络设备的传输延时中最大的传输延时。

6.如权利要求4所述的方法,其特征在于,所述第三时间与所述第一时间之差不小于所述第一队列的最大传输延时,所述第一队列的最大传输延时是所有入队过所述第一队列的所述业务流中的报文从所述第二网络设备的上一跳网络设备到所述第二网络设备的传输延时中最大的传输延时。

7.一种第一网络设备,其特征在于,包括:

输入接口模块,用于从第二网络设备接收业务流中的第一报文,所述第一报文包括第一时间标签,所述第一时间标签指示允许所述第一报文离开所述第二网络设备的第一队列的第一时间;

报文处理模块:用于计算第二时间,将所述第一报文中的所述第一时间标签替换为第二时间标签以获得第二报文;

流量管理模块:用于将所述第二报文入队到所述第一网络设备的第二队列中,所述第二时间标签指示允许所述第二报文离开所述第二队列的所述第二时间;

所述输入接口模块,还用于从所述第二网络设备接收所述业务流中的第三报文,所述第三报文包括第三时间标签,所述第三时间标签指示允许所述第三报文离开所述第二网络设备的所述第一队列的第三时间;

所述报文处理模块,还用于计算第四时间,将所述第三报文中的所述第三时间标签替换为第四时间标签以获得第四报文;

所述流量管理模块,还用于将所述第四报文入队到所述第一网络设备的所述第二队列中,所述第四时间标签指示允许所述第四报文离开所述第二队列的所述第四时间,所述第四时间与所述第二时间之差不小于所述第二队列的最大传输延时,所述第二队列的最大传输延时是所有入队过所述第二队列的所述业务流中的报文从所述第二网络设备到所述第一网络设备的传输延时中最大的传输延时;

输出接口模块,用于从所述第二队列中出队所述第二报文,向第三网络设备发送所述第二报文,其中从所述第二队列中出队所述第二报文的时间不早于所述第二时间;

输入接口模块,还用于从所述第二队列中出队所述第四报文,向所述第三网络设备发送所述第四报文,其中从所述第二队列中出队所述第四报文的时间不早于所述第四时间。

8.如权利要求7所述的第一网络设备,其特征在于,所述计算第四时间,包括:

将预存储的传输延时与所述第三报文的传输延时中较大者作为所述最大传输延时,所述预存储的传输延时是所有在所述第三报文之前入队过所述第二队列的所述业务流中的报文从所述第二网络设备到所述第一网络设备的传输延时中最大的传输延时,所述第三报文的传输延时是所述第三报文从所述第二网络设备到所述第一网络设备的传输延时;

将所述预存储的传输延时的值更新为所述最大传输延时的值;

计算整形延时,所述整形延时是所述最大传输延时与所述第三报文的传输延时之差;

根据所述整形延时和当前时间计算所述第四时间,所述当前时间是所述计算所述第四时间时的时间,所述第四时间与所述当前时间之差不小于所述整形延时。

9.如权利要求8所述的第一网络设备,其特征在于,所述第三报文的传输延时是所述当前时间与所述第三时间之差。

10.如权利要求7至9任一项所述的第一网络设备,其特征在于,所述业务流包括至少一个子流,所述至少一个子流包括所述第一报文和所述第三报文,所述第三时间与所述第一时间之差不小于在所述至少一个子流的限制速率下所述第一报文从所述第二网络设备到所述第一网络设备的预计传输时间。

11.如权利要求7至9任一项所述的第一网络设备,其特征在于,所述第三时间与所述第一时间之差不小于所述第一队列的最大传输延时,所述第一队列的最大传输延时是所有入队过所述第一队列的所述业务流中的报文从所述第二网络设备的上一跳网络设备到所述第二网络设备的传输延时中最大的传输延时。

12.如权利要求10所述的第一网络设备,其特征在于,所述第三时间与所述第一时间之差不小于所述第一队列的最大传输延时,所述第一队列的最大传输延时是所有入队过所述第一队列的所述业务流中的报文从所述第二网络设备的上一跳网络设备到所述第二网络设备的传输延时中最大的传输延时。

13.一种通信系统,包括第一网络设备、第二网络设备和第四网络设备,其特征在于,所述第一网络设备用于执行权利要求1至6中任一项所述方法,所述业务流包括至少一个子流,所述至少一个子流包括所述第一报文和所述第三报文;

所述第一网络设备从所述第二网络设备接收所述至少一个子流中的所述第一报文之前,所述第二网络设备从所述第四网络设备接收所述至少一个子流中的第五报文,所述第五报文包括第五时间标签,所述第五时间标签指示允许所述第五报文离开所述第四网络设备的第三队列的第五时间;

所述第二网络设备计算所述第一时间,将所述第五报文中的所述第五时间标签替换为所述第一时间标签以获得所述第一报文,将所述第一报文入队到所述第二网络设备的所述第一队列中;

所述第一网络设备从所述第二网络设备接收所述至少一个子流中的所述第三报文之前,所述第二网络设备从所述第四网络设备接收所述至少一个子流中的第六报文,所述第六报文包括第六时间标签,所述第六时间标签指示允许所述第六报文离开所述第四网络设备的所述第三队列的第六时间;

所述第二网络设备计算所述第三时间,将所述第六报文中的所述第六时间标签替换为所述第三时间标签以获得所述第三报文,将所述第三报文入队到所述第二队列中,所述第三时间与所述第一时间之差不小于在所述至少一个子流的限制速率下所述第一报文从所述第二网络设备到所述第一网络设备的预计传输时间;

所述第二网络设备从所述第一队列中出队所述第一报文,向所述第一网络设备发送所述第一报文,其中从所述第一队列中出队所述第一报文的时间不早于所述第一时间;

所述第二网络设备从所述第一队列中出队所述第三报文,向所述第一网络设备发送所述第三报文,其中从所述第一队列中出队所述第三报文的时间不早于所述第三时间。

14.一种网络设备,其特征在于,包括存储器和处理器,

所述存储器用于存储计算机指令;

所述处理器用于执行所述存储器中存储的计算机指令,当所述计算机指令被执行时,所述处理器用于执行如权利要求1至6中任一项所述的方法。

15.一种计算机可读存储介质,其特征在于,包括计算机指令,当所述计算机指令在计算机上被执行时,使得所述计算机执行如权利要求1至6中任一项所述的方法。

说明书 :

发送报文的方法、第一网络设备及计算机可读存储介质

技术领域

[0001] 本申请涉及通信领域,并且更具体地,涉及一种发送报文的方法、第一网络设备及计算机可读存储介质。

背景技术

[0002] 当业务流进入网络后,在网络设备中会由于业务流汇聚等原因而产生突发,突发的业务流会以高于该业务流的限制速率在网络中发送。突发的业务流之间会相互影响,导致业务流中报文延迟的不确定性。因此,需要在网络设备中对业务流进行整形,消除或者抑制业务流的突发。
[0003] 在网络设备中,流量整形是一种根据设定参数(例如业务流限制速率)对经过整形器的业务流进行整形的技术。传统的流量整形方法中,聚合整形是将多个业务流汇聚到一个流量整形队列,整形器根据同一个预设的业务流限制速率对该流量整形队列中的所有业务流进行整形,由于各个业务流有自身的传输状况,该聚合整形算法无法根据网络设备上实际的传输状况实现整形。逐流限速整形是每个业务流对应一个流量整形队列和整形器,虽然可以实现对每个业务流的分别整形,但是当业务流数量很多时,流量整形的复杂度较高,难以实现和维护。
[0004] 因此,用较低的复杂度实现对每个业务流的分别整形成为亟需解决的问题。

发明内容

[0005] 本申请提供一种发送报文的方法、第一网络设备及计算机可读存储介质,既可以降低业务流中报文的抖动,更贴合实际传输状况,又可以降低流量整形的复杂度。
[0006] 第一方面,提供了一种发送报文的方法,包括:第一网络设备从第二网络设备接收业务流中的第一报文,所述第一报文包括第一时间标签,所述第一时间标签指示允许所述第一报文离开所述第二网络设备的第一队列的第一时间;所述第一网络设备计算第二时间,将所述第一报文中的所述第一时间标签替换为第二时间标签以获得第二报文,将所述第二报文入队到所述第一网络设备的第二队列中,所述第二时间标签指示允许所述第二报文离开所述第二队列的所述第二时间;所述第一网络设备从所述第二网络设备接收业务流中的第三报文,所述第三报文包括第三时间标签,所述第三时间标签指示允许所述第三报文离开所述第二网络设备的所述第一队列的第三时间;所述第一网络设备计算第四时间,将所述第三报文中的所述第三时间标签替换为第四时间标签以获得第四报文,将所述第四报文入队到所述第一网络设备的所述第二队列中,所述第四时间标签指示允许所述第四报文离开所述第二队列的所述第四时间,所述第四时间与所述第二时间之差不小于所述第二队列的最大传输延时,所述第二队列的最大传输延时是所有入队过所述第二队列的所述业务流中的报文从所述第二网络设备到所述第一网络设备的传输延时中最大的传输延时;所述第一网络设备从所述第二队列中出队所述第二报文,向所述第三网络设备发送所述第二报文,其中从所述第二队列中出队所述第二报文的时间不早于所述第二时间;所述第一网络设备从所述第二队列中出队所述第四报文,向所述第三网络设备发送所述第四报文,其中从所述第二队列中出队所述第四报文的时间不早于所述第四时间。
[0007] 上述技术方案中,第一网络设备可以将经过同一个流量整形队列的至少一个子流视为同一个业务流,基于最大化传输延时,对该业务流通过归一化延时进行整形。该流量整形方式降低了业务流中报文的抖动,更贴合实际传输状况,又使得流量整形队列和整形器的数量摆脱对业务流中子流数量的依赖,降低了流量整形的复杂度。
[0008] 在一种可能的实现方式中,所述计算第四时间,包括:将预存储的传输延时与所述第三报文的传输延时中较大者作为所述最大传输延时,所述预存储的传输延时是所有在所述第三报文之前入队过所述第二队列的所述业务流中的报文从所述第二网络设备到所述第一网络设备的传输延时中最大的传输延时,所述第三报文的传输延时是所述第三报文从所述第二网络设备到所述第一网络设备的传输延时;将所述预存储的传输延时的值更新为所述最大传输延时的值;计算整形延时,所述整形延时是所述最大传输延时与所述第三报文的传输延时之差;根据所述整形延时和当前时间计算所述第四时间,所述当前时间是所述第一网络设备计算所述第四时间时的时间,所述第四时间与所述当前时间之差不小于所述整形延时。
[0009] 上述技术方案中,在报文传输过程中持续更新最大传输延时,可以对该业务流通过归一化延时进行整形。该流量整形方式降低了业务流中报文的抖动,更贴合实际传输状况,又可以使得流量整形队列和整形器的数量摆脱对业务流中子流数量的依赖,降低了流量整形的复杂度。
[0010] 在一种可能的实现方式中,所述第三报文的传输延时是所述当前时间与所述第三时间之差。
[0011] 上述技术方案中,选用当前时间(即所述计算所述第四时间时的时间)与第三时间之差,可以更准确反映第三报文的延时状况。
[0012] 在一种可能的实现方式中,所述业务流包括至少一个子流,所述至少一个子流包括所述第一报文和所述第三报文,所述第三时间与所述第一时间之差不小于在所述至少一个子流的限制速率下所述第一报文从所述第二网络设备到所述第一网络设备的预计传输时间。
[0013] 上述技术方案中,在第一网络设备从第二网络设备接收到所述业务流中的一个子流中的第一报文和第三报文之前,第一报文和第三报文在第二网络设备中已经执行基于逐流限速计算法的流量整形。可以实现对业务流中的报文进行分别整形的同时,又可以使得流量整形队列和整形器的数量摆脱对子流数量的依赖,降低了流量整形的复杂度。
[0014] 在一种可能的实现方式中,所述第三时间与所述第一时间之差不小于所述第一队列的最大传输延时,所述第一队列的最大传输延时是所有入队过所述第一队列的所述业务流中的报文从所述第二网络设备的上一跳网络设备到所述第二网络设备的传输延时中最大的传输延时。
[0015] 上述技术方案中,在第一网络设备从第二网络设备接收到所述业务流中的第一报文和第三报文之前,第一报文和第三报文在第二网络设备中已经执行基于降抖动计算法的流量整形。该技术方案中第一网络设备执行降抖动流量整形,可以降低报文从上一跳网络设备(即第二网络设备)到该第一网络设备之间传输时新产生的抖动。
[0016] 第二方面,提供了一种第一网络设备,包括:输入接口模块,用于从第二网络设备接收业务流中的第一报文,所述第一报文包括第一时间标签,所述第一时间标签指示允许所述第一报文离开所述第二网络设备的第一队列的第一时间;报文处理模块:用于计算第二时间,将所述第一报文中的所述第一时间标签替换为第二时间标签以获得第二报文;流量管理模块:用于将所述第二报文入队到所述第一网络设备的第二队列中,所述第二时间标签指示允许所述第二报文离开所述第二队列的所述第二时间;输入接口模块,还用于从所述第二网络设备接收业务流中的第三报文,所述第三报文包括第三时间标签,所述第三时间标签指示允许所述第三报文离开所述第二网络设备的所述第一队列的第三时间;报文处理模块,还用于计算第四时间,将所述第三报文中的所述第三时间标签替换为第四时间标签以获得第四报文;流量管理模块,还用于将所述第四报文入队到所述第一网络设备的所述第二队列中,所述第四时间标签指示允许所述第四报文离开所述第二队列的所述第四时间,所述第四时间与所述第二时间之差不小于所述第二队列的最大传输延时,所述第二队列的最大传输延时是所有入队过所述第二队列的所述业务流中的报文从所述第二网络设备到所述第一网络设备的传输延时中最大的传输延时;输出接口模块,用于从所述第二队列中出队所述第二报文,向所述第三网络设备发送所述第二报文,其中从所述第二队列中出队所述第二报文的时间不早于所述第二时间;输入接口模块,还用于从所述第二队列中出队所述第四报文,向所述第三网络设备发送所述第四报文,其中从所述第二队列中出队所述第四报文的时间不早于所述第四时间。
[0017] 在一种可能的实现方式中,所述计算第四时间,包括:将预存储的传输延时与所述第三报文的传输延时中较大者作为所述最大传输延时,所述预存储的传输延时是所有在所述第三报文之前入队过所述第二队列的所述业务流中的报文从所述第二网络设备到所述第一网络设备的传输延时中最大的传输延时,所述第三报文的传输延时是所述第三报文从所述第二网络设备到所述第一网络设备的传输延时;将所述预存储的传输延时的值更新为所述最大传输延时的值;计算整形延时,所述整形延时是所述最大传输延时与所述第三报文的传输延时之差;根据所述整形延时和当前时间计算所述第四时间,所述当前时间是计算所述第四时间时的时间,所述第四时间与所述当前时间之差不小于所述整形延时。
[0018] 在一种可能的实现方式中,所述第三报文的传输延时是所述当前时间与所述第三时间之差。
[0019] 在一种可能的实现方式中,所述业务流包括至少一个子流,所述至少一个子流包括所述第一报文和所述第三报文,所述第三时间与所述第一时间之差不小于在所述至少一个子流的限制速率下所述第一报文从所述第二网络设备到所述第一网络设备的预计传输时间。
[0020] 在一种可能的实现方式中,所述第三时间与所述第一时间之差不小于所述第一队列的最大传输延时,所述第一队列的最大传输延时是所有入队过所述第一队列的所述业务流中的报文从所述第二网络设备的上一跳网络设备到所述第二网络设备的传输延时中最大的传输延时。
[0021] 第三方面,提供了一种通信系统,包括第一网络设备、第二网络设备和第四网络设备,所述第一网络设备用于执行如上述第一方面或第一方面的任意可能的实现方式中所述的方法,所述业务流包括至少一个子流,所述至少一个子流包括所述第一报文和所述第三报文;所述第一网络设备从所述第二网络设备接收所述至少一个子流中的所述第一报文之前,所述第二网络设备从所述第四网络设备接收所述至少一个子流中的第五报文,所述第五报文包括第五时间标签,所述第五时间标签指示允许所述第五报文离开所述第四网络设备的第三队列的第五时间;所述第二网络设备计算所述第一时间,将所述第五报文中的所述第五时间标签替换为所述第一时间标签以获得所述第一报文,将所述第一报文入队到所述第二网络设备的所述第一队列中;所述第一网络设备从所述第二网络设备接收所述至少一个子流中的所述第三报文之前,所述第二网络设备从所述第四网络设备接收所述至少一个子流中的第六报文,所述第六报文包括第六时间标签,所述第六时间标签指示允许所述第六报文离开所述第四网络设备的所述第三队列的第六时间;所述第二网络设备计算所述第三时间,将所述第六报文中的所述第六时间标签替换为所述第三时间标签以获得所述第三报文,将所述第三报文入队到所述第二队列中,所述第三时间与所述第一时间之差不小于在所述至少一个子流的限制速率下所述第一报文从所述第二网络设备到所述第一网络设备的预计传输时间;所述第二网络设备从所述第一队列中出队所述第一报文,向所述第一网络设备发送所述第一报文,其中从所述第一队列中出队所述第一报文的时间不早于所述第一时间;所述第二网络设备从所述第一队列中出队所述第三报文,向所述第一网络设备发送所述第三报文,其中从所述第一队列中出队所述第三报文的时间不早于所述第三时间。
[0022] 第四方面,提供了一种网络设备,包括存储器和处理器,所述存储器用于存储计算机指令,所述处理器用于执行所述存储器中存储的计算机指令,当所述计算机指令被执行时,所述处理器用于执行如上述第一方面或第一方面的任意可能的实现方式中所述的方法。
[0023] 第五方面,提供了一种计算机可读存储介质,包括计算机指令,当所述计算机指令在计算机上被执行时,使得所述计算机执行如上述第一方面或第一方面的任意可能的实现方式中所述的方法。
[0024] 第六方面,提供了一种包含计算机指令的计算机程序产品,当所述计算机程序产品在计算机上运行时,使得所述计算机执行如上述第一方面或第一方面的任意可能的实现方式中所述的方法。

附图说明

[0025] 图1是本发明实施例提供的网络设备的系统架构示例图。
[0026] 图2是本发明实施例提供的一种通信系统的示意性结构图。
[0027] 图3是本发明实施例提供的发送报文的方法的示意性流程图。
[0028] 图4是本发明实施例提供的网络中的节点的示意性结构图。
[0029] 图5是本发明实施例提供的检验报文合格时间的示意性流程图。
[0030] 图6是图3中的步骤340的一种可能的实现方式的示意性流程图。
[0031] 图7是本发明实施例提供的降抖动计算法的变量示意图。
[0032] 图8是本发明实施例提供的降抖动计算法的示意性计算流程图。
[0033] 图9是本发明实施例提供的逐流限速计算法的示意性流程图。
[0034] 图10是本发明实施例提供的逐流限速计算法的变量示意图。
[0035] 图11是本发明实施例提供的逐流限速计算法的示意性计算流程图。
[0036] 图12是本发明实施例提供的第一网络设备的示意性结构图。
[0037] 图13是本发明实施例提供的网络设备的示意性结构图。

具体实施方式

[0038] 下面将结合附图,对本申请中的技术方案进行描述。
[0039] 图1是可应用于本发明实施例的网络设备的系统架构示例图。如图1(a)所示。所述网络设备可以包括输入接口模块110(例如媒体访问控制(media access control,MAC)模块),报文处理(packet processing,PP)模块120,流量管理(traffic manager,TM)模块130、输出接口模块140(例如媒体访问控制(media access control,MAC)模块)。其中,PP模块120可以用于执行对业务流中的报文进行处理,作为一个示例,可以执行对业务流进行切分并获取各个报文等功能,例如,该PP模块120可以负责对接受到的报文进行解析、分类、转发、查找以及报头处理,该PP模块120还可以根据上述处理结果向TM模块130发送报文的入队请求。TM模块130可以对业务流中的报文进行管理,例如可以对业务流中的报文执行排队、丢弃、调度、分类等功能。输入接口模块110和输出接口模块140也可以集成为一个部件。
PP模块120、TM模块130可以由硬件实现,也可以由硬件结合软件实现。
[0040] 业务流中的报文可以由链路传输至网络设备,该网络设备中的输入接口模块110(也可以称为该网络设备的接收Rx模块)可以接收该报文。然后PP模块120可以对该报文进行解析,随后该报文可以入队(enqueue)到TM模块130中的流量整形队列中等待出队(dequeue)。在业务流中的报文满足出队条件时,整形器可以进行出队使能,随后调度器可以调度该业务流中的报文出队。最后可以由输出接口模块(也可以称为该网络设备的发射Tx模块)140将该报文发送到链路上,并可以传输至传输路径上的下一个网络设备。TM模块130中的整形队列、整形器以及调度器可以由硬件实现,也可以由硬件结合软件实现。
[0041] 可选地,以上业务流可以包括一个或多个子流,该业务流的报文包括该业务流所包括的所有子流的报文。当业务流包括一个子流时,该一个子流可以被视为一个业务流;当业务流包括多个子流时,该多个子流可以被视为一个业务流。例如图1(b)所示,业务流可以包括子流1、子流2和子流3,该业务流的报文可以包括子流1的报文、子流2的报文和子流3的报文。该多个子流可以缓存到相同或不同的整形队列中。该多个子流例如可以具有不同的目的地,网络设备可以根据子流中报文的标识(例如报文的目的地)将报文入队到子流对应的整形队列中。
[0042] 本发明实施例提供了一种发送报文的方法,既可以降低业务流中报文的抖动,更贴合实际传输状况,又可以降低流量整形的复杂度。下面结合图2-图5对本发明实施例进行详细描述。
[0043] 本发明实施例对网络中网络设备的个数以及网络设备之间的连接关系不做具体限定。例如,图2是本发明实施例提供的一种通信系统的示意性结构图。如图2所示,图2所示的通信系统200中可以包括第四网络设备(也可简称为网络设备4)210、第二网络设备(也可简称为网络设备2)220、第一网络设备(也可简称为网络设备1)230、第三网络设备(也可简称为网络设备3)240。其中,第四网络设备可以作为第二网络设备的上一跳网络设备,第二网络设备可以作为第一网络设备的上一跳网络设备,第一网络设备可以作为第三网络设备的上一跳网络设备。
[0044] 本发明实施例对图2中提及到的网络设备的类型不做具体限定,例如可以是交换机、路由器、集线器、网关、网桥、网络接口卡(network interface card,NIC)、无线接入点(wireless access point,WAP)、打印机、调制解调器、光纤收发器以及光缆等。网络设备有时也可称为网络节点(network node)或跳(hop)。
[0045] 图3是本发明实施例提供的发送报文的方法的示意性流程图。图3的方法可以包括步骤310-360,下面分别对步骤310-360进行详细描述。
[0046] 在步骤310中,第一网络设备从第二网络设备接收业务流中的第一报文。
[0047] 本发明实施例中业务流有时也可称为流量(traffic)。
[0048] 可选地,本发明实施例中,业务流可以包括至少一个子流,所述至少一个子流可以包括所述第一报文。在第一网络设备从第二网络设备接收业务流中的第一报文之前,第二网络设备可以先从第四网络设备接收业务流中至少一个子流中的第五报文。所述第五报文包括第五时间标签,所述第五时间标签指示允许所述第五报文离开所述第四网络设备的第三队列的第五时间。第二网络设备可以将该第五时间标签替换为计算出的第一时间,以获得第一报文,并可以将该第一报文入队到第二网络设备的第一队列中。第二网络设备可以从第一队列中出队该第一报文,第二网络设备可以向第一网络设备发送该第一报文,可以使得从该第一队列中出队该第一报文的时间不早于第一时间。
[0049] 本发明实施例中,第一网络设备可以从第二网络设备接收到业务流中的第一报文,该第一报文中可以包括第一时间标签。该第一时间标签可以用于指示为了满足流量整形的限制要求(例如可以是业务流中第一报文所属子流的限制速率),业务流中的第一报文被整形器使能出第二网络设备中的第一队列的第一时间(也可称为第一合格时间(eligible time))。
[0050] 在步骤320中,所述第一网络设备计算第二时间,将所述第一报文中的所述第一时间标签替换为第二时间标签以获得第二报文,将所述第二报文入队到所述第一网络设备的第二队列中。
[0051] 本发明实施例中第一网络设备可以接收到第二网络设备发送的第一报文,第一网络设备可以在将第一报文入队到第一网络设备的第二队列之前,第一网络设备可以计算第二时间。可以将第一时间标签替换为第二时间标签以获得第二报文后,可以将该第二报文入队到第一网络设备的第二队列中。
[0052] 本发明实施例中,该第二时间标签可以用于指示为了满足流量整形的限制要求(例如可以是业务流中第二报文所属子流的限制速率),业务流中的第二报文被整形器视为可以使能出第一网络设备中的第二队列的第二时间(也可称为第二合格时间)。
[0053] 本发明实施例对第一网络设备计算第二时间的模块不做具体限定,可以是网络设备中在TM模块之前的任何可以计算第一报文的合格时间的模块。作为一个示例,计算第一报文的合格时间的功能可以由网络设备中的PP模块来完成。可选地,计算报文的合格时间的功能也可以由TM模块来完成。
[0054] 步骤320中第一网络设备计算第二合格时间的方法也可以称为降抖动计算法。可选地,在一些实施例中,第一网络设备也可以用逐流限速计算法计算第二合格时间。后文会结合具体的实施例对该降抖动计算法以及逐流限速计算法进行详细描述。
[0055] 本发明实施例对上文提及的两种计算第二合格时间的方法的应用场景不做具体限定。参见图4,作为一个示例,可以在网络中的边缘节点和中心节点均选择逐流限速计算法。作为另一个示例,可以在网络中的边缘节点和中心节点均选择降抖动计算法(此时业务流中的子流可以在到达边缘节点进入所述网络前已经利用逐流限速计算法做过整形处理)。作为另一个示例,还可以在网络中的边缘节点(edge node)选择逐流限速计算法,在网络的中心节点(core node)选择降抖动计算法。在前网络设备可以执行逐流限速法,在后设备可以执行降抖动法,可以实现对业务流中的报文进行分别整形的同时实现降抖动,可以使得流量整形队列和整形器的数量摆脱对子流数量的依赖,降低了流量整形的复杂度。例如图2中第二网络设备可以执行逐流限速计算法,第一网络设备可以执行降抖动计算法。上一跳网络设备可以在已经执行了降抖动计算法的基础上,当前设备再次执行降抖动计算法,可以降低报文从上一跳网络设备到当前网络设备之间传输时新产生的抖动,提升整体网络传输的流量整形效果。又例如图2中第四网络设备执行逐流限速计算法,第二网络设备和第一网络设备可以执行降抖动计算法。作为另一个示例,还可以根据用户的实际需求在网络中的任意节点配置不同的计算方法。例如,在某些网络节点,需要保证输出的报文在满足整形约束条件的同时,还需要带有合格时间的标签,则可以选择逐流限速计算法。又如,在某些网络节点,业务流中的子流均满足整形约束并且报文带有合格时间的时间标签,则可以选择降抖动计算法。
[0056] 在步骤330中,第一网络设备从第二网络设备接收业务流中的第三报文。
[0057] 可选地,本发明实施例中,前述至少一个子流,还可以包括所述第三报文。在第一网络设备从第二网络设备接收业务流中至少一个子流中的第三报文之前,第二网络设备可以先从第四网络设备接收业务流中至少一个子流中的第六报文。所述第六报文包括第六时间标签,所述第六时间标签指示允许所述第六报文离开所述第四网络设备的第三队列的第六时间。第二网络设备可以将该第六时间标签替换为计算出的第三时间,以获得第一报文,并可以将该第三报文入队到第二网络设备的第一队列中。第二网络设备可以从第一队列中出队该第三报文,第二网络设备可以向第一网络设备发送该第三报文,可以使得从该第一队列中出队该第三报文的时间不早于第三时间。
[0058] 本发明实施例中,第一网络设备可以从第二网络设备接收到业务流中的第三报文,该第三报文中可以包括第三时间标签。该第三时间标签可以用于指示为了满足流量整形的限制要求(例如可以是业务流中第三报文所属子流的限制速率),业务流中的第三报文被整形器视为可以使能出第二网络设备中的第一队列的第三时间(也可称为第三合格时间)。在步骤340中,第一网络设备计算第四时间,将所述第三报文中的所述第三时间标签替换为第四时间标签以获得第四报文,将所述第四报文入队到所述第一网络设备的所述第二队列中。
[0059] 本发明实施例中,所述第四时间标签指示允许所述第四报文离开所述第二队列的所述第四时间,所述第四时间与所述第二时间之差不小于所述第二队列的最大传输延时,所述第二队列的最大传输延时可以是所有入队过所述第二队列的所述业务流中的报文从所述第二网络设备到所述第一网络设备的传输延时中最大的传输延时。
[0060] 步骤340中计算第四时间与步骤320中计算第二时间对应,具体可参见步骤320的描述,此处不再赘述。
[0061] 在步骤350中,所述第一网络设备从所述第二队列中出队所述第二报文,向所述第三网络设备发送所述第二报文。
[0062] 第一网络设备可以将第二报文从第二队列中使能出队,可以使得第二报文离开流量整形队列的时间不早于第二合格时间。第三网络设备可以接收第一网络设备发送的第二报文,该第二报文中可以包括第二时间标签。该第二时间标签可以用于指示允许该第二报文离开第一网络设备中的第二队列的第二合格时间。
[0063] 第一网络设备从第二队列中出队第二报文可以包括校验第二报文的合格时间的功能,该功能可以由TM模块中的流量整形器执行。下面会结合具体的实施例,对校验第二报文的合格时间的方法进行详细描述。所述第一网络设备从第二队列中出队第二报文后,将第二报文向第三网络设备发送。
[0064] 在步骤360中,所述第一网络设备从所述第二队列中出队所述第四报文,向所述第三网络设备发送所述第四报文。
[0065] 步骤360与步骤350对应,具体可参见步骤350的描述,此处不再赘述。
[0066] 本发明实施例中,第一网络设备可以将经过同一个流量整形队列的至少一个子流视为同一个业务流,基于最大化传输延时,对该业务流通过归一化延时进行整形。该流量整形方式降低了业务流中报文的抖动,更贴合实际传输状况,又使得流量整形队列和整形器的数量摆脱对业务流中子流数量的依赖,降低了流量整形的复杂度。
[0067] 下面结合具体的例子,详细描述本发明实施例提及的校验报文的合格时间的方法。应注意,图5的例子仅仅是为了帮助本领域技术人员理解本发明实施例,而非要将本发明实施例限于所示例的具体数值或具体场景。本领域技术人员根据所给出的图5的例子,显然可以进行各种等价的修改或变化,这样的修改或变化也落入本发明实施例的范围内。
[0068] 图5是本发明实施例提供的检验报文合格时间的示意性流程图。参见图5,报文A可以定义如下变量:
[0069] Tel:报文A在当前网络设备(当前跳,例如第一网络设备)中的合格时间;
[0070] Tcur:(current time)当前时间。
[0071] 图5的流程可以包括步骤510-步骤540,下面对这些步骤进行详细描述。
[0072] 在步骤510中:输入业务流中的报文A(第n个报文),报文A携带的时间标签中记录着该报文在当前网络设备(当前跳)中的合格时间。
[0073] 在步骤520中:比较当前时间和报文A在当前网络设备中的合格时间的大小关系,控制报文A离开流量整形队列的时间。如果报文A的当前时间大于或等于该合格时间,则转至步骤530。如果报文A的当前时间小于该合格时间,继续比较报文A的当前时间和报文A在当前网络设备中的合格时间的大小关系。
[0074] 在步骤530中:报文A满足整形约束条件,可以被TM模块中的整形器使能可以离开报文A对应的流量整形队列。
[0075] 在步骤540中:输出带有时间标签的报文A(在时间标签内记录报文A在当前网络设备中的合格时间Tel)。
[0076] 本发明实施例中,第一网络设备可以将经过同一个流量整形队列的至少一个子流视为同一个业务流,基于最大化传输延时,对该业务流通过归一化延时进行整形。该流量整形方式降低了业务流中报文的抖动,更贴合实际传输状况,又使得流量整形队列和整形器的数量摆脱对业务流中子流数量的依赖,降低了流量整形的复杂度。
[0077] 图6是图3中的步骤340的一种可能的实现方式的示意性流程图,图6的方法也可以称为降抖动计算法(通过降抖动计算法计算第四合格时间)。图6的方法可以包括步骤610-640,下面分别对步骤610-640进行详细描述。
[0078] 在步骤610中,将预存储的传输延时与所述第三报文的传输延时中较大者作为所述最大传输延时。
[0079] 本发明实施例中,所述预存储的传输延时可以是所有在所述第三报文之前入队过所述第二队列的所述业务流中的报文从所述第二网络设备到所述第一网络设备的传输延时中最大的传输延时。所述第三报文的传输延时例如可以是所述第三报文从所述第二网络设备到所述第一网络设备的传输延时。
[0080] 本发明实施例中确定第三报文的传输延时的具体实现方式有多种,可以是任何指示第三报文从第二网络设备到第一网络设备之间的传输时延,本发明实施例对此不做具体限定。例如,第三报文的传输延时可以是当前时间与第三合格时间之间的差值。其中,当前时间可以是第一网络设备计算第四合格时间时的时间。
[0081] 本发明实施例中,选用第三报文的传输延时选用当前时间(即计算第四时间时的时间)与第三时间之差,可以更准确反映第三报文的延时状况。
[0082] 在步骤620中,将所述预存储的传输延时的值更新为所述最大传输延时的值。
[0083] 本发明实施例中,可以将预存储的传输延时的值更新为所述最大传输延时的值,并可以保存,以便于下一个报文进行比较和计算。由此,第一网络设备可以持续记录所有入队过第一网络设备上的第二队列的所述业务流中的报文的传输延时(从第二网络设备到第一网络设备的传输延时)中最大的传输延时。
[0084] 在步骤630中,计算整形延时,所述整形延时是所述最大传输延时与所述第三报文的传输延时之差。
[0085] 本发明实施例中,该整形延时可以为该第四报文在该第一网络设备中需要调整的时间长度。也就是说,第四报文在第一网络设备中可以根据第三报文的传输延时与预先获取的第三报文的最大传输延时之间的时间间隔确定该第四报文需要调整的时间长度。
[0086] 在步骤640中,根据所述整形延时和当前时间计算所述第四时间,所述当前时间是所述第一网络设备计算所述第四时间时的时间,所述第四时间与所述当前时间之差不小于所述整形延时。
[0087] 应理解,如果第三报文的传输延时小于最大传输延时(即第三报文从第二网络设备到第一网络设备所花费的时间少于最大传输延时,此时需要将第三报文的合格时间向后调整,延迟第三报文向后发送的时间以便降低抖动),可以根据整形延时和当前时间(即第一网络设备计算所述第四时间时的时间),计算出第四时间(第四时间指示第四报文可以离开第二队列的时间),可以使得第四时间与所述当前时间之差不小于所述整形延时(即可以将报文的合格时间向后调整,使得合格时间等于或晚于当前时间与需要调整的时间长度之和)。由此可以将整形队列中的业务流的报文的传输延时都调整到最大传输延时,可以实现延时归一化,降低报文传输的抖动。
[0088] 本发明实施例提供的降抖动计算法中,第一网络设备中的流量整形队列和整形器的数量可以不依赖于进入第一网络设备的业务流中子流的数量。作为一个示例,可以为该业务流配置一个整形队列和一个整形器,业务流中的子流使用同一个整形队列和整形器。同样地,第一网络设备还可以为另一个业务流设置另一个整形队列和另一个整形器。该另一个业务流例如可以与前一个业务流具有不同的上一跳设备或是不同的下一跳设备。
[0089] 本发明实施例中,在报文传输过程中持续更新最大传输延时,可以对该业务流通过归一化延时进行整形。该流量整形方式降低了业务流中报文的抖动,更贴合实际传输状况,又可以使得流量整形队列和整形器的数量摆脱对业务流中子流数量的依赖,降低了流量整形的复杂度。
[0090] 下面结合具体例子,更加详细地描述本发明实施例提及的降抖动计算法。应注意,图7-图8的例子仅仅是为了帮助本领域技术人员理解本发明实施例,而非要将本发明实施例限于所示例的具体数值或具体场景。本领域技术人员根据所给出的图7-图8的例子,显然可以进行各种等价的修改或变化,这样的修改或变化也落入本发明实施例的范围内。
[0091] 图7是本发明实施例提供的降抖动计算法的变量示意图,如图7所示,在相邻的网络设备2(当前网络设备)和网络设备1(当前网络设备的前一跳)中,报文A(第n个报文)可以定义如下变量:
[0092] Dhop:报文A的每跳延迟:时间区间起点是报文A在网络设备1的合格时间t2,时间区间的终点是报文A在网络设备2的合格时间t5;
[0093] Dcon:报文A的传输延时:时间区间起点是报文A在网络设备1的合格时间t2,时间区间的终点是报文A在网络设备2的当前时间t4(计算t5时的时间);
[0094] Ds:报文A的延迟时间(报文A在网络设备2中为了满足报文A所在的业务流的子流的限制速率(例如子流的限制速率是20兆比特每秒(Mbits/s))的要求需要延迟的时间);
[0095] Dmax:网络设备2计算报文A合格时间的模块中,业务流中的报文A之前的入队过该整形队列的所有报文的传输延时(Dcon)的最大值;
[0096] Tcur:(current time)当前时间(t4);
[0097] Tel:报文在当前网络设备中的合格时间;
[0098] Timestamp:时间标签。
[0099] 参见图7,可以获取报文A在网络设备1到网络设备2之间的传输延时Dcon(t4-t2),并且可以根据报文A之前的所有报文的传输延时的最大值Dmax与报文A的传输延时Dcon(t4-t2)之间的时间间隔,将报文A在网络设备2的当前时间t4延迟Ds(t5-t4),可以得到报文A在网络设备2的合格时间t5。
[0100] 降抖动法的计算流程参见图8,图8的流程可以包括步骤810-步骤870,下面对这些步骤进行详细描述。
[0101] 在步骤810中:输入业务流中的报文A,报文A携带的时间标签中记录着该报文在上一跳网络设备中的合格时间。
[0102] 在步骤820中:读取报文A的时间标签中的合格时间,并赋值给变量Tel。
[0103] 在步骤830中:测量报文A的传输延时Dcon=Tcur-Tel。
[0104] 在步骤840中:更新报文的传输延时的最大值Dmax=max{Dmax,Dcon}。
[0105] 在步骤850中:计算报文A的延迟时间Ds=Dmax-Dcon。
[0106] 在步骤860中:更新报文A的合格时间和时间标签Timestamp=Tel=Tcur+Ds。
[0107] 在步骤870中:输出带有时间标签的报文A(在时间标签内记录报文A在网络设备2中的合格时间Tel)。
[0108] 可选地,在一些实施例中,所述第三时间与所述第一时间之差不小于所述第一队列的最大传输延时,所述第一队列的最大传输延时是所有入队过所述第一队列的所述业务流中的报文从所述第二网络设备的上一跳网络设备到所述第二网络设备的传输延时中最大的传输延时(相当于第一报文和第三报文在第一网络设备中已经通过降抖动计算法进行了流量整形)。
[0109] 本发明实施例中,在第一网络设备从第二网络设备接收到所述业务流中的第一报文和第三报文之前,第一报文和第三报文在第二网络设备中已经执行基于降抖动计算法的流量整形。该技术方案中第一网络设备执行降抖动流量整形,可以降低报文从上一跳网络设备(即第二网络设备)到该第一网络设备之间传输时新产生的抖动。
[0110] 可选地,在一些实施例中,所述业务流包括至少一个子流,所述至少一个子流包括所述第一报文和所述第三报文,所述第三时间与所述第一时间之差不小于在所述第一报文和第三报文所在子流的限制速率下所述第一报文从所述第二网络设备到所述第一网络设备的预计传输时间(相当于一个子流中的第一报文和第三报文在第一网络设备中已经通过逐流限速计算法进行了流量整形)。
[0111] 本发明实施例中,在第一网络设备从第二网络设备接收到所述业务流中的一个子流中的第一报文和第三报文之前,第一报文和第三报文在第二网络设备中已经执行基于逐流限速计算法的流量整形。可以实现对业务流中的报文进行分别整形的同时,又可以使得流量整形队列和整形器的数量摆脱对子流数量的依赖,降低了流量整形的复杂度。
[0112] 本发明实施例中,第一网络设备可以在接收第二网络设备发送的第一报文和第三报文之前,第二网络设备还可以接收第四网络设备发送的第五报文以及第六报文,第二网络设备可以使用逐流限速计算法对第五报文以及第六报文进行整形处理,以得到第一报文的第一合格时间以及第三报文的第三合格时间。
[0113] 图9是本发明实施例提供的逐流限速计算法的一种可能的实现方式的示意性流程图,图9的方法可以包括步骤910-930,下面分别对步骤910-930进行详细描述。
[0114] 本发明实施例的提及的逐流限速计算法中,网络设备接收到的报文可以包括时间标签,也可以不包括时间标签。当包括时间标签时,网络设备在计算出新合格时间后,用指示新合格时间的新时间标签替换报文中包括的原时间标签以获得向下一跳网络设备发送的报文。当不包括时间标签时,网络设备在计算出新合格时间后,将指示新合格时间的新时间标签添加到报文中以获得向下一跳网络设备发送的报文。
[0115] 应理解,业务流可以包括至少一个子流,网络设备可以在执行逐流限速计算法时,可以针对业务流中的每一个子流设置一个整形队列和一个整形器,以便分别根据每个子流的限制速率对每个子流进行流量整形。
[0116] 在步骤910中,第二网络设备从第四网络设备接收所述至少一个子流中的第五报文。
[0117] 本发明实施例中,在第一网络设备从所述第二网络设备接收至少一个子流中的所述第一报文之前,第二网络设备可以先从第四网络设备接收该至少一个子流中的第五报文。该第五报文可以包括第五时间标签,该第五时间标签指示允许该第五报文离开该第四网络设备中的第三队列的第五时间。
[0118] 在步骤920中,所述第二网络设备计算所述第一时间,将所述第五报文中的所述第五时间标签替换为所述第一时间标签以获得所述第一报文,将所述第一报文入队到所述第二网络设备的所述第一队列中。
[0119] 本发明实施例中,第二网络设备可以接收到第四网络设备发送的第五报文,第二网络设备可以在将第五报文入队到第二网络设备的第一队列之前,第二网络设备可以计算第一时间。可以将第五时间标签替换为第一时间标签以获得第一报文后,可以将该第一报文入队到第二网络设备的第一队列中。
[0120] 在步骤930中,第二网络设备从第四网络设备接收所述至少一个子流中的第六报文。
[0121] 本发明实施例中,在第一网络设备从所述第二网络设备接收该至少一个子流中的所述第三报文之前,第二网络设备可以先从第四网络设备接收该至少一个子流中的第六报文。该第六报文可以包括第六时间标签,该第六时间标签指示允许该第六报文离开该第四网络设备中的第三队列的第六时间。
[0122] 本发明实施例中,第二网络设备从第四网络设备接收至少一个子流中的第五报文对应的第五时间与第六报文对应的第六时间之差不小于在所述至少一个子流的限制速率下该第五报文从所述第四网络设备到所述第二网络设备的预计传输时间。换句话说,对于同一个子流中的第五报文和第六报文,可以测量该第五报文对应的第五时间与该第六报文对应的第六时间之间的时间间隔。如果该时间间隔小于在该子流的限制速率下该第五报文从所述第四网络设备到所述第二网络设备的预计传输时间,可以调整该第六时间使得第六时间与第五时间之间的时间间隔大于第五报文在该子流的限制速率下从第四网络设备到第二网络设备的预计传输时间(此时,第五报文和第六报文可以满足该子流的限制速率)。
[0123] 在步骤940中,所述第二网络设备计算所述第三时间,将所述第六报文中的所述第六时间标签替换为所述第二时间标签以获得所述第二报文,将所述第二报文入队到所述第二网络设备的所述第一队列中。
[0124] 本发明实施例中,第二网络设备可以接收到第四网络设备发送的第六报文,第二网络设备可以在将第六报文入队到第二网络设备的第一队列之前,第二网络设备可以计算第三时间。可以将第六时间标签替换为第三时间标签以获得第三报文后,可以将该第三报文入队到第二网络设备的第一队列中。
[0125] 本发明实施例中,第二网络设备计算出的至少一个子流中的第一报文对应的第一时间与第三报文对应的第三时间之差不小于在所述至少一个子流的限制速率下该第一报文从所述第二网络设备到所述第一网络设备的预计传输时间。换句话说,对于同一个子流中的第一报文和第三报文,可以测量该第一报文对应的第一时间与该第三报文对应的第三时间之间的时间间隔。如果该时间间隔小于在该子流的限制速率下该第一报文从所述第二网络设备到所述第一网络设备的预计传输时间,可以调整该第三时间使得第三时间与第一时间之间的时间间隔大于第一报文在该子流的限制速率下从第二网络设备到第一网络设备的预计传输时间(此时,第一报文和第三报文可以满足该子流的限制速率)。
[0126] 在步骤950中,所述第二网络设备从所述第一队列中出队所述第一报文,向所述第一网络设备发送所述第一报文。
[0127] 第二网络设备可以将第一报文从第一队列中使能出队,可以使得第一报文离开第一队列的时间不早于第二报文在第二网络设备中的第一合格时间。第一网络设备可以接收第二网络设备发送的第一报文,该第一报文中可以包括第一时间标签。该第一时间标签可以用于指示允许该第一报文离开第二网络设备中的第一队列的第一合格时间。
[0128] 在步骤960中,所述第二网络设备从所述第一队列中出队所述第三报文,向所述第一网络设备发送所述第三报文。
[0129] 第二网络设备可以将第三报文从第一队列中使能出队,可以使得第三报文离开第一队列的时间不早于第三报文在第二网络设备中的第三合格时间。第一网络设备可以接收第二网络设备发送的第三报文,该第三报文中可以包括第三时间标签。该第三时间标签可以用于指示允许该第三报文离开第二网络设备中的第一队列的第三合格时间。
[0130] 本发明实施例中,可以通过逐流限速计算法维护每个子流的限制速率,推迟报文的合格时间,可以使得业务流中各子流的报文满足各子流限制速率的约束条件。并且可以在报文的时间标签上记录该报文在当前网络设备中的合格时间,可以为后续使用降抖动计算法提供参考。
[0131] 下面结合具体例子,更加详细地描述本发明实施例提及的逐流限速计算法。应注意,图10-图11的例子仅仅是为了帮助本领域技术人员理解本发明实施例,而非要将本发明实施例限于所示例的具体数值或具体场景。本领域技术人员根据所给出的图10-图11的例子,显然可以进行各种等价的修改或变化,这样的修改或变化也落入本发明实施例的范围内。
[0132] 图10是本发明实施例提供的逐流限速计算法的变量示意图,如图10所示,一个业务流的第n个报文和第n-1个报文中,该第n个报文和第n-1个报文属于同一个子流中的相邻报文,第n个报文可以定义如下变量:
[0133] r:业务流中第n个报文和第n-1个报文所属子流的限制速率;
[0134] L:报文的长度(第n个报文的长度表示为Ln);
[0135] De:第n-1个报文与第n个报文的合格时间之间的间隔(当n≤1时,De=0);
[0136] Dt:第n个报文以其所在业务流的限制速率下传输的传输时间(当n≤0时,Dt=0),Dt(n-1)表示为第n-1个报文对应的Dt;
[0137] Dg:从第n-1个报文的合格时间开始,到第n个报文的到达时间为止的时间间隔(当n≤1时,Dg=0);
[0138] Tel-pre:第n个报文的前一个相邻报文(第n-1个报文)在当前网络设备的合格时间(若n=1,则Tel-pre=0);
[0139] Tel:第n个报文在当前网络设备的合格时间;
[0140] Tcur:(current time)当前时间;
[0141] Timestamp:时间标签。
[0142] 参见图10,可以获取计算第n个报文的合格时间时的时间即当前时间Tcur,可以测量第n个报文与第n-1个报文之间的Dg,如果Dg
[0143] 逐流限速法的计算流程参见图11,图11的流程可以包括步骤1110-步骤1180,下面对这些步骤进行详细描述。
[0144] 在步骤1110中:输入业务流中的报文A(第n个报文),该报文可以带有时间标签。
[0145] 在步骤1120中:判断n的大小,如果n不等于1(不是业务流中的第一个报文),则转至步骤1130,如果n等于1(报文A是业务流中的第一个报文),则转至步骤640。
[0146] 在步骤1130中:计算报文A的前一个报文(第n-1个报文)的合格时间与报文A(第n个报文)的到达时间之间的间隔Dg=Tcur-Tel-pre。
[0147] 在步骤1140中:计算报文A的延迟时间Ds=max{0,Dt-Dg}(Dt的初始值为0,此时的Dt为报文A的前一个报文的Dt值)。
[0148] 在步骤1150中:计算报文A的合格时间和时间标签Timestamp=Tel=Tcur+Ds。
[0149] 在步骤1160中:存储报文A的合格时间Tel-pre=Tel(用于计算报文A的下一个报文的Dg)。
[0150] 在步骤1170中:计算并保存报文A在子流的限制速率下的传输时间Dt=Ln/r(用于计算报文A的下一个报文的Ds)。
[0151] 在步骤1180中:输出带有时间标签的报文A(在时间标签内记录报文A在当前网络设备中的合格时间Tel,到达的报文包括时间标签时,替换已有的时间标签,到达的报文不包括时间标签时,增加时间标签)。
[0152] 上文结合图3-图11,详细描述了本发明实施例提供的发送报文的方法,下面将结合图12-图13,详细描述本发明实施例提供的网络设备。
[0153] 图12是本发明实施例提供的第一网络设备的示意性结构图。图12中的第一网络设备1200可以执行图3-图11的任一实施例描述的发送报文的方法。图12的第一网络设备1200可以包括输入接口模块1201、报文处理模块1202、流量管理模块1203、输出接口模块1204。输入接口模块1201例如可以是图1中的输入接口模块110、报文处理模块1202例如可以是图
1中的报文处理模块120、流量管理模块1203例如可以是图1中的流量管理模块130、输出接口模块1204例如是图1中的输出接口模块140。
[0154] 输入接口模块1201可以用于从第二网络设备接收业务流中的第一报文,所述第一报文包括第一时间标签,所述第一时间标签指示允许所述第一报文离开所述第二网络设备的第一队列的第一时间。
[0155] 输入接口模块1201还用于从所述第二网络设备接收业务流中的第三报文,所述第三报文包括第三时间标签,所述第三时间标签指示允许所述第三报文离开所述第二网络设备的所述第一队列的第三时间。
[0156] 报文处理模块1202可以用于计算第二时间,将所述第一报文中的所述第一时间标签替换为第二时间标签以获得第二报文。
[0157] 报文处理模块1202还可以用于计算第四时间,将所述第三报文中的所述第三时间标签替换为第四时间标签以获得第四报文。
[0158] 流量管理模块1203可以用于将所述第二报文入队到所述第一网络设备的第二队列中,所述第二时间标签指示允许所述第二报文离开所述第二队列的所述第二时间。
[0159] 流量管理模块1203还可以用于将所述第四报文入队到所述第一网络设备的所述第二队列中,所述第四时间标签指示允许所述第四报文离开所述第二队列的所述第四时间,所述第四时间与所述第二时间之差不小于所述第二队列的最大传输延时,所述第二队列的最大传输延时是所有入队过所述第二队列的所述业务流中的报文从所述第二网络设备到所述第一网络设备的传输延时中最大的传输延时。
[0160] 输出接口模块1204可以用于从所述第二队列中出队所述第二报文,向所述第三网络设备发送所述第二报文,其中从所述第二队列中出队所述第二报文的时间不早于所述第二时间。
[0161] 输入接口模块1204还可以用于所述第一网络设备从所述第二队列中出队所述第四报文,向所述第三网络设备发送所述第四报文,其中从所述第二队列中出队所述第四报文的时间不早于所述第四时间。
[0162] 图13是本发明实施例提供的网络设备的示意性结构图。图13中的网络设备1300可以执行图3-图11的任一实施例描述的发送报文的方法。图13的网络设备1300可以包括存储器1301和处理器1302。存储器1301可用于存储程序。处理器1302可用于执行所述存储器中存储的程序。当存储器1301中存储的程序被执行时,所述处理器1302可用于执行上文任一实施例描述的发送报文的方法。
[0163] 在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其他任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如数字视频光盘(digital video disc,DVD))、或者半导体介质(例如固态硬盘(solid state disk,SSD))等。
[0164] 本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
[0165] 所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0166] 在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0167] 所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0168] 另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
[0169] 所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
[0170] 以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。