具体实施方式
为了使本发明所要解决的技术问题、技术方案及有益效果更加清楚、明白,以下结合附图和实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明为了提高时间片的利用率,减少系统资源的浪费,提供了一种报文传输方法及装置,由于在本发明中通过对每个发送队列设置报文发送长度阈值,只有当发送队列中待发送报文包含的字节数,大于设定的报文发送长度阈值时,才将时间片分配给该发送队列,进行报文传输,因此,提高了时间片的利用率,从而有效的减少了系统资源的浪费。
图1为本发明提高的一种报文传输的过程示意图,该传输过程包括以下几个步骤:
S101:根据端口中每个发送队列的优先级,按照优先级依次判断每个发送队列中包含的待发送报文包含的字节数,是否大于设置的报文发送长度阈值,当判定结果为是时,进行步骤S102,否则,进行步骤S103。
其中,报文发送长度阈值可以为任意值,是根据端口的最大速率及时间片的时间长度确定的。
具体的,系统根据端口的最大速率及时间片的时间长度,设置发送队列的报文发送长度阈值,由于每个时间片的时间长度是一定的,端口的最大速率由系统的配置确定,因此,每个时间片的时间长度内,端口能够传输的最大报文字节数,为端口的最大速率与时间片的时间长度乘积而确定的固定值。
S102:将时间片分配给该发送队列,进行报文传输。
具体的,在本发明中系统将当前的一个时间片分配给查找到的发送队列,其中,该查找到的发送队列为,包含的待发送报文的字节数大于设置的报文发送长度阈值的队列中,且优先级最高的发送队列。
S103:确定时间片空转。
其中,当系统在端口中未查找到,包含待发送报文的字节数大于设置的报文发送长度阈值的发送队列时,系统将当前的时间片空转,并开始下一个时间片的分配过程。
在本发明中通过对每个发送队列设置报文发送长度阈值,只有当发送队列中包含的待发送报文包含的字节数,大于设定的报文发送长度阈值时,才将时间片分配给该发送队列,进行报文传输,因此,提高了时间片的利用率,从而有效的减少了系统资源的浪费。
而当每个发送队列中包含的待发送报文包含的字节数都不大于设置的报文长度阈值时,该时间片可以空转,或者,为了保证优先级较高的发送队列中报文的发送,该时间片可以发送优先级最高的发送队列中包含的待发送报文,或者也可以在所有的发送队列中查找包含的字节数最多的发送队列,发送该发送队列中的待发送报文,再或者可以任意选择一个发送队列,发送该发送队列包含的待发送报文。
另外,在本发明中为了在提高时间片利用率的同时,保证优先级高的报文优先进行传输,根据端口中每个发送队列的优先级,按照优先级依次判断每个发送队列中包含的待发送报文的字节数,是否大于设置的报文发送长度阈值,包括:
查找当前发送队列中优先级最高的发送队列;
针对该发送队列,确定当前该发送队列中待发送报文包含的字节数;
判断该待发送报文包含的字节数,是否大于设置的报文发送长度阈值;
当确定该待发送报文包含的字节数大于设置的报文发送长度阈值时,将时间片分配给该发送队列,进行报文传输,否则,查找较该优先级最高的发送队列优先级低的发送队列,直至将时间片分配给该发送队列,进行报文传输。
即在本发明中,按照发送队列的优先级从高到底的顺序,依次查找每个发送队列,并确定该发送队列中待发送报文包含的字节数,当按照次序查找到某一发送队列中包含的待发送报文包含的字节数大于设定的报文发送长度阈值时,则可以认为该发送队列为所有发送队列中,包含的待发送报文的字节数大于设定的报文发送长度阈值,且优先级最高的发送队列,此时将该时间片分配给发送队列,发送该发送队列中包含的待发送报文。
图2为本发明提供的一种报文传输过程的详细示意图,该传输过程包括以下几个步骤:
S201:根据端口中每个发送队列的优先级,查找当前发送队列中优先级最高的发送队列。
具体的,当系统的时间片机制开始运转,进行时间片的分配时,系统根据端口中每个发送队列的优先级,查找当前发送队列中优先级最高的发送队列。
S202:针对该优先级最高的发送队列,确定当前该发送队列中待发送报文包含的字节数。
S203:判断该发送队列中待发送报文包含的字节数,是否大于设置的报文发送长度阈值,当判定结果为是时,进行步骤S204,否则,进行步骤S205。
S204:将时间片分配给该发送队列,进行报文传输。
S205:判断该发送队列是否为该端口的优先级最低的发送队列,当判断结果为是时,进行步骤S206,否则,进行步骤S207。
S206:确定该时间片空转。
S207:在该发送队列中除该优先级最高的发送队列之外的发送队列中,查找优先级最高的发送队列,将该发送队列作为当前优先级最高的队列,进行步骤S202。
在本发明中确定时间片空转包括:确定当前发送队列中优先级最低的发送队列中包含的待发送报文包含的字节数,小于设置的报文发送长度阈值时,当前时间片空转。
另外,在本发明中为了便于查找到包含的待发送报文包含的字节数,大于设置的报文发送长度阈值的发送队列,针对端口中的每个发送队列,在确定该发送队列中待发送报文包含的字节数之前,还包括:
确定该发送队列包含待发送报文。
这是因为有的发送队列中可能不包含待发送报文,如果该发送队列中不包含待发送报文,则该发送队列中包含的字节数为零,一定小于设置的报文发送长度阈值,因此,在本发明中为了提高报文发送的效率,在针对每个发送队列中待发送报文包含的字节数之前,先判断该待发送队列中是否包含待发送报文,当该发送队列中包含待发送报文时,再确定该发送队列中待发送报文包含的字节数,当该待发送队列中不包含待发送报文时,则确定该发送队列包含的字节数小于设定的报文发送长度阈值,直接进行下一优先级的发送队列的判断。
图3为本发明提供的另一种报文传输的详细过程示意图,该传输过程包括以下几个步骤:
S301:系统的时间片机制开始运转,对当前的时间片进行分配。
S302:根据端口中每个发送队列的优先级,查找当前发送队列中优先级最高的发送队列,将该优先级最高的发送队列作为当前发送队列。
S303:判断当前发送队列中是否包含待发送报文,当判定结果为是时,进行步骤S304,否则,进行步骤S307。
S304:针对该当前发送队列,确定该当前发送队列中待发送报文包含的字节数。
S305:判断该当前发送队列中待发送报文包含的字节数,是否大于设置的报文发送长度阈值,当判定结果为是时,进行步骤S306,否则,进行步骤S307。
S306:将时间片分配给该发送队列,进行报文传输。
S307:判断该当前发送队列是否为该端口的优先级最低的发送队列,当判断结果为是时,进行步骤S308,否则,进行步骤S309。
S308:确定该时间片空转,并立刻开始下一个时间片的分配。
S309:在该发送队列中除优先级较该当前发送队列高的发送队列,及该当前发送队列之外的发送队列中,查找优先级最高的发送队列,将该优先级最高的发送队列作为当前发送队列,进行步骤S303。
具体的,当查找至端口中优先级最低的发送队列时,确定该优先级最低的发送队列中包含的待发送报文包含的字节数,小于设置的报文发送长度阈值时,当前时间片分配结束,并立刻开始下一个时间片的分配。
另外,在本发明中为了在提高时间片利用率的同时,进一步保证优先级高的报文优先进行传输,系统可以统一设置端口中每个发送队列的报文发送长度阈值,也可以根据端口中每种优先级的发送队列,分别设置该发送队列对应的报文发送长度阈值。
在本发明中当高优先级的报文包含的字节数较少时,为了保证低优先级流量较大的报文能够进行传输,系统为端口中的发送队列统一设置报文发送长度阈值,例如,统一设置成端口能够传输的最大报文字节数。这样,当端口中优先级高的发送队列中包含的报文较少时,由于该优先级高的发送队列中包含的报文字节数未达到设定的报文发送长度阈值,因此,系统将当前的时间片分配给优先级较低的,包含的报文字节数大于设定的报文发送长度阈值的发送队列,进行报文的传输。
或者,为了提高时间片利用率的同时,保证高优先级报文能及时的进行传输,系统根据端口中发送队列的优先级分别设定报文发送长度阈值,例如,设置优先级较高的发送队列的报文发送长度阈值为端口能够传输的最大报文字节数的60%,设置优先级较低的发送队列的报文发送长度阈值为端口能够传输的最大报文字节数。这样,当端口中优先级高的发送队列中包含的报文较少时,将时间片分配给优先级较低的,包含的报文字节数大于端口能够传输的最大报文字节数的发送队列,进行报文的传输,而当优先级高的队列中积累的待发送报文包含的字节数,大于端口能够传输的最大报文字节数的60%时,将时间片分配给该优先级高的发送队列,进行报文传输。
图4为本发明提供的一种报文发送装置的结构示意图,该装置包括:
判断模块41,用于根据端口中每个发送队列的优先级,按照优先级依次判断每个发送队列中包含的待发送报文包含的字节数,是否大于设置的报文发送长度阈值;
传输空转模块42,用于当确定发送队列中包含的待发送报文包含的字节数大于设置的报文发送长度阈值时,将时间片分配给该发送队列,进行报文传输;否则,确定时间片空转。
所述传输空转模块42,具体用于查找当前发送队列中优先级最高的发送队列;针对该发送队列,确定当前该发送队列中待发送报文包含的字节数;判断该待发送报文包含的字节数,是否大于设置的报文发送长度阈值;当确定该待发送报文包含的字节数大于设置的报文发送长度阈值时,将时间片分配给该发送队列,进行报文传输,否则,查找较该优先级最高的发送队列优先级低的发送队列,直至将时间片分配给该发送队列,进行报文传输。
所述判断模块41,还用于确定该发送队列是否包含待发送报文。
所述传输空转模块42,具体用于确定当前发送队列中优先级最低的发送队列中包含的待发送报文包含的字节数,小于设置的报文发送长度阈值时,时间片空转。
所述装置还包括:
设置模块43,用于根据端口的最大速率及时间片的时间长度,设置报文发送长度阈值,其中,报文发送长度阈值为不大于端口最大速率与时间片的时间长度乘积的任意值。
本发明提供了一种报文传输方法及装置,在该方法中设置的报文发送长度阈值,根据端口中每个发送队列的优先级,按照优先级依次判断每个发送队列中包含的待发送报文包含的字节数,是否大于设置的报文发送长度阈值;确定是否将时间片分配给该发送队列,进行报文传输;当确定所有发送队列中待发送报文包含的字节数都小于设置的报文发送长度阈值时,确定时间片空转。由于在本发明中通过对每个发送队列中包含的待发送报文包含的字节数,设置报文发送长度阈值,只有当发送队列中待发送报文包含的字节数,大于设定的报文发送长度阈值时,才将时间片分配给该发送队列,进行报文传输,因此,提高了时间片的利用率,从而有效的减少了系统资源的浪费。
上述说明示出并描述了本发明的一个优选实施例,但如前所述,应当理解本发明并非局限于本文所披露的形式,不应看作是对其他实施例的排除,而可用于各种其他组合、修改和环境,并能够在本文所述发明构想范围内,通过上述教导或相关领域的技术或知识进行改动。而本领域人员所进行的改动和变化不脱离本发明的精神和范围,则都应在本发明所附权利要求的保护范围内。