节点装置和分组传输控制方法

文档序号:7761275阅读:173来源:国知局
专利名称:节点装置和分组传输控制方法
技术领域
本发明涉及如路由器或交换机的节点装置和一个分组传输控制方法,该节点装置根据分组或信元属性在一个给定的队列里存储所接收到的分组或信元并根据各个队列的传输环境设置来控制分组的传输,具体的,涉及一个从很多队列中高速发送分组的节点装置和一个分组传输控制方法。
为简单起见,在本说明书中下文中,如路由器和交换机的节点装置将被简称为节点装置,并且分组或信元将被简称为分组。
总的来说,一个节点装置具有多个与分组属性相应的队列并且对各个队列设置了传输条件。节点装置包括分组传输控制器,该控制器根据分组属性在给定的队列中存储一个接收到的分组并根据各个队列的传输条件设置来发送分组。
作为一个传统分组传输控制方法,可使用加权轮循机制(M.Katavenis etal.“Weighted round-robin cell multiplexing a general-purpose ATM switchchip”,IEEE Journals on Selected Areas in Communication,col.9,No.8,1991;在下文中将被称为WRR机制)。在WRR机制中,对每一队列设置了一个权重,并根据所设权重比从每一队列中发送一个分组。
在WRR机制中,对每一队列设置权重。权重被分配给每一队列。当共享线带(line band)时,各个队列根据权重来发送分组。对每个队列,WRR节点装置都有一个计数器。每个计数器记录可从相应的队列中发送的分组数。每一计数器的初始值是相应的权重。对每一队列设置了一个循环序列。
在该机制中,根据循环序列,节点装置搜索其中存有一个或多个分组并且计数值大于等于1的队列。当找到其中存有一个或多个分组并且计数值大于等于1的队列时,节点装置从该队列中发送一个分组并将计数器减1。根据循环序列,节点装置从已发送完分组的队列的相邻队列开始搜索其中存有一个或多个分组并且计数值大于等于1的队列。
如果不存在其中存有一个或多个分组并且计数值大于等于1的队列,即不存在可发送分组的队列,即使在队列循环完一圈以后,节点装置也将全部队列的计数器值都返回到初始值,即加权值,然后重新开始处理。在下文中,将计数器值返回到初始值的操作将被称为复位操作。
因此,在WRR机制中,当只有一个队列可以发送分组并从该队列中发送出一个分组时,节点装置将检查全部序列以识别分组是否可被发送。节点装置必须最大量的检查所有队列以发送一个分组。该处理量与队列数成比例。因此,当队列数增多时,不能提高节点装置的分组处理速度。
日本专利待审公开号2001-053798公开了在WRR机制中提高分组处理速度的第一种传统方法。根据在日本专利待审公开号2001-053798所公开的方法,按内容寻址存储器(CAM)被安装在节点装置中并被用来选择可发送分组的队列。在按内容寻址存储器中记录有每一队列的状态以进行与检索词相匹配的快速队列搜索。节点装置通过使用指示其中含有可发送分组的队列状态的检索词来搜索按内容寻址存储器以寻找下一次可发送分组的队列。
基于该方法的节点装置总能在预定时间段中找到可发送分组的队列,而与队列数无关。因此,在具有很多队列的情况下,对高速处理而言,该装置是十分有效的。
日本专利待审公开号11-041316公开了在WRR机制中提高分组处理速度的第二种传统方法。根据在日本专利待审公开号11-041316公开的方法,节点装置管理第一和第二列表。第一列表管理可发送分组的队列,即管理在每一队列中计数器值大于等于1并存储有一个或多个分组的队列号。第二列表管理每个队列中存储有一个或多个分组但由于计数器值为0而不能发送分组的队列号。
节点装置在第一列表开始提取出队列号并从该号队列中发送分组。如果在发送完分组后,队列仍处于准备状态,节点装置将该队列号加入到第一列表的尾。当在发送完分组的队列中留有分组且计数器值为0时,节点装置将该队列加入到第二列表。当在已发送完分组的队列中计数器值变为0时,节点装置将不把该队列加入任一列表中。
当不存在可以发送分组的队列时,即第一列表变为空时,节点装置对全部队列的计数器执行复位操作。然后,节点装置将第二列表中的所有队列号加入到第一列表中,并重新开始分组处理。
作为第三种传统方法,可利用一个不充分轮循机制,该机制是另一种传统分组传输控制方法(M.Shreedhar and G.Varghese,“Efficient FairQueuing using Deficit Round Robin”,IEEE/ACM Transactions onNetworking,在下文中称为DRR机制)。DRR机制与WRR机制一样,在该机制中节点装置具有权重和计数器。
不同于在WRR机制中的从各个队列中一个接一个的循环发送分组,在DRR机制中,连续发送处于一个队列中的可发送分组。与WRR机制不同,DRR机制中的计数器值表示可发送分组的数据量(即字节)。另外,权重和数据量被定义为单位。此外,当对计数器作复位操作时,权重被加到计数器中。
因此,节点装置管理前述的第一列表。节点装置从第一列表头提取出队列号并连续发送分组直到在该号队列中不留有分组或计数值小于第一分组的分组长度。当发送完一个分组时,节点装置从计数器中减去分组长度。
当从一个队列中发送完可被发送的全部分组时,节点装置执行队列计数器的复位操作。如果在队列中存有一个或多个分组时,节点装置将该队列加入到第一列表尾部。
根据又一传统分组传输控制方法,不同于WRR机制和DRR机制,该方法不使用计数器,而使用了传输时间。如该方法的范例,可利用加权公平排队机制(A.K.Parekh and R.G.Gallager,“A Generalized processor sharingapproach to flow control in integrated services networks-The single nodecase”IEEE INFOCOM92,Vo.12,1992;在下文中称为WFQ机制)和从WFQ导出的各种机制。
在WFQ机制中,节点装置记录从每一队列中发送出的最后一个分组的虚拟传输结束时间,并随后以最早传输结束时间从一个队列中发送分组。因此,在WFQ机制中,当要发送一个分组时,节点装置必须搜索到一个队列,该队列在全部队列中具有最早传输结束时间。总的来说,用于搜索具有最早传输结束时间的队列的处理计算量与队列数成比例,因此,当队列数增多时,不能提高节点装置的分组处理速度。
在WFQ机制中,一个能提高分组处理速度的传统方法使用了指示传输分组调度的时间表(日程表)(canlendar)。注意该时间表被称为时间轮(time wheel)等。时间表包括多个条目(entry)。各个条目指示时间并按年月日时间顺序排列。在每一条目上,记录有在相应时间上被调度而发送分组的队列号。
节点装置根据传输结束时间生成时间表,并在发送分组时使用该时间表。当处于每一队列传输时间的相应条目时,记录队列号。当要发送分组时,节点装置通过读取按时间顺序排列的时间表条目而得到队列以发送分组。使用该操作,当要发送一个分组时,节点装置不必进行大量的处理以在全部队列中找到具有最早传输结束时间的一个队列,该处理与队列数成比例。
已经提议了与WFQ机制相似的各种机制。如,在日本专利待审公开号2000-183959公开了第四种传统方法。根据在日本专利待审公开号2000-183959所公开的方法,节点装置在时间表的每一条目上记录队列,该队列发送分组的时间与条目相对应。在该情况下,节点装置可以以列表形式在每一条目上记录多个队列。
在第一传统机制中,节点装置必须具有按内容寻址存储器。由于按内容寻址存储器要比普通存储器要贵得多,因此基于第一传统机制的节点装置价格很高。除按内容寻址存储器外,基于第一传统机制的节点装置还需要含有被用为计数器的一个普通存储器。这进一步提高了装置的价格。
在第二传统机制中,如

图14所示出,第一和第二列表一般具有一个结构,在该结构中各个数据由指针相连接。在该结构中,每一指针必须在下一指针读取之前读出。因此,该节点装置至多将分组传送的时间间隔缩短为读取指针的时间间隔。根据第二传统机制,不能产生可应用到超高速线的节点装置。
在第三传统机制中,由于节点装置管理列表中的队列号,如在第二传统机制中一样,装置不能被应用到超高速线上。
在基于第二传统机制的节点装置中,当其上记录有队列号的列表以表格的形式被管理,在该表格中队列号如图15所示的顺序排列时,在前一队列号被读出之前可以读出下一队列号。这使高速操作成为可能。然而,在节点装置中需要与列表数相等的表格,因此如在基于第二传统机制一样,需要一个很大的存储器来管理多个列表。
在第四传统机制中,对每一传输时间,节点装置管理列表中的队列号。因此,当通过使用具有一般结构的列表来管理队列号,在该结构中各个数据由指针进行连接,分组传输的时间间隔至多被缩短为从存储器中读出队列号的所需时间。因此,节点装置不能应付超高速线。
根据第二至第四传统机制,节点装置从列表中提取出队列号,读出与所提取的号码有关的状态变量,然后发送分组。当发送该分组时,节点装置更新状态变量,并按照该结果将队列号加入合适的列表中。由于从存储器中读出数据所耗费的时间比执行其他处理的时间长,因此,从存储器中读取出状态变量妨碍了节点装置处理速度的提高。
本发明的第二个目的是提供一个价格低廉的节点装置和分组传输控制方法,该装置和方法控制分发到多个队列的分组的高速传输。
本发明的第三个目的是提供一个节点装置和分组传输控制方法,该装置和方法可以通过执行与队列状态变量有关的快速处理而被应用到超高速线上。
本发明的第四个目的是提供一个节点装置和分组传输控制方法,该装置和方法可以通过读取队列号,该读取时间间隔比指针读取时间间隔短而被应用到超高速线上。
为达到上述目的,根据本发明,提供了一个节点装置,该节点装置将所接收到的分组存储在多个队列的一个队列中,该装置根据每一队列的状态变量判断每一队列是否处于分组传输的准备状态,并从处于分组传输准备状态的队列中发送分组,该节点装置包括列表装置,其中写有处于分组传输准备状态的队列号并管理其中写有号码的顺序,状态变量存储装置,用于存储与全部队列有关的状态变量,状态变量暂存装置,其中只暂存与一些队列相关的状态变量,这些队列的号码落入到从列表装置开始的一个预定范围之内并且其数据量比状态变量存储装置少,和控制装置,用于从队列中发送分组,该队列是从列表装置的开始处提取出的,并更新状态变量暂存装置中的队列状态变量。
图1示出了根据本实施例的节点装置的布局。
请看图1,节点装置100包括一个分组分发部分101,队列102-1至102-n,分组输出部分103,准备队列列表104-1和104-2,等待队列列表105-1和105-2,复位控制部分106,输入控制部分107,输出控制部分108,状态变量存储部分109和状态变量暂存部分110。
该分组分发部分101从线L1中接收分组并检查分组属性以选择其中应存储该分组的队列。路由器,作为节点装置的示例,从所接收到的分组属性即源IP地址,目的IP地址,第四层协议号,源端口号,目的端口号和TOS(Type of Service,业务类型)信息中判断队列,。节点装置的另一个示例为以太交换机,从所接收到的分组属性即,源MAC地址,目的MAC地址,IEEE802.1p优先级和VLAN-ID中判断队列。
队列102-1至102-n暂时存储由分组分发部分101根据它们的属性分发的分组。在该情况下,“n”代表队列号。当队列号n很大时,该实施例很有效。
分组输出部分103从由输出控制部分108指定的队列的开始(start)提取出一个分组并将其发送到线L2。
准备队列列表104-1和104-2保存可发送分组的队列号。可发送分组的队列是其中的计数器值大于等于1并在其中存有一个或多个分组的队列。基本上,可发送分组的队列号交替地写入到准备队列列表104-1和104-2中,并可选的从中提取出。
等待队列列表105-1和105-2保存处于分组传输等待状态的队列号。分组传输等待状态是其中存储有一个或多个分组但是计数器值小于等于0的状态。基本上,处于等待状态的队列号被交替地写入到等待队列列表105-1和105-2中。
当从输出控制部分108接收到指令时,复位控制部分106通过将等待队列列表105-1的内容转移到准备队列列表104-1中并将等待队列列表105-2的内容转移到准备队列列表104-2中来执行复位操作。
输入控制部分107从状态变量存储部分109或状态变量暂存部分110中读出队列的状态变量,在该队列中应存储所接收到的分组。然后,输入控制部分107根据状态变量将队列号加到准备队列列表104-1和104-2、等待队列列表105-1和105-2的任意一个中。
为控制来自各个队列的分组传输,首先,输出控制部分108从准备队列列表104-1或104-2的开始(start)处读出队列号,并从状态变量暂存部分110读出与该号队列有关的状态变量。这时,输出控制部分108可交替地从准备队列列表104-1和104-2中读出队列号。然后,输出控制部分108给分组输出部分103发送一个指令以从相应队列中发送分组。输出控制部分108也更新状态变量并基于所更新的状态变量将队列号加入到列表中。另外,当给分组输出部分103发送指令来发送分组而准备队列列表104-1和104-2都为空时,输出控制部分108指示复位控制部分106来执行复位操作。
状态变量存储部分109保存与各个队列有关的状态变量。状态变量是如权重、计数器值、复位状态或队列长度的信息。权重被分配给每一队列。每一队列由根据权重划分的线的带宽来发送分组。计数器被提供给每一队列并且该计数器管理可从队列中发送的分组数据量。复位状态指示当接收到复位指示时复位控制部分106是否真的复位了计数器。如果在接收到复位指示时,复位控制部分106没有复位计数器,队列的计数器处于非复位状态。如果已经复位了计数器,计数器处于完全复位状态。
状态变量暂存部分110暂时保存存储在状态变量存储部分109中的一些状态变量,这些状态变量与从准备队列列表104-1和104-2,等待队列列表105-1和105-2的开始的小于等于m的队列有关。保存在状态变量暂存部分110的状态变量是部分的预取(prefetched)信息以用来高速的执行分组传输处理。
图2示出了根据本实施例的分组接收操作。
请看图2,在步骤S101中当从图1的线L1中接收到分组时,分组分发部分101判决在其中应存储该分组的一个队列。在步骤102,分组分发部分101根据判决结果将分组存储到其中一个队列中。
在步骤S103,输入控制部分107检查在将要存储所接收到分组的队列中是否存有另一分组。如果在将要存储所接收到分组的队列中存有另一分组时,节点装置100终止分组接收操作。
如果在将要存储所接收到分组的队列中不存有其他分组时,输入控制部分107从状态变量存储部分109或状态变量暂存部分110中读出队列的计数器值和复位状态。
在步骤S105,输入控制部分107检查队列的计数器是否处于完全复位状态并且计数器值是否小于等于0。
如果队列的计数器值大于等于1或队列处于非复位状态,在步骤S107中,输入控制部分107将队列号加入到其中一个准备队列列表104-1和104-2中。注意队列号可被交替地加入到准备队列列表104-1和104-2中。可选的,队列号可以被加入到记录有更少数目的队列号的准备队列列表104-1和104-2其中之一,或者队列号可被加入到列表中没有写入队列号或没有从中读出队列号的列表的其中之一。如果队列的计数器处于完全复位状态并且计数器值小于等于0,在步骤S106中输入控制部分107将队列号加入到等待队列列表105-1和105-2其中之一。注意队列号被可选的加入到准备队列列表105-1和105-2中。可选的,队列号可以被加入到准备队列列表105-1和105-2其中之一,在该队列上记录有更少数目的队列号,或者队列号可被加入到其中一个列表,在该列表中没有写入队列号或没有从中读出队列号。
在步骤S108,输入控制部分107检查从列表开始的所加入队列是否具有小于等于m的序数(ordinal number)。
如果从列表开始的所加入队列具有小于等于m的序数,在步骤S109,输入控制部分107将来自状态变量存储部分109的队列状态变量转移到状态变量暂存部分110中。然后,节点装置100终止分组接收操作。
如果从列表开始的所加入队列不具有小于等于m的序数,节点装置100立刻终止分组接收操作。
图3示出了根据本实施例的节点装置的分组发送操作流程图。
请看图3,首先,在步骤201输出控制部分108检查准备队列列表104-1和104-2是否都为空。
如果准备队列列表104-1和104-2都为空,在步骤S202中,输出控制部分108指示复位控制部分106复位全部队列。在步骤203,复位控制部分106将准备队列列表104-1和104-2的内容转移到等待队列列表105-1和105-2中。
这时,输出控制部分108可将加权值加到全部计数器中并复位计数器。然而,该操作耗费了很长时间。因此,在实施例中,当从一个给定队列中发送分组时,输出控制部分108复位该队列的计数器。因此,在此情况下,复位控制部分106只在从输出控制部分108接收到指令时执行复位操作。因此,输出控制部分108记录每一队列的复位指示时间和复位处理时间。
复位指示时间是指输出控制部分108向复位控制部分106给出复位指令的时间。复位处理时间是指队列的计数器最终被复位的时间。因此,如果复位处理时间比复位指示时间早,队列处于非复位状态。如果复位指示时间比复位处理时间晚,队列处理完全复位状态。
在步骤S204,输出控制部分108检查准备队列列表104-1和104-2是否都为空。如果准备队列列表104-1和104-2都为空,节点装置100终止分组发送操作。
如果在步骤S201或S204中判断至少一个准备队列列表104-1和104-2不为空,输出控制部分108从其中一个准备队列列表的开始提取出一个队列号。注意队列号被可选的从准备队列列表104-1和104-2中提取出。可选的,队列号可以从准备队列列表104-1和104-2之一被提取出,在该列表中记录了大量数目的队列号。
在步骤206,输出控制部分108检查在经过步骤S205的处理之后,从准备队列列表开始是否存在一个序数为m的新队列。
如果从准备队列列表开始存在一个序数m的新队列,输出控制部分108将队列状态变量从状态变量存储部分109转移到状态变量暂存部分110中。
如果在步骤S206中判定从准备队列列表开始不存在序数m的队列时,或经过步骤S207的处理之后,在步骤S208中输出控制部分108指示分组输出部分103从该号码是在步骤205中提取出的队列中发送分组。分组输出部分103从由输出控制部分108指定的队列中发送第一个分组。
在步骤S209,输出控制部分从状态变量暂存部分110中读出权重、计数器值和队列复位状态。
在步骤S210,输出控制部分108判断该队列是否处于非复位状态。
如果该队列处于非复位状态,在步骤S211中,输出控制部分108复位计数器以将复位状态变为完全复位状态。将复位状态变为完全复位状态就是记录复位处理时间。在复位计数器期间,加权值被加到计数器值上。然而,如果计数器值大于加权值,加权值就被指定为计数器值。
在步骤S212,输出控制部分108从计数器中减去与步骤208中发送的分组长度相应的值。在步骤S213,输出控制部分108将计数器值、加权值和复位状态重新存到状态变量暂存部分110中。在步骤S214,输出控制部分108检查在发送完分组的队列中是否还留有分组。如果在该队列中不留有分组,节点装置100终止分组发送操作。
如果在队列中留有分组,在步骤S215输出控制部分108检查队列的计数器值是否小于等于0。
如果计数器值小于等于0,在步骤S216中,输出控制部分108将队列号加到等待队列列表105-1和105-2其中之一。如果计数器值大于等于1,在步骤S217中,输出控制部分108将队列号加入到准备队列列表104-1和104-2其中之一。
在步骤S218,输出控制部分108检查从列表开始所加入的队列是否具有小于等于m的序数。如果从列表开始所加入的队列具有小于等于m的序数,节点装置100立刻终止分组传输操作。如果从列表开始所加入的队列不具有小于等于m的序数,在步骤219中,输出控制部分108将队列状态变量从状态变量暂存部分110返回到状态变量存储部分109中。
在本实施例的节点装置100中,由于准备队列列表和等待队列列表都被分成两个列表,所以即使每一列表中的数据由指针连接时,读出队列号所需的时间间隔也比指针读取时间短。因此,该装置可以被应用到一个超高速线上。
根据本实施例的节点装置100可以从由普通存储器组成的列表中高速读出队列号,因此不需要按内容寻址存储器。因此,该装置可以以低价应用到超高速线上。
另外,根据本实施例的节点装置100,可以生成一个具有一定结构的列表,在该结构中各个数据顺序的以指针相连接,因此,不需要使用具有表格结构的列表来执行管理并不需要大容量的存储器,在该表格结构中队列号以给定顺序排列。因此,该装置可以以低价被应用到超高速线上。
而且,根据本实施例的节点装置100预取在列表开始附近的队列的状态变量,因此,可以高速执行分组传输处理。因此,该装置可以被应用到超高速线上。
此外,当发送分组时,根据本实施例的节点装置100独立的复位每一队列的计数器而不是马上复位各个队列,因此,分组传输速度不限于复位操作所需的时间。因此,该装置可被应用到超高速线上。
本实施例示例了一个情况,其中准备队列列表和等待队列列表都包括两个列表。然而,每一列表可包括三个或更多的列表。在该情况下,可以循环的存储和提取队列号,就如准备队列列表和等待队列列表都包括两个列表的情况一样。可选的,可以将一个新队列加入到其中已存有最少数目队列号的列表中,并且队列号可从其中已存有最大数目队列的列表中提取出。
本实施例已经示例了一个情况,其中根据权重来从每一队列中发送分组。然而,可以预先为每一队列指定预定频段,并根据指定给队列的频段来决定每一队列是否处于准备状态或等待状态。在该情况下,以代替权重,可以使用表示指定给每一队列的频段数据。
可以参考相应的附图来描述本发明的另一实施例。根据本实施例的节点装置保持从给定队列中发送分组,一旦开始从该队列中发送分组,一直发送,直到从该队列中不能发送任何分组。
图4示出了根据本发明的另一实施例的节点装置的布局。
请看图4,节点装置200包括一个分组分发部分201,队列201-1至202-n,分组输出部分203,准备队列列表204-1至204-2,输入控制部分207,输出控制部分208,状态变量存储部分209和状态变量暂存部分210。
分组分发部分201的布局和操作与图1中的分组分发部分101相同。队列201-1至201-n的布局和操作与图1中的队列102-1至102-n相同。分组输出部分203的布局和操作与图1中的分组输出部分103相同。准备队列列表204-1和204-2的布局和操作与图1中的准备队列列表104-1和104-2相同。状态变量存储部分209的布局和操作与图1中的状态变量存储部分109相同。状态变量暂存部分210的布局和操作与图1中的状态变量暂存部分110相同。
图4中的节点装置200在输入控制部分207和输出控制部分208的操作与图1中的节点装置100不同。另外,图4的节点装置200与图1的节点装置100的不同之处在于节点装置200不具有等待队列列表也不具有复位控制部分。
输入控制部分207从状态变量存储部分207或状态变量暂存部分210中读出队列的状态变量,从线L1接收到的分组应存储在该队列中。然后,输入控制部分207根据该状态变量将队列号加入到准备队列列表204-1和204-2其中之一。
与图1中的节点装置100不同,节点装置200不需要将任何队列号从等待队列列表转移到准备队列列表中,因此不必管理复位状态。因此,输入控制部分207不辨别复位状态的判决结果和其相应操作。
如果有一个正发送分组的队列,输出控制部分208从该队列中发送分组。如果没有一个正发送分组的队列,输出控制部分208从准备队列列表204-1和204-2其中之一列表头提取出队列号,并从该号队列中发送分组。如果发送完分组的队列中仍包含可被发送的分组,输出控制部分208让队列继续发送分组。如果没有可被发送的分组,输出控制部分208将队列号加入到一个准备队列列表中。为连续发送分组,输出控制部分208管理队列的繁忙状态。
图5示出了图4节点装置的分组接收操作。
请看图5,在步骤S301,当从线L1上接收到分组时,分组分发部分201判决其中应存储分组的队列。在步骤S302,分组分发部分201根据判断结果将分组存储到任一队列中。
在步骤S303,输入控制部分207检查是否有另一分组存储在将要存储所接收到分组的队列中。如果另一分组存储在将要存储所接收到分组的队列中,节点装置200终止分组接收操作。
如果没有其他分组存储在将要存储所接收到分组的队列中,在步骤S304中,输入控制部分207将队列号加入到准备队列列表204-1和204-2其中之一。
在步骤S305,输入控制部分207检查从该列表开始所加入的队列是否具有小于等于m的序数。
如果从该列表开始所加入的队列具有小于等于m的序数,在步骤S306输入控制部分207将队列状态变量从状态变量存储部分209转移到状态变量暂存部分210中。然后,节点装置200终止分组接收操作。
如果从该列表开始所加入的队列不具有小于等于m的序数,节点装置200立刻终止分组接收操作。
图6示出了示于图4的节点装置的分组发送操作。
请看图6,首先,在步骤S401,输出控制部分208检查准备队列列表204-1和204-2是否都为空。
如果准备队列列表204-1和204-2都为空,节点装置200立刻终止分组发送操作。
如果至少有一个准备队列列表204-1和204-2不为空,在步骤S402,输出控制部分208检查是否存在一个当前正发送分组的队列。
如果不存在正发送分组的队列,从其中一个准备队列列表开始提取出队列号。
在步骤S404,在经过步骤S403的操作之后,输出控制部分208检查从准备队列列表开始是否有一个序数为m的新队列。
如果从准备队列列表开始具有一个序数为m的队列,在步骤S405,输出控制部分208将队列状态变量从状态变量存储部分209转移到状态变量暂存部分210中。
如果在步骤S404判决从准备队列列表开始不具有序数为m的队列,或经过步骤S405的操作之后,在步骤S406,输出控制部分208将其号码是在步骤S403中提取出的队列设置为繁忙状态。
在步骤S407,输出控制部分208从状态变量暂存部分210中读取出队列的权重和计数器值。
如果在步骤S402中判决具有一个正在发送分组的队列,或进行完步骤S407的处理之后,在步骤S408,输出控制部分208指示分组输出部分203从处于繁忙状态的队列中发送分组。然后,分组输出部分203从由输出控制部分208指定的队列头发送分组。
在步骤S409,输出控制部分208从计数器中减去与在步骤S408中发送的分组长度相应的数值。
在步骤S410,输出控制部分208检查处于繁忙状态的队列中是否还留有分组和计数器值是否大于等于1。如果在该队列中留有分组并且计数器值大于等于1,节点装置200立刻终止发送操作,然后开始下一次发送操作。
如果在该队列中不留有分组或者计数器值小于等于0,在步骤S411,输出控制部分208复位计数器。
在步骤S412,输出控制部分208将计数器值和加权值存回到状态变量暂存部分210中。然后,输出控制部分208在步骤S413中删除该队列的繁忙状态。
在步骤S414,输出控制部分208检查在该队列中是否留有分组。如果在该队列中不留有分组,节点装置200终止发送操作并开始下一次发送操作。
如果在该队列中留有分组,在步骤S415中,输出控制部分208将队列号加入到准备队列列表204-1和204-2其中之一上。
在步骤S416,输出控制部分208检查从列表开始所加入的队列是否具有小于等于m的序数,如果从列表开始的所加入队列具有小于等于m的序数,节点装置200立刻终止发送操作,并开始下一次发送操作。
如果从列表头开始的所加入队列不具有小于等于m的序数,在步骤S417,输出控制部分208将队列状态变量从状态暂存部分210存回到状态变量存储部分209中。
本发明的再一个实施例将参考所对应的附图来进行描述。根据本实施例的节点装置通过使用时间表(日程表(calendar))来管理分组传输调度。时间表包括以年月日时间顺序排列的多个列表。在每一列表上,记录有在相应时间上调度为完成分组传输的队列号。当为每一队列指定频段以进行分组传输时,甚至连准备队列也不能在短于预定时间间隔的时间里发送分组。在该情况下,队列被记录在时间表的列表上从而可使在预定的时间间隔里从队列中发送分组。在由列表指示的时间里,从时间表中提取出队列号,并从该队列中发送分组。
图7示出了根据本实施例的节点装置的布局。
请看图7,节点装置300包括一个分组分发部分301,队列302-1至302-n,分组输出部分303,准备队列列表304-1至304-2,输入控制部分307,输出控制部分308,状态变量存储部分309,状态变量暂存部分310和时间表311。
分组分发部分301的布局和操作与图1中的分组分发部分101相同。队列302-1至202-n的布局和操作与图4中的队列201-1至202-n相同。分组输出部分303的布局和操作与图1中的分组输出部分103相同。准备队列列表304-1和304-2的布局和操作与图1中的准备队列列表104-1和104-2相同。状态变量存储部分309的布局和操作与图1中的状态变量存储部分109相同。状态变量暂存部分310的布局和操作与图1中的状态变量存储部分110相同。然而,注意节点装置300使用时间表311来管理分组发送调度,因此,状态变量包含来自每一队列的分组传输调度完成时间。另外,对每一队列指定频段以用于分组传输。状态变量也包括每一队列的该所设频段。
图7中的节点装置300与图1中的节点装置100的不同之处在于输入控制部分307和输出控制部分308的操作。节点装置300与图1的节点装置100的不同之处在于不具有等待队列列表也和复位控制部分,而具有时间表311。
输入控制部分307从状态变量存储部分309或状态变量暂存部分310中读出队列的状态变量,从线L1接收到的分组应存储在该队列中。然后,输入控制部分307根据状态变量将队列号加入到准备队列列表304-1和304-2其中之一和时间表311上。
为控制来自各个队列的分组传输,首先,输出控制部分308从准备队列列表304-1或304-2开始读出队列号,并读出该号码是来自状态变量暂存部分310的队列有关的状态变量。然后,输出控制部分308给分组输出部分303发出一个指令以从相应队列中发送分组。在指示分组输出部分303发送分组之后,输出控制部分308根据队列的状态变量将队列号加入到准备队列列表304-1和304-2其中之一和时间表311上。
时间表311以年月日时间顺序保存与预定时间间隔相应的各时间列表。在每一列表上,记录有在相应时间上调度以完成分组发送的队列号。
图8示出了在图7节点装置中的分组接收操作。
请看图8,在步骤S501,当从线L1接收到分组时,分组分发部分301判决其中应存储分组的队列。在步骤S502,分组分发部分301根据判决结果将分组存到任一队列中。
在步骤S503,输入控制部分307检查是否有另一分组存储在将要存储所接收到分组的队列中。如果在将要存储所接收到分组的队列中存有另一分组,节点装置300终止分组接收操作。
如果没有其他分组存储在将要存储所接收到分组的队列中,输入控制部分307从状态变量存储部分309或状态变量暂存部分310中读出来自该队列的分组传输调度完成时间。
在步骤S505,输入控制部分307检查当前时间是否达到传输调度完成时间。如果在步骤S505中是“否”,在步骤S507,输入控制部分307在时间表311列表中记录该队列号,该时间表列表对应于传输调度完成时间。然后,节点装置300终止分组接收操作。
如果在步骤S505中是“是”,在步骤S506,输入控制部分307将队列号加入其中一个准备队列列表304-1和304-2中。
在步骤S508中,输入控制部分307检查从列表开始的所加入队列是否具有小于等于m的序数。
如果从列表开始的所加入队列具有小于等于m的序数,在步骤S509,输入控制部分307将队列状态变量从状态变量存储部分309转移到状态变量暂存部分310中。
如果从列表开始的所加入队列不具有小于等于m的序数,或经过步骤S509的处理之后,在步骤S510,输入控制部分307将当前时间指定为传输调度完成时间。在步骤S511,输入控制部分307将传输调度完成时间写回到状态变量存储部分309或状态变量暂存部分310中。
图9示出了图7中的节点装置300的分组发送操作。
请看图9,首先,在步骤S601节点装置300更新当前时间。在步骤S602,输出控制部分308将时间表311列表的全部内容转移到准备队列列表304-1和304-2其中之一,该时间表列表相应于当前时间。
在步骤S603,输出控制部分308检查准备队列列表304-1和304-2是否都为空。如果准备队列列表304-1和304-2都为空,节点装置300终止分组发送操作。
如果在队列列表304-1和304-2中至少有一个不为空,在步骤S604,输出控制部分308从其中一个准备队列的列表开始提取出队列号。
在步骤S605,在经过步骤S604的操作之后,输出控制部分308检查从准备队列列表开始是否具有一个序数小于等于m的新队列。
如果从准备队列列表开始具有一个序数m的队列,在步骤S606,输出控制部分308将队列状态变量从状态存储部分109转移到状态变量暂存部分110中。
如果在步骤S605判决从准备队列列表开始不具有序数为m的队列,或经过步骤S606的操作之后,输出控制部分308给分组输出部分303发出一个指令以从其号码是在步骤S604中提取出的队列中发送分组。分组输出部分303从由输出控制部分308指定的队列中发送第一个分组。
在步骤S608,输出控制部分308从状态变量存储部分310中读出队列传输的所设频段和调度完成时间。在步骤S609,输出控制部分308从所读取的设定频段和将要发送分组的数据量计算传输调度完成时间。在步骤S610,输出控制部分308将传输的所设频段和调度完成时间写回到状态变量暂存部分310中。
在步骤S611,输出控制部分308检查在已从中发送完分组的队列中是否留有分组。如果在队列中不留有分组,节点装置300终止分组发送操作。
如果在该队列中留有分组,在步骤S612,输出控制部分308检查当前时间是否达到传输调度完成时间。如果当前时间没有达到传输调度完成时间,输出控制部分308在步骤S614中将队列号记录在时间表311的一个列表上,该时间表列表相应于传输调度完成时间。
在步骤S616,输出控制部分308将队列状态变量从状态变量存储部分309转移到状态变量暂存部分310中。然后,节点装置300终止分组发送操作。
如果在步骤S612中判断当前时间已达到传输调度结束时间,在步骤S613,输出控制部分308将队列号加入到其中一个准备队列列表304-1和304-2上。
在步骤S615,输出控制部分308检查从列表开始的所加入队列是否具有小于等于m的序数。如果从列表开始的所加入队列具有小于等于m的序数,流程图进入到步骤S616。如果从列表开始的所加入队列不具有小于等于m的序数,节点装置300立刻终止分组发送操作。
本发明的又一个实施例将参考相应的附图进行描述。
图10示出了根据本实施例的节点装置的布局。
请看图10,节点装置400包括一个分组分发部分401,队列402-1至402-n,分组输出部分403,准备队列列表404-1至404-2,等待队列列表405-1和405-2,复位控制部分406,输入控制部分407,输出控制部分408,状态变量存储部分409,状态变量暂存部分410和传输侯选411-1至411-m。
分组分发部分401的布局和操作与图1中的分组分发部分101相同。队列402-1至402-n的布局和操作与图1中的队列101-1至102-n相同。分组输出部分403的布局和操作与图1中的分组输出部分103相同。
在本实施例中,传输侯选411-1至411-m被另外提供给准备队列列表404-1、404-2和等待队列列表405-1、405-2。传输侯选411-1至411-m当队列准备独立的发送准备队列列表和等待队列列表时,管理队列。
每一传输侯选411-1至411-m存储一个队列号,这些队列的状态变量被存储在状态变量暂存部分410中。因此,传输侯选的数目m等于可以存储在状态变量暂存部分410的状态变量数目。循环的从准备队列中选择发送分组的队列,该准备队列号被存储在传输侯选411-1至411-m中。当从任何给定的传输侯选中发送分组并且侯选变为空时,将存储在其中一个准备队列列表404-1和404-2的队列号新存储到传输侯选中。伴随该操作,队列状态变量从状态变量存储部分409转移到状态变量暂存部分410中。总的来说,其号被存储在传输侯选411-1至411-m的队列是可发送分组的队列。但是,如果可发送分组的队列数目比传输侯选数目m小,等待队列号被存储到传输侯选中。
因此,除了队列号不是直接地被发送到输出控制部分408而是暂时地存储到传输侯选411-1至411-m中以外,准备队列列表401-1、401-2和等待队列列表405-1、405-2的布局和操作几乎与图1中的准备队列列表104-1、104-2和等待队列列表105-1、105-2相同。
除了将其队列号存储在传输侯选411-1至411-m中的队列的状态变量存储在状态变量暂存部分410外,状态变量存储部分409和状态变量暂存部分410的布局和操作与图1中的这些部分相同。
输入控制部分407的布局和操作与图1中的这些部分相同。当将要把队列号加入到准备队列列表404-1、404-2和等待队列列表405-1、405-2的其中之一时,具有一个空的传输侯选,则输入控制部分407将队列号存到传输侯选中。
输出控制部分408指示分组输出部分403从其号码被存储在传输侯选411-1至411-m队列的准备队列中循环发送分组。当指示分组输出部分403从一个给定队列中发送分组时,输出控制部分408将队列号加到准备队列列表404-1、404-2和等待队列列表405-1、405-2的其中之一或依据队列的状态等将其保留在其中一个传输侯选411-1至411-m中。
图11示出了在图10节点装置400的分组接收操作。
请看图11,在步骤S701中当从线L1中接收到分组时,分组分发部分401判决在其中应存储分组的一个队列。在步骤S702,分组分发部分401根据判决结果将分组存储到其中一个队列中。
在步骤S703,输入控制部分407检查在将要存储所接收到分组的队列中是否存有另一分组。如果在将要存储所接收到分组的队列中存有另一分组时,节点装置400终止分组接收操作。
如果在将要存储所接收到分组的队列中没有存有其他分组时,在步骤S704,输入控制部分407从状态变量存储部分409或状态变量暂存部分410中读出队列的计数器值和复位状态。
在步骤S705,输入控制部分407检查传输侯选411-1至411-m中是否有至少一个为空。如果不存在空侯选,在步骤S706中,输入控制部分407检查队列的计数器值是否处于完全复位状态和计数器值是否小于等于0。
如果队列的计数器值已被复位并且计数器值小于等于0,在步骤S707,输入控制部分407将队列号加入到等待队列列表405-1和405-2的其中之一。然后,节点装置400终止分组接收操作。
如果队列的计数器值大于等于1或队列处于非复位状态,在步骤S708,输入控制部分407检查在传输侯选411-1至411-m中是否存在等待队列。
如果在传输侯选411-1至411-m中存在等待队列,在步骤S710,输入控制部分407将存储在相应传输侯选中的队列号转移到等待队列列表405-1和405-2的其中之一。
如果在传输侯选411-1至411-m中不存在等待队列,在步骤S709,输入控制部分407将属性号加入到准备队列404-1和404-2的其中之一。然后,节点装置400终止分组接收操作。
如果在步骤S705中判决存在一个空的传输侯选,或经过步骤S710的处理之后,在步骤S711,输入控制部分407将队列号存储在空传输侯选中。在步骤S712,输入控制部分407将该号队列的状态变量从状态变量存储部分409转移到状态变量暂存部分410中。然后,节点装置400终止分组接收操作。
图12示出了图10的节点装置400中的分组发送操作。
请看图12,首先,在步骤S801中,输出控制部分408检查所有的传输侯选411-1至411-m是否都为空。如果所有的传输侯选411-1至411-m都为空,节点装置立即终止分组发送操作。
如果至少一个传输侯选411-1至411-m不为空,在步骤S802,输出控制部分408检查在传输侯选中是否存在一个准备队列。
如果在传输侯选中不存在准备队列,在步骤S803中,输出控制部分408指示状态变量存储器409复位所有队列。在步骤S804,复位控制部分406将等待队列列表的全部内容转移到相应准备队列列表中。
如果在步骤S802中判断在传输侯选中存在准备队列,或经过步骤S804的处理之后,在步骤S805,输出控制部分408指示分组输出部分403从每个传输侯选中的准备队列中循环的选择和发送分组。在步骤S806中,分组输出部分403从由输出控制部分408指定的队列中发送第一个分组。
在步骤S807,输出控制部分408从状态变量暂存部分410中读取出队列的计数器值和加权值,对队列发送给分组输出部分403分组传输指令(以从中发送分组的队列)。
在步骤S808,输出控制部分408检查该队列是否处于非复位状态。
如果队列处于非复位状态,在步骤S809,复位控制部分406复位计数器以将复位状态设置成完全复位状态。
在步骤S810,输出控制部分408从计数器中减去与步骤S806中发送的分组长度相应的值,在步骤S811,输出控制部分408将计数器值、加权值和复位状态存回到状态变量暂存部分410中。
在步骤S812,输出控制部分408检查在该队列中是否留有分组并且准备队列列表404-1和404-2是否都为空。如果在该队列中不留有分组并且准备队列列表404-1和404-2都为空,节点装置终止分组发送操作。
如果在对列中不留有分组或准备队列列表404-1和404-2至少一个不为空,在步骤S813,输出控制部分408将队列状态变量从状态变量暂存部分410存回到状态变量存储部分409中。在步骤S814中,输出控制部分408从传输侯选中删除队列。
在步骤S815中,输出控制部分408检查在队列中是否留有分组。如果在队列中留有分组,在步骤S816中,输出控制部分408检查计数器值是否小于等于0。
如果计数器值小于等于0,输出控制部分408将队列号加入到其中一个等待队列列表中。如果计数器值大于等于1,输出控制部分408将队列号加入到其中一个准备队列列表上。
如果在步骤S815判断在队列中不留有分组,或经过S817或S818的处理之后,在步骤S819中,输出控制部分408检查准备队列列表是否都为空。如果至少一个准备队列列表不为空,在步骤S820,输出控制部分408从准备队列列表开始提取出队列号并将其存储到其中一个传输侯选中。
如果准备队列列表都为空,在步骤S821,输出控制部分408从其中一个传输侯选列表开始提取出队列号并将其存储到其中一个传输侯选中。
在经过步骤S820或S821的处理之后,在步骤S822,输出控制部分408将新存储到传输侯选的队列的状态变量从状态变量存储部分409转移到状态变量暂存部分410中。然后,节点装置400终止分组发送操作。
假设节点装置400已从传输侯选411-1至411-m其中之一发送完一个分组,并且该队列仍能发送分组。在该情况下,如果准备队列列表404-1和404-2都为空,节点装置400可以直接将队列返回到传输侯选中。另外,如果准备队列列表404-1和404-2至少一个不为空,节点装置400不能直接将队列返回到传输侯选中。因此,节点装置400将队列返回到准备队列列表中。伴随该操作,状态变量也被返回到状态变量存储部分409中。
本发明的另一个实施例将参考其相应的附图进行描述。
本实施例的节点装置的分组接收操作和布局与图10的装置相同。它们只在分组发送操作中的交换传输侯选的方法上有所不同。
图13示出了根据本实施例的节点装置的分组发送操作。
请看图13,首先,在步骤S901中,输出控制部分408检查所有的传输候选411-1至411-m是否都为空。如果所有的传输侯选411-1至411-m都为空,节点装置400立刻终止分组发送操作。
如果至少一个传输侯选411-1至411-m不为空,在步骤S902,输出控制部分408检查在传输侯选中是否存在一个准备队列。
如果在传输侯选中不存在一个准备队列,在步骤S903中,输出控制部分408指示复位控制部分406复位所有的队列。在步骤S904,复位控制部分406将所有等待队列列表的内容都转移到相应准备队列列表中。
如果在步骤S902中判断在传输侯选中存在准备队列,或经过步骤S904的处理之后,在步骤S905,输出控制部分408指示分组输出部分403从每个传输侯选的准备队列中循环的选择和发送分组。在步骤S906中,分组输出部分403从由输出控制部分408指定的队列中发送第一个分组。
在步骤S907,输出控制部分408从状态变量暂存部分410中读取出队列的计数器值、加权值和复位状态,对队列发送给分组输出部分403分组传输指令(以从中发送分组的队列)。
在步骤S908,输出控制部分408检查该队列是否处于非复位状态。
如果队列处于非复位状态,在步骤S909,输出控制部408复位计数器以将复位状态设置成完全复位状态。
在步骤S910,输出控制部分408从计数器中减去与步骤S906中发送的分组长度相应的值。在步骤S911,输出控制部分408将计数器值、加权值和复位状态返回到状态变量暂存部分410中。
以上的处理与图12中的从步骤S801至步骤S811的处理相同。
在步骤S911中,输出控制部分408将计数器值、加权值和复位状态写回到状态变量暂存部分410中。在步骤S912,输出控制部分408检查其中不存有分组的队列号是否被存储在传输侯选411-1至411-m其中之一中。
如果其中不存有分组的队列号没有被存储在任何一个传输侯选411-1至411-m中,输出控制部分408在步骤S913检查其计数器值小于等于0的队列号是否被存储在任何一个传输侯选411-1至411-m中。如果其计数器值小于等于0的队列号没有被存储在其中一个传输侯选411-1至411-m中,输出控制部分408从传输侯选中选择其min(计数器值,队列长度)是最小的一个队列。注意min(A,B)是从A和B中得到最小值的一个函数。
在步骤S915,输出控制部分408将队列状态变量从状态变量暂存部分410转移到状态变量存储部分409中。在步骤S916,输出控制部分408从传输侯选中去掉该队列号。在步骤S917,输出控制部分408将队列号加入到准备队列列表404-1和404-2的其中之一上。
如果在步骤S913中判断在其中存储有计数器值小于等于0的队列号的传输侯选,输出控制部分408从传输侯选中选择出其中计数器值小于等于0并且min(加权值,队列长度)为最小的队列。
在步骤S919,输出控制部分408将队列状态变量从状态变量暂存部分410转移到状态变量存储部分409中。在步骤S920中,输出控制部分408从传输侯选中去掉该队列号。在步骤S921中,输出控制部分408将队列号加入到其中一个等待队列列表405-1和405-2中。
如果在步骤S912中判决其中不存有分组的队列号被存储在传输侯选411-1至411-m的其中之一上,在步骤S922,输出控制部分408从传输侯选中选出该队列。在步骤S923,输出控制部分408将队列的状态变量从状态变量暂存部分410转移到状态变量存储部分409中。在步骤S924中,输出控制部分408从传输侯选中去掉队列。
当经过步骤S917、S921或S924的处理之后,输出控制部分408在步骤S925中检查准备队列列表404-1和404-2是否都为空。
如果至少一个准备队列列表404-1和404-2不为空,在步骤S925,输出控制部分408从其中一个准备队列表开始提取出一个队列号并将其存储到传输侯选中。在步骤926,输出控制部分408将其号码为新存储到传输侯选中的队列的状态变量从状态变量存储部分409转移到状态变量暂存部分410中。然后,节点装置400终止分组发送操作。
如果在步骤S925中判断准备队列列表404-1和404-2都为空,在步骤S927,输出控制部分408从其中一个准备队列表开始提取出队列号并将其存储到传输侯选中。然后,流程进入到步骤S928。
如上所述,根据本发明的节点装置将靠近列表装置开始的队列状态变量从状态变量存储装置预取到状态变量暂存装置中,该状态变量暂存装置的数据量比状态变量存储装置小。因此,在发送分组时,可以高速的执行与状态变量有关的操作。因此,该节点装置可以被应用到超高速线上。
另外,根据本发明的节点装置总是将队列状态变量从状态变量存储装置预取到状态变量暂存装置中。因此,在发送分组时,可以高速的执行与状态变量有关的操作。因此,该节点装置可以被应用到超高速线上。
此外,在根据本发明的节点装置中,列表装置被分为多个列表。因此,即使在其中每一列表的数据在由指针相连的结构中,读出队列号的时间间隔也比读取指针的时间间隔短。因此,该节点装置可以被应用到超高速线上。
权利要求
1.在多个队列的其中一个中存储有所接收到分组的一个节点装置,节点装置根据每一队列的状态变量判断每一队列是否处于分组传输的准备状态并从处于分组传输准备状态的队列中发送分组,其特征在于包括列表装置(104-1,104-2,204-1,204-2,304-1,304-2),其中写有处于分组传输准备状态的队列号,并且管理其中写有号码的顺序;状态变量存储装置(109,209,309),用于保存与所有队列有关的状态变量;状态变量暂存装置(110,210,310),其只暂存与一些队列有关的状态变量,这些队列的号码落入到从所述列表装置开始的一个预定范围之内,并且其数据量比所述状态变量存储装置小;控制装置(108,208,308),用于从一个队列中发送分组,该队列的号码是从所述列表装置开始提取出的,和更新在所述状态变量暂存装置中队列的状态变量。
2.根据权利要求1的一个装置,其中当从所述列表装置开始提取出的队列中发送分组时,根据所更新的状态变量,如果判断该队列仍处于分组发送的准备状态,所述控制装置将队列号加入到所述列表装置中,和当所述控制装置从所述列表装置中提取出一个号码时,所述状态变量暂存装置新存储与从所述列表装置开始的落入到预定范围之内的队列有关的状态变量,和当队列号被加入到所述列表装置时,如果所述列表装置号码中的队列号落入到预定的范围之内,状态变量暂存装置存储与该号队列有关的状态变量。
3.在多个队列的其中一个中存储有所接收到分组的一个节点装置,节点装置根据每一队列的状态变量判断每一队列是否处于分组传输的准备状态并从处于分组传输的准备状态队列中发送分组,其特征在于包括列表装置(404-1,404-2),其中写有处于分组传输准备状态的队列号,并且其管理其中写有号码的顺序;状态变量存储装置,用于保存与所有队列有关的状态变量;状态变量暂存装置,其中暂存与不多于预定数目的队列有关的状态变量,并且其数据量比所述的状态变量存储装置小;至少一个传输侯选装置(411-1-411-n),用于保存其状态变量被保存在所述状态变量暂存部分而不是所述列表装置的每一队列号;和控制装置(108),用于从其号码被保存在所述传输侯选装置中的、可以发送一个分组的队列的一个队列中发送分组和在所述状态变量暂存装置中更新队列的状态变量。
4.根据权利要求3的一个装置,其中当在所述状态变量暂存装置中产生了自由空间时,所述状态变量暂存装置新存储与一个队列有关的状态变量,,该队列的号码位于所述列表装置开始,并且当将一个新队列设置为分组发送的准备状态并且在所述状态变量暂存装置中存在自由空间时,状态变量暂存装置存储与该队列有关的状态变量,和当从任意一个队列发送分组时,当根据所更新的状态变量判断该队列仍处于分组传输的准备状态时,如果所述列表装置为空,所述控制装置将状态变量返回到所述状态变量暂存装置,如果所述列表装置不为空,将状态变量返回到所述状态变量存储装置中。
5.根据权利要求1的一个装置,其中根据分组的一个属性将分组存储到其中一个队列中,和状态变量包括可以从队列中发送和可以从指定给每一队列的权重和频段中计算的与属性有关的分组数,和从该队列中发送的分组或可以从该队列中作为分组来发送的数据量。
6.根据权利要求3的一个装置,其中根据分组的一个属性将分组存储在其中一个队列上,和状态变量包括可以从队列中发送和可以从指定给每一队列的权重和频段中计算的与属性有关的分组数,和从该队列中发送的分组或可以从该队列中作为分组来发送的数据量。
7.根据权利要求5的一个装置,其中当该队列中存储有至少一个分组和根据该状态变量允许发送分组时,该队列处于分组发送的准备状态。
8.根据权利要求6的一个装置,其中当该队列中存储有至少一个分组和根据该状态变量允许发送分组时,该队列处于分组发送的准备状态。
9.根据权利要求1的一个装置,其中所述列表装置包括多个列表。
10.根据权利要求3的一个装置,其中所述列表装置包括多个列表。
11.根据权利要求9的一个装置,其中循环的选取所述列表装置中的多个列表。
12.根据权利要求10的一个装置,其中循环的选取所述列表装置中的多个列表。
13.根据权利要求9的一个装置,其中当在所述列表装置中写入多个列表号时,选择其中存储有少数队列的一个列表,并且当提取号码时,选择其中存储有多数队列的一个列表。
14.根据权利要求10的一个装置,其中当在所述列表装置中写入多个列表号时,选择其中存储有少数队列的一个列表,并且当提取号码时,选择其中存储有多数队列的一个列表。
15.根据权利要求1的一个装置,其中所述装置进一步包括其中记录有每一分组传输时间的队列号的时间表装置,该分组传输时间从被指定给队列的频段来判断,和所述控制装置将由所述时间表装置判定的队列号从所述时间表装置转移到所述列表装置,以在当前时间发送一个分组。
16.根据权利要求3的一个装置,其中所述装置进一步包括其中记录有每一分组传输时间的队列号的时间表装置,该分组传输时间从被指定给队列的频段来判断,和所述控制装置将由所述时间表装置判定的队列号从所述时间表装置转移到所述列表装置,以在当前时间发送一个分组。
17.在多个队列的其中一个中存储有所接收到分组的一个节点装置,节点装置根据每一队列的状态变量判断每一队列是否处于分组传输的准备状态并从处于分组传输准备状态的队列中发送分组,其特征在于包括第一列表装置(104-1,104-2),其中写有处于分组传输准备状态的队列号,并且其管理其中写有号码的顺序;第二列表装置(105-1,105-2),其中写有处于分组传输等待状态的队列号,并且其管理其中写有号码的顺序;状态变量存储装置(109),用于保存与所有队列有关的状态变量;状态变量暂存装置(110),其只暂存一些队列的状态变量,这些队列的号码落入到从所述第一列表装置开始的一个预定范围之内,当在第一列表中没有队列号落入到预定范围之内,其从第二列表装置开始提取出并暂时存储与该缺少相应的队列号,该状态变量暂存装置的数据量比状态变量存储装置小;和控制装置(108),用于从队列中发送一个分组,该队列号码是从列表装置开始提取出的,并更新所述状态变量暂存装置中队列的状态变量。
18.根据权利要求17的一个节点装置,其中当从所述列表装置开始提取出的队列中发送分组时,根据所更新的状态变量,如果判断队列仍处于分组发送的准备状态,则所述控制装置将队列号加入到所述第一列表装置中,如果队列处于分组发送的等待状态,则控制装置将队列号加入到所述第二列表装置中,和当所述控制装置从所述第一列表装置中提取出一个号码时,所述状态变量暂存装置新存储与落入到从所述第一列表装置开始的一个预定范围之内的队列有关的状态变量,和当一个队列号加入到所述第一列表装置时,如果所述第一列表装置号码中的队列号码落入到预定范围之内,所述状态变量暂存装置存储与该号队列相关的状态变量,当队列号被加入到所述第二列表装置并且在所述第一列表装置号码中的号码和在所述第二列表装置中的号码落入到预定的范围之内,所述状态变量暂存装置存储与队列相关的状态变量。
19.在多个队列的其中一个中存储有所接收到分组的一个节点装置,节点装置根据每一队列的状态变量判断每一队列是否处于分组传输的准备状态并从处于分组传输准备状态的队列中发送分组,其特征在于包括第一列表装置(404-1,404-2),其中写有处于分组传输准备状态的队列号,并且其管理其中写有号码的顺序;第二列表装置(405-1,405-2),其中写有处于分组传输等待状态的队列号,并且其管理其中写有号码的顺序;状态变量存储装置(409),用于保存与所有队列有关的状态变量;状态变量暂存装置(410),其暂时存储与不少于预定数目的队列有关的状态变量,并且该状态变量暂存装置的数据量小于所述状态变量存储装置;至少一个传输侯选装置(411-1---411-n),用于保存其状态变量被存储在所述状态变量暂存装置而不是所述第一或第二列表装置的每一队列号,和控制装置(408),用于从其号码被保存在传输侯选装置的、可以发送一个分组的队列的一个队列中发送一个分组,并用于更新在所述状态变量暂存装置中的队列的状态变量。
20.根据权利要求19的一个节点装置,其中当在所述状态变量暂存装置中产生了自由空间时,所述状态变量暂存装置新存储与一个队列有关的状态变量,该队列的号码位于所述列表装置的开始处,当所述第一列表装置为空时,新存储与一个队列有关的状态变量,该队列的号码位于所述第二列表装置的开始处,并且当存在一个设置为分组传输的准备状态或等待状态的新队列并且在所述状态变量暂存装置中具有自由空间时,所述状态变量暂存装置新存储与该队列有关的状态变量,并且当从其中一个队列中发送一个分组时,根据所更新的状态变量判定该队列处于分组传输的准备状态和所述第一列表装置为空时,所述控制装置将状态变量返回到所述状态变量暂存装置中,当所述第一列表装置不为空时,所述控制装置将状态变量返回到所述状态变量存储装置中,当从其中一个队列中发送一个分组时,根据所更新的状态变量判定该队列处于分组传输的等待状态和所述第一和第二列表装置为空时,所述控制装置将状态变量返回到所述状态变量暂存装置中,当所述第一或第二列表装置不为空时,所述控制装置将状态变量返回到所述状态变量存储装置中。
21.根据权利要求17的一个装置,其中根据分组的一个属性将分组存储在其中一个队列上,和状态变量包括可以从队列中发送和可以从指定给每一队列的权重和频段中计算的与属性有关的分组数,和从该队列中发送的分组或可以从该队列中作为分组来发送的数据量。
22.根据权利要求19的一个节点装置,其中根据分组的一个属性将分组存储在其中一个队列上,和状态变量包括可以从队列中发送和可以从指定给每一队列的权重和频段中计算的与属性有关的分组数,和从该队列中发送的分组或可以从该队列中作为分组来发送的数据量。
23.根据权利要求21的一个装置,其中当该队列中存储有至少一个分组和根据该状态变量允许发送分组时,该队列处于分组发送的准备状态。
24.根据权利要求22的一个装置,其中当该队列中存储有至少一个分组和根据该状态变量允许发送分组时,该队列处于分组发送的准备状态。
25.根据权利要求21的一个装置,其中当该队列中存储有至少一个分组并且从状态变量中判决分组不能被发送时,该队列被设置为发送的等待状态。
26.根据了权利要求22的一个装置,其中当该队列中存储有至少一个分组并且从状态变量中判决分组不能被发送时,该队列被设置为发送的等待状态。
27.根据权利要求17的一个装置,其中所述第一和第二列表装置的每一个都包括多个列表。
28.根据权利要求19的一个装置,其中所述第一和第二列表装置的每一个都包括多个列表。
29.根据权利要求27的一个装置,其中循环地选取所述第一和第二列表装置中的多个列表。
30.根据权利要求28的一个装置,其中循环地选取所述第一和第二列表装置中的多个列表。
31.根据权利要求29的一个装置,其中当在所述第一和第二列表装置中写入多个列表号时,选择其中存储有少量队列的一个列表,并且当提取号码时,选择其中存储有大量队列的一个列表。
32.根据权利要求30的一个装置,其中当在所述第一和第二列表装置中写入多个列表号时,选择其中存储有少量队列的一个列表,并且当提取号码时,选择其中存储有大量队列的一个列表。
33.将所接收到的分组存储到多个队列的其中一个、根据每一队列的状态变量判决每一队列是否处于分组传输的准备状态并从处于分组传输准备状态的队列中发送分组的一种方法,其特征在于所述方法包括将处于分组传输准备状态的队列号写入到一个列表并管理其中写有号码的顺序的第一步骤(S107,S304,S506);保存与所有队列有关的状态变量的第二步骤(109,209,309);只暂时存储与落入到从该列表开始的一个预定范围之内的队列有关的状态变量的第三步骤(S109,S306,S509,110,210,310);和从其号码是从该列表开始提取出的一个队列中发送分组并更新第三步骤中的队列的状态变量的第四步骤(S207,S405,S606)。
34.将所接收到的分组存储到多个队列的其中一个、根据每一队列的状态变量判决每一队列是否处于分组传输的准备状态并从处于分组传输准备状态的队列中发送分组的一种方法,其特征在于所述方法包括将处于分组传输准备状态的队列号写入到一个列表并管理其中写有号码的顺序的第一步骤(S709,404-1,404-2);保存与所有队列有关的状态变量的第二步骤(409);暂时存储与不超过预定数目的队列有关的状态变量的第三步骤(S712,410);将其状态变量被保存在第三步骤的每一队列号保存为传输侯选的第四步骤(S711,411-1-411-n);从其号码被保存为传输侯选的、可以发送一个分组的队列的一个队列中发送一个分组,并且更新保存在第三步骤中的队列的状态变量的第五步骤(S813,S814,408)。
35.将所接收到的分组存储到多个队列的其中一个、根据每一队列的状态变量判决每一队列是否处于分组传输的准备状态并从处于分组传输准备状态的队列中发送分组的一种方法,其特征在于将处于分组传输准备状态的队列号写入到一个第一列表中并管理其中写有号码的顺序的第一步骤(S107,104-1,104-2);将处于分组传输等待状态的队列号写入到一个第二列表中并管理其中写有号码的顺序的第二步骤(S106,105-1,105-2);保存与所有队列有关的状态变量的第三步骤(109);暂时存储与从第一列表开始的队列号的不超过预定范围的队列有关的状态变量,当在第一列表中没有落入到预定范围的队列号,从第二列表开始提取出与该缺少相应的一个队列号,并暂存该队列号的第四步骤(S209-S219,108);和从该号码是从该列表开始提取出的队列中发送一个分组并且更新在状态变量暂存装置中队列状态变量的第五步骤(S205-S208,108)。
36.将所接收到的分组存储到多个队列的其中一个、根据每一队列的状态变量判决每一队列是否处于分组传输的准备状态并从处于分组传输准备状态的队列中发送分组的一种方法,其特征在于所述方法包括将处于分组传输准备状态的队列号写入到一个第一列表中并管理其中写有号码的顺序的第一步骤(S709,404-1,404-2);将处于分组传输等待状态的队列号写入到一个第二列表中并管理其中写有号码的顺序的第二步骤(S707,405-1,405-2);保存与所有队列有关的状态变量的第三步骤(409);暂时存储与不超过预定数目的队列有关的状态变量的第四步骤(410);将其状态变量被保存在第四步骤而不是保存在第一或第二列表中的每一队列号保存为传输侯选的第五步骤(S710,S711,411-1-411-n);从其号码被保存为传输侯选的、可发送分组的队列的一个队列中发送一个分组,并更新保存在第四步骤中的队列的状态变量的第六步骤(S801-S822,408)。
全文摘要
一个节点装置包括准备队列列表,状态变量存储部分,状态变量暂存部分和输出控制部分。在状态队列列表中写有处于分组传输准备状态的队列号。每一列表管理其中写有号码的队列顺序。状态变量存储部分存储与所有队列有关的状态变量。状态变量暂存部分只暂存其号码落入到从该列表装置开始的一个预定范围之内的列表有关的状态变量并且其数据量比状态变量存储部分小。输出控制部分从一个队列中发送分组,该队列的号码是从列表开始头提取出的,并更新状态变量暂存部分的队列的状态变量。本发明也公开了发送分组的一种方法。
文档编号H04L12/56GK1431803SQ0310095
公开日2003年7月23日 申请日期2003年1月7日 优先权日2002年1月7日
发明者下西英之 申请人:日本电气株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1