WO2010075795A1 - 分片信息处理的方法和装置 - Google Patents

分片信息处理的方法和装置 Download PDF

Info

Publication number
WO2010075795A1
WO2010075795A1 PCT/CN2009/076314 CN2009076314W WO2010075795A1 WO 2010075795 A1 WO2010075795 A1 WO 2010075795A1 CN 2009076314 W CN2009076314 W CN 2009076314W WO 2010075795 A1 WO2010075795 A1 WO 2010075795A1
Authority
WO
WIPO (PCT)
Prior art keywords
information
fragmentation information
fragment
slice
fragmentation
Prior art date
Application number
PCT/CN2009/076314
Other languages
English (en)
French (fr)
Inventor
胡明武
Original Assignee
华为技术有限公司
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 华为技术有限公司 filed Critical 华为技术有限公司
Publication of WO2010075795A1 publication Critical patent/WO2010075795A1/zh

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9021Plurality of buffers per packet
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements

Definitions

  • the present invention relates to the field of communications, and in particular, to a method and apparatus for fragmentation information processing.
  • multi-link transmission technology In order to increase data transmission speed, multi-link transmission technology is usually used.
  • the data packet In the process of multi-link transmission, in order to utilize the bandwidth of each sub-link evenly, when a data packet enters a network, the data packet is usually fragmented according to a fixed length. The fragment length must be less than the MTU (Maximum Transmission Unit) of the link.
  • MTU Maximum Transmission Unit
  • Each fragment has a fragment sequence number and a start and end flag. When all the fragments arrive at the destination, all the fragments need to be assembled into the original message.
  • the host of the destination network verifies whether each fragment is a fragment of the same datagram by using the identifier of the header of the data packet, and controls fragmentation and reassembly according to the slice offset and the fragment sequence number.
  • MLPPP Multilink-Point to Point Protocol
  • MLPPP Multilink-Point to Point Protocol
  • the following methods are generally used for fragment recombination: storing in the chronological order in which the fragments arrive, and for each newly received fragment, entering the different storage areas according to whether the serial numbers are consecutive or not. Specifically, when the fragmentation information is acquired, the fragmentation information with consecutive sequence numbers is usually entered into a continuous queue, and the fragmentation information with discontinuous serial numbers enters the discontinuous stack.
  • the fragmentation information with consecutive sequence numbers is usually entered into a continuous queue, and the fragmentation information with discontinuous serial numbers enters the discontinuous stack.
  • the embodiment of the invention provides a method and a device for processing fragmentation information, which can improve the efficiency of fragmentation reorganization.
  • an embodiment of the present invention provides a method for processing fragmentation information, including:
  • the storage address in the allocated slice information storage space holds the slice information of the currently received slice.
  • an embodiment of the present invention provides an apparatus for processing fragmentation information, including: an obtaining module, configured to acquire fragmentation information of a currently received fragment;
  • a relationship storage module configured to store a correspondence between a fragment serial number and a fragmentation information storage address
  • An address allocation module configured to allocate a storage location in the fragmentation information storage space according to the correspondence between the fragment serial number and the fragmentation information storage address stored by the relationship storage module;
  • a fragmentation information storage module configured to save the fragmentation information received by the receiving module in a storage address allocated by the address allocation module.
  • the embodiment of the invention has the following advantages:
  • the method provided by the embodiment of the present invention stores the fragmentation information in the corresponding storage address according to the correspondence between the fragment serial number and the storage address.
  • Embodiment 1 is a flowchart of a method for processing fragmentation information in Embodiment 1 of the present invention
  • Embodiment 1 of the present invention is a schematic diagram of fragmentation information in Embodiment 1 of the present invention.
  • Embodiment 3 is a flowchart of a method for processing fragmentation information in Embodiment 2 of the present invention.
  • FIG. 4 is a schematic diagram of the correspondence between the serial number of the slice and the storage address in the second embodiment of the present invention
  • FIG. 5 is a schematic diagram of the related attributes of the reference fragment information in the second embodiment of the present invention
  • FIG. 6 is a schematic diagram of an apparatus for processing fragmentation information in Embodiment 3 of the present invention
  • FIG. 7 is a schematic diagram of another apparatus for processing fragmentation information in Embodiment 3 of the present invention.
  • the embodiment of the invention provides a method and a device for processing fragmentation information, which can improve the efficiency of acquiring fragmentation information.
  • An embodiment of the present invention provides a method for processing fragmentation information. As shown in FIG. 1, the method includes the following steps: Step S101: Acquire fragmentation information of a fragment received by a receiving end.
  • the data packet size needs to meet the MTU limit of the network. If the packet length is greater than the link MTU, the fragmentation mechanism is used to divide the packet into several pieces, each of which is smaller than or Equal to MTU, and each shard has a shard serial number; each shard can also have start and end flags.
  • the data packet receiving end After receiving the fragment, the data packet receiving end can store the fragment into the external memory. At the same time, the fragment information can be generated according to the attribute of the fragment, and the receiving end will open a storage space for storing the fragmentation information. It is called a fragmentation information storage space.
  • the attributes of the fragment may include a first end, a tail or an intermediate identifier of the fragment, a length of the fragment, a storage address of the fragment in the external memory, and the like.
  • 201 in FIG. 2 is fragmentation information.
  • a specific schematic diagram has the following meanings.
  • the length of the fragmentation information is 36 bits.
  • the 35th digit identifies V as the flag occupied by the fragmentation information in the current space. 1 indicates valid, 0 indicates invalid, and the bit is set to 0 to indicate the score.
  • the address space occupied by the slice information can be used again; the 34th bit identifier B is the start flag bit, 1 is valid, and is the first slice information; the 33rd bit identifier E is the end flag bit, 1 is valid, indicating that it is the tail point Piece information. It can be seen from the above that if the start flag bit B of the slice information of a certain slice is 1, it means that the slice is the first slice; if the end flag E of the slice information of a slice is 1, it represents the point.
  • the slice is a tail slice; if the slice information of a slice starts with the flag B and the end flag If bit E is 0, it means that the slice is an intermediate slice.
  • the other fields are the storage information of the fragments. These fields can be used to obtain the storage address of the fragment and reassemble the fragments into data packets.
  • the storage address of the fragment is different from the storage address of the fragmentation information, but the fragmentation information includes the storage address information of the fragment. Therefore, after the fragmentation information is found, the corresponding information can be found. Fragmentation.
  • the fragmentation information can be sorted at the receiving end, and then the corresponding fragment is found in the external memory according to the sorting result, and reorganized.
  • a sliding movement window which is a fragmentation information storage space for storing fragmentation information whose fragment serial number is within a certain range.
  • 203 in Fig. 2 is a queue of a plurality of fragmentation information storage spaces.
  • Step S102 Allocate a storage address in the fragmentation information storage space of the receiving end according to the correspondence between the fragment serial number saved by the receiving end and the fragment information storage address.
  • the fragmentation information obtained in step S101 is obtained according to the correspondence between the storage space of the fragmentation information and the fragment serial number actually saved by the receiving end, and the address of the fragmentation information is obtained by using the fragment serial number corresponding to the fragmentation information. , the address is assigned to the fragmentation information as a storage space.
  • the corresponding relationship between the fragment serial number actually saved by the receiving end and the fragment information storage address may be preset. Therefore, the step may be specifically: according to the preset fragment serial number and the fragment information storage address. Corresponding relationship, the storage address is allocated in the fragmentation information storage space for the fragmentation information.
  • the corresponding relationship may be a given rule.
  • the storage address of the fragmentation information may be directly calculated according to the rule, without searching for the storage address of the fragmentation information.
  • y is the storage address of the fragmentation information of the current received fragment
  • a is the storage address of the reference fragmentation information
  • X is the fragment sequence number corresponding to the fragmentation information of the current received fragment corresponding to the reference fragmentation information.
  • the information can be saved to the 4093 address.
  • the function relationship may also be: y is the storage address of the fragmentation information of the currently received fragment, X is the fragment sequence number of the current received fragment, and a is the fragment of the corresponding fragment of the reference fragmentation information.
  • the offset between the serial number and the reference fragment information storage address for example, it is still assumed that the slice sequence number of the slice corresponding to the reference fragment information is 1, the storage address of the reference fragment information is 4091, and the fragment of the current received fragment is fragmented.
  • the slice information can be saved to the 4093 address. It can be seen from the above that in the embodiment of the present invention, all the shards are stored in the same storage space in the order of the shard serial numbers.
  • a linear relationship may be established by: obtaining fragmentation information of a first fragment received by a receiving end, and storing fragmentation information of the first fragment as a reference fragment in a fragmentation information storage space.
  • the information can be obtained by using the correspondence between the reference fragmentation information and the address space stored by the reference fragmentation information to obtain the storage address of the fragmentation information received later.
  • the foregoing reference fragment information and the subsequently received fragmentation information may be first fragmentation information, tail fragmentation information, or any intermediate fragmentation information.
  • the first fragmentation information carries a start identifier
  • the tail fragmentation information carries an end identifier.
  • Step S103 The fragmentation information of the currently received fragment is saved in a storage address in the allocated fragmentation information storage space.
  • the fragmentation information is saved in the storage address allocated in step S102.
  • the embodiment may further include the following steps: after storing the fragmentation information, the stored fragmentation information may be used as an index to obtain the fragment corresponding to the fragmentation information and reassembled into a data packet, and then Send to the previous layer protocol.
  • An implementation manner is as follows: the fragmentation information (the first fragmentation information) of the carrying start identifier, that is, the fragmentation information of the 34th identifier B (the initial flag bit) is 1, the storage address where the storage address is located, and the storage is sequentially detected.
  • the fragmentation information is stored in the storage address; if the fragmentation information is not stored in a certain storage address, that is, the 35th identifier V is 0, it is proved that the fragmentation information in the storage address may not be received yet, so Suspending the detection of the next storage address, after storing the fragmentation information in the storage address, continuing to detect the next storage address; when detecting the fragmentation information (tail fragmentation information) carrying the end identifier, that is, the 33rd digit E is 1 Obtaining the fragmentation information stored in the storage address between the storage address of the fragmentation information carrying the foregoing start identifier and the storage address of the fragmentation information carrying the end identifier, that is, obtaining the first fragmentation information and the intermediate fragmentation.
  • the information and the tail fragment information are obtained. According to the fragment information obtained above, the corresponding fragment is obtained and reassembled into a data packet, and the data packet is sent. After the data packet is sent, the storage space occupied by the fragmentation information obtained above can be cleared.
  • the method provided by the embodiment of the present invention establishes a linear correspondence between the fragment serial number of the fragment and the storage address of the fragmentation information, and only needs to know the storage address of one fragmentation information, and can directly obtain the storage address of other fragmentation information. , without having to search in the storage address of the fragmentation information, saving a lot of search time.
  • the fragment serial number can be directly obtained, thereby eliminating the need to save the fragment serial number in the fragmentation information. It also saves storage space for fragmentation information.
  • the method for processing fragmentation information provided by the embodiment of the present invention is further described by using the second embodiment. As shown in FIG. 3, the method includes:
  • step S301 the fragmentation information of the received first fragment is obtained, and the fragmentation information of the first fragment is saved in the fragmentation information storage space as the reference fragmentation information.
  • the corresponding sequence of the fragment serial number and the storage address is established by using the fragment serial number of the reference fragment information and its storage address;
  • the first fragment received may be the first fragment or the intermediate fragment. It may even be a tail slice. If it is the first received slice, it can be used as the reference slice.
  • the slice information of the slice is used as the reference slice information.
  • the reference fragmentation information may be the first fragmentation information and stored in the first address.
  • the reference fragmentation may also be a fragment with a fragment sequence number of 4, and the corresponding storage address is A.
  • the storage space of each storage address can meet the needs of completely storing one piece of fragmentation information.
  • the correspondence between the sequence number of the slice and the storage address may be a linear relationship as shown in FIG.
  • Step S302 Acquire a storage address of the received fragmentation information according to the reference fragmentation information.
  • FIG. 5 is a schematic diagram of the reference fragment information related attribute stored in the storage address, wherein the 0th to the 11th bits are seq_begin indicating the score of the reference fragment corresponding to the reference fragment information.
  • the serial number of the slice, the 12th to the 18th bit is addr_begin indicates the storage address of the reference slice information, the 13th to 25th bits exp_addr is the buffer space, and the 26th bit is the first slice wait flag.
  • each storage address of each fragmentation information storage space is not less than the length of any fragmentation information, and the fragmentation sequence number of the reference fragmentation information is N, and the storage address is M, if the received fragmentation information corresponds to a sub-segment If the slice serial number is N+2, then the slice serial number differs by 2, and the storage address of the received slice information is M+2. In this way, if the fragment sequence number corresponding to the received fragmentation information is not continuous, the fragmentation information may be stored in the order of the serialization sequence number to avoid confusion.
  • the receiving of the fragmentation information continues, and the saving is performed in the manner provided in steps S301 and S302.
  • the fragmentation sequence number does not need to include the fragment serial number, because the fragment serial number has been associated with the storage address of the fragmentation information, and the fragment serial number can be directly obtained through the storage address of the fragmentation information, thereby saving more Storage space.
  • a channel can be used to maintain and save the fragmentation information of the received fragment.
  • the channel is shown as 202 in FIG. It should be noted that the number of storage addresses maintained by the above-mentioned channels may be limited. Therefore, if the fragmentation information belonging to the same data packet cannot be stored in a certain period of time, the storage address occupied by a part of the fragmentation information needs to be cleared. And set the V flag in the fragmentation information to 0. So that subsequent fragmentation information can be stored in time.
  • fragmentation information A is received and stored, other fragmentation information belonging to the same data packet as the fragmentation information A is still not completely received within 10 seconds, that is, the storage space occupied by the fragmentation information A cannot be Clearing, at this time, the fragmentation information A and the already stored fragmentation information belonging to the same data packet as the fragmentation information A are cleared. For example, setting the V flag to 0 can achieve the purpose of clearing. Because the fragmentation information belonging to the same data packet cannot be stored intact within a predetermined time, it may mean that the fragmentation information is lost or invalid.
  • the partial storage address needs to be emptied in time. If the upper limit of the storage address is 128, when all the 128 storage addresses store the fragmentation information, some space needs to be cleared to store the received subsequent points. Piece information.
  • the fragmentation information in the storage address is cleared, the first fragmentation information may be selected according to the sequence of receiving, and then the fragmentation information and the fragmentation information belonging to the same data packet as the fragmentation information are cleared. . Of course, it is also possible to select a fragmentation information according to other methods, and clear the selected fragmentation information and the fragmentation information corresponding to the fragmentation information belonging to the same datagram. You can write 0 to all addresses, or you can set the V flag in the fragmentation information to 0 to clear the fragmentation information storage space.
  • the correspondence between the fragment serial number and the storage address mentioned in the foregoing steps may also be: according to the storage address in the storage space.
  • the number and the number of fragmentation information belonging to the same data packet change the location of the first address, for example: the number of storage addresses is 128, the first address is storage address 0, and the fragment serial number 0 corresponds to storage address 0, then the received points
  • the slice sequence number corresponding to the slice information is 5
  • the storage address to be stored in the slice information is the storage address 5 of the 5th bit after the first address
  • the slice information is cleared, if the number of storage addresses occupied by the cleared fragment information is 5, the original storage address 5 is taken as the first address, and the fragmentation information is continuously received.
  • the correspondence information of the slice serial number and the storage address of the slice information can be saved by the form of 501 of Fig. 5. If there are multiple channels simultaneously receiving and saving the fragmentation information, the correspondence relationship information shown in FIG. 501 can be saved in the form shown in FIG.
  • the fragmentation information is stored in the storage address or at the same time, the fragment corresponding to the fragmentation information can be reassembled into a data packet.
  • the specific process is as follows:
  • Step S303 Starting from the first address, detecting whether fragmentation information is stored in the storage address.
  • a flag V exists in each storage address, and the flag indicates the storage condition in the storage address. For example, when the fragmentation information is not stored in the storage address, the location 0 is identified. When the fragmentation information is stored, the flag is Position 1. If the fragmentation information is not stored in the storage address, indicating that the fragmentation information of the data packet has not been completely transmitted, the detection is suspended for a period of time and then it is detected whether the storage address is stored. The fragmentation information, after the storage of the fragmentation information is detected, continues to step S304.
  • the time for suspending the check 'J can be determined by a preset configuration.
  • Step S304 After detecting the fragmentation information stored in the storage address as the tail fragmentation information, obtain the first fragmentation information, the intermediate fragmentation information after the first fragmentation information, and the tail fragmentation from the storage address of the first fragmentation information.
  • the tail fragment information is fragment information carrying an end identifier, and is used to identify that the corresponding fragment is the end of the data packet. Because the fragmentation information is stored in a linear relationship, the address stored in the tail fragment information is the last storage address in the fragmentation information of the data packet. After the tail fragmentation information is obtained, the first fragmentation information is sent to the end. The fragmentation information is all obtained.
  • the first fragmentation information stored in the storage address is detected as the first fragmentation information
  • the first fragmentation information is obtained and cached (the cached address may be identified by the exp_addr field indicated by 501 in FIG. 5), and then The fragmentation information in the next storage address is obtained in sequence until the tail fragmentation information is obtained and reorganized.
  • Step S305 Obtain a fragment corresponding to the fragmentation information according to the obtained fragmentation information, and reassemble the fragment into a data packet.
  • Step S306 Send a data packet, and clear the storage address occupied by the fragmentation information corresponding to the fragment constituting the data packet, and continue to step S303. If the obtained fragmentation information is cached, the storage space of the fragmentation information and the buffer for reassembly are also required to be cleared in the fragmentation information storage space.
  • the method provided by the embodiment of the present invention establishes a correspondence between the fragment serial number corresponding to the fragmentation information and the storage address, so that only the storage address and the fragment serial number of one fragmentation information need to be known, and other fragmentation information can be compared.
  • the correspondence is stored in the corresponding storage address.
  • searching for fragmentation information it only needs to be obtained one by one from the storage address. It does not need to search the storage space, which saves a lot of search time.
  • reading the slice information in parallel with emptying the storage space speeds up the efficiency of reading the data.
  • the embodiment of the present invention further provides an apparatus for reading data, as shown in FIG. 6, comprising: an obtaining module 610, configured to acquire fragmentation information of a fragment currently received by a receiving end;
  • the relationship storage module 620 is configured to save a correspondence between the fragment serial number and the fragmentation information storage address.
  • the correspondence relationship can be a linear correspondence.
  • the address that the fragmentation information should store can be calculated by a linear function.
  • y is the storage address of the received fragmentation information
  • a is the storage address of the reference fragmentation information
  • X is the fragment serial number corresponding to the received fragmentation information and the fragment serial number corresponding to the reference fragmentation information.
  • Offset; or y is the storage address of the received fragmentation information
  • X is the fragmentation sequence number of the fragment corresponding to the fragmentation information
  • a fragmentation sequence number and reference of the fragment corresponding to the reference fragmentation information The offset of the fragmentation information storage address.
  • the establishment of the corresponding relationship can be saved in the receiving end in advance, or can be dynamically adjusted.
  • the dynamic adjustment method may save the first fragmentation information acquired by the obtaining module 610 in the fragmentation information storage space as the reference fragmentation information, and save the same in the relation storage module 620 (shown as 502 in FIG. 5).
  • the slice sequence number of the first slice and the storage address of the first slice information may be saved in the receiving end in advance, or can be dynamically adjusted.
  • the address allocation module 630 is configured to store the fragmentation information of the fragmentation information acquired by the acquiring module 610 at the receiving end according to the correspondence between the fragment serial number and the fragmentation information storage address stored by the relationship storage module 620. Allocate storage addresses in space.
  • the storage address that the fragmentation information acquired by the acquisition module should be stored is obtained, and the fragment serial number seq_cur of the fragment corresponding to the fragmentation information received by the acquisition module 610 is obtained, and the reference score is obtained.
  • the fragment sequence number seq_begin of the fragment corresponding to the slice information; then obtaining the storage address addr_ begin of the reference fragment information in the storage space; thereby obtaining the fragment received by the receiving end according to the calculation formula addr_cur addr_begin+ (seq_cur - seq_begin)
  • the storage address value of the fragmentation information is addr_cur, and then the storage space can be allocated for the fragmentation information according to addr_cur.
  • the slice sequence number seq_begin of the slice corresponding to the reference slice information, and the storage address addr_ begin of the reference slice information in the storage space may be stored in the relation storage module 620.
  • the fragmentation information storage module 640 is configured to save the fragmentation information received by the receiving module in a storage address allocated by the address allocation module 630.
  • the fragmentation information acquired by the acquisition module 610 is stored in the storage address allocated by the address assignment module 630.
  • the apparatus provided by the embodiment of the present invention may further include:
  • the linear relationship establishing module 650 acquires the fragmentation information of the first fragment received by the receiving end as the reference fragmentation information, and saves the reference fragmentation information in the fragmentation information storage space, and divides the reference score
  • the storage address of the slice information in the slice information storage space and the slice serial number of the first slice are stored in the relationship storage module 620.
  • the apparatus provided in this embodiment may further include:
  • the detecting module 660 is configured to sequentially detect, in the fragmentation information storage space, whether the storage address in the fragmentation information storage space stores fragmentation information, starting from a storage address of the first fragmentation information carrying the start identifier.
  • the current storage address of the fragmentation information storage space does not store the fragmentation information, and the detection of the next storage address is suspended.
  • the detection of the fragmentation information storage space continues.
  • a storage address is configured to sequentially detect, in the fragmentation information storage space, whether the storage address in the fragmentation information storage space stores fragmentation information, starting from a storage address of the first fragmentation information carrying the start identifier.
  • the current storage address of the fragmentation information storage space does not store the fragmentation information, and the detection of the next storage address is suspended.
  • the detection of the fragmentation information storage space continues.
  • a storage address is configured to sequentially detect, in the fragmentation information storage space, whether the storage address in the fragmentation information storage space stores fragmentation information, starting from a storage address of the first fragmentation information carrying the start identifie
  • the information obtaining module 670 is configured to: when the detecting module 660 detects the tail fragment information carrying the end identifier, acquire the storage from the storage address of the first fragmentation information to the end of the storage address of the tail fragmentation information. All fragmentation information stored in the space.
  • the storage address of the fragmentation information is continuous, so that the storage address of the fragmentation information ends from the storage address of the first fragmentation information, and the intermediate address is continuous.
  • the storage address is stored as fragmentation information, and the fragment sequence number of the fragment corresponding to the stored fragmentation information is also continuous, and the information acquisition module 670 obtains all the fragmentation information, including the first fragmentation information. And tail fragmentation information.
  • the reassembly module 680 is configured to obtain a fragment corresponding to the fragmentation information acquired by the information acquisition module, and reassemble the fragment into a data packet.
  • the apparatus provided in this embodiment may further include: an emptying module 690, configured to: after the reorganization module 680 is reorganized, clear the storage occupied by the fragmentation information acquired by the information obtaining module 670 in the fragmentation information storage space. address.
  • the method and device for processing fragmentation information establish a linear correspondence relationship between the fragment serial number of the fragmentation information and the storage address of the fragmentation information, so that only the address and serial number of a fragmentation information need to be known.
  • the other fragmentation information can be stored in the corresponding storage address according to the corresponding relationship.
  • the embodiment of the present invention further discloses a communication system, which is used to implement any method for fragmentation information processing according to the foregoing embodiments, and the communication system may include any of the fragments described in the foregoing embodiments.
  • Information processing device is used to implement any method for fragmentation information processing according to the foregoing embodiments, and the communication system may include any of the fragments described in the foregoing embodiments.
  • the present invention can be implemented by hardware or by means of software plus a necessary general hardware platform.
  • the technical solution of the present invention may be embodied in the form of a software product, which may be stored in a non-volatile storage medium (which may be a CD-ROM, a USB flash drive, a mobile hard disk, etc.), including several The instructions are for causing a computer device (which may be a personal computer, server, or network device, etc.) to perform the methods described in various embodiments of the present invention.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

分片信息处理的方法和装置
本申请要求于 2008 年 12 月 31 日提交中国专利局、 申请号为 200810187971.6、 发明名称为"分片信息处理的方法和装置 "的中国专利申请的 优先权, 其全部内容通过引用结合在本申请中。
技术领域
本发明涉及通讯领域, 尤其涉及一种分片信息处理的方法和装置。
背景技术
为了提高数据传输速度, 通常会使用多链路传输技术。在进行多链路传输 的过程中, 为了平均地利用各条子链路的带宽, 当数据报文进入某网络时, 通 常将数据报文按照一个固定长度进行分片。其中, 分片的长度必须小于链路的 MTU ( Maximum Transmission Unit, 最大传输单元), 每个分片都有分片序列 号以及开始和结束标志。 当所有分片都到达目的地后, 需要将所有分片组装成 原始报文。目的网点的主机通过数据报文首部的标识符来查证各分片是否为同 一个数据报的分片, 且根据片偏移及分片序列号来控制分片和重组。
MLPPP ( Multilink-Point to Point Protocol, 多链路点对点协议)是一种通 道捆绑技术,能够将多个等速率或者不等速率的物理通道捆绑成一条更高速的 逻辑通道, 提供给上层。 因此, 可以利用 MLPPP协议传输各个分片, 但是由 于捆绑的通道间的速率及传输时延不等,分片到达接收端后可能会出现分片乱 序的问题, 需要对分片进行排序及重组。
现有技术通常釆用以下方法进行分片重组:按照分片到达的时间顺序进行 存储, 对于每个刚接收到的分片, 根据序列号是否连续来进入不同的存储区。 具体而言,在获取分片信息时,通常将序列号连续的分片信息进入连续的队列, 序列号不连续的分片信息进入不连续的栈。进行分片重组时, 需要从乱序栈中 搜索出分片信息,插入到连续的队列中,然后再从乱序栈中搜索后续分片信息, 当连续的队列中的分片信息所表示的分片能够组成一个包以后 (由首分片开 头、 中间分片连续、 尾分片结尾) , 则表示能够完成一个包的重组。
现有技术中, 由于分片信息存储位置由分片的到来顺序决定, 因此分片重 排序的时候, 都需要重新搜索分片信息的存储区, 降低了分片重组的效率。 发明内容
本发明实施例提供一种分片信息处理的方法和装置,可以提高分片重组的 效率。
一方面, 本发明实施例提供了一种分片信息处理的方法, 包括:
获取当前接收的分片的分片信息;
根据预设的分片序列号与分片信息存储地址间的对应关系,为所述分片信 息在分片信息存储空间中分配存储地址;
在所述分配的分片信息存储空间中的存储地址保存所述当前接收的分片 的分片信息。
另一方面, 本发明实施例提供了一种分片信息处理的装置, 包括: 获取模块, 用于获取当前接收的分片的分片信息;
关系存储模块, 用于保存分片序列号与分片信息存储地址之间的对应关 系;
地址分配模块,用于根据所述关系存储模块存储的分片序列号与分片信息 存储地址之间的对应关系,为所述分片信息在分片信息存储空间中分配存储地 it; 和
分片信息存储模块,用于在所述地址分配模块分配的存储地址中保存所述 接收模块接收的分片信息。
与现有技术相比, 本发明实施例具有以下优点:
本发明实施例提供的方法,按照分片序列号与存储地址的对应关系,在相 应的存储地址中存储分片信息。这样分片重排序时,获取分片信息的速度加快, 节省了大量的搜索时间, 提高了分片重组的效率。
附图说明
图 1 是本发明实施例一中分片信息处理的方法流程图;
图 2 是本发明实施例一中分片信息的示意图;
图 3是本发明实施例二中分片信息处理的方法流程图;
图 4是本发明实施例二中分片序列号与存储地址的对应关系示意图; 图 5是本发明实施例二中基准分片信息相关属性的示意图;
图 6是本发明实施例三中分片信息处理的装置示意图; 图 7 是本发明实施例三中另一分片信息处理的装置示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清 楚、 完整地描述, 显然, 所描述的实施例仅是本发明一部分实施例, 而不是全 部的实施例。基于本发明中的实施例, 本领域普通技术人员在没有作出创造性 劳动前提下所获得的所有其他实施例, 都属于本发明保护的范围。
本发明实施例提供了一种分片信息处理的方法和装置,可以提高获取分片 信息的效率。
下面结合附图和具体实施例对本发明实施例提供的分片信息处理的方法 和装置进行详细说明。
实施例一
本发明实施例提供了一种分片信息处理的方法, 如图 1所示, 包括: 步骤 S101、 获取接收端接收的分片的分片信息。
当数据报文进入某个网络时,数据报文大小需要满足此网络的 MTU限制, 如果报文长度大于链路 MTU, 则利用分片机制将报文分成若干片, 每片的长 度均小于或等于 MTU, 且每个分片都具有分片序列号; 每个分片还可以有开 始和结束标志。
数据报文接收端接收分片后, 可以将分片存储到外部存储器, 同时, 可以 根据分片的属性生成分片信息,接收端将会开辟一个存储空间用于存储分片信 息, 该存储空间称之为分片信息存储空间。
如图 2所示, 所述分片的属性可以包括分片的首、 尾或中间标识、 分片的 长度、 分片在外部存储器的存储地址等, 具体的, 图 2的 201为分片信息一个 具体示意图, 其含义如下, 分片信息的长度为 36比特, 第 35位标识 V为当 前空间有分片信息占用的标志, 1表示有效, 0表示无效, 将该位设置为 0之 后表示分片信息所占用的地址空间可以被再次使用; 第 34位标识 B为开始标 志位, 1表示有效,为首分片信息; 第 33位标识 E为结束标志位, 1表示有效, 表明其为尾分片信息。 由上述可知, 即如果某分片的分片信息中开始标志位 B 为 1 , 则代表该分片为首分片; 如果某分片的分片信息中结束标志位 E为 1 , 则代表该分片为尾分片; 如果某分片的分片信息中开始标志位 B 和结束标志 位 E均为 0, 则代表该分片为中间分片。 其它字段为分片的存储信息, 利用这 些字段可以获取分片的存储地址, 并将分片重组为数据报文。
从上述描述可以看出, 分片的存储地址与分片信息的存储地址是不同的, 但是分片信息中包含有分片的存储地址信息, 因此, 找到分片信息之后, 就可 以找到对应的分片。在接收端可以对分片信息进行排序, 然后根据排序结果到 外部存储器找到相应的分片, 并进行重组。
图 2中的 202为滑动移动窗口, 为一个分片信息存储空间, 用于保存分片 序列号在一定范围之内的分片信息。
图 2中的 203则为多个分片信息存储空间的队列。
步骤 S102、 根据接收端保存的分片序列号与分片信息存储地址间的对应 关系, 为该分片信息在所述接收端的分片信息存储空间中分配存储地址。
即将步骤 S101所获取的分片信息, 根据接收端实际保存的分片信息存储 空间和分片序列号的对应关系,利用该分片信息对应的分片序列号得到分片信 息所应存储的地址, 将该地址分配给该分片信息作为存储空间。 其中, 接收端 实际保存的分片序列号与分片信息存储地址间的对应关系可以预先设置的,因 此, 该步骤具体可以为: 根据预设的分片序列号与分片信息存储地址间的对应 关系, 为该分片信息在分片信息存储空间中分配存储地址。
该对应关系可以为给定的规则,接收到分片信息后, 可以根据该规则直接 计算出分片信息的存储地址, 而无需到检索分片信息的存储地址。
例如, 分片序列号与分片信息存储地址间的对应关系可以为线性对应关 系, 可以通过一个线性函数计算出分片信息所应存储的地址, 函数关系式可表 述为 y=x+a。 该函数关系中 y为当前接收分片的分片信息的存储地址, a为基 准分片信息的存储地址, X为当前接收分片的分片信息对应的分片序列号与基 准分片信息对应分片的分片序列号的偏移量; 例如, 4叚设基准分片信息对应分 片的分片序列号是 1 ,基准分片信息的存储地址是 4091 , 当前接收分片的分片 序列号是 3 , 则此时 a为 4091 , X为 3-1=2, 因此, 可得当前接收分片的分片 信息的存储地址 y为 2+4091=4093 , 将当前接收分片的分片信息保存到 4093 地址处即可。 或者, 该函数关系也可以是: y为当前接收分片的分片信息的存 储地址, X为当前接收分片的分片序列号, a为基准分片信息对应分片的分片 序列号与基准分片信息存储地址的偏移量; 例如,仍假设基准分片信息对应分 片的分片序列号是 1 ,基准分片信息的存储地址是 4091 , 当前接收分片的分片 序列号为 3 , 则此时 a为 4091-1=4090, x为 3 , 因此, 可得当前接收分片的分 片信息的存储地址 y为 3+4090=4093 ,将当前接收分片的分片信息保存到 4093 地址处即可。 由上述可见, 在本发明实施例中, 所有的分片都会按照分片序列 号的顺序存储在同一存储空间中。
在一种应用场景中, 可以通过如下步骤建立线性关系: 获取接收端接收的 第一分片的分片信息,在分片信息存储空间内保存该第一分片的分片信息作为 基准分片信息,利用基准分片信息和基准分片信息存储的地址空间的对应关系 即可获得之后接收的分片信息的存储地址。
其中上述基准分片信息和后续接收的分片信息可以为首分片信息、尾分片 信息或任意一个中间分片信息。 首分片信息携带开始标识,尾分片信息携带结 束标识。
在一个具体场景中, 可用如下步骤获取分片信息的存储地址。 例如: 继续 获取接收端当前接收的分片的分片序列号 seq_cur, 并获取基准分片信息对应 分片的分片序列号 seq_begin; 然后获取该基准分片信息在存储空间的存储地 址 addr— begin;从而根据计算公式 addr_cur = addr_begin+ (seq_cur - seq_begin) , 获取接收端当前接收的分片的分片信息的存储地址值 addr— cur。 其中, seq_cur - seq_begin为当前接收分片的分片序列号与基准分片信息对应的分片序列号 的差值, 为了防止溢出, 可以先计算 seq_cur _ seq_begin, 然后再与 addr— begin 求和。
步骤 S103、 在所述分配的分片信息存储空间中的存储地址保存所述当前 接收的分片的分片信息。
即将分片信息保存在步骤 S102所分配的存储地址中。
在一种具体应用场景下, 本实施例还可以进一步包括如下步骤,存储分片 信息后, 可以将存储的分片信息作为索引, 获取分片信息对应的分片并重组为 数据报文, 然后发送到上一层协议。
一种实施方式为: 从携带开始标识的分片信息 (首分片信息) , 即第 34 位标识 B (开始标志位)为 1的分片信息, 所在的存储地址开始, 依次检测存 储地址中是否存储分片信息; 检测到某一存储地址中未存储分片信息, 即第 35位标识 V为 0时, 则证明该存储地址中的分片信息可能还未接收到, 因此 可以暂停检测下一存储地址,待该存储地址中存储分片信息后, 继续检测下一 存储地址; 当检测到携带结束标识的分片信息 (尾分片信息) , 即第 33位标 识 E为 1时,获取携带上述开始标识的分片信息所在的存储地址至所述携带结 束标识的分片信息所在的存储地址之间的存储地址存储的分片信息,即获取首 分片信息、 中间分片信息以及尾分片信息; 根据上述获取的分片信息, 获取对 应的分片并重组为数据报文, 发送该数据报文。 发送数据报文后, 可以清空上 述获取的分片信息占用的存储空间。
本发明实施例提供的方法,将分片的分片序列号和分片信息的存储地址建 立线性对应关系, 只需要知道一个分片信息的存储地址, 就可以直接获得其他 分片信息的存储地址, 而无需在分片信息的存储地址中进行检索, 节省了大量 的搜索时间。 同时, 由于可以通过分片信息的存储地址, 以及分片信息的存储 地址和分片序列号之间的对应关系, 直接获得分片序列号,从而无需在分片信 息中保存分片序列号, 也节省了分片信息的存储空间。
实施例二
下面通过实施例二对本发明实施例提供的分片信息处理的方法进行进一 步说明, 如图 3所示, 包括:
步骤 S301、 获取接收的第一个分片的分片信息, 在分片信息存储空间内 保存该第一分片的分片信息作为基准分片信息。
通过该基准分片信息的分片序列号及其存储地址,建立了分片序列号与存 储地址的对应关系;所述接收的第一个分片可能是首分片,也可能是中间分片, 甚至可能是尾分片,如果是第一个接收到的分片就可以作为基准分片, 该分片 的分片信息作为基准分片信息。 例如: 基准分片信息可以为首分片信息, 存储 在首地址; 或者, 基准分片也可以是分片序列号为 4的分片, 对应的存储地址 为 A。每个存储地址的存储空间可以满足完全存储一个分片信息的需要。 该分 片序列号与存储地址的对应关系可以为如图 4所示的线性关系。
步骤 S302、 根据基准分片信息, 获取接收的分片信息的存储地址。
继续接收到分片信息, 利用步骤 301保存的基准分片信息,根据基准分片 的分片序列号以及基准分片信息的存储地址的对应关系,通过接收的分片信息 的分片序列号即可直接得到该分片信息应保存的存储地址。如图 5的 501所示, 图 5为在存储地址中存储的该基准分片信息相关属性的示意图,其中第 0位至 第 11位为 seq_begin表示该基准分片信息对应的基准分片的分片序列号, 第 12位至第 18位为 addr— begin表示该基准分片信息的存储地址, 第 13位至第 25位 exp— addr为緩冲空间, 第 26位 E为首分片等待标志。
根据该基准分片信息获取后续接收的分片信息的存储地址的过程可以为: 继续获取接收端接收的分片的分片序列号 seq_cur, 并获取基准分片信息的分 片序列号 seq_begin ; 然后获取该基准分片信息在存储空间的存储地址 addr— begin; 从而根据计算公式 addr— cur = addr_begin+ (seq_cur - seq_begin) , 获取接收端接收的分片的分片信息的存储地址值 addr— cur , 然后可根据 addr— cur为分片信息分配存储空间。 例如, 每个分片信息存储空间的每一个存 储地址不小于任意分片信息的长度,基准分片信息的分片序列号为N、存储地 址为 M, 如果该接收的分片信息对应的分片序列号为 N+2, 那么分片序列号 相差 2, 则接收的分片信息的存储地址为 M+2。 这样在接收的分片信息对应的 分片序列号不连续的情况下,也可以将分片信息按照分片序列号连续的顺序进 行存储, 避免混乱。
继续接收分片信息, 并按照步骤 S301和步骤 S302提供的方式进行保存。 分片信息中可不需要包括分片序列号,因为分片序列号已经和分片信息的存储 地址建立了对应关系, 可以通过分片信息的存储地址直接获取分片序列号, 这 样节省了较多的存储空间。
在一个具体的应用场景下,可以用一个通道维护和保存接收的分片的分片 信息, 通道如图 2中的 202所示。 需要说明的是, 上述通道所维护的存储地址 的数量可能是有限的,因此若属于同一数据报文的分片信息在一定时间内无法 存储完整时, 需要清空一部分分片信息占用的存储地址, 并将分片信息中的 V 标识位置为 0。 以便后续分片信息可以及时被存储。 假设接收并存储分片信息 A后, 10秒钟内与该分片信息 A属于同一数据报文的其他分片信息仍未完全 接收到, 也就是说该分片信息 A 占用的存储空间无法被清空, 此时将该分片 信息 A以及已经存储的与该分片信息 A属于同一数据报文的分片信息清除, 例如将 V标识设置为 0即可达到清除的目的。 因为在预定时间内, 属于同一 数据报文的分片信息无法存储完整,可能意味着存在分片信息丟失或无效的情 况。
当存储地址被全部使用时,也需要及时清空部分存储地址,假设存储地址 的数量上限为 128, 则当该 128个存储地址全部存储了分片信息时, 需要清空 部分空间以便存储接收的后续分片信息。在清除存储地址中的分片信息时, 可 以按照接收的先后顺序, 选择最先接收的一个分片信息, 然后将 该分 片信息以及与该分片信息属于同一数据报文的分片信息清除。 当然,还可以按 照其他方式,选择一个分片信息, 并将被选择的分片信息以及与该分片信息属 于同一数据报文的分片信息清除。 可以对全部地址写 0, 也可仅将分片信息中 的 V标识位置为 0, 从而达到清空分片信息存储空间。
由上述描述可知, 存储地址的数量有限, 并远远小于分片信息的数量, 那 么在上述步骤中提及的分片序列号与存储地址的对应关系还可以为:根据存储 空间中存储地址的数量以及属于同于数据报文的分片信息数量,更改首地址的 位置, 例如: 存储地址的数量为 128 , 首地址为存储地址 0, 分片序列号 0对 应存储地址 0, 则接收的分片信息对应的分片序列号为 5时, 该分片信息应存 储的存储地址为首地址之后第 5位的存储地址 5; 当首地址中存储的分片信息 和与其同属一个数据报文的分片信息被清除后,若被清除的分片信息占用的存 储地址数目为 5时, 将原存储地址 5作为首地址, 并继续接收分片信息。 分片 序列号和分片信息的存储地址的对应关系信息,可通过图 5的 501的形式来保 存。如果存在多个通道同时接收和保存分片信息, 则可以用图 502所示的形式 保存图 501所示的对应关系信息。
在一种应用场景下,将分片信息存储在存储地址之后或同时,还可以将分 片信息对应的分片重组为数据报文, 具体过程如下:
步骤 S303、 从首地址开始, 检测存储地址中是否已存储分片信息。
具体的,每个存储地址中存在一标志位 V, 通过该标志位表示存储地址中 的存储情况, 例如, 存储地址中未存储分片信息时标识位置 0, 当存储分片信 息后, 该标志位置 1。 若该存储地址中未存储分片信息, 说明该数据包的分片 信息尚未传输完整,则暂停检测一段时间后再次检测该存储地址中是否存储了 分片信息, 待检测到存储了分片信息后, 再继续执行步骤 S304。 其中暂停检 'J的时间可以由预先设定的配置决定。
步骤 S304、 检测存储地址中存储的分片信息为尾分片信息后, 从存储首 分片信息的存储地址开始, 获取首分片信息、首分片信息后的中间分片信息以 及尾分片信息。 具体的, 该尾分片信息为携带结束标识的分片信息, 用于标识 其对应的分片为数据报文的结尾。 由于按照线性关系存储分片信息, 因此, 尾 分片信息存储的地址为该数据报文分片信息中的最后一个存储地址,获取到该 尾分片信息后, 再将首分片信息至尾分片信息全部获取出来。
当然,也可以在检测到存储地址中存储的分片信息为首分片信息时, 获取 该首分片信息并緩存(緩存地址可用图 5中的 501所示的 exp— addr字段来标 识), 然后依次获取下一个存储地址中的分片信息, 直到获取到尾分片信息并 进行重组。
步骤 S305、 根据获取的分片信息, 获取分片信息对应的分片, 并将分片 重组为数据报文。
步骤 S306、 发送数据报文, 并清空组成该数据报文的分片对应的分片信 息占用的存储地址, 同时继续执行步骤 S303。 若将获取的分片信息进行了緩 存,则此时还需要在分片信息存储空间中清空分片信息的存储空间和用于重组 的緩存。
本发明实施例提供的方法,将分片信息对应的分片序列号和存储地址建立 了对应关系, 这样只需要知道一个分片信息的存储地址和分片序列号, 其他分 片信息就可以比照对应关系存储到相应的存储地址中。在查找分片信息时, 只 需要从存储地址中逐个获取即可, 不需要进行存储空间的搜索, 节省了大量的 搜索时间。 而且, 将读取分片信息与清空存储空间并行进行, 加快了读取数据 的效率。
实施例三
本发明实施例还提供了一种读取数据的装置, 如图 6所示, 包括: 获取模块 610, 用于获取接收端当前接收的分片的分片信息;
关系存储模块 620 , 用于保存分片序列号与分片信息存储地址之间的对应 关系。 对应关系可以为线性对应关系,可以通过一个线性函数计算出分片信息所 应存储的地址, 函数关系式可表述为 y=x+a。 该函数关系中 y为接收的分片信 息的存储地址, a为基准分片信息的存储地址, X为接收的分片信息对应的分 片序列号与基准分片信息对应的分片序列号的偏移量;或者也可以为 y为接收 的分片信息的存储地址, X为分片信息对应的分片的分片序列号, a基准分片 信息对应的分片的分片序列号与基准分片信息存储地址的偏移量。
对应关系的建立, 可以事先保存在接收端, 也可以动态调整。 动态调整的 方法,可以将获取模块 610获取的第一个分片信息保存在分片信息存储空间内 作为基准分片信息, 并在关系存储模块 620 (如图 5的 502所示) 中保存该第 一分片的分片序列号和第一分片信息的存储地址。
地址分配模块 630, 用于根据所述关系存储模块 620存储的分片序列号与 分片信息存储地址之间的对应关系,为所述获取模块 610获取的分片信息在接 收端的分片信息存储空间中分配存储地址。
在一种具体应用场景中,可通过如下方式得到获取模块获取的分片信息应 存储的存储地址,获取获取模块 610接收的分片信息对应的分片的分片序列号 seq_cur, 并获取基准分片信息对应的分片的分片序列号 seq_begin; 然后获取 该基准分片信息在存储空间的存储地址 addr— begin; 从而根据计算公式 addr_cur = addr_begin+ (seq_cur - seq_begin) , 获取接收端接收的分片的分片信 息的存储地址值 addr— cur, 然后可根据 addr— cur为分片信息分配存储空间。
基准分片信息对应的分片的分片序列号 seq_begin, 和该基准分片信息在 存储空间的存储地址 addr— begin可以保存在关系存储模块 620。
分片信息存储模块 640, 用于在所述地址分配模块 630分配的存储地址中 保存所述接收模块接收的分片信息。
例如,将获取模块 610获取的分片信息,保存在地址分配模块 630所分配 的存储地址。
在另一种应用场景下, 基于上述模块的基础上, 如图 7所示, 本发明实施 例提供的装置还可包括:
线性关系建立模块 650, 获取接收端接收的第一分片的分片信息作为基准 分片信息, 在所述分片信息存储空间内保存所述基准分片信息, 将所述基准分 片信息在所述分片信息存储空间内的存储地址和所述第一分片的分片序列号 存储到所述关系存储模块 620。
在另一种应用场景下, 本实施例所提供的装置还可包括:
检测模块 660, 用于在所述分片信息存储空间中, 从携带开始标识的首分 片信息的存储地址开始,依次检测所述分片信息存储空间中的存储地址是否存 储分片信息, 若所述分片信息存储空间的当前存储地址未存储分片信息, 暂停 检测下一存储地址, 当检测到所述当前存储地址存储分片信息后, 继续检测所 述分片信息存储空间中的下一存储地址。
信息获取模块 670, 用于当所述检测模块 660检测到携带结束标识的尾分 片信息时,获取从所述首分片信息的存储地址开始至所述尾分片信息的存储地 址结束的存储空间内存储的所有分片信息。
如果所述关系存储模块 620存储的对应关系为线性对应关系,则分片信息 的存储地址为连续的, 因此从首分片信息的存储地址开始, 到尾分片信息的存 储地址结束, 中间连续的存储地址的存储的都是分片信息,且所存储的分片信 息所对应的分片的分片序列号也是连续的,信息获取模块 670即获取所有这些 分片信息, 包括首分片信息和尾分片信息。
重组模块 680 , 用于获取所述信息获取模块获取的分片信息所对应的分 片, 并将所述分片重组为数据报文。
本实施例所提供的装置还可包括: 清空模块 690, 用于当重组模块 680重 组完毕之后,即可清空信息获取模块 670获取的分片信息在所述分片信息存储 空间中所占用的存储地址。
本发明实施例提供的分片信息处理的方法和装置,通过将分片信息的分片 序列号和分片信息的存储地址建立线性对应关系,这样只需要知道一个分片信 息的地址和序列号,其他分片信息就可以比照对应关系存储到相应的存储地址 中。 在查找分片信息时, 只需要从存储地址中逐个获取即可, 不需要进行存储 空间的搜索, 节省了大量的搜索时间。 而且, 将读取分片信息与清空存储空间 并行进行, 加快了读取数据的效率。
本发明实施例还公开了一种通信系统,用于实施上述实施例所述的任一种 分片信息处理的方法, 所述通信系统, 可以包括上述实施例所述的任一种分片 信息处理的装置。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明 可以通过硬件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基 于这样的理解, 本发明的技术方案可以以软件产品的形式体现出来, 该软件产 品可以存储在一个非易失性存储介质(可以是 CD-ROM, U盘, 移动硬盘等) 中, 包括若干指令用以使得一台计算机设备(可以是个人计算机, 服务器, 或 者网络设备等)执行本发明各个实施例所述的方法。
以上公开的仅为本发明的几个具体实施例, 但是, 本发明并非局限于此, 任何本领域的技术人员能思之的变化都应落入本发明的保护范围。

Claims

权 利 要 求
1、 一种分片信息处理的方法, 其特征在于, 包括:
获取当前接收的分片的分片信息;
根据预设的分片序列号与分片信息存储地址间的对应关系,为所述分片信 息在分片信息存储空间中分配存储地址;
在所述分配的分片信息存储空间中的存储地址保存所述当前接收的分片 的分片信息。
2、 如权利要求 1所述的方法, 其特征在于, 所述分片序列号与分片信息 存储地址间的对应关系为线性对应关系, 所述线性关系的表达式为:
当前接收的分片的分片信息存储地址 =当前接收的分片的分片序列号 +基 准分片信息对应分片的分片序列号与基准分片信息存储地址的偏移量。
3、 如权利要求 1所述的方法, 其特征在于, 所述利用预设的分片序列号 与分片信息存储地址间的对应关系,为所述分片信息在分片信息存储空间中分 配存储地址包括:
获取所述当前接收的分片的分片序列号;
获取基准分片信息对应的分片的分片序列号;
获取所述基准分片信息在所述分片信息存储空间的存储地址;
获取所述当前接收的分片的分片信息的存储地址, 计算公式为: 所述当前 接收的分片的分片信息的存储地址=所述当前接收的分片的分片序列号 + (所 述基准分片信息对应的分片的分片序列号-所述基准分片信息在所述分片信息 存储空间的存储地址) 。
4、 如权利要求 1所述的方法, 其特征在于, 所述分片序列号与分片信息 存储地址间的对应关系为线性对应关系, 所述线性关系的表达式为:
所述当前接收的分片的分片信息存储地址 =基准分片信息的存储地址 +当 前接收分片的分片序列号与基准分片信息对应分片的分片序列号的偏移量。
5、 如权利要求 1或 4任一所述的方法, 其特征在于, 所述利用预设的分 片序列号与分片信息存储地址间的对应关系,为所述分片信息在分片信息存储 空间中分配存储地址包括:
获取所述当前接收的分片的分片序列号; 获取基准分片信息对应的分片的分片序列号;
获取所述基准分片信息在所述分片信息存储空间的存储地址;
获取所述当前接收的分片的分片信息的存储地址, 计算公式为: 所述当前接收的分片的分片信息的存储地址=所述基准分片信息在所述分 片信息存储空间的存储地址 + (所述当前接收的分片的分片序列号 -所述基准分 片信息对应的分片的分片序列号) 。
6、 如权利要求 1-4任一所述的方法, 其特征在于, 在所述获取当前接收 的分片的信息之前, 还包括:
获取当前接收的第一分片的分片信息,将所述第一分片的分片信息作为基 准分片信息;
在所述分片信息存储空间内保存所述基准分片信息;
根据所述基准分片信息对应的分片的分片序列号及所述基准分片信息在 所述分片信息存储空间的存储地址,建立所述分片序列号与分片信息存储地址 间的对应关系。
7、 如权利要求 1-6任一所述的方法, 其特征在于, 所述方法还包括: 在所述分片信息存储空间中,从携带开始标识的首分片信息的存储地址开 始, 依次检测所述分片信息存储空间中的存储地址是否存储分片信息
若所述分片信息存储空间的当前存储地址未存储分片信息 ,暂停检测下一 存储地址。
8、 如权利要求 1-6任一所述的方法, 其特征在于, 所述方法还包括: 当检测到所述当前存储地址存储分片信息后,继续检测所述分片信息存储 空间中的下一存储地址;
在所述分片信息存储空间中,从携带开始标识的首分片信息的存储地址开 始,依次检测所述分片信息存储空间中的存储地址是否存储分片信息; 当检测 到携带结束标识的尾分片信息时,获取从所述首分片信息的存储地址开始至所 述尾分片信息的存储地址结束的存储空间内存储的所有分片信息;
获取所述所有分片信息所对应的分片, 并将分片重组为数据报文。
9、 如权利要求 8所述的方法, 其特征在于, 发送所述重组获得的数据报 文后, 所述方法还包括: 清空所述数据报文对应的所有分片信息在所述分片信息存储空间中所占 用的存储空间。
10、 一种分片信息处理的装置, 其特征在于, 包括:
获取模块, 用于获取当前接收的分片的分片信息;
关系存储模块, 用于保存分片序列号与分片信息存储地址之间的对应关 系;
地址分配模块,用于根据所述关系存储模块存储的分片序列号与分片信息 存储地址之间的对应关系,为所述获取模块获取的分片信息在分片信息存储空 间中分配存储地址; 和
分片信息存储模块,用于在所述地址分配模块分配的存储地址中保存所述 接收模块接收的分片信息。
11、 如权利要求 10所述的装置, 其特征在于, 所述关系存储模块保存的 分片序列号与分片信息存储地址间的对应关系为线性对应关系,所述线性关系 的表达式为:
所述当前接收的分片的分片信息存储地址 =当前接收的分片的分片序列号
+基准分片信息对应分片的分片序列号与基准分片信息存储地址的偏移量; 或者,
所述当前接收的分片的分片信息存储地址 =基准分片信息的存储地址 +当 前接收分片的分片序列号与基准分片信息对应分片的分片序列号的偏移量。
12、 如权利要求 10所述的装置, 其特征在于, 所述装置还包括: 线性关系建立模块, 用于获取接收的第一分片的分片信息,把所述第一分 片的分片信息作为基准分片信息,在所述分片信息存储空间内保存所述基准分 片信息,将所述基准分片信息在所述分片信息存储空间内的存储地址和所述第 一分片的分片序列号存储到所述关系存储模块。
13、 如权利要求 10-12任一所述的装置, 其特征在于, 所述装置还包括: 检测模块, 用于在所述分片信息存储空间中,从携带开始标识的首分片信 息的存储地址开始,依次检测所述分片信息存储空间中的存储地址是否存储分 片信息, 若所述分片信息存储空间的当前存储地址未存储分片信息, 暂停检测 下一存储地址; 当检测到所述当前存储地址存储分片信息后, 继续检测所述分 片信息存储空间中的下一存储地址;
信息获取模块, 用于当所述检测模块检测到携带结束标识的尾分片信息 时,获取从所述首分片信息的存储地址开始至所述尾分片信息的存储地址结束 的存储空间内存储的所有分片信息; 以及
重组模块, 用于获取所述信息获取模块获取的分片信息所对应的分片, 并 将所述分片重组为数据报文。
14、 如权利要求 13所述的装置, 其特征在于, 还包括:
清空模块,用于清空所述信息获取模块获取的与所述数据报文相对应的分 片信息在所述分片信息存储空间中占用的存储地址。
15、 一种通信系统, 其特征在于, 包括:
如权利要求 10-14任一所述的分片信息处理的装置。
PCT/CN2009/076314 2008-12-31 2009-12-31 分片信息处理的方法和装置 WO2010075795A1 (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN2008101879716A CN101447928B (zh) 2008-12-31 2008-12-31 分片信息处理的方法和装置
CN200810187971.6 2008-12-31

Publications (1)

Publication Number Publication Date
WO2010075795A1 true WO2010075795A1 (zh) 2010-07-08

Family

ID=40743340

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2009/076314 WO2010075795A1 (zh) 2008-12-31 2009-12-31 分片信息处理的方法和装置

Country Status (2)

Country Link
CN (1) CN101447928B (zh)
WO (1) WO2010075795A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110401513A (zh) * 2019-08-02 2019-11-01 视联动力信息技术股份有限公司 一种数据传输方法和装置
CN115190352A (zh) * 2022-05-18 2022-10-14 上海亘岩网络科技有限公司 视频数据存储方法、装置、计算机可读存储介质及电子设备
CN115190089A (zh) * 2022-05-26 2022-10-14 中科驭数(北京)科技有限公司 一种报文存储方法、装置、设备及存储介质

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101447928B (zh) * 2008-12-31 2011-09-14 华为技术有限公司 分片信息处理的方法和装置
CN101989954B (zh) * 2010-11-16 2014-09-10 中兴通讯股份有限公司 报文分片方法和网络转发设备
CN102647251A (zh) * 2012-03-26 2012-08-22 北京星网锐捷网络技术有限公司 数据传输方法及系统、发送端设备与接收端设备
CN102664806A (zh) * 2012-04-26 2012-09-12 重庆网力视界科技有限公司 一种流媒体分发方法和装置
CN103685343B (zh) * 2012-09-03 2018-11-23 腾讯科技(深圳)有限公司 文件传输方法和系统
CN105100146B (zh) * 2014-05-07 2018-07-20 腾讯科技(深圳)有限公司 数据存储方法、装置及系统
CN106664223B (zh) * 2015-06-18 2020-03-20 华为技术有限公司 一种共享接入主机数目检测方法及检测装置
CN105450786B (zh) * 2016-01-26 2019-05-14 中国银行股份有限公司 一种报文处理方法和装置
CN105939223A (zh) * 2016-06-01 2016-09-14 杭州迪普科技有限公司 存储数据的方法及装置
CN108667755B (zh) * 2017-03-27 2021-10-22 中兴通讯股份有限公司 一种报文分片存储及重组的方法和装置
CN110198321A (zh) * 2019-06-13 2019-09-03 北京奇艺世纪科技有限公司 一种数据包处理方法、装置、服务器及存储介质
CN112242962B (zh) * 2019-07-16 2023-06-23 北京物芯科技有限责任公司 报文缓存切割处理方法、装置、设备及存储介质
CN115080561B (zh) * 2021-05-24 2023-05-23 摩赛恩科技(苏州)有限公司 一种质谱数据分层存储数据库及其管理方法
CN114584560B (zh) * 2022-03-11 2023-12-22 西南科技大学 一种分片帧重组方法及装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1716835A (zh) * 2004-07-01 2006-01-04 日本电气株式会社 移动无线通信终端设备
CN101123459A (zh) * 2006-08-07 2008-02-13 英特尔公司 无线网络中的二叉接收分段处理
CN101286945A (zh) * 2008-05-22 2008-10-15 北京星网锐捷网络技术有限公司 数据分片处理方法及装置
CN101447928A (zh) * 2008-12-31 2009-06-03 华为技术有限公司 分片信息处理的方法和装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6961803B1 (en) * 2001-08-08 2005-11-01 Pasternak Solutions Llc Sliced crossbar architecture with no inter-slice communication
CN1988508A (zh) * 2006-12-04 2007-06-27 华为技术有限公司 一种分片报文传输方法及通讯系统及隧道设备
CN100583828C (zh) * 2007-02-14 2010-01-20 华为技术有限公司 分片报文处理方法与装置
CN101187896B (zh) * 2007-12-14 2011-04-06 中兴通讯股份有限公司 一种现场可编程门阵列数据缓存的管理方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1716835A (zh) * 2004-07-01 2006-01-04 日本电气株式会社 移动无线通信终端设备
CN101123459A (zh) * 2006-08-07 2008-02-13 英特尔公司 无线网络中的二叉接收分段处理
CN101286945A (zh) * 2008-05-22 2008-10-15 北京星网锐捷网络技术有限公司 数据分片处理方法及装置
CN101447928A (zh) * 2008-12-31 2009-06-03 华为技术有限公司 分片信息处理的方法和装置

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110401513A (zh) * 2019-08-02 2019-11-01 视联动力信息技术股份有限公司 一种数据传输方法和装置
CN110401513B (zh) * 2019-08-02 2021-12-17 视联动力信息技术股份有限公司 一种数据传输方法和装置
CN115190352A (zh) * 2022-05-18 2022-10-14 上海亘岩网络科技有限公司 视频数据存储方法、装置、计算机可读存储介质及电子设备
CN115190089A (zh) * 2022-05-26 2022-10-14 中科驭数(北京)科技有限公司 一种报文存储方法、装置、设备及存储介质
CN115190089B (zh) * 2022-05-26 2024-03-22 中科驭数(北京)科技有限公司 一种报文存储方法、装置、设备及存储介质

Also Published As

Publication number Publication date
CN101447928B (zh) 2011-09-14
CN101447928A (zh) 2009-06-03

Similar Documents

Publication Publication Date Title
WO2010075795A1 (zh) 分片信息处理的方法和装置
US20240171507A1 (en) System and method for facilitating efficient utilization of an output buffer in a network interface controller (nic)
US10652147B2 (en) Packet coalescing
US7050437B2 (en) Wire speed reassembly of data frames
US7787442B2 (en) Communication statistic information collection apparatus
US7957392B2 (en) Method and apparatus for high-performance bonding resequencing
EP2019360B1 (en) Data processing apparatus and data transfer method
EP3573297A1 (en) Packet processing method and apparatus
US20050243834A1 (en) Packet transfer method and device
US20110261814A1 (en) Packet preemption for low latency
CN101494605B (zh) 一种基于以太网驱动的数据转发方法和装置
US7529865B1 (en) Packet buffer management apparatus and method
WO2010022629A1 (zh) 一种多链路协议分片数据的重组方法、装置及系统
TWI257790B (en) System for protocol processing engine
JP5473406B2 (ja) ネットワーク処理装置及びその処理方法
CN114584560A (zh) 一种分片帧重组方法及装置
US20090225757A1 (en) Processing apparatus and method for processing ip packets
JP2007274056A (ja) データグラム再組立装置
US8488489B2 (en) Scalable packet-switch
US8743907B1 (en) Apparatus for reassembling a fragmented data unit and transmitting the reassembled data unit
JP7309384B2 (ja) 通信装置、通信装置の制御方法およびプログラム
JP2012049883A (ja) 通信装置およびパケット処理方法
JP2006229973A (ja) ビットマップマネージャ、ビットマップメモリ割り当て方法、ネットワーク構成要素間の確認を発生する方法、およびこれを実行するネットワーク構成要素
KR101854377B1 (ko) 고속 패킷 처리 시스템 및 그 제어방법
JP2003124982A (ja) データ中継方法およびその装置

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 09836082

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 09836082

Country of ref document: EP

Kind code of ref document: A1