WO2017071430A1 - 处理报文的方法、网卡及系统、更新信息的方法及主机 - Google Patents

处理报文的方法、网卡及系统、更新信息的方法及主机 Download PDF

Info

Publication number
WO2017071430A1
WO2017071430A1 PCT/CN2016/099591 CN2016099591W WO2017071430A1 WO 2017071430 A1 WO2017071430 A1 WO 2017071430A1 CN 2016099591 W CN2016099591 W CN 2016099591W WO 2017071430 A1 WO2017071430 A1 WO 2017071430A1
Authority
WO
WIPO (PCT)
Prior art keywords
network card
session
identifier
host
updated
Prior art date
Application number
PCT/CN2016/099591
Other languages
English (en)
French (fr)
Inventor
卢胜文
Original Assignee
华为技术有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 华为技术有限公司 filed Critical 华为技术有限公司
Publication of WO2017071430A1 publication Critical patent/WO2017071430A1/zh

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0813Configuration setting characterised by the conditions triggering a change of settings
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/08Configuration management of networks or network elements
    • H04L41/0803Configuration setting
    • H04L41/0813Configuration setting characterised by the conditions triggering a change of settings
    • H04L41/082Configuration setting characterised by the conditions triggering a change of settings the condition being updates or upgrades of network functionality

Definitions

  • the present invention relates to the field of computers, and in particular, to a method for processing a message, a network card and a system, a method for updating information, and a host.
  • a NIC is a type of physical hardware that is configured on the host.
  • the NIC receives the packets sent by other hosts and sends them to the host.
  • the host processes the packets.
  • the packets sent by other hosts are processed.
  • a network card with an offload function is present, and hardware is unloaded for the packets. If the NIC with the unloading function is configured as the NIC to which the host belongs, some of the packets in the packets that need to be processed by the host can be processed by the NIC with the uninstall function. Therefore, the workload of the host is reduced and the performance is improved.
  • a network card is assigned to each session, and the network card generates and records the context of the message of the session for offload processing, if the switch fails or Other reasons cause the packets of the session to be sent to other network cards. Other network cards cannot be uninstalled.
  • the embodiment of the present invention provides a method for processing a message, a network card and a system, a method for updating information, and a host, which are used to solve the problem between the network card and the switch in the network card with the uninstall function in the network card that the host belongs to in the prior art. After the link fails, another NIC with the offload function cannot process the received packet.
  • a first aspect of the embodiments of the present invention provides a method for processing a message, which is applied to a processing report.
  • the system includes: a first host, a first network card, and a second network card, the method comprising:
  • the first network card receives the first packet of the session, determines that the identifier of the destination network card of the session is the identifier of the first network card, processes the first packet, and generates other packets for processing the session.
  • the second network card determines, according to the reference information, that the identifier of the destination network card of the session is the identifier of the second network card, and processes the received other packets of the session. Therefore, even if the link between the first network card and the switch fails, the second network card can obtain the reference information, and the identifier of the destination network card of the session has been updated to the identifier of the second network card, so the second network card can receive the received report.
  • the text is processed.
  • the first host determines that the identifier of the destination network card of the session needs to be updated, including:
  • the second network card discards the received packet of the session, and counts the number of the packets discarded by the second network card.
  • the identifier of the destination network card of the session needs to be updated.
  • the first host determines, by means of the second network card, that the identifier of the destination network card of the session needs to be updated, and specifically, the second network card discards the received message of the session, and Counting the number of packets of the session discarded by the second network card, and counting the number of the packets
  • the number of the packets of the session discarded by the second network card is sent to the second host, and then the first host determines whether the number of the second network card is greater than a predetermined threshold. If the value is greater than the predetermined threshold, the identifier of the destination network card of the session is determined. need to be updated.
  • the first host determines that the identifier of the destination network card of the session needs to be updated, including:
  • the second network card discards the received packet of the session, and counts the number of the packets discarded by the second network card.
  • the first host determines, by means of the second network card, that the identifier of the destination network card of the session needs to be updated, and different from the first possible implementation manner of the first aspect, The second network card determines whether the number of the second network card is greater than a predetermined threshold. If the number is greater than the predetermined threshold, the identifier of the destination network card of the first host is notified to be updated.
  • the first host determines that the identifier of the destination network card of the session needs to be updated, including:
  • the first host collects statistics on the number of the packets in the forwarding queue
  • the first host determines that the identifier of the destination network card of the session needs to be updated.
  • the first host determines that the identity of the destination network card of the session needs to be updated, and the first possible implementation manner of the first aspect and the second possible aspect of the first aspect The implementation manner is different, the second network card sends the received packet of the session to the forwarding queue of the first host, and the first host determines whether the number of the packets in the forwarding queue is greater than a predetermined threshold. Determining a threshold, determining the identity of the destination network card of the session Update.
  • the second network card obtains the identifier of the updated destination network card of the session, and the reference information Thereafter, the method further includes:
  • the first host sends a packet of the session in the forwarding queue to the second network card.
  • the first host is configured with a forwarding queue, and since the identifier of the destination network card of the updated session is the same as the identifier of the second network card, the session in the queue is forwarded.
  • the message is sent to the second network card, so that the second network card can process the message of the session in time.
  • the second network card obtains the identifier and location of the updated destination network card of the session Before the reference information, the method further includes:
  • the first host stores the identifier of the destination network card of the session and the reference information; the second network card obtains the updated identifier of the destination network card of the session and the reference information, including:
  • the second network card reads the identifier of the destination network card of the session and the reference information stored by the first host.
  • the second network card actively acquires the identifier of the destination network card of the session and the reference information of the updated session of the session.
  • the first network card first sends the updated identifier and reference information of the destination network card of the session to the first host, and then the second network card reads the content sent by the first network card from the first host.
  • the second network card obtains the identifier and location of the updated destination network card of the session Before the reference information, the method further includes:
  • the first host reads, from the first network card, an identifier of the updated destination network card of the session and the reference information;
  • the second network card obtains, by the second network card, the identifier of the destination network card of the session and the reference information, including:
  • the second network card receives an identifier of the destination network card of the updated session written by the first host, and the reference information.
  • the second network card passively receives the identifier of the destination network card of the session and the reference information of the session.
  • the first network card first sends the updated identifier and reference information of the destination network card of the session to the first host, and then the first host writes the content sent by the first network card to the second network card.
  • a second aspect of the embodiments of the present invention provides a system for processing a message, where the system includes:
  • a first host a first network card, and a second network card
  • the first network card is configured to: receive a first packet of the session, determine that the identifier of the destination network card of the session is an identifier of the first network card, process the first packet, and generate the processing The reference information according to the other packets of the session; updating the identifier of the destination network card of the session to the identifier of the second network card according to the update message;
  • the first host is configured to: determine that the identifier of the destination network card of the session needs to be updated, and send an update message to the first network card, where the update message is used to indicate that the first network card uses the destination network card of the session.
  • the identifier is updated to an identifier of the second network card;
  • the second network card is configured to obtain an identifier of the destination network card of the updated session and the reference information.
  • the second network card is further configured to:
  • the first host is further configured to: when the number of the packets of the session discarded by the second network card is greater than a predetermined threshold, the identifier of the destination network card of the session needs to be updated.
  • the second network card is used to:
  • the notification message is sent to the first host, where the notification message is used to notify the first host that the identifier of the destination network card of the session needs to be updated.
  • the second network card is further configured to:
  • the first host is further configured to: count the number of the packets in the forwarding queue; and when the number of the packets in the forwarding queue is greater than a predetermined threshold, the first host determines The identity of the destination network card of the session needs to be updated.
  • the first host is further configured to:
  • the first network card is further configured to:
  • the first host is further configured to: store an identifier of the destination network card of the updated session and the reference information;
  • the second network card is further configured to: receive a message of the session; and read an identifier of the destination network card of the updated session and the reference information stored by the first host.
  • the first host is further configured to:
  • the second network card is further configured to: receive an identifier of the destination network card of the updated session written by the first host, and the reference information.
  • a third aspect of the embodiments of the present invention provides a method for processing a message, where the method includes:
  • the first network card receives the first packet of the session, determines that the identifier of the destination network card of the session is the identifier of the first network card, processes the first packet, and generates another packet for processing the session.
  • Reference information based on;
  • the first network card updates the identifier of the destination network card of the session to the identifier of the second network card according to the update message.
  • a fourth aspect of the embodiment of the present invention provides a first network card, where the first network card includes:
  • a processor a memory, a receiver, the processor and the memory and the receiver are both connected by a bus, the memory is used to store program code executed by the processor;
  • the receiver is configured to receive a first message of the session, and receive an update message sent by the first host, where the update message is used to indicate that the first network card updates the identifier of the destination network card of the session to the second network card.
  • the processor is configured to: determine an identifier of the destination network card of the session as an identifier of the first network card, process the first packet, and generate reference information according to another packet processed by the session; And updating, according to the update message, an identifier of the destination network card of the session to an identifier of the second network card.
  • a fifth aspect of the embodiments of the present invention provides a method for updating information, where the method includes:
  • the first host determines that the identifier of the destination network card of the session needs to be updated, and sends an update message to the first network card, where the update message is used to indicate that the first network card identifies the destination network card of the session. Update to the identity of the second NIC;
  • the first host receives the identifier and reference information of the updated destination network card of the session sent by the first network card, where the reference information is generated by the first network card to process other messages of the session. Information based on
  • the first host sends the received identifier of the destination network card of the session and the reference information to the second network card.
  • the method further includes:
  • the first host counts the number of packets of the session discarded by the second network card
  • the identifier of the destination network card of the session needs to be updated.
  • the method further includes:
  • the first host counts the number of packets of the session in the forwarding queue of the first host
  • the first host determines that the identifier of the destination network card of the session needs to be updated.
  • the first host receives the updated destination network card of the session sent by the first network card After the identification and reference information, the method further includes:
  • the first host sends a packet of the session in the forwarding queue to the second network card.
  • a sixth aspect of the embodiment of the present invention provides a first host, where the first host includes:
  • processors a processor, a memory, a receiver, and a transmitter
  • the processor and the memory, the receiver, and the transmitter are each connected by a bus
  • the memory is configured to store program code executed by the processor
  • the processor is configured to: determine that the identifier of the destination network card of the session needs to be updated, and send an update message to the first network card, where the update message is used to indicate that the first network card updates the identifier of the destination network card of the session to the first Identification of the second network card;
  • the receiver is configured to: receive an identifier of the destination network card of the session sent by the first network card, and reference information, where the reference information is generated by the first network card to process other messages of the session Information on which it is based;
  • the transmitter is configured to: send the received identifier of the destination network card of the session and the reference information to the second network card.
  • the processor is further configured to:
  • the processor is further configured to:
  • the transmitter is further configured to:
  • the first network card receives the first packet of the session, determines that the identifier of the destination network card of the session is the identifier of the first network card, processes the first packet, and generates another process for processing the session.
  • the reference information on which the message is based then after updating the identifier of the destination network card of the session to the identifier of the second network card, the second network card obtains the updated destination network card identifier and reference information of the session, such that The second network card determines, according to the reference information, that the identifier of the destination network card of the session is the identifier of the second network card, and processes the received other packets of the session.
  • the second network card can obtain the reference information, and the identifier of the destination network card of the session is updated to the identifier of the second network card, so the second network card can perform the received message. deal with.
  • FIG. 1 is a schematic structural diagram of a system for processing a message according to an embodiment of the present disclosure
  • FIG. 2 is a schematic diagram of information interaction of a method for processing a message by a system according to an embodiment of the present invention
  • FIG. 3 is a flowchart of a method for processing a message by a first network card according to an embodiment of the present invention
  • FIG. 4 is a schematic structural diagram of a first network card according to an embodiment of the present invention.
  • FIG. 5 is a flowchart of a method for performing information update by a first host according to an embodiment of the present invention
  • FIG. 6 is a schematic structural diagram of a first host according to an embodiment of the present invention.
  • the network card mentioned in the embodiment of the present invention is a network card having an unloading function, unless otherwise specified.
  • the protocols that implement hardware unloading on the NIC are: TCP (Chinese: Transmission Control Protocol; English: Transmission Control Protocol), iSCSI (Chinese: Internet Small Computer System Interface); FCoE (Chinese: Ethernet Fibre Channel; English: Fibre Channel over Ethernet) protocol.
  • the above-mentioned protocols are stateful protocols. If the protocol that the packet follows is a stateful protocol, there is a dependency between the packets.
  • the context is used to record the dependencies between the packets.
  • the network card processes the packets according to the context. . Since the original message becomes a processed message after being processed by the network card, the dependency relationship between the messages changes accordingly. Therefore, each time the network card processes the message, the context changes accordingly.
  • the NIC needs to process the packet according to the latest context. If the context is not up to date, the NIC cannot correctly process the packet.
  • the context in the embodiment of the present invention includes the reference information on which the message is processed and the identifier of the destination network card.
  • Unloading is divided into full unloading and semi-unloading.
  • the NIC will process the packet completely, and the host does not participate in the packet processing. Therefore, when the NIC processes the first packet, there is no latest context.
  • the NIC processes the first packet, The first packet processed, the latest context is generated, and the network card processes other messages after the first packet according to the latest context generated.
  • the host For a half-unload, the host first processes a part of the simple packet, and then offloads the remaining part of the complex packet to the network card.
  • the network card processes the remaining complex packets. Therefore, the host first processes the part of the simple message, and then processes the part of the simple message, generates the latest context, and sends the message to the network card, and sends the remaining part of the complex message to the network card, the network card.
  • processing the first message in the remaining part of the complex message processing the first message in the remaining part of the complex message according to the latest context sent by the host, and processing the network card
  • the latest context is generated according to the first message in the remaining part of the processed complex message, and the network card processes according to the generated latest context. Other messages after the first message in the remaining part of the complex message.
  • the NIC with the unloading function is configured as the NIC of the first host as an example to illustrate the technical problems existing in the packet processing method in the prior art.
  • the switch After receiving the packet corresponding to the session sent by the second host to the first host, the switch forwards the packet to the first network card.
  • the first NIC receives the first packet corresponding to the session sent by the second host, and then processes the received packet. If the packet corresponding to the session is half-unloaded, the first host processes a part of the packet corresponding to the session, generates the latest context according to the processed packet, and sends the latest context to the first network card. The first network card receives the packet. After the second host sends the message corresponding to the remaining part of the session, the first network card processes the received message according to the latest context received.
  • the first NIC After the first NIC processes the received packet, the first NIC generates the latest context according to the processed packet, so as to receive other packets corresponding to the session sent by the second host through the switch. After that, according to the latest context, other messages corresponding to the session are processed.
  • the switch receives the packet sent by the second host to the first host, and then forwards the packet to the second NIC. Since the latest context is generated by the first NIC, the cache is cached in the first NIC, so the first The second network card does not have the latest context, and the second network card cannot process the received message.
  • the embodiments of the present invention provide a method for processing a message, and the method is applicable to a system for processing a message.
  • the system includes: a first host, a first network card, and a second network card, wherein the first network card and the second network card are configured as a network card to which the first host belongs, the first network card and The second network card has an uninstall function.
  • the number of network cards having the unloading function of the network card to which the first host belongs may be two or more.
  • the number of network cards having the uninstall function that the first host belongs to is two. As an example, it will be explained.
  • the first host establishes a physical connection with the second host through the switch, and the communication network between the switch and the second host, or the switching network.
  • the physical hardware configured on the second host is not limited. As long as the physical connection can be established through the switch and the first host, any number of the NICs with the uninstall function can be configured in the second host, and any number of the NICs can be configured. Unloading the function network card.
  • a method for processing a packet includes:
  • Step 21 The first network card receives the first packet of the session, determines that the identifier of the destination network card of the session is the identifier of the first network card, processes the first packet, and generates and processes the session. Reference information on which other messages are based;
  • Step 22 The first host determines that the identifier of the destination network card of the session needs to be updated, and sends an update message to the first network card, where the update message is used to indicate that the first network card uses the destination network card of the session.
  • the identifier is updated to an identifier of the second network card;
  • Step 23 The first network card updates the identifier of the destination network card of the session to the identifier of the second network card according to the update message.
  • Step 24 The second network card obtains the identifier of the destination network card of the session and the reference information.
  • the first host is configured with a memory for storing an identifier of the destination network card of the established session between the first host and the second host.
  • the first network card is configured with a first buffer
  • the second network card is configured with a second buffer.
  • the first network card and the second network card can both read the identifier of the destination network card of the session stored in the memory of the first host, and respectively Stored in the first buffer and in the second buffer.
  • the network card having the same identifier as the destination network card in the first network card and the second network card has the right to process the received message of the session, and the processed message is processed according to the session in the network card.
  • the NICs in the first NIC and the second NIC that have different identifiers from the destination NIC do not have the above two privilege.
  • the switch When the identifier of the destination network card of the session is the identifier of the first network card, and the link between the first network card and the switch is normal, the switch receives the message of the session sent by the second host to the first host, It will be forwarded to the first network card, so that the first network card receives the message of the session. Take The message of the session received by the first network card is referred to as the first message of the session.
  • the first host may send the identifier of the destination network card of the session stored in the memory to the first network card, so that the first network card determines whether the identifier of the destination network card of the session is the identifier of the first network card.
  • the first network card may further perform the following steps:
  • the first network card reads an identifier of a destination network card of the session stored by the first host.
  • the first network card may actively take the first host after receiving the first message of the session.
  • the identifier of the destination network card of the session is read in the memory.
  • the first network card determines whether the identifier of the destination network card of the session is the identifier of the first network card, and if yes, processes the received first packet of the session. Then, according to the processed first message of the session, generate reference information according to other messages for processing the session, and store the information in its own buffer, and then store the reference information stored in its own buffer. Sync to the memory of the first host.
  • the switch When the identifier of the destination network card of the session is the identifier of the first network card, and the link between the first network card and the switch fails, the switch receives the packet of the session sent by the second host to the first host. And forwarded to the second network card, so that the second network card receives the message of the session.
  • the first host may send the identifier of the destination network card of the session stored in the memory to the second network card, so as to facilitate the second
  • the network card determines whether the identifier of the destination network card of the session is an identifier of the second network card. It can also be the second NIC to perform the following steps:
  • the second network card reads an identifier of the destination network card of the session stored by the first host.
  • the first network card may actively take the first host after receiving the other message of the session.
  • the identifier of the destination network card of the session is read in the memory.
  • the second network card determines whether the identifier of the destination network card of the session is an identifier of the second network card, If no, perform the following steps:
  • the second network card When the identifier of the destination network card of the session is different from the identifier of the second network card, the second network card discards the received packet of the session, and collects the session discarded by the second network card. The number of messages; the second network card sends the counted number to the first host.
  • the second network card When the identifier of the destination network card of the session is different from the identifier of the second network card, the second network card discards the received packet of the session, and collects the session discarded by the second network card.
  • the number of the packets when the second network card determines that the number of the packets of the session discarded by the second network card is greater than a predetermined threshold, sending a notification message to the first host, The notification message is used to notify the first host that the identity of the destination network card of the session needs to be updated.
  • the second network card adds the received packet of the session to the forwarding queue of the first host, when the identifier of the destination network card of the session is different from the identifier of the second network card.
  • the second network card Since the identifier of the destination network card of the session is not the identifier of the second network card, the second network card does not have the right to process the received message of the session.
  • the second network card may discard the received packet of the session, and collect the number of the packets discarded by the second network card, and send the statistics to the number.
  • the first host, or the second network card compares the counted number with a predetermined threshold. If the calculated number is greater than the predetermined threshold, the identifier of the destination network card of the first host is notified to be updated. If the forwarding queue is set in the first host, the second network card may further add the received packet of the session to the forwarding queue of the first host.
  • the first host can perform the following steps:
  • the identifier of the destination network card of the session needs to be updated.
  • the first host can perform the following steps:
  • the first host collects statistics on the number of the packets in the forwarding queue
  • the first host determines that the identifier of the destination network card of the session needs to be updated.
  • the first host can perform the following steps:
  • the first host receives the notification message sent by the second network card, where the notification message is used to notify the first host that the identifier of the destination network card of the session needs to be updated.
  • the first host compares the number of statistics sent by the second network card or the number of the packets in the forwarding queue with a predetermined threshold. If the number of statistics is greater than a predetermined threshold, or the packet corresponding to the session in the forwarding queue If the number of the network card is greater than the predetermined threshold, or the first host receives the notification message that the identifier of the destination network card sent by the second network card to notify the first host that the session needs to be updated, the first host determines the destination network card of the session. The identity needs to be updated. Then the first host performs step 22.
  • the first host determines that the number of the packets sent by the switch to the second network card is greater than a predetermined threshold, the first host determines that the link between the first network card and the switch is faulty. In this case, the session needs to be performed.
  • the identifier of the destination network card is updated to the identifier of the second network card, that is, the second network card is given the right to process the received message corresponding to the session, so that the second network card determines the destination network card after the session is updated.
  • the identifier of the second network card is identified, the received message of the session is processed.
  • the second network card only has the right to process the received message of the session, and cannot process the received message of the session because there is no cache processing in the buffer of the second network card.
  • the reference information on which the other messages of the session are based, the reference information is generated by the first network card, and is cached in the buffer of the first network card.
  • the system needs to perform step 22 to step 24.
  • the first host sends an update message to the first network card, instructing the first network card to update the identifier of the destination network card of the session to the identifier of the second network card.
  • the first network card After receiving the update message sent by the first host, the first network card first updates the identifier of the destination network card of the session to the identifier of the second network card, and then the second network card obtains the updated conference.
  • the identification of the destination network card and the reference information is not limited to, but not limited to, but not limited to, but not limited to, but not limited to, but not limited to, but not limited to, but not limited to, but not limited to the update message sent by the first host, the first network card first updates the identifier of the destination network card of the session to the identifier of the second network card, and then the second network card obtains the updated conference. The identification of the destination network card and the reference information.
  • the second network card obtains the updated identifier of the destination network card of the session and the reference information.
  • the first host stores the updated identifier of the destination network card of the session and the reference information
  • the second network card receives the message of the session.
  • the first embodiment includes the following steps:
  • the second network card reads the identifier of the destination network card of the session and the reference information stored by the first host.
  • the first network card sends the updated identifier and reference information of the destination network card of the session to the first host, where the memory of the first host stores the updated destination of the session.
  • Network card identification and reference information If the second network card receives the message of the session, the second network card may read the identifier and reference information of the updated destination network card of the session from the memory of the first host.
  • the first host reads the updated identifier of the destination network card of the session and the reference information from the first network card.
  • the second specific embodiment comprises the following steps:
  • the second network card receives an identifier of the destination network card of the updated session written by the first host, and the reference information.
  • the second embodiment is applicable to a scenario where the data storage between the first host and the first network card and the second network card is not a memory and a buffer.
  • the first host reads the identifier and reference information of the updated destination network card of the session from the first network card, and then the first host writes the updated identifier and reference information of the destination network card of the session that is read.
  • Second network card Second network card.
  • the second network card can obtain the identifier and reference information of the updated destination network card of the session, so that the second network card can perform the following steps:
  • the second network card receives the packet of the session, determines that the identifier of the destination network card of the session is the identifier of the second network card, and processes the received packet of the session according to the reference information.
  • the identifier of the destination network card of the session is the identifier of the second network card, and the second network card obtains the reference information, so the second network card can process the received message of the session.
  • the packet received by the second network card in the session may be: when the second network card determines that the identifier of the destination network card of the session is not the identifier of the second network card, and the identifier of the first network card is the second network card.
  • the second host For the message of the session discarded by the second network card, the second host resends the message to the second network card.
  • the first host is required to perform the following steps for storing the packets in the forwarding queue of the first host:
  • the first host sends a packet of the session in the forwarding queue to the second network card.
  • the first host sends the packet of the session in the forwarding queue to the second network card, and the second host does not need to resend the packet of the session discarded by the second network card.
  • the first network card directly processes the first message.
  • the first host processes a part of the message of the session, and generates, according to the processed part of the message, the remaining message of the session is generated.
  • the reference information is sent to the first network card, or the first host stores the reference information in the memory, and the first message received by the first network card in the session belongs to the remaining report of the session.
  • the reference information is read from the memory of the first host.
  • the first network card processes the received first message of the session according to the received reference information.
  • the following describes an example of a packet processing method provided by an embodiment of the present invention.
  • the application scenario of the example is as follows: the first network card with the uninstall function and the second network card are configured as the belonging network card of the first host, and the first host establishes a TCP connection with the second host through the switch.
  • the packet of the TCP connection is half unloaded.
  • the first step is: the first host processes the part of the TCP connection, generates reference information according to the processed part of the TCP connection, and determines that the identifier of the destination network card of the TCP connection is the identifier of the first network card, and creates Context, the context includes the reference information and the identity of the destination network card of the TCP connection.
  • the second step is: the switch sends a packet in the remaining packet of the TCP connection to the first network card, and the first network card queries the context, and determines that the identifier of the destination network card of the TCP connection is the same as the identifier of the TCP card. Processing is performed, and new reference information is generated according to the processed message, and a new context is created, and the new context includes the new reference information and the identifier of the destination network card of the TCP connection.
  • the third step the link between the first network card and the switch fails, the switch sends the other packets in the remaining packets of the TCP connection to the second network card, and the second network card queries the context to determine the destination network card of the TCP connection.
  • the identifier of the TCP connection is added to the forwarding queue of the first host.
  • Step 4 The first host counts the number of remaining packets of the TCP connection in the forwarding queue, determines that the number of statistics is greater than a predetermined threshold, and the first host notifies the first network card to update the identifier of the destination network card of the TCP connection to the second The identification of the network card.
  • Step 5 The first network card updates the identifier of the destination network card of the TCP connection included in the created new context to the identifier of the second network card, and sends the updated context to the first host.
  • Step 6 The first host stores the updated context, and sends the remaining packets of the TCP connection in the forwarding queue to the second network card.
  • Step 7 The second network card queries the context, and determines that the updated destination network card identifier of the TCP connection is the same as the identifier of the destination network card, and processes the remaining packets of the TCP connection.
  • an embodiment of the present invention further provides a system for processing a message.
  • the message system is used to execute the above method for processing a message.
  • no further description is provided herein.
  • the embodiment of the present invention further provides a method for processing a message, which is applied to a first network card, where the first network card is configured as a network card to which the first host belongs, and the first network card has an uninstall function, such as As shown in FIG. 3, the method includes the following steps:
  • Step 31 The first network card receives the first packet of the session, determines that the identifier of the destination network card of the session is the identifier of the first network card, processes the first packet, and generates another report that processes the session. Reference information on which the text is based;
  • Step 32 The first network card receives an update message sent by the first host, where the update message is used to indicate that the first network card updates the identifier of the destination network card of the session to the identifier of the second network card.
  • Step 33 The first network card updates the identifier of the destination network card of the session to the identifier of the second network card according to the update message.
  • the embodiment of the present invention further provides a first network card, where the first network card is configured as a network card to which the first host belongs, and the first network card has an uninstall function, as shown in FIG. 4, the first The network card includes:
  • a processor 41, a memory 42, a receiver 43, the processor 41 and the memory 42 and the receiver 43 are both connected by a bus 40, the memory 42 is used to store program code executed by the processor;
  • the receiver 43 is configured to: receive a first message of the session; and receive an update message sent by the first host, where the update message is used to indicate that the first network card updates the identifier of the destination network card of the session to the second The identification of the network card;
  • the processor 41 is configured to: determine that the identifier of the destination network card of the session is the identifier of the first network card, process the first packet, and generate a reference according to the other packet processing the session. Information; updating the identifier of the destination network card of the session to the first according to the update message The identification of the second network card.
  • bus 40 can include any number of interconnected buses and bridges that are coupled together by various circuits including one or more processors represented by processor 41 and memory represented by memory 42.
  • the bus 40 can also connect various other circuits, such as peripherals, voltage regulators, and power management circuits, as is known in the art, and therefore, will not be further described herein.
  • Bus interface 45 provides an interface between bus 40 and receiver 43.
  • Receiver 43 may be a transceiver that provides means for communicating with various other devices on a transmission medium.
  • the processor 41 is responsible for managing the bus 40 and the usual processing, and the memory 42 can be used to store data used by the processor 41 when performing operations.
  • the embodiment of the present invention further provides a method for updating information, which is applied to a first host. As shown in FIG. 5, the method includes the following steps:
  • Step 51 The first host determines that the identifier of the destination network card of the session needs to be updated, and sends an update message to the first network card, where the update message is used to instruct the first network card to update the identifier of the destination network card of the session to the first Identification of the second network card;
  • Step 52 The first host receives the identifier and reference information of the updated destination network card of the session sent by the first network card, where the reference information is another report generated by the first network card to process the session. Information on which the text is based;
  • Step 53 The first host sends the received identifier of the destination network card of the session and the reference information to the second network card.
  • the method further includes:
  • the first host counts the number of packets of the session discarded by the second network card
  • the identifier of the destination network card of the session needs to be updated.
  • the method further includes:
  • the first host counts the number of packets of the session in the forwarding queue of the first host
  • the first host determines that the identifier of the destination network card of the session needs to be updated.
  • the method further includes:
  • the first host sends a packet of the session in the forwarding queue to the second network card.
  • the operating system for managing the first network card and the second network card is installed in the operating system of the first host, and the first host performs the foregoing method. It is meant that the driver performs the above method.
  • the driver performs the above method.
  • the embodiment of the present invention further provides a first host.
  • the first host includes:
  • processor 61 a processor 61, a memory 62, a receiver 63 and a transmitter 64, the processor 61 and the memory 62, the receiver 63 and the transmitter 64 are each connected by a bus 60 for storing the processor Executed program code;
  • the memory 62 is further configured to: store an identifier of a destination network card of the established session between the first host and the second host;
  • the processor 61 is configured to: determine that the identifier of the destination network card of the session needs to be updated, and send an update message to the first network card, where the update message is used to instruct the first network card to update the identifier of the destination network card of the session.
  • the receiver 63 is configured to: receive an identifier and reference information of the updated destination network card of the session sent by the first network card, where the reference information is another report generated by the first network card to process the session Information on which the text is based;
  • the transmitter 64 is configured to: send the received identifier of the destination network card of the session and the reference information to the second network card.
  • the processor 61 is further configured to:
  • the processor 61 is further configured to:
  • the transmitter 64 is further configured to:
  • bus 60 can include any number of interconnected buses and bridges that connect various circuits including one or more processors represented by processor 61 and memory represented by memory 62.
  • the bus 60 can also connect various other circuits, such as peripherals, voltage regulators, and power management circuits, as is known in the art, and therefore, will not be further described herein.
  • Bus interface 65 provides an interface between bus 60 and receiver 63 and transmitter 64.
  • Receiver 63 and transmitter 64 may be the same component, i.e., a transceiver, providing means for communicating with various other devices on a transmission medium.
  • the processor 61 is responsible for managing the bus 60 and the usual processing, and the memory 62 can be used to store data used by the processor 61 when performing operations.
  • embodiments of the present application can be provided as a method, system, or Computer program product.
  • the present application can take the form of an entirely hardware embodiment, an entirely software embodiment, or an embodiment in combination of software and hardware.
  • the application can take the form of a computer program product embodied on one or more computer-usable storage media (including but not limited to disk storage and optical storage, etc.) including computer usable program code.
  • the computer program instructions can also be stored in a computer readable memory that can direct a computer or other programmable data processing device to operate in a particular manner, such that the instructions stored in the computer readable memory produce an article of manufacture comprising the instruction device.
  • the apparatus implements the functions specified in one or more blocks of a flow or a flow and/or block diagram of the flowchart.
  • These computer program instructions can also be loaded onto a computer or other programmable data processing device such that a series of operational steps are performed on a computer or other programmable device to produce computer-implemented processing for execution on a computer or other programmable device.
  • the instructions provide steps for implementing the functions specified in one or more of the flow or in a block or blocks of a flow diagram.

Landscapes

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

Abstract

本发明公开了一种处理报文的方法、网卡及系统、更新信息的方法及主机,所述方法应用于一种处理报文的系统,所述系统包括:第一主机、第一网卡和第二网卡,第一网卡生成处理所述会话的其他报文时所依据的参考信息;然后在将所述会话的目的网卡的标识更新为第二网卡的标识之后,第二网卡获得更新后的所述会话的目的网卡标识和参考信息,这样,第二网卡根据参考信息,确定会话的目的网卡的标识为所述第二网卡的标识时,对接收到的所述会话的其他报文进行处理。因此,即使第一网卡与交换机之间的链路发生故障,第二网卡能够获得参考信息,且会话的目的网卡的标识已更新为第二网卡的标识,所以第二网卡能够对接收到的报文进行处理。

Description

处理报文的方法、网卡及系统、更新信息的方法及主机 技术领域
本发明涉及计算机领域,特别涉及一种处理报文的方法、网卡及系统、更新信息的方法及主机。
背景技术
网卡是配置在主机中的一种物理硬件,网卡接收其他主机发送的报文并上送给主机,主机对该报文进行处理。为了提高主机的可靠性,可以配置两个或两个以上的网卡在主机中,这样,即使一个网卡发生故障,也可以由剩余网卡中的一个网卡接替已发生故障的网卡,不会影响主机对其他主机发送的报文进行处理。
随着主机需要处理的报文越来越多,目前出现了具有卸载功能的网卡,对报文实现硬件卸载。如果具有卸载功能的网卡配置为主机所属的网卡,则原本需要主机处理的报文中的部分报文可以由具有卸载功能的网卡进行处理,因此,主机的工作量减少,性能提高。然而,存在多个具有卸载功能的网卡的情况下,针对每个会话会分配一个网卡与之对应,且该网卡会生成并记录该会话的报文的上下文用于卸载处理,如果由于交换机故障或者其他原因导致该会话的报文发送至其他网卡中,其他网卡无法进行卸载工作。
发明内容
本发明实施例提供一种处理报文的方法、网卡及系统、更新信息的方法及主机,用于解决现有技术中存在的配置为主机所属的网卡中具有卸载功能的网卡与交换机之间的链路发生故障后,另一具有卸载功能的网卡无法对接收到的报文进行处理的问题。
本发明实施例第一方面提供了一种处理报文的方法,应用于一种处理报 文的系统,所述系统包括:第一主机、第一网卡和第二网卡,所述方法包括:
所述第一网卡接收会话的第一报文,确定所述会话的目的网卡的标识为所述第一网卡的标识,对所述第一报文进行处理,生成处理所述会话的其他报文时所依据的参考信息;
所述第一主机确定所述会话的目的网卡的标识需要更新,向所述第一网卡发送更新消息,所述更新消息用于指示所述第一网卡将所述会话的目的网卡的标识更新为所述第二网卡的标识;
所述第一网卡根据所述更新消息,将所述会话的目的网卡的标识更新为所述第二网卡的标识;
所述第二网卡获得更新后的所述会话的目的网卡的标识和所述参考信息。
第二网卡根据参考信息,确定会话的目的网卡的标识为所述第二网卡的标识时,对接收到的所述会话的其他报文进行处理。因此,即使第一网卡与交换机之间的链路发生故障,第二网卡能够获得参考信息,且会话的目的网卡的标识已更新为第二网卡的标识,所以第二网卡能够对接收到的报文进行处理。
结合第一方面,在第一方面的第一种可能的实现方式中,所述第一主机确定所述会话的目的网卡的标识需要更新,包括:
所述第二网卡丢弃接收到的所述会话的报文,并统计被所述第二网卡丢弃的所述会话的报文的数量;
所述第二网卡将统计出的被所述第二网卡丢弃的所述会话的报文的数量发送给所述第一主机;
所述第一主机确定所述统计出的被所述第二网卡丢弃的所述会话的报文的数量大于预定阈值时,所述会话的目的网卡的标识需要更新。
在第一方面的第一种可能的实现方式中,第一主机借助于第二网卡确定会话的目的网卡的标识需要更新,具体地,第二网卡丢弃接收到的所述会话的报文,并统计被第二网卡丢弃的所述会话的报文的数量,将统计出的被第 二网卡丢弃的所述会话的报文的数量发送给第二主机,然后第一主机判断第二网卡统计出的数量是否大于预定阈值,如果大于预定阈值,则确定所述会话的目的网卡的标识需要更新。
结合第一方面,在第一方面的第二种可能的实现方式中,所述第一主机确定所述会话的目的网卡的标识需要更新,包括:
所述第二网卡丢弃接收到的所述会话的报文,并统计被所述第二网卡丢弃的所述会话的报文的数量;
所述第二网卡确定统计出的被所述第二网卡丢弃的所述会话的报文的数量大于预定阈值时,向所述第一主机发送通知消息,所述通知消息用于通知所述第一主机所述会话的目的网卡的标识需要更新。
在第一方面的第二种可能的实现方式中,第一主机借助于第二网卡确定会话的目的网卡的标识需要更新,与第一方面的第一种可能的实现方式不同的是,由第二网卡判断第二网卡统计出的数量是否大于预定阈值,如果大于预定阈值,则通知第一主机所述会话的目的网卡的标识需要更新。
结合第一方面,在第一方面的第三种可能的实现方式中,所述第一主机确定所述会话的目的网卡的标识需要更新,包括:
所述第二网卡将接收到的所述会话的报文添加到所述第一主机的转发队列中;
所述第一主机统计所述转发队列中所述会话的报文的数量;
当所述转发队列中所述会话的报文的数量大于预定阈值时,所述第一主机确定所述会话的目的网卡的标识需要更新。
在第一方面的第三种可能的实现方式中,第一主机自己确定会话的目的网卡的标识需要更新,与第一方面的第一种可能的实现方式和第一方面的第二种可能的实现方式不同的是,第二网卡将接收到的所述会话的报文发送给第一主机的转发队列,第一主机判断转发队列中所述会话的报文的数量是否大于预定阈值,如果大于预定阈值,则确定所述会话的目的网卡的标识需要 更新。
结合第一方面的第三种可能的实现方式中,在第一方面的第四种可能的实现方式中,所述第二网卡获得更新后的所述会话的目的网卡的标识和所述参考信息后,所述方法还包括:
所述第一主机将所述转发队列中所述会话的报文发送给所述第二网卡。
在第一方面的第四种可能的实现方式中,第一主机设置有转发队列,由于更新后的会话的目的网卡的标识与第二网卡的标识相同,所以将转发队列中的所述会话的报文发送给第二网卡,以便第二网卡能够及时处理所述会话的报文。
结合第一方面至第一方面的第四种可能的实现方式,在第一方面的第五种可能的实现方式中,所述第二网卡获得更新后的所述会话的目的网卡的标识和所述参考信息前,所述方法还包括:
所述第一网卡将更新后的所述会话的目的网卡的标识和所述参考信息发送给所述第一主机;
所述第一主机存储更新后的所述会话的目的网卡的标识和所述参考信息;所述第二网卡获得更新后的所述会话的目的网卡的标识和所述参考信息,包括:
所述第二网卡读取所述第一主机存储的更新后的所述会话的目的网卡的标识和所述参考信息。
在第一方面的第五种可能的实现方式中,第二网卡主动地获取所述会话的更新后的所述会话的目的网卡的标识和所述参考信息。第一网卡将更新后的所述会话的目的网卡的标识和参考信息先发送给第一主机,然后第二网卡从第一主机中读取第一网卡发送的内容。
结合第一方面至第一方面的第四种可能的实现方式,在第一方面的第六种可能的实现方式中,所述第二网卡获得更新后的所述会话的目的网卡的标识和所述参考信息前,所述方法还包括:
所述第一主机从所述第一网卡中读取更新后的所述会话的目的网卡的标识和所述参考信息;
所述第二网卡获得更新后的所述会话的目的网卡的标识和所述参考信息,包括:
所述第二网卡接收由所述第一主机写入的更新后的所述会话的目的网卡的标识和所述参考信息。
在第一方面的第六种可能的实现方式中,第二网卡被动地接收所述会话的更新后的所述会话的目的网卡的标识和所述参考信息。第一网卡将更新后的所述会话的目的网卡的标识和参考信息先发送给第一主机,然后第一主机向第二网卡写入第一网卡发送的内容。
本发明实施例第二方面提供了一种处理报文的系统,所述系统包括:
第一主机、第一网卡和第二网卡;
其中,所述第一网卡用于:接收会话的第一报文,确定所述会话的目的网卡的标识为所述第一网卡的标识,对所述第一报文进行处理,生成处理所述会话的其他报文时所依据的参考信息;根据所述更新消息,将所述会话的目的网卡的标识更新为所述第二网卡的标识;
所述第一主机用于:确定所述会话的目的网卡的标识需要更新,向所述第一网卡发送更新消息,所述更新消息用于指示所述第一网卡将所述会话的目的网卡的标识更新为所述第二网卡的标识;
所述第二网卡用于:获得更新后的所述会话的目的网卡的标识和所述参考信息。
结合第二方面,在第二方面的第一种可能的实现方式中,所述第二网卡还用于:
丢弃接收到的所述会话的报文,并统计被所述第二网卡丢弃的所述会话的报文的数量;将统计出的被所述第二网卡丢弃的所述会话的报文的数量发送给所述第一主机;
所述第一主机还用于:确定所述统计出的被所述第二网卡丢弃的所述会话的报文的数量大于预定阈值时,所述会话的目的网卡的标识需要更新。
结合第二方面,在第二方面的第二种可能的实现方式中,所述第二网卡用于:
丢弃接收到的所述会话的报文,并统计被所述第二网卡丢弃的所述会话的报文的数量;确定统计出的被所述第二网卡丢弃的所述会话的报文的数量大于预定阈值时,向所述第一主机发送通知消息,所述通知消息用于通知所述第一主机所述会话的目的网卡的标识需要更新。
结合第二方面,在第二方面的第三种可能的实现方式中,所述第二网卡还用于:
将接收到的所述会话的报文添加到所述第一主机的转发队列中;
所述第一主机还用于:统计所述转发队列中所述会话的报文的数量;当所述转发队列中所述会话的报文的数量大于预定阈值时,所述第一主机确定所述会话的目的网卡的标识需要更新。
结合第二方面的第三种可能的实现方式中,在第二方面的第四种可能的实现方式中,所述第一主机还用于:
将所述转发队列中所述会话的报文发送给所述第二网卡。
结合第二方面至第二方面的第四种可能的实现方式,在第二方面的第五种可能的实现方式中,所述第一网卡还用于:
将更新后的所述会话的目的网卡的标识和所述参考信息发送给所述第一主机;
所述第一主机还用于:存储更新后的所述会话的目的网卡的标识和所述参考信息;
所述第二网卡还用于:接收所述会话的报文;读取所述第一主机存储的更新后的所述会话的目的网卡的标识和所述参考信息。
结合第二方面至第二方面的第四种可能的实现方式,在第二方面的第六 种可能的实现方式中,所述第一主机还用于:
从所述第一网卡中读取更新后的所述会话的目的网卡的标识和所述参考信息;
所述第二网卡还用于:接收由所述第一主机写入的更新后的所述会话的目的网卡的标识和所述参考信息。
本发明实施例第三方面提供了一种处理报文的方法,所述方法包括:
第一网卡接收会话的第一报文,确定所述会话的目的网卡的标识为所述第一网卡的标识,对所述第一报文进行处理,生成处理所述会话的其他报文时所依据的参考信息;
所述第一网卡接收第一主机发送的更新消息,所述更新消息用于指示所述第一网卡将所述会话的目的网卡的标识更新为第二网卡的标识;
所述第一网卡根据所述更新消息,将所述会话的目的网卡的标识更新为所述第二网卡的标识。
本发明实施例第四方面提供了一种第一网卡,所述第一网卡包括:
处理器、存储器、接收器,所述处理器与所述存储器和接收器均通过总线连接,所述存储器用于存储所述处理器执行的程序代码;
所述接收器用于:接收会话的第一报文;接收第一主机发送的更新消息,所述更新消息用于指示所述第一网卡将所述会话的目的网卡的标识更新为第二网卡的标识;
所述处理器用于:确定所述会话的目的网卡的标识为所述第一网卡的标识,对所述第一报文进行处理,生成处理所述会话的其他报文时所依据的参考信息;根据所述更新消息,将所述会话的目的网卡的标识更新为所述第二网卡的标识。
本发明实施例第五方面提供了一种更新信息的方法,所述方法包括:
第一主机确定会话的目的网卡的标识需要更新,向所述第一网卡发送更新消息,所述更新消息用于指示所述第一网卡将所述会话的目的网卡的标识 更新为第二网卡的标识;
所述第一主机接收所述第一网卡发送的更新后的所述会话的目的网卡的标识和参考信息,所述参考信息是所述第一网卡生成的处理所述会话的其他报文时所依据的信息;
所述第一主机将接收到的更新后的所述会话的目的网卡的标识和所述参考信息发送给所述第二网卡。
结合第五方面,在第五方面的第一种可能的实现方式中,所述方法还包括:
所述第一主机统计被所述第二网卡丢弃的所述会话的报文的数量;
所述第一主机确定所述统计出的被所述第二网卡丢弃的所述会话的报文的数量大于预定阈值时,所述会话的目的网卡的标识需要更新。
结合第五方面,在第五方面的第二种可能的实现方式中,所述方法还包括:
所述第一主机统计所述第一主机的转发队列中所述会话的报文的数量;
当所述转发队列中所述会话的报文的数量大于预定阈值时,所述第一主机确定所述会话的目的网卡的标识需要更新。
结合第五方面的第二种可能的实现方式,在第五方面的第三种可能的实现方式中,在所述第一主机接收所述第一网卡发送的更新后的所述会话的目的网卡的标识和参考信息之后,所述方法还包括:
所述第一主机将所述转发队列中所述会话的报文发送给所述第二网卡。
本发明实施例第六方面提供了一种第一主机,所述第一主机包括:
处理器、存储器、接收器和发送器,所述处理器与所述存储器、接收器和发送器均通过总线连接,所述存储器用于存储所述处理器执行的程序代码;
所述处理器用于:确定会话的目的网卡的标识需要更新,向所述第一网卡发送更新消息,所述更新消息用于指示所述第一网卡将所述会话的目的网卡的标识更新为第二网卡的标识;
所述接收器用于:接收所述第一网卡发送的更新后的所述会话的目的网卡的标识和参考信息,所述参考信息是所述第一网卡生成的处理所述会话的其他报文时所依据的信息;
所述发送器用于:将接收到的更新后的所述会话的目的网卡的标识和所述参考信息发送给所述第二网卡。
结合第六方面,在第六方面的第一种可能的实现方式中,所述处理器还用于:
统计被所述第二网卡丢弃的对应所述会话的其他报文的数量;
当所述统计出的数量大于预定阈值时,确定所述会话的目的网卡的标识需要更新。
结合第六方面,在第六方面的第二种可能的实现方式中,所述处理器还用于:
统计所述第一主机的转发队列中所述会话的报文的数量;
当所述转发队列中所述会话的报文的数量大于预定阈值时,确定所述会话的目的网卡的标识需要更新。
结合第六方面的第二种可能的实现方式,在第六方面的第三种可能的实现方式中,所述发送器还用于:
将所述转发队列中所述会话的报文发送给所述第二网卡。
本发明实施例中提供的一个或多个技术方案,至少具有如下技术效果或优点:
本发明实施例中,第一网卡接收会话的第一报文,确定会话的目的网卡的标识为所述第一网卡的标识,对所述第一报文进行处理,生成处理所述会话的其他报文时所依据的参考信息;然后在将所述会话的目的网卡的标识更新为第二网卡的标识之后,第二网卡获得更新后的所述会话的目的网卡标识和参考信息,这样,第二网卡根据参考信息,确定会话的目的网卡的标识为所述第二网卡的标识时,对接收到的所述会话的其他报文进行处理。因此, 即使第一网卡与交换机之间的链路发生故障,第二网卡能够获得参考信息,且会话的目的网卡的标识已更新为第二网卡的标识,所以第二网卡能够对接收到的报文进行处理。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种处理报文的系统的结构示意图;
图2为本发明实施例提供的系统执行处理报文的方法的信息交互示意图;
图3为本发明实施例提供的第一网卡执行处理报文的方法的流程图;
图4为本发明实施例提供的第一网卡的结构示意图;
图5为本发明实施例提供的第一主机执行信息更新的方法的流程图;
图6为本发明实施例提供的第一主机的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
未经特别说明,本发明实施例提到的网卡都是具有卸载功能的网卡。通常在网卡上实现硬件卸载的报文遵循的协议有:TCP(中文:传输控制协议;英文:Transmission Control Protocol)、iSCSI(中文:互联网小型计算机系统接口;英文:Internet Small Computer System Interface)协议、FCoE(中文: 以太网光纤通道;英文:Fibre Channel over Ethernet)协议等。
上述协议都是有状态的协议,如果报文遵循的协议是有状态的协议,则报文之间有依赖关系,上下文用于记录报文之间的依赖关系,网卡依据上下文对报文进行处理。由于原始报文经网卡处理后变为已处理的报文,所以报文之间的依赖关系相应地发生改变,因此,网卡每次对报文进行处理之后,上下文都会相应地发生改变。网卡需要依据最新的上下文对报文进行处理,如果依据的上下文不是最新的,则网卡不能对报文进行正确地处理。本发明实施例中的上下文包括处理报文时所依据的参考信息和目的网卡的标识。
卸载分为全卸载和半卸载。对于全卸载,完全由网卡对报文进行处理,主机不参与报文处理,因此,网卡在处理第一个报文时,没有最新的上下文可以依据,网卡处理完第一个报文之后,根据已处理的第一个报文,生成最新的上下文,网卡依据生成的最新的上下文,处理第一个报文之后的其他报文。
对于半卸载,主机首先处理一部分简单的报文,然后将剩余一部分复杂的报文卸载到网卡上,由网卡对剩余一部分复杂的报文进行处理。因此,主机首先处理所述一部分简单的报文,然后已处理的所述一部分简单的报文,生成最新的上下文,并发送给网卡,同时将所述剩余一部分复杂的报文发送给网卡,网卡在处理所述剩余一部分复杂的报文中的第一个报文时,依据主机发送的最新的上下文,对所述剩余一部分复杂的报文中的第一个报文进行处理,网卡处理完所述剩余一部分复杂的报文中的第一个报文之后,根据已处理的所述剩余一部分复杂的报文中的第一个报文,生成最新的上下文,网卡依据生成的最新的上下文,处理所述剩余一部分复杂的报文中的第一个报文之后的其他报文。
首先以两个具有卸载功能的网卡配置为第一主机的所属网卡为例,说明现有技术中的报文处理方法存在的技术问题。
假设第一主机与第二主机通过交换机建立物理连接,且第一主机与第二 主机之间建立有会话,该会话的目的网卡为第一网卡,交换机接收到第二主机发送给第一主机的对应该会话的报文后,会转发到第一网卡。
如果对应该会话的报文全卸载,则第一网卡接收到第二主机通过交换机发送的对应该会话的第一个报文后,对接收到的报文进行处理。如果对应该会话的报文半卸载,则第一主机处理对应该会话的报文中的一部分报文后,根据已处理的报文,生成最新的上下文并发给第一网卡,第一网卡接收到第二主机通过交换机发送的对应该会话的剩余部分报文后,第一网卡依据接收到的最新的上下文,对接收到的报文进行处理。
无论是全卸载还是半卸载,第一网卡对接收到的报文进行处理后,依据处理后的报文,生成最新的上下文,以便接收到第二主机通过交换机发送的对应该会话的其他报文后,依据最新的上下文,对对应该会话的其他报文进行处理。当第一网卡发生故障时,交换机接收第二主机发送给第一主机的报文后,会转发到第二网卡,由于最新的上下文是第一网卡生成的,缓存在第一网卡中,所以第二网卡中没有最新的上下文,导致第二网卡无法对接收到的报文进行处理。
面对上述技术问题,本发明实施例提供了一种报文处理的方法,该方法适用于一种处理报文的系统。如图1所示,该系统包括:第一主机、第一网卡和第二网卡,所述第一网卡和所述第二网卡配置为所述第一主机所属的网卡,所述第一网卡和所述第二网卡均具有卸载功能。当然,配置为所述第一主机所属的网卡的具有卸载功能的网卡的数量也可以是两个以上,本发明实施例以配置为所述第一主机所属的具有卸载功能的网卡的数量是两个为例进行说明。
其中,第一主机通过交换机与第二主机建立物理连接,交换机和第二主机之间有通信网络,或者交换网络。对第二主机所配置的物理硬件不做限制,只要能够通过交换机与第一主机建立物理连接即可,第二主机中可以配置任意数量的具有卸载功能的网卡,也可以配置任意数量的不具有卸载功能的网 卡。
请参考图2,本发明实施例提供的报文处理的方法包括:
步骤21:所述第一网卡接收会话的第一报文,确定所述会话的目的网卡的标识为所述第一网卡的标识,对所述第一报文进行处理,生成处理所述会话的其他报文时所依据的参考信息;
步骤22:所述第一主机确定所述会话的目的网卡的标识需要更新,向所述第一网卡发送更新消息,所述更新消息用于指示所述第一网卡将所述会话的目的网卡的标识更新为所述第二网卡的标识;
步骤23:所述第一网卡根据所述更新消息,将所述会话的目的网卡的标识更新为所述第二网卡的标识;
步骤24:所述第二网卡获得更新后的所述会话的目的网卡的标识和所述参考信息。
本发明实施例中,第一主机配置有存储器,用于存储第一主机与第二主机之间已建立的会话的目的网卡的标识。第一网卡配置有第一缓存器,第二网卡配置有第二缓存器,第一网卡和第二网卡均可以读取第一主机的存储器中存储的所述会话的目的网卡的标识,并分别存储到第一缓存器中和第二缓存器中。
此外,第一网卡和第二网卡中具有的标识与目的网卡的标识相同的网卡,具有对接收到的所述会话的报文进行处理的权限,在网卡根据所述会话的已处理的报文,生成在处理所述会话的其他报文时所依据的参考信息并存储到自身的缓存器中后,还具有将缓存器中存储的最新的上下文同步到第一主机的存储器中的权限,而第一网卡和第二网卡中具有的标识与目的网卡的标识不同的网卡,不具有上述两种权限。
当所述会话的目的网卡的标识为第一网卡的标识,且第一网卡与交换机之间的链路正常时,交换机接收到第二主机发送给第一主机的所述会话的报文后,会转发给第一网卡,这样,第一网卡就接收到了所述会话的报文。以 下将第一网卡接收到的所述会话的报文称为所述会话的第一报文。
第一主机可以将存储器中存储的所述会话的目的网卡的标识发给第一网卡,以便于第一网卡确定所述会话的目的网卡的标识是否为第一网卡的标识。此外,第一网卡在接收所述会话的第一报文后,还可以执行以下步骤:
所述第一网卡读取所述第一主机存储的所述会话的目的网卡的标识。
也就是说,除第一主机主动将所述会话的目的网卡的标识发送给第一网卡外,还可以是第一网卡在接收到所述会话的第一报文后,主动地从第一主机的存储器中读取所述会话的目的网卡的标识。
然后第一网卡确定所述会话的目的网卡的标识是否为第一网卡的标识,如果是,则对接收到的所述会话的第一报文进行处理。接着根据所述会话的已处理的第一报文,生成处理所述会话的其他报文时所依据的参考信息,并存储到自身的缓存器中,然后将自身的缓存器中存储的参考信息同步到第一主机的存储器中。
当所述会话的目的网卡的标识为第一网卡的标识,且第一网卡与交换机之间的链路发生故障时,交换机接收到第二主机发送给第一主机的所述会话的报文后,会转发给第二网卡,这样,第二网卡就接收到了所述会话的报文。
与第一网卡确定所述会话的目的网卡的标识是否为第一网卡的目的标识类似,第一主机可以将存储器中存储的所述会话的目的网卡的标识发给第二网卡,以便于第二网卡确定所述会话的目的网卡的标识是否为第二网卡的标识。还可以是第二网卡执行以下步骤:
所述第二网卡接收对应所述会话的报文;
所述第二网卡读取所述第一主机存储的所述会话的目的网卡的标识。
也就是说,除第一主机主动将所述会话的目的网卡的标识发送给第二网卡外,还可以是第一网卡在接收到所述会话的其他报文后,主动地从第一主机的存储器中读取所述会话的目的网卡的标识。
然后第二网卡确定所述会话的目的网卡的标识是否为第二网卡的标识, 如果否,则执行以下步骤:
所述第二网卡在确定所述会话的目的网卡的标识与所述第二网卡的标识不同时,丢弃接收到的所述会话的报文,并统计被所述第二网卡丢弃的所述会话的报文的数量;所述第二网卡将统计出的数量发送给所述第一主机。
或者执行以下步骤:
所述第二网卡在确定所述会话的目的网卡的标识与所述第二网卡的标识不同时,丢弃接收到的所述会话的报文,并统计被所述第二网卡丢弃的所述会话的报文的数量;所述第二网卡确定所述统计出的被所述第二网卡丢弃的所述会话的报文的数量大于预定阈值时,向所述第一主机发送通知消息,所述通知消息用于通知所述第一主机所述会话的目的网卡的标识需要更新。
或者执行以下步骤:
所述第二网卡在确定所述会话的目的网卡的标识与所述第二网卡的标识不同时,将接收到的所述会话的报文添加到所述第一主机的转发队列中。
由于所述会话的目的网卡的标识不为第二网卡的标识,所以第二网卡不具有对接收到的所述会话的报文进行处理的权限。第二网卡在接收到所述会话的报文后,可以丢弃接收到的所述会话的报文,并统计被第二网卡丢弃的所述会话的报文的数量,将统计出的数量发送给第一主机,或者第二网卡将统计出的数量与预定阈值比较,如果统计出的数量大于预定阈值,则通知第一主机所述会话的目的网卡的标识需要更新。如果第一主机中设置有转发队列,则第二网卡还可以将接收到的所述会话的报文添加到第一主机的转发队列中。
相应地,第一主机可以执行以下步骤:
所述第一主机确定所述统计出的被所述第二网卡丢弃的所述会话的报文的数量大于预定阈值时,所述会话的目的网卡的标识需要更新。
或者第一主机可以执行以下步骤:
所述第一主机统计所述转发队列中所述会话的报文的数量;
当所述转发队列中所述会话的报文的数量大于预定阈值时,所述第一主机确定所述会话的目的网卡的标识需要更新。
或者第一主机可以执行以下步骤:
所述第一主机接收所述第二网卡发送的通知消息,所述通知消息用于通知所述第一主机所述会话的目的网卡的标识需要更新。
第一主机将第二网卡发送的统计出的数量或者转发队列中所述会话的报文的数量与预定阈值比较,如果统计出的数量大于预定阈值,或者转发队列中对应所述会话的报文的数量大于预定阈值,或者第一主机接收到第二网卡发送的用于通知所述第一主机所述会话的目的网卡的标识需要更新的通知消息,则第一主机确定所述会话的目的网卡的标识需要更新。接着第一主机执行步骤22。
在第一主机确定交换机向第二网卡发送的所述会话的报文的数量大于预定阈值时,第一主机确定第一网卡与交换机之间的链路发生故障,此时,需要将所述会话的目的网卡的标识更新为第二网卡的标识,即赋予第二网卡对接收到的对应所述会话的报文进行处理的权限,以便于第二网卡在确定所述会话的更新后的目的网卡的标识为第二网卡的标识时,对接收到的所述会话的报文进行处理。
然而,第二网卡仅具有对接收到的所述会话的报文进行处理的权限,还不能够对接收到的所述会话的报文进行处理,因为第二网卡的缓存器中没有缓存处理所述会话的其他报文时所依据的参考信息,该参考信息是第一网卡生成的,缓存在第一网卡的缓存器中。
为了保证第二网卡能够对接收到的所述会话的报文进行处理,系统需要执行步骤22-步骤24。首先,第一主机向第一网卡发送更新消息,指示第一网卡将所述会话的目的网卡的标识更新为第二网卡的标识。
第一网卡在接收到第一主机发送的更新消息后,首先,将所述会话的目的网卡的标识更新为第二网卡的标识,然后,第二网卡获得更新后的所述会 话的目的网卡的标识和所述参考信息。
第二网卡获得更新后的所述会话的目的网卡的标识和所述参考信息有多种具体实施方式,在此以以下两种具体实施方式为例进行说明:
在第一种具体实施方式被执行之前,还包括以下步骤:
所述第一网卡将更新后的所述会话的目的网卡的标识和所述参考信息发送给所述第一主机;
所述第一主机存储更新后的所述会话的目的网卡的标识和所述参考信息;
所述第二网卡接收所述会话的报文。
相应地,第一种具体实施方式包括以下步骤:
所述第二网卡读取所述第一主机存储的更新后的所述会话的目的网卡的标识和所述参考信息。
在第一种具体实施方式中,第一网卡将更新后的所述会话的目的网卡的标识和参考信息发送给第一主机,第一主机的存储器存储接收到的更新后的所述会话的目的网卡的标识和参考信息。如果第二网卡接收到所述会话的报文,则第二网卡可以从第一主机的存储器中读取更新后的所述会话的的目的网卡的标识和参考信息。
在第二种具体实施方式被执行之前,还包括以下步骤:
所述第一主机从所述第一网卡中读取更新后的所述会话的目的网卡的标识和所述参考信息。
相应地,第二种具体实施方式包括以下步骤:
所述第二网卡接收由所述第一主机写入的更新后的所述会话的目的网卡的标识和所述参考信息。
第二种实施方式适用于第一主机与第一网卡以及第二网卡之间的数据存储不是存储器与缓存器的场景。第一主机从第一网卡中读取更新后的所述会话的目的网卡的标识和参考信息,然后第一主机将读取到的更新后的所述会话的目的网卡的标识和参考信息写入第二网卡。
无论是通过上述哪种实施方式,第二网卡都能够获取更新后的所述会话的目的网卡的标识和参考信息,这样,第二网卡可以执行步骤以下步骤:
所述第二网卡接收会话的报文,确定所述会话的目的网卡的标识为所述第二网卡的标识,依据所述参考信息,对接收到的所述会话的报文进行处理。
由于更新后的所述会话的目的网卡的标识为第二网卡的标识,并且所述第二网卡获取到参考信息,所以第二网卡能够对接收到的所述会话的报文进行处理。
其中,第二网卡接收到所述会话的报文可以是:在第二网卡确定所述会话的目的网卡的标识不为第二网卡的标识,而为第一网卡的标识时,被第二网卡丢弃的所述会话的报文,或者存入第一主机的转发队列中的所述会话的报文。
对于被第二网卡丢弃的所述会话的报文,第二主机会重新发送给第二网卡。而对于存储第一主机的转发队列中的报文,要求第一主机执行以下步骤:
所述第一主机将所述转发队列中所述会话的报文发送给所述第二网卡。
也就是说,第一主机将转发队列中所述会话的报文发送给第二网卡,无需第二主机重新发送被第二网卡丢弃的所述会话的报文。
如果对应所述会话的报文全卸载,则在前述步骤21中,如果第一网卡接收到的所述会话的报文是所述会话的所有报文中的第一个报文,则没有参考信息,第一网卡直接对该第一个报文进行处理。
如果对应所述会话的报文半卸载,则第一主机对所述会话的一部分报文进行处理后,根据所述会话的已处理的一部分报文,生成处理所述会话的剩余报文时所依据的参考信息,然后将该参考信息发送给第一网卡,或者第一主机将该参考信息存储在存储器中,第一网卡在接收到所述会话的第一报文属于所述会话的剩余报文后,从第一主机的存储器中读取该参考信息。相应地,在前述步骤21中,第一网卡依据接收到的参考信息,对接收到的所述会话的第一报文进行处理。
下面举一个例子说明本发明实施例提供的报文处理方法。该例的应用场景为:具有卸载功能的第一网卡和第二网卡配置为第一主机的所属网卡,第一主机通过交换机与第二主机建立TCP连接。该TCP连接的报文半卸载。
第一步:第一主机对该TCP连接的部分报文进行处理,根据该TCP连接的已处理的部分报文生成参考信息,确定该TCP连接的目的网卡的标识为第一网卡的标识,创建上下文,上下文中包括该参考信息和该TCP连接的目的网卡的标识。
第二步:交换机将该TCP连接的剩余报文中的一个报文发送给第一网卡,第一网卡查询上下文,确定该TCP连接的目的网卡的标识与自身具有的标识相同,对该报文进行处理,并根据处理后的报文生成新的参考信息,创建新的上下文,新的上下文中包括该新的参考信息和该TCP连接的目的网卡的标识。
第三步:第一网卡与交换机之间的链路发生故障,交换机将该TCP连接的剩余报文中的其他报文发送给第二网卡,第二网卡查询上下文,确定该TCP连接的目的网卡的标识与自身具有的标识不同,将接收到的该TCP连接的剩余报文添加到第一主机的转发队列中。
第四步:第一主机统计转发队列中该TCP连接的剩余报文的数量,确定统计出的数量大于预定阈值,第一主机通知第一网卡将该TCP连接的目的网卡的标识更新为第二网卡的标识。
第五步:第一网卡将创建的新的上下文包括的该TCP连接的目的网卡的标识,更新为第二网卡的标识,将更新后的上下文发送给第一主机。
第六步:第一主机存储更新后的上下文,并将转发队列中的该TCP连接的剩余报文发送给第二网卡。
第七步:第二网卡查询上下文,确定该TCP连接的更新后的目的网卡的标识与自身具有的标识相同,对该TCP连接的剩余报文进行处理。
基于同一发明构思,本发明实施例还提供了一种处理报文的系统。如图 1所示,该报文系统用于执行上述处理报文的方法,为了说明书的简洁,在此就不再赘述。
基于同一发明构思,本发明实施例还提供了一种处理报文的方法,应用于第一网卡,所述第一网卡配置为第一主机所属的网卡,所述第一网卡具有卸载功能,如图3所示,该方法包括以下步骤:
步骤31:第一网卡接收会话的第一报文,确定所述会话的目的网卡的标识为所述第一网卡的标识,对所述第一报文进行处理,生成处理所述会话的其他报文时所依据的参考信息;
步骤32:所述第一网卡接收第一主机发送的更新消息,所述更新消息用于指示所述第一网卡将所述会话的目的网卡的标识更新为第二网卡的标识;
步骤33:所述第一网卡根据所述更新消息,将所述会话的目的网卡的标识更新为所述第二网卡的标识。
对于第一网卡所执行的方法的说明,可以参考前述对处理报文的系统所执行的方法的说明,为了说明书的简洁,在此就不再赘述。
基于同一发明构思,本发明实施例还提供了一种第一网卡,所述第一网卡配置为第一主机所属的网卡,所述第一网卡具有卸载功能,如图4所示,该第一网卡包括:
处理器41、存储器42、接收器43,所述处理器41与所述存储器42和接收器43均通过总线40连接,所述存储器42用于存储所述处理器执行的程序代码;
所述接收器43用于:接收会话的第一报文;接收第一主机发送的更新消息,所述更新消息用于指示所述第一网卡将所述会话的目的网卡的标识更新为第二网卡的标识;
所述处理器41用于:确定所述会话的目的网卡的标识为所述第一网卡的标识,对所述第一报文进行处理,生成处理所述会话的其他报文时所依据的参考信息;根据所述更新消息,将所述会话的目的网卡的标识更新为所述第 二网卡的标识。
进一步,在图4中,总线40可以包括任意数量的互联的总线和桥,总线40将包括由处理器41代表的一个或多个处理器和存储器42代表的存储器的各种电路连接在一起。总线40还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路连接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口45在总线40和接收器43之间提供接口。接收器43可以是收发机,提供用于在传输介质上与各种其他装置通信的单元。
处理器41负责管理总线40和通常的处理,而存储器42可以被用于存储处理器41在执行操作时所使用的数据。
前述图3实施例中的处理报文的方法中的各种变化方式和具体实例同样适用于本实施例的第一网卡,通过前述对处理报文的方法的详细描述,本领域技术人员可以清楚的知道本实施例中第一网卡的实施方法,所以为了说明书的简洁,在此不再详述。
基于同一发明构思,本发明实施例还提供了一种更新信息的方法,应用于第一主机,如图5所示,该方法包括以下步骤:
步骤51:第一主机确定会话的目的网卡的标识需要更新,向所述第一网卡发送更新消息,所述更新消息用于指示所述第一网卡将所述会话的目的网卡的标识更新为第二网卡的标识;
步骤52:所述第一主机接收所述第一网卡发送的更新后的所述会话的目的网卡的标识和参考信息,所述参考信息是所述第一网卡生成的处理所述会话的其他报文时所依据的信息;
步骤53:所述第一主机将接收到的更新后的所述会话的目的网卡的标识和所述参考信息发送给所述第二网卡。
可选的,所述方法还包括:
所述第一主机统计被所述第二网卡丢弃的所述会话的报文的数量;
所述第一主机确定所述统计出的被所述第二网卡丢弃的所述会话的报文的数量大于预定阈值时,所述会话的目的网卡的标识需要更新。
可选的,所述方法还包括:
所述第一主机统计所述第一主机的转发队列中所述会话的报文的数量;
当所述转发队列中所述会话的报文的数量大于预定阈值时,所述第一主机确定所述会话的目的网卡的标识需要更新。
可选的,在所述步骤53之后,所述方法还包括:
所述第一主机将所述转发队列中所述会话的报文发送给所述第二网卡。
由于第一网卡和第二网卡配置为第一主机所属的网卡,所以第一主机的操作系统中安装有管理所述第一网卡和所述第二网卡的驱动程序,第一主机执行上述方法是指所述驱动程序执行上述方法。对于所述驱动程序所执行的方法的说明,可以参考前述对处理报文的系统所执行的方法的说明,为了说明书的简洁,在此就不再赘述。
基于同一发明构思,本发明实施例还提供了一种第一主机,如图6所示,该第一主机包括:
处理器61、存储器62、接收器63和发送器64,所述处理器61与所述存储器62、接收器63和发送器64均通过总线60连接,所述存储器62用于存储所述处理器执行的程序代码;
所述存储器62还用于:存储所述第一主机与第二主机之间已建立的会话的目的网卡的标识;
所述处理器61用于:确定会话的目的网卡的标识需要更新,向所述第一网卡发送更新消息,所述更新消息用于指示所述第一网卡将所述会话的目的网卡的标识更新为第二网卡的标识;
所述接收器63用于:接收所述第一网卡发送的更新后的所述会话的目的网卡的标识和参考信息,所述参考信息是所述第一网卡生成的处理所述会话的其他报文时所依据的信息;
所述发送器64用于:将接收到的更新后的所述会话的目的网卡的标识和所述参考信息发送给所述第二网卡。
可选的,所述处理器61还用于:
统计被所述第二网卡丢弃的对应所述会话的其他报文的数量;
当所述统计出的数量大于预定阈值时,确定所述会话的目的网卡的标识需要更新。
可选的,所述处理器61还用于:
统计所述第一主机的转发队列中所述会话的报文的数量;
当所述转发队列中所述会话的报文的数量大于预定阈值时,确定所述会话的目的网卡的标识需要更新。
可选的,所述发送器64还用于:
将所述转发队列中所述会话的报文发送给所述第二网卡。
进一步,在图6中,总线60可以包括任意数量的互联的总线和桥,总线60将包括由处理器61代表的一个或多个处理器和存储器62代表的存储器的各种电路连接在一起。总线60还可以将诸如外围设备、稳压器和功率管理电路等之类的各种其他电路连接在一起,这些都是本领域所公知的,因此,本文不再对其进行进一步描述。总线接口65在总线60和接收器63和发送器64之间提供接口。接收器63和发送器64可以是同一个元件,即收发机,提供用于在传输介质上与各种其他装置通信的单元。
处理器61负责管理总线60和通常的处理,而存储器62可以被用于存储处理器61在执行操作时所使用的数据。
前述图5实施例中的更新信息的方法中的各种变化方式和具体实例同样适用于本实施例的第一主机,通过前述对更新信息的方法的详细描述,本领域技术人员可以清楚的知道本实施例中第一主机的实施方法,所以为了说明书的简洁,在此不再详述。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或 计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

Claims (22)

  1. 一种处理报文的方法,其特征在于,应用于一种处理报文的系统,所述系统包括:第一主机、第一网卡和第二网卡,所述方法包括:
    所述第一网卡接收会话的第一报文,确定所述会话的目的网卡的标识为所述第一网卡的标识,对所述第一报文进行处理,生成处理所述会话的其他报文时所依据的参考信息;
    所述第一主机确定所述会话的目的网卡的标识需要更新,向所述第一网卡发送更新消息,所述更新消息用于指示所述第一网卡将所述会话的目的网卡的标识更新为所述第二网卡的标识;
    所述第一网卡根据所述更新消息,将所述会话的目的网卡的标识更新为所述第二网卡的标识;
    所述第二网卡获得更新后的所述会话的目的网卡的标识和所述参考信息。
  2. 如权利要求1所述的方法,其特征在于,所述第一主机确定所述会话的目的网卡的标识需要更新包括:
    所述第二网卡丢弃接收到的所述会话的报文,并统计被所述第二网卡丢弃的所述会话的报文的数量;
    所述第二网卡将统计出的被所述第二网卡丢弃的所述会话的报文的数量发送给所述第一主机;
    所述第一主机确定所述统计出的被所述第二网卡丢弃的所述会话的报文的数量大于预定阈值时,所述会话的目的网卡的标识需要更新。
  3. 如权利要求1所述的方法,其特征在于,所述第一主机确定所述会话的目的网卡的标识需要更新,包括:
    所述第二网卡将接收到的所述会话的报文添加到所述第一主机的转发队列中;
    所述第一主机统计所述转发队列中所述会话的报文的数量;
    当所述转发队列中所述会话的报文的数量大于预定阈值时,所述第一主机确定所述会话的目的网卡的标识需要更新。
  4. 如权利要求3所述的方法,其特征在于,所述第二网卡获得更新后的所述会话的目的网卡的标识和所述参考信息后,所述方法还包括:
    所述第一主机将所述转发队列中所述会话的报文发送给所述第二网卡。
  5. 如权利要求1-4任一所述的方法,其特征在于,所述第二网卡获得更新后的所述会话的目的网卡的标识和所述参考信息前,所述方法还包括:
    所述第一网卡将更新后的所述会话的目的网卡的标识和所述参考信息发送给所述第一主机;
    所述第一主机存储更新后的所述会话的目的网卡的标识和所述参考信息;所述第二网卡获得更新后的所述会话的目的网卡的标识和所述参考信息,包括:
    所述第二网卡读取所述第一主机存储的更新后的所述会话的目的网卡的标识和所述参考信息。
  6. 如权利要求1-4任一所述的方法,其特征在于,所述第二网卡获得更新后的所述会话的目的网卡的标识和所述参考信息前,所述方法还包括:
    所述第一主机从所述第一网卡中读取更新后的所述会话的目的网卡的标识和所述参考信息;
    所述第二网卡获得更新后的所述会话的目的网卡的标识和所述参考信息,包括:
    所述第二网卡接收由所述第一主机写入的更新后的所述会话的目的网卡的标识和所述参考信息。
  7. 一种处理报文的系统,其特征在于,所述系统包括:
    第一主机、第一网卡和第二网卡;
    其中,所述第一网卡用于:接收会话的第一报文,确定所述会话的目的网卡的标识为所述第一网卡的标识,对所述第一报文进行处理,生成处理所 述会话的其他报文时所依据的参考信息;根据所述更新消息,将所述会话的目的网卡的标识更新为所述第二网卡的标识;
    所述第一主机用于:确定所述会话的目的网卡的标识需要更新,向所述第一网卡发送更新消息,所述更新消息用于指示所述第一网卡将所述会话的目的网卡的标识更新为所述第二网卡的标识;
    所述第二网卡用于:获得更新后的所述会话的目的网卡的标识和所述参考信息。
  8. 如权利要求7所述的系统,其特征在于,所述第二网卡还用于:
    丢弃接收到的所述会话的报文,并统计被所述第二网卡丢弃的所述会话的报文的数量;将统计出的被所述第二网卡丢弃的所述会话的报文的数量发送给所述第一主机;
    所述第一主机还用于:确定所述统计出的被所述第二网卡丢弃的所述会话的报文的数量大于预定阈值时,所述会话的目的网卡的标识需要更新。
  9. 如权利要求7所述的系统,其特征在于,所述第二网卡还用于:
    将接收到的所述会话的报文添加到所述第一主机的转发队列中;
    所述第一主机还用于:统计所述转发队列中所述会话的报文的数量;当所述转发队列中所述会话的报文的数量大于预定阈值时,所述第一主机确定所述会话的目的网卡的标识需要更新。
  10. 如权利要求9所述的系统,其特征在于,所述第一主机还用于:
    将所述转发队列中所述会话的报文发送给所述第二网卡。
  11. 如权利要求7-10任一所述的系统,其特征在于,所述第一网卡还用于:
    将更新后的所述会话的目的网卡的标识和所述参考信息发送给所述第一主机;
    所述第一主机还用于:存储更新后的所述会话的目的网卡的标识和所述参考信息;
    所述第二网卡还用于:接收所述会话的报文;读取所述第一主机存储的更新后的所述会话的目的网卡的标识和所述参考信息。
  12. 如权利要求7-11任一所述的系统,其特征在于,所述第一主机还用于:
    从所述第一网卡中读取更新后的所述会话的目的网卡的标识和所述参考信息;
    所述第二网卡还用于:接收由所述第一主机写入的更新后的所述会话的目的网卡的标识和所述参考信息。
  13. 一种处理报文的方法,其特征在于,所述方法包括:
    第一网卡接收会话的第一报文,确定所述会话的目的网卡的标识为所述第一网卡的标识,对所述第一报文进行处理,生成处理所述会话的其他报文时所依据的参考信息;
    所述第一网卡接收第一主机发送的更新消息,所述更新消息用于指示所述第一网卡将所述会话的目的网卡的标识更新为第二网卡的标识;
    所述第一网卡根据所述更新消息,将所述会话的目的网卡的标识更新为所述第二网卡的标识。
  14. 一种第一网卡,其特征在于,所述第一网卡包括:
    处理器、存储器、接收器,所述处理器与所述存储器和接收器均通过总线连接,所述存储器用于存储所述处理器执行的程序代码;
    所述接收器用于:接收会话的第一报文;接收第一主机发送的更新消息,所述更新消息用于指示所述第一网卡将所述会话的目的网卡的标识更新为第二网卡的标识;
    所述处理器用于:确定所述会话的目的网卡的标识为所述第一网卡的标识,对所述第一报文进行处理,生成处理所述会话的其他报文时所依据的参考信息;根据所述更新消息,将所述会话的目的网卡的标识更新为所述第二网卡的标识。
  15. 一种更新信息的方法,其特征在于,所述方法包括:
    第一主机确定会话的目的网卡的标识需要更新,向所述第一网卡发送更新消息,所述更新消息用于指示所述第一网卡将所述会话的目的网卡的标识更新为第二网卡的标识;
    所述第一主机接收所述第一网卡发送的更新后的所述会话的目的网卡的标识和参考信息,所述参考信息是所述第一网卡生成的处理所述会话的其他报文时所依据的信息;
    所述第一主机将接收到的更新后的所述会话的目的网卡的标识和所述参考信息发送给所述第二网卡。
  16. 如权利要求15所述的方法,其特征在于,所述方法还包括:
    所述第一主机统计被所述第二网卡丢弃的所述会话的报文的数量;
    所述第一主机确定所述统计出的被所述第二网卡丢弃的所述会话的报文的数量大于预定阈值时,所述会话的目的网卡的标识需要更新。
  17. 如权利要求15所述的方法,其特征在于,所述方法还包括:
    所述第一主机统计所述第一主机的转发队列中所述会话的报文的数量;
    当所述转发队列中所述会话的报文的数量大于预定阈值时,所述第一主机确定所述会话的目的网卡的标识需要更新。
  18. 如权利要求17所述的方法,其特征在于,在所述第一主机接收所述第一网卡发送的更新后的所述会话的目的网卡的标识和参考信息之后,所述方法还包括:
    所述第一主机将所述转发队列中所述会话的报文发送给所述第二网卡。
  19. 一种第一主机,其特征在于,所述第一主机包括:
    处理器、存储器、接收器和发送器,所述处理器与所述存储器、接收器和发送器均通过总线连接,所述存储器用于存储所述处理器执行的程序代码;
    所述处理器用于:确定会话的目的网卡的标识需要更新,向所述第一网卡发送更新消息,所述更新消息用于指示所述第一网卡将所述会话的目的网 卡的标识更新为第二网卡的标识;
    所述接收器用于:接收所述第一网卡发送的更新后的所述会话的目的网卡的标识和参考信息,所述参考信息是所述第一网卡生成的处理所述会话的其他报文时所依据的信息;
    所述发送器用于:将接收到的更新后的所述会话的目的网卡的标识和所述参考信息发送给所述第二网卡。
  20. 如权利要求19所述的第一主机,其特征在于,所述处理器还用于:
    统计被所述第二网卡丢弃的对应所述会话的其他报文的数量;
    当所述统计出的数量大于预定阈值时,确定所述会话的目的网卡的标识需要更新。
  21. 如权利要求19所述的第一主机,其特征在于,所述处理器还用于:
    统计所述第一主机的转发队列中所述会话的报文的数量;
    当所述转发队列中所述会话的报文的数量大于预定阈值时,确定所述会话的目的网卡的标识需要更新。
  22. 如权利要求21所述的第一主机,其特征在于,所述发送器还用于:
    将所述转发队列中所述会话的报文发送给所述第二网卡。
PCT/CN2016/099591 2015-10-26 2016-09-21 处理报文的方法、网卡及系统、更新信息的方法及主机 WO2017071430A1 (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201510702561.0 2015-10-26
CN201510702561.0A CN105406989B (zh) 2015-10-26 2015-10-26 处理报文的方法、网卡及系统、更新信息的方法及主机

Publications (1)

Publication Number Publication Date
WO2017071430A1 true WO2017071430A1 (zh) 2017-05-04

Family

ID=55472252

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2016/099591 WO2017071430A1 (zh) 2015-10-26 2016-09-21 处理报文的方法、网卡及系统、更新信息的方法及主机

Country Status (2)

Country Link
CN (1) CN105406989B (zh)
WO (1) WO2017071430A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109921930A (zh) * 2019-02-27 2019-06-21 苏州浪潮智能科技有限公司 一种自动设置多网卡ip地址的方法及装置
CN112188327A (zh) * 2020-09-27 2021-01-05 上海欣诺通信技术股份有限公司 一种光网络单元的烧录方法、装置、介质及设备

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105406989B (zh) * 2015-10-26 2019-04-05 华为技术有限公司 处理报文的方法、网卡及系统、更新信息的方法及主机

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101321085A (zh) * 2007-05-18 2008-12-10 辉达公司 负载平衡的联网环境下的智能故障转移
CN101360005A (zh) * 2007-05-18 2009-02-04 辉达公司 负载平衡的联网环境下的智能故障转移
US8341262B2 (en) * 2008-11-07 2012-12-25 Dell Products L.P. System and method for managing the offload type for offload protocol processing
CN103139253A (zh) * 2011-11-30 2013-06-05 华为技术有限公司 实现网卡卸载功能的方法、网卡、主机系统及网络设备
CN103414714A (zh) * 2013-08-07 2013-11-27 华为数字技术(苏州)有限公司 一种报文处理方法、装置和设备
CN105245387A (zh) * 2015-10-26 2016-01-13 华为技术有限公司 一种处理报文的方法及系统
CN105406989A (zh) * 2015-10-26 2016-03-16 华为技术有限公司 处理报文的方法、网卡及系统、更新信息的方法及主机

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101321085A (zh) * 2007-05-18 2008-12-10 辉达公司 负载平衡的联网环境下的智能故障转移
CN101360005A (zh) * 2007-05-18 2009-02-04 辉达公司 负载平衡的联网环境下的智能故障转移
US8341262B2 (en) * 2008-11-07 2012-12-25 Dell Products L.P. System and method for managing the offload type for offload protocol processing
CN103139253A (zh) * 2011-11-30 2013-06-05 华为技术有限公司 实现网卡卸载功能的方法、网卡、主机系统及网络设备
CN103414714A (zh) * 2013-08-07 2013-11-27 华为数字技术(苏州)有限公司 一种报文处理方法、装置和设备
CN105245387A (zh) * 2015-10-26 2016-01-13 华为技术有限公司 一种处理报文的方法及系统
CN105406989A (zh) * 2015-10-26 2016-03-16 华为技术有限公司 处理报文的方法、网卡及系统、更新信息的方法及主机

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109921930A (zh) * 2019-02-27 2019-06-21 苏州浪潮智能科技有限公司 一种自动设置多网卡ip地址的方法及装置
CN112188327A (zh) * 2020-09-27 2021-01-05 上海欣诺通信技术股份有限公司 一种光网络单元的烧录方法、装置、介质及设备

Also Published As

Publication number Publication date
CN105406989B (zh) 2019-04-05
CN105406989A (zh) 2016-03-16

Similar Documents

Publication Publication Date Title
US8625448B2 (en) Method and system for validating network traffic classification in a blade server
US8745204B2 (en) Minimizing latency in live virtual server migration
US11212176B2 (en) Consistent processing of transport node network data in a physical sharding architecture
US9385948B2 (en) Packet processing method, device and system
US20090316581A1 (en) Methods, Systems and Computer Program Products for Dynamic Selection and Switching of TCP Congestion Control Algorithms Over a TCP Connection
US9401958B2 (en) Method, apparatus, and system for migrating user service
US9660902B2 (en) Apparatus, method and computer-readable medium of providing acceptable transmission unit
US20200280485A1 (en) Bridging configuration changes for compliant devices
US20180115474A1 (en) Flow entry aging method, switch, and controller
US10666737B2 (en) Reducing a number of server-client sessions
US10601692B2 (en) Integrating a communication bridge into a data processing system
WO2017071430A1 (zh) 处理报文的方法、网卡及系统、更新信息的方法及主机
KR20150131327A (ko) 애플리케이션-제공 전송 메타데이터에 기초한 네트워크 전송 조절
US10305772B2 (en) Using a single work item to send multiple messages
CN109120556B (zh) 一种云主机访问对象存储服务器的方法及系统
US20180262418A1 (en) Method and apparatus for communication in virtual network
WO2016196486A1 (en) Systems and methods for improved trivial file transfer protocol
US8867546B2 (en) Communication path control technique
US9189305B2 (en) Durable subscriptions in publish/subscribe messaging
WO2021103822A1 (zh) 用于获取共用最大分段大小mss的方法及装置
CN106664217B (zh) 候选问题网络实体的标识的方法、系统和介质
US11811643B2 (en) System and method for managing computing resources
CN105991424B (zh) 网络数据转发方法及装置
US9674282B2 (en) Synchronizing SLM statuses of a plurality of appliances in a cluster
US9584444B2 (en) Routing communication between computing platforms

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

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 16858866

Country of ref document: EP

Kind code of ref document: A1