避免网络交换芯片输出报文乱序的方法及系统技术方案

技术编号:12900495 阅读:106 留言:0更新日期:2016-02-24 10:56
本发明专利技术提供一种避免网络交换芯片输出报文乱序的方法及系统,所述方法包括:实时接收数据包,其包括数据包头和数据包负载;每个数据包负载分解为若干个报文段;将数据包头发送到数据包头缓存区,以及为每个报文段分配一个报文段缓存地址,并依据报文段缓存地址将各个报文段发送到数据包负载缓存区;根据各个报文段、匹配报文段的报文段缓存地址建立报文段缓存链表以及报文段缓存状态指示表;调取数据包头,以及依据报文段缓存链表、报文段缓存状态指示表调取起始报文段;当同一个数据包的数据包头以及数据包负载包括的多个数据段全部调取完成时,将其进行重组输出。本发明专利技术处理过程简单,数据传输精准、传输速率快。

【技术实现步骤摘要】

本专利技术涉及网络通信领域,尤其涉及一种避免网络交换芯片输出报文乱序的方法及系统
技术介绍
数据包传输过程中,其被分解为数据包头和数据包负载,每个所述数据包负载包括若干个具有固定长度的报文段;所述数据包头和若干个报文段通常经过不同的途径进行处理,转发,由于其产生的顺序不同,以及传递过程中存在的各种因素的干扰,导致报文在输出过程中,数据包头和数据包负载相互乱序,而多个数据包负载所包括的若干个报文段也相互乱序,进而导致数据传输速率低,数据处理过程相对复杂,更为严重的是,还有可能导致报文段丢失,进而损毁数据,导致丢包。
技术实现思路
本专利技术的目的在于提供一种避免网络交换芯片输出报文乱序的方法及系统。为实现上述专利技术目的之一,本专利技术一实施方式提供了一种避免网络交换芯片输出报文乱序的方法;所述方法包括:实时接收数据包,所述数据包包括数据包头和数据包负载;每个所述数据包负载包括若干个具有固定长度的报文段;所述报文段包括起始报文段,所述起始报文段为数据包负载输出过程中,最先输出的报文段; 将数据包头发送到数据包头缓存区, 以及为每个报文段分配一个报文段缓存地址,并依据所述报文段缓存地址将各个所述报文段发送到数据包负载缓存区; 根据各个所述报文段、匹配所述报文段的报文段缓存地址建立报文段缓存链表以及报文段缓存状态指不表; 调取所述数据包头缓存区中的数据包头,以及依据报文段缓存链表、报文段缓存状态指示表调取所述数据包负载缓存区的起始报文段; 当同一个所述数据包的数据包头以及数据包负载包括的多个数据段全部调取完成时,将其进行重组输出。作为本专利技术一实施方式的进一步改进,所述报文段缓存链表包括:各个报文段的名称、各个报文段携带的报文段缓存地址以及与当前报文段相邻的报文段的报文段缓存地址。作为本专利技术一实施方式的进一步改进,报文段缓存状态指示表包括:当前发送的报文段,所述报文段所携带的报文段缓存地址以及当前发送的报文段所属的数据包负载中,第一个报文段的报文段缓存地址。作为本专利技术一实施方式的进一步改进,设置一可用报文段缓存地址库,用于存储报文缓存地址; 所述“以及为每个报文段分配一个报文段缓存地址”具体包括: 查询报文段缓存地址库,随机抽取一个报文段缓存地址分配给当前发送的报文段; 或按序抽取一个报文段缓存地址分配给当前发送的报文段; 当报文段输出后,将输出的报文段所携带的报文段缓存地址归还到所述报文段缓存地址库。作为本专利技术一实施方式的进一步改进,所述“调取所述数据包头缓存区中的数据包头,以及依据报文段缓存链表、报文段缓存状态指示表调取所述数据包负载缓存区的报文段;”具体包括: 当所述数据包头缓存区接收到所述数据包头或所述数据包负载缓存区接收到起始报文段后,监测并判断所述数据包头对应的起始报文段是否已存储到所述数据包负载缓存区,或所述起始报文段对应的数据包头是否已存储到所述数据包头缓存区; 若是,从所述数据包头缓存区调取数据包头,从所述数据包负载缓存区调取对应的起始报文段,并依据所述起始报文段查询报文段缓存链表,调取当前报文段相邻的下一报文段,直至当前数据的报文段全部调取完毕,将其进行重组输出; 若否,继续监测。为实现上述专利技术目的之一,本专利技术一实施方式提供了一种避免网络交换芯片输出报文乱序的系统,所述系统包括:数据接收模块、数据处理模块、数据缓存模块; 数据接收模块,用于实时接收数据包,所述数据包包括数据包头和数据包负载;每个所述数据包负载包括若干个具有固定长度的报文段;所述报文段包括起始报文段,所述起始报文段为数据包负载输出过程中,最先输出的报文段; 数据缓存模块包括:数据包头缓存区、数据包负载缓存区; 数据处理模块,用于根据各个所述报文段、匹配所述报文段的报文段缓存地址建立报文段缓存链表以及报文段缓存状态指示表; 调取所述数据包头缓存区中的数据包头,以及依据报文段缓存链表、报文段缓存状态指示表调取所述数据包负载缓存区的起始报文段; 当同一个所述数据包的数据包头以及数据包负载包括的多个数据段全部调取完成时,将其进行重组输出。作为本专利技术一实施方式的进一步改进,所述报文段缓存链表包括:各个报文段的名称、各个报文段携带的报文段缓存地址以及与当前报文段相邻的报文段的报文段缓存地址。作为本专利技术一实施方式的进一步改进,报文段缓存状态指示表包括:当前发送的报文段,所述报文段所携带的报文段缓存地址以及当前发送的报文段所属的数据包负载中,第一个报文段的报文段缓存地址。作为本专利技术一实施方式的进一步改进,数据缓存模块还包括可用报文段缓存地址库,用于存储报文缓存地址; 所述数据处理模块还用于:查询报文段缓存地址库,随机抽取一个报文段缓存地址分配给当前发送的报文段; 或按序抽取一个报文段缓存地址分配给当前发送的报文段; 当报文段输出后,将输出的报文段所携带的报文段缓存地址归还到所述报文段缓存地址库。作为本专利技术一实施方式的进一步改进,所述数据处理模块还用于:当所述数据包头缓存区接收到所述数据包头或所述数据包负载缓存区接收到起始报文段后,监测并判断所述数据包头对应的起始报文段是否已存储到所述数据包负载缓存区,或所述起始报文段对应的数据包头是否已存储到所述数据包头缓存区; 若是,从所述数据包头缓存区调取数据包头,从所述数据包负载缓存区调取对应的起始报文段,并依据所述起始报文段查询报文段缓存链表,调取当前报文段相邻的下一报文段,直至当前数据的报文段全部调取完毕,将其进行重组输出; 若否,继续监测。与现有技术相比,本专利技术的有益效果是:本专利技术提供了一种避免网络交换芯片输出报文乱序的方法及系统,该方法及系统使用最小的代价,通过使用报文段缓存链表使乱序数据重新匹配,芯片成本低,处理过程简单,数据传输精准、传输速率快,并且可以有效减小数据丢失率。【附图说明】图1是本专利技术一实施方式中避免网络交换芯片输出报文乱序的方法的流程图; 图2是本专利技术一实施方式中避免网络交换芯片输出报文乱序的系统的模块图; 图3A~图3E是本专利技术一具体示例中报文传递过程的示意图。【具体实施方式】以下将结合附图所示的【具体实施方式】对本专利技术进行详细描述。但这些实施方式并不限制本专利技术,本领域的普通技术人员根据这些实施方式所做出的结构、方法、或功能上的变换均包含在本专利技术的保护范围内。如图1所示,本专利技术的一实施方式中,避免网络交换芯片输出报文乱序的方法包括: S1、实时接收数据包。所述数据包包括数据包头和数据包负载;每当前第1页1 2 3 4 本文档来自技高网...

【技术保护点】
一种避免网络交换芯片输出报文乱序的方法,其特征在于,所述方法包括:实时接收数据包,所述数据包包括数据包头和数据包负载;每个所述数据包负载包括若干个具有固定长度的报文段;所述报文段包括起始报文段,所述起始报文段为数据包负载输出过程中,最先输出的报文段;将数据包头发送到数据包头缓存区,以及为每个报文段分配一个报文段缓存地址,并依据所述报文段缓存地址将各个所述报文段发送到数据包负载缓存区;根据各个所述报文段、匹配所述报文段的报文段缓存地址建立报文段缓存链表以及报文段缓存状态指示表;调取所述数据包头缓存区中的数据包头,以及依据报文段缓存链表、报文段缓存状态指示表调取所述数据包负载缓存区的起始报文段;当同一个所述数据包的数据包头以及数据包负载包括的多个数据段全部调取完成时,将其进行重组输出。

【技术特征摘要】

【专利技术属性】
技术研发人员:陈轶昊
申请(专利权)人:盛科网络苏州有限公司
类型:发明
国别省市:江苏;32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1