[发明专利]避免网络交换芯片输出报文乱序的方法及系统在审
| 申请号: | 201510672693.3 | 申请日: | 2015-10-15 |
| 公开(公告)号: | CN105357148A | 公开(公告)日: | 2016-02-24 |
| 发明(设计)人: | 陈轶昊 | 申请(专利权)人: | 盛科网络(苏州)有限公司 |
| 主分类号: | H04L12/863 | 分类号: | H04L12/863;H04L29/08 |
| 代理公司: | 苏州威世朋知识产权代理事务所(普通合伙) 32235 | 代理人: | 杨林洁 |
| 地址: | 215021 江苏省苏州市*** | 国省代码: | 江苏;32 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 避免 网络 交换 芯片 输出 报文 方法 系统 | ||
技术领域
本发明涉及网络通信领域,尤其涉及一种避免网络交换芯片输出报文乱序的方法及系统。
背景技术
数据包传输过程中,其被分解为数据包头和数据包负载,每个所述数据包负载包括若干个具有固定长度的报文段;所述数据包头和若干个报文段通常经过不同的途径进行处理,转发,由于其产生的顺序不同,以及传递过程中存在的各种因素的干扰,导致报文在输出过程中,数据包头和数据包负载相互乱序,而多个数据包负载所包括的若干个报文段也相互乱序,进而导致数据传输速率低,数据处理过程相对复杂,更为严重的是,还有可能导致报文段丢失,进而损毁数据,导致丢包。
发明内容
本发明的目的在于提供一种避免网络交换芯片输出报文乱序的方法及系统。
为实现上述发明目的之一,本发明一实施方式提供了一种避免网络交换芯片输出报文乱序的方法;所述方法包括:实时接收数据包,所述数据包包括数据包头和数据包负载;每个所述数据包负载包括若干个具有固定长度的报文段;所述报文段包括起始报文段,所述起始报文段为数据包负载输出过程中,最先输出的报文段;
将数据包头发送到数据包头缓存区,
以及为每个报文段分配一个报文段缓存地址,并依据所述报文段缓存地址将各个所述报文段发送到数据包负载缓存区;
根据各个所述报文段、匹配所述报文段的报文段缓存地址建立报文段缓存链表以及报文段缓存状态指示表;
调取所述数据包头缓存区中的数据包头,以及依据报文段缓存链表、报文段缓存状态指示表调取所述数据包负载缓存区的起始报文段;
当同一个所述数据包的数据包头以及数据包负载包括的多个数据段全部调取完成时,将其进行重组输出。
作为本发明一实施方式的进一步改进,所述报文段缓存链表包括:各个报文段的名称、各个报文段携带的报文段缓存地址以及与当前报文段相邻的报文段的报文段缓存地址。
作为本发明一实施方式的进一步改进,报文段缓存状态指示表包括:当前发送的报文段,所述报文段所携带的报文段缓存地址以及当前发送的报文段所属的数据包负载中,第一个报文段的报文段缓存地址。
作为本发明一实施方式的进一步改进,设置一可用报文段缓存地址库,用于存储报文缓存地址;
所述“以及为每个报文段分配一个报文段缓存地址”具体包括:
查询报文段缓存地址库,随机抽取一个报文段缓存地址分配给当前发送的报文段;
或按序抽取一个报文段缓存地址分配给当前发送的报文段;
当报文段输出后,将输出的报文段所携带的报文段缓存地址归还到所述报文段缓存地址库。
作为本发明一实施方式的进一步改进,所述“调取所述数据包头缓存区中的数据包头,以及依据报文段缓存链表、报文段缓存状态指示表调取所述数据包负载缓存区的报文段;”具体包括:
当所述数据包头缓存区接收到所述数据包头或所述数据包负载缓存区接收到起始报文段后,监测并判断所述数据包头对应的起始报文段是否已存储到所述数据包负载缓存区,或所述起始报文段对应的数据包头是否已存储到所述数据包头缓存区;
若是,从所述数据包头缓存区调取数据包头,从所述数据包负载缓存区调取对应的起始报文段,并依据所述起始报文段查询报文段缓存链表,调取当前报文段相邻的下一报文段,直至当前数据的报文段全部调取完毕,将其进行重组输出;
若否,继续监测。
为实现上述发明目的之一,本发明一实施方式提供了一种避免网络交换芯片输出报文乱序的系统,所述系统包括:数据接收模块、数据处理模块、数据缓存模块;
数据接收模块,用于实时接收数据包,所述数据包包括数据包头和数据包负载;每个所述数据包负载包括若干个具有固定长度的报文段;所述报文段包括起始报文段,所述起始报文段为数据包负载输出过程中,最先输出的报文段;
数据缓存模块包括:数据包头缓存区、数据包负载缓存区;
数据处理模块,用于根据各个所述报文段、匹配所述报文段的报文段缓存地址建立报文段缓存链表以及报文段缓存状态指示表;
调取所述数据包头缓存区中的数据包头,以及依据报文段缓存链表、报文段缓存状态指示表调取所述数据包负载缓存区的起始报文段;
当同一个所述数据包的数据包头以及数据包负载包括的多个数据段全部调取完成时,将其进行重组输出。
作为本发明一实施方式的进一步改进,所述报文段缓存链表包括:各个报文段的名称、各个报文段携带的报文段缓存地址以及与当前报文段相邻的报文段的报文段缓存地址。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于盛科网络(苏州)有限公司,未经盛科网络(苏州)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510672693.3/2.html,转载请声明来源钻瓜专利网。





