一种数据发送方法及装置制造方法及图纸

技术编号:15334739 阅读:50 留言:0更新日期:2017-05-16 21:50
本发明专利技术公开一种数据发送方法及装置,应用于电子设备,该方法包括:根据接收到的待发送的报文的长度及预设的预留存储空间的大小,并将所述报文存储到对应大小的存储空间,将所述报文划分为多个子报文,每个子报文的长度不大于所述最大报文段长度;将所述多个子报文划分到至少两个报文组中,针对每个报文组中的每个子报文,缓存该子报文对应的第一存储空间之前且相邻的设定长度的第二存储空间存储的数据,在所述第二存储空间中添加所述子报文对应的报文头并发送封装后的所述子报文,并将缓存的所述数据还原到所述第二存储空间。用以解决现有技术中子报文添加报文头占用大量处理资源,网络延时增加和功耗增加的问题。

【技术实现步骤摘要】
一种数据发送方法及装置
本专利技术涉及数据通信
,尤其涉及一种数据发送方法及装置。
技术介绍
随着网络通信的普及和推广,网络通信为人们带来了便利。在网络通信中网络数据的传输更是其中最重要的一环,现有的网络通信中因为每种物理网络设备接口一般会规定链路层数据帧的最大长度,称之为最大传输单元(MaximumTransmissionUnit,MTU),在进行报文传输时,整个报文的长度不能大于MTU。而在具体传输时每个报文都会封装报文头,因此在进行报文传输时,每个报文的实际长度不能超过最大报文段的长度(ManagementSupportSystem,MSS)。所以报文进行传输时,如果长度大于最大传输单元就需要对报文进行分片处理,分片是指将一个报文划分为多个子报文进行传输。接收端接收到每个子报文,会将接收到的子报文进行重组。在现有技术将报文分片后,在发送每个子报文之前,在每个子报文之前添加报文头时,需要先拷贝待发送的子报文,在该子报文之前添加报文头然后发送,但是报文分片后包含的子报文的数量可能很多,如果对每个子报文都进行拷贝需要使用很多的处理资源,意味着网络延时的增加和功耗的增加。
技术实现思路
本专利技术实施例提供一种数据发送方法及装置,用以解决现有技术中子报文添加报文头占用大量处理资源,网络延时增加和功耗增加的问题。本专利技术实施例提供了一种数据发送方法,应用于电子设备,该方法包括:根据接收到的待发送的报文的长度及预设的预留存储空间的大小,确定所述报文占用的存储空间的大小,并将所述报文存储到对应大小的存储空间,其中存储后所述报文的尾部与所述存储空间的尾部对齐,所述预留存储空间的大小不小于一个报文头的长度;判断所述报文的长度是否大于最大报文段长度MSS,如果是,将所述报文划分为多个子报文,每个子报文的长度不大于所述MSS;将所述多个子报文划分到至少两个报文组中,每个报文组包括至少两个子报文,且每个报文组包含的任意两个子报文不相邻;针对每个报文组中的每个子报文,缓存该子报文对应的第一存储空间之前且相邻的设定长度的第二存储空间存储的数据,在所述第二存储空间中添加所述子报文对应的报文头并发送封装后的所述子报文,并将缓存的所述数据还原到所述第二存储空间,其中所述设定长度为报文头长度。进一步地,所述缓存该子报文对应的第一存储空间之前且相邻的设定长度的第二存储空间存储的数据之前,所述方法还包括:判断所述第二存储空间的存储状态是否为可用状态,如果否,进行后续步骤;发送封装后的所述子报文之后,所述方法还包括:将所述第一存储空间的存储状态修改为可用状态。进一步地,当所述第二存储空间的存储状态为可用状态时,所述方法还包括:直接在所述第二存储空间中添加所述子报文对应的报文头;发送封装后的所述子报文,并将所述第一存储空间的存储状态修改为可用状态。进一步地,所述缓存该子报文对应的第一存储空间之前且相邻的设定长度的第二存储空间存储的数据之前,所述方法还包括:确定每个报文组的发送顺序;根据所述发送顺序,依次发送每个报文组中的每个子报文。进一步地,所述确定每个报文组的发送顺序包括:统计在进行子报文发送时,报文组的所有发送顺序集合;针对所述发送顺序集合中包含的每个候选发送顺序,统计该候选发送顺序下,针对每个子报文发送时,该子报文对应的第一存储空间之前的第二存储空间的存储状态为不可用状态,缓存所述第二存储空间存储的数据的次数;将所述次数最小的候选发送顺序确定为报文组的发送顺序。进一步地,当判断所述报文的长度不大于最大报文段长度MSS时,所述方法还包括:在所述待发送的报文所对应的第三存储空间之前且相邻的设定长度的第四存储空间中添加所述报文对应的报文头,并发送封装后的所述报文。本专利技术实施例提供了一种数据发送装置,应用于电子设备,该装置包括:存储模块,用于根据接收到的待发送的报文的长度及预设的预留存储空间的大小,确定所述报文占用的存储空间的大小,并将所述报文存储到对应大小的存储空间,其中存储后所述报文的尾部与所述存储空间的尾部对齐,所述预留存储空间的大小不小于一个报文头的长度;第一判断模块,用于判断所述报文的长度是否大于最大报文段长度MSS;第一划分模块,用于当第一判断模块的判断结果为是时,将所述报文划分为多个子报文,每个子报文的长度不大于所述MSS;第二划分模块,用于将所述多个子报文划分到至少两个报文组中,每个报文组包括至少两个子报文,且每个报文组包含的任意两个子报文不相邻;发送模块,用于针对每个报文组中的每个子报文,缓存该子报文对应的第一存储空间之前且相邻的设定长度的第二存储空间存储的数据,在所述第二存储空间中添加所述子报文对应的报文头并发送封装后的所述子报文,并将缓存的所述数据还原到所述第二存储空间,其中所述设定长度为报文头长度。进一步地,所述装置还包括:第二判断模块,用于判断所述第二存储空间的存储状态是否为可用状态;所述发送模块,还用于当第二判断模块的判断结果为否时,缓存该子报文对应的第一存储空间之前且相邻的设定长度的第二存储空间存储的数据,在所述第二存储空间中添加所述子报文对应的报文头并发送封装后的所述子报文;所述装置还包括:状态修改模块,用于将所述子报文对应的第一存储空间的存储状态修改为可用状态。进一步地,所述发送模块,还用于当第二判断模块的判断结果为是时,在所述第二存储空间中添加所述子报文对应的报文头并发送;所述状态修改模块,还用于将所述第一存储空间的存储状态修改为可用状态。进一步地,所述发送模块,还用于确定每个报文组的发送顺序;根据所述发送顺序,依次发送每个报文组中的每个字报文。进一步地,所述发送模块,具体用于统计在进行子报文发送时,报文组的所有发送顺序集合;针对所述发送顺序集合中包含的每个候选发送顺序,统计该候选发送顺序下,针对每个子报文发送时,该子报文对应的第一存储空间之前的第二存储空间的存储状态为不可用状态,缓存所述第二存储空间存储的数据的次数;将所述次数最小的候选发送顺序确定为报文组的发送顺序。进一步地,所述发送模块,还用于当用于当所述第一判断模块的判断结果为否时,在所述待发送的报文所对应的第三存储空间之前且相邻的设定长度的第四存储空间中添加所述报文对应的报文头,并发送封装后的所述报文。本专利技术实施例提供一种数据发送方法及装置,该方法包括:根据接收到的待发送的报文的长度及预设的预留存储空间的大小,确定所述报文占用的存储空间的大小,并将所述报文存储到对应大小的存储空间,其中存储后所述报文的尾部与所述存储空间的尾部对齐,所述预留存储空间的大小不小于一个报文头的长度;判断所述报文的长度是否大于最大报文段长度MSS,如果是,将所述报文划分为多个子报文,每个子报文的长度不大于所述MSS;将所述多个子报文划分到至少两个报文组中,每个报文组包括至少两个子报文,且每个报文组包含的任意两个子报文不相邻;针对每个报文组中的每个子报文,缓存该子报文对应的第一存储空间之前且相邻的设定长度的第二存储空间存储的数据,在所述第二存储空间中添加所述子报文对应的报文头并发送封装后的所述子报文,并将缓存的所述数据还原到所述第二存储空间,其中所述设定长度为报文头长度。由于在本专利技术实施例中,将子报文划分到至少两个报文组,针对每个报文组中的子报文进行发送,另外针对每个本文档来自技高网...
一种数据发送方法及装置

【技术保护点】
一种数据发送方法,其特征在于,应用于电子设备,该方法包括:根据接收到的待发送的报文的长度及预设的预留存储空间的大小,确定所述报文占用的存储空间的大小,并将所述报文存储到对应大小的存储空间,其中存储后所述报文的尾部与所述存储空间的尾部对齐,所述预留存储空间的大小不小于一个报文头的长度;判断所述报文的长度是否大于最大报文段长度MSS,如果是,将所述报文划分为多个子报文,每个子报文的长度不大于所述MSS;将所述多个子报文划分到至少两个报文组中,每个报文组包括至少两个子报文,且每个报文组包含的任意两个子报文不相邻;针对每个报文组中的每个子报文,缓存该子报文对应的第一存储空间之前且相邻的设定长度的第二存储空间存储的数据,在所述第二存储空间中添加所述子报文对应的报文头并发送封装后的所述子报文,并将缓存的所述数据还原到所述第二存储空间,其中所述设定长度为报文头长度。

【技术特征摘要】
1.一种数据发送方法,其特征在于,应用于电子设备,该方法包括:根据接收到的待发送的报文的长度及预设的预留存储空间的大小,确定所述报文占用的存储空间的大小,并将所述报文存储到对应大小的存储空间,其中存储后所述报文的尾部与所述存储空间的尾部对齐,所述预留存储空间的大小不小于一个报文头的长度;判断所述报文的长度是否大于最大报文段长度MSS,如果是,将所述报文划分为多个子报文,每个子报文的长度不大于所述MSS;将所述多个子报文划分到至少两个报文组中,每个报文组包括至少两个子报文,且每个报文组包含的任意两个子报文不相邻;针对每个报文组中的每个子报文,缓存该子报文对应的第一存储空间之前且相邻的设定长度的第二存储空间存储的数据,在所述第二存储空间中添加所述子报文对应的报文头并发送封装后的所述子报文,并将缓存的所述数据还原到所述第二存储空间,其中所述设定长度为报文头长度。2.如权利要求1所述的方法,其特征在于,所述缓存该子报文对应的第一存储空间之前且相邻的设定长度的第二存储空间存储的数据之前,所述方法还包括:判断所述第二存储空间的存储状态是否为可用状态,如果否,进行后续步骤;发送封装后的所述子报文之后,所述方法还包括:将所述第一存储空间的存储状态修改为可用状态。3.根据权利要求2所述的方法,其特征在于,当所述第二存储空间的存储状态为可用状态时,所述方法还包括:直接在所述第二存储空间中添加所述子报文对应的报文头;发送封装后的所述子报文,并将所述第一存储空间的存储状态修改为可用状态。4.如权利要求1或2所述的方法,其特征在于,所述缓存该子报文对应的第一存储空间之前且相邻的设定长度的第二存储空间存储的数据之前,所述方法还包括:确定每个报文组的发送顺序;根据所述发送顺序,依次发送每个报文组中的每个子报文。5.根据如权利要求4所述的方法,其特征在于,所述确定每个报文组的发送顺序包括:统计在进行子报文发送时,报文组的所有发送顺序集合;针对所述发送顺序集合中包含的每个候选发送顺序,统计该候选发送顺序下,针对每个子报文发送时,该子报文对应的第一存储空间之前的第二存储空间的存储状态为不可用状态,缓存所述第二存储空间存储的数据的次数;将所述次数最小的候选发送顺序确定为报文组的发送顺序。6.如权利要求1所述的方法,其特征在于,当判断所述报文的长度不大于最大报文段长度MSS时,所述方法还包括:在所述待发送的报文所对应的第三存储空间之前且相邻的设定长度的第四存储空间中添加所述报文对应的报文头,并发送封装后的所述报文。7.一种数据发送装置,其特征在于,应用于电子设备,该装置包...

【专利技术属性】
技术研发人员:吴惠敏
申请(专利权)人:浙江大华技术股份有限公司
类型:发明
国别省市:浙江,33

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

1