CN104040977A - 缓存报文的方法和装置 - Google Patents

缓存报文的方法和装置 Download PDF

Info

Publication number
CN104040977A
CN104040977A CN201280002301.7A CN201280002301A CN104040977A CN 104040977 A CN104040977 A CN 104040977A CN 201280002301 A CN201280002301 A CN 201280002301A CN 104040977 A CN104040977 A CN 104040977A
Authority
CN
China
Prior art keywords
message
burst
slow
memory space
confused
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201280002301.7A
Other languages
English (en)
Other versions
CN104040977B (zh
Inventor
郑中亮
王吉滨
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of CN104040977A publication Critical patent/CN104040977A/zh
Application granted granted Critical
Publication of CN104040977B publication Critical patent/CN104040977B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/42Mailbox-related aspects, e.g. synchronisation of mailboxes

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Abstract

提供一种缓存报文的方法和装置,能够减少对缓存资源的浪费。该方法包括:缓存设备接收第一报文的第一分片,其中,该第一报文包括至少一个分片,该第一分片携带有第一属性信息,该第一属性信息用于指示该第一报文的编号、该第一分片在该第一报文中的序号和该第一报文的长度;根据该第一报文的长度,确定用于缓存该第一报文的存储空间,以使该存储空间的长度等于该第一报文的长度;将该第一分片缓存在该存储空间内。通过根据报文的长度来确定用于缓存该报文的存储空间,使用于缓存报文的该存储空间的长度等于该报文的长度,能够减少缓存资源的浪费。

Description

緩存报文的方法和装置 技术领域
本发明涉及通信领域,并且更具体地,涉及一种緩存报文的方法和装置 背景技术
目前 已知一种緩存报文(Packet ) 的方法, 发送端按照固定分片长度 对报文进行分片处理后, 向接收端发送该分片处理后得到的报文的分片 ( Segment ), 现有技术中, 该固定分片长度最大可以为 4千字节 (Kbyte ) 其中,对于小于或等于该固定分片长度的报文, 该报文只包舍 1个 Segm 图 1.示出了现有技术中对报文进行分片处理的示意图, 如图 1所示, 当固定 分片长度为 4Kbyte时, 由于 Packet O总长 l ! KByte, 因此 Packet O被分为 3 个 Segment, 即, Segment 0 ( 4Kl yte )、 Segment 1 ( Kbyte )和 Segment 2 ( 3Kbyte λ 其他的报文 Packet 1 - Packet n按照相同方式进行分片切分
接收端负责接收一个或多个发送端发来的分片,按时间颅序将接收到的 分片顺序保存到预先准备好的緩存队列中。 图 2示出了现有技术中接收端的 緩存结构的示意 ¾ , 图 2中每个緩存描述符 (BD, Buffer Descriptor )对应 一个緩存(Bufifer ), Buffer的大小等于固定分片长度, 这里为 4Kbyte, 即以 固定分片长度为单位。 如图 2所示, 接收端可以初始化 11个 BD, n为正整 数,固定分片长度为 4KByte,每个 JBD对应 1个 4KByte的 Buffer,每个 Bufifer 用于存放 1个接收到的 Segment 图 3示出了现有技术中接收端对分片进行 緩存处理的示意图, 接收端按照时间顺序接收来自发送端的各 Segment, 并 按照时间顺序为接收到的 Segment申请 BD, 将接收到的 Segment緩存至与 其 BD相对应的 Buffer中。由于一个接收端可以同时接收多个发送端的报文, 因此不确保属于同 1个 Packet的各 SegmeM在緩存队列中是连续的。 例如, / 于 Paekei 0的 3个 Segment, 即, Segment 0 ( 4Kbyte )、 Segraeiit I ( 4Kbyte ) 和 Segment 2 ( 3Kbyte ) 分別位于 Buflfet' 2, Buffer 0和 Buffer 3,
其后, 接收端将接收到的 Segment的相关信息(例如, BD编号、 分片 有效长度、 分片序号, 报文编号, 报文总长度)通知外部应用 (该外部应用 可以软件, 也可以是硬件) 或者说, 通知外部的处理器, 触发外部应用(通 过外部的赴理器)来提取緩存在援存队列中的分片 在现有技术中, 在 Segment (例如, 对 Packet进行分片处理后生成的最 后 1个 Segment ) 的长度不等于固定分片长度的情况下, 接收端仍然使用占 用了一个固定分片长度的 Buffo来緩存该 Segmrat, 造成了緩存资源浪费 发明内容
有鉴于此, 本发明实施例提供一种緩存报文的方法和装置, 能够減少对 第一方面, 提供了一种緩存报文的方法, i 方法包括: 緩存设备接收第 一报文的第一分片, 其中, 该第一报文包括至少一个分片, 该第一分片携带 有笫一属性信息, 该第一属性信息用于指示该第一报文的编号、 该第一分片 在该第一报文中的序号和该第一报文的长度; 根据该第一報文的长度, 确定 用于援存该第一报文的存储空间, 以使谈存储空间的长度等于该第一报文的 长度; 将该第一分片緩存在铉存储空间内。
在一种可能的实施方式中, 该确定用于緩存该第一良文的存储空间包 括: 从循环缓存的空闲部分中确定用于缓.存该第一报文的存储空间, 其中, 指示该循环缓存末端的指针与指示铱循环緩存始端的指针连续 ;.
结合第一方面和第一种可能的实施方式, 在第二种可能的实施方式中, 该第一报文包括至少两个分片, 以及在确定用于緩存该第一报文的存储空间 之前, 该方法还包括: 根据该第一报文的编号和第一接收状态表, 确定该第 一分片是该緩存设备接收到的该第一报文的首个分片, 其中, 兹第一接收状 态表是根椐包括至少两个分片的第二报文的编号生成的,该緩存设备已接收 到该第二报文的至少一个分片, 该第二 41文的至少一个分片携带有用于指示 该第二报文的编号的信息„
结合第一方面、 第一种可能的实施方式和第二种可能的实施方式, 在第 三种可能的实旄方式中 该将该第一分片緩存在该存储空间内包括: 裉据读 第一分片在该第一报文中的序号, 将该第一分片缓存在该存储空间内, 以使 该第一报文包括的至少两个分片在遠存储空间内的排列顺序与该第一报文 包括的至少两个分片在该第一报文中的序号顺序相对应。
结合第一方面, 第一种可能的实施方式、 第二种可能的实施方式和第三 种可能的实施方式, 在第四种可能的实施方式中, 该方法还包括: 生成第二 接收状态表, 该第二报文接收状态表用于指示该第一报文的编号与以下信息 的对应关系: 该第一报文包括的分片的总数或该第一报文的长度> 该缓存设 备已接收到的该第一报文的分片的数目或该緩存设备未接收到的该第一报 文的分片的数目、 该存储空间的起始地址; 緩存设备接收该第一报文的第二 分片, 该第二分片携带有第二属性信息, 该第二属性信息用于指示该第一 文的编号、 该第二分片的编号和该第一报文的长度; 根据读第一报文的编号 和该第二接收状态表, 将该第二分片緩存在该存储空间内; 更新该第二接收 状态表中指示的该緩存设备已接收到的该第一报文的分片的数目或该緩存 设备未接收到的该第一报文的分片的数目。
结合第一方面、 第一种可能的实施方式、 第二种可能的实施方式、 笫三 种可能的实施方式和第四种可能的实施方式, 在第五种可能的实施方式中, 该将该第二分片緩存在该存储空间内包括: 根据谊第二分片在读第一报文中 的序号, 将 第二分片緩存在该存储空间内, 以使该第一报文包括的至少两 个分片在该存储空间内的排列顺序与该第一报文包括的至少两个分片在该 第一 ¾^文中的序号额序相对应
结合第一方面、 第一种可能的实施方式 > 第二种可能的实施方式, 第三 种可能的实施方式、 第 种可能的实施方式和第五种可能的实施方式, 在第 六种可能的实施方式中, 该确定用于緩存该第一报文的存储空间包括: 从循 环缓存的空闲部分中确定用于緩存铱第一报文的存储空间, 其中 指示谅循 环緩存末端的指针与指示该循环緩存始端的指针连续, 该存储空间包括位于 该循环緩存末端的第一存储空间和位于该循环緩存始端的第二存储空间; 以 及该将该第一分片緩存在该存储空间内包括: 根据该第一分片在该第一报文 中的序号, 将该第一分片緩存在该存储空间内, 以使该第一报文包括的至少 两个分片在该存储空间内的排列顺序与该第一报文包括的至少两个分片在 该第一报文中的序号順序相对应, 其中, 该第一报文的第一数据存储在该第 一存储空间, 该第一报文中除该第一数据以外的第二数据存储在该第二存储 空间, 该第一数据是从该第一报文始端开始长.度与该第一存储空间相同的数 据
結合第一方面、 第一种可能的实施方式、 第二种可能的实施方式、 第三 种可能的实施方式, 第四种可能的实施方式、 第五种可能的实施方式和第六 种可能的实施方式, 在第七种可能的实施方式中, 该方法还包括: 当该第二 接收状态表中指示的该緩存设备已接收到的该第一报文的分片的数目等于 该第一报文的分片的总数时,或当该第二接收状态表中指示的该緩存设备未 接收到的该第一报文的分片的数目为零时, 通知外部处理器提取该第一报 文, 并在该外部处理器对该第一报文的提取完成后, 释放该存储空间并清除 该第二接收状态表。
第二方面, 提供了一种緩存报文的装置, 该装置包括: 接收单元, 用于 使緩存设备接收第一报文的第一分片,其中,该第一报文包括至少一个分片, 该第一分片携带有第一属性信息,该第一属性信息用于指示该第一报文的编 号、 该第一分片在该第一报文中的序号和该第一报文的长度; 处理单元, 用 于才艮据该第一报文的长度, 确定用于緩存该第一报文的存储空间, 以使该存 储空间的长度等于读第一报文的长度; 用于将该第一分片緩存在该存储空间 内 ..,
在一种可能的实施方式中, 处理单元具体用于从循环緩存的空闲部分 中确定用于緩存该第一4ii文的存储空间, 其中, 指示该循环緩存末端的指针 与指示该循环緩存始端的指针连续。
结合第二方面和第一种可能的实施方式, 在第二种可能的实施方式中, 该第一报文包括至少两个分片 , 以及该处理单元还用于根据该第一报文的編 号和第一接收状态表., 确定该第一分片是该緩存设备接收到的兹第一报文的 首个分片, 其中, 该第一接收状态表是根椐包括至少两个分片的第二报文的 编号生成的, 该緩存设备已接收到该第二报文的至少一个分片, 该第二报文 的至少一个分片携带有用于指示该第二报文的编号的信息„
結合第二方面, 第一种可能的实拖方式和第二种可能的实旄方式, 在第 三种可能的实旄方式中, 该处理单元具体用于根据该第一分片在该第一报文 中的序号, 将该第一分片緩存在该存储空间内, 以使该第一报文包括的至少 两个分片在该存储空间内的排列顺序与该第一报文包括的至少两个分片在 该第一报文中的序号顺序相对应。
結合第二方面、 第一种可能的实施方式、 第二种可能的实施方式和第三 种可能的实施方式, 在第四种可能的实施方式中, 谊处理单元还用于生成第 二接收状态表, 该第二报文接收状态表用于指示该第一报文的编号与以下信 息的对应关系: 该第一报文包括的分片的总数或该第一报文的长 、 该緩存 设备已接收到的所示第一报文的分片的数目或该緩存设备未接收到的所示 第一报丈的分片的数 §、 该存储空间的起始地址; 该接收单元还用于使该緩 存设备接收该第一报文的第二分片, 该第二分片携带有第二属性信息, 该第 二属性信息用于指示该第一 11文的编号、该第二分片的编号和该第一4艮文的 长度; 该处理单元还用于根椐该第一报文的编号和该第二接收状态表, 将该 第二分片緩存在该存储空间内; 用于更新该第二接收状态表中指示的该緩存 设备已接收到的所示第一报文的分片的数目或该缓存设备未接收到的所示 第一报文的分片的数目 .
结合第二方面、 第一种可能的实施方式, 第二种可能的实施方式、 笫三 种可能的实.施方式和第四种可能的实旄方式, 在第五种可能的实施方式中, 该处理单元具体用于根据该笫二分片在该第一报文中的序号 将读第二分片 緩存在该存储空间内 , 以使该笫一报文包括的至少两个分片在该存储空间内 的排列顺序与该第一 文包括的至少两个分片在该第一良文中的序号顺序 相对应 <,
结合第二方面、 第一种可能的实施方式、 第二种可能的实施方式 第三 种可能的实施方式、 第四种可能的实施方式和第五种可能的实旄方式, 在第 六种可能的实施方式中, ¾处理单元具体用于从循环緩存的空闲部分中确定 用于緩存该第一报文的存储空间 其中, 指示该循环緩存末端的指针与指示 该循环緩存始端的指针连续, 该存储空间包括位于该循环緩存末端的第一存 储空间和位于读循环緩存始端的第二存储空间, 第一报文包括的至少两个 分片在该存储空间内的排列順序与该第一^ I文包括的至少两个分片在 if第 一报文中的序号顺序相对应, 其中, 该第一报文的第一数据存储在该第一存 储空间, 该第一报文中除该第一数据以外的第二数据存储在 i 第二存储空 间, 该第一数据是从该第一报文始端开始长度与该第一存储空间相同的数 据。
结合第二方面、 第一种可能的实施方式、 第二种可能的实施方式 第三 种可能的实施方式, 第四种可能的实施方式、 第五种可能的实施方式和第六 种可能的实施方式, 在第七种可能的实施方式中, 该处理单元还用于当读第 二接收状态表中指示的该緩存设备已接收到的该第一报文的分片的数目等 于该第一报文的分片的总数时,或当该第二接收状态表中指示的该緩存设备 未接收到的该第一报文的分片的数目为零时,通知外部处理器提.取该第一报 文, 并在该外部处理器对该第一报文的提取完成后, 释放该存储空间并清除 该第二接收状态表 <, 根据本发明实施例的緩存报文的方法和装置,通过根据报文的长度来确 定用于緩存该报文的存储空间,使用于緩存报文的该存储空间的长度等于 ϋ 报文的长度,与现有技术相比,由于不以固定分片长度为单位确定存储空间, 因此在例如分片的长度小于固定分片长度(例如, 对报文迸.行分片处理后生 成的最后〗个分片的长度小于固定分片长度,或报文本身的长度小于固定分 片长度)的情况下, 对于长度小于固定分片长度的分片无需占用长度与固定 分片长度相 的缓存, 能够減少缓存资源的浪费 附图说明
为了更清楚地说明本发明实施例的技术方案, 下面将对实施例或现有技 术描述中所需要使用的附图作简单地介绍, 显 ¾易见地, 下面描述中的附图 仅仅是本发明的一些实施例, 对于本领域普通技术人员来讲, 在不付出创造 性劳动的前提下, 还可以根据这些附图荻得其他的附图 m 1是现有技术中对报文进行分片处理的示意图
图 2是现有技术中用于緩存分片的緩存結构的示意图。
图 3是现有技术中对分片进行缓存处理的示意图。
图 4是根据本发明实施例的緩存报文的方法的示意性流程图。
图 5是本发明一实施例中对分片进行緩存处理的示意图
© 6是使用本发明实施例的緩存报文的方法对分片进行緩存的过程的示 意图
图 7是根据本发明实旎例的援存报文的装置的示意性框 S„ 具体实施方式
下面将结合本发明实拖例中的附图,对本发明实拖例中的技术方案进行 清楚,, 完整地描迷, 显然, 所描迷的实施例是本发明一部分实施例, 而不是. 全部的实施例。 基于本发明中的实施例, 本领域普通技术人员在没有做出创 造性劳动前提下所获得的所有其他实施例, 都属于本发明保护的范围。
本发明的技术方案, 可以应用于各种存储系统, 更具体的, 可以应用于 对将长度较大的报文进行分片处理, 而对分片进行传送及緩存的存储系统 等, 例如, 利用高速接口 ( RIO , Rapid Input/Output )进行消息 Message通 信的系统 RIO 是当今通信行业中芯片 /单板 备间通信中经常使用的一种 接口协议 随着芯片/单板 ¾备间的交互复杂度的日益增加, R10的 Message 方式得到了越来越多的应用 β在该利用 RIO进行 Message通信的系统中 5 实 现了发送端功能和接收端功能 其中, 发送端(主要用于实现发送功能)按 照固定分片长度(例如, 4 Kbyte )对报文进行分片处理后, 向接收端(主要 用于实现接收功能)发送该分片处理后得到的报文的分片。 其中, 对于小于 或等于该固定分片长度的报文, 该报文只包含 1个 Segmen 接收端 (相当 于本发明的緩存设备) 负责接收一个或多个发送端发来的分片, 并对接收到 的分片进行緩存 本发明的缓存报文的方法的实施主体(即, 援存设备)可 以是该接收端, 以下, 为了使于说明, 以该接收端为例, 对緩存设备的功能 和动作进 fl说明
因此, 在本发明实施例中, 发送端的功能和动作可以与现有技术相同, 这里, 为例避免赘述., 省略其说明
图 4示出了从緩存设备(利用 RIO进行 Message通信的系统中的接收端) 角度描述的根椐本发明实施例的緩存报文的方法 100的示意性流程图.如图 4所示 ¾方法 100包括:
S110, 緩存设备接收第一报文的第一分片, 其中, 该第一报文包括至少 一个分片, 读第一分片携带有第一属性信息, 该第一属性信息用于指示谅第 一报文的编号, 该第一分片在该第一报文中的序号和该第一报文的长度; S120, 根据该第一报文的长度, 确定用于緩存该第一报文的存储空间, 以使该存储空间的长度等于该第一报文的长度;
S130? 将该第一分片緩存在该存储空间内
具体地说, 在 S110中, 利用 MO进.行 Message的系统中的接收端 (緩 存设备的一例, 以下, 简称接收端)可以接收利用 RiO进行 Message通信的 系统中的发送端(以下, 简称发送端)分片发送的报文(第一报文)的一个 分片 (第一分片) 在本发明实施例中, 发送端对报文的分片处理可以与现 有技术相同, 即, 发送端可以根据固定分片长度(可以才 据系统要求或标准 要求确定)和待发送的报文的长度 将该待发送的报文分为一个或多个分片, 例如, 当固定分片长度为 4Kbyte时, 如果待发送的报文的总长为 l i KByte, 则将该待发送的报文分为 3个分片, 即, 分片 0 ( 4Kbyte )、 分片 1 ( 4Kbyte ) 和分片 2 ( 3Kbyte λ 并且, 各分片中携带有以下信息 (第一属 信息): 该 分片所属报文的编号、 该分片在分片所属 4艮文中的序号(或者说 编号, 与 分片在报文中的位置相对应)和该报文的长度。
应理解, 以上列举的各分片中携带的信息(第一属性信息)仅为示例性 说明, 本发明并不限定于此, 还可以包括其他各种信息
这里, 需要说明的是, 根据固定分片长度和待发送的报文的长度, 该待 发送的报文可能被分为一个分片(即, 情况 1 ), 也可能被分为至少两个分片 (即, 情况 2 )„ 下面,分別对这两种情况下,接收端緩存分片时方法(动作) 进行说明。 接收端可以荻取所接收到的分片 (第一分片, 以下, 称为待緩存分片) 中携带的信息(第一属性信息), 并确定该待緩存分片的长度, 如杲该信息 指示違待緩存分片所属报文(第一报文) 的长度等于该待緩存分片的长度, 则可以确定该报文仅包括一个分片 即该待緩存分片, 从而, 在 S120, 接 收端可以根据该待緩存分片所属报文(第一报文)的长度(或者说, 读待緩. 存分片的长度), 从緩存介质中, 确定用亍緩存该待緩存分片的存储空间, 在本发明实施例中, 该存储空间的长度等于该报文(或该待緩存分片 )的长 度。 如图 6所示, 例如, Packet ί)为 1 i Kbyte, 因此, 用于緩存 Packet 0的存 储空间为 UKbyte, 同理, 用于緩存 Packet 1的存储空间为 5f byte, 用于缓. 存 Paeket 2的存储空间为 2Kbyte。 这里, 需要说明的是, 本发明实施例中的 緩存介质可以与现有技术中使用的緩存介质相同, 为了避免赘述, 省略对该 緩存介质的说明。
可选地, 在本发明实施例中, 该确定用于缓存该第一报文的存储空间包 括:
从循环緩存的空闲部分中确定用于緩存该第一报文的存储空间, 其中, 指示该循环緩存末端的指针与指示该循环緩存始端的指针连续。
具体地说,在本发明实拖例中,可以使用循环缓存作为报文的存储介质, 当数据到达循环緩存的末端 (尾部) 时, 返回到循环緩存的始端(开始处) 进行緩存 从而, 可以实现无限连续采集数据。 在本发明实施中使用的作为 緩存介质的循环緩存可以与现有技术中的循环緩存^^质相同, 这里, 为了避- 免赘述, 省略其说明
这祥, 通过使用循环緩存作为緩存介盾, 例如, 在循环援存末端的剩余 长度小于待緩存的报文(第一报文)的长度, ¾循环緩存末端的剩余长度与 循环緩存始端的剩余长度大于待緩存的报文(第一报文) 的长度的情况下, 可以将该待緩存的报文的前半部分緩存在循环援存末端, 并将该待緩存的 4艮 文的后半部分緩存在循坏緩存始端, 从而能够实现紧凑緩存报文, 进一步减 少緩存资源的浪费。
S130, 接收端可以将该待緩存的分片 (第一分片, 或者说, 第一报文) 缓存在该存储空间内
在緩存完该待緩存的分片 (或者说, 该待緩存的分片所属报文)后, 接 收端可以将该分片的相关信息(例如, 分片有效长度 分片序号、报文编号、 报文总长度)通知外部应用 (该外部应用可以軟件, 也可以是硬件), 或者 说 通知外部的处理器 例如, 中央处理器(CPU, Central processing unit ), 以触发外部应用 (通过外部的处理器) 来提取緩存在该緩存空间中的分片。 该触发外部应用来提取緩存在该緩存空间中的分片的过程可以与现有技术 的方法相同, 这里 为了避免赘述 省略其说明
情况 2
接收端可以获取所接收到的分片 (第一分片) 中携带的信息(第一属性 信息), 并确定该第一分片的长度, 如果该信息指示该第一报文的长度大于 该待緩存分片的长度, 则可以确定该第" "41文包括至少两个分片 而该第一 分片是其中一个分片。 在本发明实施例中, 由于根据报文的长度来确定存储 空间, 因此, 需要将同一报丈的至少两个分片连续緩存在相邻的空间内 9 从!? ¾, 在本发明实施例中, 该第一报文包括至少两个分片, 以及 在确定用于緩存该第一 1文的存储空间之前, 途方法还包括:
根据该第一报文的编号和第一接收状态表,确定该第一分片是.该緩存设 备接收到的该第一报文的首个分片, 其中, 该第一接收状态表是根据包括至 少两个分片的第二报文的编号生成的, 该緩存设备已接收到该第二报文的至 少一个分片, 该第二报文的至少一个分片携带有用于指示该第二报文的编号 的信息
具体地说, 在本发明实拖例中, 接收端可以配置第一接收状态表, 用于 记录已接收到至少一个分片的报文(第二 ·!艮文)的编号, 从而, 在接收到读 第一分片后, 可以根据该第一分片中携带的该第一报文的编号, 查找该第一 接收状态表, 如杲该第一t丈的编号记录在该第一接收状态,表中, 则可以确 定该第一分片不是(按时间顺序)所接收到的该第一报文的首个分片, 如杲 该第一报文的编号未记录在该第一接收状态表中, 则可以确定该第一分片是 (按时间顺序) 所接收到的该第一报文的首个分片„
应理解, 以上列举的第二报文是指已接收到至少一个分片的报文, 在后 述对第一报文的第二分片进行緩存时, 由于已接收到该笫一报文的第一分片 (按时间顺序的首个分片), 固此, 此时该第一报文属于第二报文。
如果确定该第一分片为所接收到的该第一报文的首个分片 (即, 在笫一 接收状态表中未记录该第一报文的编号), 则在 S120, 接收端可以根据该第 一报文的长度, 从援存介质中, 确定用于緩存该第一报文的存储空闳, 在本 发明实施例中, 该存储空间的长度等于逾第一报文的长度 如图 6所示, 例 如, Packet 0为 11 Kbyte, 因此, 用于緩存 Packet 0的存储空间为 l l Khyte, 同理, 用于緩存 Packet 1的存储空间为 5Kbyte, 用于緩存 Packet 2的存储空 间为 2 >yte 这里, 需要说明的是, 本发明实施例中的緩存介廣可以与现有 技术中使用的緩存介盾相同, 为了避免赘迷, 省略对被緩存介质的说明
可选地, 在本发明实施例中, 该确定用于緩存该第一报文的存储空间包 括:
从循环緩存的空闲部分中确定用于緩存该第一报文的存储空间 5 其中, 指示该循环缓存末端的指针与指示铱循环緩存始端的指针连续 ;.
具体地说,在本发明实施例中,,可以使用循环援存作为报文的存储介质, 循环緩存分成逻辑上相等的两部分(物理上相异), 当数据到达循环緩存的 末端(尾部)时, 返回到循环緩存的始端(开始处)进行緩存。 从而, 可以 实现无限连续采集数据,。在本发明实拖中使用的作为緩存介质的循环緩存可 以与现有技术中的循环緩存介质相同, 这里, 为了避免赘述, 省略其说明 这样, 通过使用循环緩存作为緩存介质, 例如, 在循环緩存末端的剩余 长度小于待緩存的报文(第一报文)的长度, 而循环緩存末端的剩余长度与 循环緩存始端的剩余长度大于待緩存的报文(第一报文) 的长度的情况下, 可以将该待緩存的报文的前半部分緩存在循环緩存末端, 并将该待緩存的报 文的后半部分緩存在循环緩存始端, 从而能够实现紧凑緩存报文, 进一步减 少緩存资源的浪费。
S130, 接收端可以将该待緩存的分片 (第一分片, 或者说, 第一报文) 援存在该存储空间内 可选地, 该将该第一分片緩存在该存储空间内包括:
根据该第一分片在该第一报文中的序号,将该第一分片緩存在该存储空 间内, 以使该第一报文包括的至少两个分片在该存储空间内的排列顺序与该 第一报文包括的至少两个分片在该第一报文中的序号颇序相对应
具体地说, 接收端根据该第一分片在第一报文中的序号(该序号用于指 示第一报文的各分片在逻辑上的排列顿序, 即, 将各分片按其序号顺序棑列 后可以还原为原报文, 即, 分片处理前的报文), 将兹第一分片緩存在存储 空间中的对应位置, 从而, 在接收并緩存完第一报文的全部分片后, 可以完 成对各分片的重排序的处理
与此相对, 在现有技术中, 由于各分片在緩存队列中按时间踬序排列, 因此, 外部应用需要根据各个分片携带的信息(报文编号、 分片在该报文中 的序号》 报文总长度或报文的总分片数), 对分片进行重排序, 恢复出发送 端发的原报文, 即 分片处理前的报文。
这祥 根据分片的序号对分片进行緩存, 在緩存完报文的全部分片的同 时, 完成了对各分片的重排序处理, 从而, 外部应用无需对各分片进行重排 序处理, 提高了系统整体的性能
由于该第一分片为(按时间顺序)接收到的第一报文的首个分片, 因此, 可以确定发送端还会发送该第一报文的其他分片 :
从而, 该方法还包括:
生成第二接收状态表, 该第二报文接收状态表用于指示该第一报文的编 号与以下信息的对应关系:
该第一报文包括的分片的总数或该第一报文的长度、该緩存设备已接收 到的该第一报文的分片的数目或该緩存设备未接收到的该第一报文的分片 的数 该存储空间的起始地址;
缓存设备接收该第一报文的第二分片, 读第二分片携带有第二属性信 息, 该第二属性信息用于指示该第一报文的编号、 该第二分片的编号和该第 一 4艮文的长度;
根据该第一报文的编号和该第二接收状态表 5 将该第二分片緩存在该存 储空间内;
更新该第二接收状态表中指示的该緩存设备已接收到的该第一报文的 分片的数目或该援存设备未接收到的该笫一报文的分片的数目 . 具体地说,接收端在对第一分片进行緩存后,可以配置第二接收状态表, 在本发明实施例中, 该第二接收状态表与第一报文的编号存在映射关系, 例 如, 可以将第一报文的编号作为第二接收状态表的一个项目, 记录在第二接 收状态表中, 在系统内存在多个第二接收状态表时, 也可以根据第一报文的 编号确定第二接收状态表的索引 (例如, 在第二接收状态表的名称 λ 应理 解, 以上列举的该第二接收状态表与根据第一报文的编号之间映射关系仅为 示例性说明, 本发明并不限定于此
在该第二接收状态表中, 可以记录以下项目:
( 1 )该第一报文包括的分片的总数或读笫一报文的长度。 在本发明实 施例中, 由于笫一分片中携带了指示第一报文的长度的信息, 因此, 可以确 定该第一报文的长度 并且, 由于接收端可以预先荻知发送端对该第一报文 进行分片处理时使用的固定分片长度,从而可以根椐该第一报文的长度以及 该固定分片长度, 确定铉第一报文包括的分片的总数 在本发明中, 可以择 一的将第一报文包括的分片的总数或该第一报文的长度作为第二接收状态 表中的一个项目 ,也可以将第一报文包括的分片的总数和该第一报文的长度. 分別作为第二接收状态表中的两个项目 , 本发明并未特別限定
( 2 )该緩存设备已接收到的该第一报文的分片的数目或该緩存设备未 接收到的该第一报文的分片的数目。 在该实拖例中, 由于第一分片是(按时 间顺序)接收到的第一报文的首个分片 s 因此, 在对第一分片进行緩存后, 可以将已接收到的该第一报丈的分片的数目置为 1, 同理, 每完成对该第一 报文的一个分片的緩存后,可以将已接收到的该第一 #_文的分片的数目加 L 另外, 如上所述, 可以确定该第一报文包括的分片的总数, 因此, 在对第一 分片进,行緩存后,可以将未接收到的该第一报文的分片的数目置为该第一报 文包括的分片的总数减】, 同理,每完成对该第一报文的一个分片的緩存后, 可以将未,接收到的该第一报文的分片的数目减 1
( 3 )该存储空间的起始地址。
应理解, 以上列举的第二接收状态表中记录的各项目仅为示例性说明, 本发明并不限定于此, 还可以添加记录其他参数的项目。
这里, 需要说明的是 在本发明实施例中, 由于第一接收状态表中记录 了已接收到至少一个分片的报文的编号, 而该第二接收状态表与第一报文的 编号存在映射关系, 因此, 该第一接收状态表与第二接收状态表也可以是不 同的表項 也可以是同一个表项, 本发明并未特别限定
其后, 接收端可以接收该第一报文的第二分片, 与第一报文同样, 该第 二分片携带有以下信息 (第二属性信息): 该分片所属报文的编号、 该分片 在分片所属报文中的序号 (或者说, 编号, 与分片在报文中的位置相对应) 和该报文的长度
从而, 接收端可以根据该第二属性信息, 确定该第二分片与第一分片同 属于第一报文, 并且, 可以根椐该第一报文的编号, 从笫一接收状态表中获 知已对第一分片进行了緩存, 从而, 可以根据该第一报文的编号继续查找第 二接收状态表, 确定该笫一报文的存储空间 (具体地说, 是该存储空间的起 始地址), 从而, 将该第二分片緩存在该存储空间内。
可选地, 该将该第二分片緩存在该存储空间内包括:
根据该第二分片在该第一报文中的序号,将 第二分片緩存在该存储空 间内, 以使该第一报文包括的至少两个分片在该存储空间内的排列顺序与该 第一报文包括的至少两个分片在该第一报文中的序号顺序相对应。
具体地说, 接收端根据该第二分片在第一报文中的序号(该序号用于指 示第一报文的各分片在逻辑上的排列颇序, 即, 将各分片按其序号順序排列 后可以还原为原报文, 即, 分片处理前的报文), 将该第二分片緩存在存储 空间中的对应位置, 从而, 在接收并緩存完第一报文的全部分片后 可以完 成对各分片的重^ f序的处理
与此相对, 在现有技术中, 由于各分片在緩存队列中按时间順序排列, 因此, 外部应用需要根据各个分片携带的信息(报文编号、 分片在该报文中 的序号、 报文总长度或报文的总分片数), 对分片进行重排序, 恢复出发送 端发的原报文, 即, 分片处理前的报文 s
这样, 根据分片的序号对分片进行緩存, 在緩存完报文的全部分片的同 时, 完成了对各分片的重排序处理 从而, 外部应用无需对各分片进行重排 序处理, 提高了系统整体的性能。
在完成对第二分片的緩存后,接收端可以更新谊第二接收状态表中指示 的该緩存设备已接收到的该第一报文的分片的数目或该緩存设备未接收到 的该第一报文的分片的数目。
类似的, 可以按照对第二分片的处理方式, 依次对第一报文的其他分片 进行缓存 , 并更新该第二接收状态表中指示的该緩存设备已接收到的该第一 报文的分片的数目或该援存设备未接收到的该第一报文的分片的数 E1 , 当该第二接收状态表中指示的该緩存设备已接收到的该第一报文的分 片的数目与该第一报文包括的分片的总教相同, 或者该緩存设备未接收到的 该第一报文的分片的数目更新为零时,接收端可以将该第一报文的相关信息 (例如, 分片有效长度、 分片序号、 报文编号、 报文总长度)通知外部应用 (该外部应用可以软件, 也可以是硬件), 或者说, 通知外部的处理器, 以 触发外部应用 (通过外部的处理器)来提馭緩存在该緩 空间中的分片 s 该 触发外部应用来提取緩存在该緩存空间中的分片的过程可以与现有技术的 方法相同, 这里, 为了避免赘述, 省略其说明
下面 结合图 5, 对某一分片 (以下, 以 Segment ί为例进行说明) 的 具体緩存过程进行详细说明
如图 5所示,在 接收端接收 Segment I > 并且, 可以根据 Segment I携带的信息(包括该 Segment!所属报文(以下, 记作 Packet 0 ) 的编号、 该 Segment 1在 Packet 0中的序号和 Packet 0的长度),确定该 Paetet 0是否 仅包括一个分片
具体地说, 如果 Packet 0的长度等于该 Segment 1的长度, 则可以确定 该 Packet 0是否仅包括一个分片, 此情况下, 执行 S249, 根据 Segment 1的 长度(或者说, Packet O的长度.), 从緩存介质中, 确定用于緩存该 SegmeM 1 (或者说, Packet 0 ) 的存储空间 其后, 在 緩存兹 Segmen (或 者说, Packet 0:), 在 S280, 接收端可以通知外部应用提馭该 Segmen (或 者说, Packet 0 )并释放该存储空间
返回在 S210, 如杲 Paeket 0的长度大于该 Seg!TOflt 1的长度, 则可以确 定该 Packet 0是否仅包括一个分片, 此情况下, 执行 S220, 根据 Packet 0的 编号和上述第一接收状态表,确定该 Segment!是否是接收端(按时间顺序) 接收到的 Packet 0的首个分片
具体地说, 如果 Paeket O的编号未记录在该第一接收状态表中, 则可以 确定 Segment 1是(按时间顺序) 所接收到的 Pack 0的首个分片, 此情况 下,执行 S240,根据 Packet 0的长度,从緩存介质中,确定用于緩存读 Packet 0的存储空间, 其后 在 S250, 緩存该 Segment L
可选地, 接收端根据 Segment 1在第一报文中的序号 (该序号用于指示 第一报文的各分片在逻辑上的排列颀序, 即 , 将各分片按其序号順序棑列后 可以还原为原报文, 即, 分片处理前的报文), 将 Segment 1緩存在存储空间 中的对应位置, 从而, 在接收并緩存完 Packet 0的全部分片后, 可以完成对 各分片的重排序的处理。 如图 6所示, Segment 1是 Packei 0的第二个分片, 因此, 将 Segment〗緩存在 Packet 0对应位置, 具体地说, 例如, 自起始地 址位置偏移固定分片长度的位置
其后, 在 S260, 接收端在对 Segment 1进行緩存后, 可以配置第二接收 状态表, 在本发明实旄例中, 该第二接收状态表与 Packet 0的编号存在映射 关系, 例如, 可以将 Paekei 0的编号作为第二接收状态表的一个项目, 记录 在笫二接收状态表中, 在系统内存在多个笫二接收状态表时, 也可以根据 Packet 0的编号确定第二接收状态表的索引 (例如, 在第二接收状态表的名 称)。 应理解, 以上列举的该第二接收状态表与根据 Packet 0的编号之间映 射关系仅为示例性说明, 本发明并不限定于此。
在该第二接收状态表中, 可以记录以下项目:
( 1 )该 Packet 0包括的分片的总数或该 Packet 0的长度。 在本发明实 施例中, 由于 Segment 中携带了指示 Packet 0的长度的信息 因此, 可以 确定该 Packet 0的长度.。 并且 由于接收端可以预先获知发送端对该 Packet 0进-行分片处理时使用的固定分片长度, 从而可以根据该 Packet 0的长度以 及铱固定分片长度, 确定该 Packet O包括的分片的总数 在本发明中, 可以 择一的将 Packet 0包括的分片的总数或该 Packet 0的长度作为第二接收状态 表中的一个项目, 也可以将 Packet 0包括的分片的总数和该 Packet 0的长度 分別作为第二接收状态表中的两个項目, 本发明并未特別限定
( 2 }该緩存设备已接收到的该 ]¾ek:e〖 0的分片的数目或读緩存设备未 接收到的该 Picket 0的分片的数目 β 在该实施例中, 由于 Segm t 1是(按 时间順序)接收到的 Packet 0的首个分片。 因此 > 在对 Segment 1进行緩存 后, 可以将已接收到的谊 Packet 0的分片的数目置为 1, 同理, 每完成对读 Packet 0的一个分片的緩存后, 可以将已接收到的该 Packet 0的分片的数目 加 1 另外, 如上所述, 可以确定该 Packet 0包括的分片的总数, 因此, 在 对 Segment 1进行緩存后, 可以将未接收到的 Packet 0的分片的数目置为 该 Packet 0包括的分片的总数减 1 , 同理, 每完成对该 Packet 0的一个分片 的緩存后, 可以将未接收到的该 Packet 0的分片的数目减 L
( 3 )该存储空间的起始 i也址 由于 Segmoii 1是(按时间顺序)接收到的 Pad t O的首个分片, 因此, 在 S270, 可以确定 Pad et O未接收完毕, 而等待 P¾ek:ei 0的其他分片, 根据 第二接收状态表确定 Packet 0接收完毕后,在 S280,接收端可以通知外部应 用提取该 Packet 0, 并释放该存储空间 在 S290, 接收端可以清除该第二接 收状态表。
返回 S220,如果该 Packet 0的编号已记录在 m第一接收状态表中,则可 以确定 Segment 1不是(按时间顺序)所接收到的 Packet 0的首个分片 此 情况下,执行 S245,接收端可以根据该 Paekei O的编号查找接收端根据已緩 存的 Packet 0的其他分片生成的笫二接收状态表, 确定该 Packet 0的存储空 间(具体地说, 是该存储空间的起始地址), 从而, 在 S255 , 緩存该 Segment 可选地, 接收端根据 Segment 在第一报文中的序号 (该序号用于指示 第一报文的各分片在逻辑上的排列濒序, 即 , 将各分片按其序号顺序排列后 可以还原为原报文 即, 分片处理前的报文), 将 Segment 1緩存在存储空间 中的对应位置, 从而, 在接收并缓存完 Packet 0的全部分片后, 可以完成对 各分片的重排序的处理<, 如图 6所示, Segment 1是 Packet 0的第二个分片, 因此, 将 Segment I緩存在 Packet 0对应位置, 具体地说, 例如, 自起始地 址位置偏移固定分片长度的位置 :
其后, 在 S265 , 接收端在对 Segment 1进行援存后, 可以更新该第二接 收状态表中指示的该緩存设备已接收到的该第一报文的分片的数目或 ii緩 存设备未接收到的该第一报文的分片的数目 具体地说, 可以将已接收到的 该 Packet 0的分片的数目加 L 可以将未接收到的该 Packet 0的分片的数目 在 S270, 根椐第二接收状态表(具体地说, 是已接收到的该 Packet 0 的分片的数目或未接收到的该 Pacfcet O的分片的数目 )确定 Packet O接收完 毕后, 在 S280, 接收端可以通知外部应用提取该 Packet 0, 并释放该存储空 间 在 S290, 接收端可以清除谊第二接收状态表。
根据本发明实施例的緩存报文的方法,通过根据报文的长度来确定用于 緩存该报文的存储空间 使用于緩存报文的该存储空间的长度等于该报文的 长度, 与现有技术相比, 由于不以固定分片长度为单位确定存储空间, 因此 在 如分片的长度小于固定分片长度 (例如, 对 文进行分片处理后生成的 最后 ί个分片的长度小于 il定分片长度,或报文本身的长度小于固定分片长 度)的情况下, 对于长度小于固定分片长度的分片无需占用长度与固定分片 长度相同的緩存, 能够减少緩存资源的浪费
上文中, 结合图 1至图 5 , 详细描述了根据本发明实施例的緩存报文的 方法, 本发明实拖例进一步给出实现上述方法实拖例中各步骤和方法的装置 实施例 下面, 将结合图 6, 详细描述^据本发明实施例的緩存报文的装置 图 6示出了根据本发明实施例的緩存报文的装置 300的示意性框图 如 图 6所示, 该装置 300包括:
接收单元 310, 用于使缓存设备接收第一报文的第一分片, 其中, 该第 一报文包括至少一个分片, 该第一分片携带有第一属性信息, 该第一属性信 息用于指示谊第一报文的编号、该第一分片在读第一报文中的序号和该第一 报文的长度;
处理单元 320, 用于根据该第一报文的长度, 确定用于緩存该第一报文 的存储空间 , 以使该存储空间的长度等于该第一报文的长度;
用于将该第一分片緩存在该存储空间内
可选地, ¾处理单元 320具体用于从循环緩存的空闲部分中确定用于緩 存该第一报丈的存储空间, 其中, 指示该循环援存末端的指针与指示该循环 緩存始端的指针连续。
可选地, 该第一报文包括至少两个分片, 以及
该处理单元 320还用于根据该第一报文的编号和第一接收状态表,确定 该第一分片是该緩存设备接收到的该第一报文的首个分片, 其中, 该第一接 收状态表是根据包括至少两个分片的第二报文的编号生成的, 读緩存设备已 接收到该第二报文的至少一个分片, 该第二报文的至少一个分片携带有用于 指示该第二报文的编号的信息„
可逸地, 该处理单元 320具体用于根据谧第一分片在该第一报文中的序 号, 将该第一分片緩存在该存储空间内, 以使读第一报文包括的至少两个分 片在谊存储空间内的排列顺序与该第一报文包括的至少两个分片在谊第一 4良文中的序号顺序相对应
可逸地, 该处理单元 320还用于生成第二接收状态表, 该第二 接收 状态表用于指示该第一报文的编号与以下信息的对应关系:
该笫一报丈包括的分片的总数或该笫一报丈的长度、翁援存设备已接收 到的所示第一报文的分片的数目或该緩存设备未接收到的所示第一报文的 分片的数目、 该存储空间的起始地址;
该接收单元 310还用于使该緩存设备接收该第一报文的第二分片, 该第 二分片携带有第二属性信息, 该第二属性信息用于指示该第一报文的编号 > 该第二分片的编号和该第一报文的长度;
该处理单元 320还用于根据该第一报文的编号和该第二接收状态表,将 该第二分片緩存在该存储空间内;
用于更新该第二接收状态表中指示的该緩存设-备已接收到的所示第一 报文的分片的数目或该援存设备未接收到的所示第一报文的分片的数目 ¾ 可逸地, 读处理单元 320具体用于根据该第二分片在该第一报文中的序 号 将该第二分片緩存在谊存储空间内, 以使读第一报文包括的至少两个分 片在该存储空间内的排列顺序与 第一报文包括的至少两个分片在该第一 报文中的序号顺序相对应
可选地, 该处理单元 320具体用于从循环緩存的空闲部分中确定用于緩 存铱第一报文的存储空间, 其中, 指示该循环緩存末端的指针与指示该循环 緩存始端的指针连续, 该存储空间包括位于该循环缓.存末端的第一存储空间 和位于读循环緩存始端的第二存储空间,该第一报文包括的至少两个分片在 该存储空间内的排列顒序与该第—报文包括的至少两个分片在该第一^ II文 中的序号顺序相对应,其中,该第一报文的第一数据存储在该第一存储空间, 该第一报文中除该第一数据以外的第二数据存储在该第二存储空间,该第一 数据是从该第一报文始端开始长度与该第一存储空间相同的数椐 ,
可选地,该处理单元 320还用于当该第二接收状态表中指示的该緩存设 备已接收到的该第一报文的分片的数目等于该第一报文的分片的总数时, 或 当该第二接收状态表中指示的该緩存设备未接收到的该第一报文的分 片的数目为零时,
通知外部处理器提取该第一报文,并在该外部处理器对该第一报文的提 取完成后, 释放该存储空间并清除该第二接收状态表- 根据本发明实施例的緩存报文的装置 300可对应于本发明实旄例的方法 中的緩存设备(具体地说, 是上述接收端), 并且, 该緩存报文的装置 300 中的各单元即模块和上述其他操作或功能分别为了实现图 4中的方法】00的 相应流程, 为了简洁 在此不再赘述 根据本发明实施例的緩存报文的装置,通过根据报文的长度来确定用于 緩存该报文的存储空间,使用于緩存报文的该存储空间的长度等于该报文的 长度, 与现有技术相比, 由于不以固定分片长度为单位确定存储空间, 因此 在例如分片的长度小于固定分片长度 (例如, 对报文进行分片处理后生成的 最后 1个分片的长度小于固定分片长度, 或报文本身的长度小于固定分片长 度)的情况下, 对于长度小于固定分片长度的分片无需占用长度与固定分片 长度相同的緩存, 能够减少緩存资源的浪费 应理解, 在本发明的各种实施例中, 上述各过程的序号的大小并不意味 着执行颇序的先后 各过程的执行顺序应以其功能和内在逻辑确定, 而不应 对本发明实施例的实施过程构成任何限定。
本领域普通技术人员可以意识到, 结合本文中所公开的实施例描述的各 示例的单元及箅法步骤, 能够以电子硬件、 或者计算机软件和电子硬^ t的結 合来实现,, 这些功能究竟以硬件还是软件方式来执行, 取决于技术方案的特 定.应用和设计约束条件<, 专业技术人员可以对每个特定的应用来使用不同方 法来实现所描述的功能, 但是这种实现不应认为超出本发明的范围
所属领域的技术人员可以清楚地了解到, 为描述的方便和简洁, 上述描 述的系统、 装置和单元的具体工作过程, 可以参考前述方法实施例中的对应 过程, 在此不再赘迷。
在本申请所提供的几个实施例中,, 应该理解到, 所揭露的系统、 装置和 方法, 可以通过其它的方式实现 例如, 以上所描述的装置实施例仅仅是示 意性的, 例如, 所迷单元的划分, 仅仅为一种逻辑功能划分, 实际实现时可 以有另外的 ¾分方式, 例如多个单元或组件可以结合或者可以集成到另一个 系统, 或一些特征可以忽略, 或不执行。 另一点, 所显示或讨论的相互之间 的耦合或直接耦合或通信连接可以是通过一些接口, 装置或单元的间接耦合 或通信连接, 可以是电性, 机械或其它的形式。
所述作为分离部件 ¾t明的单元可以是或者也可以不是物理上分开的,作 为单元显示的部件可以是或者也可以不是物理单元, 即可以位于一个地方, 或者也可以分布到多个网絡单元上 可以根据实际的需要逸择其中的部分或 者全部单元来实现本实施例方案的目的。
另外, 在本发明各个实拖例中的各功能单元可以集成在一个处理单元 中, 也可以是各个单元单独物理存在, 也可以两个或两个以上单元集成在一 个单元中
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使 用时, 可以存储在一个计算机可读取存储介质中 基于这样的理解, 本发.明 的技术方案本质上或者说对现有技术做出贡献的部分或者读技术方案的部 分可以以软件产品的形式体现出来, 该计算机软件产品存储在一个存储介质 中 包括若千指令用以使得一台计算机设备(可以是个人计雾机, 服务器, 或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤4 而前 述的存储介质包括: U盘、移动硬盘、只读存储器( ROM., Read-Only Memory )、 随机存取存储器(RAM, Random Access Memoiy ), 磁碟或者光盘等各种可 以存储程序代码的介质。
以上所述, 仅为本发明的具体实施方式, 但本发明的保护范围并不局限 于此, 任何熟悉本技术领域的技术人员在本发明揭露的技术范围内, 可轻易 想到变化或替换, 都应涵盖在本发明的保护范围之内。 因此, 本发明的保护 范围应以所述.权利要求的保护范围为准

Claims (1)

  1. 权利要求
    1、 一种緩存报文的方法, 其特征在于, 所述方法包括:
    緩存设备接收第一报文的第一分片, 其中, 所述第一报文包括至少一个 分片, 所述第一分片携带有第一属性信息, 所述第一属性信息用于指示所述 第一报文的编号,所述第一分片在所述笫一报文中的序号和所述第一报文的 长度;
    根据所迷第一 ·!艮文的长度, 确定用于緩存所迷第一报文的存储空间, 以 使所述存储空间的长度等于所述第一 41文的长度;
    将所述笫一分片緩存在所迷存储空间内
    2、 根据权利要求 1. 所述的方法, 其特征在于, 所迷确定用于緩存所述 第一报文的存储空间包括:
    从循环緩存的空闲部分中确定用于緩存所迷第一报文的存储空间, 其 中 指示所述循环緩存末端的指针与指示所述循环緩存始端的指针连续
    3、 根椐权利要求 1或 2所述的方法, 其特征在于, 所述第一报文包括 至少两个分片, 以及
    在确定用于緩存所述第一报文的存储空间之前, 所述方法还包括: 根据所述第一报文的编号和第一接收状态表,确定所述第一分片是所述 緩存设备接收到的所迷第一报文的首个分片, 其中, 所述第一接收状态表是 根据包括至少两个分片的第二报文的编号生成的, 所述緩存设备已接收到所 述第二报文的至少一个分片, 所述第二报文的至少一个分片携带有用于指示 所迷第二报文的编号的信息
    4、 根据权利要求 3所述的方法, 其特征在于, 所迷将所述第一分片緩 存在所述存储空间内包括:
    根据所述第一分片在所述第一报文中的序号,将所迷第一分片緩存在所 述存储空间内, 以使所述第一报文包括的至少两个分片在所述存储空间内的 排列顺序与所述第一报文包括的至少两个分片在所述笫一报文中的序号顺 序相对应
    5、 根据权利要求 3或 4所述的方法, 其特征在于, 所述方法还包括: 生成第二接收状态表, 所迷第二报文接收状态表用于指示所述第一报文 的编号与以下信息的对应关系:
    所述第一报文包括的分片的总数或所述第一报文的长度 所述緩存设备 已接收到的所示第一报文的分片的数目或所述緩存设备未接收到的所示第 —报文的分片的数目、 所述存储空间的起始地址;
    緩存设备接收所述第一报文的第二分片, 所述第二分片携带有第二属性 信息, 所述第二属性信息用于指示所述第" ^艮文的编号 > 所迷第二分片的编 号和所述第一报文的长度;
    根椐所述第一报文的编号和所述第二接收状态表,将所述第二分片緩存 在所述存储空间内;
    更新所述第二接收状态表中指示的所述緩存设-备已接收到的所示第一 报文的分片的数目或所迷緩存设备未接收到的所示第一报文的分片的数 。
    6、 根据权利要求 5所述的方法, 其特征在于, 所迷将所述第二分片緩 存在所述存储空间内包括:
    根椐所述第二分片在所述第一报文中的序号 将所述第二分片緩存在所 述存储空间内, 以使所述第一报文包括的至少两个分片在所述存储空间内的 排列順序与所述第一报文包括的至少两个分片在所迷第一报文中的序号顺 序相对应,,
    7、 根据权利要求 6所述的方法, 其特征在于, 所述确定用于緩存所述 第一报文的存储空间包括:
    从循环緩存的空闲部分中确定用于緩存所迷第一报文的存储空间 其 中, 指示所迷循环緩存末端的指针与指示所述循环緩存始端的指针连续, 所 述存储空间包括位于所述循环緩存末端的第一存储空间和位于所述循环緩 存始端的第二存储空间, 所述第一报文包括的至少两个分片在所迷存储空间 内的排列顺序与所迷第一报文包括的至少两个分片在所迷第一报文中的序 号颇序相对应, 其中, 所述第一报文的第一数据存储在所述第一存储空间, 所述第一报文中除所迷第一数据以外的第二数据存储在所述第二存储空间, 所述第一数据是从所述第一报文始端开始长度与所述第一存储空间相同的 数据
    8 , 根据权利要求 5至 7中任一项所述的方法, 其特征在于, 所述方法 还包括:
    当所述第二接收状态表中指示的所迷緩存设备已接收到的所述第一报 文的分片的数目等于所述第一报文的分片的总数时, 或
    当所述第二接收状态表中指示的所述.緩存设备未接收到的所述第一报 文的分片的数目为零时,
    通知外部处理器提取所述第一报文, 并在所述外部处理器对所迷第一 4艮 文的提取完成后, 释放所述存储空间并清除所述第二接收状态表。
    9、 一种緩存报文的装置, 其特征在于, 所述装置包括:
    接收单元, 用于使緩存设备接收第一报文的第一分片, 其中, 所述笫一 报文包括至少一个分片, 所述第一分片携带有第一属性信息, 所述第一属性 信息用于指示所述第一报文的编号、所迷第一分片在所述第一报文中的序号 和所述第一报文的长度;
    处理单元, 用于根据所迷第一报文的长度, 确定用于援存所迷第一报文 的存储空间, 以使所迷存储空间的长度等于所述第一报文的长度;
    用于将所述第一分片緩存在所述存储空间内„
    10、 根据权利要求 9所述的装置, 其特征在于, 所述处理单元具体用于 从循环緩存的空闲部分中确定用于緩存所述第一报文的存储空间, 其中, 指 示所述循环緩存末端的指针与指示所述循环緩存始端的指针连续。
    11 , 根据权利要求 9或】0所述的装置, 其特征在于, 所迷第一报文包 括至少两个分片 以及
    所述处理单元还用于根据所述第一报文的编号和第一接收状态表,确定 所述第一分片是所述 t存设备接收到的所述第一报文的首个分片, 其中, 所 述第一接收状态表是根据包括至少两个分片的第二报文的编号生成的, 所迷 緩存设备已接收到所述第二报文的至少一个分片, 所述第二报文的至少一个 分片携带有用于指示所述第二报文的编号的信息
    :12、 根据权利要求 1】 所述的装置, 其特征在于, 所述处理单元具体用 于根据所述第一分片在所述第一报文中的序号,将所述第一分片緩存在所述 存储空间内, 以使所述第一报文包括的至少两个分片在所述存储空间内的排 列顺序与所述第一 ·!艮文包括的至少两个分片在所迷第一报文中的序号顺序 相对应。
    】3、 根据权利要求 n或】2所述的装置 其特征在于, 所迷处理单元还 用于生成第二接收状态表, 所述第二报文接收状态表用于指示所述笫一报文 的编号与以下信息的对 关系:
    所述第一报文包括的分片的总数或所述第一报文的长度、 所述緩存设备 已接收到的所示第一报丈的分片的数 §或所述缓存设备未接收到的所示笫 —报文的分片的数目、 所述存储空间的起始地址;
    所迷接收单元还用于使所述緩存设备接收所迷第一报文的第二分片, 所 迷第二分片携带有第二属牲信息, 所述第二属性信息用于指示所述第一报文 的编号、 所述第二分片的编号和所迷第一报文的长度;
    所述处理单元还用于根据所述第一报文的编号和所述第二接收状态表, 将所述第二分片緩存在所述存储空间内;
    用于更新所述第二接收状态^ ^中指示的所迷緩存设备已接收到的所示 第一报文的分片的数目或所述緩存设备未接收到的所示笫一报文的分片的 数目。
    14 , 根据权利要求 13所述的装置, 其特征在于, 所迷处理单元具体用 于根据所述第二分片在所述第一报文中的序号,将所述第二分片緩存在所述 存储空间内, 以使所述第一 #^文包括的至少两个分片在所述存储空间内的排 列顺序与所述第一报文包括的至少两个分片在所述第一报文中的序号顺序 相对应
    15 > 根据权利要求 14所述的装置, 其特征在于, 所述处理单元具体用 于从循环緩存的空闲部分中确定用于緩存所述第一报文的存储空间, 其中, 指示所述循环緩存末端的指针与指示所述循环緩存始端的指针连续, 所述存 储空间包括位于所述循环緩存末端的第一存储空间和位于所迷循环緩存始 端的第二存储空间, 所迷第一报文包括的至少两个分片在所述存储空间内的 排列顺序与所述第一报文包括的至少两个分片在所迷第一报文中的序号顺 序相对应, 其中, 所迷第一报文的第一数据存储在所述第一存储空间, 所述 第一报文中除所述第一数椐以外的第二数椐存储在所迷第二存储空间 ; 所述 第一数据是从所述第一报文始端开始长度与所述第一存储空间相同的数据 16 , 根据权利要求 13至 15中任一项所述的装置, 其特征在于, 所述处 理单元还用于当所述第二接收状态表中指示的所迷緩存设备已接收到的所 述第一报文的分片的数目等于所述第一报文的分片的总数时, 或
    当所述第二接收状态表中指示的所迷緩存设备未接收到的所述第一报 文的分片的数目为零时,
    通知外部处理器提取所迷第一报文, 并在所述外部处理器对所迷第一报 文的提驭完成后, 释放所述存储空间并清除所述第二接收状态表。
CN201280002301.7A 2012-12-28 2012-12-28 缓存报文的方法和装置 Active CN104040977B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2012/087816 WO2014101090A1 (zh) 2012-12-28 2012-12-28 缓存报文的方法和装置

Publications (2)

Publication Number Publication Date
CN104040977A true CN104040977A (zh) 2014-09-10
CN104040977B CN104040977B (zh) 2016-10-05

Family

ID=51019725

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201280002301.7A Active CN104040977B (zh) 2012-12-28 2012-12-28 缓存报文的方法和装置

Country Status (2)

Country Link
CN (1) CN104040977B (zh)
WO (1) WO2014101090A1 (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107592188A (zh) * 2017-11-09 2018-01-16 深圳震有科技股份有限公司 一种ptn承载电路仿真业务无损切换的方法及系统
CN107911317A (zh) * 2017-11-30 2018-04-13 杭州迪普科技股份有限公司 一种报文调度方法及装置
CN109861787A (zh) * 2018-12-10 2019-06-07 中联重科股份有限公司 工程车辆的数据处理方法、装置、工程车辆及服务平台
CN110336758A (zh) * 2019-05-28 2019-10-15 厦门网宿有限公司 一种虚拟路由器中的数据分发方法及虚拟路由器
CN110958331A (zh) * 2019-12-27 2020-04-03 视联动力信息技术股份有限公司 一种数据传输方法及终端
CN111381771A (zh) * 2018-12-29 2020-07-07 深圳市海思半导体有限公司 存储数据的方法、存储控制器和芯片
CN113791736A (zh) * 2021-09-15 2021-12-14 京东科技信息技术有限公司 数据迁移方法、网卡设备、服务器及数据迁移系统
CN114567413A (zh) * 2022-02-17 2022-05-31 中国银联股份有限公司 一种数据存储方法及装置

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104572498B (zh) * 2014-12-26 2018-04-27 曙光信息产业(北京)有限公司 报文的缓存管理方法和装置
CN105450786B (zh) * 2016-01-26 2019-05-14 中国银行股份有限公司 一种报文处理方法和装置
CN106385379A (zh) * 2016-09-14 2017-02-08 杭州迪普科技有限公司 报文缓存方法及装置
CN113595932B (zh) * 2021-08-06 2024-05-14 上海金仕达软件科技股份有限公司 数据乱序报文的处理方法及专用集成电路
CN114157620B (zh) * 2021-11-30 2024-01-19 新华三半导体技术有限公司 一种报文转发方法及装置

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050163141A1 (en) * 2003-01-20 2005-07-28 Fujitsu Limited Network switching device and method using shared buffer
CN101009646A (zh) * 2006-12-22 2007-08-01 清华大学 按每流排队的物理队列动态共享装置
CN101039256A (zh) * 2006-03-17 2007-09-19 中兴通讯股份有限公司 分组控制单元帧分段传输方法
CN101094183A (zh) * 2007-07-25 2007-12-26 杭州华三通信技术有限公司 一种缓存管理方法及装置
CN101425864A (zh) * 2007-10-30 2009-05-06 中兴通讯股份有限公司 一种数据广播发送和接收方法
CN101667959A (zh) * 2008-09-05 2010-03-10 华为技术有限公司 一种物理层数据传输的方法、装置及数据传输的系统
CN101674234A (zh) * 2009-08-21 2010-03-17 曙光信息产业(北京)有限公司 Ip报文的分片重组方法和装置
US20110268054A1 (en) * 2010-03-09 2011-11-03 Qualcomm Incorporated Multi-user uplink communication using edca with polling
CN102377682A (zh) * 2011-12-12 2012-03-14 西安电子科技大学 基于定长单元存储变长分组的队列管理方法及设备
US20120197847A1 (en) * 2009-10-20 2012-08-02 Zte Corporation Method and System for Monitoring and Tracing Multimedia Resource Transmission

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6714562B1 (en) * 2000-03-10 2004-03-30 International Business Machines Corporation Method and apparatus for segmenting network traffic variable length frames
CN100531147C (zh) * 2007-03-07 2009-08-19 华为技术有限公司 多链路捆绑协议报文分片接收方法
CN102035719B (zh) * 2009-09-29 2013-04-24 华为技术有限公司 一种报文处理方法和装置

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050163141A1 (en) * 2003-01-20 2005-07-28 Fujitsu Limited Network switching device and method using shared buffer
CN101039256A (zh) * 2006-03-17 2007-09-19 中兴通讯股份有限公司 分组控制单元帧分段传输方法
CN101009646A (zh) * 2006-12-22 2007-08-01 清华大学 按每流排队的物理队列动态共享装置
CN101094183A (zh) * 2007-07-25 2007-12-26 杭州华三通信技术有限公司 一种缓存管理方法及装置
CN101425864A (zh) * 2007-10-30 2009-05-06 中兴通讯股份有限公司 一种数据广播发送和接收方法
CN101667959A (zh) * 2008-09-05 2010-03-10 华为技术有限公司 一种物理层数据传输的方法、装置及数据传输的系统
CN101674234A (zh) * 2009-08-21 2010-03-17 曙光信息产业(北京)有限公司 Ip报文的分片重组方法和装置
US20120197847A1 (en) * 2009-10-20 2012-08-02 Zte Corporation Method and System for Monitoring and Tracing Multimedia Resource Transmission
US20110268054A1 (en) * 2010-03-09 2011-11-03 Qualcomm Incorporated Multi-user uplink communication using edca with polling
CN102377682A (zh) * 2011-12-12 2012-03-14 西安电子科技大学 基于定长单元存储变长分组的队列管理方法及设备

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107592188A (zh) * 2017-11-09 2018-01-16 深圳震有科技股份有限公司 一种ptn承载电路仿真业务无损切换的方法及系统
CN107592188B (zh) * 2017-11-09 2020-12-04 深圳震有科技股份有限公司 一种ptn承载电路仿真业务无损切换的方法及系统
CN107911317A (zh) * 2017-11-30 2018-04-13 杭州迪普科技股份有限公司 一种报文调度方法及装置
CN107911317B (zh) * 2017-11-30 2020-05-12 杭州迪普科技股份有限公司 一种报文调度方法及装置
CN109861787A (zh) * 2018-12-10 2019-06-07 中联重科股份有限公司 工程车辆的数据处理方法、装置、工程车辆及服务平台
CN111381771A (zh) * 2018-12-29 2020-07-07 深圳市海思半导体有限公司 存储数据的方法、存储控制器和芯片
CN110336758A (zh) * 2019-05-28 2019-10-15 厦门网宿有限公司 一种虚拟路由器中的数据分发方法及虚拟路由器
CN110336758B (zh) * 2019-05-28 2022-10-28 厦门网宿有限公司 一种虚拟路由器中的数据分发方法及虚拟路由器
CN110958331A (zh) * 2019-12-27 2020-04-03 视联动力信息技术股份有限公司 一种数据传输方法及终端
CN113791736A (zh) * 2021-09-15 2021-12-14 京东科技信息技术有限公司 数据迁移方法、网卡设备、服务器及数据迁移系统
CN114567413A (zh) * 2022-02-17 2022-05-31 中国银联股份有限公司 一种数据存储方法及装置
CN114567413B (zh) * 2022-02-17 2023-06-30 中国银联股份有限公司 一种数据存储方法及装置

Also Published As

Publication number Publication date
WO2014101090A1 (zh) 2014-07-03
CN104040977B (zh) 2016-10-05

Similar Documents

Publication Publication Date Title
CN104040977A (zh) 缓存报文的方法和装置
CN110806986B (zh) 提高网络芯片报文存储效率的方法、设备及存储介质
CN108121804B (zh) 跨地域分布式存储数据的方法、装置、终端及存储介质
CN104731956A (zh) 同步数据的方法、系统及相关数据库
CN108496161A (zh) 数据缓存装置及控制方法、数据处理芯片、数据处理系统
CN106170757B (zh) 一种数据存储方法及装置
CN105573711B (zh) 一种数据缓存方法及装置
CN103473343A (zh) 一种文件管理方法、装置以及终端
CN107743137A (zh) 一种文件上传方法及装置
CN108228341A (zh) 内存回收方法及装置、终端设备及计算机可读存储介质
CN105095299A (zh) 图片抓取方法和系统
CN108038142A (zh) 实现多级联动下拉框的方法、电子装置及存储介质
CN110474845A (zh) 流表项淘汰方法及相关装置
CN110267276A (zh) 网络切片部署方法及装置
CN103905310B (zh) 报文处理的方法及转发设备
CN105493024B (zh) 一种数据阈值预测方法与相关装置
CN105162622A (zh) 一种存储方法和系统
CN110232029A (zh) 一种基于索引的fpga中ddr4包缓存的实现方法
CN110516220A (zh) 一种报表数据录入方法、系统及相关设备
CN109800074A (zh) 任务数据并发执行方法、装置以及电子设备
JP2022523195A (ja) メモリ管理方法及び装置
CN109189726B (zh) 一种读写日志的处理方法及装置
CN106411718A (zh) 一种基于即时通信应用的数据同步方法及装置
CN109976896A (zh) 业务排重处理方法和装置
CN109788047A (zh) 一种缓存优化方法及一种存储介质

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant