WO2019201091A1 - 一种数据处理方法、设备和计算机可读存储介质 - Google Patents

一种数据处理方法、设备和计算机可读存储介质 Download PDF

Info

Publication number
WO2019201091A1
WO2019201091A1 PCT/CN2019/081204 CN2019081204W WO2019201091A1 WO 2019201091 A1 WO2019201091 A1 WO 2019201091A1 CN 2019081204 W CN2019081204 W CN 2019081204W WO 2019201091 A1 WO2019201091 A1 WO 2019201091A1
Authority
WO
WIPO (PCT)
Prior art keywords
packet
icn
icn packet
offset address
flag bit
Prior art date
Application number
PCT/CN2019/081204
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 中兴通讯股份有限公司
Priority to EP19788847.2A priority Critical patent/EP3770767B1/en
Priority to US17/048,809 priority patent/US11489765B2/en
Priority to JP2020558055A priority patent/JP7109583B2/ja
Priority to KR1020207030227A priority patent/KR102428429B1/ko
Publication of WO2019201091A1 publication Critical patent/WO2019201091A1/zh

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/302Route determination based on requested QoS
    • H04L45/306Route determination based on the nature of the carried application
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/903Querying
    • G06F16/9032Query formulation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/63Routing a service request depending on the request content or context

Definitions

  • the present invention relates to the field of communications technologies, and in particular, to a data processing method, device, and computer readable storage medium.
  • ICN Information-Centric Networking
  • the architecture establishes the communication model based on the identification data.
  • the encapsulation structure and addressing mode of the IP packet are fundamentally changed, which is beneficial to the handover of the mobile communication device and reduces
  • the communication delay solves the problems that the traditional Internet architecture cannot cope with high-speed mobile communication, the exhaustion of IP address space, low network transmission efficiency, and poor security.
  • the ICN's forwarding plane processes a variety of data including the Interest packet and the Data packet.
  • the ICN forwarding plane needs to retrieve whether there is a Data packet requested by the Interest packet, or whether there is a request for retrieval.
  • the Interest of the Data package is a variety of data including the Interest packet and the Data packet.
  • an embodiment of the present invention is to provide a data processing method, device, and computer readable storage medium, which solves the problem of low query efficiency of an ICN packet in an ICN network in the prior art.
  • the present invention provides a data processing method for a node in an information center network ICN, the method comprising:
  • the record pointed by the first offset address is used to store the storage address of the second ICN packet or the forwarding of the second ICN packet when the second ICN packet corresponding to the first ICN packet is locally stored. information.
  • the present invention provides a data processing method, which is applied to a node in an information center network ICN, and the method includes:
  • first ICN packet is an interest Interest packet or a data data packet
  • the value of the flag bit in the index unit is used to indicate whether the Interest packet and/or the Data packet corresponding to the flag bit are stored locally.
  • the present invention provides a data processing apparatus, the apparatus comprising a processor and a memory for storing a computer program executable on the processor,
  • processor is configured to perform the steps of the data processing method of any one of the first aspects, or to perform the steps of the data processing method of any of the second aspects, when the computer program is executed.
  • the present invention provides a computer readable storage medium having stored thereon a data processing program, wherein when the data processing program is executed by a processor, the data processing method of any of the first aspects is implemented And the step of implementing the data processing method of any of the second aspects when the data processing program is executed by the processor.
  • the data processing method provided by the embodiment of the present invention obtains the first offset address corresponding to the first ICN packet, queries the record pointed to by the first offset address, and performs data processing according to the query result;
  • the record pointed to by the first offset address is used to store the storage address of the second ICN packet or the forwarding information of the second ICN packet when the second ICN packet corresponding to the first ICN packet is stored locally, which can improve the ICN packet in the ICN network. Query efficiency.
  • FIG. 1A is a schematic diagram of a working mechanism of an ICN forwarding plane when receiving an Interest packet
  • FIG. 1B is a schematic diagram of a search sequence of an ICN forwarding plane when an Interest packet is received;
  • 2A is a schematic diagram of a working mechanism of an ICN forwarding plane when receiving a data packet
  • 2B is a schematic diagram of a search sequence of an ICN forwarding plane when a Data packet is received
  • FIG. 3 is a schematic flowchart 1 of a data processing method according to an embodiment of the present invention.
  • FIG. 4A is a schematic structural diagram 1 of a node according to an embodiment of the present invention. ;
  • FIG. 4B is a schematic structural diagram 2 of a node according to an embodiment of the present invention.
  • FIG. 5 is a schematic diagram 1 of an interaction process of a data processing method according to an embodiment of the present invention.
  • FIG. 6 is a second schematic diagram of an interaction process of a data processing method according to an embodiment of the present invention.
  • FIG. 7A is a third schematic diagram of an interaction process of a data processing method according to an embodiment of the present invention.
  • FIG. 7B is a fourth schematic diagram of an interaction process of a data processing method according to an embodiment of the present invention.
  • FIG. 7C is a schematic diagram 5 of an interaction process of a data processing method according to an embodiment of the present invention.
  • FIG. 8 is a second schematic flowchart of a data processing method according to an embodiment of the present invention.
  • FIG. 9 is a schematic flowchart 3 of a data processing method according to an embodiment of the present invention.
  • FIG. 10 is a schematic structural diagram of a data processing device according to an embodiment of the present invention.
  • the technical solution provided by the embodiment of the present invention can be applied to the structural design field of the router in the forwarding plane of the ISN.
  • the application scenario of the data processing method provided by the embodiment of the present invention is first introduced. Give a general description.
  • three data structures can be deployed on the forwarding plane of the information center network ICN: Content Store (CS), Request Status Table (Pending Interest Table) a PIT, and a Forwarding Information Base (FIB), wherein the PIT is used to store forwarding information of the Interest packet, and the forwarding information may include, for example, an identifier of the Data packet requested by the Interest packet, and a requesting node that requests the Data packet. Information, etc. CS is used to store data packets. ICN uses these three data structures to achieve content sharing and intelligent forwarding, reducing network load and increasing the transmission rate of data in the ICN network.
  • FIG. 1A is a schematic diagram of the working mechanism of the ICN forwarding plane when receiving the Interest packet
  • FIG. 1B is a schematic diagram of the retrieval sequence of the ICN forwarding plane when receiving the Interest packet
  • FIG. 2B is a schematic diagram of the retrieval sequence of the ICN forwarding plane when the Data packet is received.
  • the processing steps of the forwarding plane after the interface reaches the port of the forwarding plane may include:
  • Step S101 receiving an Interest packet.
  • step S102 the CS is searched to determine whether the Data packet requested by the Interest packet is stored in the CS. If yes, execute S103, and if no, execute S104.
  • Step S103 Send the data packet corresponding to the Interest packet to the requesting node according to the forwarding information of the Interest packet.
  • step S104 the PIT is retrieved to determine whether the Interest packet is stored in the PIT.
  • Step S105 adding the forwarding information of the Interest packet to the PIT.
  • Step S106 updating the forwarding information of the Interest packet in the PIT.
  • the forwarding plane in the working mechanism involving CS and PIT in the forwarding plane, after the Interest packet reaches a certain port of the forwarding plane, the forwarding plane first retrieves the CS memory, see S102a, and then retrieves the PIT table, see S104a.
  • the processing steps of the forwarding plane after the data packet reaches the port of the forwarding plane may include:
  • Step S201 receiving a data packet.
  • step S202 the PIT is retrieved, and it is determined whether or not the Interest packet requesting the Data is stored in the PIT. If yes, the process proceeds to S203, and if not, the process proceeds to S205.
  • Step S203 Send the data packet to the requesting node according to the forwarding information of the Interest packet according to the forwarding information of the Interest packet.
  • Step S204 in the CS, buffering the data packet.
  • step S205 the data packet is discarded.
  • the forwarding plane in the working mechanism involving CS and PIT in the forwarding plane, after the Data packet arrives at the forwarding plane, the forwarding plane first retrieves the PIT table, and then caches the Data packet in the CS memory.
  • This process of repeated retrieval ensures the accuracy of the retrieval, but the repeated retrieval process affects the performance of the forwarding plane.
  • the technical solution provided by the embodiment of the present invention can solve the problem that the forwarding plane of the ICN needs to repeatedly retrieve data in multiple entries during the working process.
  • the data processing method provided by the embodiment of the present invention is described in detail below.
  • the both the Interest packet and the Data packet may be referred to as an ICN packet.
  • the technical solution provided by the embodiment of the present invention may be applied to the node to receive the corresponding data processing after receiving the ICN packet in the Interest packet or the Data packet. Scenes.
  • the embodiment of the present invention provides a data processing method, and the execution body of the embodiment of the present invention may be a node in the ICN.
  • the node can be a router.
  • the embodiment of the present invention is applicable to a scenario in which a node acquires related information of a second ICN packet corresponding to a first ICN packet after receiving a first ICN packet.
  • FIG. 3 is a schematic flowchart 1 of a data processing method according to an embodiment of the present invention. As shown in FIG. 3, the steps of the embodiment of the present invention may include:
  • Step S301 Acquire a first offset address corresponding to the first ICN packet.
  • Step S302 Query the record pointed by the first offset address corresponding to the first ICN packet, and perform data processing according to the query result, where the record pointed to by the first offset address may be used to locally store the first corresponding to the ICN packet.
  • the second ICN packet stores the storage address of the second ICN packet or the forwarding information of the second ICN packet.
  • the first offset address corresponding to the first ICN packet is first obtained, and then the record pointed to by the first offset address corresponding to the first ICN packet is queried, and data processing is performed according to the query result, where the first The record pointed to by the offset address may be used to store the storage address of the second ICN packet or the forwarding information of the second ICN packet when the second ICN packet corresponding to the first ICN packet is stored locally; thus, it can be seen that the offset address There is a mapping relationship with the ICN packet, and the record pointed to by the offset address is a forwarding information or a storage address, so that when the first ICN packet is an Interest packet or a Data packet, and the second ICN packet is a Data packet or an Interest packet, only The first offset address needs to be found according to the first ICN packet, which can avoid the problem caused by the repeated retrieval of the nodes in the ICN when the Interest packet or the Data packet is received, thereby improving the retrieval efficiency of the node.
  • the method may include: receiving the first ICN packet.
  • the first ICN packet may be an Interest packet or a Data packet. If the first ICN packet is an Interest packet, the second ICN packet corresponding to the first ICN packet may be the Data requested by the first ICN packet. package. If the first ICN packet is a Data packet, the second ICN packet corresponding to the first ICN packet may be an Interest packet requesting the first ICN packet.
  • the querying the record pointed by the first offset address and performing data processing according to the query result may include:
  • the first ICN packet is an Interest packet, query whether the record pointed by the first offset address stores the second ICN packet storage address, where the second ICN packet is requested by the first ICN packet. a data packet; if the storage address pointed to by the first offset address stores the storage address of the second ICN packet, reading the second ICN from a storage space pointed by the storage address of the second ICN packet Packet, and returning the second ICN packet according to the forwarding information of the first ICN packet; and/or,
  • the first ICN packet is a data packet, querying whether the record pointed by the first offset address stores forwarding information of the second ICN packet, and the second ICN packet is requesting the first ICN packet request If the first offset address stores the forwarding information of the second ICN packet, the first ICN packet is returned according to the forwarding information of the second ICN packet.
  • the first offset address corresponding to the first ICN packet is obtained, and the following implementation manner may be adopted.
  • the obtaining the first offset address if the first ICN packet is the Interest packet, the obtaining the first offset address corresponding to the first ICN packet may include: acquiring the data packet requested by the first ICN packet. Identifying; obtaining the first offset address according to the identifier of the Data packet requested by the first ICN packet.
  • the obtaining the first offset address corresponding to the first ICN packet may include: acquiring an identifier of the first ICN packet; The identifier of the first ICN packet acquires the first offset address.
  • the forwarding information of the Interest packet may include the identifier of the requested Data packet, and the identifier of the Data packet may be the name of the Data packet.
  • the name of the Data package can be "/ndn/UA/maps" and the like.
  • the record pointed to by the first offset address may be a record in the record table.
  • the first offset address may be an address identifier of a storage space of each record in the record table.
  • the record corresponding to the first offset address corresponding to the first ICN packet may be A storage address for storing the second ICN packet when the second ICN packet is stored locally.
  • the first offset address corresponding to the Interest1 may be the offset address 11
  • the first offset address corresponding to the Interest2 may be the offset address 12
  • the first offset address corresponding to the Interest3 may be the offset address 13
  • the Interest1 The requested Data packet is Data1, the Data packet requested by Interest2 is Data2, and the Data packet requested by Interest3 is Data3.
  • Table 1 is an example 1 of the record table.
  • the record pointed to by the offset address 11 may store the storage address of Data1
  • the record pointed to by the offset address 12 may store the storage address of Data2. Since the node does not currently store the Data3 corresponding to the Interest3, the offset address is In the other embodiment of the present invention, when the node receives the Data3 and caches the Data3 in the CS, the storage address of the Data3 in the CS may be stored in the record table. The offset is located in the record pointed to by address 13. With this implementation manner, when the Interest packet is received, the problem caused by repeated retrieval can be avoided, and the retrieval efficiency of the node can be improved.
  • the record pointed to by the first offset address may be used locally.
  • the forwarding information of the second ICN packet is stored when the second ICN packet is stored.
  • the first offset address corresponding to Data1 may be the offset address 21
  • the first offset address corresponding to Data2 may be the offset address 22
  • the first offset address corresponding to Data3 may be the offset address 23, requesting The Interest package of Data1 is Interest1, and the Interest package of Data2 is requested as Interest2, and the Interest package of Data3 is requested as Interest3.
  • Table 2 is an example 2 of the record table.
  • the record pointed to by the offset address 21 stores the forwarding information of the Interest1
  • the record pointed to by the offset address 22 stores the forwarding information of the Interest2. Therefore, the forwarding of the Interest3 is not stored in the record pointed to by the offset address 23.
  • the forwarding information of the Interest3 may be stored in the record pointed to by the offset address 13 in the record table.
  • the first offset address corresponding to the first ICN packet may be the same as the second offset address corresponding to the second ICN packet.
  • the record pointed by the first offset address corresponding to the first ICN packet may actually be used for local storage. And storing, by the first ICN packet, a storage address of the first ICN packet or forwarding information of the first ICN packet.
  • the recording table can also adopt the following embodiments.
  • the record pointed to by the first offset address may be used to store the storage address of the second ICN packet when the second ICN packet is stored locally, and The forwarding information of the first ICN packet is stored when the first ICN packet is stored locally.
  • the record pointed to by the first offset address may be used to store the forwarding information of the second ICN packet when the second ICN packet is stored locally, and The storage address of the first ICN packet is stored when the first ICN packet is stored locally.
  • Interest1 and Data1 may correspond to the same first offset address, that is, offset address 11
  • Interest2 and Data2 may correspond to the same first offset address, that is, offset address 12
  • Interest3 and Data3 may correspond to the same number.
  • An offset address that is, an offset address of 13.
  • Table 3 is an example 3 of the record table. When Data2 is not currently stored, and the forwarding information of the Interest3 is not stored, the content recorded in the record table may be as shown in Table 3.
  • Offset address Interest packet forwarding information Storage address of the Data packet in the CS Offset address 11 Interest1 forwarding information Data1 storage address Offset address 12 Interest2 forwarding information - Offset address 13 - Data3 storage address
  • the related information of the Data packet corresponding to the Interest packet is stored in the record pointed to by the offset address corresponding to the Interest packet, and at the same time, the Interest packet corresponding to the Data packet is related.
  • the information is also stored in the record pointed to by the offset address corresponding to the Data packet. Therefore, when receiving the first ICN packet of the Interest packet or the Data packet, the node may obtain related information of the second ICN packet by retrieving the same record table, such as forwarding information, storage address, or whether to store the second ICN packet. Wait.
  • the Interest packet and the Data packet are received, the problems caused by repeated retrieval can be avoided, and the retrieval efficiency of the node is improved.
  • the step of the embodiment of the present invention may further include: writing the forwarding information or the storage address of the first ICN packet to the first offset address record of.
  • the foregoing querying the record pointed to by the first offset address and performing data processing according to the query result may further include:
  • the storage address of the second ICN packet is not stored in the record pointed to by the first offset address, updating the record pointed by the first offset address Stored forwarding information of the first ICN packet; and/or,
  • the first ICN packet is a data packet
  • the forwarding information of the second ICN packet is stored in the record pointed by the first offset address
  • the first ICN packet is cached, and the first The storage address of an ICN packet is written to the record pointed to by the first offset address.
  • a combination of the foregoing two methods for acquiring the first offset address may be used as another implementation manner of acquiring the first offset address corresponding to the first ICN packet.
  • Obtaining the first offset address corresponding to the first ICN packet by using the foregoing implementation of the combination of the foregoing embodiments for obtaining the first offset address may ensure that the first ICN packet and the second ICN packet correspond to the same offset address. That is, the offset address corresponding to the first ICN packet determined according to the foregoing combination manner is the second offset address corresponding to the second ICN packet corresponding to the first ICN packet.
  • the first offset address is determined by using the combination of the foregoing examples. Since the first ICN packet and the second ICN packet corresponding to the first ICN packet correspond to the same first offset address, the node is receiving. When the first ICN packet is received into the Interest packet or the Data packet, the corresponding second ICN packet can be obtained by retrieving the same record table.
  • the method further The steps can be included:
  • the querying the record pointed by the third offset address, and performing data processing according to the query result may include:
  • the third ICN packet is a Data packet requested by the first ICN, and the forwarding of the first ICN packet is stored in the record pointed to by the third offset address. And returning the third ICN packet according to the forwarded information of the first ICN packet that is queried;
  • the third ICN packet is an Interest packet requesting the first ICN request, and the first ICN packet is stored in the record pointed to by the first offset address. Storing an address, reading the first ICN packet from a storage space pointed to by the queried storage address of the first ICN packet, and returning the read the first packet according to the forwarding information of the third ICN packet.
  • step S301 to step S302 may be performed by an off-chip memory in a node.
  • an off-chip memory in a node For details of related technical solutions, refer to descriptions in other embodiments.
  • the record pointed to by the first offset address is used to store the storage address of the second ICN packet or the second ICN when the second ICN packet corresponding to the first ICN packet is locally stored.
  • the forwarding information of the packet is used to store the storage address of the first ICN packet or the forwarding information of the first ICN packet after storing the first ICN packet locally, so that the ICN can be avoided when receiving the Interest packet and the Data packet.
  • the nodes repeatedly retrieve the problems brought by the retrieval, thereby improving the retrieval efficiency of the nodes.
  • an embodiment of the present invention further provides an implementation manner of acquiring a first offset address corresponding to the first ICN packet.
  • the preset offset function may also be used to obtain the first offset address corresponding to the first ICN packet.
  • the positioning function can be used to determine the position of the corresponding flag bit of the input ICN packet in the index unit.
  • the step of obtaining the first offset address corresponding to the first ICN packet may include:
  • the positioning function may be K hash functions, and the index unit may include M flag bits.
  • the node After receiving the first ICN packet, the node inputs the identifiers of the first ICN packet into K positioning functions respectively, to obtain K. Location.
  • the first offset address may be an M-bit address, wherein the value of the flag bits of the K positions obtained according to the identifier of the first ICN packet is set to 1, and the value of the flag bit other than the K positions is set. Is 0.
  • the flag corresponding to the first ICN packet may be 2, 4, or 5.
  • the first offset address may be 010110, where the 2nd, 4th, and 5th bits are 1, and the 1st, 3rd, and 6th bits are 0.
  • the value of the flag bit in the index unit may be used to indicate whether the Interest packet and/or the Data packet corresponding to the flag bit are stored locally.
  • FIG. 4A is a schematic structural diagram 1 of a node according to an embodiment of the present invention.
  • the Pending Interest Table and Content Store via Compressed Mapping Bloom Filter may be set in the node, and the CMaPIT&CS may be a memory with processing capability, and the CMaPIT&CS may also be referred to as a joint storage structure, including on-chip.
  • the storage unit 41 On-chip memory
  • the off-chip memory 42 In other embodiments of the invention, the on-chip memory unit 41 may use a high speed memory and the off-chip memory unit may use a low speed memory.
  • a Compressed Mapping Bloom filter (CoMBF) 411 can be deployed on the on-chip storage unit 41 to implement data retrieval and indexing, and the compressed type can be positioned in the Bloom filter.
  • the data can also be called an index unit.
  • CoMBF 411 can be composed of two parts: a Compressed Bloom filter 4111 containing m bits, and a Mapping Array (MA) 4112 containing j bits, wherein MA 4112 and Compressed Bloom filter
  • the structure of 4111 can be the same, and can all take the form of a bit array.
  • the CoMBF may also be composed of a Bloom filter 4113, a Compresses Unit, and an MA 4112.
  • FIG. 4B is a schematic structural diagram 2 of a node according to an embodiment of the present invention. Wherein, the compression unit can be used to implement the perceptual compression of the flag bit.
  • a counting bloom filter (CBF) 421 data structure corresponding to the CoMBF 4111 may be deployed on the off-chip storage unit 42 to implement data update and deletion.
  • a packet store 422 may be deployed on the off-chip storage unit 42 to store the forwarding information of the PIT and the storage location of the data packet in the CS memory to implement integration of the PIT table index structure and the CS memory index structure.
  • the Packet Store can be a static memory.
  • the Packet Store 222 can store PIT 4221 and CS 4222.
  • the Packet Store may be used to store data in the PIT and the CS, and the record pointed to by the first offset address may be a record in the PIT.
  • the CoMBF 411 may represent a set containing elements, wherein the basic function for implementing the element retrieval is to determine whether a data element is in the data set represented by the CoMBF.
  • the data compression function of Compressed Bloom filter 4111 can effectively reduce the amount of data transmission in the network.
  • the CoMBF 411 can be equipped with network data transmission and data sharing functions.
  • the name of the Interest packet may first be input into CMaPIT&CS. Then perform an exact string match on the name of the Interest package in CoMBF. If there is a matching entry in CoMBF, the Packet Store is accessed based on the offset address of the CoMBF output. Subsequently, it is checked whether the corresponding record in the Packet Store records a pointer to the CS memory. If there is a pointer to the CS memory, it means that the Data packet corresponding to the Interest packet is included in the CS, and the Data packet can be read. If there is no pointer to the CS memory, the Interest packet forwarding information of the record in the Packet Store is updated, waiting for the arrival of the Data packet.
  • the Data packet arrives at the forwarding plane, first enter the name of the Data packet into CMaPIT&CS. Subsequently, the exact string matching operation is performed on the name of the Data packet in CoMBF. If there is a matching entry in the CoMBF, the Packet Store is accessed according to the offset address output by the CoMBF, the forwarding information of the corresponding Interest packet is read, and the Data packet is returned. At the same time, the storage location of the Data packet in the CS memory is recorded in the Packet Store. If there is no matching entry in CoMBF, the data packet is directly discarded.
  • FIG. 5 is a schematic diagram 1 of the interaction process of the data processing method according to the embodiment of the present invention.
  • the executor of the embodiment of the present invention may be an on-chip storage unit and an off-chip storage unit.
  • the steps of the embodiment of the present invention may include:
  • Step S501 the on-chip storage unit receives the first ICN packet.
  • the first ICN packet may be an Interest packet or a Data packet.
  • Step S502 the on-chip storage unit acquires a first offset address corresponding to the first ICN packet.
  • the acquiring the first offset address may be performed by using any of the foregoing manners.
  • Step S503 the on-chip storage unit sends the first offset address corresponding to the first ICN packet to the off-chip storage unit.
  • Step S504 the off-chip storage unit queries the record pointed to by the first offset address.
  • Step S505 the off-chip storage unit determines whether there is information about the second ICN packet corresponding to the first ICN packet in the record pointed to by the first offset address, and if yes, executing S506.
  • Step S506 the off-chip storage unit sends related information of the second ICN packet.
  • Step S507 the on-chip storage unit performs data processing according to the related information of the first ICN packet and the second ICN packet.
  • the method may further include: determining, by the on-chip storage unit, whether there is a matching index entry, and if yes, performing the step of acquiring the first offset address corresponding to the first ICN packet.
  • FIG. 6 is a second schematic diagram of an interaction process of a data processing method according to an embodiment of the present invention. As shown in FIG. 6, the steps of the embodiment of the present invention may include:
  • Step S601 the on-chip storage unit receives the first ICN packet.
  • Step S602 the on-chip storage unit determines whether there is a matching index entry, and if yes, executes S603.
  • the embodiment of the present invention provides two implementation manners for determining whether there is a matching index entry.
  • the determining whether the The index entry that matches the identifier of the first ICN packet may include: determining, according to the positioning function, a location of a corresponding flag bit in the index unit, where the flag bit in the index unit The value is used to indicate whether the data packet corresponding to the flag bit is stored locally; the value of the flag bit corresponding to the first ICN packet is queried; if the value of the flag bit corresponding to the first ICN packet is valid, the presence and the The index of the first ICN packet matches the index entry.
  • the second ICN packet is the Data requested by the first ICN packet. And determining, according to the positioning function, the second ICN packet corresponding to the first ICN packet in the index unit, according to the positioning function, a location of the flag bit; querying a value of the flag bit corresponding to the second ICN packet; if the value of the flag bit corresponding to the second ICN packet is valid, determining that there is an index matching the identifier of the first ICN packet entry.
  • an index entry table may be used to determine whether an index entry corresponding to the ICN packet exists.
  • Table 4 is an example of an index entry table provided by an embodiment of the present invention.
  • Each index entry may include multiple attributes, such as an identifier of an index entry, an Interest packet corresponding to an index entry, whether an Local packet corresponding to an index entry is stored locally, a Data packet corresponding to an index entry, and whether an index entry corresponding to the local storage is stored. Properties such as the Data package.
  • the identifier of the index entry may be the number of the index entry, or may be a combination of the Data packet and the Interest packet corresponding to the index entry. It should be noted that, in the index entry table, the first ICN packet and the second ICN packet corresponding to the first ICN packet may correspond to the same identified index entry. That is to say, the Data packet and the Interest packet requesting the Data packet can correspond to the same identified index entry.
  • Data1 and Request1 of Request1 can correspond to index entry 1
  • Content2 and Request2 of Request Data2 can correspond to index entry 2.
  • Data3 and Interest3 of request Data3 can correspond to index entry 3.
  • the Interest packet stored by node has Interest1.
  • Interest2, the Data package stored by the node has Data2 and Data3.
  • the foregoing determining whether there is an index entry that matches the identifier of the first ICN packet may include:
  • the first ICN packet is a Data packet
  • the second ICN packet is an Interest packet
  • determining whether the index entry corresponding to the first ICN packet indicates that the second ICN packet is locally stored, that is, determining whether the local index storage entry is corresponding.
  • Whether the "Interest packet" attribute is YES, and if so, it is determined that there is an index entry that matches the identifier of the first ICN packet.
  • the first ICN packet is an Interest packet
  • the second ICN packet is a Data packet requested by the first ICN packet
  • determining whether the index entry corresponding to the first ICN packet indicates that the second ICN packet is locally stored that is, It is judged whether the "Local whether the Data packet corresponding to the index entry is stored" attribute is YES, and if so, it is determined that there is an index entry that matches the identifier of the first ICN packet.
  • the attribute value of the “Data packet corresponding to the index entry stored locally” attribute and the “Interest packet corresponding to the index entry stored locally” attribute may be expressed in the form of a numerical value or the like, for example, may be adopted.
  • “1” or “valid” means “yes", “0” or “invalid” means “no”. The embodiment of the invention does not limit this.
  • Step S603 the on-chip storage unit acquires a first offset address corresponding to the first ICN packet.
  • Step S604 the on-chip storage unit sends the first offset address corresponding to the first ICN packet to the off-chip storage unit.
  • Step S605 the off-chip storage unit queries the record pointed to by the first offset address.
  • Step S606 the off-chip storage unit determines whether there is information about the second ICN packet corresponding to the first ICN packet in the record pointed to by the first offset address, and if yes, executes S607.
  • Step S607 the off-chip storage unit sends the related information of the second ICN packet to the on-chip storage unit.
  • Step S608 the on-chip storage unit performs data processing according to the related information of the first ICN packet and the second ICN packet.
  • step S602 is equivalent to a trigger condition for acquiring the first offset address corresponding to the first ICN packet in step S603. That is, the step of acquiring the first offset address corresponding to the first ICN packet may be performed when there is an index entry that matches the identifier of the first ICN packet.
  • the index entry may be such a data: (1) if the first ICN packet is stored locally, the index entry corresponding to the first ICN packet records "local ICN1", and (2) if the second ICN packet is stored locally, The index entry corresponding to the second ICN packet records "locally has ICN2", and (3) the index entries corresponding to the first ICN packet and the second ICN packet are the same index entry.
  • the index entry corresponding to the ICN packet may be determined according to the identifier of the ICN packet, for example, the location of the flag bit determined according to the identifier of the ICN packet as the identifier of the index entry in the index entry table.
  • the structure of the index entry table may be similar to the structure of the record table pointed to by the offset address.
  • steps S601, S603 to S608 are similar to steps S501 to S507.
  • the embodiment of the present invention further provides a data processing method, wherein the first ICN packet may be an Interest1 packet, and the second ICN packet corresponding to the first ICN packet may be Data1, and FIG. 7A is an interaction process of the data processing method according to the embodiment of the present invention. Schematic three. As shown in FIG. 7A, the steps of the data processing method provided by the embodiment of the present invention may include:
  • step S7101 the on-chip storage unit receives the Interest1.
  • step S7102 the on-chip storage unit determines whether there is a matching index entry, and if yes, executes S7103.
  • step S7103 the on-chip storage unit acquires the offset address 11 corresponding to the Interest1.
  • step S7104 the on-chip storage unit sends the offset address 11 corresponding to the Interest1 to the off-chip storage unit.
  • step S7105 the off-chip storage unit queries the record pointed to by the offset address 11.
  • step S7106 the off-chip storage unit determines whether the storage address of the Data1 requested by the Interest1 exists in the record pointed to by the offset address 11, and if so, reads Data1, executes S7107, and if not, executes S7109.
  • step S7107 the off-chip storage unit transmits Data1.
  • step S7108 the on-chip storage unit returns Data1 according to the forwarding information of Interest1.
  • step S7109 the off-chip storage unit writes the forwarding information of Interest1 into the record pointed to by the offset address 11.
  • the embodiment of the present invention further provides a data processing method, where the first ICN packet may be a Data1 packet, and the second ICN packet corresponding to the first ICN packet may be the Interest1, and FIG. 7B is an interaction process of the data processing method according to the embodiment of the present invention.
  • FIG. 7B is an interaction process of the data processing method according to the embodiment of the present invention.
  • Figure IV the steps of the data processing method provided by the embodiment of the present invention may include:
  • step S7201 the on-chip storage unit receives Data1.
  • step S7202 the on-chip storage unit determines whether there is a matching index entry. If yes, execute S7203. If not, execute S7210.
  • step S7203 the on-chip storage unit acquires the offset address 21 corresponding to Data1.
  • step S7204 the on-chip storage unit transmits the offset address 21 corresponding to Data1 to the off-chip storage unit.
  • step S7205 the off-chip storage unit queries the record pointed to by the offset address 21.
  • step S7206 the off-chip storage unit determines whether there is forwarding information of the Interest1 requesting Data1 in the record pointed to by the offset address 21, and if so, reads the forwarding information of the Interest1, executes S7207 and S7209, and if not, executes S7210.
  • step S7207 the off-chip storage unit transmits the forwarding information of the Interest1 to the on-chip storage unit.
  • step S7208 the on-chip storage unit returns Data1 according to the forwarding information of Interes1.
  • Step S7209 the off-chip storage unit caches Data1, and writes the storage address of Data1 into the record pointed to by the offset address 21.
  • Step S7209 The off-chip storage unit sends indication information indicating that the forwarding information of the Interest1 does not exist.
  • step S7210 the on-chip storage unit discards Data1.
  • FIG. 7C is a schematic diagram 5 of the interaction process of the data processing method according to the embodiment of the present invention.
  • the steps of the embodiment of the present invention may include:
  • step S7301 the on-chip storage unit receives Data1.
  • this step may be performed after S7109.
  • step S7302 the on-chip storage unit determines whether there is a matching index entry, if yes, executes S7303, and if not, executes S7310.
  • step S7303 the on-chip storage unit acquires the offset address 11 corresponding to Data1.
  • step S7304 the on-chip storage unit transmits the offset address 11 corresponding to Data1.
  • step S7305 the off-chip storage unit queries the record pointed to by the offset address 11.
  • step S7306 the off-chip storage unit determines whether there is forwarding information of the Interest1 requesting Data1 in the record pointed to by the offset address 11, reads the forwarding information of the Interest1, and executes S7307 and S7309.
  • step S7307 the off-chip storage unit sends the forwarding information of the Interest1.
  • step S7308 the on-chip storage unit returns Data1 according to the forwarding information of Interes1.
  • step S7309 the off-chip storage unit caches Data1, and writes the storage address of Data1 into the record pointed to by the offset address 21.
  • step S7310 the on-chip storage unit discards Data1.
  • the embodiment of the present invention further provides a data processing method, which can be used to quickly determine which Data packets or Interest packets are stored locally, so that the node can quickly learn the locally stored Data packets or Interest packets, thereby improving the retrieval efficiency of the nodes.
  • This embodiment can also be used to share data stored on the own node in an ICN network.
  • FIG. 8 is a second schematic flowchart of a data processing method according to an embodiment of the present invention. As shown in FIG. 8, the steps of the embodiment of the present invention may include:
  • Step S801 acquiring a first ICN packet.
  • the first ICN packet is an interest Interest packet or a data data packet.
  • Step S802 determining, according to the positioning function, a location of a corresponding flag bit of the first ICN packet in the index unit.
  • Step S803 querying or setting the value of the flag bit corresponding to the first ICN packet according to the location of the flag bit corresponding to the first ICN packet.
  • the value of the flag bit in the index unit is used to indicate whether the Interest packet and/or the Data packet corresponding to the flag bit are stored locally.
  • the node may set the flag bit corresponding to the ICN packet in the index unit to be valid.
  • the querying or setting the value of the flag bit corresponding to the first ICN packet according to the location of the flag bit corresponding to the first ICN packet may include: when the first ICN packet is stored locally, the first ICN packet is correspondingly The value of the flag bit is set to be valid.
  • the value of the flag bit corresponding to the ICN packet may be set to be valid after S7109, S7209 or S7309.
  • the flag corresponding to the data packets may be set to be valid when the node is enabled.
  • the positioning function can be used to determine the location of a corresponding flag bit in any of the ICN packets in the index unit.
  • the location of the corresponding flag bit of the ICN packet in the index unit may be determined according to the identifier of the ICN packet.
  • the location of the corresponding flag bit of the Interest packet in the index unit may be determined according to the name of the Data packet requested by the Interest packet.
  • the location of the corresponding flag bit of the Data packet in the index unit may be determined according to the name of the Data packet.
  • the positioning function may be K hash functions, and the identifiers of the ICN packets are respectively input into K hash functions, and K results may be obtained.
  • the K results may be K "1"s, and The K results may be 1 "0" and K-1 "1".
  • the K results may be 1 "10", 1 "11", and K-2 "00".
  • the K results may be arranged in the order of the corresponding K positioning functions as M-bit binary numbers, and the M-bit binary numbers may be used as offset addresses in the record table.
  • the index unit may be, for example, a bit array, where one ICN packet may correspond to one bit or multiple bits in the index unit, and the corresponding flag bit of the ICN packet in the index unit is one or more. Bits. For example, when the value of the bit corresponding to the ICN packet is 1, the flag corresponding to the ICN is determined to be valid, and when the value of the bit corresponding to the ICN packet is not all 0, the flag corresponding to the ICN packet is determined to be invalid.
  • a compression flag bit may also be adopted as the corresponding one of the ICN packets. The implementation of the flag.
  • the determining, according to the positioning function, the location of the corresponding flag bit of the first ICN packet in the index unit may also be implemented by: first determining, according to the positioning function, that the first ICN packet is located Determining the location of the uncompressed flag bit mapped in the index unit; then performing compressed sensing on the location of the uncompressed flag bit corresponding to the first ICN packet to obtain the location of the compressed flag bit corresponding to the first ICN packet; The location of the compressed flag bit corresponding to the first ICN packet is used as the location of the flag bit corresponding to the first ICN; wherein the total number of non-compressed flag bits in the index unit is greater than the total number of compressed flag bits in the index unit.
  • the total number of uncompressed flag bits may be M bits, such as 32 bits, and the total number of compressed flag bits may be N bits, such as 18 bits.
  • the method may further include:
  • the flag bit may be stored in the on-chip storage unit.
  • each bit of the bit array in the Compressed Bloom filter of the on-chip storage unit may be used as the ICN packet stored by the node.
  • sending the index unit to other nodes may include: sending an array of bits in the Compressed Bloom filter to other nodes. That is to say, when the forwarding plane needs to share the cache information in the CS, the bit array of the Compressed Bloom filter in the on-chip storage unit can be transmitted to the network to complete the information sharing.
  • determining the location of the corresponding flag bit of the first ICN packet in the index unit according to the positioning function may be implemented by the following steps:
  • the first ICN packet is the first data packet, determining the location of the flag bit corresponding to the first ICN packet according to the identifier and the positioning function of the first data packet;
  • the data packet requested by the second Interest packet is the second data packet, and the location of the flag bit corresponding to the first ICN packet is determined according to the identifier of the second data packet and the positioning function. .
  • the method may further include:
  • the method may further include:
  • the flag bit of the second ICN packet corresponding to the first ICN packet is valid, performing the step of determining the first offset address corresponding to the first ICN packet according to the location of the flag bit corresponding to the first ICN packet.
  • the node may first check whether the node may store the second ICN packet by querying the value of the flag bit corresponding to the second ICN packet in the index unit, if possible, the second The ICN packet determines the offset address according to the value of the flag bit corresponding to the second ICN packet, and the record table pointed to by the offset address is stored in the off-chip storage unit, and the record pointed to by the offset address is queried, and then the data is processed according to the query result. .
  • CMaPIT&CS the use of the CMaPIT&CS storage structure can effectively simplify the retrieval process of the name data, reduce the retrieval frequency of the index structure in the on-chip storage unit, and the number of accesses of the slow memory in the off-chip storage unit.
  • the retrieval time complexity is determined by CoMBF, and the time complexity is.
  • FIG. 9 is a schematic flowchart 3 of a data processing method according to an embodiment of the present invention.
  • the method in the embodiment of the present invention may further include the following steps:
  • Step S901 acquiring a first ICN packet.
  • this step is similar to S801.
  • Step S902 determining, according to the positioning function, a position of a corresponding flag bit of the first ICN packet in the index unit.
  • this step is similar to S802.
  • Step S903 setting a value of a flag bit corresponding to the first ICN packet according to a position of the flag bit corresponding to the first ICN packet.
  • this step is similar to S803.
  • Step S904 acquiring a third ICN package.
  • the third ICN packet may be an Interest packet or a Data packet.
  • Step S905 determining, according to the positioning function, a location of a corresponding flag bit of the third ICN packet in the index unit.
  • the positioning function may be K hash functions, and the foregoing implementation manner may be adopted by determining the position of the corresponding flag bit in the index unit in the third ICN packet.
  • the identifier of the ICN packet may be input into K hash functions, and the calculation results of the K hash functions are arranged into a binary number in the order of K hash functions, and the value of the bit in the binary number is 1.
  • the position of the bit is taken as the position of the corresponding flag bit of the ICN packet in the index unit.
  • Step S906 querying the value of the flag bit corresponding to the third ICN packet.
  • the method of the embodiment of the present invention may further include:
  • Step S907 determining a second offset address corresponding to the third ICN packet according to the location of the flag bit corresponding to the third ICN packet.
  • Step S908 querying the record pointed to by the second offset address corresponding to the third ICN packet, and performing data processing according to the query result.
  • the record pointed to by the second offset address may be used to store forwarding information or a storage address of the fourth ICN packet corresponding to the third ICN packet.
  • determining the corresponding flag bit of the third ICN packet in the index unit according to the positioning function may include: determining, according to the positioning function and the identifier of the third ICN packet, Correspondingly, the value of the flag bit corresponding to the third ICN packet in the query index unit may be: whether the value of the location of the flag bit corresponding to the third ICN packet in the index unit is valid; Valid, according to the identifier of the third ICN packet, acquiring a second offset address corresponding to the third ICN packet; further, if the record pointed to by the second offset address is stored with the Interest packet requesting the third ICN packet And forwarding the information, and returning the third ICN packet according to the forwarding information of the Interest packet of the third ICN packet.
  • the obtaining the second offset address may include: determining, according to the positioning function and the identifier of the Data packet requested by the third ICN packet, the identifier corresponding to the third ICN packet.
  • the querying the value of the flag bit corresponding to the third ICN packet may include: querying whether the value of the location of the flag bit corresponding to the third ICN packet in the index unit is valid; if valid, according to the third ICN packet And the second offset address corresponding to the third ICN packet is obtained; further, if the storage address of the data packet requested by the third ICN packet is stored in the record pointed to by the second offset address, requesting from the third ICN packet The Data packet requested by the third ICN packet is read in the storage address of the Data packet, and the Data packet requested by the third ICN packet is returned according to the forwarding information of the third ICN packet.
  • the process of retrieving the Interest packet in the CCamPIT&CS storage structure can be as follows:
  • the corresponding positioning array MA is set to 6 bits, that is, the storage structure can store 26 elements in the Packet Store. It should be noted that the score of the compression unit equalization needs to be the same as the bit number of the positioning array.
  • two Interest packets named /ndn/UA/videos and /ndn/UA/maps are sequentially input into the storage structure.
  • the positioning array MA will be initialized to the all-zero state before each Interest packet is input.
  • the two Interest packets named /ndn/UA/videos and /ndn/UA/maps mean that the names of the Data packets requested by the two Interest packets are /ndn/UA/videos and / respectively. Ndn/UA/maps.
  • the name of the Interest packet /ndn/UA/videos is first input into the CMaPIT&CS storage structure, and the 6th, 14th, and 20th bits in the Bloom filter are hash-mapped, and the three bits are mapped. Both are 1, indicating that the Interest package exists in the structure.
  • the values of bits 2, 4, and 5 of the positioning array MA are set to 1, and the values of other positions are 0.
  • the value of the positioning array MA is 010110, that is, the offset address of the Interest packet in the Packet Store is 010110.
  • the corresponding record of the Packet Store is recorded with a pointer to the CS memory, that is, the Data packet corresponding to the first Interest packet exists, and finally the Data packet is read.
  • the corresponding record of the Packet Store refers to the record in the record table pointed to by the offset address.
  • the Interest package named /ndn/UA/maps also exists in the storage structure, and its offset address in the Packet Store is 110100. Then check the corresponding record of the Packet Store does not record the pointer to the CS memory, that is, there is no Data packet corresponding to the second Interest packet, and finally update the forwarding information of the Interest packet of the record, and wait for the arrival of the Data packet.
  • the process of retrieving a Data packet in the CCamPIT&CS storage structure can be as follows:
  • the corresponding positioning array MA is set to 6 bits, so the storage structure can store 26 elements in the Packet Store.
  • two data packets named /ndn/UA/maps and /TJU/videos are input in order.
  • the positioning array MA is initialized to the all-zero state before each Data packet is input. It should be noted that the two Data packets named /ndn/UA/maps and /TJU/videos mean that the names of the two Data packets are /ndn/UA/maps and /TJU/videos.
  • the name of the data packet /ndn/UA/maps is first input into the CMaPIT&CS storage structure, and the 2nd, 5th, and 16th bits in the Bloom filter are hash-mapped, and the three bits are mapped. Both are 1, indicating that the Data packet exists in the structure.
  • the value of the positioning array MA is 110100, that is, the offset address of the Data packet in the Packet Store is 110100.
  • the corresponding record of the Packet Store is checked to record the forwarding information of the corresponding Interest packet, and the Data packet is returned according to the forwarding information.
  • the storage location of the Data packet in the CS memory is recorded in the Packet Store.
  • the Data packet named /TJU/videos is hash-mapped in bits 1, 7, and 21 of the Bloom filter, but these three bits are not all 1, that is, there is no matching record in CoMBF, so directly Discard the data packet.
  • the corresponding record of the Packet Store refers to the record in the record table pointed to by the offset address.
  • the embodiment of the present invention integrates the PIT table and the CS memory index, that is, constructs a unified joint storage structure CMaPIT&CS by using CoMBF, which may also be referred to as an index result.
  • CoMBF which may also be referred to as an index result.
  • CMaPIT&CS can reduce the number of retrievals of the forwarding plane when processing packets, and improve retrieval performance.
  • the storage consumption of the forwarding plane is further reduced, the retrieval speed of the name data is improved, and the retrieval performance is improved.
  • FIG. 10 is a schematic structural diagram of a data processing device according to an embodiment of the present invention.
  • the apparatus includes a processor 1001 and a memory 1002 for storing a computer program executable on the processor.
  • the processor 1001 is configured to perform the steps of the data processing method shown in any one of FIG. 3 to FIG. 7C and/or the steps of the data processing method shown in any of FIG. 8 to FIG. 9 when the computer program is executed.
  • the data processing device 1000 may further include an interface 1003 and a bus 1004, etc., wherein the interface 1003 may be used to receive or send an ICN packet or an index unit, and the bus 1004 is used for the processor 1001, the memory 1002, and the interface. Data interaction between 1003.
  • the data processing device may be located on a node in the ICN network.
  • the data processing device may be located at an intermediate node or at a terminal node.
  • the data processing device may be a router or a terminal.
  • the embodiment of the present invention further provides a computer readable storage medium, where the computer readable storage medium stores a data processing program, and when the data processing program is executed by the processor, the steps of the data processing method shown in the foregoing embodiment are implemented.
  • the receiving unit, the obtaining unit, the processing unit, and the sending unit involved in the foregoing embodiments may all be configured by a central processing unit (CPU) and a microprocessor (Micro Processor Unit) located in the wireless data transmitting device.
  • CPU central processing unit
  • MPU microprocessor
  • DSP digital signal processor
  • FPGA Field Programmable Gate Array
  • embodiments of the present invention can be provided as a method, system, or computer program product. Accordingly, the present invention can take the form of a hardware embodiment, a software embodiment, or a combination of software and hardware. Moreover, the invention can take the form of a computer program product embodied on one or more computer-usable storage media (including but not limited to disk storage and optical storage, etc.) including computer usable program code.
  • the computer program instructions can also be stored in a computer readable memory that can direct a computer or other programmable data processing device to operate in a particular manner, such that the instructions stored in the computer readable memory produce an article of manufacture comprising the instruction device.
  • the apparatus implements the functions specified in one or more blocks of a flow or a flow and/or block diagram of the flowchart.
  • These computer program instructions can also be loaded onto a computer or other programmable data processing device such that a series of operational steps are performed on a computer or other programmable device to produce computer-implemented processing for execution on a computer or other programmable device.
  • the instructions provide steps for implementing the functions specified in one or more of the flow or in a block or blocks of a flow diagram.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明实施例公开了一种数据处理方法,所述方法包括:获取第一ICN包对应的第一偏移地址;查询所述第一偏移地址指向的记录,根据查询结果进行数据处理;其中,所述第一偏移地址指向的记录用于在本地存储有所述第一ICN包对应的第二ICN包时存储所述第二ICN包的存储地址或所述第二ICN包的转发信息。本发明实施例同时还公开了一种数据处理设备和计算机可读存储介质。

Description

一种数据处理方法、设备和计算机可读存储介质
本申请要求享有2018年4月19日提交的名称为“一种数据处理方法、设备和计算机可读存储介质”的中国专利申请CN201810356463.X的优先权,其全部内容通过引用并入本文中。
技术领域
本发明涉及通信技术领域,尤其涉及一种数据处理方法、设备、和计算机可读存储介质。
背景技术
信息中心网络(Information-Centric Networking,ICN)是一种全新的互联网通信体系架构。作为一种以数据内容为核心、用户需求为导向的新型互联网通信模型,ICN彻底打破了现有基于TCP/IP技术的网络架构。该体系架构将通信模型建立在标识数据的基础之上,通过采用内容请求者驱动的通信模式,从根本上改变了IP包的封装结构和寻址方式,有利于移动通信设备跨区切换,降低通信时延,解决了传统互联网架构下无法应对高速移动通信、IP地址空间耗尽、网络传输效率低、安全性差等问题。
ICN的转发平面处理的多种数据中包括兴趣(Interest)包和数据(Data)包这两种ICN包,ICN的转发平面需要检索是否有Interest包所请求的Data包,或者,检索是否有请求Data包的Interest。
目前,ICN网络中ICN包的查询效率较低。
发明内容
为解决上述技术问题,本发明实施例期望提供一种数据处理方法、设备和计算机可读存储介质,解决现有技术中ICN网络中ICN包的查询效率低的问题。
为达到上述目的,本发明实施例的技术方案是这样实现的:
第一方面,本发明提供一种数据处理方法,应用于信息中心网络ICN中的节点,所 述方法包括:
获取第一ICN包对应的第一偏移地址;
查询所述第一偏移地址指向的记录,根据查询结果进行数据处理;
其中,所述第一偏移地址指向的记录用于在本地存储有所述第一ICN包对应的第二ICN包时存储所述第二ICN包的存储地址或所述第二ICN包的转发信息。
第二方面,本发明提供一种数据处理方法,应用于信息中心网络ICN中的节点,所述方法包括:
获取第一ICN包,所述第一ICN包为兴趣Interest包或数据Data包;
根据定位函数,确定所述第一ICN包在索引单元中对应的标志位的位置;
根据所述第一ICN包对应的标志位的位置,查询或者设置所述第一ICN包对应的标志位的值;
其中,所述索引单元中的标志位的值用于表示本地是否存储有标志位对应的Interest包和/或Data包。
第三方面,本发明提供一种数据处理设备,所述设备包括处理器和用于存储能够在处理器上运行的计算机程序的存储器,
其中,所述处理器用于运行所述计算机程序时,执行第一方面任一所述数据处理方法的步骤,或者,执行第二方面任一所述数据处理方法的步骤。
第四方面,本发明提供一种计算机可读存储介质,所述计算机可读存储介质上存储有数据处理程序,所述数据处理程序被处理器执行时实现第一方面任一所述数据处理方法的步骤,或者,所述数据处理程序被处理器执行时实现第二方面任一所述数据处理方法的步骤。
本发明的实施例中,本发明实施例提供的数据处理方法,通过获取第一ICN包对应的第一偏移地址;查询第一偏移地址指向的记录,根据查询结果进行数据处理;其中,第一偏移地址指向的记录用于在本地存储有第一ICN包对应的第二ICN包时存储第二ICN包的存储地址或第二ICN包的转发信息,能够提高ICN网络中ICN包的查询效率。
附图说明
图1A为ICN转发平面在收到Interest包时的工作机制的示意图;
图1B为ICN转发平面在收到Interest包时的检索顺序的示意图;
图2A为ICN转发平面在收到Data包时的工作机制示意图;
图2B为ICN转发平面在收到Data包时的检索顺序的示意图;
图3为本发明实施例数据处理方法的流程示意图一;
图4A为本发明实施例节点的结构示意图一。;
图4B为本发明实施例节点的结构示意图二。
图5为本发明实施例数据处理方法的交互流程示意图一;
图6为本发明实施例数据处理方法的交互流程示意图二;
图7A为本发明实施例数据处理方法的交互流程示意图三;
图7B为本发明实施例数据处理方法的交互流程示意图四;
图7C为本发明实施例数据处理方法的交互流程示意图五;
图8为本发明实施例数据处理方法的流程示意图二;
图9为本发明实施例数据处理方法的流程示意图三;
图10为本发明实施例数据处理设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
本发明实施例提供的技术方案可应用于位于ICN中的转发平面的路由器的结构设计领域,在介绍本发明实施例提供的数据处理方法之前,先对本发明实施例提供的数据处理方法的应用场景进行总体说明。
为了从根本上解决了基于TCP/IP技术的网络通信模型的先天不足,信息中心网络ICN的转发平面上可以部署三种数据结构:内容存储池(Content Store,CS)、请求状态表(Pending Interest Table,PIT)和转发表(Forwarding Information Base,FIB),其中,PIT用于存储Interest包的转发信息,转发信息例如可以包括该Interest包请求的Data包的标识、请求该Data包的请求方节点的信息等。CS用于存储Data包。ICN利用这三种数据结构实现内容共享和智能转发,降低网络负载,提高数据在ICN网络中的传输速率。
转发平面涉及CS与PIT的工作机制十分接近,图1A为ICN转发平面在收到Interest 包时的工作机制的示意图;图1B为ICN转发平面在收到Interest包时的检索顺序的示意图;图2A为ICN转发平面在收到Data包时的工作机制示意图;图2B为ICN转发平面在收到Data包时的检索顺序的示意图。
如图1A所示,Interest包到达转发平面的端口后转发平面的处理步骤可以包括:
步骤S101,接收Interest包。
步骤S102,检索CS,判断CS中是否存储有该Interest包请求的Data包,若是,执行S103,若否,执行S104。
步骤S103,根据Interest包的转发信息,将该Interest包对应的Data包发送给请求方节点。
步骤S104,检索PIT,判断在PIT中是否存储有该Interest包。
步骤S105,将该Interest包的转发信息加入PIT。
步骤S106,更新PIT中的Interest包的转发信息。
如图1B所示,在转发平面中涉及CS和PIT的工作机制中,在Interest包到达转发平面的某个端口后,转发平面首先会检索CS存储器,参见S102a,其次检索PIT表,参见S104a。
如图2A所示,Data包到达转发平面的端口后转发平面的处理步骤可以包括:
步骤S201,接收Data包。
步骤S202,检索PIT,判断在PIT中是否存储有请求该Data的Interest包,若是,执行S203,若否,执行S205。
步骤S203,根据Interest包的转发信息,根据Interest包的转发信息,将该Data包发送给请求方节点。
步骤S204,在CS中,缓存该Data包。
步骤S205,丢弃该Data包。
如图1B所示,在转发平面中涉及CS和PIT的工作机制中,在Data包到达转发平面后,转发平面首先检索PIT表,然后在CS存储器中缓存Data包。
这种重复检索的过程保证了检索的准确性,但反复的检索过程会影响转发平面的工作性能。对此,本发明实施例提供的技术方案可解决ICN的转发平面在工作过程中需要在多个表项中反复检索数据所带来的问题。
下面对本发明实施例提供的数据处理方法进行详细说明。在本发明实施例中,Interest包和Data包均可以称为ICN包,本发明实施例提供的技术方案可应用于节点接收到Interest包或者Data包中任意一种ICN包后进行相应数据处理的场景。
实施例一
本发明实施例提供一种数据处理方法,本发明实施例的执行主体可以为ICN中的节点。示例性的,节点可以为路由器。本发明实施例可应用于节点在接收到第一ICN包后,获取第一ICN包对应的第二ICN包的相关信息的场景。图3为本发明实施例数据处理方法的流程示意图一。如图3所示,本发明实施例的步骤可以包括:
步骤S301,获取第一ICN包对应的第一偏移地址。
步骤S302,查询第一ICN包对应的第一偏移地址指向的记录,根据查询结果进行数据处理,其中,第一偏移地址指向的记录可以用于在本地存储有第一ICN包对应的第二ICN包时存储第二ICN包的存储地址或第二ICN包的转发信息。
在本发明实施例中,通过首先获取第一ICN包对应的第一偏移地址,然后查询第一ICN包对应的第一偏移地址指向的记录,根据查询结果进行数据处理,其中,第一偏移地址指向的记录可以用于在本地存储有第一ICN包对应的第二ICN包时存储第二ICN包的存储地址或第二ICN包的转发信息;由此可以看出,偏移地址与ICN包之间具有映射关系,而偏移地址指向的记录为转发信息或存储地址,这样,当第一ICN包为Interest包或Data包,第二ICN包为Data包或Interest包时,只需要根据第一ICN包查找到第一偏移地址,可以避免在接收到Interest包或Data包时,ICN中的节点重复检索带来的问题,从而提高节点的检索效率。
在本发明实施例中,在上述获取第一ICN包对应的偏移地址之前,可以包括:接收第一ICN包。在本发明实施例中,第一ICN包可以为Interest包,也可以是Data包,若第一ICN包为Interest包,第一ICN包对应的第二ICN包可以为第一ICN包请求的Data包。若第一ICN包为Data包,第一ICN包对应的第二ICN包可以为请求第一ICN包的Interest包。
在本发明实施例中,上述查询所述第一偏移地址指向的记录,根据查询结果进行数据处理,可以包括:
若所述第一ICN包为Interest包,查询所述第一偏移地址指向的记录是否存储有所述 第二ICN包存储地址,所述第二ICN包为所述第一ICN包请求的所述Data包;若所述第一偏移地址指向的记录中存储有所述第二ICN包的存储地址,从所述第二ICN包的存储地址指向的存储空间中读取所述第二ICN包,并根据所述第一ICN包的转发信息回传所述第二ICN包;和/或,
若所述第一ICN包为Data包,查询所述第一偏移地址指向的记录是否存储有所述第二ICN包的转发信息,所述第二ICN包为请求所述第一ICN包请求的Interest包;若所述第一偏移地址指向的记录中存储有所述第二ICN包的转发信息,根据所述第二ICN包的转发信息,回传所述第一ICN包。
在本发明实施例中,获取第一ICN包对应的第一偏移地址,可以采用以下实施方式。在获取第一偏移地址的一种实施方式中,若第一ICN包为Interest包,上述获取第一ICN包对应的第一偏移地址,可以包括:获取第一ICN包请求的Data包的标识;根据第一ICN包请求的Data包的标识获取第一偏移地址。在获取第一偏移地址的另一种实施方式中,若第一ICN包为Data包,上述获取第一ICN包对应的第一偏移地址,可以包括:获取第一ICN包的标识;根据第一ICN包的标识获取第一偏移地址。在本发明其他实施例中,上述两种获取第一偏移地址的实施方式也可以组合使用。需要说明的是,Interest包的转发信息中可以包含所请求的Data包的标识,Data包的标识可以为Data包的名称。示例性的,Data包的名称可以为“/ndn/UA/maps”等。
在本发明实施例中,第一偏移地址指向的记录可以为记录表中的记录,例如,第一偏移地址可以为记录表中的各个记录的存储空间的地址标识。当节点接收到第一ICN包后,通过获取第一ICN包对应的第一偏移地址,根据第一偏移地址查询记录表中的记录,就可以获悉第一ICN包对应的第二ICN包的相关信息,从而可以提高节点的检索效率。
在记录表的一种实施方式的示例中,若第一ICN包为Interest包,第二ICN包为该Interest包请求的Data包,则第一ICN包对应的第一偏移地址指向的记录可以用于在本地存储有第二ICN包时存储第二ICN包的存储地址。举例来说,Interest1对应的第一偏移地址可以为偏移地址11,Interest2对应的第一偏移地址可以为偏移地址12,Interest3对应的第一偏移地址可以为偏移地址13,Interest1请求的Data包为Data1,Interest2请求的Data包为Data2,Interest3请求的Data包为Data3。表1为记录表的示例1。
表1
Figure PCTCN2019081204-appb-000001
Figure PCTCN2019081204-appb-000002
其中,偏移地址11指向的记录中可以存储有Data1的存储地址,偏移地址12指向的记录中可以存储有Data2的存储地址,由于本节点当前未存储有Interest3对应的Data3,因此偏移地址13指向的记录中当前可能未存储有Data3的存储地址,在本发明其他实施例中,当本节点接收到Data3并在CS中缓存Data3时,可以将Data3在CS中的存储地址存储在记录表中偏移地址13指向的记录中。采用这种实施方式,在接收到Interest包时可以避免重复检索带来的问题,提高节点的检索效率。
在记录表的另一种实施方式的示例中,若第一ICN包为Data包,第二ICN包为请求第一ICN包的Interest包,则第一偏移地址指向的记录可以用于在本地存储有第二ICN包时存储第二ICN包的转发信息。举例来说,Data1对应的第一偏移地址可以为偏移地址21,Data2对应的第一偏移地址可以为偏移地址22,Data3对应的第一偏移地址可以为偏移地址23,请求Data1的Interest包为Interest1,请求Data2的Interest包为Interest2,请求Data3的Interest包为Interest3。表2为记录表的示例2。
表2
偏移地址 Interest包的转发信息
偏移地址21 Interest1的转发信息
偏移地址22 Interest2的转发信息
偏移地址23 -
其中,偏移地址21指向的记录中存储有Interest1的转发信息,偏移地址22指向的记录中存储有Interest2的转发信息,由于,因此,偏移地址23指向的记录中未存储有Interest3的转发信息,可以表示节点当前未接收到Interest3。在本发明其他实施例中,当本节点接收到Interest3时,可以将Interest3的转发信息存储在记录表中偏移地址13指向的记录中。采用这种实施方式,在接收到Data包时可以避免重复检索带来的问题,提高节点的检索效率。
在本发明其他实施例中,第一ICN包对应的第一偏移地址与第二ICN包对应的第二偏移地址相同可以相同。在第一ICN包对应的第一偏移地址与第二ICN包对应的第二偏移地址相同时,第一ICN包对应的第一偏移地址指向的记录实际上还可以用于在本地存储所述第一ICN包后存储所述第一ICN包的存储地址或所述第一ICN包的转发信息。举 例来说,记录表还可以采用以下实施方式。
当第一ICN包为Interest包,第二ICN包为Data包时,第一偏移地址指向的记录可以用于在本地存储有第二ICN包时存储第二ICN包的存储地址,以及,用于在本地存储有第一ICN包时存储第一ICN包的转发信息。
当第一ICN包为Data包,第二ICN包为Interest包时,第一偏移地址指向的记录可以用于在本地存储有第二ICN包时存储第二ICN包的转发信息,以及,用于在本地存储有第一ICN包时存储第一ICN包的存储地址。
示例性地,Interest1和Data1可以对应相同的第一偏移地址,即偏移地址11,Interest2和Data2可以对应相同的第一偏移地址,即偏移地址12,Interest3和Data3可以对应相同的第一偏移地址,即偏移地址13。表3为记录表的示例3,在当前未存储有Data2,并且也未存储Interest3的转发信息时,记录表所记录的内容可以如表3所示。
表3
偏移地址 Interest包的转发信息 Data包在CS中的存储地址
偏移地址11 Interest1的转发信息 Data1的存储地址
偏移地址12 Interest2的转发信息 -
偏移地址13 - Data3的存储地址
需要说明的是,在如表3所示的记录表中,Interest包对应的Data包的相关信息均存储在Interest包对应的偏移地址指向的记录中,同时,Data包对应的Interest包的相关信息也均存储在Data包对应的偏移地址指向的记录中。因此,节点在接收到Interest包或Data包任一种第一ICN包时,可以通过检索同一记录表获得对应的第二ICN包的相关信息,如转发信息、存储地址或者是否存储第二ICN包等。采用这种实施方式,在接收到Interest包和Data包时均可以避免重复检索带来的问题,提高节点的检索效率。
在本发明其他实施例中,在获取第一偏移地址之后,本发明实施例的步骤还可以包括:将所述第一ICN包的转发信息或者存储地址写入所述第一偏移地址指向的记录。
举例来说,上述查询第一偏移地址指向的记录,根据查询结果进行数据处理,还可以包括:
在所述第一ICN包为Interest包时,若所述第一偏移地址指向的记录中未存储有所述第二ICN包的存储地址,则更新所述第一偏移地址指向的记录中存储的所述第一ICN包的转发信息;和/或,
在所述第一ICN包为Data包时,若所述第一偏移地址指向的记录中存储有所述第二ICN包的转发信息,则缓存所述第一ICN包,并将所述第一ICN包的存储地址写入所述第一偏移地址指向的记录。
在本发明实施例中,可以采用上述两种获取第一偏移地址的实施方式的组合作为获取第一ICN包对应的第一偏移地址的又一种实施方式。采用上述获取第一偏移地址的实施方式的组合的实施方式来获取第一ICN包对应的第一偏移地址,可以确保第一ICN包与第二ICN包对应相同的偏移地址。也就是说,根据上述组合方式确定的第一ICN包对应的偏移地址与第一ICN包对应的第二ICN包所对应的第二偏移地址。
在本发明实施例中,采用上述示例的组合来确定第一偏移地址,由于第一ICN包和第一ICN包对应的第二ICN包对应相同的第一偏移地址,因此,节点在接收到Interest包或Data包任一种第一ICN包时,可以通过检索同一记录表获得对应的第二ICN包。
在本发明其他实施例中,在获取第一ICN包对应的第一偏移地址,并将第一ICN包的转发信息或者存储地址存入第一偏移地址指向的记录后,所述方法还可以包括以下步骤:
获取第三ICN包对应的第三偏移地址;
查询所述第三偏移地址指向的记录,根据查询结果进行数据处理;
其中,在所述第三偏移地址与所述第一偏移地址相同时,所述查询所述第三偏移地址指向的记录,根据查询结果进行数据处理,可以包括:
若所述第一ICN为Interest包,所述第三ICN包为所述第一ICN请求的Data包,查询到所述第三偏移地址指向的记录中存储有所述第一ICN包的转发信息,并根据查询到的所述第一ICN包的转发信息,回传所述第三ICN包;
若所述第一ICN为Data包,所述第三ICN包为请求所述第一ICN请求的Interest包,查询到所述第一偏移地址指向的记录中存储有所述第一ICN包的存储地址,从查询到的所述第一ICN包的存储地址所指向的存储空间中读取所述第一ICN包,并根据第三ICN包的转发信息,回传读取到的所述第一ICN包
在本发明其他实施例中,步骤S301至步骤S302的方法可以由节点中的片外存储器执行,相关技术方案细节可参见其他实施例中的描述。
不仅如此,本发明实施例提供的技术方案,在第一偏移地址指向的记录用于在本地存储有第一ICN包对应的第二ICN包时存储第二ICN包的存储地址或第二ICN包的转发信息,并同时用于在本地存储第一ICN包后存储第一ICN包的存储地址或第一ICN包的转 发信息,可以使得在接收到Interest包和Data包时均可以避免ICN中的节点重复检索带来的问题,进而提高节点的检索效率。
实施例二
在上述实施例所示任一方法的基础上,本发明实施例还提供获取第一ICN包对应的第一偏移地址的一种实施方式。在本发明实施例中,还可以利用预设的定位函数,来获取第一ICN包对应的第一偏移地址。其中,定位函数可以用于确定输入的ICN包在索引单元中对应的标志位的位置。
举例来说,获取第一ICN包对应的第一偏移地址的步骤可以包括:
(1)根据定位函数,确定第一ICN包在索引单元中对应的标志位的位置。
(2)根据第一ICN包对应的标志位的位置,确定第一ICN包对应的第一偏移地址。
示例性的,定位函数可以为K个哈希函数,索引单元可以包括M个标志位,节点在接收到第一ICN包后,将第一ICN包的标识分别输入K个定位函数,可得到K个位置。则第一偏移地址可以为一个M位的地址,其中,根据第一ICN包的标识得到的K个位置的标志位的值均设置为1,除K个位置之外的标志位的值设置为0。
例如,K为3,M为6时,第一ICN包对应的标志位可以为2、4、5。则第一偏移地址可以为010110,其中,第2、4、5位为1,第1、3、6位为0。
在本发明其他实施例中,索引单元中的标志位的值可以用于表示本地是否存储有标志位对应的Interest包和/或Data包。
实施例三
本发明实施例还提供一种ICN节点的结构。该结构可用于执行上述任一实施例提供的数据处理方法。图4A为本发明实施例节点的结构示意图一。其中,节点中可以设置整合压缩型兴趣缓存400(Pending Interest Table and Content Store via Compressed Mapping Bloom filter,CMaPIT&CS),CMaPIT&CS可以是具有处理能力的存储器,CMaPIT&CS也可以称为联合存储结构,其中包括片内存储单元41(On-chip memory)和片外存储单元(off-chip memory)42。在本发明其他实施例中,片内存储单元41可以使用高速存储器,片外存储单元可以使用低速存储器。
在本发明实施例中,片内存储单元41上可以部署一个压缩型可定位布隆过滤器 (Compressed Mapping Bloom filter,CoMBF)411来实现数据检索及索引,压缩型可定位布隆过滤器中存储的数据也可以称为索引单元。CoMBF 411可以由两部分组成:一个包含m比特的压缩布隆过滤器(Compressed Bloom filter)4111,以及,一个含有j比特的定位数组(Mapping Array,MA)4112,其中,MA 4112与Compressed Bloom filter 4111的结构可以相同,都可以采用比特数组的形式。在本发明其他实施例中,CoMBF也可以由布隆滤波器(Bloom filter)4113、压缩单元(Compresses Unit)和MA 4112三部分组成,图4B为本发明实施例节点的结构示意图二。其中,压缩单元可以用于实现对标志位的感知压缩。
在本发明实施例中,片外存储单元42上可以部署一个与CoMBF 4111对应的计数布隆过滤器(counting bloom filter,CBF)421数据结构,以实现数据的更新和删除。另外,片外存储单元42上还可以部署一个包存储器(Packet Store)422来存放PIT的转发信息以及Data包在CS存储器中的存放位置,以实现PIT表索引结构与CS存储器索引结构的整合。在本发明其他实施例中,Packet Store可以为静态存储器。在本发明其他实施例中,Packet Store 222可以存储PIT 4221和CS 4222。
在本发明实施例中,Packet Store可以用于存储PIT和CS中的数据,第一偏移地址指向的记录可以为PIT中的记录。
在本发明实施例中,CoMBF 411可以表示一个含有个元素的集合,其中,用于实现元素检索的基本功能,即确定一个数据元素是否在CoMBF所表示的数据集合中。同时,Compressed Bloom filter 4111的数据压缩功能,可有效降低网络中的数据传输量。通过在网络中传输Compressed Bloom filter的比特数组,可以使得CoMBF 411具备网络数据传输、数据共享功能。
在本发明其他实施例中,当一个Interest包到达转发平面时,可以首先将Interest包的名称输入CMaPIT&CS。然后在CoMBF中对Interest包的名称进行精确字符串匹配。如果在CoMBF中有匹配条目,则根据CoMBF输出的偏移地址,访问Packet Store。随后,检查Packet Store中相应记录是否记载了指向CS存储器的指针。如果有指向CS存储器的指针,说明在CS中包含与Interest包对应的Data包,则读取Data包即可。如果没有指向CS存储器的指针,则更新Packet Store中该记录的Interest包转发信息,等待Data包的到来。
当Data包到达转发平面时,首先将Data包的名称输入CMaPIT&CS。随后,在CoMBF中对Data包的名称进行精确字符串匹配操作。如果在CoMBF中有匹配条目,则根据 CoMBF输出的偏移地址访问Packet Store,读取相应Interest包的转发信息,回传Data包。同时,在Packet Store中记录Data包在CS存储器中的存储位置。如果在CoMBF中没有匹配条目,则直接丢弃该Data包。
实施例四
在上述实施例所示任一数据处理方法的基础上,本发明实施例还提供一种数据处理方法,图5为本发明实施例数据处理方法的交互流程示意图一。如图所示,本发明实施例的执行主体可以为片内存储单元和片外存储单元,本发明实施例的步骤可以包括:
步骤S501,片内存储单元接收第一ICN包。
其中,该第一ICN包可以是Interest包或者Data包。
步骤S502,片内存储单元获取第一ICN包对应的第一偏移地址。
其中,获取第一偏移地址可以采用上述实施例所述的任一获取方式。
步骤S503,片内存储单元向片外存储单元发送第一ICN包对应的第一偏移地址。
步骤S504,片外存储单元查询第一偏移地址指向的记录。
步骤S505,片外存储单元判断第一偏移地址指向的记录中是否存在第一ICN包对应的第二ICN包的相关信息,若存在,执行S506。
步骤S506,片外存储单元发送第二ICN包的相关信息。
步骤S507,片内存储单元根据第一ICN包和第二ICN包的相关信息进行数据处理。
本发明实施例的其他技术方案细节和技术效果可参见其他实施例中的描述。
在本发明其他实施例中,在步骤S502之前,还可以包括片内存储单元判断是否存在匹配的索引条目,若存在,再执行获取第一ICN包对应的第一偏移地址的步骤。图6为本发明实施例数据处理方法的交互流程示意图二。如图6所示,本发明实施例的步骤可以包括:
步骤S601,片内存储单元接收第一ICN包。
步骤S602,片内存储单元判断是否存在匹配的索引条目,若存在,执行S603。
其中,本发明实施例提供两种判断是否存在匹配的索引条目的实施方式。
在本发明实施例提供的第一种判断是否存在匹配的索引条目的实施方式中,若所述第 一ICN包为Data包,所述第二ICN包为Interest包,则所述判断是否存在与所述第一ICN包的标识相匹配的索引条目,可以包括:根据定位函数,确定所述第一ICN包在索引单元中对应的标志位的位置,其中,所述索引单元中的标志位的值用于表示本地是否存储有标志位对应的Data包;查询所述第一ICN包对应的标志位的值;若所述第一ICN包对应的标志位的值为有效,确定存在与所述第一ICN包的标识相匹配的索引条目。
在本发明实施例提供的第一种判断是否存在匹配的索引条目的实施方式中,若所述第一ICN包为Interest包,所述第二ICN包为所述第一ICN包所请求的Data包,则上述判断是否存在与所述第一ICN包的标识相匹配的索引条目,可以包括:根据定位函数,确定所述第一ICN包对应的所述第二ICN包在索引单元中对应的标志位的位置;查询所述第二ICN包对应的标志位的值;若所述第二ICN包对应的标志位的值为有效,确定存在与所述第一ICN包的标识相匹配的索引条目。
在本发明实施例提供的第二种判断是否存在匹配的索引条目的实施方式中,可以采用索引条目表来确定是否存在ICN包对应的索引条目。
表4为本发明实施例提供的索引条目表的一示例。其中,每条索引条目可以包括多个属性,如索引条目的标识、索引条目对应的Interest包、本地是否存储有索引条目对应的Interest包、索引条目对应的Data包,本地是否存储有索引条目对应的Data包等属性。其中,索引条目的标识可以为索引条目的编号,也可以是索引条目对应的Data包与Interest包的组合。需要说明的是,在索引条目表中,第一ICN包和第一ICN包对应的第二ICN包可以对应相同标识的索引条目。也就是说,Data包和请求该Data包的Interest包可以对应相同标识的索引条目。
表4
Figure PCTCN2019081204-appb-000003
如表4所示,Data1和请求Data1的Interest1可以对应索引条目1,Data2和请求Data2的Interest2可以对应索引条目2,Data3和请求Data3的Interest3可以对应索引条目3,节点存储的Interest包有Interest1、Interest2,节点存储的Data包有Data2和Data3。
基于表4所示例的索引条目表,上述判断是否存在与所述第一ICN包的标识相匹配的索引条目,可以包括:
若所述第一ICN包为Data包,所述第二ICN包为Interest包,判断第一ICN包对应的索引条目是否表示本地存储有第二ICN包,即判断“本地是否存储有索引条目对应的Interest包”属性是否为是,若是,则确定存在与第一ICN包的标识相匹配的索引条目。
若所述第一ICN包为Interest包,所述第二ICN包为所述第一ICN包所请求的Data包,判断第一ICN包对应的索引条目是否表示本地存储有第二ICN包,即判断“本地是否存储有索引条目对应的Data包”属性是否为是,若是,则确定存在与第一ICN包的标识相匹配的索引条目。
在本发明其他实施例中,上述“本地是否存储有索引条目对应的Data包”属性和“本地是否存储有索引条目对应的Interest包”属性的属性值可以采用数值等形式表示,例如,可以采用“1”或者“有效”表示“是”,“0”或者“无效”表示“否”。本发明实施例对此不作限制。
步骤S603,片内存储单元获取第一ICN包对应的第一偏移地址。
步骤S604,片内存储单元向片外存储单元发送第一ICN包对应的第一偏移地址。
步骤S605,片外存储单元查询第一偏移地址指向的记录。
步骤S606,片外存储单元判断第一偏移地址指向的记录中是否存在第一ICN包对应的第二ICN包的相关信息,若存在,执行S607。
步骤S607,片外存储单元向片内存储单元发送第二ICN包的相关信息。
步骤S608,片内存储单元根据第一ICN包和第二ICN包的相关信息进行数据处理。
在本发明实施例中,需要说明的是,上述步骤S602相当于是步骤S603中获取第一ICN包对应的第一偏移地址的一种触发条件。即,可以在存在第一ICN包的标识相匹配的索引条目时执行获取第一ICN包对应的第一偏移地址的步骤。
索引条目可以是这样一种数据:(1)若本地存储有第一ICN包,则第一ICN包对应的索引条目记录“本地有ICN1”,(2)若本地存储有第二ICN包,则第二ICN包对应的索引条目记录“本地有ICN2”,(3)第一ICN包和第二ICN包对应的索引条目是同一个索引条目。
在本发明其他实施例中,ICN包对应的索引条目可以根据ICN包的标识确定,例如,根据ICN包的标识确定的标志位的位置作为索引条目表中索引条目的标识。
示例性的,索引条目表的结构可以与偏移地址指向的记录表的结构相似。
在本发明实施例中,步骤S601、S603至S608与步骤S501至S507类似。
本发明实施例还提供一种数据处理方法,其中,第一ICN包可以为Interest1包,第一ICN包对应的第二ICN包可以为Data1,图7A为本发明实施例数据处理方法的交互流程示意图三。如图7A所示,本发明实施例提供的数据处理方法的步骤可以包括:
步骤S7101,片内存储单元接收Interest1。
步骤S7102,片内存储单元判断是否存在匹配的索引条目,若存在,执行S7103。
其中,该步骤可参考S602的说明。
步骤S7103,片内存储单元获取Interest1对应的偏移地址11。
步骤S7104,片内存储单元向片外存储单元发送Interest1对应的偏移地址11。
步骤S7105,片外存储单元查询偏移地址11指向的记录。
步骤S7106,片外存储单元判断偏移地址11指向的记录中是否存在Interest1请求的Data1的存储地址,若存在,读取Data1,执行S7107,若不存在,执行S7109。
步骤S7107,片外存储单元发送Data1。
步骤S7108,片内存储单元根据Interest1的转发信息,回传Data1。
步骤S7109,片外存储单元将Interest1的转发信息写入偏移地址11指向的记录中。
本发明实施例的其他技术方案细节和技术效果可参见其他实施例中的描述。
本发明实施例还提供一种数据处理方法,其中,第一ICN包可以为Data1包,第一ICN包对应的第二ICN包可以为Interest1,图7B为本发明实施例数据处理方法的交互流程示意图四。如图7B所示,本发明实施例提供的数据处理方法的步骤可以包括:
步骤S7201,片内存储单元接收Data1。
步骤S7202,片内存储单元判断是否存在匹配的索引条目,若存在,执行S7203,若不存在,执行S7210。
其中,该步骤可参考S602的说明。
步骤S7203,片内存储单元获取Data1对应的偏移地址21。
步骤S7204,片内存储单元向片外存储单元发送Data1对应的偏移地址21。
步骤S7205,片外存储单元查询偏移地址21指向的记录。
步骤S7206,片外存储单元判断偏移地址21指向的记录中是否存在请求Data1的Interest1的转发信息,若存在,读取Interest1的转发信息,执行S7207和S7209,若不存在,执行S7210。
步骤S7207,片外存储单元向片内存储单元发送Interest1的转发信息。
步骤S7208,片内存储单元根据Interes1的转发信息,回传Data1。
步骤S7209,片外存储单元缓存Data1,并将Data1的存储地址写入偏移地址21指向的记录中
步骤S7209,片外存储单元发送用于指示不存在Interest1的转发信息的指示信息。
步骤S7210,片内存储单元丢弃Data1。
本发明实施例的其他技术方案细节和技术效果可参见其他实施例中的描述。
在图7A所示方法的基础上,本发明实施例还提供一种数据处理方法,图7C为本发明实施例数据处理方法的交互流程示意图五。如图7C所示,本发明实施例的步骤可以包括:
步骤S7301,片内存储单元接收Data1。
在本发明实施例中,该步骤可以在S7109之后执行。
步骤S7302,片内存储单元判断是否存在匹配的索引条目,若存在,执行S7303,若不存在,执行S7310。
步骤S7303,片内存储单元获取Data1对应的偏移地址11。
步骤S7304,片内存储单元发送Data1对应的偏移地址11。
步骤S7305,片外存储单元查询偏移地址11指向的记录。
步骤S7306,片外存储单元确定偏移地址11指向的记录中是否存在请求Data1的Interest1的转发信息,读取Interest1的转发信息,执行S7307和S7309。
步骤S7307,片外存储单元发送Interest1的转发信息。
步骤S7308,片内存储单元根据Interes1的转发信息,回传Data1。
步骤S7309,片外存储单元缓存Data1,并将Data1的存储地址写入偏移地址21指向的记录中。
步骤S7310,片内存储单元丢弃Data1。
本发明实施例的其他技术方案细节和技术效果可参见其他实施例中的描述。
实施例五
本发明实施例还提供一种数据处理方法,可以用于快速确定本地存储有哪些Data包或者Interest包,从而可以使得节点能够快速获悉本地存储的Data包或者Interest包,进而提高节点的检索效率。该实施方式还可以用于在ICN网络中共享本节点上存储的数据。
图8为本发明实施例数据处理方法的流程示意图二。如图8所示,本发明实施例的步骤可以包括:
步骤S801,获取第一ICN包。
其中,第一ICN包为兴趣Interest包或数据Data包。
步骤S802,根据定位函数,确定第一ICN包在索引单元中对应的标志位的位置。
步骤S803,根据第一ICN包对应的标志位的位置,查询或者设置第一ICN包对应的标志位的值。
其中,索引单元中的标志位的值用于表示本地是否存储有标志位对应的Interest包和/或Data包。
在本发明实施例中,当节点在接收到ICN包并存储了ICN包的相关信息之后,可以将索引单元中该ICN包对应的标志位设置为有效。举例来说,上述根据第一ICN包对应的标志位的位置,查询或者设置第一ICN包对应的标志位的值,可以包括:在本地存储有第一ICN包时,将第一ICN包对应的标志位的值设置为有效。示例性的,可以在S7109、S7209或者S7309之后将ICN包对应的标志位的值设置为有效。在本发明其他实施例中,当节点在启用时已经存储有一些Data数据时,可以在启用节点时就设置这些Data包对应的标志位为有效。
在本发明实施例中,定位函数可以用于确定任一ICN包在索引单元中对应的标志位的位置。示例性的,可以根据ICN包的标识确定ICN包在索引单元中对应的标志位的位置。例如,当ICN包为Interest包时,可以根据Interest包所请求的Data包的名称确定该 Interest包在索引单元中对应的标志位的位置。当ICN包为Data包时,可以根据Data包的名称确定该Data包在索引单元中对应的标志位的位置。举例来说,定位函数可以为K个哈希函数,将ICN包的标识分别输入K个哈希函数,可以得到K个结果,示例性的,K个结果可以为K个“1”,又如,K个结果可以是1个“0”和K-1个“1”,再如,K个结果可以是1个“10”、1个“11”和K-2个“00”等。在本发明其他实施例中,K个结果可以按照对应的K个定位函数的顺序排列为M位的二进制数,该M位的二进制数可以作为指向记录表中的偏移地址。
在本发明实施例中,索引单元例如可以为比特数组,其中,一个ICN包可以对应索引单元中的一个比特位或者多个比特位,则ICN包在索引单元中对应的标志位即一个或者多个比特位。示例性的,可以将ICN包对应的比特位的值为1时,确定ICN对应的标志位为有效,可以将ICN包对应的比特位的值不全为0时,确定ICN包对应的标志位为无效。
在本发明其他实施例中,为了减少标志位的数量,以减小索引单元的存储空间以及在网络共享时需要传输的索引单元的传输数据量,还可以采用压缩标志位作为各个ICN包对应的标志位的实施方式。
举例来说,上述根据定位函数,确定所述第一ICN包在索引单元中对应的标志位的位置,还可以采用以下步骤实施:首先根据所述定位函数,确定所述第一ICN包在所述索引单元中映射的非压缩标志位的位置;然后对所述第一ICN包对应的非压缩标志位的位置进行压缩感知,得到所述第一ICN包对应的压缩标志位的位置;再将所述第一ICN包对应的压缩标志位的位置作为所述第一ICN对应的标志位的位置;其中,索引单元中的非压缩标志位的总数大于所述索引单元中压缩标志位的总数。在本发明其他实施例中,非压缩标志位的总数可以为M位,例如32位,压缩标志位的总数可以为N位,例如18位。
在本发明实施例中,为了向ICN网络中的其他节点共享本节点中存储了哪些Data包或者存储了哪些Interest包的信息,在根据所述第一ICN包对应的标志位的位置,查询或者设置所述第一ICN包对应的标志位的值之后,所述方法还可以包括:
向其他节点发送索引单元。
在本发明其他实施例中,标志位可以存储在片内存储单元中,示例性的,可以将片内存储单元的Compressed Bloom filter中的比特数组的各个比特位作为节点存储的ICN包所对应的标志位。则上述向其他节点发送索引单元可以包括:向其他节点发送Compressed  Bloom filter中的比特数组。也就是说,在转发平面需要共享CS中的缓存信息时,向网络中传输片内存储单元中Compressed Bloom filter的比特数组即可完成信息的共享。
在本发明实施例中,上述根据定位函数,确定第一ICN包在索引单元中对应的标志位的位置,可以采用以下步骤实施:
若第一ICN包为第一Data包,根据第一Data包的标识和定位函数,确定第一ICN包对应的标志位的位置;
若第一ICN包为第二Interest包,第二Interest包所请求的Data包为第二Data包,根据第二Data包的标识和所述定位函数,确定第一ICN包对应的标志位的位置。
在本发明其他实施例中,在上述根据所述第一ICN包对应的标志位的位置,查询或者设置所述第一ICN包对应的标志位的值之后,所述方法还可以包括:
根据所述第一ICN包对应的标志位的位置,确定所述第一ICN包对应的第一偏移地址,其中,所述第一偏移地址指向的记录用于存储所述第一ICN包对应的第二ICN包的转发信息或者存储地址;之后,查询所述第一ICN包对应的第一偏移地址指向的记录,根据查询结果进行数据处理。其中,查询第一ICN包对应的第一偏移地址指向的记录,根据查询结果进行数据处理的步骤的实施方式可以参见本发明其他实施例中的相关描述。
在本发明其他实施例中,在上述根据第一ICN包对应的标志位的位置,确定第一ICN包对应的第一偏移地址之前,所述方法还可以包括:
确定第一ICN包对应的第二ICN包的标志位是否为有效;
若第一ICN包对应的第二ICN包的标志位为有效,执行根据第一ICN包对应的标志位的位置,确定第一ICN包对应的第一偏移地址的步骤。
需要说明的是,当节点接收到第一ICN包之后,可以通过查询索引单元中第二ICN包对应的标志位的值,先初步确认节点是否可能存储有第二ICN包,若可能存在第二ICN包,再根据第二ICN包对应的标志位的值确定偏移地址,偏移地址指向的记录表存储在片外存储单元中,查询偏移地址指向的记录,进而根据查询结果进行数据处理。
通过上述算法描述可以发现,使用CMaPIT&CS存储结构可有效简化名称数据的检索过程,降低片内存储单元中的索引结构的检索频率以及片外存储单元中的慢速存储器的访问次数。同时还可以清晰地观察到,在CMaPIT&CS中,无论Interest包还是Data包,检索时间复杂度都由CoMBF决定,其时间复杂度为。
在上述实施例的基础上,本发明实施例还提供一种数据处理方法,图9为本发明实施例数据处理方法的流程示意图三。在上述根据定位函数,确定第一ICN包在索引单元中对应的标志位的位置之后,本发明实施例的方法还可以包括以下步骤:
步骤S901,获取第一ICN包。
其中,该步骤与S801类似。
步骤S902,根据定位函数,确定第一ICN包在索引单元中对应的标志位的位置。
其中,该步骤与S802类似。
步骤S903,根据第一ICN包对应的标志位的位置,设置第一ICN包对应的标志位的值。
其中,该步骤与S803类似。
步骤S904,获取第三ICN包。
其中,第三ICN包可以是Interest包也可以是Data包。
步骤S905,根据定位函数,确定第三ICN包在索引单元中对应的标志位的位置。
在本发明实施例中,定位函数可以为K个哈希函数,则上述确定第三ICN包在索引单元中对应的标志位的位置可以采用以下实施方式。举例来说,可以将ICN包的标识输入K个哈希函数,将K个哈希函数的计算结果按照K个哈希函数的顺序排成二进制数,将二进制数中比特位的值为1的比特位的位置作为ICN包在索引单元中对应的标志位的位置。
步骤S906,查询第三ICN包对应的标志位的值。
在本发明实施例中,在上述根据定位函数,确定第三ICN包在索引单元中对应的标志位的位置之后,本发明实施例的方法还可以包括:
步骤S907,根据第三ICN包对应的标志位的位置,确定第三ICN包对应的第二偏移地址。
步骤S908,查询第三ICN包对应的第二偏移地址指向的记录,根据查询结果进行数据处理。
其中,第二偏移地址指向的记录可用于存储第三ICN包对应的第四ICN包的转发信息或者存储地址。
在本发明实施例中,若第三ICN包为Data包,上述根据定位函数,确定第三ICN包在索引单元中对应的标志位,可以包括:根据定位函数和第三ICN包的标识,确定第三ICN包对应的标志位;对应地,上述查询第三ICN包对应的标志位的值,可以包括:查询索引单元中第三ICN包对应的标志位的位置的值是否为有效;若为有效,根据第三ICN包的标识,获取第三ICN包对应的第二偏移地址;进一步地,若第二偏移地址所指向的记录中存储有请求所述第三ICN包的Interest包的转发信息,根据请求所述第三ICN包的Interest包的转发信息,回传所述第三ICN包。
在本发明实施例中,若第三ICN包为Interest包;上述获取第二偏移地址,可以包括:根据定位函数和第三ICN包请求的Data包的标识,确定第三ICN包对应的标志位;对应地,上述查询第三ICN包对应的标志位的值,可以包括:查询索引单元中第三ICN包对应的标志位的位置的值是否为有效;若为有效,根据第三ICN包的标识,获取第三ICN包对应的第二偏移地址;进一步地,若第二偏移地址所指向的记录中存储有第三ICN包请求的Data包的存储地址,从第三ICN包请求的Data包的存储地址中读取第三ICN包请求的Data包,并根据第三ICN包的转发信息,回传第三ICN包请求的Data包。
需要说明的是,本实施例中与其它实施例中相同步骤或者概念的解释,可以参照其它实施例中的描述。本发明实施例的其他技术效果可参考其他实施例中的描述,此处不再赘述。
实施例六
下面对本发明实施例提供的数据处理方法进行举例说明。
在一示例中,在CMaPIT&CS存储结构中检索Interest包的处理过程可以如下所述:
在该存储结构中,设置K=3个哈希函数,CoMBF数据结构中的Bloom filter的大小被设置为32比特,Compressed Unit的大小被设置为18比特,同时Compressed Unit被均等的分为6份。与之相对应的定位数组MA被设置为6比特,也就是说,该存储结构可在Packet Store中存储26个元素。需要说明的是,压缩单元均等的分数与定位数组的比特位数需要相同。
在这个系统中,命名为/ndn/UA/videos和/ndn/UA/maps的两个Interest包依次输入存储结构。其中,每次Interest包输入前,定位数组MA都会被初始化为全0状态。需要说明的是,命名为/ndn/UA/videos和/ndn/UA/maps的两个Interest包表示的含义是,两个Interest包请求的Data包的名称分别为/ndn/UA/videos和/ndn/UA/maps。
当第一个Interest包输入时,首先将Interest包的名称/ndn/UA/videos输入CMaPIT&CS存储结构中,Bloom filter中的第6、14、20比特位被哈希映射,且这三个比特位均为1,即表示Interest包存在于该结构中。经过压缩感知,Compressed Unit的第2、4、5部分存在哈希映射,因此定位数组MA的第2、4、5比特位的数值将被设定为1,其他位置数值为0。最终得到定位数组MA的值为010110,即Interest包在Packet Store中的偏移地址为010110。随后,检查Packet Store的相应记录记载了指向CS存储器的指针,即存在第一个Interest包对应的Data包,最后读取该Data包。需要说明的是,Packet Store的相应记录是指偏移地址指向的记录表中的记录。
同理,命名为/ndn/UA/maps的Interest包也存在于该存储结构中,其在Packet Store中的偏移地址为110100。随后检查Packet Store的相应记录没有记载指向CS存储器的指针,即不存在第二个Interest包对应的Data包,最后更新该记录的Interest包的转发信息,等待Data包的到来。
在另一示例中,在CMaPIT&CS存储结构中检索Data包的处理过程可以如下所述:
在该存储结构中,使用K=3个哈希函数,CoMBF数据结构中的Bloom filter的大小被设置为32比特,Compressed Unit的大小被设置为18比特,同时Compressed Unit被均等的分为6份。与之相对应的定位数组MA被设置为6比特,因此该存储结构可在Packet Store中存储26个元素。
在这个系统中,命名为/ndn/UA/maps和/TJU/videos的两个Data包依次输入。每次Data包输入前,定位数组MA都会被初始化为全0状态。需要说明的是,命名为/ndn/UA/maps和/TJU/videos的两个Data包表示的含义是,这两个Data包的名称分别为/ndn/UA/maps和/TJU/videos。
当第一个Data包输入时,首先将Data包的名称/ndn/UA/maps输入CMaPIT&CS存储结构中,Bloom filter中的第2、5、16比特位被哈希映射,且这三个比特位均为1,即表示Data包存在于该结构中。经过压缩感知,Compressed Unit的第1、2、4部分存在哈希映射,因此定位数组MA的第1、2、4比特位的数值将被设定为1,其他位置数值为0。最终得到定位数组MA的值为110100,即Data包在Packet Store中的偏移地址为110100。随后,检查Packet Store的相应记录记载了相应Interest包的转发信息,根据该转发信息回传该Data包。同时,在Packet Store中记录该Data包在CS存储器中的存储位置。同理,命名为/TJU/videos的Data包在Bloom filter中的第1、7、21比特位被哈希映射,但这三个比特位不全为1,即在CoMBF中没有匹配记录,因此直接丢弃该Data包。需要说 明的是,Packet Store的相应记录是指偏移地址指向的记录表中的记录。
需要说明的是,本实施例中与其它实施例中相同步骤或者概念的解释,可以参照其它实施例中的描述。本发明实施例的其他技术效果可参考其他实施例中的描述,此处不再赘述。
本发明实施例将PIT表与CS存储器索引整合在一起,即利用CoMBF构建统一的联合存储结构CMaPIT&CS,也可以称为索引结果。通过部署能够直接索引与共享数据的高效数据结构CoMBF,使得CMaPIT&CS能够减少转发平面在处理数据包时的检索次数,提高检索性能。同时,进一步降低转发平面的存储消耗,提高名称数据的检索速度,提高检索性能。
本发明实施例还提供一种数据处理设备1000。图10为本发明实施例数据处理设备的结构示意图。如图10所示,该设备包括处理器1001和用于存储能够在处理器上运行的计算机程序的存储器1002。
其中,处理器1001用于运行所述计算机程序时,执行图3至图7C任一所示数据处理方法的步骤,和/或,图8至图9任一所示数据处理方法的步骤。
在本发明实施例中,数据处理设备1000还可以包括接口1003和总线1004等,其中,接口1003可以用于接收或者发送ICN包或者发送索引单元,总线1004用于处理器1001、存储器1002和接口1003之间数据交互。
在本发明实施例中,数据处理设备可以位于ICN网络中的节点上,示例性的,可以位于中间节点,也可以位于终端节点。在本发明其他实施例中,数据处理设备可以是路由器或者终端。
需要说明的是,本实施例中与其它实施例中相同步骤或者概念的解释,可以参照其它实施例中的描述,此处不再赘述。本发明实施例的其他技术效果可参考其他实施例中的描述,此处不再赘述。
本发明实施例还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有数据处理程序,所述数据处理程序被处理器执行时实现上述实施例所示数据处理方法的步骤。
需要说明的是,本实施例中与其它实施例中相同步骤或者概念的解释,可以参照其它实施例中的描述,此处不再赘述。本发明实施例的其他技术效果可参考其他实施例中的描 述,此处不再赘述。
在实际应用中,上述实施例中涉及的接收单元、获取单元、处理单元和发送单元均可由位于无线数据发送设备中的中央处理器(Central Processing Unit,CPU)、微处理器(Micro Processor Unit,MPU)、数字信号处理器(Digital Signal Processor,DSP)或现场可编程门阵列(Field Programmable Gate Array,FPGA)等实现。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用硬件实施例、软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。

Claims (24)

  1. 一种数据处理方法,其中,应用于信息中心网络ICN中的节点,所述方法包括:
    获取第一ICN包对应的第一偏移地址;
    查询所述第一偏移地址指向的记录,根据查询结果进行数据处理;
    其中,所述第一偏移地址指向的记录用于在本地存储有所述第一ICN包对应的第二ICN包时存储所述第二ICN包的存储地址或所述第二ICN包的转发信息。
  2. 根据权利要求1所述的方法,其中,
    若所述第一ICN包为兴趣Interest包,所述第一ICN对应的第二ICN包为所述第一ICN包请求的数据Data包,则所述第一偏移地址指向的记录用于在本地存储有所述第二ICN包时存储所述第二ICN包的存储地址;
    若所述第一ICN包为Data包,所述第一ICN对应的第二ICN包为请求所述第一ICN包的Interest包,则所述第一偏移地址指向的记录用于在本地存储有所述第二ICN包时存储所述第二ICN包的转发信息。
  3. 根据权利要求1所述的方法,其中,所述第一偏移地址指向的记录还用于在本地存储所述第一ICN包后存储所述第一ICN包的存储地址或所述第一ICN包的转发信息;
    所述方法还包括:将所述第一ICN包的转发信息或者存储地址写入所述第一偏移地址指向的记录。
  4. 根据权利要求1所述的方法,其中,所述查询所述第一偏移地址指向的记录,根据查询结果进行数据处理,包括:
    若所述第一ICN包为Interest包,查询所述第一偏移地址指向的记录是否存储有所述第二ICN包存储地址,所述第二ICN包为所述第一ICN包请求的所述Data包;若所述第一偏移地址指向的记录中存储有所述第二ICN包的存储地址,从所述第二ICN包的存储地址指向的存储空间中读取所述第二ICN包,并根据所述第一ICN包的转发信息回传所述第二ICN包;
    若所述第一ICN包为Data包,查询所述第一偏移地址指向的记录是否存储有所述第二ICN包的转发信息,所述第二ICN包为请求所述第一ICN包请求的Interest包;若所述第一偏移地址指向的记录中存储有所述第二ICN包的转发信息,根据所述第二ICN包的转发信息,回传所述第一ICN包。
  5. 根据权利要求4所述的方法,其中,所述第二ICN包对应的第二偏移地址与所述 第一偏移地址相同,所述第一偏移地址指向的记录还用于在本地存储所述第一ICN包后存储所述第一ICN包的存储地址或所述第一ICN包的转发信息;
    则所述查询所述第一偏移地址指向的记录,根据查询结果进行数据处理,还包括:
    在所述第一ICN包为Interest包时,若所述第一偏移地址指向的记录中未存储有所述第二ICN包的存储地址,则更新所述第一偏移地址指向的记录中存储的所述第一ICN包的转发信息;
    在所述第一ICN包为Data包时,若所述第一偏移地址指向的记录中存储有所述第二ICN包的转发信息,则缓存所述第一ICN包,并将所述第一ICN包的存储地址写入所述第一偏移地址指向的记录。
  6. 根据权利要求3或5所述的方法,其中,
    获取第三ICN包对应的第三偏移地址;
    查询所述第三偏移地址指向的记录,根据查询结果进行数据处理;
    其中,在所述第三偏移地址与所述第一偏移地址相同时,所述查询所述第三偏移地址指向的记录,根据查询结果进行数据处理,包括:
    若所述第一ICN为Interest包,所述第三ICN包为所述第一ICN请求的Data包,查询到所述第三偏移地址指向的记录中存储有所述第一ICN包的转发信息,并根据查询到的所述第一ICN包的转发信息,回传所述第三ICN包;
    若所述第一ICN为Data包,所述第三ICN包为请求所述第一ICN请求的Interest包,查询到所述第一偏移地址指向的记录中存储有所述第一ICN包的存储地址,从查询到的所述第一ICN包的存储地址所指向的存储空间中读取所述第一ICN包,并根据第三ICN包的转发信息,回传读取到的所述第一ICN包。
  7. 根据权利要求1所述的方法,其中,所述获取所述第一ICN包对应的第一偏移地址,包括:
    若所述第一ICN包为Interest包,获取所述第一ICN包请求的第二ICN包的标识,根据所述第一ICN包请求的第二ICN包的标识获取所述第一偏移地址;
    若所述第一ICN包为Data包,获取所述第一ICN包的标识,根据所述第一ICN包的标识获取所述第一偏移地址。
  8. 根据权利要求1-5,7任一所述的方法,其中,所述获取第一ICN包对应的第一偏移地址,包括:
    根据定位函数,确定所述第一ICN包在索引单元中对应的标志位的位置;
    根据所述第一ICN包对应的标志位的位置,确定所述第一偏移地址;
    其中,所述索引单元中的标志位的值用于表示本地是否存储有标志位对应的Interest包和/或Data包。
  9. 根据权利要求1-5,7任一所述的方法,其中,在所述获取第一ICN包对应的第一偏移地址之前,包括:
    获取所述第一ICN包;
    判断是否存在与所述第一ICN包的标识相匹配的索引条目,所述索引条目用于记录本地是否存储有所述第一ICN包和/或所述第一ICN包对应的所述第二ICN包;
    若存在与所述第一ICN包的标识相匹配的索引条目,执行所述获取第一ICN包对应的第一偏移地址的步骤。
  10. 根据权利要求9所述的方法,其中,若所述第一ICN包为Data包,所述第二ICN包为Interest包,所述方法还包括:
    若不存在与所述第一ICN包的标识相匹配的索引条目,则丢弃所述第一ICN包。
  11. 根据权利要求9所述的方法,其中,若所述第一ICN包为Data包,所述第二ICN包为Interest包,则所述判断是否存在与所述第一ICN包的标识相匹配的索引条目,包括:
    根据定位函数,确定所述第一ICN包在索引单元中对应的标志位的位置,其中,所述索引单元中的标志位的值用于表示本地是否存储有标志位对应的Data包;
    查询所述第一ICN包对应的标志位的值;
    若所述第一ICN包对应的标志位的值为有效,确定存在与所述第一ICN包的标识相匹配的索引条目。
  12. 根据权利要求9所述的方法,其中,若所述第一ICN包为Interest包,所述第二ICN包为所述第一ICN包所请求的Data包,则所述判断是否存在与所述第一ICN包的标识相匹配的索引条目,包括:
    根据定位函数,确定所述第一ICN包对应的所述第二ICN包在索引单元中对应的标志位的位置;
    查询所述第二ICN包对应的标志位的值;
    若所述第二ICN包对应的标志位的值为有效,确定存在与所述第一ICN包的标识相 匹配的索引条目。
  13. 一种数据处理方法,其中,应用于信息中心网络ICN中的节点,所述方法包括:
    获取第一ICN包,所述第一ICN包为兴趣Interest包或数据Data包;
    根据定位函数,确定所述第一ICN包在索引单元中对应的标志位的位置;
    根据所述第一ICN包对应的标志位的位置,查询或者设置所述第一ICN包对应的标志位的值;
    其中,所述索引单元中的标志位的值用于表示本地是否存储有标志位对应的Interest包和/或Data包。
  14. 根据权利要求13所述的方法,其中,所述根据定位函数,确定所述第一ICN包在索引单元中对应的标志位的位置,包括:
    根据所述定位函数,确定所述第一ICN包在所述索引单元中映射的非压缩标志位的位置;
    对所述第一ICN包对应的非压缩标志位的位置进行压缩感知,得到所述第一ICN包对应的压缩标志位的位置;
    将所述第一ICN包对应的压缩标志位的位置作为所述第一ICN对应的标志位的位置;
    其中,所述索引单元中的非压缩标志位的总数大于所述索引单元中压缩标志位的总数。
  15. 根据权利要求13或14所述的方法,其中,所述根据所述第一ICN包对应的标志位的位置,设置所述第一ICN包对应的标志位的值,包括:在本地存储有所述第一ICN包时,将所述第一ICN包对应的标志位的值设置为有效;
    在将所述第一ICN包对应的标志位的值设置为有效之后,所述方法还包括:向其他节点发送所述索引单元。
  16. 根据权利要求13或14所述的方法,其中,所述根据定位函数,确定所述第一ICN包在索引单元中对应的标志位的位置,包括:
    若所述第一ICN包为第一Data包,根据所述第一Data包的标识和所述定位函数,确定所述第一ICN包对应的标志位的位置;
    若所述第一ICN包为第二Interest包,所述第二Interest包所请求的Data包为第二Data包,根据所述第二Data包的标识和所述定位函数,确定所述第一ICN包对应的标志位的位置。
  17. 根据权利要求13所述的方法,其中,在所述根据所述第一ICN包对应的标志位的位置,查询或者设置所述第一ICN包对应的标志位的值之后,所述方法还包括:
    根据所述第一ICN包对应的标志位的位置,确定所述第一ICN包对应的第一偏移地址,其中,所述第一偏移地址指向的记录用于存储所述第一ICN包对应的第二ICN包的转发信息或者存储地址;
    查询所述第一ICN包对应的第一偏移地址指向的记录,根据查询结果进行数据处理。
  18. 根据权利要求17所述的方法,其中,在所述根据所述第一ICN包对应的标志位的位置,确定所述第一ICN包对应的第一偏移地址之前,所述方法还包括:
    确定所述第一ICN包对应的第二ICN包的标志位是否为有效;
    若所述第一ICN包对应的第二ICN包的标志位为有效,执行根据所述第一ICN包对应的标志位的位置,确定所述第一ICN包对应的第一偏移地址的步骤。
  19. 根据权利要求17所述的方法,其中,在所述根据定位函数,确定所述第一ICN包在索引单元中对应的标志位的位置之后,所述方法还包括:
    获取第三ICN包;
    根据所述定位函数,确定所述第三ICN包在所述索引单元中对应的标志位的位置;
    查询所述第三ICN包对应的标志位的值。
  20. 根据权利要求19所述的方法,其中,在所述根据所述定位函数,确定所述第三ICN包在所述索引单元中对应的标志位的位置之后,所述方法还包括:
    根据所述第三ICN包对应的标志位的位置,确定所述第三ICN包对应的第二偏移地址,所述第二偏移地址指向的记录用于存储所述第三ICN包对应的第四ICN包的转发信息或者存储地址;
    查询所述第三ICN包对应的第二偏移地址指向的记录,根据查询结果进行数据处理。
  21. 根据权利要求13或14所述的方法,其中,所述定位函数为K个哈希函数,所述索引单元包括M个标志位,其中,M和K为大于或者等于1的整数,且M大于或者等于K;
    对于任一ICN包,所述根据定位函数,确定ICN包在索引单元中对应的标志位的值,包括:
    根据所述ICN包和所述定位函数,在所述索引单元的M个标志位中确定所述ICN包 对应的K个标志位的值。
  22. 根据权利要求21所述的方法,其中,在所述根据定位函数,确定所述第一ICN包在索引单元中对应的标志位的值之后,所述方法还包括:
    根据所述K个标志位的位置和值确定所述第一ICN包对应的K位偏移地址。
  23. 一种应用于信息中心网络ICN的数据处理设备,其中,所述设备包括处理器和用于存储能够在处理器上运行的计算机程序的存储器;
    其中,所述处理器用于运行所述计算机程序时,执行权利要求1至12中任一项所述的数据处理方法的步骤,和/或,执行权利要求13至22中任一项所述的数据处理方法的步骤。
  24. 一种计算机可读存储介质,其中,所述计算机可读存储介质上存储有报文转发程序,所述报文转发程序被处理器执行时实现如权利要求1至12中任一项所述的数据处理方法的步骤,和/或,如权利要求13至22中任一项所述的数据处理方法的步骤。
PCT/CN2019/081204 2018-04-19 2019-04-03 一种数据处理方法、设备和计算机可读存储介质 WO2019201091A1 (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
EP19788847.2A EP3770767B1 (en) 2018-04-19 2019-04-03 Data processing method and device, and computer readable storage medium
US17/048,809 US11489765B2 (en) 2018-04-19 2019-04-03 Data processing method and device, and computer readable storage medium
JP2020558055A JP7109583B2 (ja) 2018-04-19 2019-04-03 データ処理方法、機器及びコンピュータ読み取り可能な記憶媒体
KR1020207030227A KR102428429B1 (ko) 2018-04-19 2019-04-03 데이터 처리 방법, 데이터 처리 장치 및 컴퓨터 판독 가능한 저장 매체

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201810356463.XA CN110399539A (zh) 2018-04-19 2018-04-19 一种数据处理方法、设备和计算机可读存储介质
CN201810356463.X 2018-04-19

Publications (1)

Publication Number Publication Date
WO2019201091A1 true WO2019201091A1 (zh) 2019-10-24

Family

ID=68239381

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2019/081204 WO2019201091A1 (zh) 2018-04-19 2019-04-03 一种数据处理方法、设备和计算机可读存储介质

Country Status (6)

Country Link
US (1) US11489765B2 (zh)
EP (1) EP3770767B1 (zh)
JP (1) JP7109583B2 (zh)
KR (1) KR102428429B1 (zh)
CN (1) CN110399539A (zh)
WO (1) WO2019201091A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3963843A4 (en) * 2019-05-02 2023-01-25 INTEL Corporation QUALITY OF SERVICE (QOS) IN INFORMATION CENTERED NETWORKING (ICN)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105072030A (zh) * 2015-07-02 2015-11-18 哈尔滨工程大学 一种基于内容聚类的命名数据网络路由系统及其聚类查询方法
CN105704032A (zh) * 2016-04-13 2016-06-22 北京邮电大学 一种兴趣包转发方法及装置
CN106506719A (zh) * 2016-11-07 2017-03-15 北京邮电大学 命名数据网络中分发策略的配置方法及配置系统
WO2017165246A1 (en) * 2016-03-25 2017-09-28 Cisco Technology, Inc. System and method for routing packets in a content centric network using anonymous datagrams

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4732972B2 (ja) 2006-06-30 2011-07-27 株式会社エヌ・ティ・ティ・ドコモ アドホックネットワーク、ノード、経路制御方法、及び経路制御プログラム
KR101688857B1 (ko) * 2010-05-13 2016-12-23 삼성전자주식회사 컨텐츠 중심 네트워크(ccn)에서 단말 및 허브의 통신 방법 및 컨텐츠 중심 네트워크를 위한 단말
EP2562978B1 (en) 2011-08-12 2014-10-08 Alcatel Lucent Content router of a content centric network
CN103885887B (zh) * 2012-12-21 2018-07-27 腾讯科技(北京)有限公司 用户数据存储方法、读取方法及系统
CN103581019B (zh) * 2013-10-10 2016-05-18 北京交通大学 一种基于内容流行度的信息中心网络移动性管理方法
JP6190288B2 (ja) 2014-02-25 2017-08-30 日本電信電話株式会社 キャッシュ制御装置及び方法及びプログラム
US9386118B2 (en) * 2014-10-09 2016-07-05 Fujitsu Limited Online progressive content placement in a content centric network
CN107248956B (zh) * 2017-06-05 2019-10-15 北京邮电大学 一种信息中心网络的路由方法及装置
CN107454142B (zh) * 2017-06-29 2019-06-07 北京邮电大学 一种内容路由器的非阻塞内容缓存方法及装置
CN107704202B (zh) * 2017-09-18 2021-09-07 北京京东尚科信息技术有限公司 一种数据快速读写的方法和装置
CN107832343B (zh) * 2017-10-13 2020-02-21 天津大学 一种基于位图的mbf数据索引结构对数据快速检索的方法
CN107908357B (zh) * 2017-10-13 2020-08-21 天津大学 命名数据网转发平面pit存储结构及其数据检索方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105072030A (zh) * 2015-07-02 2015-11-18 哈尔滨工程大学 一种基于内容聚类的命名数据网络路由系统及其聚类查询方法
WO2017165246A1 (en) * 2016-03-25 2017-09-28 Cisco Technology, Inc. System and method for routing packets in a content centric network using anonymous datagrams
CN105704032A (zh) * 2016-04-13 2016-06-22 北京邮电大学 一种兴趣包转发方法及装置
CN106506719A (zh) * 2016-11-07 2017-03-15 北京邮电大学 命名数据网络中分发策略的配置方法及配置系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP3770767A4

Also Published As

Publication number Publication date
EP3770767A1 (en) 2021-01-27
US20210168069A1 (en) 2021-06-03
JP7109583B2 (ja) 2022-07-29
EP3770767B1 (en) 2023-07-12
US11489765B2 (en) 2022-11-01
KR20200135451A (ko) 2020-12-02
KR102428429B1 (ko) 2022-08-02
EP3770767A4 (en) 2021-04-21
CN110399539A (zh) 2019-11-01
JP2021519038A (ja) 2021-08-05

Similar Documents

Publication Publication Date Title
KR102290835B1 (ko) 유지관리 동작들을 위한 병합 트리 수정들
TWI702506B (zh) 用於合併樹廢棄項目指標之系統、機器可讀媒體及機器實施之方法
US10198363B2 (en) Reducing data I/O using in-memory data structures
WO2018099107A1 (zh) 一种哈希表管理的方法和装置、计算机存储介质
US11003719B2 (en) Method and apparatus for accessing a storage disk
WO2020199760A1 (zh) 数据存储方法、存储器和服务器
US9304939B2 (en) Method and multi-core communication processor for replacing data in system cache
US10057368B1 (en) Method and system for incremental cache lookup and insertion
JP2004172917A (ja) パケット検索装置及びそれに用いるパケット処理検索方法並びにそのプログラム
WO2019127018A1 (zh) 存储系统访问方法及装置
CN103428093A (zh) 一种基于名字路由前缀存储、匹配及更新方法与装置
WO2020034729A1 (zh) 数据处理方法、相关设备及计算机存储介质
WO2019127021A1 (zh) 存储系统中存储设备的管理方法及装置
WO2018032510A1 (zh) 应用于存储设备中的访问请求的处理方法和装置
WO2013075306A1 (zh) 数据访问方法和装置
WO2019019382A1 (zh) 缓存处理方法、装置、计算机设备和存储介质
JP2016515256A (ja) メモリノードを含む分散型メモリシステム用装置および方法
WO2019127017A1 (zh) 存储系统中存储设备的管理方法及装置
WO2019201091A1 (zh) 一种数据处理方法、设备和计算机可读存储介质
JP6088853B2 (ja) 通信装置、通信方法および通信プログラム
CN107544916B (zh) 一种缓存方法及存储设备
JP6378044B2 (ja) データ処理装置、データ処理方法およびプログラム
US11038797B2 (en) Forwarding table entry access
US20140359062A1 (en) Data transferring apparatus, data transferring system and non-transitory computer readable medium
CN111131197B (zh) 一种过滤策略管理系统及其方法

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: 19788847

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2020558055

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 20207030227

Country of ref document: KR

Kind code of ref document: A

ENP Entry into the national phase

Ref document number: 2019788847

Country of ref document: EP

Effective date: 20201023