This application discloses a message forwarding method and network equipment. The method of message forwarding includes: extracting the memory block information stored in the memory block address pool, storing the message received by the input and output hardware into the memory block indicated by the memory block information, obtaining the description information of the message, and putting the description information of the message into the first receiving queue through the receiving thread; Packet queue reads description information; a memory block information marked as idle state in the second receiving queue is stored in the memory block address pool by the receiving thread, and description information read from the first receiving queue is put into the second receiving queue; description information is read from the second receiving queue by the application process corresponding to the second receiving queue, according to the second receiving queue. The read description information retrieves the message and marks the memory block information in the second packet receiving queue to indicate the memory block in which the message is retrieved as idle.
【技术实现步骤摘要】
一种报文转发方法及网络设备
本申请实施例涉及但不限于通信
,尤指一种报文转发方法及网络设备。
技术介绍
随着第五代移动通信技术(5G,Fifth-generation)时代的到来,对通信网络的传输速率、性能提出了更高的需求,这就要求在网络数据传输过程中,网络节点处理报文的速率要越来越快,反映到路由器或交换机等设备上,就要求报文能够快速地在设备内部网络中传输、处理。
技术实现思路
本申请实施例提供了一种报文转发方法及网络设备,可以提高网络设备内部报文的传输速率。一方面,本申请实施例提供一种报文转发方法,包括:从内存块地址池取出其中存放的内存块信息,将输入输出硬件接收到的报文存放到所述内存块信息指示的内存块,得到所述报文的描述信息,将所述报文的描述信息放入第一收包队列;通过收包线程从所述第一收包队列读取描述信息;通过所述收包线程将第二收包队列内存放的一个标记为空闲状态的内存块信息存放到所述内存块地址池,并将从所述第一收包队列读取的描述信息放入所述第二收包队列;通过与所述第二收包队列对应的应用进程从所述第二收包队列读取描述信息,根据从所述第二收包队列读取的描述信息获取报文,并将所述第二收包队列中用于指示所获取的报文所在内存块的内存块信息标记为空闲状态;其中,所述内存块地址池内存放的内存块信息与所述第二收包队列中存放的内存块信息不重复。另一方面,本申请实施例提供一种网络设备,包括:输入输出硬件、处理器以及存储器;所述输入输出硬件适于接收或发送报文;所述存储器适于存储报文转发程序,所述报文转发程序被所述处理器执行时实现上述报文转发方法的步骤。另一方面,本申请实施例 ...
【技术保护点】
1.一种报文转发方法,包括:从内存块地址池取出其中存放的内存块信息,将输入输出硬件接收到的报文存放到所述内存块信息指示的内存块,得到所述报文的描述信息,将所述报文的描述信息放入第一收包队列;通过收包线程从所述第一收包队列读取描述信息;通过所述收包线程将第二收包队列内存放的一个标记为空闲状态的内存块信息存放到所述内存块地址池,并将从所述第一收包队列读取的描述信息放入所述第二收包队列;通过与所述第二收包队列对应的应用进程从所述第二收包队列读取描述信息,根据从所述第二收包队列读取的描述信息获取报文,并将所述第二收包队列中用于指示所获取的报文所在内存块的内存块信息标记为空闲状态;其中,所述内存块地址池内存放的内存块信息与所述第二收包队列中存放的内存块信息不重复。
【技术特征摘要】
1.一种报文转发方法,包括:从内存块地址池取出其中存放的内存块信息,将输入输出硬件接收到的报文存放到所述内存块信息指示的内存块,得到所述报文的描述信息,将所述报文的描述信息放入第一收包队列;通过收包线程从所述第一收包队列读取描述信息;通过所述收包线程将第二收包队列内存放的一个标记为空闲状态的内存块信息存放到所述内存块地址池,并将从所述第一收包队列读取的描述信息放入所述第二收包队列;通过与所述第二收包队列对应的应用进程从所述第二收包队列读取描述信息,根据从所述第二收包队列读取的描述信息获取报文,并将所述第二收包队列中用于指示所获取的报文所在内存块的内存块信息标记为空闲状态;其中,所述内存块地址池内存放的内存块信息与所述第二收包队列中存放的内存块信息不重复。2.根据权利要求1所述的方法,其特征在于,所述内存块信息包括内存块首地址或者内存块标识;所述内存块为一段地址连续的物理内存,用于缓存所述输入输出硬件接收到的报文。3.根据权利要求2所述的方法,其特征在于,所述从内存块地址池取出其中存放的内存块信息之前,所述方法还包括:接收到所述应用进程的收包请求后,给所述应用进程分配至少一个物理地址连续的内存片,从所述内存片切割出多个内存块,将所述多个内存块对应的内存块信息分别存放到所述内存块地址池和所述第二收包队列,并标记存放到所述第二收包队列的内存块信息为空闲状态;或者,预留至少一个物理地址连续的内存片,接收到所述应用进程的收包请求后,从所述内存片切割出多个内存块,将所述多个内存块对应的内存块信息分别存放到所述内存块地址池和所述第二收包队列,并标记存放到所述第二收包队列的内存块信息为空闲状态。4.根据权利要求1所述的方法,其特征在于,所述报文的描述信息包括:缓存所述报文的内存块的内存块首地址、所述报文的长度以及所述报文基于所述内存块首地址的偏移信息。5.根据权利要求1所述的方法,其特征在于,所述通过收包线程从所述第一收包队列读取描述信息之后,所述方法还包括:当所述第二收包队列中没有标记为空闲状态的内存块信息,则通过所述收包线程将所述描述信息所对应的内存块信息放回所述内存块地址池。6.根据权利要求1所述的方法,其特征在于,所述通过收包线程从所述第一收包队列读取描述信息之后,所述方法还包括:通过所述收包线程根据从所述第一收包队列读取的描述信息,读取在所述描述信息指示的物理地址缓存的报文,通过解析读取到的报文,确定所述读取到的报文对应的第二收包队列;其中,所述通过所述收包线程将第二收包队列内存储的一个标记为空闲状态的内存块信息存放到所述内存块地址池,并将从所述第一收包队列读取的描述信息放入所述第二收包队列,包括:通过所述收包线程将所述读取到的报文对应的第二收包队列内存放的一个标记为空闲状态的内存块信息存放到所述内存块地址池,并将从所述第一收包队列读取的描述信息放入所述第二收包队列。7.根据权利要求6所述的方法,其特征在于,所述通过所述收包线程根据从所述第一收包队列读取的描述信息,读取在所述描述信息指示的物理地址缓存的报文,通过解析读取到的报文,确定所述读取到的报文对应的第二收包队列,包括:通过将从所述第一收包队列读取的描述信息映射到虚拟地址,读取并解析报文,得到所述报文的特征信息;根据解析出的报文的特征信息,确定接收所述报文的应用进程以及所述报文所属的优先级;根据接收所述报文的应用进程、所述报文所属的优先级、以及所述应用进程对应的第二收包队列与优先级的对应关系,确定所述报文对应的第二收包队列。8.根据权利要求1所述的方法,其特征在于,所述从内存块地址池取出其中存放的内存块信息之前,所述方...
【专利技术属性】
技术研发人员:冯仰忠,
申请(专利权)人:中兴通讯股份有限公司,
类型:发明
国别省市:广东,44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。