WO2020073907A1 - 转发表项的更新方法及装置 - Google Patents
转发表项的更新方法及装置 Download PDFInfo
- Publication number
- WO2020073907A1 WO2020073907A1 PCT/CN2019/110054 CN2019110054W WO2020073907A1 WO 2020073907 A1 WO2020073907 A1 WO 2020073907A1 CN 2019110054 W CN2019110054 W CN 2019110054W WO 2020073907 A1 WO2020073907 A1 WO 2020073907A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- message
- write operation
- control message
- sequence number
- sent
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
- H04L45/021—Ensuring consistency of routing table updates, e.g. by using epoch numbers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/02—Topology update or discovery
- H04L45/026—Details of "hello" or keep-alive messages
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/745—Address table lookup; Address filtering
- H04L45/74591—Address table lookup; Address filtering using content-addressable memories [CAM]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L49/00—Packet switching elements
- H04L49/90—Buffering arrangements
- H04L49/9063—Intermediate storage in different physical parts of a node or terminal
- H04L49/9078—Intermediate storage in different physical parts of a node or terminal using an external memory or storage device
Definitions
- This application relates to the field of communications, and in particular to a method and device for updating forwarding entries.
- routers are generally deployed in a distributed manner.
- the distributed routers can also be called routing systems.
- the routing system may include a server, a line card box connected to the server, and a switch box connected to the line card box.
- the server is the main control device of the routing system, which runs various network protocols.
- a network processor is deployed in the line card box to implement hard forwarding functions such as packet processing, protocol analysis, and route lookup.
- the exchange box is used to exchange data packets.
- the server can establish a communication connection with the line card box, and can send instruction information indicating addition or deletion of forwarding entries to the line card box.
- the network processor of the line card box can forward the instruction information to the processor.
- the processor can process the instruction information according to a routing algorithm to generate write operation data, and can write The operation data is sent to the network processor.
- the network processor can then write the write operation data to the memory, thereby completing the update of the forwarding entry.
- This application provides a method and device for updating forwarding entries, which can solve the problem of low update efficiency of forwarding entries in related technologies.
- the technical solutions are as follows:
- a method for updating forwarding entries is provided.
- the method can be applied to a message receiving end.
- the method can include:
- the write operation message includes write operation information
- the write operation information includes write operation data and write operation address
- the write operation data is used to indicate the forwarding entry to be updated
- the write operation address is used to Indicate the address of the write operation data to be written in the memory; obtain the write operation information from the write operation message; write the write operation data into the memory according to the write operation address in the write operation information.
- the message receiving end can directly write the write operation data into the memory according to the write operation address in the write operation message. Since the message receiving end only needs to perform the write memory operation, and does not need to perform the operation of calculating the write operation data again, the rate at which the message sending end sends the write operation message will not be limited by the processing performance of the message receiving end, effectively improving The delivery rate and update efficiency of the forwarding table entries are described.
- the method may further include:
- the first control message including a count value; detecting whether the total number of write memory operations performed after receiving the second control message is equal to the count value; wherein, the write memory operation Refers to the operation of writing the write operation data into the memory, the count value is the total number of write operation information included in the write operation message sent by the message sender between the second control message and the first control message , The second control message is the previous control message sent before the first control message;
- the message receiving end may send first prompt information, where the first prompt information is used to indicate that the write operation message sent by the message sending end after the second control message is lost After that, the message receiving end can receive the write operation message resent by the message sending end based on the first prompt information.
- the message receiving end detects whether there is a loss of a write operation message based on the count value in the first control message.
- the first prompt message can be used to instruct the message sending end to resend the write operation message In this way, the correct update of the forwarding entry can be ensured, and the reliability when the forwarding entry is updated is improved.
- each control message also includes a sequence number, and the sequence number in the control message sent by the message sending end is sequentially increased; after the message receiving end receives the first control message, the method can also include:
- the process of the message receiving end detecting whether the total number of write memory operations performed after receiving the second control message is equal to the count value may include:
- the difference between the sequence number of the first control message and the sequence number of the third control message is a preset difference, it is determined that the third control message is the second control message, and it is detected that Whether the total number of write memory operations performed after the third control message is equal to the count value.
- the message receiving end may first detect whether there is a control message loss through the sequence number of the first control message before detecting the count value, when it is detected that the control message is not lost Continue to detect the count value to ensure the accuracy and reliability of the count value detection.
- the message receiving end when it detects that the difference between the sequence number of the first control message and the sequence number of the third control message is not a preset difference, it may also send second prompt information.
- the second prompt information is used to indicate that the control message sent after the third control message is lost; after that, the message receiving end can receive the write operation message resent based on the second prompt information.
- the message sending end can be instructed by the second prompt message Resend the write operation message, thereby ensuring the correct update of the forwarding entry and improving the reliability when the forwarding entry is updated.
- the method may further include:
- the keep-alive message includes a sequence number, the sequence number of the keep-alive message sent by the sender of the message and the sequence number of the previous control message sent before the keep-alive message
- the difference is the preset difference; detecting whether the difference between the sequence number of the keep-alive message and the sequence number of the fourth control message is the preset difference, and the fourth control message is the The previous control message received before the message; when the difference between the sequence number of the keep-alive message and the sequence number of the fourth control message is not the preset difference, the message receiver can send a third Prompt information, the third prompt information is used to indicate that the control message sent after the fourth control message is lost; after that, the message receiving end can receive the write operation message resent based on the third prompt information.
- the message sender can send a keep-alive message when the message is sent for a long time without a write operation, and the message receiver can also determine whether a control message is lost through the keep-alive message. Therefore, when it is detected that a control packet is lost, it can promptly instruct the packet sending end to re-send the write operation packet through the third prompt message to ensure the correct update of the forwarding entry.
- the write operation message may further include a sequence number, and the size of the sequence number of the write operation message sent by the message sending end between the two control messages is the same as that of the control message sent later.
- the sequence numbers are equal in size; after writing the write operation data to the memory, the message receiving end can also count the total number of write memory operations performed by the write operation message based on the same sequence number to obtain the correspondence between the sequence number and the total number of times relationship;
- the process of the message receiving end detecting whether the total number of write memory operations performed after receiving the second control message is equal to the count value may include:
- the message receiving end uses the serial number of the write operation message as an index to count the total number of write memory operations, so that when a control message is received, the sequence number of the control message can be directly used as the index to obtain the corresponding total number of times. This effectively improves the efficiency of the total number of detections and verifications, thereby improving the efficiency of updating forwarding entries.
- the message receiving end may follow the order in which the write operation message is received, and the write operation message includes the In the order of the write operation information, according to the write operation address in each write operation information, the write operation data is written into the memory.
- the receiving end of the message performs the write memory operation in order according to the order of receiving the write operation message and the order of the write operation information included in the write operation message, which can ensure the correct update of the forwarding entry.
- a method for updating forwarding entries is provided.
- the method can be applied to a message sending end.
- the method can include:
- the write operation information includes write operation data and write operation address, the write operation data is used to indicate the forwarding entry to be updated, and the write operation address is used to indicate to be written The address of the write operation data; encapsulate the generated write operation information into a write operation message, and send the write operation message, the write operation message is used to indicate that according to the write operation address in the write operation information, the The write operation data is written to the memory.
- the message receiving end can directly perform the operation of writing memory according to the writing operation information in the writing operation message, without performing the operation of calculating the writing operation data, thereby increasing the rate of forwarding table entries and Update efficiency.
- the method may further include:
- the message is the previous control message sent before the first control message; when receiving the first prompt information indicating that the write operation message sent after the second control message is lost, the message is resent at The write operation message sent after the second control message; wherein, the first prompt information is the total number of times and the count value of the memory write operation performed after the message receiving end detects the second control message Sent when they are not equal.
- the message sending end sends the first control message, so that the message receiving end can detect whether there is a write operation message loss based on the count value in the first control message.
- the first prompt message may be used to instruct the message sending end to resend the write operation message, thereby ensuring the correct update of the forwarding entry and improving the reliability of the forwarding entry update.
- each control message also includes a sequence number, and the sequence number in the control message sent by the message sending end is sequentially increased; the method may further include:
- the second prompt message It is sent when the message receiving end detects that the difference between the sequence number of the first control message and the sequence number of the third control message is not the preset difference, and the third control message is the message The previous control message received by the receiving end before the first control message.
- the message sending end When the message sending end receives the second prompt information indicating that the control message is lost, it can resend the write operation message, thereby ensuring the correct update of the forwarding entry and improving the reliability when the forwarding entry is updated.
- the method may further include:
- the idle duration of the write operation packet that is not sent after sending the control packet is greater than the duration threshold; when the idle duration is greater than the duration threshold, a keepalive packet is sent, and the keepalive packet includes the sequence number, and The difference between the sequence number of the live message and the sequence number of the previous control message is the preset difference; when receiving the third prompt message indicating that the control message sent after the fourth control message is lost , Re-send the write operation message sent after the fourth control message; wherein, the third prompt message is the sequence number of the keep-alive message received by the message receiving end and the fourth control message When the difference of the sequence number of the message is not the preset difference, the fourth control message is the previous control message received by the message receiving end before the keep-alive message.
- the message sending end When the message sending end receives the third prompt information indicating that the control message is lost, it can resend the write operation message, thereby ensuring the correct update of the forwarding entry and improving the reliability when the forwarding entry is updated.
- an apparatus for updating forwarding entries can be applied to a message receiving end.
- the apparatus can include at least one module, and the at least one module can be used to implement the transfer provided in the first aspect. Update method of published items.
- an apparatus for updating forwarding entries can be applied to a message sending end.
- the apparatus can include at least one module, and the at least one module can be used to implement the transfer provided in the second aspect. Update method of published items.
- an apparatus for updating forwarding entries may include: a memory, a processor, and a computer program stored on the memory and executable on the processor, when the processor executes the computer program.
- a computer-readable storage medium stores instructions.
- the computer executes the first aspect as described above.
- a computer program product containing instructions that, when executed on a computer, cause the computer to perform the method for updating the forwarding entry provided in the first aspect above, or the transfer provided in the second aspect above Update method of published items.
- a forwarding entry sending system may include: a message sending end and a message receiving end; the message sending end may include the device provided in the fourth aspect; the message receiving The terminal may include the device as provided in the third aspect above.
- This application provides a method and device for updating forwarding entries.
- the write operation information in the write operation message sent by the message sending end includes the write operation data and the write operation address, and the message receiving end can directly use the write operation address , Write the write operation data into the memory, thus completing the update of the forwarding entry. Since the message receiving end only needs to perform the write memory operation, and does not need to perform the operation of calculating the write operation data, the rate at which the message sending end sends the write operation message will not be limited by the processing performance of the message receiving end, which effectively improves The delivery rate and update efficiency of the forwarding table entries are described.
- FIG. 1 is a schematic structural diagram of a routing system provided by an embodiment of the present invention.
- FIG. 2 is a schematic structural diagram of a line card box provided by an embodiment of the present invention.
- FIG. 3 is a flowchart of a method for updating a forwarding entry provided by an embodiment of the present invention
- FIG. 4 is a schematic structural diagram of a write operation message provided by an embodiment of the present invention.
- FIG. 5 is an architecture diagram of a server provided by an embodiment of the present invention.
- FIG. 6 is a partial structural schematic diagram of a line card box provided by an embodiment of the present invention.
- FIG. 7 is an architecture diagram of a line card box provided by an embodiment of the present invention.
- FIG. 9 is a schematic structural diagram of a control message according to an embodiment of the present invention.
- FIG. 10 is a flowchart of a method for resending a write operation message according to an embodiment of the present invention
- FIG. 11 is a schematic structural diagram of a keep-alive message provided by an embodiment of the present invention.
- FIG. 13 is a schematic diagram of a server cache write operation information provided by an embodiment of the present invention.
- FIG. 14 is a schematic structural diagram of an apparatus for updating forwarding entries provided by an embodiment of the present invention.
- 15 is a schematic structural diagram of another forwarding entry update device provided by an embodiment of the present invention.
- FIG. 16 is a schematic structural diagram of yet another forwarding entry update device provided by an embodiment of the present invention.
- FIG. 17 is a schematic structural diagram of yet another forwarding table update device provided by an embodiment of the present invention.
- FIG. 18 is a schematic structural diagram of yet another forwarding entry updating device provided by an embodiment of the present invention.
- FIG. 1 is a schematic structural diagram of a routing system provided by an embodiment of the present invention.
- the routing system may include: a server 01, multiple line card boxes 02, and multiple switching boxes 03.
- Each line card box 02 is connected to the server 01, and each line card box 02 can be connected to at least one exchange box 03.
- the multiple exchange boxes 03 can be cascaded.
- the server 01 may be a server, or a server cluster composed of several servers, or may be a cloud computing service center.
- the server 01 is the main control device of the routing system, and it runs various network protocols for implementing unified management of multiple line card boxes 02, so it may also be called a main control server or a control plane server.
- a core processor may be deployed in each line card box 02, and the core processor may be a network processor (network) (NP), an application specific integrated circuit (ASIC), or a field programmable gate array (field programmable gate array) Gate (array, FPGA) and other hard forwarding devices, the core processor is used to implement forwarding functions such as packet processing, protocol analysis and route lookup.
- the hard forwarding device refers to the hardware dedicated to the forwarding function in the line card box 02.
- the exchange box 03 is used to exchange data packets.
- the architecture of the distributed deployment routing system is a scale-out architecture. The number of line card boxes 02 and switching boxes 03 can be increased according to the requirements of application scenarios.
- the throughput of the routing system is high, so it can also be called It is a petabyte (PB) router.
- PB petabyte
- each line card box 02 may include a central processing unit (CPU), NP, memory, and traffic management (traffic management, TM) module.
- the NP is connected to the CPU, memory and TM module respectively.
- the NP can also be connected to the server 01 through the service-side interface, and the TM module can be connected to the switch box 03 through the switch-side interface.
- the service-side interface and the switch-side interface may both be Ethernet ports. It can be seen with reference to FIG.
- the NP may include a processor core and a peripheral component high-speed interconnect (peripheral component interconnect (Express), PCIE) module.
- the PCIE module may be connected to the CPU through the PCIE bus and connected to the memory through the internal bus.
- the processor core can be connected to the server 01 through the service-side interface, and the processor core can also be connected to the CPU through the Ethernet interface and connected to the memory through the internal bus.
- the processor core of the NP can establish a transmission control protocol (TCP) connection with the server 01 through the service interface.
- TCP transmission control protocol
- the processor core After the processor core receives the instruction information for instructing to update the forwarding entry sent by the server 01, it can forward the instruction information to the CPU, and the CPU can process the instruction information based on the format of the routing algorithm table to generate a write Operation data, and can send the write operation data to the PCIE module of NP through the PCIE bus.
- the PCIE module of NP can then serially write the received write operation data into the memory, thereby completing the update of the forwarding entry.
- line card box 02 considering the hardware limitations of line card box 02 such as heat dissipation and power consumption, its CPU processing performance has a bottleneck, and the number of CPUs that can be deployed in a single line card box 02 is also limited, so the processing of the CPU in this NP Performance will limit the rate at which the server can deliver instructions, which in turn limits the efficiency of updating forwarding entries.
- the bandwidth of the PCIE bus since the CPU needs to transmit write operation data through the PCIE bus, the bandwidth of the PCIE bus also limits the efficiency of the write operation data distribution, thereby affecting the update efficiency of the forwarding entry.
- An embodiment of the present invention provides a method for updating forwarding entries, which can solve the problem of low forwarding entry updating efficiency in the related art.
- This method can be applied to the need to update the forwarding entries of the message receiving end through the message sending end Scene.
- the message sending end of the routing system is the server 01
- the message receiving end is the line card box 02.
- the message sending end and the message receiving end may also be other types of network element devices, for example, the message receiving end may also be a switch, etc.
- the following takes the updating method of the forwarding entry applied to the routing system shown in FIG. 1 as an example, that is, taking the message sending end as a server and the message receiving end as a line card box as an example, to update the forwarding entry
- the method is described in detail. Referring to FIG. 3, the method may include:
- Step 101 The server generates write operation information according to the forwarding entry to be updated.
- a line card box may store tables for guiding it to forward data traffic, such as a routing table (routing info base, RIB) and a forwarding table (forwarding info base, FIB), and so on.
- the forwarding entries in the routing table and the forwarding table may be learned by the server based on the routing protocol and delivered to the line card box, or may be delivered by the server to the line card box according to the local static configuration.
- the forwarding entry to be updated may refer to an entry in the routing table or forwarding table that needs to be updated, for example, a route that needs to be added, changed, or deleted.
- the server may generate write operation data indicating the forwarding entry to be updated according to the format of the routing algorithm table in the line card box.
- the write operation data may include a destination address and an output interface And next-hop Internet Protocol (IP) address and other data.
- IP Internet Protocol
- the server may determine the write operation address of the write operation data according to the storage address of the forwarding entry to be updated in the memory, that is, the address of the write operation data to be written in the memory of the line card box.
- the server may generate one or more write operation information according to each forwarding entry to be updated (that is, each route to be updated), and each write operation information may include write operation data and a corresponding write operation address.
- the write operation address may be a storage address in the memory of the online card box of the route to be deleted, and the write operation data may be a default value or may be 0.
- Step 102 The server encapsulates the generated write operation information into a write operation message.
- the server may encapsulate the write operation information according to the communication protocol specified by the communication protocol according to the communication protocol with the line card box to obtain the write operation message. For example, assuming that the communication protocol established between the server and the line card box is the Ethernet protocol, the server may encapsulate the write operation information according to the Ethernet frame format to obtain a write operation message.
- the server may encapsulate one or more write operation information generated based on one forwarding entry to be updated in one write operation message; or, it may also generate multiple information based on multiple forwarding entries to be updated.
- the write operation information is encapsulated in a write operation message to improve link utilization. Therefore, each write operation packet encapsulated by the server may include at least one write operation information. Among them, at least one refers to one or more.
- the write operation message generated by the server may include: MAC header field, IP header field, UDP header field, SN field, W_Num field, and data field.
- the MAC header field includes information such as the destination media access control (MAC) address and source MAC address of the write operation message.
- the IP header field includes information such as the destination IP and source IP of the write operation packet, and a write operation identifier can also be added to the destination IP.
- the NP of the line card box After receiving the write operation packet, the NP of the line card box can use the destination The write operation identifier in the IP determines that the write operation message is a message used to instruct the execution of the write memory operation.
- the UDP header field may include information such as the source port number and destination port number of the write operation packet, where an identifier indicating that the type of the packet is a write operation packet may also be added to the source port number, for example, the identifier Can be 0.
- the SN field is used to record the sequence number (SN) of the write operation message.
- the server may send write operation messages in batches, and each batch may include one or more write operation messages.
- the serial number of the write operation packet included in each batch is equal in size, and the difference between the serial number of the write operation packet of each batch and the serial number of the previous batch of write operation packets is the preset difference.
- the value that is, the serial number of each batch of write operation messages sent by the server, increases in sequence.
- the W_Num field is used to record the number of write operation information included in the write operation message, that is, the number of write memory operations indicated by the write operation message.
- the data field may include at least one write operation information, that is, the data field may include one or more write operation information.
- the write operation message shown in FIG. 4 includes n write operation information, and n is an integer greater than 1.
- each write operation information may include write operation data and corresponding write operation address.
- the write operation information 1 may include: write operation address 1 and write operation data 1;
- the write operation information n may include: write operation address n and write operation data n.
- FIG. 5 is an architecture diagram of a server provided by an embodiment of the present invention.
- the server may be a server cluster composed of a main server 011 and multiple computing servers 012.
- Each calculation server 012 may be used to calculate and generate write operation information according to the forwarding entry to be updated, and encapsulate the write operation message.
- the main server 011 can be used to deliver the write operation message to the line card box 02.
- the multiple computing servers 012 can generate write operation messages in parallel, ensuring the generation rate of write operation messages.
- the number of computing servers 012 in the server cluster can be flexibly adjusted according to application requirements, the performance of generating write operation packets can be flexibly improved without performance bottlenecks, so the generation rate and delivery rate of write operation packets can be ensured.
- the server 01 may not be implemented in the form of a server cluster, but a single server with strong performance.
- the embodiment of the present invention does not limit the implementation manner of the server 01.
- Step 103 The server sends the write operation message to the line card box.
- the server may send a write operation message to the line card box based on the communication connection established with the line card box.
- the line card box can receive the write operation message sent by the server.
- the NP of the line card box can receive the write operation message through the service-side interface.
- Step 104 The line card box obtains the write operation information from the write operation message.
- the line card box can decapsulate the write operation message according to the communication encapsulation format specified by the communication protocol according to the communication protocol with the server to obtain the write operation message The write operation information in.
- the line card box can also determine the number of write operation information included in the write operation message according to the W_Num field in the write operation message, and then can The length of the write operation information (that is, the number of bytes occupied) is obtained in turn for each write operation information.
- the length of each write operation information may be a fixed value specified in the packet encapsulation format.
- the NP can decapsulate the write operation message according to the Ethernet frame format.
- the write operation message is a message used to indicate the execution of the write memory operation.
- the number of write operation information included in the write operation message can be determined according to the W_Num field as n, and then the data field of the write operation message can be read, and the data field read from the data field can be read.
- Each k bytes is determined to be one write operation information, from which write operation information 1 to write operation information n can be sequentially obtained.
- Step 105 The line card box writes the write operation data to the memory according to the write operation address in the write operation information.
- the line card box may follow the order of the multiple write operation information in the write operation message from the first write operation information in the data field (That is, the write operation information closest to each header field), and sequentially write the write operation data in the write operation information to the memory according to the write operation address in each write operation information. Since the server may generate multiple write operation information based on each forwarding entry to be updated, writing the write operation data in order according to the order of the write operation information can ensure the correct update of the forwarding entry.
- the line card box can follow the preset order and length, and use the first k1 bytes read from the write operation information as the write operation address, and the last k2 bytes read as the write operation data.
- NP can start from the write operation information 1, read the write operation address and write operation data in each write operation information in turn, and write the write operation information in each write operation information The operation data is written to the corresponding address in the memory.
- writing the write operation data in each write operation information to the memory is equivalent to performing a write memory operation.
- the line card box only needs to perform the write memory operation, and does not need to perform the operation of calculating the write operation data, the rate at which the server sends the write operation message will not be affected by the performance of the line card box. Restrictions have effectively improved the delivery rate and update efficiency of forwarding entries.
- the specification of the routing table in the core router is generally 10 trillion (M), which includes 107 routes.
- the routing delivery rate in the related art is generally 50 thousand (K) routes per second, that is, 50,000 routes per second, 10M routes. It takes 200 seconds to complete routing delivery.
- the routing delivery rate can be increased to 1M per second, and the delivery of 10M routes can be completed in only 10 seconds, and the delivery rate can be increased by 20 times.
- the NP of the line card box may include multiple processor cores, and the multiple processor cores may process the write operation message in parallel, that is, obtain the write operation information in the write operation message in parallel, thereby ensuring that The processing efficiency of write operation messages improves the update efficiency of forwarding entries.
- the line card box when the line card box obtains the write operation information from the write operation message, it can first determine the target processor core whose resource occupancy rate is less than the occupancy rate threshold from the multiple processor cores; The target processor core obtains the write operation information from the write operation message.
- the line card box determines that the number of processor cores whose resource occupancy rate is less than the threshold value of the occupancy rate includes a plurality, it may randomly select one as the target processor core. Distributing the write operation message to the processor core with a small resource occupancy rate can ensure load balancing of the multiple processor cores and realize efficient processing of the write operation message.
- the resource occupancy rate may refer to the processing resource occupancy rate.
- the occupancy threshold may be a predetermined fixed value, for example, 50%. Alternatively, the occupancy threshold can also be determined according to the actual resource occupancy of each processor core, for example, the average value of the resource occupancy of each processor core can be used as the occupancy threshold; or The resource occupancy rate is sorted from low to high, and then the second resource occupancy rate is determined as the occupancy rate threshold.
- the line card box may select the processor core with the lowest resource occupancy rate as the target processor core, for example, the line card box may use the idle processor core as the target processor core.
- FIG. 6 is a partial structural diagram of a line card box provided by an embodiment of the present invention.
- the NP of the line card box may include a distribution module and a total of 4 processor cores K1 to K4.
- the distribution module can distribute the message to each processor core for processing according to the resource occupancy rate of each processor core. Assuming that the currently received write operation packet is the write operation packet P1, and the distribution module detects that the current resource occupancy rate of the processor core K4 is the lowest, it can distribute the write operation packet P1 to the processor core K4 for processing.
- the NP since multiple write operation information generated by the server based on one forwarding entry may be encapsulated in different write operation messages, the NP needs to be executed in the order of the write operation information in each write operation message To write a memory operation, it is also necessary to perform the write memory operation in the order in which each write operation message is received. That is, for the two write operation messages received in succession, NP needs to write the write operation data in each write operation information in the write operation message received first to the memory before writing the subsequent write operation messages. The write operation data in each write operation information in the operation message performs a write memory operation to ensure accurate update of the forwarding entry.
- an order-preserving access module can also be deployed in the NP of the line card box, and each processor core can send the obtained write operation information to the order-preserving access module.
- the order-preserving access module can, according to the order of receiving each write operation message and the order of the write operation information included in each write operation message, sequentially according to the write operation address in the write operation information of each write operation message, Write write data to memory.
- the memory may be deployed inside the NP or outside the NP, which is not limited in this embodiment of the present invention.
- the server sends a total of 4 write operation messages from P1 to P4, and the order of sending the four write operation messages is: P1, P2, P3, P4.
- the NP distribution module receives the four write operation messages in sequence, it distributes them to different processor cores.
- the write operation message P1 is distributed to the processor core K4, and the write operation message P4 is distributed to the processing. ⁇ ⁇ K2.
- the four processor cores K1 to K4 can obtain the write operation information in the write operation message received by them in parallel, and send the obtained write operation information to the order-preserving access module.
- the order-preserving access module After the order-preserving access module receives the write operation information sent by each processor core, it can first write the write operation data in at least one write operation information in the write operation packet P1 to the memory in sequence, and then write the write operation report in turn The write operation data in the text P2 to the write operation message P4 is written into the memory.
- Step 106 The line card box counts the total number of write memory operations performed by the write operation message based on the same serial number to obtain the correspondence between the serial number and the total number of times.
- the write operation message sent by the server may include a serial number.
- the line card box is based on the write operation information in the received write operation message. After each write memory operation, the serial number of the write operation message can be used as an index to count the total number of write memory operations corresponding to the index. frequency. That is, the line card box can count the total number of write memory operations performed by the write operation message based on the same serial number, and thus the correspondence between the serial number and the total number of times can be obtained.
- the write operation message with the same serial number refers to a write operation message with the same sequence number.
- the line card box may be provided with a counter, which may be deployed inside the NP or outside the NP, which is not limited in this embodiment of the present invention.
- the counter can be used to store the total number of times corresponding to different serial numbers.
- the line card box can obtain the total number of times corresponding to the serial number of the write operation message from the counter after performing a write operation based on a write operation message, and add 1 to the total number of times, thereby achieving Real-time statistics of the total number of times corresponding to the serial number.
- Step 107 The server sends the first control message to the line card box.
- the server sends one or more write operation messages (Ie after sending a batch of write operation messages), a first control message can be sent.
- the first control message may include a count value, and the count value is the total number of write operation information included in the write operation message sent by the server after sending the second control message.
- the second control message is the previous control message sent by the server before the first control message. If the first control message is the first control message sent by the server, the count value in the first control message is the write operation included in the write operation message sent before the first control message The total number of messages.
- each control message sent by the server may include a MAC header field, an IP header field, a UDP header field, an SN field, and a W_c field.
- the definitions of the MAC header field, IP header field, and UDP header field can all be the same as the definitions in the write operation packet, which will not be repeated here.
- the source port number of the UDP header field in the control message may be added with an identifier indicating that the type of the message is the control message, for example, the identifier may be 1.
- the SN field of the control message is used to record the sequence number of the control message.
- the size of the sequence number of the control message sent by the server each time may be equal to the size of the sequence number of the previous write operation message, and the sequence number of each control message sent by the server may be sequentially increased.
- the W_c field is used to record the count value, which is the total number of write operation information included in the write operation message sent by the server after the last control message (ie, the second control message), that is, the serial number and the current control The total number of write operation information included in the write operation message with the same sequence number of the message.
- the same serial number may mean that the size of the serial number is equal.
- Step 108 The line card box detects whether the difference between the sequence number of the first control message and the sequence number of the third control message is a preset difference.
- each control message sent by the server may further include a sequence number, and the sequence number in the control message sent by the server is sequentially increased.
- the difference between the sequence number of each control message and the sequence number of the previous control message can be 1. Since control messages may be lost during transmission, the line card box may first check the sequence number of the first control message and the third control message in order to ensure the total number of write operations based on correct control message detection. Whether the difference between the serial numbers is the preset difference.
- the third control message is the previous control message received by the line card box before the first control message.
- step 109 When the line card box detects that the difference between the sequence number of the first control message and the sequence number of the third control message is a preset difference, it can be determined that no control message is lost, so step 109 can be performed.
- step 109 When the line card box detects that the difference between the sequence number of the first control message and the sequence number of the third control message is not the preset difference, it can be determined that the control message after the third control message is lost , So step 112 can be performed.
- the line card box may store the sequence number of the last control message, and its initial value may be 0, and the sequence number of the last control message may be data no greater than 32 bits.
- the data may be stored in the memory of the online card box, or as shown in FIGS. 7 and 8, the line card box may be provided with a register, and the data may be stored in the register.
- the line card box can directly obtain the sequence number of the last control message (ie, the third control message) stored in it, and detect the difference of the sequence number.
- the line card box may also update the sequence number of the last control message stored in it to the sequence number of the first control message. That is, the sequence number of the first control message can be used as the sequence number of the new last control message, so that the difference value can be calculated and detected based on the sequence number of the last control message in the future .
- step 109 can be performed, and the sequence number of the last control message stored in the register can be updated Is 2.
- the sequence number of the third control message stored in the register of the line card box is 0 (that is, no other control message is received before the first control message)
- the sequence number of the first control message is The difference between the sequence numbers stored in this register is not 1, the line card box can determine that there is a loss of control messages, so step 112 can be performed, and the sequence number of the last control message stored in the register can also be updated to 2 .
- the line card box may also occupy the resources of each processor core Rate, distribute control messages to the corresponding processor core for processing.
- Step 109 The line card box detects whether the total number of write memory operations performed after receiving the second control message is equal to the count value.
- the line card box may continue to detect whether the count value in the third control message is equal to the total number of write memory operations performed by the line card box after receiving the third control message.
- the line card box can determine that there is a case where the write operation packet is lost or the write memory operation fails to execute, so step 110 can be performed.
- the line card box can determine that the write memory operation has been successfully performed, so it can keep the current state unchanged.
- the write operation message sent by the server may include a sequence number
- the size of the sequence number of the write operation message sent by the server between the two control messages is the same as the following
- the size of the sequence number of the control message sent is equal, that is, the size of the sequence number of each control message is equal to the size of the sequence number of the previous write operation message sent before the control message.
- the line card box can use the sequence number of the write operation packet as an index to count the number of times the memory operation is performed to obtain the correspondence between the sequence number and the total number of times. Therefore, during the process of performing the above step 108, the line card box may first obtain the total number of times corresponding to the sequence number of the first control message from the correspondence between the pre-generated sequence number and the total number of times. After that, the line card box can detect whether the count value is equal to the total number of times corresponding to the sequence number of the first control message.
- step 110 can be performed.
- the line card box may also calculate the total number corresponding to the sequence number of the first control message that has been statistically obtained. The number of times is cleared, and the total number of times corresponding to the sequence number greater than the sequence number of the first control message can also be cleared. In this way, it can be ensured that the line card box can accurately count the total number of times corresponding to the serial number when receiving the write operation message retransmitted by the server with the same serial number.
- Step 110 The line card box sends the first prompt message to the server.
- the line card box When the line card box detects that the count value in the first control packet is not equal to the total number of write memory operations performed after receiving the second control packet, it can be determined that there is a write packet loss or write If the memory operation fails, the first prompt message can be sent to the server.
- the first prompt information may be used to indicate that the write operation message sent by the server after the second control message is lost, so that the server retransmits the write operation message sent after the second control message.
- the first prompt information may include the sequence number of the first control message, then the first prompt information may indicate that the sequence number and the first control message are sent by the server after the second control message. Packets with the same sequence number are lost.
- the first prompt information may further include the sequence number of the second control message, then the first prompt information may indicate that the sequence number and the sequence of the second control message are sent by the server after the second control message The write operation packet whose number difference is the preset difference is lost.
- the first prompt message may further include an identifier indicating that the type of the lost message is a write operation message. For example, the identifier may be 1.
- Step 111 The server re-sends the line card box the write operation message sent after the second control message.
- the server When the server receives the first prompt message sent by the line card box, it may determine that the write operation message sent after the second control message is lost. In order to ensure the normal update of the forwarding entry, the server may resend the write operation message sent after the second control message. After receiving the write operation message resent by the server based on the first prompt information, the line card box may perform the method shown in step 104 again.
- Step 112 The line card box sends second prompt information to the server.
- step 108 when the line card box detects that the difference between the sequence number of the first control packet and the sequence number of the third control packet is not the preset difference, it may be determined that the third control packet
- the control message sent after the message is lost, so you can send a second prompt message to the server, the second prompt message is used to indicate that the control message sent by the server after the third control message is lost, so that the server can re-send The write operation message sent after the third control message.
- the second prompt information may include the sequence number of the third control message.
- the second prompt message may also include the sequence number of the first control message, then the second prompt message may instruct the server to check the third control message and the first Control messages sent between control messages are lost.
- the line card box may also calculate the sequence number of the lost control message according to the sequence number of the third control message, the sequence number of the first control message, and the preset difference, and the second prompt message May include the sequence number of the lost control message, and the server may directly determine the lost control message based on the second prompt information.
- the second prompt information may further include an identifier indicating that the type of the lost message is a control message.
- the identifier may be 2.
- Step 113 The server re-sends the line card box the write operation message sent after the third control message according to the second prompt message.
- the server When the server receives the second prompt message sent by the line card box, it can be determined that the control message sent after the third control message is lost, then the line card box cannot detect the write operation sent after the third control message Whether the write operation data in the message has been successfully written into the memory. Therefore, the server can re-send to the line card box the write operation message sent after the third control message.
- FIG. 10 is a flowchart of a method for resending a write operation message according to an embodiment of the present invention.
- the application scenario of this method may be the same as the embodiment shown in FIG. 1.
- the method may include:
- Step 114 The server detects whether the idle duration of the write operation packet not sent after the control packet is greater than the duration threshold.
- the server can detect whether the idle time period after which the write operation message is not sent after the control message is sent is greater than the time period threshold.
- the server may execute step 115.
- the server may continue to perform step 114, that is, continue to detect whether the idle duration is greater than the duration threshold.
- the duration threshold T1 may be a fixed value preset in the server, for example, the duration threshold T1 may be 1 second.
- Step 115 The server sends a keep-alive message to the line card box.
- the server may send a keep-alive message to the line card box when it detects that the idle time period after the control message is sent without writing the write operation message is greater than the time threshold.
- the line card box can receive keep-alive messages sent by the server.
- the keep-alive message may include a sequence number, and the difference between the sequence number of the keep-alive message and the sequence number of the last control message sent before the keep-alive message is the preset difference value.
- the keep-alive message sent by the server may include a MAC header field, an IP header field, a UDP header field, and an SN field.
- the definitions of the MAC header field, IP header field, and UDP header field can all be the same as the definitions in the write operation packet, which will not be repeated here.
- the source port number of the UDP header field in the keep-alive packet may be added with an identifier indicating that the type of the packet is a keep-alive packet, for example, the identifier may be 2.
- the SN field of the keep-alive message can be used to record the sequence number of the keep-alive message.
- the server can send a keep-alive message when it detects that the idle time t2 of the unsent write operation message is greater than the time threshold T1.
- step 114 after the server sends the keep-alive message to the line card box, the method shown in step 114 may also be performed, that is, to detect that the write operation message is not sent after the keep-alive message is idle. Whether the duration is greater than the duration threshold, if it is greater than the duration threshold, step 115 may be continued, that is, continue to send keep-alive messages to the line card box.
- the sequence number of the keep-alive message and the sequence number of the previous keep-alive message may also be the preset difference.
- Step 116 The line card box detects whether the difference between the sequence number of the keep-alive message and the sequence number of the fourth control message is the preset difference.
- the line card box may detect whether the difference between the sequence number of the keepalive message and the sequence number of the fourth control message is the preset difference.
- the fourth control message is the previous control message received by the line card box before the keep-alive message.
- the line card box detects that the difference between the sequence number of the keep-alive message and the sequence number of the fourth control message is not the preset difference, it can determine the control message sent after the fourth control message The text is missing, so step 117 can be performed.
- the line card box detects that the difference between the sequence number of the keep-alive message and the sequence number of the fourth control message is the preset difference, it can be determined that no control message is lost, so the current state can be kept unchanged.
- the line card box may store the serial number of the last control message in memory or a register. Therefore, after receiving the keepalive message, the line card box can directly detect whether the difference between the sequence number of the keepalive message and the sequence number of the last control message stored in it is the preset difference. In addition, after the line card box completes the difference detection, the sequence number of the last control message stored in the line card box can be updated to the sequence number of the keep-alive message, so that it can continue to be based on the last control message in the future The serial number of the text calculates the difference and performs the difference detection.
- the line card box may also Based on the resource occupancy rate of the core, the keep-alive message is distributed to the corresponding processor core for processing.
- Step 117 The line card box sends the third prompt message to the server.
- the line card box When the line card box detects that the difference between the sequence number of the keep-alive message and the sequence number of the fourth control message is not the preset difference, it can determine the control message sent after the fourth control message If the message is lost, the third prompt message may be sent to the server, where the third prompt message is used to indicate that the control message sent by the server after the fourth control message is lost.
- the third prompt message may include the sequence number of the fourth control message.
- the third prompt message may also include the serial number of the keep-alive message, and the third prompt message may instruct the server to check the fourth control message and the keep-alive message.
- the control packets sent between the documents are lost.
- the line card box may also calculate the sequence number of the lost control message according to the sequence number of the fourth control message, the sequence number of the keep-alive message, and the preset difference.
- the third prompt message The sequence number of the lost control message may be included, and the server may directly determine the lost control message based on the third prompt information.
- the third prompt information may further include an identifier for indicating that the type of the lost message is a control message.
- the identifier may be 2.
- Step 118 The server re-sends the line card box the write operation message sent after the fourth control message according to the third prompt message.
- the server When the server receives the third prompt message sent by the line card box to indicate that the control message sent after the fourth control message is lost, it can re-send to the line card box after the fourth control message. Write operation message.
- each time the server sends a write operation message it can continue to send subsequent write operation messages without waiting for the response of the line card box, thereby ensuring that the routing is delivered at a high rate.
- the server can cache the write operation information in the sent write operation message or directly cache the sent write operation message, and the cache of the write operation information or write operation message
- the duration T2 may be much greater than the duration threshold T1. For example, when the duration threshold is 1 second, the cache duration may be 1 minute. Therefore, when the server receives the first prompt information, the second prompt information, or the third prompt information sent by the line card box, it can timely resend the corresponding write operation message based on the cached write operation information or write operation message .
- the server determines that the write operation message sent after the second control message is lost according to the received first prompt information, and the second control message needs to be resent All write operation packets sent afterwards.
- the server determines that the control message sent after a certain control message is lost according to the received second prompt information or third prompt information, it needs to retransmit all write operation messages sent after the certain control message.
- the server sequentially sends write operation messages with SN 1 to 4 and prepares to send write operation messages with SN 5 to receive the first prompt message sent by the line card box.
- the line card box can timely detect that the write operation message is lost based on the received control message, and promptly send the first prompt message to the server.
- the time between the server sending the write operation message and receiving the first prompt message is generally within 100 microseconds (us), and the server caches the write operation information or the write operation message buffer time T2 is much greater than 100us, so it can Ensure that the lost write operation message is resent in a timely manner.
- the line card box needs to determine that the control message is lost based on the control message or keep-alive message sent later. Since the idle time before the keep-alive message is sent is at least T1, the longest time required by the server from sending the write operation message to receiving the second prompt information or the third prompt information is slightly longer than T1.
- the server caches the write operation information or the cache duration of the write operation message T2 is much greater than T1, so it can ensure that the write operation message is resent in a timely manner.
- the server may also send a reset message to the line card box.
- the reset message includes the reset message. Set the serial number. The difference between the sequence number of the first write operation packet to be resent by the server and the reset sequence number is the preset difference.
- the reset message may be used to instruct the line card box to update the sequence number of the last control message stored in it to the reset sequence number.
- the line card box Under the instruction of the reset message, the line card box updates the sequence number of the last control message stored in the line card box to the reset sequence number, which can ensure that the write operation message resent by the server is received After the control message, the reset sequence number can be used to accurately determine whether any control message is lost.
- step 108 can be deleted according to the situation; or, steps 106 to 113 can be deleted according to the situation; or, steps 114 to 118 can be deleted according to the situation.
- steps 106 to 113 can be deleted according to the situation; or, steps 114 to 118 can be deleted according to the situation.
- the embodiment of the present invention provides a method for updating forwarding entries.
- the write operation information in the write operation message sent by the server to the line card box includes the write operation data and the write operation address.
- the line card box can directly According to the write operation address, write the write operation data into the memory, thereby completing the update of the forwarding entry. Since the line card box only needs to perform the write memory operation, and does not need to perform the operation of calculating the write operation data, the rate at which the server sends the write operation message will not be limited by the processing performance of the line card box, effectively improving the forwarding table Delivery rate and update efficiency.
- the server can also send a control message carrying a count value to the line card box. When the line card box detects that a write operation packet is lost based on the control message, it can instruct the server to resend the write operation packet, thereby ensuring Reliability when forwarding entries are updated.
- FIG. 14 is a schematic structural diagram of an apparatus for updating a forwarding entry provided by an embodiment of the present invention.
- the apparatus can be applied to a message receiving end, for example, the line card box 02 in the routing system shown in FIG. 1.
- the device may include:
- the receiving module 201 is configured to receive a write operation message, the write operation message includes write operation information, and the write operation information includes write operation data and a write operation address, and the write operation data is used to indicate a forwarding entry to be updated, The write operation address is used to indicate the address in the memory where the write operation data is to be written.
- step 103 For the function implementation of the receiving module 201, reference may be made to the relevant description of step 103 in the foregoing method embodiment.
- the obtaining module 202 can be used to obtain write operation information from the write operation message.
- the receiving module 201 reference may be made to the relevant description of step 104 in the foregoing method embodiment.
- the writing module 203 may be used to write the write operation data to the memory according to the write operation address in the write operation information.
- the writing module 203 reference may be made to the related description of step 105 in the foregoing method embodiment.
- the receiving module 201 can also be used to receive a first control message after the write module 203 writes the write operation data into the memory, the first control message includes a count value, and the count value
- the second control message is the previous message sent before the first control message A control message.
- the device may further include:
- the detection module 204 can be used to detect whether the total number of write memory operations performed after receiving the second control message is equal to the count value.
- the write memory operation refers to the operation of writing write operation data into the memory.
- the sending module 205 may be used to send first prompt information when the count value is not equal to the total number of times, and the first prompt information is used to indicate that the write operation packet sent after the second control packet is lost.
- the sending module 205 reference may be made to the relevant description of step 110 in the foregoing method embodiment.
- the receiving module 201 may also be used to receive the write operation message resent based on the first prompt information.
- the function implementation of the receiving module 201 reference may also be made to the relevant description of step 111 in the foregoing method embodiment.
- each control message also includes a sequence number, and the sequence number in the control message sent by the message sending end is sequentially increased.
- the detection module 204 can also be used for:
- the receiving module 201 After receiving the first control message, the receiving module 201 detects whether the difference between the sequence number of the first control message and the sequence number of the third control message is a preset difference, and the third control message is The previous control message received before the first control message;
- the difference between the sequence number of the first control message and the sequence number of the third control message is a preset difference, it is determined that the third control message is the second control message, and it is detected that Whether the total number of write memory operations performed after the third control message is equal to the count value.
- step 108 and step 109 for the function implementation of the detection module 204, reference may be made to the relevant descriptions of step 108 and step 109 in the foregoing method embodiment.
- the sending module 205 may also be used to send second prompt information when the difference between the sequence number of the first control message and the sequence number of the third control message is not a preset difference,
- the second prompt information is used to indicate that the control message sent after the third control message is lost.
- the sending module 205 reference may also be made to the relevant description of step 112 in the foregoing method embodiment.
- the receiving module 201 may also be used to receive the write operation message resent based on the second prompt information.
- the function implementation of the receiving module 201 reference may also be made to the relevant description of step 113 in the foregoing method embodiment.
- the receiving module 201 may also be used to receive a keep-alive message, where the keep-alive message includes a sequence number, the sequence number of the keep-alive message sent by the sender of the message, and the keep-alive message
- the difference of the sequence number of the previous control message sent before the message is the preset difference.
- the receiving module 201 reference may also be made to the related description of step 115 in the foregoing method embodiment.
- the detection module 204 can also be used to detect whether the difference between the sequence number of the keep-alive message and the sequence number of the fourth control message is the preset difference, and the fourth control message is The previous control message received before the message.
- the detection module 204 For the function implementation of the detection module 204, reference may also be made to the relevant description of step 116 in the foregoing method embodiment.
- the sending module 205 may also be used to send a third prompt message when the difference between the sequence number of the keep-alive message and the sequence number of the fourth control message is not the preset difference, the third prompt message
- the information is used to indicate that the control message sent after the fourth control message is lost.
- the sending module 205 reference may also be made to the related description of step 117 in the foregoing method embodiment.
- the receiving module 201 is further configured to receive the write operation message resent based on the third prompt information.
- the receiving module 201 For the function implementation of the receiving module 201, reference may also be made to the relevant description of step 118 in the foregoing method embodiment.
- the write operation message also includes a sequence number, and the size of the sequence number of the write operation message sent by the message sending end between the two control messages is the same as the sequence of the control message sent later The numbers are equal.
- the device may further include:
- the statistics module 206 can be used to count the total number of write memory operations performed by the write operation packet based on the same sequence number after the write module writes the write operation data to the memory, to obtain the corresponding relationship between the sequence number and the total number .
- the statistical module 206 For the function implementation of the statistical module 206, reference may be made to the relevant description of step 106 in the foregoing method embodiment.
- the detection module 204 can be used to: obtain the total number of times corresponding to the sequence number of the first control message; and detect whether the total number of times corresponding to the sequence number of the first control message is equal to the count value.
- the embodiment of the present invention provides an update device for forwarding entries.
- the write operation information in the write operation message received by the device includes write operation data and a write operation address, so it can be directly based on the write operation Address, write the write operation data into the memory, thus completing the update of the forwarding entry. Since the device only needs to perform the write memory operation, and does not need to perform the operation of calculating the write operation data, the rate at which the write sender sends the write operation message will not be limited by the processing performance of the device, effectively improving the forwarding table Item delivery rate and update efficiency.
- FIG. 16 is a schematic structural diagram of yet another forwarding entry update device provided by an embodiment of the present invention.
- the update device can be applied to a message sending end, for example, can be applied to the server 01 of the routing system shown in FIG. 1.
- the device may include:
- the generating module 301 can be used to generate write operation information according to the forwarding entry to be updated, the write operation information includes write operation data and a write operation address, the write operation data is used to indicate the forwarding entry to be updated, the write operation The address is used to indicate the address of the write operation data to be written.
- the generating module 301 For the function implementation of the generating module 301, reference may be made to the relevant description of step 101 in the foregoing method embodiment.
- the encapsulation module 302 can be used to encapsulate the generated write operation information into a write operation message.
- the packaging module 302 reference may be made to the relevant description of step 102 in the foregoing method embodiment.
- the sending module 303 may be used to send the write operation message, and the write operation message is used to indicate that the write operation data is written into the memory according to the write operation address in the write operation information.
- the sending module 303 For the function implementation of the sending module 303, reference may be made to the relevant description of step 103 in the foregoing method embodiment.
- the sending module 303 can also be used for:
- the message is the previous control message sent before the first control message
- the first prompt message is sent when the message receiving end detects that the total number of write memory operations performed after receiving the second control message is not equal to the count value.
- step 107 and step 111 for the function implementation of the sending module 303, reference may also be made to the related descriptions of step 107 and step 111 in the foregoing method embodiment.
- each control message also includes a sequence number, and the sequence number in the control message sent by the message sending end is sequentially increased; the sending module 303 may also be used to:
- the second prompt message is sent when the receiving end of the message detects that the difference between the sequence number of the first control message and the sequence number of the third control message is not a preset difference, the third The control message is the previous control message received by the message receiving end before the first control message.
- step 113 For the function implementation of the sending module 303, reference may also be made to the relevant description of step 113 in the foregoing method embodiment.
- the device may further include:
- the detection module 304 may be used to detect whether the idle time period after the control message is sent after the control message is sent by the sending module is greater than the time threshold.
- the detection module 304 For the function implementation of the detection module 304, reference may be made to the related description of step 114 in the foregoing method embodiment.
- the sending module 303 can also be used for:
- a keep-alive packet is sent, and the keep-alive packet includes the sequence number, and the difference between the sequence number of the keep-alive packet and the sequence number of the previous control packet is the Set the difference;
- the third prompt message is sent when the message receiving end detects that the difference between the sequence number of the keep-alive message received and the sequence number of the fourth control message is not a preset difference, the The fourth control message is the previous control message received by the message receiving end before the keep-alive message.
- step 115 and step 118 for the function implementation of the sending module 303, reference may also be made to the related descriptions of step 115 and step 118 in the foregoing method embodiments.
- the embodiment of the present invention provides an update device for forwarding entries.
- the write operation information in the write operation message sent by the device includes the write operation data and the write operation address.
- the receiver of the message can directly Write operation address, write the write operation data into the memory, thereby completing the update of the forwarding entry. Since the message receiving end only needs to perform the write memory operation without performing the operation of calculating the write operation data, the rate at which the device sends the write operation message will not be limited by the processing performance of the message receiving end, effectively improving the transfer Delivery rate and update efficiency of published items.
- the apparatus for updating forwarding entries in the embodiment of the present invention may also be implemented with an application-specific integrated circuit (ASIC) or a programmable logic device (PLD). It is a complex program logic device (complex programmable logic device, CPLD), field programmable gate array (field-programmable gate array, FPGA), general array logic (generic array logic, GAL) or any combination thereof.
- ASIC application-specific integrated circuit
- PLD programmable logic device
- CPLD complex programmable logic device
- FPGA field programmable gate array
- GAL general array logic
- the method for updating forwarding entries provided by the above method embodiments may also be implemented by software.
- each module in the device for updating forwarding entries may also be Software module.
- FIG. 18 is a schematic structural diagram of yet another forwarding entry updating device provided by an embodiment of the present invention.
- the device may include: a processor 1201, a memory 1202, a network interface 1203, and a bus 1204.
- the bus 1204 is used to connect the processor 1201, the memory 1202, and the network interface 1203. Through the network interface 1203 (which may be wired or wireless), a communication connection with other devices can be achieved.
- a computer program 12021 is stored in the memory 1202, and the computer program 12021 is used to implement various application functions.
- the processor 1201 may be a CPU, and the processor 1201 may also be other general-purpose processors, digital signal processors (DSPs), application specific integrated circuits (ASICs), and field programmable gate arrays ( FPGA), GPU or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc.
- DSPs digital signal processors
- ASICs application specific integrated circuits
- FPGA field programmable gate arrays
- GPU GPU or other programmable logic devices, discrete gate or transistor logic devices, discrete hardware components, etc.
- a general-purpose processor may be a microprocessor or any conventional processor.
- the memory 1202 may be volatile memory or nonvolatile memory, or may include both volatile and nonvolatile memory.
- the non-volatile memory can be read-only memory (read-only memory, ROM), programmable read-only memory (programmable ROM, PROM), erasable programmable read-only memory (erasable PROM, EPROM), electronically Erase programmable EPROM (EEPROM) or flash memory.
- the volatile memory may be a random access memory (random access memory, RAM), which is used as an external cache.
- RAM random access memory
- SRAM static random access memory
- DRAM dynamic random access memory
- SDRAM synchronous dynamic random access memory
- Double data rate synchronous dynamic random access memory double data SDRAM, DDR SDRAM
- enhanced SDRAM enhanced synchronous dynamic random access memory
- SLDRAM synchronous connection dynamic random access memory
- direct RAMbus direct RAMbus, DR, RAM
- the bus 1204 may also include a power bus, a control bus, and a status signal bus. However, for clarity, various buses are marked as the bus 1204 in the figure.
- the processor 1201 When the device is applied to the message sending end, the processor 1201 is configured to execute the computer program 12021 stored in the memory 1202, and the processor 1201 implements the computer program 12021 to implement steps 101 to 103 and steps in the above method embodiment 107, Step 111, Step 113 to Step 115 and Step 118. Moreover, the methods shown in the above steps 103, 107, 111, 113, 115 and 118 may be implemented by the processor 1201 driving the network interface 1203 by executing the computer program 12021.
- the processor 1201 When the device is applied to a message receiving end, the processor 1201 is configured to execute a computer program stored in the memory 1202, and the processor 1201 implements the computer program 12021 to implement steps 104 to 106, and 108 in the foregoing method embodiment Go to steps 110, 112, and 116 and 117.
- the method shown in steps 110, 112, and 117 may be implemented by the processor 1201 driving the network interface 1203 by executing the computer program 12021.
- Embodiments of the present invention also provide a computer-readable storage medium, in which instructions are stored.
- the instructions stored in the computer-readable storage medium run on a computer, the computer is executed as described above Examples are methods performed by the server, or methods performed by the line card box.
- An embodiment of the present invention also provides a computer program product containing instructions, which when executed on a computer, causes the computer to execute the method performed by the server in the above method embodiment or the method performed by the line card box.
- An embodiment of the present invention further provides a forwarding entry sending system.
- the system may include: a message sending end and a message receiving end.
- the system may be a routing system as shown in FIG. 1, the message sending end may be a server 01, and the message receiving end may be a line card box 02.
- the message sending end may include the device shown in FIG. 16 or FIG. 17, and the message receiving end may include the device shown in FIG. 14 or FIG. 15.
- the above embodiments can be implemented in whole or in part by software, hardware, firmware, or any other combination.
- the above-described embodiments may be fully or partially implemented in the form of computer program products.
- the computer program product includes one or more computer instructions.
- the processes or functions according to the embodiments of the present invention are generated in whole or in part.
- the computer may be a general-purpose computer, a dedicated computer, a computer network, or other programmable devices.
- the computer instructions may be stored in a computer-readable storage medium or transmitted from one computer-readable storage medium to another computer-readable storage medium, for example, the computer instructions may be from a website site, computer, server or data center Transmit to another website, computer, server or data center by wired (such as coaxial cable, optical fiber, digital subscriber line (DSL)) or wireless (such as infrared, wireless, microwave, etc.).
- the computer-readable storage medium may be any available medium that can be accessed by a computer or a data storage device such as a server or a data center that contains one or more collections of available media.
- the usable medium may be a magnetic medium (for example, a floppy disk, a hard disk, a magnetic tape), an optical medium (for example, a DVD), or a semiconductor medium.
- the semiconductor medium may be a solid state drive (SSD).
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
一种转发表项的更新方法及装置,属于通信领域。在该方法中,报文发送端发送的写操作报文中的写操作信息包括写操作数据和写操作地址,报文接收端接收到该写操作报文后,可以获取写操作信息,并可以直接根据该写操作地址,将写操作数据写入内存中,从而完成转发表项的更新。由于报文接收端仅需执行写内存操作,而无需再执行计算写操作数据的操作,因此报文发送端下发写操作报文的速率不会受到报文接收端处理性能的限制,有效提高了转发表项的下发速率和更新效率。
Description
本申请要求于2018年10月09日提交的申请号为201811172338.X、发明名称为“转发表项的更新方法及装置”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。
本申请涉及通信领域,特别涉及一种转发表项的更新方法及装置。
为了提高路由器的数据吞吐量,目前路由器一般采用分布式方式部署,该分布式部署的路由器也可以称为路由系统。该路由系统可以包括服务器、与该服务器连接的线卡盒子,以及与该线卡盒子连接的交换盒子。其中,服务器为路由系统的主控设备,其运行有各种网络协议。线卡盒子中部署有网络处理器,用于实现包处理、协议分析和路由查找等硬转发功能。交换盒子用于实现数据报文的交换。
相关技术中,服务器可以与线卡盒子建立通信连接,并可以向该线卡盒子发送用于指示添加或删除转发表项的指示信息。线卡盒子的网络处理器通过业务接口收到该指示信息后,可以将该指示信息转发给处理器,处理器可以按照路由算法对该指示信息进行处理,生成写操作数据,并可以将该写操作数据发送至网络处理器。网络处理器进而可以将该写操作数据写入内存,从而完成转发表项的更新。
但是,由于线卡盒子的处理器的处理性能有限,因此服务器下发指示信息的速率受限,转发表项的更新效率较低。
发明内容
本申请提供了一种转发表项的更新方法及装置,可以解决相关技术中转发表项的更新效率较低的问题,技术方案如下:
第一方面,提供了一种转发表项的更新方法,该方法可以应用于报文接收端,该方法可以包括:
接收写操作报文,该写操作报文中包括写操作信息,该写操作信息包括写操作数据和写操作地址,该写操作数据用于指示待更新的转发表项,该写操作地址用于指示内存中待写入该写操作数据的地址;从该写操作报文中获取该写操作信息;根据该写操作信息中的写操作地址,将该写操作数据写入该内存。
本申请提供的转发表项的更新方法,报文接收端可以直接根据写操作报文中的写操作地址,将写操作数据写入内存中。由于报文接收端仅需执行写内存操作,而无需再执行计算写操作数据的操作,因此报文发送端下发写操作报文的速率不会受到报文接收端处理性能的限制,有效提高了转发表项的下发速率和更新效率。
可选的,报文接收端在将该写操作数据写入内存之后,该方法还可以包括:
接收第一控制报文,该第一控制报文中包括计数值;检测在接收到该第二控制报文 之后执行的写内存操作的总次数与该计数值是否相等;其中,该写内存操作是指将写操作数据写入内存的操作,该计数值为报文发送端在第二控制报文和该第一控制报文之间发送的写操作报文中所包括的写操作信息的总数,该第二控制报文为在该第一控制报文之前发送的前一个控制报文;
当该计数值与该总次数不相等时,报文接收端可以发送第一提示信息,该第一提示信息用于指示报文发送端在该第二控制报文之后发送的写操作报文丢失;之后,报文接收端即可接收报文发送端基于该第一提示信息重新发送的写操作报文。
报文接收端基于第一控制报文中的计数值检测是否存在写操作报文丢失,当检测到写操作报文丢失时,可以通过第一提示信息指示报文发送端重新发送写操作报文,由此可以确保转发表项的正确更新,提高了转发表项更新时的可靠性。
可选的,每个控制报文中还包括序列号,且报文发送端发送的控制报文中的序列号依次递增;在报文接收端接收到第一控制报文之后,该方法还可以包括:
检测该第一控制报文的序列号与第三控制报文的序列号的差值是否为预设差值,该第三控制报文为在该第一控制报文之前接收到的前一个控制报文;
相应的,报文接收端检测在接收到该第二控制报文之后执行的写内存操作的总次数与该计数值是否相等的过程可以包括:
当该第一控制报文的序列号与该第三控制报文的序列号的差值为预设差值时,确定该第三控制报文为该第二控制报文,并检测在接收到该第三控制报文之后执行的写内存操作的总次数与该计数值是否相等。
由于控制报文在传输过程中可能丢失,因此报文接收端在检测计数值之前,可以先通过第一控制报文的序列号检测是否有控制报文丢失,当检测到控制报文未丢失时再继续检测计数值,可以确保计数值检测的准确性和可靠性。
可选的,报文接收端在检测到该第一控制报文的序列号与该第三控制报文的序列号的差值不为预设差值时,还可以发送第二提示信息,该第二提示信息用于指示在该第三控制报文之后发送的控制报文丢失;之后,报文接收端即可接收基于该第二提示信息重新发送的写操作报文。
当报文接收端基于第一控制报文的序列号检测到有控制报文丢失时,为了确保能够对已执行的写内存操作的次数进行有效检测,可以通过第二提示信息指示报文发送端重新发送写操作报文,由此可确保转发表项的正确更新,提高转发表项更新时的可靠性。
可选的,该方法还可以包括:
接收保活报文,该保活报文中包括序列号,该报文发送端发送的该保活报文的序列号与在该保活报文之前发送的前一个控制报文的序列号的差值为该预设差值;检测该保活报文的序列号与第四控制报文的序列号的差值是否为该预设差值,该第四控制报文为在该保活报文之前接收到的前一个控制报文;当该保活报文的序列号与该第四控制报文的序列号的差值不为该预设差值时,报文接收端可以发送第三提示信息,该第三提示信息用于指示在该第四控制报文之后发送的控制报文丢失;之后,报文接收端即可接收基于该第三提示信息重新发送的写操作报文。
报文发送端长时间无写操作报文发送时,可以发送保活报文,报文接收端还可以通过该保活报文判断是否有控制报文丢失。从而可以在检测到有控制报文丢失时,及时通 过第三提示信息指示报文发送端重新发送写操作报文,确保转发表项的正确更新。
可选的,该写操作报文中还可以包括序列号,且报文发送端在两个控制报文之间发送的写操作报文的序列号的大小均与在后发送的控制报文的序列号的大小相等;报文接收端在将该写操作数据写入内存之后,还可以统计基于同一序列号的写操作报文执行的写内存操作的总次数,得到序列号与总次数的对应关系;
相应的,报文接收端检测在接收到该第二控制报文之后执行的写内存操作的总次数与该计数值是否相等的过程可以包括:
获取该第一控制报文的序列号所对应的总次数,并检测该第一控制报文的序列号所对应的总次数与该计数值是否相等。
报文接收端以写操作报文的序列号为索引对写内存操作的总次数进行统计,以便接收到控制报文时,可以直接以控制报文的序列号为索引,获取对应的总次数,由此有效提高了检测验证总次数的效率,进而提高了转发表项的更新效率。
可选的,报文接收端在根据该写操作信息中的写操作地址,将该写操作数据写入内存时,可以按照该写操作报文的接收顺序,以及该写操作报文中包括的该写操作信息的顺序,依次根据每个该写操作信息中的写操作地址,将该写操作数据写入内存。
报文接收端按照写操作报文的接受顺序,以及写操作报文中包括的写操作信息的顺序,按序执行写内存操作,可以保证转发表项的正确更新。
第二方面,提供了一种转发表项的更新方法,该方法可以应用于报文发送端,该方法可以包括:
根据待更新的转发表项生成写操作信息,该写操作信息包括写操作数据和写操作地址,该写操作数据用于指示该待更新的转发表项,该写操作地址用于指示待写入该写操作数据的地址;将生成的该写操作信息封装为写操作报文,并发送该写操作报文,该写操作报文用于指示根据该写操作信息中的写操作地址,将该写操作数据写入内存。
本申请提供的方法,报文接收端可以直接根据写操作报文中的写操作信息执行写内存的操作,而无需再执行计算写操作数据的操作,从而提高了转发表项的下发速率和更新效率。
可选的,该方法还可以包括:
发送第一控制报文,该第一控制报文中包括计数值,该计数值为在发送第二控制报文之后发送的写操作报文中所包括的写操作信息的总数,该第二控制报文为在该第一控制报文之前发送的前一个控制报文;当接收到用于指示在该第二控制报文之后发送的写操作报文丢失的第一提示信息时,重新发送在该第二控制报文之后发送的写操作报文;其中,该第一提示信息为报文接收端检测到在接收到该第二控制报文之后执行的写内存操作的总次数与该计数值不相等时发送的。
报文发送端发送第一控制报文,使得报文接收端可以基于第一控制报文中的计数值,检测是否存在写操作报文丢失。当检测到写操作报文丢失时,可以通过第一提示信息指示报文发送端重新发送写操作报文,由此可以确保转发表项的正确更新,提高了转发表项更新时的可靠性。
可选的,每个控制报文中还包括序列号,且报文发送端发送的控制报文中的序列号依次递增;该方法还可以包括:
当接收到用于指示在第三控制报文之后发送的控制报文丢失的第二提示信息时,重新发送在该第三控制报文之后发送的写操作报文;其中,该第二提示信息为报文接收端在检测到该第一控制报文的序列号与该第三控制报文的序列号的差值不为预设差值时发送的,该第三控制报文为该报文接收端在该第一控制报文之前接收到的前一个控制报文。
报文发送端接收到用于指示控制报文丢失的第二提示信息时,可以重新发送写操作报文,由此可以确保转发表项的正确更新,提高了转发表项更新时的可靠性。
可选的,在每次发送控制报文之后,该方法还可以包括:
检测在发送控制报文之后未发送写操作报文的空闲时长是否大于时长阈值;当该空闲时长大于该时长阈值时,发送保活报文,该保活报文中包括序列号,且该保活报文的序列号与上一个控制报文的序列号的差值为该预设差值;当接收到用于指示在第四控制报文之后发送的控制报文丢失的第三提示信息时,重新发送在该第四控制报文之后发送的写操作报文;其中,该第三提示信息为报文接收端在检测到接收到的该保活报文的序列号与该第四控制报文的序列号的差值不为预设差值时发送的,该第四控制报文为该报文接收端在该保活报文之前接收到的前一个控制报文。
报文发送端接收到用于指示控制报文丢失的第三提示信息时,可以重新发送写操作报文,由此可以确保转发表项的正确更新,提高了转发表项更新时的可靠性。
第三方面,提供了一种转发表项的更新装置,该装置可以应用于报文接收端,该装置可以包括至少一个模块,且该至少一个模块可以用于实现上述第一方面所提供的转发表项的更新方法。
第四方面,提供了一种转发表项的更新装置,该装置可以应用于报文发送端,该装置可以包括至少一个模块,且该至少一个模块可以用于实现上述第二方面所提供的转发表项的更新方法。
第五方面,提供了一种转发表项的更新装置,该装置可以包括:存储器,处理器及存储在该存储器上并可在该处理器上运行的计算机程序,该处理器执行该计算机程序时实现如上述第一方面所提供的转发表项的更新方法,或者如上述第二方面所提供的转发表项的更新方法。
第六方面,提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当该计算机可读存储介质中存储的指令在计算机上运行时,使得计算机执行如上述第一方面所提供的转发表项的更新方法,或者如上述第二方面所提供的转发表项的更新方法。
第七方面,提供了一种包含指令的计算机程序产品,当该指令在计算机上运行时,使得计算机执行上述第一方面所提供的转发表项的更新方法,或者上述第二方面所提供的转发表项的更新方法。
第八方面,提供了一种转发表项的发送系统,该系统可以包括:报文发送端和报文接收端;该报文发送端可以包括上述第四方面所提供的装置;该报文接收端可以包括如上述第三方面所提供的装置。
本申请提供的技术方案至少包括以下有益效果:
本申请提供了一种转发表项的更新方法及装置,报文发送端发送的写操作报文中的写操作信息包括写操作数据和写操作地址,报文接收端可以直接根据该写操作地址,将写操作数据写入内存中,从而完成转发表项的更新。由于报文接收端仅需执行写内存操 作,而无需再执行计算写操作数据的操作,因此报文发送端下发写操作报文的速率不会受到报文接收端处理性能的限制,有效提高了转发表项的下发速率和更新效率。
图1是本发明实施例提供的一种路由系统的结构示意图;
图2是本发明实施例提供的一种线卡盒子的结构示意图;
图3是本发明实施例提供的一种转发表项的更新方法的流程图;
图4是本发明实施例提供的一种写操作报文的结构示意图;
图5是本发明实施例提供的一种服务器的架构图;
图6是本发明实施例提供的一种线卡盒子的局部结构示意图;
图7是本发明实施例提供的一种线卡盒子的架构图;
图8是本发明实施例提供的另一种线卡盒子的架构图;
图9是本发明实施例提供的一种控制报文的结构示意图;
图10是本发明实施例提供的一种重新发送写操作报文的方法的流程图;
图11是本发明实施例提供的一种保活报文的结构示意图;
图12是本发明实施例提供的又一种线卡盒子的架构图;
图13是本发明实施例提供的一种服务器缓存写操作信息的示意图;
图14是本发明实施例提供的一种转发表项的更新装置的结构示意图;
图15是本发明实施例提供的另一种转发表项的更新装置的结构示意图;
图16是本发明实施例提供的又一种转发表项的更新装置的结构示意图;
图17是本发明实施例提供的再一种转发表项的更新装置的结构示意图;
图18是本发明实施例提供的再一种转发表项的更新装置的结构示意图。
下面结合附图详细介绍本申请实施例提供的转发表项的更新方法。
图1是本发明实施例提供的一种路由系统的结构示意图,如图1所示,该路由系统可以包括:服务器01、多个线卡盒子02以及多个交换盒子03。其中,每个线卡盒子02均与该服务器01连接,且每个线卡盒子02可以与至少一个交换盒子03连接。该多个交换盒子03可以级联。其中,服务器01可以是一台服务器,也可以是由若干台服务器组成的服务器集群,或者还可以是一个云计算服务中心。该服务器01为该路由系统的主控设备,其运行有各种网络协议,用于实现对多个线卡盒子02的统一管理,因此也可以称为主控服务器或者控制面服务器。每个线卡盒子02中可以部署有核心处理器,该核心处理器可以为网络处理器(network processor,NP)、专用集成电路(application specific integrated circuit,ASIC)或现场可编程门阵列(field programmable gate array,FPGA)等硬转发器件,该核心处理器用于实现包处理、协议分析和路由查找等转发功能。其中,硬转发器件是指线卡盒子02中专用于实现转发功能的硬件。交换盒子03用于实现数据报文的交换。该分布式部署的路由系统的架构为横向扩展(scale-out)架构,线卡盒子02和交换盒子03的数量可以根据应用场景的需求增加,该路由系统的吞吐量较高,因此也可以称为拍字节(petabyte,PB)路由器。
图2是本发明实施例提供的一种线卡盒子的结构示意图。以该线卡盒子中的核心处理器为NP为例进行说明,如图2所示,每个线卡盒子02可以包括中央处理器(central processing unit,CPU)、NP、内存和流量管理(traffic management,TM)模块。该NP分别与该CPU、内存和TM模块连接。该NP还可以通过业务侧接口与服务器01连接,该TM模块可以通过交换侧接口与交换盒子03连接。其中,该业务侧接口和交换侧接口可以均为以太网口。参考图2可以看出,该NP可以包括处理器核以及外设部件高速互连(peripheral component interconnect express,PCIE)模块,该PCIE模块可以通过PCIE总线与CPU连接,并通过内部总线与内存连接。处理器核可以通过业务侧接口与服务器01连接,并且处理器核还可以通过以太网接口与CPU连接,并通过内部总线与内存连接。
相关技术中,NP的处理器核可以通过业务接口与服务器01建立传输控制协议(transmission control protocol,TCP)连接。当该处理器核接收到服务器01发送的用于指示更新转发表项的指示信息后,可以将该指示信息转发给CPU,CPU可以基于路由算法表的格式,对该指示信息进行处理,生成写操作数据,并可以将该写操作数据通过PCIE总线发送至NP的PCIE模块。NP的PCIE模块进而可以将接收到的写操作数据串行写入内存,从而完成转发表项的更新。
但是,考虑到线卡盒子02的散热和功耗等硬件限制,其CPU的处理性能存在瓶颈,且单个线卡盒子02中所能够部署的CPU的个数也有限,因此该NP中CPU的处理性能会限制服务器下发指示信息的速率,进而限制转发表项的更新效率。并且,由于CPU需要通过PCIE总线来传输写操作数据,该PCIE总线的带宽也会限制写操作数据的下发效率,从而影响转发表项的更新效率。
本发明实施例提供了一种转发表项的更新方法,可以解决相关技术中转发表项更新效率较低的问题,该方法可以应用于需要通过报文发送端对报文接收端的转发表项进行更新的场景。例如,可以应用于图1所示的路由系统中,该路由系统的报文发送端为服务器01,报文接收端为线卡盒子02。在其他场景中,报文发送端和报文接收端还可以为其他类型的网元设备,例如报文接收端还可以为交换机等。
下面以该转发表项的更新方法应用于图1所示的路由系统为例,也即,以报文发送端为服务器,报文接收端为线卡盒子为例,对该转发表项的更新方法进行详细介绍。参考图3,该方法可以包括:
步骤101、服务器根据待更新的转发表项生成写操作信息。
在本发明实施例中,线卡盒子中可以存储有用于指导其进行数据流量转发的表,例如路由表(routing info base,RIB)和转发表(forwarding info base,FIB)等。该路由表和转发表中的转发表项可以是服务器基于路由协议学习得到并下发至线卡盒子的,或者可以是服务器根据本地静态配置下发至线卡盒子的。该待更新的转发表项可以是指该路由表或转发表中需要更新的表项,例如需要添加、更改或删除的路由。
服务器获取到待更新的转发表项后,可以根据线卡盒子中路由算法表的格式,生成用于指示该待更新的转发表项的写操作数据,该写操作数据可以包括目的地址、输出接口和下一跳互联网协议(internet protocol,IP)地址等数据。并且,服务器可以根据该待更新的转发表项在内存中的存储地址,确定该写操作数据的写操作地址,即线卡盒子的 内存中待写入该写操作数据的地址。服务器根据每个待更新的转发表项(即每条待更新的路由)可以生成一个或多个写操作信息,每个写操作信息可以包括写操作数据以及对应的写操作地址。其中,服务器根据待删除的路由生成的写操作信息中,写操作地址可以为该待删除的路由在线卡盒子的内存中的存储地址,写操作数据可以为缺省值或者可以为0。
步骤102、服务器将生成的写操作信息封装为写操作报文。
服务器可以根据与线卡盒子之间的通信协议,按照该通信协议指定的报文封装格式对写操作信息进行封装,得到写操作报文。例如,假设该服务器与线卡盒子之间建立的通信协议为以太网协议,则服务器可以按照以太网帧格式对该写操作信息进行封装,得到写操作报文。
可选的,服务器可以将基于一个待更新的转发表项生成的一个或多个写操作信息封装在一个写操作报文中;或者,也可以将基于多个待更新的转发表项生成的多个写操作信息封装在一个写操作报文中,以提高链路的利用率。因此服务器封装得到的每个写操作报文可以包括至少一个写操作信息。其中,至少一个是指一个或多个。
图4是本发明实施例提供的一种写操作报文的结构示意图。如图4所示,该服务器生成的写操作报文可以包括:MAC头字段、IP头字段、UDP头字段、SN字段、W_Num字段以及数据字段。
其中,MAC头字段包括该写操作报文的目的媒体访问控制(media access control,MAC)地址和源MAC地址等信息。IP头字段中包括该写操作报文的目的IP和源IP等信息,并且,该目的IP中还可以添加写操作标识,线卡盒子的NP接收到该写操作报文后,可以根据该目的IP中的写操作标识,确定该写操作报文为用于指示执行写内存操作的报文。UDP头字段中可以包括该写操作报文的源端口号和目的端口号等信息,其中该源端口号中还可以添加用于指示该报文的类型为写操作报文的标识,例如该标识可以为0。
SN字段用于记录该写操作报文的序列号(sequence number,SN)。服务器可以分批次发送写操作报文,每个批次可以包括一个或多个写操作报文。每个批次包括的写操作报文的序列号的大小相等,且每个批次的写操作报文的序列号与前一批次的写操作报文的序列号的差值为预设差值,即服务器发送的各批次的写操作报文的序列号依次递增。
W_Num字段用于记录该写操作报文中包括的写操作信息的个数,即该写操作报文所指示的写内存操作的个数。
数据字段可以包括至少一个写操作信息,即该数据字段可以包括一个或多个写操作信息。例如图4所示的写操作报文中包括n个写操作信息,n为大于1的整数。其中,每个写操作信息可以包括写操作数据以及对应的写操作地址。例如,写操作信息1中可以包括:写操作地址1和写操作数据1;写操作信息n中可以包括:写操作地址n和写操作数据n。
图5是本发明实施例提供的一种服务器的架构图,如图5所示,该服务器可以是由主服务器011以及多个计算服务器012组成的服务器集群。其中,每个计算服务器012可以用于根据待更新的转发表项计算生成写操作信息,并封装写操作报文。该主服务器011可以用于将写操作报文下发至线卡盒子02。该多个计算服务器012可以并行生成写操作报文,确保了写操作报文的生成速率。并且由于该服务器集群中的计算服务器012的数量可以根据应用需求灵活调整,其生成写操作报文的性能可以灵活提升,没有性能瓶颈,因此可 以确保写操作报文的生成速率和下发速率。
当然,该服务器01也可以不采用服务器集群的方式实现,而是采用单台性能较强的服务器,本发明实施例对该服务器01的实现方式不做限定。
步骤103、服务器向线卡盒子发送该写操作报文。
服务器可以基于与线卡盒子建立的通信连接,向该线卡盒子发送写操作报文。线卡盒子可以接收该服务器发送的写操作报文。例如,线卡盒子的NP可以通过业务侧接口接收该写操作报文。
步骤104、线卡盒子从该写操作报文中获取该写操作信息。
线卡盒子接收到该写操作报文后,可以根据与服务器之间的通信协议,按照该通信协议指定的报文封装格式对该写操作报文进行解封装,从而获取到该写操作报文中的写操作信息。当写操作报文中包括多个写操作信息时,线卡盒子还可以根据该写操作报文中的W_Num字段确定该写操作报文中包括的写操作信息的个数,进而可以按照每个写操作信息的长度(即占用的字节数),依次获取每个写操作信息。其中,每个写操作信息的长度可以是报文封装格式中指定的固定值。
示例的,假设线卡盒子的NP接收到的写操作报文的结构如图4所示,每个写操作信息的长度为k字节(k为大于1的整数)。则NP可以按照以太网帧格式对写操作报文进行解封装。在解封装的过程中,可以根据获取到的写操作报文中目的IP中的写操作标识,确定该写操作报文为用于指示执行写内存操作的报文。进而可以根据该W_Num字段确定该写操作报文中包括的写操作信息的个数为n,之后即可读取该写操作报文的数据字段,并可以将从该数据字段中读取到的每个k个字节确定为一个写操作信息,由此可以依次获取到写操作信息1至写操作信息n。
步骤105、线卡盒子根据该写操作信息中的写操作地址,将该写操作数据写入内存。
在本发明实施例中,当写操作报文中包括多个写操作信息时,线卡盒子可以按照写操作报文中该多个写操作信息的顺序,从数据字段的第一个写操作信息(即最靠近各个头字段的写操作信息)开始,依次根据每个写操作信息中的写操作地址,将该写操作信息中的写操作数据写入至内存。由于服务器基于每个待更新的转发表项可能生成多个写操作信息,因此按照写操作信息的顺序依次写入写操作数据,可以确保转发表项的正确更新。其中,每个写操作信息中写操作地址和写操作数据的顺序和长度可以均为报文封装格式中预先设定的,例如,每个写操作信息占用的字节数k可以为:k=k1+k2,其前k1个字节为写操作地址,后k2个字节为写操作数据。线卡盒子可以按照该预先设定的顺序和长度,将从写操作信息中读取到的前k1个字节作为写操作地址,并将读取到的后k2个字节作为写操作数据。
例如,对于图4所示的写操作报文,NP可以从写操作信息1开始,依次读取每个写操作信息中的写操作地址和写操作数据,并将每个写操作信息中的写操作数据写入内存中的对应地址。其中,将每个写操作信息中的写操作数据写入内存即相当于执行了一次写内存操作。
由于在本发明实施例提供的方法中,线卡盒子仅需执行写内存操作,而无需再执行计算写操作数据的操作,因此服务器下发写操作报文的速率不会受到线卡盒子性能的限制,有效提高了转发表项的下发速率和更新效率。目前核心路由器中路由表的规格一般 为10兆(M),即包括107条路由,相关技术中的路由下发速率一般为50千(K)条路由每秒,即每秒50000条,10M条路由下发完成需要200秒。而采用本发明实施例提供的方法,路由下发速率可以提升至1M每秒,10M条路由下发完成仅需10秒,下发速率提升了20倍。
可选的,该线卡盒子的NP可以包括多个处理器核,该多个处理器核可以并行对写操作报文进行处理,即并行获取写操作报文中的写操作信息,从而可以确保对写操作报文的处理效率,提高转发表项的更新效率。相应的,在上述步骤104中,线卡盒子从写操作报文中获取写操作信息时,可以先从该多个处理器核中确定资源占用率小于占用率阈值的目标处理器核;然后通过该目标处理器核从该写操作报文中获取该写操作信息。当线卡盒子确定出资源占用率小于该占用率阈值的处理器核包括多个时,可以随机选取一个作为该目标处理器核。将写操作报文分配给资源占用率较小的处理器核,可以保证该多个处理器核的负载均衡,实现对写操作报文的高效处理。
其中,资源占用率可以是指处理资源占用率。该占用率阈值可以为预先设定的固定值,例如可以为50%。或者,该占用率阈值还可以根据各个处理器核的实际的资源占用率进行确定,例如可以将各个处理器核的资源占用率的平均值作为该占用率阈值;或者可以将各个处理器核的资源占用率按照由低至高的顺序进行排序,然后将排名第二的资源占用率确定为该占用率阈值。该线卡盒子可以选取资源占用率最低的处理器核作为目标处理器核,例如线卡盒子可以将空闲的处理器核作为目标处理器核。
示例的,图6是本发明实施例提供的一种线卡盒子的局部结构示意图,如图6所示,线卡盒子的NP可以包括分发模块以及K1至K4共4个处理器核。该分发模块接收到服务器发送的报文后,可以根据各个处理器核的资源占用率,将报文分发至各个处理器核进行处理。假设当前接收到的写操作报文为写操作报文P1,且分发模块检测到处理器核K4当前的资源占用率最低,因此可以将该写操作报文P1分发至处理器核K4进行处理。
在本发明实施例中,由于服务器基于一个转发表项生成的多个写操作信息可能封装在不同的写操作报文中,因此NP除了需要按照每个写操作报文中写操作信息的顺序执行写内存操作,还需按照各个写操作报文的接收顺序执行该写内存操作。即对于先后接收到的两个写操作报文,NP需要将在先接收到的写操作报文中各写操作信息中的写操作数据均写入至内存后,才能对在后接收到的写操作报文中各写操作信息中的写操作数据执行写内存操作,以确保转发表项的准确更新。
可选的,该线卡盒子的NP中还可以部署有保序访问模块,每个处理器核可以将获取到的写操作信息发送至保序访问模块。该保序访问模块可以按照各个写操作报文的接收顺序,以及每个写操作报文中包括的写操作信息的顺序,依次根据每个写操作报文的写操作信息中的写操作地址,将写操作数据写入内存。该内存可以部署于NP的内部,也可以部署于NP的外部,本发明实施例对此不做限定。
示例的,参考图6,假设服务器发送了P1至P4共4个写操作报文,且发送该4个写操作报文的先后顺序为:P1、P2、P3、P4。NP的分发模块依次接收到该4个写操作报文后,分发给了不同的处理器核,例如将写操作报文P1分发给了处理器核K4,将写操作报文P4分发给了处理器核K2。该4个处理器核K1至K4可以并行获取各自接收到的写操作报文中的写操作信息,并将获取到的写操作信息发送至保序访问模块。保序访问模块接收到各 个处理器核发送的写操作信息后,可以先将写操作报文P1中的至少一个写操作信息中的写操作数据顺次写入内存,然后再依次将写操作报文P2至写操作报文P4中的写操作数据写入内存。
步骤106、线卡盒子统计基于同一序列号的写操作报文执行的写内存操作的总次数,得到序列号与总次数的对应关系。
在本发明实施例中,服务器发送的写操作报文中可以包括序列号。线卡盒子基于接收到的写操作报文中的写操作信息,每执行一次写内存操作后,都可以以该写操作报文的序列号为索引,统计该索引对应的执行写内存操作的总次数。即线卡盒子可以统计基于同一序列号的写操作报文执行的写内存操作的总次数,由此可以得到序列号与总次数的对应关系。其中,同一序列号的写操作报文是指序列号的大小相等的写操作报文。
可选的,如图7所示,该线卡盒子中可以设置有计数器,该计数器可以部署于NP的内部,也可以部署于NP的外部,本发明实施例对此不做限定。该计数器可以用于存储不同序列号对应的总次数。线卡盒子每基于某个写操作报文执行完一次写操作后,均可以从该计数器中获取该写操作报文的序列号所对应的总次数,并将该总次数加1,由此实现对该序列号对应的总次数的实时统计。
示例的,参考图7,假设线卡盒子依次接收到了序列号为1(即SN=1)的3个写操作报文,其中第一个写操作报文中包括2个写操作信息(即W_Num=2),第二个写操作报文中包括1个写操作信息(即W_Num=1),第三个写操作报文中包括3个写操作信息(即W_Num=3)。则线卡盒子的NP基于该3个写操作报文中的写操作信息,可以执行6次写内存操作,且每执行完一次写内存操作后,均可以对计数器中存储的SN=1对应的总次数进行更新。最终更新得到的该SN=1对应的总次数为6。
或者,参考图8,假设服务器发送的第二个SN=1的写操作报文在传输过程中丢失,线卡盒子仅接收到了2个SN=1的写操作报文,其中一个写操作报文中的W_Num=2,另一个写操作报文中的W_Num=3。线卡盒子的NP基于该2个写操作报文中的写操作信息,可以执行5次写内存操作,且每执行完一次写内存操作后,均可以对计数器中存储的SN=1对应的总次数进行更新。最终更新得到的该SN=1对应的总次数为5。
步骤107、服务器向线卡盒子发送第一控制报文。
在本发明实施例中,为了确保服务器发送的写操作报文中的写操作数据均能正确写入内存,保证转发表项更新时的准确性,服务器在发送一个或多个写操作报文后(即发送一个批次的写操作报文后),可以发送一个第一控制报文。该第一控制报文中可以包括计数值,且该计数值为服务器在发送第二控制报文之后发送的写操作报文中所包括的写操作信息的总数。该第二控制报文为服务器在该第一控制报文之前发送的前一个控制报文。若该第一控制报文为服务器发送的首个控制报文,则该第一控制报文中的计数值即为在该第一控制报文之前发送的写操作报文中所包括的写操作信息的总数。
图9是本发明实施例提供的一种控制报文的结构示意图。参考图9可以看出,服务器发送的每个控制报文可以包括MAC头字段、IP头字段、UDP头字段、SN字段以及W_c字段。其中,MAC头字段、IP头字段和UDP头字段的定义均可以与写操作报文中的定义相同,此处不再赘述。且该控制报文中的UDP头字段的源端口号中可以添加用于指示该报文的类型为控制报文的标识,例如该标识可以为1。
该控制报文的SN字段用于记录该控制报文的序列号。服务器每次发送的控制报文的序列号的大小可以与前一个写操作报文的序列号的大小相等,且该服务器发送的各个控制报文的序列号可以依次递增。W_c字段用于记录计数值,该计数值为服务器在上一个控制报文(即第二控制报文)之后发送的写操作报文中所包括的写操作信息的总数,即序列号与当前控制报文的序列号相同的写操作报文所包括的写操作信息的总数。其中,序列号相同可以是指序列号的大小相等。
示例的,如图7和图8所示,假设服务器在发送了3个SN=1的写操作报文后,发送了一个SN=1的第一控制报文,则由于该3个SN=1的写操作报文包括的写操作信息的总数为6,因此该SN=1的第一控制报文中所包括的计数值即为6,即W_c=6。
若服务器在发送了2个SN=2的写操作报文后,发送了一个SN=2的第一控制报文,则由于该2个SN=2的写操作报文包括的写操作信息的总数为3,因此如图7和图8所示,该SN=2的第一控制报文中所包括的计数值即为3,即W_c=3。
步骤108、线卡盒子检测该第一控制报文的序列号与第三控制报文的序列号的差值是否为预设差值。
参考图7至图9可以看出,服务器发送的每个控制报文中还可以包括序列号,且该服务器发送的控制报文中的序列号依次递增。例如,每个控制报文的序列号与前一个控制报文的序列号的差值可以为1。由于控制报文在传输的过程中可能丢失,线卡盒子为了确保基于正确的控制报文检测执行写操作的总次数,可以先检测该第一控制报文的序列号与第三控制报文的序列号的差值是否为预设差值。该第三控制报文为该线卡盒子在该第一控制报文之前接收到的前一个控制报文。
当线卡盒子检测到该第一控制报文的序列号与该第三控制报文的序列号的差值为预设差值时,可以确定无控制报文丢失,因此可以执行步骤109。当线卡盒子检测到该第一控制报文的序列号与该第三控制报文的序列号的差值不为预设差值时,可以确定该第三控制报文之后的控制报文丢失,因此可以执行步骤112。
可选的,线卡盒子中可以存储有上一个控制报文的序列号,其初值可以为0,且该上一个控制报文的序列号可以为不大于32比特(bit)的数据。该数据可以存储在线卡盒子的内存中,或者如图7和图8所示,该线卡盒子中可以设置有寄存器,该数据可以存储在该寄存器中。线卡盒子接收到第一控制报文后,可以直接获取其存储的上一个控制报文(即第三控制报文)的序列号,并进行序列号的差值的检测。并且,线卡盒子完成差值检测后,还可以将其存储的上一个控制报文的序列号更新为该第一控制报文的序列号。也即是,可以将该第一控制报文的序列号作为新的上一个控制报文的序列号,以便后续可以继续基于该上一个控制报文的序列号计算差值,并进行差值检测。
示例的,假设该差值阈值为1,线卡盒子当前接收到的第一控制报文的序列号为2,即SN=2。线卡盒子的寄存器中存储的第三控制报文的序列号为1。则由于该第一控制报文的序列号与该第三控制报文的序列号的差值为1,因此可以执行步骤109,并可以将该寄存器中存储的上一个控制报文的序列号更新为2。若线卡盒子的寄存器中存储的第三控制报文的序列号为0(即在该第一控制报文之前未接收到其他控制报文),则由于该第一控制报文的序列号与该寄存器中存储的序列号的差值不为1,线卡盒子可以确定存在控制报文丢失,因此可以执行步骤112,并且还可以将寄存器中存储的上一个控制报文的序列 号更新为2。
在本发明实施例中,若线卡盒子的NP包括多个处理器核,则如图7和图8所示,线卡盒子接收到控制报文后,也可以根据各个处理器核的资源占用率,将控制报文分发给对应的处理器核进行处理。
步骤109、线卡盒子检测在接收到该第二控制报文之后执行的写内存操作的总次数与该计数值是否相等。
线卡盒子检测到第一控制报文的序列号与该第三控制报文的序列号的差值为预设差值时,可以确定无控制报文丢失,并可以确定该第三控制报文即为该第二控制报文。因此,线卡盒子可以继续检测该第三控制报文中的计数值与该线卡盒子在接收到该第三控制报文之后执行的写内存操作的总次数是否相等。当该计数值与该总次数不相等时,线卡盒子可以确定存在写操作报文丢失或者写内存操作执行失败的情况,因此可以执行步骤110。当该计数值与该总次数相等时,线卡盒子可以确定写内存操作均已成功执行,因此可以保持当前状态不变。
参考图4、图7和图8可知,服务器发送的写操作报文中可以包括序列号,且该服务器在两个控制报文之间发送的写操作报文的序列号的大小均与在后发送的控制报文的序列号的大小相等,即每个控制报文的序列号的大小均与在该控制报文之前发送的前一个写操作报文的序列号的大小相等。例如,参考图7,服务器在发送了2个序列号的大小为2(即SN=2)的写操作报文之后发送的控制报文的序列号的大小也为2。如上述步骤106所述,线卡盒子能够以写操作报文的序列号为索引对执行写内存操作的次数进行统计,得到序列号与总次数的对应关系。因此线卡盒子在执行上述步骤108的过程中,可以先从该预先生成的序列号与总次数的对应关系中获取该第一控制报文的序列号所对应的总次数。之后,线卡盒子即可检测该计数值与该第一控制报文的序列号所对应的总次数是否相等。
示例的,假设第一控制报文的序列号为1,即SN=1,参考图7和图8可以看出,该SN=1的控制报文中的W_c=6,即计数值为6。线卡盒子接收到该第一控制报文后,可以从计数器中读取SN=1所对应的总次数。若线卡盒子读取到的该SN=1对应的总次数为6,则由于该计数值与该总次数相等,线卡盒子可以确定服务器所指示的写内存操作均已成功执行,因此可以保持当前状态不变。若线卡盒子读取到的该SN=1对应的总次数为5,则由于该计数值与该总次数不相等,线卡盒子可以确定存在写操作报文丢失或者写内存操作执行失败的情况,因此可以执行步骤110。
可选的,由于有重新发送写操作报文的需求,线卡盒子在检测完该计数值和总次数是否相等后,还可以将已统计得到的该第一控制报文的序列号对应的总次数清零,并且可以将大于该第一控制报文的序列号的序列号所对应的总次数也清零。由此可以确保接收到服务器重新发送的相同序列号的写操作报文时,线卡盒子能够对该序列号对应的总次数进行进行准确统计。例如,线卡盒子完成对SN=1对应的总次数的检测后,可以将已统计得到的SN=1对应的总次数清零,并且可以将大于1的SN所对应的总次数也清零。例如,若线卡盒子存储的对应关系中还记录有SN=2对应的总次数,则可以将SN=2对应的总次数也清零。由此,当接收到服务器重新发送的SN=1的写操作报文以及SN大于1的写操作报文时,线卡盒子即可重新统计每个序列号对应的总次数。
步骤110、线卡盒子向该服务器发送第一提示信息。
当线卡盒子检测到该第一控制报文中的计数值,与在接收到该第二控制报文之后执行的写内存操作的总次数不相等时,可以确定存在写操作报文丢失或者写内存操作执行失败的情况,因此可以向服务器发送第一提示信息。该第一提示信息可以用于指示该服务器在该第二控制报文之后发送的写操作报文丢失,以便服务器重新发送在该第二控制报文之后发送的写操作报文。
可选的,该第一提示信息可以包括该第一控制报文的序列号,则该第一提示信息可以指示服务器在第二控制报文之后发送的,序列号与该第一控制报文的序列号相同的写操作报文丢失。或者,该第一提示信息还可以包括第二控制报文的序列号,则该第一提示信息可以指示服务器在该第二控制报文之后发送的,序列号与该第二控制报文的序列号的差值为预设差值的写操作报文丢失。可选的,该第一提示信息中还可以包括用于指示丢失报文的类型为写操作报文的标识。例如,该标识可以为1。
示例的,线卡盒子向该服务器发送的第一提示信息中可以包括第一控制报文的序列号1,该第一提示信息可以用于指示该服务器SN=1的写操作报文丢失。
步骤111、服务器重新向线卡盒子发送在该第二控制报文之后发送的写操作报文。
当服务器接收到该线卡盒子发送的第一提示信息时,可以确定在第二控制报文之后发送的写操作报文丢失。为了确保转发表项的正常更新,服务器可以重新发送在该第二控制报文之后发送的写操作报文。线卡盒子接收到服务器基于该第一提示信息重新发送的写操作报文后,可以再次执行上述步骤104所示的方法。
可选的,该第一提示信息中可以包括该第一控制报文的序列号,以及用于指示丢失报文的类型为写操作报文的标识。则服务器可以基于该第一控制报文的序列号,重新发送序列号与该第一控制报文的序列号相同的写操作报文。示例的,假设该第一提示信息中包括的序列号为:SN=1,则服务器可以重新向线卡盒子发送该SN=1的3个写操作报文。
步骤112、线卡盒子向服务器发送第二提示信息。
在上述步骤108中,当线卡盒子检测到该第一控制报文的序列号与该第三控制报文的序列号的差值不为预设差值时,可以确定在该第三控制报文之后发送的控制报文丢失,因此可以向服务器发送第二提示信息,该第二提示信息用于指示该服务器在该第三控制报文之后发送的控制报文丢失,以便服务器可以重新发送在该第三控制报文之后发送的写操作报文。
可选的,该第二提示信息中可以包括该第三控制报文的序列号。或者,该第二提示信息中除了第三控制报文的序列号,还可以包括该第一控制报文的序列号,则该第二提示信息可以指示服务器在该第三控制报文和第一控制报文之间发送的控制报文丢失。又或者,线卡盒子还可以根据该第三控制报文的序列号、第一控制报文的序列号以及该预设差值,推算出丢失的控制报文的序列号,该第二提示信息中可以包括该丢失的控制报文的序列号,则服务器基于该第二提示信息可以直接确定出丢失的控制报文。可选的,该第二提示信息中还可以包括用于指示丢失报文的类型为控制报文的标识。例如,该标识可以为2。
示例的,假设预设差值为1,第三控制报文的序列号(即寄存器中存储的序列号)为:SN=1,第一控制报文的序列号为:SN=3。则该第二提示信息中包括的序列号可以为:SN=1,该第二提示信息可以指示服务器在该SN=1的控制报文之后发送的控制报文丢失。或者, 该第二提示信息中可以包括:SN=1,以及SN=3,该第二提示信息可以指示服务器在该SN=1的控制报文和SN=3的控制报文之间发送的控制报文丢失。又或者,线卡盒子基于第三控制报文的序列号SN=1,第一控制报文的序列号SN=3以及该预设差值1,可以推算出丢失的控制报文的序列号为SN=2,因此该第二提示信息中可以包括:SN=2,该第二提示信息可以指示服务器SN=2的控制报文丢失。
步骤113、服务器根据该第二提示信息,重新向该线卡盒子发送在该第三控制报文之后发送的写操作报文。
当服务器接收到线卡盒子发送的第二提示信息时,可以确定在该第三控制报文之后发送的控制报文丢失,则线卡盒子无法检测在该第三控制报文之后发送的写操作报文中的写操作数据是否均已成功写入内存。因此,服务器可以重新向该线卡盒子发送在该第三控制报文之后发送的写操作报文。
示例的,假设该第二提示信息中包括丢失的控制报文的序列号:SN=2,则服务器可以重新向线卡盒子发送SN=2的写操作报文。
图10是本发明实施例提供的一种重新发送写操作报文的方法的流程图,该方法的应用场景可以与图1所示实施例相同。参考图10,该方法可以包括:
步骤114、服务器检测在发送控制报文之后未发送写操作报文的空闲时长是否大于时长阈值。
在本发明实施例中,服务器在每次发送控制报文之后,均可以检测在发送控制报文之后未发送写操作报文的空闲时长是否大于时长阈值。当该空闲时长大于该时长阈值时,服务器可以执行步骤115。当该空闲时长不大于该时长阈值时,服务器可以继续执行步骤114,即继续检测该空闲时长是否大于时长阈值。其中,该时长阈值T1可以为服务器中预先设定的固定值,例如该时长阈值T1可以为1秒。
步骤115、服务器向线卡盒子发送保活报文。
服务器检测到在发送控制报文之后未发送写操作报文的空闲时长大于时长阈值时,可以向线卡盒子发送保活报文。线卡盒子可以接收服务器发送的保活报文。该保活报文中可以包括序列号,且该保活报文的序列号与在该保活报文之前发送的上一个控制报文的序列号的差值为该预设差值。
图11是本发明实施例提供的一种保活报文的结构示意图。参考图11可以看出,服务器发送的保活报文可以包括MAC头字段、IP头字段、UDP头字段以及SN字段。其中,MAC头字段、IP头字段和UDP头字段的定义均可以与写操作报文中的定义相同,此处不再赘述。且该保活报文中的UDP头字段的源端口号中可以添加用于指示该报文的类型为保活报文的标识,例如该标识可以为2。保活报文的SN字段可以用于记录该保活报文的序列号。
示例的,参考图7和图8,服务器在发送SN=1的控制报文后可以检测未发送写操作报文的空闲时长。若该空闲时长为t1,且t1<T1,即服务器在t1时长后发送了SN=2的写操作报文,则服务器无需发送保活报文。服务器在发送SN=2的控制报文之后,检测到未发送写操作报文的空闲时长t2大于时长阈值T1时,可以发送保活报文。该保活报文的序列号可以为SN=3,即该保活报文与前一个控制报文的序列号的差值为1。
可选的,在本发明实施例中,服务器向线卡盒子发送保活报文之后也可以执行上述 步骤114所示的方法,即检测在发送保活报文后未发送写操作报文的空闲时长是否大于时长阈值,若大于该时长阈值,则可以继续执行步骤115,即继续向线卡盒子发送保活报文。并且,该保活报文的序列号与前一个保活报文的序列号也可以为该预设差值。
步骤116、线卡盒子检测该保活报文的序列号与第四控制报文的序列号的差值是否为该预设差值。
线卡盒子接收到服务器发送的保活报文后,可以检测该保活报文的序列号与第四控制报文的序列号的差值是否为该预设差值。该第四控制报文为该线卡盒子在该保活报文之前接收到的前一个控制报文。当线卡盒子检测到该保活报文的序列号与该第四控制报文的序列号的差值不为该预设差值时,可以确定在该第四控制报文之后发送的控制报文丢失,因此可以执行步骤117。当线卡盒子检测到该保活报文的序列号与第四控制报文的序列号的差值为该预设差值时,可以确定无控制报文丢失,因此可以保持当前状态不变。
可选的,如前文所述,线卡盒子可以在内存或者寄存器中存储上一个控制报文的序列号。因此,线卡盒子接收到保活报文后,可以直接检测该保活报文的序列号与其存储的上一个控制报文的序列号的差值是否为预设差值。并且,线卡盒子完成差值检测后,还可以将该线卡盒子中存储的上一个控制报文的序列号更新为该保活报文的序列号,以便后续可以继续基于该上一个控制报文的序列号计算差值,并进行差值检测。
示例的,假设该预设差值为1,服务器在SN=2的控制报文之后发送了SN=3的保活报文。线卡盒子接收到SN=3的保活报文时,寄存器中存储的上一个控制报文(即第四控制报文)的序列号为:SN=2。则由于两者的差值为该预设差值,线卡盒子可以将寄存器中存储的上一个控制报文序列号更新为3。或者,如图12所示,若SN=2的控制报文在传输过程中丢失,则线卡盒子接收到该SN=3的保活报文时,可以检测到寄存器中存储的前一个控制报文(即第四控制报文)的序列号为:SN=1。则由于两者的差值不为1,因此线卡盒子可以执行步骤117,并可以将寄存器中存储的上一个控制报文序列号更新为3。
在本发明实施例中,若线卡盒子的NP包括多个处理器核,则如图7、图8和图12所示,线卡盒子接收到保活报文后,也可以根据各个处理器核的资源占用率,将保活报文分发给对应的处理器核进行处理。
步骤117、线卡盒子向服务器发送第三提示信息。
当线卡盒子检测到该保活报文的序列号与该第四控制报文的序列号的差值不为该预设差值时,可以确定在该第四控制报文之后发送的控制报文丢失,因此可以向服务器发送第三提示信息,该第三提示信息用于指示该服务器在该第四控制报文之后发送的控制报文丢失。
可选的,该第三提示信息中可以包括该第四控制报文的序列号。或者,该第三提示信息中除了第四控制报文的序列号,还可以包括该保活报文的序列号,则该第三提示信息可以指示服务器在该第四控制报文和保活报文之间发送的控制报文丢失。又或者,线卡盒子还可以根据该第四控制报文的序列号、保活报文的序列号以及该预设差值,推算出丢失的控制报文的序列号,该第三提示信息中可以包括该丢失的控制报文的序列号,则服务器基于该第三提示信息可以直接确定出丢失的控制报文。可选的,该第三提示信息中还可以包括用于指示丢失报文的类型为控制报文的标识。例如,该标识可以为2。
示例的,假设该预设差值为1,线卡盒子接收到该SN=3的保活报文时,寄存器中存储 的前一个控制报文(即第四控制报文)的序列号为:SN=1。该线卡盒子向服务器发送的第三提示信息中可以包括序列号:SN=1,该第三提示信息可以指示服务器在该SN=1的控制报文之后发送的控制报文丢失。或者,该第三提示信息中可以包括:SN=1,以及SN=3,该第三提示信息可以指示服务器在该SN=1的控制报文和SN=3的保活报文之间发送的控制报文丢失。又或者,线卡盒子基于第四控制报文的序列号SN=1,保活报文的序列号SN=3以及该预设差值1,可以推算出丢失的控制报文的序列号为SN=2,因此该第三提示信息中可以包括:SN=2,该第三提示信息可以指示服务器SN=2的控制报文丢失。
步骤118、服务器根据该第三提示信息,重新向该线卡盒子发送在该第四控制报文之后发送的写操作报文。
当服务器接收到该线卡盒子发送的用于指示在该第四控制报文之后发送的控制报文丢失的第三提示信息时,可以重新向线卡盒子发送在该第四控制报文之后发送的写操作报文。
示例的,假设该第三提示信息中包括的序列号为SN=1,则服务器可以重新发送在SN=1的控制报文之后发送的写操作报文。例如,服务器可以重新发送SN=2的写操作报文。
在本发明实施例中,服务器每次发送写操作报文之后,无需等待线卡盒子的回应,可以继续发送后续的写操作报文,从而可以确保路由的高速率下发。并且,由于有重新发送写操作报文的需求,服务器可以缓存已发送的写操作报文中的写操作信息或者直接缓存已发送的写操作报文,且写操作信息或写操作报文的缓存时长T2可以远大于该时长阈值T1。例如该时长阈值为1秒时,该缓存时长可以为1分钟。因此,当服务器接收到线卡盒子发送的第一提示信息、第二提示信息或第三提示信息时,均可以基于缓存的写操作信息或写操作报文,及时重新发送对应的写操作报文。
可选的,为了保证转发表项的正确更新,服务器根据接收到的第一提示信息确定出在第二控制报文之后发送的写操作报文丢失时,需重新发送在该第二控制报文之后发送的所有写操作报文。当服务器根据接收到的第二提示信息或第三提示信息确定出某个控制报文之后发送的控制报文丢失时,需重新发送在该某个控制报文之后发送的所有写操作报文。
示例的,参考图13,假设服务器顺次发送了SN为1至SN为4的写操作报文,准备发送SN为5的写操作报文时,接收到了线卡盒子发送的第一提示信息,且该第一提示信息中包括的SN为2,即该提示信息可以指示SN=2的写操作报文丢失。则服务器可以基于该提示信息,重新发送SN=2至SN=4的所有写操作报文,然后再发送SN=5的写操作报文。或者,假设服务器准备发送SN为5的写操作报文时,接收到了线卡盒子发送的第二提示信息,且该第二提示信息中包括的SN为1,即该提示信息可以指示在SN=1的控制报文之后发送的控制报文丢失。则服务器可以基于该提示信息,重新发送SN=2至SN=4的所有写操作报文,然后再发送SN=5的写操作报文。在重新发送写操作报文的过程中,服务器每发送完一个序列号的写操作报文,均需发送一个相同序列号的控制报文,然后再继续发送下一个序列号的写操作报文。例如,服务器发送完两个SN=2的写操作报文后,可以发送一个SN=2的控制报文,然后再继续发送SN=3的写操作报文。
根据上述分析可知,对于写操作报文丢失的场景,线卡盒子可以基于接收到的控制报文及时检测到有写操作报文丢失,并及时向服务器发送第一提示信息。服务器从发出 写操作报文到接收到该第一提示信息之间的时长一般在100微秒(us)以内,而服务器缓存写操作信息或写操作报文的缓存时长T2远大于100us,因此可以确保及时重新发送丢失的写操作报文。
对于控制报文丢失的场景,线卡盒子需要基于在后发送的控制报文或者保活报文确定出有控制报文丢失。由于保活报文发送前的空闲时长至少为T1,因此服务器从发出写操作报文到接收到第二提示信息或第三提示信息所需的最长稍大于T1。而服务器缓存写操作信息或写操作报文的缓存时长T2远大于T1,因此可以确保及时重新发送写操作报文。
可选的,在上述步骤111之前、步骤113之前和步骤118之前,即服务器在重新发送写操作报文之前,还可以先向线卡盒子发送重置报文,该重置报文中包括重置序列号。服务器待重新发送的首个写操作报文的序列号与该重置序列号的差值为该预设差值。该重置报文可以用于指示线卡盒子将其存储的上一个控制报文的序列号更新为该重置序列号。线卡盒子在该重置报文的指示下,将线卡盒子中存储的上一个控制报文的序列号更新为该重置序列号后,可以确保在接收到服务器重新发送的写操作报文和控制报文后,可以基于该重置序列号准确判断是否有控制报文丢失。
示例的,假设在上述步骤111、步骤113和步骤118中的任一步骤中,服务器准备重新发送的首个写操作报文的序列号为:SN=2,则服务器向线卡盒子发送的重置报文中的重置序列号可以为:SN=1。线卡盒子接收到该重置报文后,可以将内存或寄存器中存储的上一个控制报文的序列号更新为:SN=1。由此,当线卡盒子接收到服务器重新发送的SN=2的写操作报文以及后续的控制报文时,即可准确判断控制报文是否有丢失。
需要说明的是,本发明实施例提供的数据处理方法的步骤的先后顺序可以进行适当调整,步骤也可以根据情况进行相应增减。例如,步骤108可以根据情况删除;或者,步骤106至步骤113均可以根据情况进行删除;又或者,步骤114至步骤118均可以根据情况进行删除。任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化的方法,都应涵盖在本申请的保护范围之内,因此不再赘述。
综上所述,本发明实施例提供了一种转发表项的更新方法,服务器向线卡盒子发送的写操作报文中的写操作信息包括写操作数据和写操作地址,线卡盒子可以直接根据该写操作地址,将写操作数据写入内存中,从而完成转发表项的更新。由于线卡盒子仅需执行写内存操作,而无需再执行计算写操作数据的操作,因此服务器下发写操作报文的速率不会受到线卡盒子处理性能的限制,有效提高了转发表项的下发速率和更新效率。并且,服务器还可以线卡盒子发送携带有计数值的控制报文,线卡盒子基于该控制报文检测到有写操作报文丢失时,可以指示服务器重新发送写操作报文,由此确保了转发表项更新时的可靠性。
图14是本发明实施例提供的一种转发表项的更新装置的结构示意图,该装置可以应用于报文接收端,例如可以应用于图1所示的路由系统中的线卡盒子02。如图14所示,该装置可以包括:
接收模块201,用于接收写操作报文,该写操作报文中包括写操作信息,该写操作信息包括写操作数据和写操作地址,该写操作数据用于指示待更新的转发表项,该写操作地址用于指示内存中待写入该写操作数据的地址。
该接收模块201的功能实现可以参考上述方法实施例中步骤103的相关描述。
获取模块202,可以用于从写操作报文中获取写操作信息。该接收模块201的功能实现可以参考上述方法实施例中步骤104的相关描述。
写入模块203,可以用于根据该写操作信息中的写操作地址,将该写操作数据写入该内存。该写入模块203的功能实现可以参考上述方法实施例中步骤105的相关描述。
可选的,该接收模块201,还可以用于在该写入模块203将该写操作数据写入内存之后,接收第一控制报文,该第一控制报文中包括计数值,该计数值为在第二控制报文和该第一控制报文之间发送的写操作报文中所包括的写操作信息的总数,该第二控制报文为在该第一控制报文之前发送的前一个控制报文。该接收模块201的功能实现还可以参考上述方法实施例中步骤107的相关描述。
参考图15,该装置还可以包括:
检测模块204,可以用于检测在接收到该第二控制报文之后执行的写内存操作的总次数与该计数值是否相等,该写内存操作是指将写操作数据写入内存的操作。
发送模块205,可以用于当该计数值与该总次数不相等时,发送第一提示信息,该第一提示信息用于指示在该第二控制报文之后发送的写操作报文丢失。该发送模块205的功能实现可以参考上述方法实施例中步骤110的相关描述。
该接收模块201,还可以用于接收基于该第一提示信息重新发送的写操作报文。该接收模块201的功能实现还可以参考上述方法实施例中步骤111的相关描述。
可选的,每个控制报文中还包括序列号,且报文发送端发送的控制报文中的序列号依次递增。该检测模块204,还可以用于:
在该接收模块201接收第一控制报文之后,检测该第一控制报文的序列号与第三控制报文的序列号的差值是否为预设差值,该第三控制报文为在该第一控制报文之前接收到的前一个控制报文;
当该第一控制报文的序列号与该第三控制报文的序列号的差值为预设差值时,确定该第三控制报文为该第二控制报文,并检测在接收到该第三控制报文之后执行的写内存操作的总次数与该计数值是否相等。
该检测模块204的功能实现可以参考上述方法实施例中步骤108以及步骤109的相关描述。
可选的,该发送模块205,还可以用于当该第一控制报文的序列号与该第三控制报文的序列号的差值不为预设差值时,发送第二提示信息,该第二提示信息用于指示在该第三控制报文之后发送的控制报文丢失。该发送模块205的功能实现还可以参考上述方法实施例中步骤112的相关描述。
该接收模块201,还可以用于接收基于该第二提示信息重新发送的写操作报文。该接收模块201的功能实现还可以参考上述方法实施例中步骤113的相关描述。
可选的,该接收模块201,还可以用于接收保活报文,该保活报文中包括序列号,该报文发送端发送的该保活报文的序列号与在该保活报文之前发送的前一个控制报文的序列号的差值为该预设差值。该接收模块201的功能实现还可以参考上述方法实施例中步骤115的相关描述。
该检测模块204,还可以用于检测该保活报文的序列号与第四控制报文的序列号的差 值是否为该预设差值,该第四控制报文为在该保活报文之前接收到的前一个控制报文。该检测模块204的功能实现还可以参考上述方法实施例中步骤116的相关描述。
该发送模块205,还可以用于当该保活报文的序列号与该第四控制报文的序列号的差值不为该预设差值时,发送第三提示信息,该第三提示信息用于指示在该第四控制报文之后发送的控制报文丢失。该发送模块205的功能实现还可以参考上述方法实施例中步骤117的相关描述。
该接收模块201,还用于接收基于该第三提示信息重新发送的写操作报文。该接收模块201的功能实现还可以参考上述方法实施例中步骤118的相关描述。
可选的,该写操作报文中还包括序列号,且报文发送端在两个控制报文之间发送的写操作报文的序列号的大小均与在后发送的控制报文的序列号的大小相等。如图15所示,该装置还可以包括:
统计模块206,可以用于在该写入模块将该写操作数据写入内存之后,统计基于同一序列号的写操作报文执行的写内存操作的总次数,得到序列号与总次数的对应关系。该统计模块206的功能实现可以参考上述方法实施例中步骤106的相关描述。
相应的,该检测模块204,可以用于:获取该第一控制报文的序列号所对应的总次数;检测该第一控制报文的序列号所对应的总次数与该计数值是否相等。
综上所述,本发明实施例提供了一种转发表项的更新装置,该装置接收到的写操作报文中的写操作信息包括写操作数据和写操作地址,因此可以直接根据该写操作地址,将写操作数据写入内存中,从而完成转发表项的更新。由于该装置仅需执行写内存操作,而无需再执行计算写操作数据的操作,因此报文发送端下发写操作报文的速率不会受到该装置的处理性能的限制,有效提高了转发表项的下发速率和更新效率。
图16是本发明实施例提供的又一种转发表项的更新装置的结构示意图,该更新装置可以应用于报文发送端,例如可以应用于图1所示的路由系统的服务器01中。参考图16,该装置可以包括:
生成模块301,可以用于根据待更新的转发表项生成写操作信息,该写操作信息包括写操作数据和写操作地址,该写操作数据用于指示该待更新的转发表项,该写操作地址用于指示待写入该写操作数据的地址。该生成模块301的功能实现可以参考上述方法实施例中步骤101的相关描述。
封装模块302,可以用于将生成的该写操作信息封装为写操作报文。该封装模块302的功能实现可以参考上述方法实施例中步骤102的相关描述。
发送模块303,可以用于发送该写操作报文,该写操作报文用于指示根据该写操作信息中的写操作地址,将该写操作数据写入内存。该发送模块303的功能实现可以参考上述方法实施例中步骤103的相关描述。
可选的,该发送模块303,还可以用于:
发送第一控制报文,该第一控制报文中包括计数值,该计数值为在发送第二控制报文之后发送的写操作报文中所包括的写操作信息的总数,该第二控制报文为在该第一控制报文之前发送的前一个控制报文;
当接收到用于指示在该第二控制报文之后发送的写操作报文丢失的第一提示信息时, 重新发送在该第二控制报文之后发送的写操作报文;
其中,该第一提示信息为报文接收端检测到在接收到该第二控制报文之后执行的写内存操作的总次数与该计数值不相等时发送的。
该发送模块303的功能实现还可以参考上述方法实施例中步骤107以及步骤111的相关描述。
可选的,每个控制报文中还包括序列号,且报文发送端发送的控制报文中的序列号依次递增;该发送模块303,还可以用于:
当接收到用于指示在第三控制报文之后发送的控制报文丢失的第二提示信息时,重新发送在该第三控制报文之后发送的写操作报文;
其中,该第二提示信息为报文接收端在检测到该第一控制报文的序列号与该第三控制报文的序列号的差值不为预设差值时发送的,该第三控制报文为该报文接收端在该第一控制报文之前接收到的前一个控制报文。
该发送模块303的功能实现还可以参考上述方法实施例中步骤113的相关描述。
可选的,如图17所示,该装置还可以包括:
检测模块304,可以用于在该发送模块每次发送控制报文之后,检测在发送控制报文之后未发送写操作报文的空闲时长是否大于时长阈值。该检测模块304的功能实现可以参考上述方法实施例中步骤114的相关描述。
该发送模块303,还可以用于:
当该空闲时长大于该时长阈值时,发送保活报文,该保活报文中包括序列号,且该保活报文的序列号与上一个控制报文的序列号的差值为该预设差值;
当接收到用于指示在第四控制报文之后发送的控制报文丢失的第三提示信息时,重新发送在该第四控制报文之后发送的写操作报文;
其中,该第三提示信息为报文接收端在检测到接收到的该保活报文的序列号与该第四控制报文的序列号的差值不为预设差值时发送的,该第四控制报文为该报文接收端在该保活报文之前接收到的前一个控制报文。
该发送模块303的功能实现还可以参考上述方法实施例中步骤115以及步骤118的相关描述。
综上所述,本发明实施例提供了一种转发表项的更新装置,该装置发送的写操作报文中的写操作信息包括写操作数据和写操作地址,报文接收端可以直接根据该写操作地址,将写操作数据写入内存中,从而完成转发表项的更新。由于报文接收端仅需执行写内存操作,而无需再执行计算写操作数据的操作,因此该装置下发写操作报文的速率不会受到报文接收端处理性能的限制,有效提高了转发表项的下发速率和更新效率。
应理解的是,本发明实施例的转发表项的更新装置还可以用专用集成电路(application-specific integrated circuit,ASIC)实现,或可编程逻辑器件(programmable logic device,PLD)实现,上述PLD可以是复杂程序逻辑器件(complex programmable logical device,CPLD),现场可编程门阵列(field-programmable gate array,FPGA),通用阵列逻辑(generic array logic,GAL)或其任意组合。也可以通过软件实现上述方法实施例提供的转发表项的更新方法,当通过软件实现上述方法实施例提供的转发表项的更新方法时,该转发表项的更新装置中的各个模块也可以为软件模块。
图18是本发明实施例提供的再一种转发表项的更新装置的结构示意图,参考图18,该装置可以包括:处理器1201、存储器1202、网络接口1203和总线1204。其中,总线1204用于连接处理器1201、存储器1202和网络接口1203。通过网络接口1203(可以是有线或者无线)可以实现与其他设备之间的通信连接。存储器1202中存储有计算机程序12021,该计算机程序12021用于实现各种应用功能。
应理解,在本发明实施例中,处理器1201可以是CPU,该处理器1201还可以是其他通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现场可编程门阵列(FPGA)、GPU或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者是任何常规的处理器等。
存储器1202可以是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(read-only memory,ROM)、可编程只读存储器(programmable ROM,PROM)、可擦除可编程只读存储器(erasable PROM,EPROM)、电可擦除可编程只读存储器(electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(random access memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(static RAM,SRAM)、动态随机存取存储器(DRAM)、同步动态随机存取存储器(synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(double data date SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(synchlink DRAM,SLDRAM)和直接内存总线随机存取存储器(direct rambus RAM,DR RAM)。
总线1204除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线1204。
当该装置应用于报文发送端时,处理器1201被配置为执行存储器1202中存储的计算机程序12021,处理器1201通过执行该计算机程序12021来实现上述方法实施例中步骤101至步骤103、步骤107、步骤111、步骤113至步骤115以及骤118所示的方法。并且,上述步骤103、步骤107、步骤111、步骤113步骤115以及骤118所示的方法可以是处理器1201通过执行该计算机程序12021来驱动网络接口1203实现的。
当该装置应用于报文接收端时,处理器1201被配置为执行存储器1202中存储的计算机程序,处理器1201通过执行该计算机程序12021来实现上述方法实施例中步骤104至步骤106、步骤108至步骤110、步骤112、以及骤116和步骤117所示的方法。并且,上述步骤110、步骤112以及骤117所示的方法可以是处理器1201通过执行该计算机程序12021来驱动网络接口1203实现的。
本发明实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当该计算机可读存储介质中存储的指令在计算机上运行时,使得计算机执行如上述方法实施例中由服务器执行的方法,或者由线卡盒子执行的方法。
本发明实施例还提供了一种包含指令的计算机程序产品,当该指令在计算机上运行 时,使得计算机执行上述方法实施例中由服务器执行的方法,或者由线卡盒子执行的方法。
本发明实施例还提供了一种转发表项的发送系统,该系统可以包括:报文发送端和报文接收端。示例的,该系统可以为如图1所示的路由系统,该报文发送端可以为服务器01,报文接收端可以为线卡盒子02。
其中,该报文发送端可以包括如图16或图17所示的装置,该报文接收端可以包括图14或图15所示的装置。
上述实施例,可以全部或部分地通过软件、硬件、固件或其他任意组合来实现。当使用软件实现时,上述实施例可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载或执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以为通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集合的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质。半导体介质可以是固态硬盘(solid state drive,SSD)。
以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (22)
- 一种转发表项的更新方法,其特征在于,所述方法包括:接收写操作报文,所述写操作报文中包括写操作信息,所述写操作信息包括写操作数据和写操作地址,所述写操作数据用于指示待更新的转发表项,所述写操作地址用于指示内存中待写入所述写操作数据的地址;从所述写操作报文中获取所述写操作信息;根据所述写操作信息中的写操作地址,将所述写操作数据写入所述内存。
- 根据权利要求1所述的方法,其特征在于,在将所述写操作数据写入内存之后,所述方法还包括:接收第一控制报文,所述第一控制报文中包括计数值,所述计数值为在第二控制报文和所述第一控制报文之间发送的写操作报文中所包括的写操作信息的总数,所述第二控制报文为在所述第一控制报文之前发送的前一个控制报文;检测在接收到所述第二控制报文之后执行的写内存操作的总次数与所述计数值是否相等,所述写内存操作是指将写操作数据写入内存的操作;当所述计数值与所述总次数不相等时,发送第一提示信息,所述第一提示信息用于指示在所述第二控制报文之后发送的写操作报文丢失;接收基于所述第一提示信息重新发送的写操作报文。
- 根据权利要求2所述的方法,其特征在于,每个控制报文中还包括序列号,且报文发送端发送的控制报文中的序列号依次递增;在所述接收第一控制报文之后,所述方法还包括:检测所述第一控制报文的序列号与第三控制报文的序列号的差值是否为预设差值,所述第三控制报文为在所述第一控制报文之前接收到的前一个控制报文;所述检测在接收到所述第二控制报文之后执行的写内存操作的总次数与所述计数值是否相等,包括:当所述第一控制报文的序列号与所述第三控制报文的序列号的差值为预设差值时,确定所述第三控制报文为所述第二控制报文,并检测在接收到所述第三控制报文之后执行的写内存操作的总次数与所述计数值是否相等。
- 根据权利要求3所述的方法,其特征在于,在检测所述第一控制报文的序列号与第三控制报文的序列号的差值是否为预设差值之后,所述方法还包括:当所述第一控制报文的序列号与所述第三控制报文的序列号的差值不为预设差值时,发送第二提示信息,所述第二提示信息用于指示在所述第三控制报文之后发送的控制报文丢失;接收基于所述第二提示信息重新发送的写操作报文。
- 根据权利要求3所述的方法,其特征在于,所述方法还包括:接收保活报文,所述保活报文中包括序列号,所述报文发送端发送的所述保活报文的序列号与在所述保活报文之前发送的前一个控制报文的序列号的差值为所述预设差值;检测所述保活报文的序列号与第四控制报文的序列号的差值是否为所述预设差值,所述第四控制报文为在所述保活报文之前接收到的前一个控制报文;当所述保活报文的序列号与所述第四控制报文的序列号的差值不为所述预设差值时,发送第三提示信息,所述第三提示信息用于指示在所述第四控制报文之后发送的控制报文丢失;接收基于所述第三提示信息重新发送的写操作报文。
- 根据权利要求2所述的方法,其特征在于,所述写操作报文中还包括序列号,且报文发送端在两个控制报文之间发送的写操作报文的序列号的大小均与在后发送的控制报文的序列号的大小相等;在将所述写操作数据写入内存之后,所述方法还包括:统计基于同一序列号的写操作报文执行的写内存操作的总次数,得到序列号与总次数的对应关系;所述检测在接收到所述第二控制报文之后执行的写内存操作的总次数与所述计数值是否相等,包括:获取所述第一控制报文的序列号所对应的总次数;检测所述第一控制报文的序列号所对应的总次数与所述计数值是否相等。
- 根据权利要求1至6任一所述的方法,其特征在于,所述根据所述写操作信息中的写操作地址,将所述写操作数据写入内存,包括:按照所述写操作报文的接收顺序,以及所述写操作报文中包括的所述写操作信息的顺序,依次根据每个所述写操作信息中的写操作地址,将所述写操作数据写入内存。
- 一种转发表项的更新方法,其特征在于,所述方法包括:根据待更新的转发表项生成写操作信息,所述写操作信息包括写操作数据和写操作地址,所述写操作数据用于指示所述待更新的转发表项,所述写操作地址用于指示待写入所述写操作数据的地址;将生成的所述写操作信息封装为写操作报文;发送所述写操作报文,所述写操作报文用于指示根据所述写操作信息中的写操作地址,将所述写操作数据写入内存。
- 根据权利要求8所述的方法,其特征在于,所述方法还包括:发送第一控制报文,所述第一控制报文中包括计数值,所述计数值为在发送第二控制报文之后发送的写操作报文中所包括的写操作信息的总数,所述第二控制报文为在所述第一控制报文之前发送的前一个控制报文;当接收到用于指示在所述第二控制报文之后发送的写操作报文丢失的第一提示信息 时,重新发送在所述第二控制报文之后发送的写操作报文;其中,所述第一提示信息为报文接收端检测到在接收到所述第二控制报文之后执行的写内存操作的总次数与所述计数值不相等时发送的。
- 根据权利要求9所述的方法,其特征在于,每个控制报文中还包括序列号,且报文发送端发送的控制报文中的序列号依次递增;所述方法还包括:当接收到用于指示在第三控制报文之后发送的控制报文丢失的第二提示信息时,重新发送在所述第三控制报文之后发送的写操作报文;其中,所述第二提示信息为报文接收端在检测到所述第一控制报文的序列号与所述第三控制报文的序列号的差值不为预设差值时发送的,所述第三控制报文为所述报文接收端在所述第一控制报文之前接收到的前一个控制报文。
- 根据权利要求9或10所述的方法,其特征在于,在每次发送控制报文之后,所述方法还包括:检测在发送控制报文之后未发送写操作报文的空闲时长是否大于时长阈值;当所述空闲时长大于所述时长阈值时,发送保活报文,所述保活报文中包括序列号,且所述保活报文的序列号与上一个控制报文的序列号的差值为所述预设差值;当接收到用于指示在第四控制报文之后发送的控制报文丢失的第三提示信息时,重新发送在所述第四控制报文之后发送的写操作报文;其中,所述第三提示信息为报文接收端在检测到接收到的所述保活报文的序列号与所述第四控制报文的序列号的差值不为预设差值时发送的,所述第四控制报文为所述报文接收端在所述保活报文之前接收到的前一个控制报文。
- 一种转发表项的更新装置,其特征在于,所述装置包括:接收模块,用于接收写操作报文,所述写操作报文中包括写操作信息,所述写操作信息包括写操作数据和写操作地址,所述写操作数据用于指示待更新的转发表项,所述写操作地址用于指示内存中待写入所述写操作数据的地址;获取模块,用于从所述写操作报文中获取所述写操作信息;写入模块,用于根据所述写操作信息中的写操作地址,将所述写操作数据写入所述内存。
- 根据权利要求12所述的装置,其特征在于,所述接收模块,还用于在所述写入模块将所述写操作数据写入内存之后,接收第一控制报文,所述第一控制报文中包括计数值,所述计数值为在第二控制报文和所述第一控制报文之间发送的写操作报文中所包括的写操作信息的总数,所述第二控制报文为在所述第一控制报文之前发送的前一个控制报文;所述装置还包括:检测模块,用于检测在接收到所述第二控制报文之后执行的写内存操作的总次数与所述计数值是否相等,所述写内存操作是指将写操作数据写入内存的操作;发送模块,用于当所述计数值与所述总次数不相等时,发送第一提示信息,所述第一提示信息用于指示在所述第二控制报文之后发送的写操作报文丢失;所述接收模块,还用于接收基于所述第一提示信息重新发送的写操作报文。
- 根据权利要求13所述的装置,其特征在于,每个控制报文中还包括序列号,且报文发送端发送的控制报文中的序列号依次递增;所述检测模块,还用于:在所述接收模块接收第一控制报文之后,检测所述第一控制报文的序列号与第三控制报文的序列号的差值是否为预设差值,所述第三控制报文为在所述第一控制报文之前接收到的前一个控制报文;所述检测模块,用于:当所述第一控制报文的序列号与所述第三控制报文的序列号的差值为预设差值时,确定所述第三控制报文为所述第二控制报文,并检测在接收到所述第三控制报文之后执行的写内存操作的总次数与所述计数值是否相等。
- 根据权利要求14所述的装置,其特征在于,所述发送模块,还用于当所述第一控制报文的序列号与所述第三控制报文的序列号的差值不为预设差值时,发送第二提示信息,所述第二提示信息用于指示在所述第三控制报文之后发送的控制报文丢失;所述接收模块,还用于接收基于所述第二提示信息重新发送的写操作报文。
- 根据权利要求14所述的装置,其特征在于,所述接收模块,还用于接收保活报文,所述保活报文中包括序列号,所述报文发送端发送的所述保活报文的序列号与在所述保活报文之前发送的前一个控制报文的序列号的差值为所述预设差值;所述检测模块,还用于检测所述保活报文的序列号与第四控制报文的序列号的差值是否为所述预设差值,所述第四控制报文为在所述保活报文之前接收到的前一个控制报文;所述发送模块,还用于当所述保活报文的序列号与所述第四控制报文的序列号的差值不为所述预设差值时,发送第三提示信息,所述第三提示信息用于指示在所述第四控制报文之后发送的控制报文丢失;所述接收模块,还用于接收基于所述第三提示信息重新发送的写操作报文。
- 根据权利要求13所述的装置,其特征在于,所述写操作报文中还包括序列号,且报文发送端在两个控制报文之间发送的写操作报文的序列号的大小均与在后发送的控制报文的序列号的大小相等;所述装置还包括:统计模块,用于在所述写入模块将所述写操作数据写入内存之后,统计基于同一序列号的写操作报文执行的写内存操作的总次数,得到序列号与总次数的对应关系;所述检测模块,用于:获取所述第一控制报文的序列号所对应的总次数;检测所述第一控制报文的序列号所对应的总次数与所述计数值是否相等。
- 根据权利要求12至17任一所述的装置,其特征在于,所述写入模块,用于:按照所述写操作报文的接收顺序,以及所述写操作报文中包括的所述写操作信息的顺序,依次根据每个所述写操作信息中的写操作地址,将所述写操作数据写入内存。
- 一种转发表项的更新装置,其特征在于,所述装置包括:生成模块,用于根据待更新的转发表项生成写操作信息,所述写操作信息包括写操作数据和写操作地址,所述写操作数据用于指示所述待更新的转发表项,所述写操作地址用于指示待写入所述写操作数据的地址;封装模块,用于将生成的所述写操作信息封装为写操作报文;发送模块,用于发送所述写操作报文,所述写操作报文用于指示根据所述写操作信息中的写操作地址,将所述写操作数据写入内存。
- 根据权利要求19所述的装置,其特征在于,所述发送模块,还用于:发送第一控制报文,所述第一控制报文中包括计数值,所述计数值为在发送第二控制报文之后发送的写操作报文中所包括的写操作信息的总数,所述第二控制报文为在所述第一控制报文之前发送的前一个控制报文;当接收到用于指示在所述第二控制报文之后发送的写操作报文丢失的第一提示信息时,重新发送在所述第二控制报文之后发送的写操作报文;其中,所述第一提示信息为报文接收端检测到在接收到所述第二控制报文之后执行的写内存操作的总次数与所述计数值不相等时发送的。
- 根据权利要求20所述的装置,其特征在于,每个控制报文中还包括序列号,且报文发送端发送的控制报文中的序列号依次递增;所述发送模块,还用于:当接收到用于指示在第三控制报文之后发送的控制报文丢失的第二提示信息时,重新发送在所述第三控制报文之后发送的写操作报文;其中,所述第二提示信息为报文接收端在检测到所述第一控制报文的序列号与所述第三控制报文的序列号的差值不为预设差值时发送的,所述第三控制报文为所述报文接收端在所述第一控制报文之前接收到的前一个控制报文。
- 根据权利要求20或21所述的装置,其特征在于,所述装置还包括:检测模块,用于在所述发送模块每次发送控制报文之后,检测在发送控制报文之后未发送写操作报文的空闲时长是否大于时长阈值;所述发送模块,还用于:当所述空闲时长大于所述时长阈值时,发送保活报文,所述保活报文中包括序列号,且所述保活报文的序列号与上一个控制报文的序列号的差值为所述预设差值;当接收到用于指示在第四控制报文之后发送的控制报文丢失的第三提示信息时,重 新发送在所述第四控制报文之后发送的写操作报文;其中,所述第三提示信息为报文接收端在检测到接收到的所述保活报文的序列号与所述第四控制报文的序列号的差值不为预设差值时发送的,所述第四控制报文为所述报文接收端在所述保活报文之前接收到的前一个控制报文。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP19872140.9A EP3720067B1 (en) | 2018-10-09 | 2019-10-09 | Method and apparatus for updating forwarding entry |
US16/919,465 US11316804B2 (en) | 2018-10-09 | 2020-07-02 | Forwarding entry update method and apparatus in a memory |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811172338.XA CN111026324B (zh) | 2018-10-09 | 2018-10-09 | 转发表项的更新方法及装置 |
CN201811172338.X | 2018-10-09 |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US16/919,465 Continuation US11316804B2 (en) | 2018-10-09 | 2020-07-02 | Forwarding entry update method and apparatus in a memory |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2020073907A1 true WO2020073907A1 (zh) | 2020-04-16 |
Family
ID=70164843
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/CN2019/110054 WO2020073907A1 (zh) | 2018-10-09 | 2019-10-09 | 转发表项的更新方法及装置 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11316804B2 (zh) |
EP (1) | EP3720067B1 (zh) |
CN (1) | CN111026324B (zh) |
WO (1) | WO2020073907A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113709050A (zh) * | 2020-05-22 | 2021-11-26 | 华为技术有限公司 | 数据传输的方法、第一盒子以及第二盒子 |
US11579801B2 (en) * | 2020-06-09 | 2023-02-14 | Samsung Electronics Co., Ltd. | Write ordering in SSDs |
WO2022052709A1 (zh) * | 2020-09-11 | 2022-03-17 | 华为技术有限公司 | 获取下一跳的方法、生成转发表项的方法及装置 |
CN113419978A (zh) * | 2021-06-23 | 2021-09-21 | 新华三信息安全技术有限公司 | 一种通信设备、表项更新方法及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130329603A1 (en) * | 2008-08-21 | 2013-12-12 | Juniper Networks, Inc. | Next hop chaining for forwarding data in a network switching device |
CN104320349A (zh) * | 2014-10-31 | 2015-01-28 | 杭州华三通信技术有限公司 | 一种组播转发表项更新方法和装置 |
CN105099948A (zh) * | 2015-06-30 | 2015-11-25 | 杭州华三通信技术有限公司 | 一种报文信息处理方法及装置 |
CN105591936A (zh) * | 2015-09-11 | 2016-05-18 | 杭州华三通信技术有限公司 | 一种更新转发表项的方法和装置 |
CN106656803A (zh) * | 2015-11-02 | 2017-05-10 | 华为技术有限公司 | 一种更新路由表项的方法、装置及系统 |
CN106713132A (zh) * | 2016-11-23 | 2017-05-24 | 华为技术有限公司 | 用于更新转发表项的方法和装置 |
Family Cites Families (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5938736A (en) * | 1997-06-30 | 1999-08-17 | Sun Microsystems, Inc. | Search engine architecture for a high performance multi-layer switch element |
US7848278B2 (en) * | 2006-10-23 | 2010-12-07 | Telcordia Technologies, Inc. | Roadside network unit and method of organizing, managing and maintaining local network using local peer groups as network groups |
CN101068170A (zh) * | 2007-06-05 | 2007-11-07 | 华为技术有限公司 | 一种报文接收异常的检测方法、系统及其装置 |
EP2112806B1 (en) * | 2008-04-14 | 2013-03-20 | Axis AB | Information collecting system |
CN101330466B (zh) * | 2008-07-24 | 2012-07-04 | 华为技术有限公司 | 一种组播报文的转发方法及装置 |
CN101631086B (zh) * | 2009-08-10 | 2012-09-26 | 武汉烽火网络有限责任公司 | 并行ip路由查找的路由表分区和放置方法 |
CN101783715B (zh) * | 2009-11-19 | 2011-12-28 | 北京邮电大学 | 监测网络丢包率的方法及系统 |
CN101778113B (zh) * | 2010-01-25 | 2013-09-18 | 福建星网锐捷网络有限公司 | 组播网中rp状态检测方法、装置、rp装置和组播系统 |
CN102281146A (zh) * | 2010-06-11 | 2011-12-14 | 阿里巴巴集团控股有限公司 | 一种udp组播方法及装置 |
US8904115B2 (en) * | 2010-09-28 | 2014-12-02 | Texas Instruments Incorporated | Cache with multiple access pipelines |
CN102186221B (zh) * | 2011-04-25 | 2013-11-20 | 北京星网锐捷网络技术有限公司 | 一种路由表项的更新方法以及装置 |
CN102739549B (zh) * | 2012-07-13 | 2015-10-21 | 华为技术有限公司 | 接收报文的方法、发送报文的方法及装置 |
CN102857414B (zh) * | 2012-08-20 | 2018-05-04 | 中兴通讯股份有限公司 | 一种转发表写入、报文转发方法及装置 |
CN102929818B (zh) * | 2012-10-23 | 2015-12-16 | 华为技术有限公司 | PCIe接口的传输报文数据方法、桥接模块、读取模块和系统 |
CN103905397B (zh) * | 2012-12-28 | 2015-05-13 | 腾讯科技(深圳)有限公司 | 数据同步方法和系统 |
CN103346981B (zh) * | 2013-06-28 | 2016-08-10 | 华为技术有限公司 | 虚拟交换方法、相关装置和计算机系统 |
CN103984506B (zh) * | 2014-04-30 | 2017-06-30 | 深圳市江波龙电子有限公司 | 闪存存储设备数据写的方法和系统 |
US9762489B2 (en) * | 2014-09-24 | 2017-09-12 | Cisco Technology, Inc. | Local packet switching at a satellite device |
CN104394099B (zh) * | 2014-12-08 | 2017-09-19 | 福建星网锐捷网络有限公司 | 一种报文传输方法及装置 |
CN106330579B (zh) * | 2015-06-15 | 2020-04-28 | 中兴通讯股份有限公司 | 一种用于ptn设备的丢包统计方法及装置 |
US10152352B2 (en) * | 2015-11-17 | 2018-12-11 | Friday Harbor Llc | Writing to contiguous memory addresses in a network on a chip architecture |
US10552620B2 (en) * | 2016-06-20 | 2020-02-04 | Intel Corporation | Technologies for trusted I/O protection of I/O data with header information |
CN107579916B (zh) * | 2016-07-04 | 2021-03-23 | 新华三技术有限公司 | 转发表项访问方法及装置 |
CN107769988B (zh) * | 2016-08-19 | 2021-05-04 | 华为技术有限公司 | 信息发送及检测报文丢失的方法、装置和网络设备 |
CN107547364B (zh) * | 2017-08-15 | 2021-08-06 | 新华三技术有限公司 | 路由下发方法、装置和网络设备 |
CN108418740B (zh) * | 2018-02-28 | 2020-09-08 | 新华三技术有限公司 | 报文处理方法及装置 |
CN111555981A (zh) * | 2020-04-03 | 2020-08-18 | 深圳震有科技股份有限公司 | 一种数据传输方法、交换机及存储介质 |
-
2018
- 2018-10-09 CN CN201811172338.XA patent/CN111026324B/zh active Active
-
2019
- 2019-10-09 WO PCT/CN2019/110054 patent/WO2020073907A1/zh unknown
- 2019-10-09 EP EP19872140.9A patent/EP3720067B1/en active Active
-
2020
- 2020-07-02 US US16/919,465 patent/US11316804B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130329603A1 (en) * | 2008-08-21 | 2013-12-12 | Juniper Networks, Inc. | Next hop chaining for forwarding data in a network switching device |
CN104320349A (zh) * | 2014-10-31 | 2015-01-28 | 杭州华三通信技术有限公司 | 一种组播转发表项更新方法和装置 |
CN105099948A (zh) * | 2015-06-30 | 2015-11-25 | 杭州华三通信技术有限公司 | 一种报文信息处理方法及装置 |
CN105591936A (zh) * | 2015-09-11 | 2016-05-18 | 杭州华三通信技术有限公司 | 一种更新转发表项的方法和装置 |
CN106656803A (zh) * | 2015-11-02 | 2017-05-10 | 华为技术有限公司 | 一种更新路由表项的方法、装置及系统 |
CN106713132A (zh) * | 2016-11-23 | 2017-05-24 | 华为技术有限公司 | 用于更新转发表项的方法和装置 |
Non-Patent Citations (1)
Title |
---|
See also references of EP3720067A4 |
Also Published As
Publication number | Publication date |
---|---|
US11316804B2 (en) | 2022-04-26 |
EP3720067A1 (en) | 2020-10-07 |
CN111026324B (zh) | 2021-11-19 |
CN111026324A (zh) | 2020-04-17 |
EP3720067A4 (en) | 2021-03-31 |
EP3720067B1 (en) | 2023-12-06 |
US20200366626A1 (en) | 2020-11-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2020073907A1 (zh) | 转发表项的更新方法及装置 | |
US9590923B2 (en) | Reliable link layer for control links between network controllers and switches | |
EP3942759A1 (en) | System and method for facilitating efficient management of idempotent operations in a network interface controller (nic) | |
US20220078114A1 (en) | Method and Apparatus for Providing Service for Traffic Flow | |
US10791054B2 (en) | Flow control and congestion management for acceleration components configured to accelerate a service | |
US8175116B2 (en) | Multiprocessor system for aggregation or concatenation of packets | |
CN113326228B (zh) | 基于远程直接数据存储的报文转发方法、装置及设备 | |
WO2019134383A1 (zh) | 控制网络拥塞的方法、接入设备和计算机可读存储介质 | |
US8953631B2 (en) | Interruption, at least in part, of frame transmission | |
US20140269319A1 (en) | Network per-flow rate limiting | |
US20210218808A1 (en) | Small Message Aggregation | |
WO2019227891A1 (zh) | 一种实现节点间通讯的方法、装置及电子设备 | |
US11782869B2 (en) | Data transmission method and related device | |
US10326696B2 (en) | Transmission of messages by acceleration components configured to accelerate a service | |
CN117176486A (zh) | 网络信息传输系统 | |
US11070386B2 (en) | Controlling an aggregate number of unique PIM joins in one or more PIM join/prune messages received from a PIM neighbor | |
CN106992918B (zh) | 报文转发方法和装置 | |
CN113542148B (zh) | 一种报文聚合方法、装置、网络网卡及可读存储介质 | |
CN109120556B (zh) | 一种云主机访问对象存储服务器的方法及系统 | |
CN117354253A (zh) | 一种网络拥塞通知方法、装置及存储介质 | |
US9621487B2 (en) | Method and apparatus for protection switching based on memory control in packet transport system | |
WO2024125098A1 (zh) | 数据传输方法、装置、设备及计算机可读存储介质 | |
WO2022261961A1 (zh) | 用于转发报文的方法、交换机以及网络接口卡 | |
US20240106750A1 (en) | Techniques for multi-pathing over reliable paths and completion reporting | |
JP2017152787A (ja) | 通信装置および通信システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 19872140 Country of ref document: EP Kind code of ref document: A1 |
|
ENP | Entry into the national phase |
Ref document number: 2019872140 Country of ref document: EP Effective date: 20200629 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |