一种传输报文的方法及装置的制作方法

文档序号:7796908阅读:234来源:国知局
专利名称:一种传输报文的方法及装置的制作方法
技术领域
本发明涉及通信技术领域,尤其涉及一种传输报文的方法及装置。
背景技术
分布式系统通常包括各种线卡,如主控卡、业务卡、载板卡等,各线卡之间传输数据报文的通道一般通过快速外设组件互联标准(Peripheral Component Interconnect Express, PCIE)总线技术实现。图1为现有技术中的基于PCIE的分布式系统结构示意图,如图1所示,该系统包括主控卡、业务卡1、业务卡2、业务卡3和业务卡4,并且,各线卡之间通过PCIE总线相连。 其中,在实际应用中,基于PCIE的分布式系统还包括载板卡(图1中未示出)。在现有技术中,各线卡之间传输数据报文主要是通过直接内存访问(Direct Memory Access, DMA)来进行的。具体的,针对每个线卡,该线卡将自身的一部分存储空间映射到PCIE空间,用于存放向其他线卡发送数据报文时的目的地址。由于通过DMA传输数据报文时,发送方需要获知要将数据报文发送到接收方的哪个存储空间,因此当作为数据报文发送方的线卡(以下称为发送线卡)向作为数据报文接收方的线卡(以下称为接收线卡)发送数据报文时,接收线卡从自身映射到PCIE空间的存储空间中,选择一定数量的存储空间,作为接收数据报文的存储空间,并将选择的一定数量的存储空间的地址信息,写入到发送线卡映射到PCIE空间上的存储空间中。其中,接收线卡用于接收数据报文的每个存储空间的地址信息称为信用,发送线卡映射到PCIE空间上的用于保存这些信用的存储空间称为信用池。图2为现有技术中线卡之间传输数据报文的过程,具体包括以下步骤S201 发送线卡向接收线卡发送数据报文时,先向接收线卡申请信用。也即,通知接收线卡将用于接收数据报文的存储空间的地址信息,写入到PCIE空间上对应该发送线卡的信用池中。S202 接收线卡从自身映射到PCIE空间的存储空间中,选择一定数量的存储空间并以一定的顺序进行排序,作为接收数据报文的接收(RX)队列。也即,将选择的该一定数量的存储空间作为接收数据报文的存储空间,并且是按照一定的顺序,依次采用各个存储空间接收数据报文的。S203:接收线卡将选择的该一定数量的存储空间的地址信息作为信用,将每个信用按照RX队列中的排列顺序,依次写入发送线卡的信用池中。S204 发送线卡顺序读取信用池中的信用,并通过DMA将待发送数据报文写入到读取的信用对应的地址上。其中,对于接收线卡的RX队列中的一个存储空间,如果当前正在采用该存储空间接收数据报文,那么判断该存储空间上的数据报文已经接收完毕之后,接收线卡则将接收到的数据报文转发给自身的数据处理模块,对该数据报文进行处理。这是因为如果该存储空间上的数据报文还未接收完毕,则该存储空间上接收到的并不是完整的数据报文,将不完整的数据报文转发给数据处理模块进行处理时,必然会导致处理出错。
在现有技术中,接收线卡判断RX队列中的某个存储空间是否已经接收数据报文完毕的方法为判断RX队列中当前用于接收数据报文的存储空间的下一个存储空间中,是否存在数据报文的报文头,若存在,则确定当前用于接收数据报文的存储空间已经接收完毕,否则确定当前用于接收数据报文的存储空间还未接收完毕。这是由于一个数据报文包括报文头和数据区,报文头包括报文类型字段和报文长度字段,数据区中是该数据报文的内容,如图3所示。图3为现有技术中数据报文的结构示意图,在图3中,数据报文的报文头包括报文类型字段和报文长度字段,这两个字段各占 2个字节,数据区的长度不固定。发送线卡在发送一个数据报文时,是按照先发送数据报文的报文头,再发送数据报文的数据区进行发送的。并且,发送线卡在发送多个数据报文时, 也是按照一定顺序,将该多个数据报文依次发送给接收线卡的。因此,发送线卡读取一个信用,将一个数据报文写入该信用对应的地址上之后,会依次读取下一个信用,将下一个数据报文写入该下一个信用对应的地址上,从而,接收线卡只要确定RX队列中当前接收数据报文的存储空间的下一个存储空间上存在了数据报文的报文头,就可以确定当前接收数据报文的存储空间已经完整的接收到了数据报文,也即接收数据报文完毕。但是,在实际应用中,线卡之间传输数据报文是具有突发性的,并且每次可能需要传输多个数据报文,采用上述方法传输数据报文时,由于接收线卡是根据RX队列中当前接收数据报文的存储空间的下一个存储空间上是否存在报文头,来判断该当前接收数据报文的存储空间是否已经接收完毕的,因此对于某一次传输多个数据报文的过程,当发送线卡将最后一个数据报文发送给接收线卡之后,由于已经不存在下一个数据报文需要发送了, 因此接收线卡的RX队列中用于接收该最后一个数据报文的存储空间的下一个存储空间必然不会接收到下一个数据报文的报文头,这就会导致接收线卡误认为该最后一个数据报文迟迟没有接收完毕,从而不能及时的将该最后一个数据报文从RX队列中取走,并转发给数据处理模块进行处理。因此,现有技术中传输报文的方法会导致对数据报文的处理不及时,降低了处理数据报文的效率。

发明内容
本发明实施例提供一种传输报文的方法及装置,用以解决现有技术中传输报文的方法导致对数据报文的处理不及时,降低了处理数据报文的效率的问题。本发明实施例提供的一种传输报文的方法,包括发送线卡在信用池中读取第一信用,将最后一个数据报文发送到读取的所述第一信用对应的地址上;并在所述信用池中读取所述第一信用的下一个信用作为读取的第二信用,生成包含数据报文的报文头的结束报文;所述发送线卡将生成的所述结束报文发送到读取的所述第二信用对应的地址上。本发明实施例提供的一种传输报文的装置,包括信用读取模块,用于在信用池中读取第一信用,并在所述信用池中读取所述第一信用的下一个信用作为读取的第二信用;生成模块,用于生成包含数据报文的报文头的结束报文;
5
发送模块,用于将最后一个数据报文发送到读取的所述第一信用对应的地址上, 并将生成的所述结束报文发送到读取的所述第二信用对应的地址上。本发明实施例提供一种传输报文的方法及装置,该方法发送线卡将最后一个数据报文发送到在信用池中读取的第一信用对应的地址上之后,读取信用池中该第一信用的下一个信用,作为读取的第二信用,并生成包含报文头的结束报文,将该结束报文发送到该第二信用对应的地址上。通过上述方法,接收线卡RX队列中第一信用对应的存储空间上接收到最后一个数据报文后,就会在RX队列中该第一信用对应的存储空间的下一个存储空间, 也即第二信用对应的存储空间上接收到包含报文头的结束报文,从而确定第一信用对应的存储空间已经完整的接收到了最后一个数据报文,可以及时的将该最后一个数据报文转发到数据处理模块进行处理,提高了处理数据报文的效率。


图1为现有技术中的基于PCIE的分布式系统结构示意图;图2为现有技术中线卡之间传输数据报文的过程;图3为现有技术中数据报文的结构示意图;图4为本发明实施例提供的传输报文的过程;图5为本发明实施例提供的结束报文的结构示意图;图6为本发明实施例提供的发送线卡向接收线卡发送各数据报文,并在发送最后一个数据报文后发送结束报文时,发送线卡的信用池中的信用使用情况和接收线卡的RX 队列中存储空间的使用情况示意图;图7为本发明实施例提供的传输报文的装置结构示意图。
具体实施例方式由于现有技术中接收线卡是根据RX队列中当前接收数据报文的存储空间的下一个存储空间上是否存在报文头,来判断该当前接收数据报文的存储空间是否已经接收完毕的,因此本发明实施例为了使接收线卡可以及时的取走最后一个数据报文并进行处理,发送线卡在发送完最后一个数据报文后,读取发送该最后一个数据报文时读取的信用的下一个信用,将包含报文头的结束报文发送到该下一个信用对应的地址上,从而,接收线卡RX 队列当前接收该最后一个数据报文的存储空间已经接收完毕后,下一个存储空间上就会接收到包含报文头的结束报文,因此接收线卡就会确定该下一个存储空间上存在了报文头, 进而确定当前接收该最后一个数据报文的存储空间已经接收完毕,可以及时的将该最后一个数据报文取走并进行处理,提高了处理数据报文的效率。下面结合说明书附图,对本发明实施例进行详细描述。图4为本发明实施例提供的传输报文的过程,具体包括以下步骤S401 发送线卡在信用池中读取第一信用,将最后一个数据报文发送到读取的该第一信用对应的地址上。在本发明实施例中,发送线卡每次发送数据报文可能是多个数据报文,每次发送数据报文时,依次读取信用池中的信用,将每个数据报文分别发送到读取的信用对应的地址上,也即通过DMA将每个数据报文分别写入到依次读取的每个信用对应的地址上。其中,发送最后一个数据报文时所读取的信用即为本发明实施例中的第一信用。S402:在信用池中读取第一信用的下一个信用作为读取的第二信用,生成包含数据报文的报文头的结束报文。在本发明实施例中,发送线卡将最后一个数据报文发送到该第一信用对应的地址上之后,在信用池中读取该第一信用的下一个信用,作为读取的第二信用。并且,生成一个结束报文,该结束报文包括数据报文的报文头,当然,该结束报文也可以包括数据区。本发明实施例中为了提高传输结束报文的效率,该结束报文可以为只包含数据报文的报文头, 而不包含数据区的报文,具体的该结束报文可以为帧间隙(Inter Packet Gap, IPG)报文。 图5为本发明实施例提供的结束报文的结构示意图,如图5所示,该结束报文只包含报文头,报文头具体由报文类型字段和报文长度字段组成,其中,报文类型字段和报文长度字段均为2个字节,与图3所示的数据报文的报文头相同。但是与图3所示的数据报文所不同的是,该结束报文不包含数据区。S403:发送线卡将生成的结束报文发送到读取的第二信用对应的地址上。在本发明实施例中,发送线卡将生成的结束报文发送到该第二信用对应的地址上。由于发送线卡向接收线卡申请信用时,接收线卡对RX队列中的每个信用对应的存储空间的排序顺序,与向发送线卡的信用池中写入每个信用的顺序是相同的,因此发送线卡将结束报文发送到作为第一信用的下一个信用的第二信用对应的地址上时,接收线卡的RX 队列中用于接收最后一个数据报文的第一信用对应的存储空间的下一个存储空间,也即该第二信用对应的存储空间上就会接收到该结束报文。下面举例进行说明,假设接收线卡向发送线卡的信用池中写入了 η个信用,分别
为信用0、信用1、信用2......信用η-l,其中,这η个信用对应接收线卡的存储空间的地址
信息分别为AddO、Addl、Add2.......Addn-1,发送线卡要依次发送三个数据报文,分别为
Data-0, DataU Data-2,则发送线卡向接收线卡发送各数据报文,并在发送最后一个数据报文后发送结束报文时,发送线卡的信用池中的信用使用情况和接收线卡的RX队列中存储空间的使用情况如图6所示。图6为本发明实施例提供的发送线卡向接收线卡发送各数据报文,并在发送最后一个数据报文后发送结束报文时,发送线卡的信用池中的信用使用情况和接收线卡的RX队列中存储空间的使用情况示意图。在图6中,接收线卡建立了 RX队列,RX队列中每个存储空间的排序,与接收线卡在发送线卡的信用池中写入相应的每个信用的顺序相同,也即,接收线卡写入信用池中的每
个信用的顺序为信用0、信用1、信用2......信用Π-1,由于信用0对应接收线卡中地址
信息为AddO的存储空间,信用1对应接收线卡中地址信息为Addl的存储空间,以此类推, 因此接收线卡的RX队列中每个存储空间的排序为AddO、Addl、Add2......Addn-1。发送线卡依次发送Data-0、DataU Data-2这三个数据报文时,假设从信用0开始读取信用,则发送线卡先读取信用0,设置DMA的源地址为Data-O的存储地址,目的地址为读取的信用0对应的地址,也即AddO,将设置的源地址和目的地址放到DMA链上,DMA就会将该源地址中的数据报文Data-O写入到目的地址上,也即发送线卡通过DMA将Data-Ο发送到了接收线卡的RX队列中地址信息为AddO的存储空间上。重复上述步骤,将Data-1、 Data-2分别发送到接收线卡RX队列中地址信息分别为Addl和Add2的存储空间上,至此, 要发送的这三个数据报文已经全部发送完毕。
上述过程中,Data-2即为最后一个数据报文,发送Data_2时所读取的信用2即为第一信用,发送线卡发送完Data-2后,读取信用池中该第一信用的下一个信用作为读取的第二信用,也即读取信用3作为第二信用,并生成包含报文头的结束报文,同样的,设置DMA 的源地址为该结束报文的存储地址,目的地址为信用3对应的地址,也即Add3,DMA则将该结束报文发送到接收线卡RX队列中地址信息为Add3的存储空间上。由于接收线卡判断RX队列中地址信息为Add2的存储空间是否已经完整的接收到数据报文Data-2的方法为判断下一个存储空间,也即地址信息为Add3的存储空间上是否存在报文头,因此,将包含报文头的结束报文发送到地址信息为Add3的存储空间上后,接收线卡就可以确定地址信息为Add2的存储空间已经完整的接收到数据报文Data-2,也即接收Data-2完毕,则可以及时的将Data-2取走并转发给数据处理模块进行处理,从而提高了处理数据报文的效率。在本发明实施例中,为了使接收线卡能够更加准确的判断RX队列中的各存储空间是否已经接收数据报文完毕,以进一步提高数据报文的处理效率,在图4所示的步骤 S401之前,也即发送线卡将最后一个数据报文发送到读取的第一信用对应的地址上之前, 还要确定读取的该第一信用不是该信用池中的最后一个信用。并且,当确定读取的第一信用是信用池中的最后一个信用时,生成包含数据报文的报文头的结束报文,将生成的结束报文发送到读取的第一信用对应的地址上,并重新为信用池申请信用,读取该信用池中重新申请的第一个信用,将读取的信用池中重新申请的第一个信用重新作为读取的第一信用。也即,在发送最后一个数据报文时,如果读取的信用不是信用池中的最后一个信用,则按照正常的发送流程发送该最后一个数据报文,如果读取的信用是信用池中的最后一个信用,则先将结束报文发送到该信用对应的地址上,并重新申请信用,采用重新申请的信用发送最后一个报文,并进行后续步骤。这是由于发送线卡的信用池容量有限,每次申请的信用的个数也是有限的,一般为64个。如果信用池中的信用已经用尽,则需要重新为信用池申请信用,相应的,接收线卡也要重新建立RX队列。如果发送最后一个数据报文时所申请的信用恰好为信用池中的最后一个信用,那么信用池中将不会存在该信用的下一个信用,用来发送结束报文,相应的, 接收线卡的RX队列中也是采用最后一个存储空间接收该最后一个数据报文的,RX队列中也同样不存在下一个存储空间用来接收结束报文,并以此来判断最后一个数据报文是否接收完毕。而即使通过重新申请的信用池中的第一个信用发送结束报文,由于接收线卡此时也重新建立的RX队列,因此接收线卡不能通过重新建立的RX队列中的第一个存储空间上是否存在报文头,来判断之前的RX队列的最后一个存储空间是否已经接收数据报文完毕。因此,这种特殊的情况就需要利用信用池中的最后一个信用发送结束报文,相应的,接收线卡可以根据RX队列中的最后一个存储空间上接收到的结束报文,确定前一个存储空间上已经接收数据报文完毕。此时,发送线卡则重新申请信用,采用重新申请的第一个信用,发送尚未发送的最后一个数据报文,将该重新申请的第一个信用,作为本发明实施例中的第一信用,并进行后续步骤,也即将该最后一个数据报文发送到该重新申请的第一个信用对应的地址上之后,读取重新申请的该第一个信用的下一个信用,即重新申请的第二个信用,作为第二信用,采用该第二信用再次发送结束报文。继续以图6为例进行说明,由于发送线卡的信用池中最多保存η个信用,分别为信用0 信用n-1,其对应的接收线卡RX队列中的存储空间分别为地址信息为AddO Addn-I 的存储空间,因此如果在发送最后一个数据报文时,读取的信用恰好为信用n-1,则信用池中不存在下一个信用,即信用η用来发送后续的结束报文,接收线卡的RX队列中也不存在地址信息为Addn的存储空间来存储结束报文。因此,当发送最后一个数据报文时所读取的信用为信用n-1时,先生成结束报文,并将该结束报文发送到信用n-1对应的地址上,此时接收线卡RX队列中地址信息为Addn-I的存储空间会接收到该结束报文,接收线卡也就可以确定前一个存储空间,即地址信息为Addn-2的存储空间已经接收数据报文完毕。在后续的步骤中,发送线卡重新为信用池申请信用,申请的信用的个数仍为η个, 将重新申请的η个信用记为信用0’ 信用n-Γ,其对应接收线卡重新建立的RX队列中的存储空间分别记为地址信息为AddO’ Addn-Γ的存储空间,则发送线卡读取重新申请的第一个信用,即信用0’,将尚未发送的该最后一个数据报文发送到该信用0’对应的地址上,也即接收线卡重新建立的RX队列中地址信息为AddO’的存储空间上,再读取重新申请的第二个信用,即信用1’,将结束报文发送到该信用1’对应的地址上,也即接收线卡重新建立的RX队列中地址信息为Addl’的存储空间上。至此,接收线卡可以根据RX队列中地址信息为Addl’的存储空间上接收到的结束报文,确定RX队列中地址信息为AddO’的存储空间已经接收数据报文完毕,可以及时的将该数据报文取走并进行处理。在实际应用中,发送线卡每读取一个信用,并将报文发送到该信用对应的地址上之后,就要将该信用释放,也即在信用池中删除该信用,并释放信用池中用来保存该信用的存储空间,相应的,接收线卡将RX队列中的一个存储空间上接收到的数据报文取走之后, 也会释放该存储空间。而本发明实施例中的结束报文为只包含报文头,不包含数据区,也即不包含任何内容的报文,其作用只是为了让接收线卡可以根据该结束报文确定RX队列中前一个存储空间已经接收数据报文完毕,因此,如果发送线卡发送完结束报文后,也将发送该结束报文时所采用的信用释放,无疑会浪费掉一个信用来发送没有任何内容的结束报文。然而,由于发送线卡每次申请的信用的个数是有限的,浪费了信用来发送没有任何内容的结束报文,势必就要增加申请信用的次数,由于发送线卡想接收线卡申请信用的过程非常复杂,每次申请都需要耗费发送线卡和接收线卡较大的开销,因此,浪费信用必然会导致发送线卡和接收线卡的压力增大。本发明实施例中为了节省发送结束报文所采用的信用,以减轻发送线卡和接收线卡的压力,在图4所示的步骤S403之后,也即发送线卡将生成的结束报文发送到读取的第二信用对应的地址上之后,不释放信用池中的该第二信用,并在下一次要发送数据报文时, 从信用池中的该第二信用开始,依次读取信用,将下一次要发送的每个数据报文分别发送到依次读取的信用对应的地址上。也即,发送线卡在发送结束报文之后,不释放发送该结束报文所采用的信用,并在下一次要发送数据报文时,重新利用该信用发送下一次要发送的第一个数据报文,将下一次要发送的第一个数据报文发送到该信用对应的地址上,并继续进行正常的发送数据报文的流程。较佳的,发送线卡不释放该信用池中的第二信用之前,还要确定该第二信用不是该信用池中的最后一个信用。如果该第二信用是信用池中的最后一个信用,则释放该第二信用。这是由于如果利用信用池中的最后一个信用发送数据报文,则发送下一个数据报文时就要重新申请信用,相应的,接收线卡RX队列中的最后一个存储空间接收到该数据报文后,也会根据发送线卡申请信用的请求,重新建立RX队列,但是接收线卡无法根据重新建立的RX队列中的第一个存储空间上是否接收到了报文头,来判断之前的RX队列中的最后一个存储空间是否接收数据报文完毕,因此,如果发送结束报文的信用是信用池中的最后一个信用,则释放该第二信用,在下一次要发送数据报文时,重新申请信用。图7为本发明实施例提供的传输报文的装置结构示意图,具体包括信用读取模块701,用于在信用池中读取第一信用,并在所述信用池中读取所述第一信用的下一个信用作为读取的第二信用;生成模块702,用于生成包含数据报文的报文头的结束报文;发送模块703,用于将最后一个数据报文发送到读取的所述第一信用对应的地址上,并将生成的所述结束报文发送到读取的所述第二信用对应的地址上。所述发送模块703还用于,在将最后一个数据报文发送到读取的所述第一信用对应的地址上之前,确定读取的所述第一信用不是所述信用池中的最后一个信用。所述发送模块703还用于,在将最后一个数据报文发送到读取的所述第一信用对应的地址上之前,确定读取的所述第一信用是所述信用池中的最后一个信用时,将所述生成模块702生成的所述结束报文发送到读取的所述第一信用对应的地址上;所述装置还包括申请模块704,用于重新为所述信用池申请信用;所述信用读取模块701还用于,读取所述信用池中重新申请的第一个信用,将读取的所述信用池中重新申请的第一个信用重新作为读取的第一信用。所述装置还包括信用释放模块705,用于在所述发送模块703将生成的所述结束报文发送到读取的所述第二信用对应的地址上之后,不释放所述信用池中的所述第二信用;所述信用读取模块701还用于,在下一次要发送数据报文时,从所述信用池中的所述第二信用开始,依次读取信用;所述发送模块703还用于,将下一次要发送的每个数据报文分别发送到依次读取的信用对应的地址上。所述信用释放模块705还用于,在不释放所述信用池中的所述第二信用之前,确定所述第二信用不是所述信用池中的最后一个信用。具体的上述传输报文的装置可以位于发送线卡中。本发明实施例提供一种传输报文的方法及装置,该方法发送线卡将最后一个数据报文发送到在信用池中读取的第一信用对应的地址上之后,读取信用池中该第一信用的下一个信用,作为读取的第二信用,并生成包含报文头的结束报文,将该结束报文发送到该第二信用对应的地址上。通过上述方法,接收线卡RX队列中第一信用对应的存储空间上接收到最后一个数据报文后,就会在RX队列中该第一信用对应的存储空间的下一个存储空间, 也即第二信用对应的存储空间上接收到包含报文头的结束报文,从而确定第一信用对应的存储空间已经完整的接收到了最后一个数据报文,可以及时的将该最后一个数据报文转发到数据处理模块进行处理,提高了处理数据报文的效率。显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
权利要求
1.一种传输报文的方法,其特征在于,包括发送线卡在信用池中读取第一信用,将最后一个数据报文发送到读取的所述第一信用对应的地址上;并在所述信用池中读取所述第一信用的下一个信用作为读取的第二信用,生成包含数据报文的报文头的结束报文;所述发送线卡将生成的所述结束报文发送到读取的所述第二信用对应的地址上。
2.如权利要求1所述的方法,其特征在于,将最后一个数据报文发送到读取的所述第一信用对应的地址上之前,所述方法还包括确定读取的所述第一信用不是所述信用池中的最后一个信用。
3.如权利要求1所述的方法,其特征在于,将最后一个数据报文发送到读取的所述第一信用对应的地址上之前,所述方法还包括当确定读取的所述第一信用是所述信用池中的最后一个信用时,生成包含数据报文的报文头的结束报文,将生成的所述结束报文发送到读取的所述第一信用对应的地址上;并重新为所述信用池申请信用,读取所述信用池中重新申请的第一个信用,将读取的所述信用池中重新申请的第一个信用重新作为读取的第一信用。
4.如权利要求1所述的方法,其特征在于,所述发送线卡将生成的所述结束报文发送到读取的所述第二信用对应的地址上之后,所述方法还包括不释放所述信用池中的所述第二信用;并在下一次要发送数据报文时,从所述信用池中的所述第二信用开始,依次读取信用,将下一次要发送的每个数据报文分别发送到依次读取的信用对应地址上。
5.如权利要求4所述的方法,其特征在于,不释放所述信用池中的所述第二信用之前, 所述方法还包括确定所述第二信用不是所述信用池中的最后一个信用。
6.一种传输报文的装置,其特征在于,包括信用读取模块,用于在信用池中读取第一信用,并在所述信用池中读取所述第一信用的下一个信用作为读取的第二信用;生成模块,用于生成包含数据报文的报文头的结束报文;发送模块,用于将最后一个数据报文发送到读取的所述第一信用对应的地址上,并将生成的所述结束报文发送到读取的所述第二信用对应的地址上。
7.如权利要求6所述的装置,其特征在于,所述发送模块还用于,在将最后一个数据报文发送到读取的所述第一信用对应的地址上之前,确定读取的所述第一信用不是所述信用池中的最后一个信用。
8.如权利要求6所述的装置,其特征在于,所述发送模块还用于,在将最后一个数据报文发送到读取的所述第一信用对应的地址上之前,确定读取的所述第一信用是所述信用池中的最后一个信用时,将所述生成模块生成的所述结束报文发送到读取的所述第一信用对应的地址上;所述装置还包括申请模块,用于重新为所述信用池申请信用;所述信用读取模块还用于信用池中重新申请的第一个信用重新作为读取的第一信用。
9.如权利要求6所述的装置,其特征在于,所述装置还包括信用释放模块,用于在所述发送模块将生成的所述结束报文发送到读取的所述第二信用对应的地址上之后,不释放所述信用池中的所述第二信用;所述信用读取模块还用于,在下一次要发送数据报文时,从所述信用池中的所述第二信用开始,依次读取信用;所述发送模块还用于,将下一次要发送的每个数据报文分别发送到依次读取的信用对应的地址上。
10.如权利要求9所述的装置,其特征在于,所述信用释放模块还用于,在不释放所述信用池中的所述第二信用之前,确定所述第二信用不是所述信用池中的最后一个信用。
全文摘要
本发明公开了一种传输报文的方法及装置,用以解决现有技术处理数据报文的效率低的问题。该方法发送线卡将最后一个数据报文发送到第一信用对应的地址上之后,读取信用池中该第一信用的下一个信用,作为读取的第二信用,并生成包含报文头的结束报文,将结束报文发送到该第二信用对应的地址上。通过上述方法,接收线卡RX队列中第一信用对应的存储空间上接收到最后一个数据报文后,会在RX队列中该第一信用对应的存储空间的下一个存储空间,也即第二信用对应的存储空间上接收到包含报文头的结束报文,从而确定第一信用对应的存储空间已经完整的接收到了最后一个数据报文,可以及时的将该最后一个数据报文进行处理,提高了处理数据报文的效率。
文档编号H04L12/56GK102523168SQ20111044093
公开日2012年6月27日 申请日期2011年12月23日 优先权日2011年12月23日
发明者杨涛 申请人:福建星网锐捷网络有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1