CN106330788A - 报文分片传输方法和装置 - Google Patents
报文分片传输方法和装置 Download PDFInfo
- Publication number
- CN106330788A CN106330788A CN201610700276.XA CN201610700276A CN106330788A CN 106330788 A CN106330788 A CN 106330788A CN 201610700276 A CN201610700276 A CN 201610700276A CN 106330788 A CN106330788 A CN 106330788A
- Authority
- CN
- China
- Prior art keywords
- message
- designator
- heading
- payload
- fragment
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9063—Intermediate storage in different physical parts of a node or terminal
- H04L49/9078—Intermediate storage in different physical parts of a node or terminal using an external memory or storage device
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9057—Arrangements for supporting packet reassembly or resequencing
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明揭示了一种报文分片传输方法和装置,所述方法包括以下步骤:获取报文的第一指示符并存储,第一指示符用于标识报文的报文头的存储位置;每次分片时,根据第一指示符读取报文头,并读取一个分片报文的有效载荷;将报文头和有效载荷组成分片报文后予以传输。本发明实施例所提供的一种报文分片传输方法,通过存储标识报文的报文头的存储位置的第一指示符,每次分片传输时根据第一指示符重复从主机内存读取报文头即可,无需存储报文头。由于第一指示符的长度远远小于报文头的长度,因此减小了对存储空间的占用,极大的节省了存储空间。由于存储的是第一指示符而非报文头,因此能够支持更长的报文头,即可以分片传输具有更长报文头的报文。
Description
技术领域
本发明涉及通信技术领域,特别是涉及到一种报文分片传输方法和装置。
背景技术
随着虚拟化服务器部署的不断增加,虚拟化技术不光在计算资源和内存资源上不断深入与变革,在I/O性能方面也不断进行着变革。在现阶段的虚拟化过程当中,处理器和内存的虚拟化更为彻底,I/O资源(主要是网络设备)逐渐变成新的瓶颈。当越来越多的不同性质的虚拟机跑在同一台物理服务器上时,各个虚拟机的进出数据全部跑在同一个网络通道上。如果没有网络设备虚拟化技术,安全隔离和服务质量保证就无从谈起。
网络设备虚拟化技术主要有硬件实现和软件实现两种方式,对于不支持虚拟化的网络设备,只能采用软件实现的方式,但是软件实现的方式弊端很多。首先就是开销太大,普通万兆网络设备在现有的多虚拟机的环境下就已经耗费了很多资源,更不用说要高效、精确地模拟各个虚拟机的传输队列。而且软件实现效率不高。对于支持虚拟化的网络设备(主要是单根I/O虚拟化技术‐SRIOV),虚拟化网络设备在不破坏现有业务的前提下,为每个虚拟机提供了一个模拟真实的网络通道,这个模拟出来的虚拟通道不光是对虚拟机透明,而且还要给每个虚拟机提供非虚拟化环境下的一切网络特性。只有在这样的环境中,上层应用在向虚拟化的迁移过程当中,不需要针对网络环境的变更而做出改变。因此,硬件虚拟化已经是网络设备虚拟化的一个趋势。
在实现网络设备虚拟化的过程中,如何使得各个虚拟机都能获得有保证的网络传输质量是一个关键。网络传输质量主要包括网络带宽以及网络延时,如果在传输处理层面以每个虚拟机需要传输的整个传输控制协议(Transmission Control Protocol,TCP)报文来作为一个最小的处理单元,对于其它的虚拟机来说网络延时太大。
为了解决上网络延时的问题,一般的设计都是把处理包的颗粒度缩小到一个分片报文的数据包大小,也就是说,将TCP报文有效载荷(TCP Payload)切片成至少两个分片,每次传输一个分片,从而实现对TCP报文的分片传输。具体的,网络设备首先从主机内存中获取TCP报文的报文头并存储于本地,然后每次进行分片传输时,从主机内存中读取一个分片报文的有效载荷,并将本地存储的报文头和读取的有效载荷组成一个分片报文,通过物理通道传输出去。
由于一个报文头包括以太网层头、网络协议层头和传输控制协议层头,长度较大,因此需要很大的片上存储空间来存储各个队列的报文头。假设网络设备最大支持的报文头是1千字节,那么对于支持128个队列的网络设备来说,单是存储报文头就需要总共占用网络设备128千字节的片上存储资源。
因此,现有的报文分片传输方案,在分片传输过程中占用的存储空间较大,造成了网络设备的存储资源紧张。
发明内容
本发明的主要目的为提供一种报文分片传输方法,旨在分片传输过程中减小存储空间的占用。
为达以上目的,发明人经仔细研究发现,报文分片传输过程中,在报文全部传输完毕之前,报文的报文头和报文内容均一直存储在主机内存当中。有鉴于此,本发明主要采取以下发明构思:网络设备在进行报文分片传输时,通过不予存储报文的报文头,而是在每次分片时重复读取报文头的方式,来减少需要的芯片存储资源。
一方面,本发明提出一种报文分片传输方法,所述方法包括以下步骤:
获取报文的第一指示符并存储,所述第一指示符用于标识所述报文的报文头的存储位置;
每次分片时,根据所述第一指示符读取所述报文头,并读取一个分片报文的有效载荷;
将所述报文头和所述有效载荷组成分片报文后予以传输。
进一步地,所述获取报文的第一指示符并存储的步骤包括:
获取所述报文的指示符和所述报文头的长度,所述指示符包括第一指示符;
根据所述报文头的长度从所述指示符中提取出第一指示符并存储。
进一步地,所述读取一个分片报文的有效载荷的步骤包括:
当首次进行分片时,根据所述报文头的长度和最大数据分段值读取一个分片报文的有效载荷,并记录所述有效载荷分片结束的位置;
当后续进行分片时,根据所述报文头的长度和最大数据分段值,从所述有效载荷分片结束的位置开始读取一个分片报文的有效载荷,当所述报文尚未全部传输完毕时,更新所述有效载荷分片结束的位置。
进一步地,所述根据所述第一指示符读取所述报文头的步骤包括:
根据所述第一指示符获取所述报文头的存储位置,根据所述存储位置从主机内存中读取所述报文头。
进一步地,所述方法还包括:当所述报文全部传输完毕时,删除所述第一指示符。
另一方面,本发明同时一种报文分片传输装置,所述装置包括:
获取模块,用于获取报文的第一指示符并存储,所述第一指示符用于标识所述报文的报文头的存储位置;
读取模块,用于每次分片时,根据所述第一指示符读取所述报文头,并读取一个分片报文的有效载荷;
传输模块,用于将所述报文头和所述有效载荷组成分片报文后予以传输。
进一步地,所述获取模块用于:
获取所述报文的指示符和所述报文头的长度,所述指示符包括第一指示符;根据所述报文头的长度从所述指示符中提取出第一指示符并存储。
进一步地,所述读取模块用于:
当首次进行分片时,根据所述报文头的长度和最大数据分段值读取一个分片报文的有效载荷,并记录所述有效载荷分片结束的位置;
当后续进行分片时,根据所述报文头的长度和最大数据分段值,从所述有效载荷分片结束的位置开始读取一个分片报文的有效载荷,当所述报文尚未全部传输完毕时,更新所述有效载荷分片结束的位置。
进一步地,所述读取模块用于:根据所述第一指示符获取所述报文头的存储位置,根据所述存储位置从主机内存中读取所述报文头。
进一步地,还包括删除模块,所述删除模块用于:当所述报文全部传输完毕时,删除所述第一指示符。
本发明实施例所提供的一种报文分片传输方法,通过存储标识报文的报文头的存储位置的第一指示符,每次分片传输时根据第一指示符重复从主机内存读取报文头即可,无需存储报文头。由于第一指示符的长度远远小于报文头的长度,因此减小了对存储空间的占用,极大的节省了存储空间。同时,由于存储的是第一指示符而非报文头,因此能够支持更长的报文头,即可以分片传输具有更长报文头的报文,扩大了应用范围。
附图说明
图1是本发明第一实施例的报文分片传输方法的流程图;
图2是本发明实施例中对报文进行分片处理的原理示意图;
图3是本发明第二实施例的报文分片传输方法的流程图;
图4是是本发明第三实施例的报文分片传输装置的模块示意图;
图5是本发明第四实施例的报文分片传输装置的模块示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
本技术领域技术人员可以理解,这里所使用的网络设备,其包括但不限于计算机、网络主机、单个网络服务器、多个网络服务器集或多个服务器构成的云。在此,云由基于云计算(Cloud Computing)的大量计算机或网络服务器构成,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个超级虚拟计算机。本发明的实施例中,网络设备、终端设备与WNS服务器之间可通过任何通信方式实现通信,包括但不限于,基于3GPP、LTE、WIMAX的移动通信、基于TCP/IP、UDP协议的计算机网络通信以及基于蓝牙、红外传输标准的近距无线传输方式。
本发明实施例的报文分片传输方法,主要应用于TCP报文的分片传输,当然,也可以应用于其它需要分片传输的报文。
本发明实施例的数据传输方法和装置,主要应用于网络设备。当然,也可以应用于各种终端设备,如手机、平板等移动终端,个人电脑、便携式电脑等计算机设备。
实施例一
参照图1,提出本发明第一实施例的报文分片传输方法,所述方法包括以下步骤:
S11、获取报文的第一指示符并存储。
如图2所示,一个报文由报文头(包括以太网层头,网络协议层头以及传输控制协议层头)和报文内容组成。报文在内存中的存储位置由一个或者多个指示符来标识(图2中的报文有五个指示符),每个指示符表示一块内存空间,包括起始地址以及长度。报文的指示符至少包括第一指示符,一般还包括第二指示符,第一指示符用于标识报文的报文头在主机内存中的存储位置,第二指示符用于标识报文的报文内容在主机内存中的存储位置。第一指示符和第二指示符可能有一个、两个或者多个,如图2所示,指示符1、指示符2和指示符3为第一指示符,用于标识报文头的存储位置;指示符4和指示符5为第二指示符,用于标识报文内容的存储位置。
根据图2可以看出,每个分片报文都由报文头和一部分报文的有效载荷组成,所述有效载荷即报文内容。
本发明实施例中,当需要分片传输某一个报文时,网络设备首先获取该报文的第一指示符,并将该第一指示符存储于本地。
具体的,网络设备先从主机内存获取报文的指示符和报文头的长度,然后根据报文头的长度从报文的指示符中提取出第一指示符并存储。由于每个指示符表示一块内存空间,包含起始地址以及长度,因此网络设备可以根据报文头的长度从多个指示符中识别出第一指示符。如图2所示,指示符1、指示符2和指示符3为第一指示符,网络设备获取指示符1、指示符2和指示符3并存储于内部。
S12、每次分片时,根据第一指示符读取报文的报文头,并读取一个分片报文的有效载荷。
本发明实施例中,每次进行分片时,都需要根据第一指示符获取报文头在主机内存中的存储位置,根据获取的存储位置从主机内存中读取报文头。同时,通过以下方式读取一个分片报文的有效载荷:
当首次进行分片时,根据报文头的长度和最大数据分段值读取一个分片报文的有效载荷,并记录有效载荷分片结束的位置;当后续进行分片时,根据报文头的长度和最大数据分段值,从有效载荷分片结束的位置开始读取一个分片报文的有效载荷,当报文尚未全部传输完毕时,更新有效载荷分片结束的位置。
最大数据分段值即一个分片报文的最大数据长度,其大小可以根据需要设置。由于一个分片报文由报文头和有效载荷组成,因此,一个分片报文的有效载荷的长度,即最大数据分段值减去报文头的长度的差值。
可选地,报文的有效载荷即报文内容,有效载荷分片结束的位置即报文内容分片结束的位置。如图2所示,报文内容部分的两段虚线的位置即两次分片记录和更新的有效载荷分片结束的位置,它们将报文内容分片成三部分,前面两部分为最大数据分段(其长度等于最大数据分段值减去报文头的长度的差值),最后一部分小于或等于最大数据分段。当第一次分片时,从报文内容的起始位置(左侧)开始读取有效载荷,直到左起第一个虚线位置为止,并将该第一个虚线位置记录为有效载荷分片结束的位置;当第二次分片时,从第一个虚线位置开始读取有效载荷,直到左起第二个虚线位置为止,并将有效载荷分片结束的位置更新为该第二个虚线位置;当第三次分片时,从第二个虚线位置开始读取有效载荷,由于剩余的报文内容的长度小于或等于最大数据分段,因此一直读取到分段内容结束位置为止。
S13、将报文头和有效载荷组成分片报文后予以传输。
在一次分片传输过程中,当读取到报文头和一个分片报文的有效载荷后,就将读取到的报文头和有效载荷组合成一个分片报文,并将该分片报文通过物理通道发送出去。如图2所示,第一次分片时,报文头与左起第一部分报文内容组合成分片报文1;第二次分片时,报文头与左起第二部分报文内容组合成分片报文2;第三次分片时,报文头与左起第三部分报文内容组合成分片报文3。
当完成一次分片传输后,如果报文尚未全部传输完毕,则返回步骤S12,继续进行下一次分片传输,直到报文全部传输完毕。
进一步地,当报文全部传输完毕后,立即删除该报文的第一指示符,以避免第一指示符占用存储空间。在某些实施例中,也可以将第一指示符以覆盖存储的方式存储于特定位置,即后一次存储的数据覆盖前一次存储的数据,这样即使不删除存储的第一指示符,也不会导致存储的第一指示符越积越多而占用大量存储空间。
相对于存储报文头的方式,本发明实施例只存储标识报文头的存储位置的第一指示符,每次分片时通过第一指示符从主机内存读取报文头。假设网络设备和上层软件商定第一指示符最多三个,且每个指示符为16字节,当有128个队列时,最多占用的存储空间为16*3*128=6千字节,远远低于存储报文头时占用的128千字节的存储空间,节省了大量的芯片存储空间。同时,由于存储的是第一指示符而非报文头,因此能够支持更长的报文头,即可以分片传输具有更长报文头的报文,扩大了应用范围。
实施例二
参照图3,提出本发明第二实施例的报文分片传输方法,本实施例以传输TCP报文为例,所述方法包括以下步骤:
S21、网络设备服务目标队列,获取目标队列中的TCP报文的第一指示符并存储。
具体的,当上层软件需要网络设备通过报文分片传输方法发送一个TCP报文时,网络设备将发送TCP报文的任务加入目标队列中。网络设备采用轮询算法轮流服务各个队列。当网络设备服务目标队列时,首先获取该目标队列中的TCP报文的第一指示符,并将该第一指示符存储于本地。
本步骤S21获取第一指示符的方法与第一实施例中的步骤S11相同,在此不再赘述。
S22、网络设备根据第一指示符读取TCP报文的报文头,并读取第一个分片报文的有效载荷,将报文头和有效载荷组成一个分片报文后予以传输。
本步骤S22中,网络设备进行第一次分片,根据第一指示符获取报文头在主机内存中的存储位置,根据获取的存储位置从主机内存中读取报文头;同时,根据报文头的长度和最大数据分段值读取一个分片报文的有效载荷(如图2中左起第一个最大数据分段的报文内容),并记录有效载荷分片结束的位置(如图2中左起第一个虚线的位置)。然后将获取的报文头和有效载荷组成一个分片报文(如图2中的分片报文1),通过物理通道发送出去。
S23、网络设备服务其它队列。
当完成目标队列中TCP报文的第一次分片传输后,网络设备根据一定的轮询算法开始服务其它队列。
S24、网络设备再次服务目标队列,判断TCP报文是否全部传输完毕。当传输完毕时,执行步骤S26;当没有传输完毕时,执行步骤S25。
具体的,当网络设备再次服务目标队列时,首先判断TCP报文是否全部传输完毕。可选地,网络设备检测TCP报文中是否还有剩余的有效载荷需要传输;当还有剩余的有效载荷时,则判断TCP报文没有全部传输完毕;当没有剩余的有效载荷时,则判断TCP报文已全部传输完毕。
在某些实施例中,网络设备也可以在完成一次分片传输后立即判断TCP报文是否全部传输完毕,当全部传输完毕时,则不再记录(首次分片)或更新(非首次分片)有效载荷分片结束的位置。
当TCP报文已全部传输完毕时,则执行步骤S25,继续进行分片传输;当TCP报文没有全部传输完毕时,则执行步骤S26。
S25、网络设备根据第一指示符再次读取TCP报文的报文头,并读取第N(N≥2)个分片报文的有效载荷,将报文头和有效载荷组成一个分片报文后传输出去。
本步骤S25中,网络设备进行第N(N≥2)次分片,根据第一指示符重复读取目标队列中TCP报文的报文头,并读取第N(N≥2)个分片报文的有效载荷,将报文头和有效载荷组成一个分片报文后通过物理通道传输出去。当本次分片传输完成后,返回步骤S23,转而服务其它队列,如此循环往复,直至该TCP报文全部传输完毕。
举例而言,如图2所示,当网络设备进行第二次分片时,根据第一指示符获取报文头在主机内存中的存储位置,根据获取的存储位置从主机内存中读取报文头;同时,跳到第一次分片时记录的有效载荷分片结束的位置(左起第一个虚线),根据报文头的长度和最大数据分段值读取一个分片报文的有效载荷(左起第二个最大数据分段的报文内容),并更新有效载荷分片结束的位置为左起第二个虚线的位置。然后将获取的报文头和有效载荷组成一个分片报文(分片报文2),通过物理通道发送出去。
当网络设备进行第三次分片时,根据第一指示符获取报文头在主机内存中的存储位置,根据获取的存储位置从主机内存中读取报文头;同时,跳到第二次分片时更新的有效载荷分片结束的位置(左起第二个虚线),根据报文头的长度和最大数据分段值读取一个分片报文的有效载荷,由于图2中剩余的报文内容的长度小于最大数据分段的长度,因此读取剩余的所有报文内容作为一个分片报文的有效载荷。然后将获取的报文头和有效载荷组成一个分片报文(分片报文2),通过物理通道发送出去。
由于图2中第三次分片为最后一次分片,此时,可以不必更新有效载荷分片结束的位置,而是直接记录或标记TCP报文已没有剩余的有效载荷需要传输或者TCP报文已全部传输完毕。当然,也可以更新有效载荷分片结束的位置为报文内容的终止位置,后续可以据此判断TCP报文已全部传输完毕。
S26、网络设备删除TCP报文的第一指示符。
当判断该TCP报文已全部传输完毕时,网络设备则删除TCP报文的第一指示符,以及时腾出存储空间,该TCP报文的传输流程结束。
从而,网络设备通过存储标识TCP报文的报文头的存储位置的第一指示符,每次分片传输时根据第一指示符重复从主机内存读取报文头即可,无需存储报文头。由于第一指示符的长度远远小于报文头的长度,因此减小了对存储空间的占用,极大的节省了网络设备的存储空间。同时,由于存储的是第一指示符而非报文头,因此能够支持更长的报文头,即网络设备可以分片传输具有更长报文头的报文,扩大了应用范围。
实施例三
参照图4,提出本发明第三实施例的报文分片传输装置,所述装置主要应用于网络设备,包括获取模块、读取模块和传输模块,其中:
获取模块:用于获取报文的第一指示符并存储,该第一指示符用于标识报文的报文头的存储位置。
具体的,获取模块先从主机内存获取报文的指示符和报文头的长度,然后根据报文头的长度从报文的指示符中提取出第一指示符并存储。由于每个指示符表示一块内存空间,包含起始地址以及长度,因此获取模块可以根据报文头的长度从多个指示符中识别出第一指示符。如图2所示,指示符1、指示符2和指示符3为第一指示符,获取模块获取指示符1、指示符2和指示符3并存储于内部。
读取模块:用于每次分片时,根据第一指示符读取报文头,并读取一个分片报文的有效载荷。
具体的,每次进行分片时,读取模块获取本地存储的第一指示符,根据第一指示符获取报文头在主机内存中的存储位置,根据获取的存储位置从主机内存中读取报文头。同时,通过以下方式读取一个分片报文的有效载荷:
当首次进行分片时,读取模块根据报文头的长度和最大数据分段值读取一个分片报文的有效载荷,并记录有效载荷分片结束的位置;当后续进行分片时,根据报文头的长度和最大数据分段值,从有效载荷分片结束的位置开始读取一个分片报文的有效载荷,当报文尚未全部传输完毕时,更新有效载荷分片结束的位置。
当进行最后一次分片时,读取模块可以不必更新有效载荷分片结束的位置,而是直接记录或标记TCP报文已没有剩余的有效载荷需要传输或者TCP报文已全部传输完毕。当然,也可以更新有效载荷分片结束的位置为报文内容的终止位置,后续可以据此判断TCP报文已全部传输完毕。
最大数据分段值即一个分片报文的最大数据长度,其大小可以根据需要设置。由于一个分片报文由报文头和有效载荷组成,因此,一个分片报文的有效载荷的长度,即最大数据分段值减去报文头的长度的差值。
可选地,报文的有效载荷即报文内容,有效载荷分片结束的位置即报文内容分片结束的位置。如图2所示,报文内容部分的两段虚线的位置即两次分片记录和更新的有效载荷分片结束的位置,它们将报文内容分片成三部分,前面两部分为最大数据分段(其长度等于最大数据分段值减去报文头的长度的差值),最后一部分小于或等于最大数据分段。当第一次分片时,读取模块从报文内容的起始位置(左侧)开始读取有效载荷,直到左起第一个虚线位置为止,并将该第一个虚线位置记录为有效载荷分片结束的位置;当第二次分片时,读取模块从第一个虚线位置开始读取有效载荷,直到左起第二个虚线位置为止,并将有效载荷分片结束的位置更新为该第二个虚线位置;当第三次分片时,读取模块从第二个虚线位置开始读取有效载荷,由于剩余的报文内容的长度小于或等于最大数据分段,因此一直读取到分段内容结束位置为止。
最后,读取模块将本次分片获取的报文头和有效载荷发送给传输模块。
传输模块:用于将报文头和有效载荷组成分片报文后予以传输。
具体的,传输模块接收到报文头和的有效载荷后,就将读取到的报文头和有效载荷组合成一个分片报文,并将该分片报文通过物理通道发送出去。如图2所示,第一次分片时,报文头与左起第一部分报文内容组合成分片报文1;第二次分片时,报文头与左起第二部分报文内容组合成分片报文2;第三次分片时,报文头与左起第三部分报文内容组合成分片报文3。
本发明实施例的报文分片传输装置,通过存储标识报文的报文头的存储位置的第一指示符,每次分片传输时根据第一指示符重复从主机内存读取报文头即可,无需存储报文头。由于第一指示符的长度远远小于报文头的长度,因此减小了对存储空间的占用,极大的节省了存储空间。同时,由于存储的是第一指示符而非报文头,因此能够支持更长的报文头,即可以分片传输具有更长报文头的报文,扩大了应用范围。
实施例四
参照图5,提出本发明第四实施例的报文分片传输装置,本实施例在第三实施例的基础上增加了一删除模块,所述删除模块用于:当报文全部传输完毕时,删除第一指示符。
可选地,删除模块可以检测TCP报文中是否还有剩余的有效载荷需要传输;当还有剩余的有效载荷时,则判断TCP报文没有全部传输完毕;当没有剩余的有效载荷时,则判断TCP报文已全部传输完毕。
可选地,删除模块可以通过检测是否有TCP报文已没有剩余的有效载荷需要传输或者TCP报文已全部传输完毕的记录或标记来判断报文是否全部传输完毕。
可选地,删除模块可以通过检测有效载荷分片结束的位置是否为报文内容的终止位置来判断报文是否全部传输完毕。
可选地,当报文已没有剩余的有效载荷需要传输时(如读取模块读取有效载荷时读取到报文内容的结束位置时),读取模块则通知删除模块,删除模块收到通知后,则判断报文已全部传输完毕。
从而,通过删除第一指示符,及时腾出了存储空间,防止第一指示符占用存储空间。
在某些实施例中,也可以省略删除模块,而是由获取模块将第一指示符以覆盖存储的方式存储于特定位置,即后一次存储的数据覆盖前一次存储的数据,这样即使不删除存储的第一指示符,也不会导致存储的第一指示符越积越多而占用大量存储空间。
本领域技术人员可以理解,本发明包括涉及用于执行本申请中所述操作中的一项或多项的设备。这些设备可以为所需的目的而专门设计和制造,或者也可以包括通用计算机中的已知设备。这些设备具有存储在其内的计算机程序,这些计算机程序选择性地激活或重构。这样的计算机程序可以被存储在设备(例如,计算机)可读介质中或者存储在适于存储电子指令并分别耦联到总线的任何类型的介质中,所述计算机可读介质包括但不限于任何类型的盘(包括软盘、硬盘、光盘、CD‐ROM、和磁光盘)、ROM(Read‐Only Memory,只读存储器)、RAM(Random Access Memory,随机存储器)、EPROM(Erasable Programmable Read‐Only Memory,可擦写可编程只读存储器)、EEPROM(Electrically Erasable ProgrammableRead‐Only Memory,电可擦可编程只读存储器)、闪存、磁性卡片或光线卡片。也就是,可读介质包括由设备(例如,计算机)以能够读的形式存储或传输信息的任何介质。
本技术领域技术人员可以理解,可以用计算机程序指令来实现这些结构图和/或框图和/或流图中的每个框以及这些结构图和/或框图和/或流图中的框的组合。本技术领域技术人员可以理解,可以将这些计算机程序指令提供给通用计算机、专业计算机或其他可编程数据处理方法的处理器来实现,从而通过计算机或其他可编程数据处理方法的处理器来执行本发明公开的结构图和/或框图和/或流图的框或多个框中指定的方案。
本技术领域技术人员可以理解,本发明中已经讨论过的各种操作、方法、流程中的步骤、措施、方案可以被交替、更改、组合或删除。进一步地,具有本发明中已经讨论过的各种操作、方法、流程中的其他步骤、措施、方案也可以被交替、更改、重排、分解、组合或删除。进一步地,现有技术中的具有与本发明中公开的各种操作、方法、流程中的步骤、措施、方案也可以被交替、更改、重排、分解、组合或删除。
以上参照附图说明了本发明的优选实施例,并非因此局限本发明的权利范围。本领域技术人员不脱离本发明的范围和实质,可以有多种变型方案实现本发明,比如作为一个实施例的特征可用于另一实施例而得到又一实施例。凡在运用本发明的技术构思之内所作的任何修改、等同替换和改进,均应在本发明的权利范围之内。
Claims (10)
1.一种报文分片传输方法,其特征在于,包括以下步骤:
获取报文的第一指示符并存储,所述第一指示符用于标识所述报文的报文头的存储位置;
每次分片时,根据所述第一指示符读取所述报文头,并读取一个分片报文的有效载荷;
将所述报文头和所述有效载荷组成分片报文后予以传输。
2.根据权利要求1所述的报文分片传输方法,其特征在于,所述获取报文的第一指示符并存储的步骤包括:
获取所述报文的指示符和所述报文头的长度,所述指示符包括第一指示符;
根据所述报文头的长度从所述指示符中提取出第一指示符并存储。
3.根据权利要求1所述的报文分片传输方法,其特征在于,所述读取一个分片报文的有效载荷的步骤包括:
当首次进行分片时,根据所述报文头的长度和最大数据分段值读取一个分片报文的有效载荷,并记录所述有效载荷分片结束的位置;
当后续进行分片时,根据所述报文头的长度和最大数据分段值,从所述有效载荷分片结束的位置开始读取一个分片报文的有效载荷,当所述报文尚未全部传输完毕时,更新所述有效载荷分片结束的位置。
4.根据权利要求1所述的报文分片传输方法,其特征在于,所述根据所述第一指示符读取所述报文头的步骤包括:
根据所述第一指示符获取所述报文头的存储位置,根据所述存储位置从主机内存中读取所述报文头。
5.根据权利要求1‐4任一项所述的报文分片传输方法,其特征在于,所述方法还包括:当所述报文全部传输完毕时,删除所述第一指示符。
6.一种报文分片传输装置,其特征在于,包括:
获取模块,用于获取报文的第一指示符并存储,所述第一指示符用于标识所述报文的报文头的存储位置;
读取模块,用于每次分片时,根据所述第一指示符读取所述报文头,并读取一个分片报文的有效载荷;
传输模块,用于将所述报文头和所述有效载荷组成分片报文后予以传输。
7.根据权利要求6所述的报文分片传输装置,其特征在于,所述获取模块用于:
获取所述报文的指示符和所述报文头的长度,所述指示符包括第一指示符;根据所述报文头的长度从所述指示符中提取出第一指示符并存储。
8.根据权利要求6所述的报文分片传输装置,其特征在于,所述读取模块用于:
当首次进行分片时,根据所述报文头的长度和最大数据分段值读取一个分片报文的有效载荷,并记录所述有效载荷分片结束的位置;
当后续进行分片时,根据所述报文头的长度和最大数据分段值,从所述有效载荷分片结束的位置开始读取一个分片报文的有效载荷,当所述报文尚未全部传输完毕时,更新所述有效载荷分片结束的位置。
9.根据权利要求6所述的报文分片传输装置,其特征在于,所述读取模块用于:根据所述第一指示符获取所述报文头的存储位置,根据所述存储位置从主机内存中读取所述报文头。
10.根据权利要求6‐9任一项所述的报文分片传输装置,其特征在于,还包括删除模块,所述删除模块用于:当所述报文全部传输完毕时,删除所述第一指示符。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610700276.XA CN106330788B (zh) | 2016-08-19 | 2016-08-19 | 报文分片传输方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610700276.XA CN106330788B (zh) | 2016-08-19 | 2016-08-19 | 报文分片传输方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106330788A true CN106330788A (zh) | 2017-01-11 |
CN106330788B CN106330788B (zh) | 2018-05-22 |
Family
ID=57742533
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610700276.XA Active CN106330788B (zh) | 2016-08-19 | 2016-08-19 | 报文分片传输方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106330788B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109726144A (zh) * | 2018-12-27 | 2019-05-07 | 新华三技术有限公司 | 一种数据报文的处理方法和装置 |
CN110958213A (zh) * | 2018-09-27 | 2020-04-03 | 华为技术有限公司 | 处理tcp报文的方法、toe组件以及网络设备 |
CN111224903A (zh) * | 2018-11-26 | 2020-06-02 | 深圳市中兴微电子技术有限公司 | 一种数据传输方法、设备及计算机可读存储介质 |
WO2021027645A1 (zh) * | 2019-08-09 | 2021-02-18 | 中兴通讯股份有限公司 | 一种网络报文发送的方法、装置和网络处理器 |
CN113595940A (zh) * | 2021-09-28 | 2021-11-02 | 恒生电子股份有限公司 | 分片的发送方法、接收方法和对应装置 |
CN117579725A (zh) * | 2023-12-12 | 2024-02-20 | 中科驭数(北京)科技有限公司 | 报文分段传输方法、装置、设备及介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102075561A (zh) * | 2010-11-29 | 2011-05-25 | 成都市华为赛门铁克科技有限公司 | 一种网络资源下载方法,装置及系统 |
US20120257627A1 (en) * | 2011-04-08 | 2012-10-11 | Hung Nguyen | Systems and methods for packet de-duplication |
CN105610744A (zh) * | 2016-01-28 | 2016-05-25 | 东南大学 | 一种ip报文分片与重组方法及装置 |
-
2016
- 2016-08-19 CN CN201610700276.XA patent/CN106330788B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102075561A (zh) * | 2010-11-29 | 2011-05-25 | 成都市华为赛门铁克科技有限公司 | 一种网络资源下载方法,装置及系统 |
US20120257627A1 (en) * | 2011-04-08 | 2012-10-11 | Hung Nguyen | Systems and methods for packet de-duplication |
CN105610744A (zh) * | 2016-01-28 | 2016-05-25 | 东南大学 | 一种ip报文分片与重组方法及装置 |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110958213A (zh) * | 2018-09-27 | 2020-04-03 | 华为技术有限公司 | 处理tcp报文的方法、toe组件以及网络设备 |
CN110958213B (zh) * | 2018-09-27 | 2021-10-22 | 华为技术有限公司 | 处理tcp报文的方法、toe组件以及网络设备 |
US11489945B2 (en) | 2018-09-27 | 2022-11-01 | Huawei Technologies Co., Ltd. | TCP packet processing method, toe component, and network device |
CN111224903A (zh) * | 2018-11-26 | 2020-06-02 | 深圳市中兴微电子技术有限公司 | 一种数据传输方法、设备及计算机可读存储介质 |
CN111224903B (zh) * | 2018-11-26 | 2022-10-14 | 深圳市中兴微电子技术有限公司 | 一种数据传输方法、设备及计算机可读存储介质 |
CN109726144A (zh) * | 2018-12-27 | 2019-05-07 | 新华三技术有限公司 | 一种数据报文的处理方法和装置 |
CN109726144B (zh) * | 2018-12-27 | 2021-11-02 | 新华三技术有限公司 | 一种数据报文的处理方法和装置 |
WO2021027645A1 (zh) * | 2019-08-09 | 2021-02-18 | 中兴通讯股份有限公司 | 一种网络报文发送的方法、装置和网络处理器 |
CN113595940A (zh) * | 2021-09-28 | 2021-11-02 | 恒生电子股份有限公司 | 分片的发送方法、接收方法和对应装置 |
CN117579725A (zh) * | 2023-12-12 | 2024-02-20 | 中科驭数(北京)科技有限公司 | 报文分段传输方法、装置、设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN106330788B (zh) | 2018-05-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106330788A (zh) | 报文分片传输方法和装置 | |
US10977761B2 (en) | Digital watermark embedding method and extraction method, digital watermark embedding apparatus and extraction apparatus, and digital watermark system | |
US20240146771A1 (en) | Inclusion of time-series geospatial markers in analyses employing a cyber-decision platform | |
KR101547194B1 (ko) | 타겟광고를 위한 쿠키정보 관리 방법 및 쿠키정보 관리를 위한 어플리케이션 | |
CN104346433B (zh) | 用于数据库查询操作的可缩放加速的方法和系统 | |
CN102694861B (zh) | 一种基于云技术的终端应用软件分类方法、装置及系统 | |
CN104704782A (zh) | 用于执行选择性深度包检测的系统和方法 | |
CN104320448B (zh) | 一种基于大数据的计算设备的缓存与预取加速方法和装置 | |
CN101263464A (zh) | 基于帧的数据传送并行处理 | |
KR102461022B1 (ko) | 로그 데이터 분석 방법 및 장치 | |
WO2016000507A1 (zh) | 省流量模式搜索服务的方法、服务器、客户端和系统 | |
CN109669787B (zh) | 数据传输方法及装置、存储介质、电子设备 | |
CN109478171A (zh) | 提高openfabrics环境中的吞吐量 | |
CN115904259A (zh) | 非易失性存储器标准NVMe指令的处理方法及相关装置 | |
CN112511459A (zh) | 一种流量识别方法、装置、电子设备及存储介质 | |
CN104424224A (zh) | 一种文件索引存储方法及装置 | |
CN109417507A (zh) | 部分延迟的报文访问 | |
CN104813610A (zh) | 提供多个内容项目显示在多个设备上 | |
CN117793016A (zh) | 一种数据报传输方法和装置、电子设备及存储介质 | |
CN104702508A (zh) | 表项动态更新方法及系统 | |
CN108629456A (zh) | 公交数据的读取方法、装置、终端设备及可读存储介质 | |
CN112882833A (zh) | 一种数据采集方法、装置、计算机设备及存储介质 | |
CN104750824A (zh) | 应用功能数据的处理方法及装置 | |
CN115002011B (zh) | 流量双向测试方法、装置、电子设备及存储介质 | |
CN110245307A (zh) | 页面缓存管理方法及系统、终端设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |