[发明专利]一种节省内存的实现方法及装置有效
申请号: | 201310567299.4 | 申请日: | 2013-11-13 |
公开(公告)号: | CN104639511B | 公开(公告)日: | 2018-08-03 |
发明(设计)人: | 李晓辉;胡胜发 | 申请(专利权)人: | 安凯(广州)微电子技术有限公司 |
主分类号: | H04L29/06 | 分类号: | H04L29/06;H04B5/00 |
代理公司: | 深圳中一专利商标事务所 44237 | 代理人: | 张全文 |
地址: | 510663 广东省广州市*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 节省 内存 实现 方法 装置 | ||
1.一种节省内存的实现方法,其特征在于,包括:
当接收到分片时,判断重组缓冲区中是否存储有与接收到的分片为同类型的分片,是则将所述重组缓冲区中存储的同类型的分片与所述接收到的分片进行组合,如果组合结果为一个完整的数据包则将组合得到数据包发送给上层;
所述将所述重组缓冲区中存储的同类型的分片与所述接收到的分片进行组合,具体为:
A、设置一个数组变量,将所述重组缓冲区中存储的同类型的分片作为当前分片;
B、判断当前分片的数据长度是否大于所述数组变量的长度,是则执行E,否则执行C;
C、从所述重组缓冲区中读取当前分片的数据,并将其写入到所述数组变量中,将当前分片之后的分片移动到当前分片的位置处;
D、读取所述数组变量中的数据并将其写入到所述重组缓冲区中所述接收到的分片的首部之前;
E、从所述重组缓冲区中的当前分片中读取与数组变量长度相等的数据,并将读取的数据写入到所述数组变量中,将当前分片之后的分片移动到当前分片中已读取完数据的位置处;
F、读取所述数组变量中的数据并将其写入到所述重组缓冲区中接收到的分片的首部之前,用所述重组缓冲区中当前分片的剩余数据更新当前分片,返回B。
2.如权利要求1所示的方法,其特征在于,如果所述组合结果不为一个完整的数据包则等待接收分片;
如判断重组缓冲区中没有与所述接收到的分片同类型的分片,则将所述接收到的分片存储到所述重组缓冲区中,等待接收分片。
3.如权利要求1所示的方法,其特征在于,所述判断重组缓冲区中是否存储有与所述接收到的分片为同类型的分片之前还包括:
判断接收到的分片是否为一个完整的数据包,是则结束,否则继续。
4.如权利要求1所示的方法,其特征在于,将所述接收到的分片存储到所述重组缓冲区中具体为:调用Lock函数将接收到的分片存储到重组缓冲区的尾部。
5.如权利要求1所示的方法,其特征在于,所述将所述重组缓冲区中存储的同类型的分片与所述接收到的分片进行组合,具体为:调用Unlock函数将所述重组缓冲区中存储的同类型的分片取出后再与所述接收到的分片进行组合。
6.一种节省内存的实现装置,其特征在于,包括:
接收模块,用于接收分片;
第二判断模块,用于判断重组缓冲区中是否存储有与接收到的分片为同类型的分片,是则触发组合模块;
所述组合模块,用于将所述重组缓冲区中存储的同类型的分片与所述接收到的分片进行组合;
第三判断模块,用于判断所述组合模块的组合结果是否为一个完整的数据包,是则触发发送模块;
所述发送模块,用于将组合得到数据包发送给上层;
所述组合模块包括:
设置单元,用于设置一个数组变量,将所述重组缓冲区中存储的同类型的分片作为当前分片;
第一判断单元,用于判断当前分片的数据长度是否大于所述数组变量的长度,是则触发第二读取写入单元,否则触发第一读取写入单元;
所述第一读取写入单元,用于从所述重组缓冲区中读取当前分片的数据,并将其写入到所述数组变量中;
第一移动单元,用于将当前分片之后的分片移动到当前分片的位置处;
所述第二读取写入单元,用于读取所述数组变量中的数据并将其写入到所述重组缓冲区中接收到的分片的首部之前;
第三读取写入单元,用于从所述重组缓冲区中的当前分片中读取与数组变量长度相等的数据,并将读取的数据写入到所述数组变量中;
第二移动单元,用于将当前分片之后的分片移动到当前分片中已读取完数据的位置处;
第四读取写入单元,用于读取所述数组变量中的数据并将其写入到所述重组缓冲区中接收到的分片的首部之前,用所述重组缓冲区中当前分片的剩余数据更新当前分片。
7.如权利要求6所示的装置,其特征在于,还包括:
存储模块,用于当所述第二判断模块判断为否时将所述接收到的分片存储到所述重组缓冲区中;
所述第三判断模块判断为否是触发所述接收模块。
8.如权利要求6所示的装置,其特征在于,还包括:
第一判断模块,用于判断接收到的分片是否为一个完整的数据包,是则结束,否则触发所述第二判断模块。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于安凯(广州)微电子技术有限公司,未经安凯(广州)微电子技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310567299.4/1.html,转载请声明来源钻瓜专利网。