WO2020134144A1 - 数据或报文转发的方法、节点和系统 - Google Patents

数据或报文转发的方法、节点和系统 Download PDF

Info

Publication number
WO2020134144A1
WO2020134144A1 PCT/CN2019/103317 CN2019103317W WO2020134144A1 WO 2020134144 A1 WO2020134144 A1 WO 2020134144A1 CN 2019103317 W CN2019103317 W CN 2019103317W WO 2020134144 A1 WO2020134144 A1 WO 2020134144A1
Authority
WO
WIPO (PCT)
Prior art keywords
storage node
node
forwarding
processor
port
Prior art date
Application number
PCT/CN2019/103317
Other languages
English (en)
French (fr)
Inventor
閤先军
Original Assignee
华为技术有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 华为技术有限公司 filed Critical 华为技术有限公司
Priority to EP19904708.5A priority Critical patent/EP3886386A4/en
Publication of WO2020134144A1 publication Critical patent/WO2020134144A1/zh
Priority to US17/343,828 priority patent/US20210297344A1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/25Routing or path finding in a switch fabric
    • H04L49/252Store and forward routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/16Multipoint routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/44Distributed routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/02Details
    • H04L12/16Arrangements for providing special services to substations
    • H04L12/18Arrangements for providing special services to substations for broadcast or conference, e.g. multicast
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4641Virtual LANs, VLANs, e.g. virtual private networks [VPN]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/25Routing or path finding in a switch fabric
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/35Switches specially adapted for specific applications
    • H04L49/356Switches specially adapted for specific applications for storage area networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/10Mapping addresses of different types
    • H04L61/103Mapping addresses of different types across network layers, e.g. resolution of network layer into physical layer addresses or address resolution protocol [ARP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/145Countermeasures against malicious traffic the attack involving the propagation of malware through the network, e.g. viruses, trojans or worms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2101/00Indexing scheme associated with group H04L61/00
    • H04L2101/60Types of network addresses
    • H04L2101/618Details of network addresses
    • H04L2101/622Layer-2 addresses, e.g. medium access control [MAC] addresses
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/20Hop count for routing purposes, e.g. TTL

Definitions

  • This application relates to the field of data communication, and in particular to a method, node, and system for forwarding data or messages.
  • the data center usually refers to the functions of centralized storage, processing, management, transmission and exchange of data information in a physical space.
  • the e-commerce platform A establishes a data center at location B specifically for centralized centralized storage, processing, Manage, transfer and exchange data for transactions conducted on the A-commerce platform.
  • the data center usually includes three parts: a storage node, a service node, and a networking network connecting the storage node and the service node.
  • the storage node is used to realize the data storage function.
  • the service node is used to implement data processing and management functions.
  • the networking network is used to realize data transmission and exchange functions.
  • This application provides a method, node and system for data or message forwarding, which can effectively improve the performance of the networking network.
  • a forwarding node which directly forwards messages or data sent by other nodes through a network.
  • the forwarding node includes: a first processor, a first memory, and a network adapter card, wherein the network adapter card includes a second processor, a second memory, and a transceiver, and the transceiver includes a first port and Second port
  • the transceiver is used to receive a broadcast message through the first port, where the broadcast message carries the first address information of the source node, and the broadcast message is sent by the source node for querying the destination node.
  • the second processor is used to store a first entry in the second memory, wherein the first entry is used to record the correspondence between the first address information and the first port;
  • the transceiver is used to send the broadcast message through the second port
  • the transceiver is used to receive a response message of the broadcast message through the second port, wherein the response message carries second address information, and the response message is used to return the response message to the source node Second address information;
  • the second processor is configured to query the first entry according to the first address information to determine the first port;
  • the transceiver is used to send the response message through the first port
  • the second processor is used to store a second entry in the second memory, wherein the second entry is used to record the correspondence between the second address information and the second port.
  • the forwarding node implements the path self-learning function through the second processor at the data link layer (Layer 2), and does not need to report to the first processor at the network layer (Layer 3), which can effectively improve The efficiency of path self-learning, thereby improving network performance.
  • the response message further includes the first address information.
  • the first address information of the source node is a Media Access Control (MAC) address of the source node
  • the second address information of the destination node is the destination node's MAC address.
  • MAC Media Access Control
  • the transceiver is used to receive a data message, where the data message includes the data sent by the source node to the destination node and the second address information; the second processing The device is used to query the second entry according to the second address information to obtain the second port; the transceiver is used to send the data packet through the second port.
  • the forwarding device includes one or more of the following:
  • the broadcast message further includes a first number of forwarding times, and the transceiver is further configured to discard the broadcast message when it is determined that the first number of forwarding times is greater than a forwarding threshold. After determining that the first number of forwarding times is not If it is greater than the forwarding threshold, increase the first forwarding number by one and send the broadcast message through the second port; or,
  • the response message further includes a second number of forwarding times.
  • the transceiver is further configured to discard the response message when it is determined that the second number of forwarding times is greater than a forwarding threshold. If it is greater than the forwarding threshold, increase the second forwarding number by one, and send the response message through the first port; or,
  • the data message further includes a third forwarding number
  • the transceiver is further configured to discard the data message when it is determined that the third forwarding number is greater than a forwarding threshold, and determine that the third forwarding number is not If it is greater than the forwarding threshold, the third forwarding frequency is increased by one, and the data packet is sent through the second port.
  • the forwarding node determines whether the number of forwarding times of one or more of the broadcast message, the response message, and the data message is greater than the forwarding threshold, and if it is greater than the forwarding threshold, The corresponding packet is discarded, and the corresponding packet is forwarded only when it is not greater than the forwarding threshold, so as to avoid that the corresponding packet is circulated in the network all the time, resulting in the consumption of network resources.
  • the transceiver is further configured to determine that the second forwarding frequency is greater than a forwarding threshold and that the second forwarding frequency is greater than a forwarding threshold when the response packet is subjected to a virus attack In this case, the response message is discarded, and if it is determined that the second forwarding frequency is not greater than the forwarding threshold, the second forwarding frequency is increased by one, and the response message is sent through the first port.
  • the transceiver is further configured to determine that the third forwarding frequency is greater than a forwarding threshold when the data packet is subjected to a virus attack, and determine that the third forwarding frequency is greater than a forwarding threshold In the case of, the data packet is discarded, when it is determined that the third forwarding frequency is not greater than the forwarding threshold, the third forwarding frequency is increased by one, and the data packet is sent through the second port .
  • the forwarding threshold is determined according to the topology of the network where the forwarding node is located. For example, the forwarding threshold is greater than the maximum number of forwarding hops between nodes in the network where the forwarding node is located, where the maximum forwarding hops is the number of forwarding hops between any two nodes in the network where the forwarding node is located The number of forwarding hops with the largest value.
  • the first number of forwarding times is carried in a virtual local area network field of the broadcast message
  • the second forwarding times are carried in the virtual local area network field of the response message;
  • the third forwarding number is carried in the virtual local area network field of the data packet.
  • the forwarding node is used to receive the broadcast message through the first node and send the broadcast message to the second node;
  • the first node includes a third processor and a third memory
  • the second node includes a fourth processor and a fourth memory; the third memory and the fourth memory are used to store data forwarded or sent by the forwarding node.
  • the forwarding node is also used to receive data through the first node or the second node, and store the received data in the first memory.
  • the forwarding node, the first node and the second node are not switches.
  • the network where the forwarding node is located does not need to forward data and packets through the switch.
  • the first node is the source node
  • the second node is the destination node
  • a forwarding method is provided, which is applied to a forwarding node that directly forwards messages or data sent by other nodes through a network.
  • the forwarding node includes: a first processor, a first memory, and a network adapter card , Wherein the network adapter card includes a second processor, a second memory, and a transceiver, and the transceiver includes a first port and a second port;
  • the transceiver receives a broadcast message through the first port, where the broadcast message carries the first address information of the source node, and the broadcast message is sent by the source node to query the destination node second Address information message;
  • the second processor stores a first entry in the second memory, where the first entry is used to record the correspondence between the first address information and the first port;
  • the transceiver sends the broadcast message through the second port
  • the transceiver receives a response message of the broadcast message through the second port, where the response message carries second address information, and the response message is used to return the first message to the source node.
  • Two address information Two address information
  • the second processor queries the first entry to determine the first port according to the first address information
  • the transceiver sends the response message through the first port
  • the second processor stores a second entry in the second memory, where the second entry is used to record the correspondence between the second address information and the second port.
  • the response message further includes the first address information.
  • the first address information of the source node is the MAC address of the source node
  • the second address information of the destination node is the MAC address of the destination node
  • the method further includes:
  • the transceiver receives a data message, where the data message includes data sent by the source node to the destination node and the second address information; the second processor according to the second address information Query the second entry to obtain the second port; the transceiver sends the data packet through the second port.
  • the method further includes one or more of the following:
  • the broadcast message further includes a first forwarding number
  • the transceiver sending the broadcast message through the second port includes the transceiver discarding the first forwarding number when it is determined to be greater than a forwarding threshold
  • the broadcast message when it is determined that the first number of forwarding times is not greater than the forwarding threshold, increase the first number of forwarding times by one, and send the broadcast message through the second port; or,
  • the response message further includes a second forwarding number
  • the transceiver sending the response message through the first port includes: the transceiver discarding the second forwarding number when it is determined that the second forwarding number is greater than a forwarding threshold
  • the response message when it is determined that the second forwarding times are not greater than the forwarding threshold, increase the second forwarding times by one, and send the response message through the first port; or,
  • the data message further includes a third forwarding frequency
  • the transceiver sending the data message through the second port includes: the transceiver discarding the third forwarding frequency if it is greater than a forwarding threshold When it is determined that the third forwarding frequency is not greater than the forwarding threshold, the data packet adds one to the third forwarding frequency, and sends the data packet through the second port.
  • the transceiver is further configured to determine that the second forwarding frequency is greater than a forwarding threshold and that the second forwarding frequency is greater than a forwarding threshold when the response packet is subjected to a virus attack In this case, the response message is discarded, and if it is determined that the second forwarding frequency is not greater than the forwarding threshold, the second forwarding frequency is increased by one, and the response message is sent through the first port.
  • the transceiver is further configured to determine that the third forwarding frequency is greater than a forwarding threshold when the data packet is subjected to a virus attack, and determine that the third forwarding frequency is greater than a forwarding threshold In the case of, the data packet is discarded, when it is determined that the third forwarding frequency is not greater than the forwarding threshold, the third forwarding frequency is increased by one, and the data packet is sent through the second port .
  • the forwarding threshold is determined according to the network structure of the network where the forwarding node is located. For example, the forwarding threshold is greater than the maximum number of forwarding hops between nodes in the network where the forwarding node is located, where the maximum forwarding hops is the number of forwarding hops between any two nodes in the network where the forwarding node is located The number of forwarding hops with the largest value.
  • the first number of forwarding times is carried in a virtual local area network field of the broadcast message
  • the second forwarding times are carried in the virtual local area network field of the response message;
  • the third forwarding number is carried in the virtual local area network field of the data packet.
  • the forwarding node directly forwards the packets or data sent by other nodes through the network including:
  • the forwarding node receives the broadcast message through the first node and sends the broadcast message to the second node; the first node includes a third processor and a third memory, and the second node includes a fourth A processor and a fourth memory; the third memory and the fourth memory are used to store data forwarded or sent by the forwarding node.
  • the forwarding node is also used to receive data through the first node or the second node, and store the received data in the first memory.
  • the forwarding node, the first node and the second node are not switches.
  • the network where the forwarding node is located does not need to forward data and packets through the switch.
  • the first node is the source node
  • the second node is the destination node
  • a forwarding node including: a receiving module, a first processing module, a second processing module, a sending module, and a storage module, the receiving module includes a first port, and the sending module includes a second port,
  • the receiving module is used to receive a broadcast message through the first port, where the broadcast message carries the first address information of the source node, and the broadcast message is sent by the source node for querying the destination node The message of the second address information;
  • the second processing module is used to store a first entry in the storage module, wherein the first entry is used to record the correspondence between the first address information and the first port;
  • the sending module is used to send the broadcast message through the second port
  • the receiving module is configured to receive a response message of the broadcast message through the second port, where the response message carries second address information, and the response message is used to return the response message to the source node. Describe the second address information;
  • the second processing module is configured to query the first entry according to the first address information to determine the first port;
  • the sending module is configured to send the response message through the first port
  • the second processing module is used to store a second entry in the storage module, wherein the second entry is used to record the correspondence between the second address information and the second port.
  • the response message further includes the first address information.
  • the first address information of the source node is the MAC address of the source node
  • the second address information of the destination node is the MAC address of the destination node
  • the receiving module is used to receive a data message, where the data message includes data sent by the source node to the destination node and the second address information; the second The processing module is used to query the second entry according to the second address information to obtain the second port; the sending module is used to send the data packet through the second port.
  • the forwarding device includes one or more of the following:
  • the broadcast message further includes a first number of forwarding times
  • the sending module is further configured to discard the broadcast message when it is determined that the first number of forwarding times is greater than a forwarding threshold, and determine that the first number of forwarding times is not If it is greater than the forwarding threshold, increase the first forwarding number by one and send the broadcast message through the second port; or,
  • the response message further includes a second number of forwarding times
  • the sending module is further configured to discard the response message when it is determined that the second number of forwarding times is greater than a forwarding threshold, and determine that the second number of forwarding times is not If it is greater than the forwarding threshold, increase the second forwarding number by one, and send the response message through the first port; or,
  • the data packet further includes a third forwarding frequency
  • the sending module is further configured to discard the data packet when it is determined that the third forwarding frequency is greater than a forwarding threshold, and determine that the third forwarding frequency is not If it is greater than the forwarding threshold, the third forwarding frequency is increased by one, and the data packet is sent through the second port.
  • the sending module is further configured to determine that the second number of forwarding times is greater than a forwarding threshold and that the second number of forwarding times is greater than a forwarding threshold when the response message is subjected to a virus attack In this case, the response message is discarded, and if it is determined that the second forwarding frequency is not greater than the forwarding threshold, the second forwarding frequency is increased by one, and the response message is sent through the first port.
  • the sending module is further configured to determine that the third forwarding frequency is greater than a forwarding threshold when the data packet is subjected to a virus attack, and determine that the third forwarding frequency is greater than a forwarding threshold In the case of, the data packet is discarded, when it is determined that the third forwarding frequency is not greater than the forwarding threshold, the third forwarding frequency is increased by one, and the data packet is sent through the second port .
  • the forwarding threshold is determined according to the topology of the network where the forwarding node is located. For example, the forwarding threshold is greater than the maximum number of forwarding hops between nodes in the network where the forwarding node is located, where the maximum forwarding hops is the number of forwarding hops between any two nodes in the network where the forwarding node is located The number of forwarding hops with the largest value.
  • the first number of forwarding times is carried in a virtual local area network field of the broadcast message
  • the second forwarding times are carried in the virtual local area network field of the response message;
  • the third forwarding number is carried in the virtual local area network field of the data packet.
  • an information processing system characterized in that it includes a plurality of forwarding nodes; each of the forwarding nodes is the forwarding node according to any one of the first aspect.
  • a computer non-transitory storage medium including computer readable instructions, which when executed on a computer device, causes the computer device to execute as described in any one of the second aspects Methods.
  • FIG. 1 is a schematic diagram of networking of a data center involved in an embodiment of this application
  • FIG. 2 is a schematic structural diagram of a storage node provided by an embodiment of the present application.
  • FIG. 3 is a schematic structural diagram of a switch network involved in an embodiment of the present application.
  • FIG. 4 is a schematic structural diagram of a switch-free networking involved in an embodiment of the present application.
  • FIG. 5 is a logical networking diagram of the switch-free networking shown in FIG. 4;
  • FIG. 6 is a schematic structural diagram of a broadcast message provided by this application.
  • FIG. 7 is a schematic structural diagram of a forwarding node provided by this application.
  • FIG. 8 is a schematic flowchart of a data or message forwarding method provided by this application.
  • the networking network of the data center may include a front-end customer network 110 and a back-end storage network 120.
  • the front-end customer network 110 refers to a network interconnected between the service node 130 and the storage node 140, and is used to implement data communication between the service node 130 and the storage node 140.
  • the back-end storage network 120 refers to a network interconnected between the storage node 140 and the storage node 140, and is used to implement data communication between the storage node 140 and the storage node 140.
  • the storage node 140 may receive an electronic file (or "file") from the service node 130 through the front-end client network 110 and store the file.
  • the file includes but is not limited to data forms such as text, images, audio content, video content, or a combination thereof.
  • the protocol used by the storage node 140 when receiving the file may be a network file system protocol or other protocols.
  • the storage node 140 may store data such as service logs generated during normal operation.
  • the storage node 140 may create data based on other data (for example, by generating a small thumbnail image from a high-resolution source image) and store it.
  • the storage node 140 may also integrate a storage engine, which is used to determine how the content of the file is distributed among multiple storage nodes.
  • the storage node 140 generally includes a first processor 141, a first memory 142 and a network adapter 143.
  • the first processor 141 may be one or more general-purpose processors, where the general-purpose processor may be any type of device capable of processing electronic instructions, including a central processing unit (CPU), microprocessor, and micro-controller Devices, main processors, controllers, application-specific integrated circuits (Application Specific Integrated Circuit, ASIC), etc.
  • the first processor 141 executes various types of digital storage instructions, such as software or firmware programs stored in the first memory 142.
  • the first processor 141 may be an x86 processor or the like.
  • the first processor 141 sends commands to the first memory 142 through a physical interface to complete storage-related tasks.
  • the commands that the first processor 141 can provide include read commands, write commands, copy commands, and erase commands and many more.
  • the command may specify operations related to specific pages and blocks of the first memory 142. As an example, one command may request data to be written to a specific physical page, or another command may request that a specific physical block be erased.
  • the first memory 142 may include a first storage device and a second storage device.
  • the first storage device may be, for example, random access memory (Random Access Memory, RAM), flash memory (Flash Memory), or the like.
  • the second storage device may be RAM, read-only memory (Read-Only Memory, ROM) or hard disk (Hard Disk Drive, HDD) or solid-state hard disk (Solid-State Drive, SSD).
  • the first storage device accesses data faster than the second storage device, but the second storage device generally has a larger storage capacity than the first storage device.
  • the network adapter 143 is also called a network interface controller, a network interface card, or a local area network (LAN) adapter. Each network adapter 143 has a unique MAC address, which the network adapter 143 manufacturer burns into the read-only memory chip during production.
  • the storage node 140 is connected to the network through a network adapter 143.
  • the network adapter card 143 includes a second processor, a second memory, and a transceiver.
  • the second processor is similar to the first processor, but the performance requirements of the second processor may be lower than the performance requirements of the first processor.
  • the second processor may be an ARM processor or the like.
  • the second memory may also be a flash memory, HDD, or SDD, and the storage capacity of the second memory may be smaller than the storage capacity of the first memory.
  • the transceiver may be used to receive and send messages, and upload the received messages to the second processor for processing.
  • the network adapter card 143 may further include multiple ports, and the port may be any one or more of three types of interfaces: a thick cable interface, a thin cable interface, and a twisted pair interface.
  • the implementation of the back-end storage network between storage nodes 140 may include switch networking and switch-free networking:
  • an implementation manner of the switch networking may be that: port 1 of storage node 1 is connected to port 1 of switch 1, port 1 of storage node 2 is connected to port 2 of switch, and port 1 of storage node 3 Connect to port 3 of switch 1.
  • Port 2 of storage node 1 is connected to port 1 of switch 2
  • port 2 of storage node 2 is connected to port 2 of the switch
  • port 2 of storage node 3 is connected to port 3 of switch 2. That is, different ports of switch 1 are respectively connected to one port of storage node 1, storage node 2 and storage node 3, and different ports of switch 2 are respectively connected to another port of storage node 1, storage node 2 and storage node 3.
  • the switch networking shown in FIG. 3 is only a specific example, and should not constitute a specific limitation.
  • the characteristics of the switch network are: the data communication between storage nodes must pass through the switch (also called the bridge), and the switch realizes the data communication between different storage nodes.
  • the switch also called the bridge
  • the switch realizes the data communication between different storage nodes.
  • FIG. 3 when storage node 1 needs to communicate with storage node 2, storage node 1 can transfer data to storage node 2 through switch 1, and when storage node 2 needs to communicate with storage node 3, storage Node 2 can transfer data to storage node 3 through switch 1.
  • storage node 1 can transfer data to storage node 3 through switch 1.
  • the switch networking shown in Figure 3 also sets up a redundant backup switch of switch 1, that is, switch 2, to ensure that when switch 1 fails, switch 2 can replace switch 1 working.
  • an implementation manner of the switchless networking may be that: port 1 of storage node A is connected to port 1 of storage node C, port 2 of storage node A is connected to port 1 of storage node D, and port of storage node A 3 is connected to port 1 of storage node E, port 4 of storage node A is connected to port 1 of storage node F, port 1 of storage node B is connected to port 2 of storage node C, port 2 of storage node B is connected to port 2 of storage node D , Port 3 of storage node B is connected to port 2 of storage node E, port 4 of storage node B is connected to port 2 of storage node F, port 3 of storage node C is connected to port 1 of storage node G, and port 4 of storage node C is connected Port 1 of storage node H, port 3 of storage node D is connected to port 2 of storage node G, port 4 of storage node D is connected to port 2 of storage node H, port 3 of storage node E is connected to port 3 of storage node G, storage
  • the networking characteristics of switchless networking are: data communication between storage nodes does not need to pass through switches, and storage nodes communicate with each other through a topology network.
  • FIG. 4 when storage node A needs to communicate with storage node F, storage node A can directly transmit the data to storage node F; when storage node A needs to transmit data to storage node G, the storage node A can transfer data to storage node D, and then storage node D to storage node G; when storage node A needs to communicate with storage node H, storage node A can transfer data to storage node C, and then by storage Node C transmits to storage node H.
  • the topology of the switchless networking shown in Figure 4 needs to ensure that there are at least two data paths between any two storage nodes to ensure that if one of the data paths fails, it can also Data transmission through another path.
  • there are at least two data paths between storage node A and storage node F storage node A->storage node F data path, storage node A->storage node D->storage node G->storage node F data path.
  • storage node A->storage node C->storage node H data path storage node A->storage node F->storage node H data path.
  • storage node A->storage node F->storage node H data path storage node A->storage node H data path.
  • the links between other storage nodes for example, storage node B to storage node C, storage node B to storage node D, storage node B to storage node E, and storage node B to storage node F also have links Can be deduced by analogy.
  • switch-free networking does not require switches for networking, which can effectively reduce the cost of networking and is suitable for enterprise-level data centers.
  • the switching-free networking mode has complicated forwarding table configuration and traffic loop problems, which greatly affects the performance of the back-end storage network.
  • the storage node A generates the first data message and sends the first data message through the port 2 of the storage node A according to the first forwarding entry, where the destination MAC address carried in the first data message is storage The MAC address of node H.
  • Storage node D receives the first data message sent by storage node A through port 1 of storage node D, determines that storage node D is not the destination node according to the destination MAC address carried in the first data message, and according to the second The forwarding entry sends the first data message through port 4 of storage node D.
  • the storage node H receives the first data packet sent by the storage node D through the port 2 of the storage node H, and determines that the storage node H is the destination node according to the destination MAC address in the first data packet.
  • the switch-free networking includes multiple storage nodes, and to ensure that each two storage nodes must be able to perform data transmission, therefore, it is necessary to configure multiple forwarding entries for each storage node. If you configure the forwarding entries manually, it will cause a huge workload.
  • the topology diagram of the switch-free networking shown in FIG. 4 can be represented as the logical networking diagram of the switch-free networking shown in FIG. 5.
  • the corresponding relationship between the topology diagram of the switch-free networking of FIG. 4 and the logical networking diagram of FIG. 5 is as follows:
  • FIG. 4 There is a direct connection between storage node B and storage node C in FIG. 4, which can be correspondingly expressed as a diagonal line between storage node B and storage node C on the left side of the cube in FIG. 5;
  • FIG. 4 there is a direct connection relationship between the storage node E and the storage node H, which can be correspondingly expressed as a diagonal line between the storage node E and the storage node H on the right side of the cube in FIG. 5;
  • FIG. 4 there is a direct connection relationship between the storage node F and the storage node H, which can be correspondingly expressed as an edge between the storage node F and the storage node H behind the cube in FIG. 5.
  • FIG. 5 It can be seen from the logical networking diagram shown in FIG. 5 that there may be a traffic loop between storage node B, storage node E, storage node G, and storage node D.
  • storage node A sends a broadcast message to find the MAC address of storage node H in a switch-free network. If storage node D receives the broadcast message from storage node A, it sends the broadcast message to Storage node B. If storage node B receives the broadcast message from storage node D, it sends the broadcast message to storage node E (as shown by the arrow in Figure 5). Storage node E receives the broadcast message forwarded by storage node B After the message, the broadcast message is sent to the storage node G.
  • the storage node G After receiving the broadcast message forwarded by the storage node E, the storage node G sends the broadcast message to the storage node D.
  • the storage node D receives the broadcast message forwarded by the storage node G After the message, the broadcast message is sent to the storage node B.
  • the storage node B After receiving the broadcast message forwarded by the storage node D, the storage node B sends the broadcast message to the storage node E,... Therefore, broadcast packets will continue to loop in the traffic loop, occupying a large amount of resources in the switch-free networking, thereby greatly affecting the performance of the switch-free networking.
  • the above-mentioned traffic loop is just an example. In actual applications, other traffic loops may occur, for example, traffic may also occur between storage node A, storage node F, storage node H, and storage node G. Loop, not specifically limited here.
  • the switch-free networking of this application implements a path self-learning mechanism in the network adapter card, which can effectively reduce the complexity of manually configuring forwarding entries and improve the switch-free networking. performance.
  • the path self-learning mechanism can be specifically implemented as follows:
  • the first stage the source node sends a broadcast message to the destination node.
  • the first processor in the storage node A generates a broadcast message, and sends the broadcast message to the second processor in the storage node A.
  • the second processor in storage node A instructs the transceiver in storage node A to send a broadcast message through a designated port (for example, port 2) of storage node A, where the broadcast message carries the source Internet Protocol (Internet Protocol, IP) Address address (IP address of storage node A), source MAC address (MAC address of storage node A), and destination IP address (IP address of storage node H).
  • IP address of the storage node H may be an IP address received by the user, etc., which is not specifically limited here.
  • the transceiver of the storage node D receives the broadcast message sent by the storage node A through the port 1 of the storage node D, and sends the broadcast message to the second processor of the storage node D.
  • the second processor of storage node D is used to process the MAC address of the data link layer
  • the first processor of storage node D is used to process the IP address of the network layer. Therefore, the second processor of storage node D is When the destination MAC address cannot be found in the broadcast message, the second processor of the storage node D sends the broadcast message to the first processor of the storage node D.
  • the first processor of storage node D obtains the destination IP address (IP address of storage node H) from the broadcast message, compares the destination IP address (IP address of storage node H) with the IP address of storage node D, and determines the storage Node D is not the destination node and sends the comparison result to the second processor of storage node D. Then, the second processor of the storage node D associates the source MAC address (MAC address of the storage node A) and the port 1 of the storage node D as entries in the second memory of the storage node D, and the storage node D The transceiver sends a broadcast message to all ports of storage node D except port 1 of storage node D.
  • IP address of storage node H IP address of storage node H
  • the transceiver of the storage node H receives the broadcast message sent by the storage node D through the port 2 of the storage node H, and sends the broadcast message to the second processor of the storage node H.
  • the second processor of the storage node H is used to process the MAC address of the data link layer
  • the first processor of the storage node H is used to process the IP address of the network layer. Therefore, the second processor of the storage node H is When the destination MAC address cannot be found in the broadcast message, the second processor of the storage node H sends the broadcast message to the first processor of the storage node H.
  • the first processor of the storage node H obtains the destination IP address of the storage node (the IP address of the storage node H) from the broadcast message, and determines that the storage node H is the destination node.
  • the first processor of the storage node H stores the association relationship between the source MAC address (MAC address of the storage node A) and the source IP address (IP address of the storage node A) in the first memory of the storage node H.
  • storage node A and storage node H are the source node and the target node, respectively, and there is no need to separately store the correspondence between source MAC address and port as an entry In the second memory of the storage node A and the storage node H, the storage node D is an intermediate forwarding node, and the corresponding relationship between the source MAC address and the port needs to be stored as an entry in the second memory of the storage node D.
  • the second stage the destination node returns the response message to the source node.
  • the first processor of storage node H queries the first memory to obtain the IP address of storage node A and the MAC address of storage node A, and generates A response message of the broadcast message, and send the response message to the second processor of the storage node H, where the response message includes a destination MAC address (MAC address of the storage node A) and a source MAC address ( MAC address of storage node H).
  • the second processor of the storage node H instructs the second processor of the storage node H to send a response message through the port 2 of the transceiver of the storage node H according to the pre-configured routing configuration policy.
  • the transceiver of the storage node D receives the response message sent by the storage node H through the port 4 of the storage node D, and sends the response message to the second processor of the storage node D.
  • the second processor of storage node D is used to process the MAC address of the data link layer
  • the first processor of storage node D is used to process the IP address of the network layer.
  • the second processor of storage node D is When the destination MAC address is found in the response message, the second processor of the storage node D obtains the destination MAC address (MAC address of the storage node A) from the response message, and converts the destination MAC address (storage node A’s MAC address) is compared with the MAC address of the storage node D, and it is determined that the response message needs to be forwarded out. Then, the second processor of the storage node D finds the entry from the second memory of the storage node D, thereby determining the destination MAC address The correspondence between (MAC address of storage node A) and port 1 of storage node D, and the transceiver of storage node D sends the response message through port 1 of storage node D according to the above correspondence. The second processor of the storage node D stores the correspondence between the source MAC address (MAC address of the storage node H) and the port 4 of the storage node D as an entry in the second memory of the storage node D.
  • the transceiver of the storage node A receives the response message sent by the storage node D through the port 2 of the storage node A, and sends the response message to the second processor of the storage node A.
  • the second processor of storage node A is used to process the MAC address of the data link layer
  • the first processor of storage node A is used to process the IP address of the network layer.
  • the second processor of storage node A is When the destination MAC address is found in the response message, the second processor of the storage node A obtains the destination MAC address (MAC address of the storage node A) from the response message, and compares the destination MAC address with the storage node A The MAC address of the comparison is determined, and it is determined that the response message does not need to be forwarded, so the second processor of the storage node A reports the response message to the first processor of the storage node A, and the first processing of the storage node A The device obtains the source MAC address (MAC address of storage node H) from the response message, and stores the correspondence between the source MAC address (MAC address of storage node H) and the IP address of storage node H as an entry in the storage node A in the first memory.
  • the storage node H and the storage node A are the source node and the target node, respectively, and there is no need to store the correspondence between the destination MAC address and the port as entries
  • the storage node D is an intermediate forwarding node, and the corresponding relationship between the destination MAC address and the port needs to be stored as an entry in the second memory of the storage node D.
  • the third stage the source node sends data packets to the destination node.
  • the first processor of the storage node A queries the first memory to obtain the destination IP address (the storage node H's IP address) and the destination MAC address ( Storage node H's MAC address) and generate a data message, where the data message carries the destination MAC address (the storage node H's MAC address).
  • the first processor of the storage node A instructs the second processor of the storage node A to send the data message from the port 2 of the transceiver of the storage node A according to the pre-configured routing configuration policy.
  • the transceiver of the storage node D receives the data message sent by the storage node A through the port 1 of the storage node D, and sends the data message to the second processor of the storage node D.
  • the second processor of storage node D is used to process the MAC address of the data link layer
  • the first processor of storage node D is used to process the IP address of the network layer.
  • the second processor of storage node D When the destination MAC address (MAC address of the storage node H) is queried in the data packet, the second processor of the storage node D obtains the destination MAC address (MAC address of the storage node H) from the data packet, Compare the destination MAC address (MAC address of storage node H) with the MAC address of storage node D to determine that storage node D is not the destination node. Then, the second processor of the storage node D looks up the entry from the second memory of the storage node D, thereby determining the correspondence between the destination MAC address (MAC address of the storage node H) and the port 4 of the storage node D. The transceiver of the storage node D sends the data message through the port 4 of the storage node D.
  • the transceiver of the storage node H receives the data message sent by the storage node D through the port 2 of the storage node H, and sends the data message to the second processor of the storage node H.
  • the second processor of the storage node H is used to process the MAC address of the data link layer
  • the first processor of the storage node H is used to process the IP address of the network layer. Therefore, the second processor of the storage node H
  • the second processor of the storage node H determines the storage according to the destination MAC address (MAC address of the storage node H) carried in the data packet Node H is the destination node and reports the data message to the first processor of storage node H.
  • storage node D learned how to return the response message of the broadcast message to storage node A.
  • the storage node D learns how to send the data message to the storage node H. After the above two learning processes, the storage node A can realize the sending of the data message to the storage node H through the storage node D in the third stage.
  • the switch-free networking of this application combines a flow loop avoidance mechanism on the basis of the path self-learning mechanism, which can effectively avoid the formation of flow loops and improve the free loop. Switch networking performance.
  • the combination of the flow loop avoidance mechanism and the path self-learning mechanism can include at least three different implementation methods:
  • the flow loop avoidance mechanism is combined in the first stage (the stage where the source node sends a broadcast message to the destination node).
  • the first stage the source node sends a broadcast message to the destination node.
  • the first processor in the storage node A generates a broadcast message, and sends the broadcast message to the second processor in the storage node A.
  • the second processor in storage node A instructs the transceiver in storage node A to send a broadcast message through a designated port (for example, port 2) of storage node A, where the broadcast message carries the source IP address (IP of storage node A) Address), source MAC address (MAC address of storage node A), destination IP address (IP address of storage node H) and the number of forwarding times, the initial value of the number of forwarding times is 0.
  • the IP address of the storage node H may be input by the user, which is not specifically limited here.
  • the broadcast message may also carry a broadcast identifier, and the broadcast identifier is used to indicate whether it is necessary to determine whether the number of times of forwarding the broadcast message needs to be greater than a forwarding threshold. For example, in the case where the broadcast identifier is 1, it is necessary to determine whether the number of forwarding of the broadcast message needs to be greater than the forwarding threshold, and in the case where the broadcast identifier is 0, it is not necessary to determine the forwarding of the broadcast message Whether the number of times needs to be greater than the forwarding threshold.
  • the transceiver of the storage node D receives the broadcast message sent by the storage node A through the port 1 of the storage node D, and sends the broadcast message to the second processor of the storage node D.
  • the second processor of the storage node D determines that the broadcast identifier in the broadcast message is 1, the second processor of the storage node D modifies the number of forwarding times carried in the broadcast message to 1.
  • the second processor of storage node D is used to process the MAC address of the data link layer, and the first processor of storage node D is used to process the IP address of the network layer.
  • the second processor of storage node D is located at When the destination MAC address (MAC address of the storage node H) cannot be found in the broadcast message, the second processor of the storage node D sends the broadcast message to the first processor of the storage node D.
  • the first processor of storage node D obtains the destination IP address (IP address of storage node H) from the broadcast message, compares the destination IP address (IP address of storage node H) with the IP address of storage node D, and determines the storage Node D is not the destination node and sends the judgment result to the second processor of storage node D.
  • the second processor of the storage node D judges that the number of forwarding times is not greater than the forwarding threshold value 2, so the second processor of the storage node D takes the source MAC address (MAC address of the storage node A) and the port 1 of the storage node D as a table
  • the item association is stored in the second memory of the storage node D.
  • the transceiver of the storage node D sends the broadcast message through all the ports of the storage node D except the port 1 of the storage node D.
  • the transceiver of the storage node H receives the broadcast message sent by the storage node D through the port 2 of the storage node H, and sends the broadcast message to the second processor of the storage node H.
  • the second processor of the storage node H determines that the broadcast identifier in the broadcast message is 1, the second processor of the storage node H will modify the number of forwarding times carried in the broadcast message to 2.
  • the second processor of the storage node H is used to process the MAC address of the data link layer, and the first processor of the storage node H is used to process the IP address of the network layer.
  • the second processor of the storage node H is When the destination MAC address (MAC address of the storage node H) cannot be found in the broadcast message, the second processor of the storage node H sends the broadcast message to the first processor of the storage node H.
  • the first processor of the storage node H obtains the destination IP address (the IP address of the storage node H) from the broadcast message, and determines that the storage node H is the destination node according to the destination IP address (the IP address of the storage node H), so the storage node H stores the correspondence between the source MAC address (MAC address of storage node A) and the source IP address (IP address of storage node A) as an entry in the first memory.
  • the second stage the destination node returns the response message to the source node.
  • the first processor of the storage node H queries the first memory to obtain the destination IP address (the storage node A's IP address) and the destination MAC address ( MAC address of storage node A), and generate a response message of the broadcast message, and send the response message to the second processor of storage node H, where the response message includes the destination MAC address (storage node MAC address of A) and source MAC address (MAC address of storage node H).
  • the response message may also carry a response identifier, and the response identifier is used to indicate whether it is necessary to determine whether the number of times the response message is forwarded needs to be greater than a forwarding threshold.
  • the response identifier is 1, it is necessary to determine whether the number of times the response packet is forwarded needs to be greater than the forwarding threshold, and in the case where the response identifier is 0, it is not necessary to determine the forwarding of the response packet Whether the number of times needs to be greater than the forwarding threshold.
  • the second processor of the storage node H instructs the second processor of the storage node H to send a response message through the port 2 of the transceiver of the storage node H according to the pre-configured routing configuration policy.
  • the transceiver of the storage node D receives the response message sent by the storage node H through the port 4 of the storage node D, and sends the response message to the second processor of the storage node D.
  • the second processor of the storage node D determines that the response identifier in the response packet is 0, the second processor of the storage node D is used to process the MAC address of the data link layer, and the second node of the storage node D A processor is used to process the IP address of the network layer. Therefore, when the second processor of the storage node D finds the destination MAC address (MAC address of the storage node A) in the response message, the second The processor can process the destination MAC address of the data link layer.
  • the second processor of the storage node D obtains the destination MAC address (MAC address of the storage node A) from the response message, and converts the destination MAC address (storage node A's MAC address). MAC address) is compared with the MAC address of the storage node D, and it is determined that the response message needs to be forwarded out. Then, the second processor of the storage node D finds the entry from the second memory of the storage node D, thereby determining the destination MAC address (MAC address of storage node A) corresponds to port 1 of storage node D, and the second processor of storage node D sends the response message through port 1 of storage node D through the transceiver according to the corresponding relationship . The second processor of the storage node D stores the correspondence between the source MAC address (MAC address of the storage node H) and the port 4 of the storage node D as an entry in the second memory of the storage node D.
  • the transceiver of the storage node A receives the response message sent by the storage node D through the port 2 of the storage node A, and sends the response message to the second processor of the storage node A.
  • the second processor of the storage node A determines that the response identifier in the response message is 0, the second processor of the storage node A is used to process the MAC address of the data link layer, and the second node of the storage node A A processor is used to process the IP address of the network layer.
  • the storage node A when the second processor of the storage node A finds the destination MAC address (MAC address of the storage node A) in the response message, the storage node The second processor of A obtains the destination MAC address (MAC address of the storage node A) from the response message, and determines that the response message does not need to be forwarded based on the destination MAC address (MAC address of the storage node A), so , The second processor of the storage node A reports the response message to the first processor of the storage node A, and the first processor of the storage node A obtains it from the response message (MAC address of the storage node H), and The correspondence between (MAC address of storage node H) and the IP address of storage node H is stored as an entry in the first memory of storage node A.
  • the third stage the source node sends data packets to the destination node.
  • the first processor of the storage node A queries the destination IP address (IP address of the storage node H) and the destination MAC address (MAC of the storage node H) Address) and generate a data message, where the data message carries the destination MAC address (MAC address of storage node H).
  • the data packet may also carry a data identifier, and the data identifier is used to indicate whether it is necessary to determine whether the number of forwarding times of the data packet needs to be greater than a forwarding threshold.
  • the data identifier is 1, it is necessary to determine whether the number of times the data packet is forwarded needs to be greater than the forwarding threshold, and in the case where the data identifier is 0, it is not necessary to determine the forwarding of the data packet Whether the number of times needs to be greater than the forwarding threshold.
  • the first processor of the storage node A instructs the second processor of the storage node A to send the data message from the port 2 of the transceiver of the storage node A according to the pre-configured routing configuration policy.
  • the transceiver of the storage node D receives the data message sent by the storage node A through the port 1 of the storage node D, and sends the data message to the second processor of the storage node D.
  • the second processor of the storage node D determines that the data identifier in the data packet is 0, the second processor of the storage node D is used to process the MAC address of the data link layer, and the second node of the storage node D A processor is used to process the IP address of the network layer.
  • the second processor of the storage node D when the second processor of the storage node D obtains the destination MAC address (MAC address of the storage node H) from the data packet, it stores When the second processor of the node D finds the destination MAC address (MAC address of the storage node H) in the data packet, the second processor of the storage node D obtains the destination MAC address from the data packet ( MAC address of storage node H), and compare the destination MAC address (MAC address of storage node H) with the MAC address of storage node D to determine that storage node D is not the destination node.
  • the second processor of the storage node D looks up the entry from the second memory of the storage node D, thereby determining the correspondence between the destination MAC address (MAC address of the storage node H) and the port 4 of the storage node D.
  • the transceiver of the storage node D sends the data message through the port 4 of the storage node D.
  • the transceiver of the storage node H receives the data message sent by the storage node D through the port 2 of the storage node H, and sends the data message to the second processor of the storage node H.
  • the second processor of the storage node H determines that the data identifier in the data packet is 0, the second processor of the storage node H is used to process the MAC address of the data link layer, and the second node of the storage node H A processor is used to process the IP address of the network layer.
  • the second processor of the storage node H obtains the destination MAC address (MAC address of the storage node H) from the data packet, it stores When the second processor of the node H finds the destination MAC address (MAC address of the storage node H) in the data packet, the second processor of the storage node H according to the destination MAC address (storage) carried in the data packet.
  • the MAC address of node H) determines that storage node H is the destination node, and reports the data message to the first processor of storage node H.
  • the storage node when the storage node detects that the broadcast identifier carried by the broadcast message is 1 (in this embodiment, the response identifier carried by the response message is 0, and the data identifier carried by the data message is 0), the storage node In the first stage, the node determines whether the number of times the broadcast message is forwarded is greater than the forwarding threshold, and sends the broadcast message to the next storage node if it is not greater than the forwarding threshold.
  • the flow loop avoidance mechanism is combined in the second stage (the stage where the destination node sends a response message to the source node).
  • the flow loop avoidance mechanism in the process of the source node sending the broadcast message to the destination node can be implemented in this way :
  • the first stage the source node sends a broadcast message to the destination node.
  • the first processor in the storage node A generates a broadcast message, and sends the broadcast message to the second processor in the storage node A.
  • the second processor in storage node A instructs the transceiver in storage node A to send a broadcast message through a designated port (for example, port 2) of storage node A, where the broadcast message carries the source MAC address (MAC of storage node A) Address) and destination IP address (IP address of storage node H).
  • the IP address of the storage node H may be input by the user, which is not specifically limited here.
  • the transceiver of the storage node D receives the broadcast message sent by the storage node A through the port 1 of the storage node D, and sends the broadcast message to the second processor of the storage node D.
  • the second processor of the storage node D determines that the broadcast identifier in the broadcast message is 0, the second processor of the storage node D is used to process the MAC address of the data link layer.
  • the first processor is used to process the IP address of the network layer. Therefore, when the second processor of the storage node D cannot find the destination MAC address (MAC address of the storage node H) in the broadcast message, The second processor of the storage node D sends the broadcast message to the first processor of the storage node D.
  • the first processor of storage node D obtains the destination IP address (IP address of storage node H) from the broadcast message, compares the destination IP address (IP address of storage node H) with the IP address of storage node D, and determines the storage Node D is not the destination node and sends the comparison result to the second processor of storage node D. Then, the second processor of the storage node D associates the source MAC address (MAC address of the storage node A) and the port 1 of the storage node D as entries in the second memory of the storage node D, and the storage node D The transceiver sends a broadcast message to all ports of storage node D except port 1 of storage node D.
  • IP address of storage node H IP address of storage node H
  • the transceiver of the storage node H receives the broadcast message sent by the storage node D through the port 2 of the storage node H, and sends the broadcast message to the second processor of the storage node H.
  • the second processor of the storage node H determines that the broadcast identifier in the broadcast message is 0, the second processor of the storage node H is used to process the MAC address of the data link layer, and the second node of the storage node H A processor is used to process the IP address of the network layer. Therefore, when the second processor of the storage node H cannot find the destination MAC address (MAC address of the storage node H) in the broadcast message, the storage The second processor of the node H sends the broadcast message to the first processor of the storage node H.
  • the first processor of the storage node H obtains the destination IP address (the IP address of the storage node H) from the broadcast message, and determines that the storage node H is the destination node according to the destination IP address (the IP address of the storage node H). Then, the storage node H associates the source MAC address (MAC address of the storage node A) and the source IP address (correspondence relationship of the IP address of the storage node A) in the first memory.
  • storage node A and storage node H are the source node and the target node, respectively, and there is no need to separately store the correspondence between source MAC address and port as an entry In the second memory of the storage node A and the storage node H, the storage node D is an intermediate forwarding node, and the corresponding relationship between the source MAC address and the port needs to be stored as an entry in the second memory of the storage node D.
  • the second stage the destination node returns the response message to the source node.
  • the first processor of storage node H queries the first memory to obtain the IP address of storage node A and the MAC address of storage node A, and generates A response message of the broadcast message, and send the response message to the second processor of the storage node H, where the response message includes a destination MAC address (MAC address of the storage node A) and a source MAC address ( The MAC address of the storage node H) and the number of forwarding times.
  • the initial value of the number of forwarding times is zero.
  • the second processor of the storage node H instructs the second processor of the storage node H to send a response message through the port 2 of the transceiver of the storage node H according to the pre-configured routing configuration policy.
  • the transceiver of the storage node D receives the response message sent by the storage node H through the port 4 of the storage node D, and sends the response message to the second processor of the storage node D.
  • the second processor of the storage node D determines that the response identifier in the response message is 1, the second processor of the storage node D sets the number of forwarding times in the response message to 1.
  • the second processor of storage node D is used to process the MAC address of the data link layer, and the first processor of storage node D is used to process the IP address of the network layer.
  • the second processor of storage node D is When the destination MAC address (MAC address of storage node A) is found in the response message, the second processor of storage node D obtains the destination MAC address (MAC address of storage node A) from the response message, The destination MAC address (MAC address of storage node A) is compared with the MAC address of storage node D, and it is determined that the response message needs to be forwarded out.
  • the second processor of the storage node D determines that the number of forwarding times is not greater than the forwarding threshold, so the second processor of the storage node D finds the entry from the second memory of the storage node D, thereby determining the destination MAC address (storage node A Corresponding to the MAC address of storage node D) and port 1 of storage node D, and the second processor of storage node D sends the response message through port 1 of storage node D through the transceiver according to the corresponding relationship.
  • the second processor of the storage node D stores the correspondence between the source MAC address (MAC address of the storage node H) and the port 4 of the storage node D as an entry in the second memory of the storage node D.
  • the transceiver of the storage node A receives the response message sent by the storage node D through the port 2 of the storage node A, and sends the response message to the second processor of the storage node A.
  • the second processor of the storage node A determines that the response identifier in the response packet is 1, the second processor of the storage node A sets the number of forwarding times in the response packet to 2.
  • the second processor of storage node A is used to process the MAC address of the data link layer, and the first processor of storage node A is used to process the IP address of the network layer.
  • the second processor of storage node A is When the destination MAC address (MAC address of storage node A) is found in the response message, the second processor of storage node A obtains the destination MAC address (MAC address of storage node A) from the response message, According to the destination MAC address (MAC address of storage node A), it is determined that the response message does not need to be forwarded, so the second processor of storage node A reports the response message to the first processor of storage node A, The first processor of the storage node A determines that the number of forwarding times is not greater than the forwarding threshold, and the first processor of the storage node A obtains the source MAC address (MAC address of the storage node H) from the response message, and stores the source MAC address (storage The correspondence between the MAC address of node H) and the IP address of storage node H is stored as an entry in the first memory of storage node A.
  • the storage node H and the storage node A are the source node and the target node, respectively, and there is no need to store the correspondence between the destination MAC address and the port as entries
  • the storage node D is an intermediate forwarding node, and the corresponding relationship between the destination MAC address and the port needs to be stored as an entry in the second memory of the storage node D.
  • the third stage the source node sends data packets to the destination node.
  • the first processor of the storage node A queries the first memory to obtain the destination IP address (the storage node H's IP address) and the destination MAC address ( Storage node H's MAC address) and generate a data message, where the data message carries the destination MAC address (the storage node H's MAC address).
  • the first processor of the storage node A instructs the second processor of the storage node A to send the data message from the port 2 of the transceiver of the storage node A according to the pre-configured routing configuration policy.
  • the transceiver of the storage node D receives the data message sent by the storage node A through the port 1 of the storage node D, and sends the data message to the second processor of the storage node D.
  • the second processor of the storage node D determines that the data identifier in the data packet is 0, the second processor of the storage node D is used to process the MAC address of the data link layer, and the second node of the storage node D A processor is used to process the IP address of the network layer.
  • the storage node D finds the destination MAC address (MAC address of the storage node H) in the data packet, the storage node The second processor of D obtains the destination MAC address (MAC address of storage node H) from the data packet, and compares the destination MAC address (MAC address of storage node H) with the MAC address of storage node D to determine the storage Node D is not the destination node. Then, the second processor of the storage node D looks up the entry from the second memory of the storage node D, thereby determining the correspondence between the destination MAC address (MAC address of the storage node H) and the port 4 of the storage node D. The transceiver of the storage node D sends the data message through the port 4 of the storage node D.
  • the transceiver of the storage node H receives the data message sent by the storage node D through the port 2 of the storage node H, and sends the data message to the second processor of the storage node H.
  • the second processor of the storage node H determines that the data identifier in the data packet is 0, the second processor of the storage node H is used to process the MAC address of the data link layer, and the second node of the storage node H A processor is used to process the IP address of the network layer.
  • the storage node H determines that the storage node H is the destination node according to the destination MAC address (MAC address of the storage node H) carried in the data message, and reports the data message to the first processor of the storage node H.
  • the storage node when the storage node detects that the response identifier carried in the response message is 1 (in this embodiment, the broadcast identifier carried in the broadcast message is 0, and the data identifier carried in the data message is 0), the storage node In the second stage, the node determines whether the number of times the response packet is forwarded is greater than the forwarding threshold, and sends the response packet to the next storage node if it is not greater than the forwarding threshold.
  • a traffic loop avoidance mechanism is combined.
  • the source MAC address (that is, the MAC address of the storage node A) corresponds to the first in the claims
  • the address information, the destination MAC address (that is, the MAC address of the storage node H) corresponds to the second address information in the claims
  • the combination of the flow loop avoidance mechanism in the stage where the source node sends the data message to the destination node can be implemented as follows :
  • the first stage the source node sends a broadcast message to the destination node.
  • the first processor in the storage node A generates a broadcast message, and sends the broadcast message to the second processor in the storage node A.
  • the second processor in storage node A instructs the transceiver in storage node A to send a broadcast message through a designated port (for example, port 2) of storage node A, where the broadcast message carries the source IP address (IP of storage node A) Address), source MAC address (MAC address of storage node A), and destination IP address (IP address of storage node H).
  • the IP address of the storage node H may be input by the user, which is not specifically limited here.
  • the transceiver of the storage node D receives the broadcast message sent by the storage node A through the port 1 of the storage node D, and sends the broadcast message to the second processor of the storage node D.
  • the second processor of the storage node D determines that the broadcast identifier in the broadcast message is 0, the second processor of the storage node D is used to process the MAC address of the data link layer.
  • the first processor is used to process the IP address of the network layer. Therefore, when the second processor of the storage node D cannot find the destination MAC address (MAC address of the storage node H) in the broadcast message, The second processor of the storage node D sends the broadcast message to the first processor of the storage node D.
  • the first processor of storage node D obtains the destination IP address (IP address of storage node H) from the broadcast message, compares the destination IP address (IP address of storage node H) with the IP address of storage node D, and determines the storage Node D is not the destination node and sends the comparison result to the second processor of storage node D. Then, the second processor of the storage node D associates the source MAC address (MAC address of the storage node A) and the port 1 of the storage node D as entries in the second memory of the storage node D, and the storage node D The transceiver sends a broadcast message to all ports of storage node D except port 1 of storage node D.
  • IP address of storage node H IP address of storage node H
  • the transceiver of the storage node H receives the broadcast message sent by the storage node D through the port 2 of the storage node H, and sends the broadcast message to the second processor of the storage node H.
  • the second processor of the storage node H determines that the broadcast identifier in the broadcast message is 0, the second processor of the storage node H is used to process the MAC address of the data link layer, and the second node of the storage node H A processor is used to process the IP address of the network layer. Therefore, when the second processor of the storage node H cannot find the destination MAC address (MAC address of the storage node H) in the broadcast message, the storage The second processor of the node H sends the broadcast message to the first processor of the storage node H.
  • the first processor of the storage node H obtains the destination IP address (the IP address of the storage node H) from the broadcast message, and determines that the storage node H is the destination node according to the destination IP address (the IP address of the storage node H). Then, the first processor of the storage node H associates and stores the source MAC address (MAC address of the storage node A) and the IP address entry of the storage node A in the second memory of the storage node H.
  • storage node A and storage node H are the source node and the target node, respectively, and there is no need to separately store the correspondence between source MAC address and port as an entry In the second memory of the storage node A and the storage node H, the storage node D is an intermediate forwarding node, and the corresponding relationship between the source MAC address and the port needs to be stored as an entry in the second memory of the storage node D.
  • the second stage the destination node returns the response message to the source node.
  • the first processor of storage node H queries the first memory to obtain the IP address of storage node A and the MAC address of storage node A, and generates A response message of the broadcast message, and send the response message to the second processor of the storage node H, where the response message includes a destination MAC address (MAC address of the storage node A) and a source MAC address ( MAC address of storage node H).
  • the second processor of the storage node H instructs the second processor of the storage node H to send a response message through the port 2 of the transceiver of the storage node H according to the pre-configured routing configuration policy.
  • the transceiver of the storage node D receives the response message sent by the storage node H through the port 4 of the storage node D, and sends the response message to the second processor of the storage node D.
  • the second processor of the storage node D determines that the response identifier in the response packet is 0, the second processor of the storage node D is used to process the MAC address of the data link layer, and the second node of the storage node D A processor is used to process the IP address of the network layer.
  • the storage node D when the second processor of the storage node D finds the destination MAC address (MAC address of the storage node A) in the response message, the storage node The second processor of D obtains the destination MAC address (MAC address of storage node A) from the response message, compares the destination MAC address (MAC address of storage node A) with the MAC address of storage node D, and determines that the response needs to be The packet is forwarded, and then the second processor of the storage node D finds the entry from the second memory of the storage node D, thereby determining the correspondence between the destination MAC address (MAC address of the storage node A) and the port 1 of the storage node D Relationship, and the second processor of the storage node D sends the response message through the transceiver to the port 1 of the storage node D according to the corresponding relationship.
  • the second processor of the storage node D stores the correspondence between the source MAC address (MAC address of the storage node H) and the port 4 of the storage node D as an entry in the second memory of
  • the transceiver of the storage node A receives the response message sent by the storage node D through the port 2 of the storage node A, and sends the response message to the second processor of the storage node A.
  • the second processor of the storage node A determines that the response identifier in the response message is 0, the second processor of the storage node A is used to process the MAC address of the data link layer, and the second node of the storage node A A processor is used to process the IP address of the network layer.
  • the storage node A when the second processor of the storage node A finds the destination MAC address (MAC address of the storage node A) in the response message, the storage node The second processor of A obtains the destination MAC address (MAC address of storage node A) from the response message, compares the destination MAC address (MAC address of storage node A) with the MAC address of storage node A, and determines that it is not necessary
  • the response message is forwarded again, so the second processor of the storage node A reports the response message to the first processor of the storage node A, and the first processor of the storage node A obtains the source from the response message MAC address (MAC address of storage node H), and the correspondence between the source MAC address (MAC address of storage node H) and the IP address of storage node H is stored as an entry in the first memory of storage node A.
  • the storage node H and the storage node A are the source node and the target node, respectively, and there is no need to store the correspondence between the destination MAC address and the port as entries
  • the storage node D is an intermediate forwarding node, and the corresponding relationship between the destination MAC address and the port needs to be stored as an entry in the second memory of the storage node D.
  • the third stage the source node sends data packets to the destination node.
  • the first processor of the storage node A queries the first memory to obtain the destination IP address (the storage node H's IP address) and the destination MAC address ( The MAC address of storage node H), and the first processor of storage node A queries the first memory to obtain the destination MAC address (MAC address of storage node H) according to the destination IP address (IP address of storage node H), and Generate a data message, where the data message carries the destination MAC address (MAC address of the storage node H) and the number of forwarding times. The initial value of the number of forwarding times is 0.
  • the first processor of the storage node A instructs the second processor of the storage node A to send the data message from the port 2 of the transceiver of the storage node A according to the pre-configured routing configuration policy.
  • the transceiver of the storage node D receives the data message sent by the storage node A through the port 1 of the storage node D, and sends the data message to the second processor of the storage node D.
  • the second processor of the storage node D determines that the data identifier in the data packet is 1, the second processor of the storage node D sets the number of forwarding times to 1.
  • the second processor of storage node D is used to process the MAC address of the data link layer, and the first processor of storage node D is used to process the IP address of the network layer.
  • the second processor of storage node D is When the destination MAC address (MAC address of storage node H) is found in the data packet, the second processor of storage node D obtains the destination MAC address (MAC address of storage node H) from the data packet, Compare the destination MAC address (MAC address of storage node H) with the MAC address of storage node D to determine that storage node D is not the destination node. The second processor of the storage node D determines that the number of forwarding times is not greater than the forwarding threshold, so the second processor of the storage node D finds an entry from the second memory of the storage node D, thereby determining the destination MAC address (MAC of the storage node H) Address) and port 4 of the storage node D. The transceiver of the storage node D sends the data message through the port 4 of the storage node D.
  • the transceiver of the storage node H receives the data message sent by the storage node D through the port 2 of the storage node H, and sends the data message to the second processor of the storage node H.
  • the second processor of the storage node D determines that the data identifier in the data packet is 1
  • the second processor of the storage node H sets the number of forwarding times to 2, and determines that the number of forwarding times is not greater than the forwarding threshold.
  • the second processor of the storage node H is used to process the MAC address of the data link layer
  • the first processor of the storage node H is used to process the IP address of the network layer.
  • the second processor of the storage node H is When the destination MAC address (MAC address of the storage node H) is found in the data packet, the second processor of the storage node H determines the storage according to the destination MAC address (MAC address of the storage node H) carried in the data packet Node H is the destination node and reports the data message to the first processor of storage node H.
  • the storage node when the storage node detects that the data identifier carried by the data packet is 1 (in this embodiment, the broadcast identifier carried by the broadcast message is 0, and the response identifier carried by the response message is 0), the storage node In the third stage, the node determines whether the number of times the data packet is forwarded is greater than the forwarding threshold, and if it is not greater than the forwarding threshold, sends the data packet to the next storage node.
  • the first method, the second method, and the third method are used as examples, but in practical applications, any of the first method, the second method, and the third method can be used.
  • Combination of multiple ways for example, you can combine the first way and the second way, the first way and the third way, the second way and the third way, the first
  • the combination of one mode, the second mode and the third mode is not specifically limited here.
  • the following uses the combination of the first method, the second method, and the third method as an example to illustrate how to combine the traffic loop avoidance mechanism with the path self-learning mechanism.
  • the flow loop avoidance mechanism in the process of the source node sending the broadcast message to the destination node can be implemented in this way :
  • the first stage the source node sends a broadcast message to the destination node.
  • the first processor in the storage node A generates a broadcast message, and sends the broadcast message to the second processor in the storage node A.
  • the second processor in storage node A instructs the transceiver in storage node A to send a broadcast message through a designated port (for example, port 2) of storage node A, where the broadcast message carries the source IP address (IP of storage node A) Address), source MAC address (MAC address of storage node A), destination IP address (IP address of storage node H), and the first number of forwarding times, the initial value of the first number of forwarding times is 0.
  • the IP address of the storage node H may be input by the user, which is not specifically limited here.
  • the transceiver of the storage node D receives the broadcast message sent by the storage node A through the port 1 of the storage node D, and sends the broadcast message to the second processor of the storage node D.
  • the second processor of the storage node D modifies the first forwarding times carried in the broadcast message to 1.
  • the second processor of storage node D is used to process the MAC address of the data link layer, and the first processor of storage node D is used to process the IP address of the network layer.
  • the second processor of storage node D is When the destination MAC address cannot be found in the broadcast message, when the second processor of the storage node D cannot find the destination MAC address (MAC address of the storage node H) in the broadcast message, The second processor of the storage node D sends the broadcast message to the first processor of the storage node D.
  • the first processor of storage node D obtains the destination IP address (IP address of storage node H) from the broadcast message, compares the destination IP address (IP address of storage node H) with the IP address of storage node D, and determines the storage Node D is not the destination node and sends the judgment result to the second processor of storage node D.
  • the second processor of the storage node D judges that the first number of forwarding times is not greater than the forwarding threshold 2, so the second processor of the storage node D compares the source MAC address (MAC address of the storage node A) and the port 1 of the storage node D It is stored as an entry in the second memory of the storage node D in association.
  • the transceiver of the storage node D sends the broadcast message through all the ports of the storage node D except the port 1 of the storage node D.
  • the transceiver of the storage node H receives the broadcast message sent by the storage node D through the port 2 of the storage node H, and sends the broadcast message to the second processor of the storage node H.
  • the second processor of the storage node H will modify the first forwarding times carried in the broadcast message to 2, the second processor of the storage node H is used to process the MAC address of the data link layer, and the first processing of the storage node H Is used to process the IP address of the network layer. Therefore, when the second processor of the storage node H cannot find the destination MAC address (MAC address of the storage node H) in the broadcast message, the storage node H The second processor sends the broadcast message to the first processor of the storage node H.
  • the first processor of the storage node H obtains the destination IP address (the IP address of the storage node H) from the broadcast message, determines that the storage node H is the destination node according to the destination IP address (the IP address of the storage node H), and then, the storage node The first processor of H judges that the first forwarding times are not greater than the forwarding threshold, so the storage node H stores the correspondence between the source MAC address (MAC address of storage node A) and the IP address of storage node A as an entry in the first In memory.
  • storage node A and storage node H are the source node and the target node, respectively, and there is no need to separately store the correspondence between source MAC address and port as an entry In the second memory of the storage node A and the storage node H, the storage node D is an intermediate forwarding node, and the corresponding relationship between the source MAC address and the port needs to be stored as an entry in the second memory of the storage node D.
  • the second stage the destination node returns the response message to the source node.
  • the first processor of storage node H queries the first memory to obtain the IP address of storage node A and the MAC address of storage node A, and The response message is sent to the second processor of the storage node H, where the response message includes the destination MAC address (MAC address of the storage node A) and the source MAC address (MAC address of the storage node H) and the second forwarding times The initial value of the second forwarding times is zero.
  • the second processor of the storage node H instructs the second processor of the storage node H to send a response message through the port 2 of the transceiver of the storage node H according to the pre-configured routing configuration policy.
  • the transceiver of the storage node D receives the response message sent by the storage node H through the port 4 of the storage node D, and sends the response message to the second processor of the storage node D.
  • the second processor of the storage node D sets the second forwarding times in the response message to 1, the second processor of the storage node D is used to process the MAC address of the data link layer, and the first processor of the storage node D uses
  • the second processor of the storage node D finds the destination MAC address (MAC address of the storage node A) in the response message
  • the second node of the storage node D The second processor obtains the destination MAC address (MAC address of storage node A) from the response message, compares the destination MAC address (MAC address of storage node A) with the MAC address of storage node D, and determines that the response message needs to be forwarded Go out.
  • the second processor of the storage node D determines that the second forwarding times are not greater than the forwarding threshold, so the second processor of the storage node D finds the entry from the second memory of the storage node D, thereby determining the destination MAC address (storage Node A's MAC address) and storage node D's port 1 correspondence, and the second processor of storage node D sends the response message through storage node D's port 1 through the transceiver according to the above correspondence.
  • the second processor of the storage node D stores the correspondence between the source MAC address (MAC address of the storage node H) and the port 4 of the storage node D as an entry in the second memory of the storage node D.
  • the transceiver of the storage node A receives the response message sent by the storage node D through the port 2 of the storage node A, and sends the response message to the second processor of the storage node A.
  • the second processor of the storage node A sets the second forwarding times in the response message to 2, the second processor of the storage node A is used to process the MAC address of the data link layer, and the first processor of the storage node A uses
  • the second processor of the storage node A finds the destination MAC address (MAC address of the storage node A) in the response message
  • the second node of the storage node A The second processor obtains the destination MAC address (MAC address of the storage node A) from the response message, and determines that the response message does not need to be forwarded based on the destination MAC address (MAC address of the storage node A), so the storage node
  • the second processor of A reports the response message to the first processor of storage node A.
  • the first processor of storage node A determines that the second number of forwarding times is not greater than the forwarding threshold, and the first processor of storage node A responds from The source MAC address (MAC address of storage node H) is obtained from the message, and the correspondence between the source MAC address (MAC address of storage node H) and the IP address of storage node H is stored as an entry in the first node of storage node A. In a memory.
  • the storage node H and the storage node A are the source node and the target node, respectively, and there is no need to store the correspondence between the destination MAC address and the port as entries
  • the storage node D is an intermediate forwarding node, and the corresponding relationship between the destination MAC address and the port needs to be stored as an entry in the second memory of the storage node D.
  • the third stage the source node sends data packets to the destination node.
  • the first processor of the storage node A queries the first memory to obtain the destination IP address (the storage node H's IP address) and the destination MAC address ( The MAC address of the storage node H), and generates a data message, where the data message carries the destination MAC address (MAC address of the storage node H) and the third forwarding frequency, and the initial value of the third forwarding frequency is 0.
  • the first processor of the storage node A instructs the second processor of the storage node A to send the data message from the port 2 of the transceiver of the storage node A according to the pre-configured routing configuration policy.
  • the transceiver of the storage node D receives the data message sent by the storage node A through the port 1 of the storage node D, and sends the data message to the second processor of the storage node D.
  • the second processor of the storage node D sets the third forwarding frequency to 1, the second processor of the storage node D is used to process the MAC address of the data link layer, and the first processor of the storage node D is used to process the network layer The IP address is processed.
  • the second processor of the storage node D finds the destination MAC address (MAC address of the storage node H) in the data packet, the second processor of the storage node D The destination MAC address (MAC address of storage node H) is obtained from the message, and the destination MAC address (MAC address of storage node H) is compared with the MAC address of storage node D to determine that storage node D is not the destination node.
  • the second processor of the storage node D determines that the third forwarding frequency is not greater than the forwarding threshold, so the second processor of the storage node D finds the entry from the second memory of the storage node D, thereby determining the destination MAC address (storage node H) Corresponding to the MAC address of storage node D) and port 4 of storage node D.
  • the transceiver of the storage node D sends the data message through the port 4 of the storage node D.
  • the transceiver of the storage node H receives the data message sent by the storage node D through the port 2 of the storage node H, and sends the data message to the second processor of the storage node H.
  • the second processor of the storage node H sets the third forwarding frequency to 2, and determines that the third forwarding frequency is not greater than the forwarding threshold.
  • the second processor of the storage node H is used to process the MAC address of the data link layer, and the first processor of the storage node H is used to process the IP address of the network layer.
  • the second processor of the storage node H is When the destination MAC address (MAC address of the storage node H) is found in the data packet, the second processor of the storage node H determines the storage according to the destination MAC address (MAC address of the storage node H) carried in the data packet Node H is the destination node and reports the data message to the first processor of storage node H.
  • the storage node in the first stage, the second stage, and the third stage only determines if the first forwarding times, second forwarding times, and third forwarding times are not greater than the forwarding threshold.
  • the broadcast message, response message and data message are sent to the next storage node.
  • the forwarding node determines that the number of forwarding times of packets (including broadcast messages, response messages, and data messages) is not greater than the forwarding threshold. In practical applications, if the storage node determines the If the number of forwarding times is greater than the forwarding threshold, the packet will be discarded.
  • the forwarding node determines that the forwarding times of the broadcast message are greater than the forwarding threshold, and discards the broadcast message.
  • the first stage the source node sends a broadcast message to the destination node.
  • the source node (storage node A) sends a broadcast message to the destination node (storage node H) to In the process of finding the MAC address of storage node H, in addition to sending broadcast messages along the path of storage node A->storage node D->storage node H in the above example, it may also be forwarded along the following path:
  • the first processor in the storage node A generates a broadcast message, and sends the broadcast message to the second processor in the storage node A.
  • the second processor in storage node A instructs the transceiver in storage node A to send a broadcast message through a designated port (for example, port 2) of storage node A, where the broadcast message carries the source IP address (IP of storage node A) Address), source MAC address (MAC address of storage node A), destination IP address (IP address of storage node H) and the number of forwarding times, the initial value of the number of forwarding times is 0.
  • the IP address of the storage node H may be input by the user, which is not specifically limited here.
  • the transceiver of the storage node D receives the broadcast message sent by the storage node A through the port 1 of the storage node D, and sends the broadcast message to the second processor of the storage node D.
  • the second processor of the storage node D determines that the broadcast identifier in the broadcast message is 1, the second processor of the storage node D modifies the number of forwarding times carried in the broadcast message to 1.
  • the second processor of storage node D is used to process the MAC address of the data link layer, and the first processor of storage node D is used to process the IP address of the network layer.
  • the second processor of storage node D is When the destination MAC address (MAC address of the storage node H) cannot be found in the broadcast message, the second processor of the storage node D sends the broadcast message to the first processor of the storage node D.
  • the first processor of storage node D obtains the destination IP address (IP address of storage node H) from the broadcast message, compares the destination IP address (IP address of storage node H) with the IP address of storage node D, and determines the storage Node D is not the destination node and sends the judgment result to the second processor of storage node D.
  • the second processor of the storage node D judges that the number of forwarding times is not greater than the forwarding threshold value 2, so the second processor of the storage node D takes the source MAC address (MAC address of the storage node A) and the port 1 of the storage node D as a table
  • the item association is stored in the second memory of the storage node D.
  • the transceiver of the storage node D sends the broadcast message through all the ports of the storage node D except the port 1 of the storage node D.
  • the transceiver of the storage node B receives the broadcast message sent by the storage node D through the port 2 of the storage node B, and sends the broadcast message to the second processor of the storage node B.
  • the second processor of the storage node B determines that the broadcast identifier in the broadcast message is 1, the second processor of the storage node B modifies the number of forwarding times carried in the broadcast message to 2.
  • the second processor of storage node B is used to process the MAC address of the data link layer, and the first processor of storage node B is used to process the IP address of the network layer.
  • the second processor of storage node B is When the destination MAC address (MAC address of the storage node H) cannot be found in the broadcast message, the second processor of the storage node B sends the broadcast message to the first processor of the storage node B.
  • the first processor of storage node B obtains the destination IP address (IP address of storage node H) from the broadcast message, compares the destination IP address (IP address of storage node H) with the IP address of storage node B, and determines the storage Node B is not the destination node, and sends the judgment result to the second processor of storage node B.
  • the second processor of the storage node B judges that the number of forwarding times is not greater than the forwarding threshold 2, so the second processor of the storage node B takes the source MAC address (MAC address of the storage node A) and the port 2 of the storage node B as a table
  • the item association is stored in the second memory of the storage node B.
  • the transceiver of the storage node B sends the broadcast message through all other ports of the storage node B except the port 2 of the storage node B.
  • the transceiver of the storage node E receives the broadcast message sent by the storage node B through the port 2 of the storage node E, and sends the broadcast message to the second processor of the storage node E.
  • the second processor of the storage node E determines that the broadcast identifier in the broadcast message is 1
  • the second processor of the storage node E will modify the number of forwarding times carried in the broadcast message to 3, obviously, The number of forwarding times is greater than the forwarding threshold, so the second processor of the storage node E discards the broadcast message.
  • the broadcast message of storage node A may follow storage node A->storage node D->storage node B->storage node E->storage The node G->storage node D->storage node B... loops in an exchange-free network indefinitely.
  • the broadcast message broadcast by storage node A is forwarded to storage node E When it is discarded, it will not be endlessly circulated in the exchange-free networking, thus avoiding the consumption of resources in the exchange-free networking, thereby improving the efficiency of the exchange-free networking.
  • the forwarding node determines that the number of forwarding of the response message is greater than the forwarding threshold, and discards the response message.
  • the second stage the destination node returns the response message to the source node.
  • the response message in the above example should follow the storage node H-> The path of storage node D->storage node A returns.
  • the response message may also be transmitted along the following path:
  • the first processor of storage node H queries the first memory to obtain the IP address of storage node A and the MAC address of storage node A, and generates A response message of the broadcast message.
  • the response message includes a destination MAC address (MAC address of storage node A), a destination IP address (IP address of storage node A) and a source MAC address (MAC address of storage node H), and the number of forwarding times
  • the initial value is zero.
  • the destination MAC address in the response packet may be modified to a non-existent MAC address
  • the destination IP address in the response packet storage node A IP address
  • the first processor of the storage node H sends the modified response message to the second processor of the storage node H.
  • the second processor of the storage node H still instructs the second processing of the storage node H according to the pre-configured routing configuration policy
  • the server sends the response message through port 2 of the transceiver of the storage node H.
  • the transceiver of the storage node D receives the modified response message sent by the storage node H through the port 4 of the storage node D, and sends the modified response message to the second processor of the storage node D.
  • the second processor of the storage node D determines that the response identifier in the modified response packet is 1, the second processor of the storage node D sets the number of forwarding times in the modified response packet to 1 .
  • the second processor of storage node D is used to process the MAC address of the data link layer, and the first processor of storage node D is used to process the IP address of the network layer.
  • the second processor of storage node D is When the destination MAC address (non-existent MAC address) is found in the modified response message, the second processor of the storage node D obtains the destination MAC address (non-existent MAC address) from the modified response message Address), compare the destination MAC address (the MAC address that does not exist) with the MAC address of the storage node D, and determine that the modified response message needs to be forwarded out. Then, the second processor of the storage node D determines that the number of forwarding times is not greater than the forwarding threshold, and looks up the table entry from the second memory of the storage node D. Since the corresponding entry cannot be found, the second processor of the storage node D instructs the transceiver to send the modified response message through a port (eg, port 2) other than the receiving port (port 4).
  • a port eg, port 2
  • the transceiver of the storage node B receives the modified response message sent by the storage node D through the port 2 of the storage node B, and sends the modified response message to the second processor of the storage node B.
  • the second processor of the storage node B determines that the response identifier in the modified response packet is 1, the second processor of the storage node B sets the number of forwarding times in the modified response packet to 2 .
  • the second processor of storage node B is used to process the MAC address of the data link layer, and the first processor of storage node B is used to process the IP address of the network layer.
  • the second processor of storage node B is When the destination MAC address (non-existent MAC address) is found in the modified response message, the second processor of the storage node B obtains the destination MAC address (non-existent MAC address) from the modified response message , Compare the destination MAC address (the MAC address that does not exist) with the MAC address of the storage node B, and determine that the modified response message needs to be forwarded out. Then, the second processor of the storage node B determines that the number of forwarding times is not greater than the forwarding threshold, and then looks up the table entry from the second memory of the storage node B. Since the corresponding entry cannot be found, the second processor of the storage node B instructs the transceiver to send the modified response message through a port (for example, port 3) other than the receiving port (port 2).
  • a port for example, port 3
  • the transceiver of the storage node E receives the modified response message sent by the storage node B through the port 2 of the storage node E, and sends the modified response message to the second processor of the storage node E.
  • the second processor of the storage node E determines that the response identifier in the modified response packet is 1
  • the second processor of the storage node E sets the number of forwarding times in the modified response packet to 3 . Because the number of forwarding times is greater than the forwarding threshold, the second processor of the storage node E discards the modified response message.
  • the modified response message may follow the storage node H->storage node D->storage node B->storage node E->storage node G->storage node D->storage node B... in an infinite loop in a switch-free networking, but after adding the above-mentioned traffic loop avoidance mechanism, the modified response message is forwarded to the storage node E If it is discarded, it will not endlessly circulate in the exchange-free networking, thus avoiding the consumption of resources in the exchange-free networking, thereby improving the efficiency of the exchange-free networking.
  • the forwarding node determines that the number of data packet forwarding times is greater than the forwarding threshold, and discards the data packet.
  • the first stage the source node sends data packets to the destination node.
  • the data message in the above example should be stored according to storage node A-> The path of node D->storage node H is sent to storage node H.
  • the data packet may also be transmitted along the following path:
  • the first processor in the storage node A generates a data message, and sends the data message to the second processor in the storage node A.
  • the broadcast message carries the source IP address (storage node A's IP address), source MAC address (storage node A's MAC address), destination IP address (storage node H's IP address), destination MAC address (storage node H) And the number of forwarding times, the initial value of the number of forwarding times is 0.
  • the IP address of the storage node H may be input by the user, which is not specifically limited here.
  • the destination IP address of the data packet IP address of the storage node H
  • the destination MAC address of the data packet MAC address of the storage node H
  • the second processor in the storage node A instructs the transceiver in the storage node A to send the modified data message through the port 2 of the storage node A according to the pre-configured routing configuration policy.
  • the transceiver of the storage node D receives the modified data message sent by the storage node A through the port 1 of the storage node D, and sends the modified data message to the second processor of the storage node D.
  • the second processor of the storage node D determines that the data identifier in the modified data packet is 1, the second processor of the storage node D modifies the number of forwarding times carried in the modified data packet to 1.
  • the second processor of storage node D is used to process the MAC address of the data link layer, and the first processor of storage node D is used to process the IP address of the network layer.
  • the second processor of storage node D is When the destination MAC address (non-existent MAC address) is found in the modified data message, the second processor of the storage node D looks up the entry from the second memory of the storage node D. Since the corresponding entry cannot be found, the second processor of the storage node D instructs the transceiver to send the modified data message through a port (for example, port 2) other than the receiving port.
  • a port for example, port 2
  • the transceiver of the storage node B receives the modified data message sent by the storage node D through the port 2 of the storage node B, and sends the modified data message to the second processor of the storage node B.
  • the second processor of the storage node B determines that the data identifier in the modified data packet is 1, the second processor of the storage node B modifies the number of forwarding times carried in the data packet to 2.
  • the second processor of storage node B is used to process the MAC address of the data link layer, and the first processor of storage node B is used to process the IP address of the network layer.
  • the second processor of storage node B is When the destination MAC address (non-existent MAC address) is found in the modified data message, the second processor of the storage node B looks up the table entry from the second memory of the storage node B. Since the corresponding entry cannot be found, the second processor of the storage node B instructs the transceiver to send the modified data message through a port (for example, port 3) other than the receiving port.
  • a port for example, port 3
  • the transceiver of the storage node E receives the modified data message sent by the storage node B through the port 2 of the storage node E, and sends the modified data message to the second processor of the storage node E.
  • the second processor of the storage node E determines that the data identifier in the modified data packet is 1, the second processor of the storage node E modifies the number of forwarding carried in the modified data packet to 3. Obviously, the number of forwarding times is greater than the forwarding threshold, so the second processor of the storage node E discards the modified data message.
  • the modified data packet may follow the storage node A->storage node D->storage node B->storage node E->storage node G->storage node D->storage node B... in an infinite loop in a switch-free networking, but after adding the above-mentioned traffic loop avoidance mechanism, the modified data message is forwarded to storage node B If it is discarded, it will not endlessly circulate in the exchange-free networking, thus avoiding the consumption of resources in the exchange-free networking, thereby improving the efficiency of the exchange-free networking.
  • the forwarding threshold can be determined according to the network topology diagram of the switch-free networking.
  • the data can be realized after a maximum of 2 hops between the storage node and the storage node Communication, therefore, the forwarding threshold can be set to 2.
  • the setting of the value of the forwarding threshold is only an example, and in other embodiments, it may be 3, 4, 5 or more.
  • it can also be set according to factors such as network forwarding delay and link quality such as packet loss rate, etc., which are not specifically limited here.
  • the number of forwarding times can be carried in the tag control identifier (TCI) field of the message. Since the structure of the three packets of the broadcast message, the response message, and the data message in this application are substantially the same, the following will take the broadcast message as an example for description.
  • TCI tag control identifier
  • the broadcast message usually includes a 6-byte destination MAC address field, a 6-byte source MAC address field, a 2-byte tag protocol identifier (TPID), and a 2-byte TCI field , 2 bytes type, 46 to 1500 bytes of payload (payload) bytes and 4 bytes of cyclic redundancy check (Cyclic Redundancy Check, CRC).
  • the TCI field may include a 3-bit user priority byte (user priority), a 1-bit canonical identification (Canonical Format Indicator, CFI), and a 12-bit virtual local area network identifier (Virtual Local Area Area Network Identifier, VLAN ID) field .
  • the high-order bits of the virtual local area network identifier can be used to carry the forwarding times, and the low-order bits can carry the VLAN ID.
  • the highest bit of the virtual local area network identifier can be used to carry the forwarding times, and the remaining 11 low-order bits can carry the VLAN ID;
  • the low-order bits of the virtual local area network identifier can also be used to carry the forwarding times, and the high-order bits can carry the VLAN ID.
  • the lowest bit of the virtual local area network identifier can be used to carry the forwarding times, and the remaining 11 high-order bits can carry the VLAN ID.
  • the broadcast identifier may also be carried in a reserved field (not shown in the figure) of the broadcast message.
  • the broadcast identifier may also be carried in an existing field of the broadcast message explicitly or implicitly, which is not specifically limited here.
  • the response message and the data message can also carry the response identifier and the data identifier respectively, which is not described in detail here.
  • the number of bits included in the virtual local area network identification field is 12 bits as an example for description. In practical applications, the number of bits included in the virtual local area network identification field may be less or more, which is not specifically limited herein.
  • FIG. 7 is a schematic structural diagram of a forwarding node provided by this application.
  • the forwarding node directly forwards the messages or data sent by other nodes through the network. That is, the forwarding node receives data through the first node or the second node, and stores the received data in the first memory.
  • the forwarding node, the first node and the second node are not switches.
  • the network does not need to forward data and messages through the switch.
  • the first node, the forwarding node, and the second node are all storage nodes in FIG. 4, wherein the storage node is used to store electronic files, and the electronic files include text , One or more of images, audio, and video.
  • the first node may be a source node and the second node may be a destination node.
  • Both the forwarding node and the other nodes belong to nodes in a switch-free networking.
  • the switch-free networking is a decentralized networking method, that is, the status of each node in the switch-free networking is equal, or the switch-free networking does not include a forwarding center (such as a switch), so In addition to performing their own functions (for example, the function of storing data), each node in the described network also needs to undertake the function of data forwarding.
  • the forwarding node may be the storage node in FIG. 4, for example, the above-mentioned first to third ways in combination with the traffic loop avoidance mechanism on the path self-learning mechanism and between them
  • the storage node D in the combination is not specifically limited here. As shown in FIG.
  • the forwarding node of the present application includes: a receiving module 210, a first processing module 230, a second processing module 220, a sending module 240, and a storage module 250.
  • the receiving module 210 includes a first port 211.
  • the sending module 240 includes a second port 241.
  • the receiving module 210 is configured to receive a broadcast message through the first port 211, wherein the broadcast message carries the first address information of the source node, and the broadcast message is the second message sent by the source node for querying the destination node Address information packet.
  • the second processing module 220 is used to store a first entry in the storage module 250, wherein the first entry is used to record the correspondence between the first address information and the first port 211;
  • the sending module 240 is configured to send the broadcast message through the second port 241;
  • the receiving module 210 is configured to receive a response message of the broadcast message through the second port 241, wherein the response message carries second address information, and the response message is used to return the address to the source node. Describe the second address information;
  • the second processing module 220 is configured to query the first entry according to the first address information to determine the first port 211;
  • the sending module 240 is configured to send the response message through the first port 211;
  • the second processing module 220 is used to store a second entry in the storage module 250, wherein the second entry is used to record the correspondence between the second address information and the second port 241.
  • the first processing module 230 may be a processor with a faster processing speed and a stronger computing capability, for example, the first processor in FIG. 2.
  • the second processing module 220 may be a processor with a slower processing speed and a weaker computing capability, for example, the second processor in FIG. 2.
  • the receiving module 210 and the sending module 240 may be provided separately or integrated together, which is not specifically limited here. When the two are integrated together, it may be the transceiver in FIG. 2.
  • the forwarding node can forward the data message according to the correspondence between the second address information and the second port 241.
  • the data message carries the second address information.
  • the receiving module 210 is used to receive a data message, where the data message is used to carry the data sent by the source node to the destination node and the second address information; the second processing module 220 is used to Query the second entry according to the second address information to obtain the second port 241; the sending module 240 is configured to send the data packet through the second port 241.
  • the forwarding node can also combine the traffic loop avoidance mechanism in one or more of the process of sending broadcast messages, receiving response messages, and sending data packets, that is, only in broadcast messages 3. Only when the forwarding times of receiving the response message and the sending data message are not greater than the forwarding threshold, the broadcast message, the receiving response message and the sending data message are forwarded. If the forwarding coefficient is greater than the forwarding threshold, the broadcast message, Receive the response message and send the data message to discard.
  • the forwarding threshold is determined according to the topology of the network where the forwarding node is located. E.g,
  • the broadcast message further includes a first number of forwarding times
  • the sending module 240 is further configured to discard the broadcast message when it is determined that the first number of forwarding times is greater than a forwarding threshold, and determine that the first number of forwarding times is not greater than In the case of the forwarding threshold, increase the first forwarding number by one and send the broadcast message through the second port; or,
  • the response message further includes a second number of forwarding times
  • the sending module 240 is further configured to discard the response message when it is determined that the second number of forwarding times is greater than a forwarding threshold, and determine that the second number of forwarding times is not greater than In the case of a forwarding threshold, increase the second forwarding number by one and send the response message through the first port; or,
  • the data packet further includes a third forwarding frequency
  • the sending module 240 is further configured to discard the data packet when it is determined that the third forwarding frequency is greater than a forwarding threshold, and determine that the third forwarding frequency is not greater than In the case of a forwarding threshold, the third forwarding frequency is increased by one, and the data packet is sent through the second port.
  • the forwarding node shown in FIG. 7 is not described here.
  • FIG. 8 is a schematic flowchart of a data or message forwarding method provided by this application.
  • the forwarding node directly forwards messages or data sent by other nodes through the network.
  • the forwarding node includes: a first processor, a first memory, and a network adapter card, where the network adapter card includes a second processor, a first Two memories and a transceiver, the transceiver includes a first port and a second port; the method for forwarding data or messages of the present application includes the following steps:
  • the transceiver receives a broadcast message through the first port, where the broadcast message carries first address information of a source node, and the broadcast message is sent by the source node to query a destination node The message of the second address information.
  • the second processor stores a first entry in the second memory, where the first entry is used to record the correspondence between the first address information and the first port.
  • S103 The transceiver sends the broadcast message through the second port.
  • the transceiver receives a response message of the broadcast message through the second port, where the response message carries second address information, and the response message is used to return the response message to the source node. Describe the second address information;
  • S105 The second processor queries the first entry to determine the first port according to the first address information
  • S106 The transceiver sends the response message through the first port
  • the second processor stores a second entry in the second memory, where the second entry is used to record the correspondence between the second address information and the second port.
  • the first address information of the source node may be the MAC address information of the source node
  • the second address information of the destination node may be the MAC address information of the destination node, which is not specifically limited here.
  • FIG. 4 assuming that the source node is storage node A, the destination node is storage node H, and the forwarding node is storage node D, then the first address information of the source node is the MAC address of storage node A, and the second address of the destination node The information is MAC address information of storage node H, the first port is port 2 of storage node D, and the second port is port 4 of storage node D.
  • the information processing system of the present application includes: the forwarding node directly forwards messages or data sent by other nodes through the network. That is, the forwarding node receives the broadcast message through the first node and sends the broadcast message to the second node; the first node includes a third processor and a third memory, and the second The node includes a fourth processor and a fourth memory; the third memory and the fourth memory are used to store data forwarded or sent by the forwarding node. More specifically, the forwarding node receives data through the first node or the second node, and stores the received data in the first memory.
  • the forwarding node and the first node are connected through a communication network, and the forwarding node and the second node are also connected through a communication network, where the communication network may be a mesh channel (fibre channel, FC) Network and so on.
  • FC mesh channel
  • the information processing system may be an information processing system composed of a network-free network as shown in FIG. 4.
  • the first node may be the storage node A in FIG. 4
  • the forwarding node may be the storage node D in FIG. 4
  • the second node may be the storage node H in FIG.
  • the forwarding node may adopt the structure of a storage node as shown in FIG. 2, and the forwarding node may perform the first to third methods described above in conjunction with a path loop avoidance mechanism on the path self-learning mechanism. The method and the steps performed by the storage node D in the combination between them will not be described here.
  • the computer program product includes one or more computer instructions.
  • 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 Transmission to another website, computer, server or data center via wired (such as coaxial cable, optical fiber, digital subscriber line) 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 including a server, a data center, and the like integrated with one or more available media.
  • the usable medium may be a magnetic medium (for example, a floppy disk, a storage disk, a magnetic tape), an optical medium (for example, a DVD), or a semiconductor medium (for example, Solid State Disk (SSD)) or the like.
  • a magnetic medium for example, a floppy disk, a storage disk, a magnetic tape
  • an optical medium for example, a DVD
  • a semiconductor medium for example, Solid State Disk (SSD)

Abstract

本申请提供了一种数据或报文转发的方法、节点和系统,所述转发节点直接转发其它节点通过网络发送的报文或数据,所述转发节点包括:第一处理器、第一存储器以及网络适配卡,其中,网络适配卡包括第二处理器、第二存储器以及收发器,收发器包括第一端口和第二端口;收发器用于通过第一端口接收广播报文;第二处理器用于在第二存储器中存储第一表项;收发器用于通过第二端口发送广播报文;收发器用于通过第二端口接收广播报文的响应报文;第二处理器用于根据第一地址信息查询第一表项确定第一端口;收发器用于通过第一端口发送响应报文;第二处理器用于在第二存储器中存储第二表项。上述方法能够能够有效提高组网网络的性能。

Description

数据或报文转发的方法、节点和系统 技术领域
本申请涉及数据通信领域,尤其涉及一种数据或报文转发的方法、节点和系统。
背景技术
数据中心通常是指在一个物理空间内实现对数据信息的集中存储、处理、管理、传输和交换等功能,例如,A电商平台在B地点建立一个数据中心专门用于集中集中存储、处理、管理、传输和交换在A电商平台上进行交易的数据。为了能够实现上述功能,数据中心通常要包括存储节点、服务节点以及连接存储节点以及服务节点的组网网络三大部分。其中,存储节点用于实现数据的存储功能。服务节点用于实现数据的处理和管理功能。组网网络用于实现数据的传输和交换功能。
本领域的技术人员在长期研究中发现,如何提高组网网络的性能是一个尚未解决的问题。
发明内容
本申请提供了一种数据或报文转发的方法、节点和系统,能够有效提高组网网络的性能。
第一方面,提供了一种转发节点,所述转发节点直接转发其它节点通过网络发送的报文或数据。所述转发节点包括:第一处理器、第一存储器以及网络适配卡,其中,所述网络适配卡包括第二处理器、第二存储器以及收发器,所述收发器包括第一端口和第二端口;
所述收发器用于通过所述第一端口接收广播报文,其中,所述广播报文携带源节点的第一地址信息,所述广播报文是所述源节点发送的用于查询目的节点第二地址信息的报文;
所述第二处理器用于在所述第二存储器中存储第一表项,其中,所述第一表项用于记录所述第一地址信息和所述第一端口的对应关系;
所述收发器用于通过所述第二端口发送所述广播报文;
所述收发器用于通过所述第二端口接收所述广播报文的响应报文,其中,所述响应报文携带第二地址信息,所述响应报文用于向所述源节点返回所述第二地址信息;
所述第二处理器用于根据所述第一地址信息查询所述第一表项确定所述第一端口;
所述收发器用于通过所述第一端口发送所述响应报文;
所述第二处理器用于在所述第二存储器中存储第二表项,其中,所述第二表项用于记录所述第二地址信息和所述第二端口的对应关系。
在上述方案中,转发节点通过位于数据链路层(二层)的第二处理器实现路径自学习的功能,不需要上报到位于网络层(三层)的第一处理器,能够提高有效地路径自学习的的效率,从而提高网络的性能。
在一些可能的设计中,所述响应报文还包括所述第一地址信息。
在一些可能的设计中,所述源节点的第一地址信息是所述源节点的媒体访问控制(Media Access Control Addres,MAC)地址,所述目的节点的第二地址信息是所述目的节 点的MAC地址。
在一些可能的设计中,所述收发器用于接收数据报文,其中,所述数据报文包含所述源节点发送给所述目的节点的数据和所述第二地址信息;所述第二处理器用于根据所述第二地址信息查询所述第二表项得到所述第二端口;所述收发器用于通过所述第二端口发送所述数据报文。
在一些可能的设计中,所述转发设备包括以下中的一种或者多种:
所述广播报文还包括第一转发次数,所述收发器还用于在确定所述第一转发次数大于转发阈值的情况下,丢弃所述广播报文,在确定所述第一转发次数没有大于转发阈值的情况下,将所述第一转发次数加一,并通过第二端口发送所述广播报文;或,
所述响应报文还包括第二转发次数,所述收发器还用于在确定所述第二转发次数大于转发阈值的情况下,丢弃所述响应报文,在确定所述第二转发次数没有大于转发阈值的情况下,将所述第二转发次数加一,并通过所述第一端口发送所述响应报文;或,
所述数据报文还包括第三转发次数,所述收发器还用于在确定所述第三转发次数大于转发阈值的情况下,丢弃所述数据报文,在确定所述第三转发次数没有大于转发阈值的情况下,将所述第三转发次数加一,并通过所述第二端口发送所述数据报文。
在上述方案中,转发节点在进行自学习的过程中,判断广播报文、响应报文以及数据报文中的一个或者多个的转发次数是否大于转发阈值,并在大于转发阈值的情况下,将对应的报文进行丢弃,在没有大于转发阈值的情况下,才将对应的报文进行转发,从而避免对应的报文一直在网络中循环,导致网络的资源被消耗。
在一些可能的设计中,所述收发器还用于在所述响应报文遭受到病毒攻击的情况下,确定所述第二转发次数大于转发阈值,确定所述第二转发次数大于转发阈值的情况下,丢弃所述响应报文,在确定所述第二转发次数没有大于转发阈值的情况下,将所述第二转发次数加一,并通过所述第一端口发送所述响应报文。
在一些可能的设计中,所述收发器还用于在所述数据报文遭受到病毒攻击的情况下,确定所述第三转发次数大于转发阈值,在确定所述第三转发次数大于转发阈值的情况下,丢弃所述数据报文,在确定所述第三转发次数没有大于转发阈值的情况下,将所述第三转发次数加一,并通过所述第二端口发送所述数据报文。
在一些可能的设计中,所述转发阈值是根据所述转发节点所在的网络的拓扑结构确定的。例如,所述转发阈值大于所述转发节点所在的网络的节点之间的最大转发跳数,其中,最大转发跳数为所述转发节点所在的网络中任意两个节点之间的转发跳数中数值最大的转发跳数。
在一些可能的设计中,在所述广播报文包括所述第一转发次数的情况下,所述第一转发次数承载于所述广播报文的虚拟局域网字段;
在所述响应报文包括所述第二转发次数的情况下,所述第二转发次数承载于所述响应报文的虚拟局域网字段;
在所述数据报文包括所述第三转发次数的情况下,所述第三转发次数承载于所述数据报文的虚拟局域网字段。
在一些可能的设计中,所述转发节点用于通过第一节点接收所述广播报文,并向第二 节点发送所述广播报文;所述第一节点包括第三处理器和第三存储器,所述第二节点包括第四处理器和第四存储器;所述第三存储器和所述第四存储器用于存储通过所述转发节点转发或发送的数据。
在一些可能的设计中,所述转发节点还用于通过所述第一节点或所述第二节点接收数据,并将接收到的数据存储在所述第一存储器中。所述转发节点、所述第一节点和所述第二节点均不是交换机。所述转发节点所在的网络不需要通过交换机转发数据和报文。
在一些可能的设计中,所述第一节点为所述源节点,所述第二节点为所述目的节点。
第二方面,提供了一种转发方法,应用于转发节点,所述转发节点直接转发其它节点通过网络发送的报文或数据,转发节点包括:第一处理器、第一存储器以及网络适配卡,其中,所述网络适配卡包括第二处理器、第二存储器以及收发器,所述收发器包括第一端口和第二端口;
所述收发器通过所述第一端口接收广播报文,其中,所述广播报文携带源节点的第一地址信息,所述广播报文是所述源节点发送的用于查询目的节点第二地址信息的报文;
所述第二处理器在所述第二存储器中存储第一表项,其中,所述第一表项用于记录所述第一地址信息和所述第一端口的对应关系;
所述收发器通过所述第二端口发送所述广播报文;
所述收发器通过所述第二端口接收所述广播报文的响应报文,其中,所述响应报文携带第二地址信息,所述响应报文用于向所述源节点返回所述第二地址信息;
所述第二处理器根据所述第一地址信息查询所述第一表项确定所述第一端口;
所述收发器通过所述第一端口发送所述响应报文;
所述第二处理器在所述第二存储器中存储第二表项,其中,所述第二表项用于记录所述第二地址信息和所述第二端口的对应关系。
在一些可能的设计中,所述响应报文还包括所述第一地址信息。
在一些可能的设计中,所述源节点的第一地址信息是所述源节点的MAC地址,所述目的节点的第二地址信息是所述目的节点的MAC地址。
在一些可能的设计中,所述方法还包括:
所述收发器接收数据报文,其中,所述数据报文包含所述源节点发送给所述目的节点的数据和所述第二地址信息;所述第二处理器根据所述第二地址信息查询所述第二表项得到所述第二端口;所述收发器通过所述第二端口发送所述数据报文。
在一些可能的设计中,所述方法还包括以下中的一种或者多种:
所述广播报文还包括第一转发次数,所述收发器通过所述第二端口发送所述广播报文包括:所述收发器在确定所述第一转发次数大于转发阈值的情况下,丢弃所述广播报文,在确定所述第一转发次数没有大于转发阈值的情况下,将所述第一转发次数加一,并通过第二端口发送所述广播报文;或,
所述响应报文还包括第二转发次数,所述收发器通过所述第一端口发送所述响应报文包括:所述收发器在确定所述第二转发次数大于转发阈值的情况下,丢弃所述响应报文,在确定所述第二转发次数没有大于转发阈值的情况下,将所述第二转发次数加一,并通过所述第一端口发送所述响应报文;或,
所述数据报文还包括第三转发次数,所述收发器通过所述第二端口发送所述数据报文包括:所述收发器在确定所述第三转发次数大于转发阈值的情况下,丢弃所述数据报文,在确定所述第三转发次数没有大于转发阈值的情况下,将所述第三转发次数加一,并通过所述第二端口发送所述数据报文。
在一些可能的设计中,所述收发器还用于在所述响应报文遭受到病毒攻击的情况下,确定所述第二转发次数大于转发阈值,确定所述第二转发次数大于转发阈值的情况下,丢弃所述响应报文,在确定所述第二转发次数没有大于转发阈值的情况下,将所述第二转发次数加一,并通过所述第一端口发送所述响应报文。
在一些可能的设计中,所述收发器还用于在所述数据报文遭受到病毒攻击的情况下,确定所述第三转发次数大于转发阈值,在确定所述第三转发次数大于转发阈值的情况下,丢弃所述数据报文,在确定所述第三转发次数没有大于转发阈值的情况下,将所述第三转发次数加一,并通过所述第二端口发送所述数据报文。
在一些可能的设计中,所述转发阈值是根据所述转发节点所在的网络的网络结构确定的。例如,所述转发阈值大于所述转发节点所在的网络的节点之间的最大转发跳数,其中,最大转发跳数为所述转发节点所在的网络中任意两个节点之间的转发跳数中数值最大的转发跳数。
在一些可能的设计中,在所述广播报文包括所述第一转发次数的情况下,所述第一转发次数承载于所述广播报文的虚拟局域网字段;
在所述响应报文包括所述第二转发次数的情况下,所述第二转发次数承载于所述响应报文的虚拟局域网字段;
在所述数据报文包括所述第三转发次数的情况下,所述第三转发次数承载于所述数据报文的虚拟局域网字段。
在一些可能的设计中,所述转发节点直接转发其它节点通过网络发送的报文或数据包括:
所述转发节点通过第一节点接收所述广播报文,并向第二节点发送所述广播报文;所述第一节点包括第三处理器和第三存储器,所述第二节点包括第四处理器和第四存储器;所述第三存储器和所述第四存储器用于存储通过所述转发节点转发或发送的数据。
在一些可能的设计中,所述转发节点还用于通过所述第一节点或所述第二节点接收数据,并将接收到的数据存储在所述第一存储器中。所述转发节点、所述第一节点和所述第二节点均不是交换机。所述转发节点所在的网络不需要通过交换机转发数据和报文。
在一些可能的设计中,所述第一节点为所述源节点,所述第二节点为所述目的节点。
第三方面,提供了一种转发节点,包括:接收模块、第一处理模块、第二处理模块、发送模块和存储模块,所述接收模块包括第一端口,所述发送模块包括第二端口,
所述接收模块用于通过所述第一端口接收广播报文,其中,所述广播报文携带源节点的第一地址信息,所述广播报文是所述源节点发送的用于查询目的节点第二地址信息的报文;
所述第二处理模块用于在存储模块中存储第一表项,其中,所述第一表项用于记录所述第一地址信息和所述第一端口的对应关系;
所述发送模块用于通过所述第二端口发送所述广播报文;
所述接收模块用于通过所述第二端口接收所述广播报文的响应报文,其中,所述响应报文携带第二地址信息,所述响应报文用于向所述源节点返回所述第二地址信息;
所述第二处理模块用于根据所述第一地址信息查询所述第一表项确定所述第一端口;
所述发送模块用于通过所述第一端口发送所述响应报文;
所述第二处理模块用于在所述存储模块中存储第二表项,其中,所述第二表项用于记录所述第二地址信息和所述第二端口的对应关系。
在一些可能的设计中,所述响应报文还包括所述第一地址信息。
在一些可能的设计中,所述源节点的第一地址信息是所述源节点的MAC地址,所述目的节点的第二地址信息是所述目的节点的MAC地址。
在一些可能的设计中,所述接收模块用于接收数据报文,其中,所述数据报文包含所述源节点发送给所述目的节点的数据和所述第二地址信息;所述第二处理模块用于根据所述第二地址信息查询所述第二表项得到所述第二端口;所述发送模块用于通过所述第二端口发送所述数据报文。
在一些可能的设计中,所述转发设备包括以下中的一种或者多种:
所述广播报文还包括第一转发次数,所述发送模块还用于在确定所述第一转发次数大于转发阈值的情况下,丢弃所述广播报文,在确定所述第一转发次数没有大于转发阈值的情况下,将所述第一转发次数加一,并通过第二端口发送所述广播报文;或,
所述响应报文还包括第二转发次数,所述发送模块还用于在确定所述第二转发次数大于转发阈值的情况下,丢弃所述响应报文,在确定所述第二转发次数没有大于转发阈值的情况下,将所述第二转发次数加一,并通过所述第一端口发送所述响应报文;或,
所述数据报文还包括第三转发次数,所述发送模块还用于在确定所述第三转发次数大于转发阈值的情况下,丢弃所述数据报文,在确定所述第三转发次数没有大于转发阈值的情况下,将所述第三转发次数加一,并通过所述第二端口发送所述数据报文。
在一些可能的设计中,所述发送模块还用于在所述响应报文遭受到病毒攻击的情况下,确定所述第二转发次数大于转发阈值,确定所述第二转发次数大于转发阈值的情况下,丢弃所述响应报文,在确定所述第二转发次数没有大于转发阈值的情况下,将所述第二转发次数加一,并通过所述第一端口发送所述响应报文。
在一些可能的设计中,所述发送模块还用于在所述数据报文遭受到病毒攻击的情况下,确定所述第三转发次数大于转发阈值,在确定所述第三转发次数大于转发阈值的情况下,丢弃所述数据报文,在确定所述第三转发次数没有大于转发阈值的情况下,将所述第三转发次数加一,并通过所述第二端口发送所述数据报文。
在一些可能的设计中,所述转发阈值是根据所述转发节点所在的网络的拓扑结构确定的。例如,所述转发阈值大于所述转发节点所在的网络的节点之间的最大转发跳数,其中,最大转发跳数为所述转发节点所在的网络中任意两个节点之间的转发跳数中数值最大的转发跳数。
在一些可能的设计中,在所述广播报文包括所述第一转发次数的情况下,所述第一转发次数承载于所述广播报文的虚拟局域网字段;
在所述响应报文包括所述第二转发次数的情况下,所述第二转发次数承载于所述响应报文的虚拟局域网字段;
在所述数据报文包括所述第三转发次数的情况下,所述第三转发次数承载于所述数据报文的虚拟局域网字段。
第四方面,提供了一种信息处理系统,其特征在于,包括多个转发节点;每个所述转发节点为如第一方面任一项所述的转发节点。
第五方面,提供了一种计算机非瞬态存储介质,包括计算机可读指令,当所述计算机可读指令在计算机设备上运行时,使得所述计算机设备执行如第二方面任一项所述的方法。
附图说明
为了更清楚地说明本申请实施例或背景技术中的技术方案,下面将对本申请实施例或背景技术中所需要使用的附图进行说明。
图1是本申请实施例涉及的数据中心的组网示意图;
图2是本申请实施例提供的一种存储节点的结构示意图;
图3是本申请实施例涉及的交换机组网的结构示意图;
图4是本申请实施例涉及的免交换机组网的结构示意图;
图5是图4所示的免交换机组网的逻辑组网图;
图6是本申请提供的一种广播报文的结构示意图;
图7是本申请提供的一种转发节点的结构示意图;
图8是本申请提供的一种数据或报文转发的方法的流程示意图。
具体实施方式
如图1所示,数据中心的组网网络可以包括前端客户网络110和后端存储网络120两大部分。其中,前端客户网络110是指服务节点130与存储节点140之间互联的网络,用于实现服务节点130和存储节点140之间的数据通讯。后端存储网络120是指存储节点140与存储节点140之间互联的网络,用于实现存储节点140和存储节点140之间的数据通信。
存储节点140可以通过前端客户网络110从服务节点130接收电子文件(或者“文件”),并将文件进行存储。所述文件包括但不限于文本、图像、音频内容、视频内容或者其组合等数据形式。存储节点140接收文件时使用的协议可以是网络文件系统协议或者其他协议。存储节点140可以将在正常操作期间产生的服务日志等数据进行存储。存储节点140可以基于其他数据(例如,通过从高分辨率源图像产生小缩略图图像)创建数据并进行存储。此外,存储节点140还可以集成存储引擎,存储引擎用于确定文件的内容如何分布在多个存储节点上。
如图2所示,存储节点140通常包括第一处理器141、第一存储器142以及网络适配器143。
第一处理器141可以是一个或者多个通用处理器,其中,通用处理器可以是能够处理电子指令的任何类型的设备,包括中央处理器(Central Processing Unit,CPU)、微处理器、微控制器、主处理器、控制器以及专用集成电路(Application Specific Integrated Circuit, ASIC)等等。第一处理器141执行各种类型的数字存储指令,例如存储在第一存储器142中的软件或者固件程序。在一具体的实施例中,第一处理器141可以是x86处理器等等。第一处理器141通过物理接口将命令发送给第一存储器142,以完成存储相关的任务,例如,第一处理器141可以提供的命令包括读取命令、写入命令、复制命令以及擦除命令等等。所述命令可以指定与第一存储器142的特定页和块有关的操作。作为一个示例,一个命令可以请求将数据写入到特定物理页,或者,另一个命令可以请求擦除特定物理块。
第一存储器142可以包括第一存储设备和第二存储设备。第一存储设备可以例如是随机存取存储器(Random Access Memory,RAM)、快闪存储器(Flash Memory)等。第二存储设备可以是RAM,只读存储器(Read-Only Memory,ROM)或者硬盘(Hard Disk Drive,HDD)或固态硬盘(Solid-State Drive,SSD)。第一存储设备存取数据的速度比第二存储设备快,但是第二存储设备通常具有比第一存储设备具有更大的存储容量。
网络适配器143,还被称为网络接口控制器、网络接口卡或者局域网(Local Area Network,LAN)适配器。每块网络适配器143都有一个唯一的MAC地址,是网络适配器143厂家在生产时烧入只读存储芯片中的。存储节点140通过网络适配器143连接到网络。
网络适配卡143包括第二处理器、第二存储器以及收发器。第二处理器与第一处理器相类似,但是,第二处理器的性能要求可以低于第一处理器的性能要求。在一具体的实施例中,第二处理器可以是ARM处理器等等。第二存储器也可以是快闪存储器、HDD或者SDD,第二存储器的存储容量可以小于第一存储器的存储容量。收发器可以用于接收和发送报文,并将接收到的报文上传给第二处理器进行处理。网络适配卡143还可以包括多个端口,端口可以是粗缆接口、细缆接口和双绞线接口三种接口类型中的任意一种或者多种。
存储节点140之间的后端存储网络的的实现方式可以包括交换机组网以及免交换机组网:
如图3所示,交换机组网的一种实现方式可以是:存储节点1的端口1连接到交换机1的端口1,存储节点2的端口1连接到交换机的端口2,存储节点3的端口1连接到交换机1的端口3。存储节点1的端口2连接到交换机2的端口1,存储节点2的端口2连接到交换机的端口2,存储节点3的端口2连接到交换机2的端口3。也就是说,交换机1的不同端口分别连接存储节点1、存储节点2以及存储节点3的一个端口,交换机2的不同端口分别连接存储节点1、存储节点2以及存储节点3的另一个端口。其中,图3所示的交换机组网仅仅是一个具体的示例,不应构成具体限定。
交换机组网的特点为:存储节点之间的数据通信都必须经过交换机(也可以称为网桥),由交换机实现不同存储节点之间的数据通信。如图3所示,当存储节点1需要与存储节点2进行数据通信时,存储节点1可以通过交换机1将数据传输给存储节点2,当存储节点2需要与存储节点3进行数据通信时,存储节点2可以通过交换机1将数据传输给存储节点3,当存储节点1需要与存储节点3进行数据通信时,存储节点1可以通过交换机1将数据传输给存储节点3。为了保证数据传输的可靠性,图3所示的交换机组网方式还设置了交换机1的冗余备份交换机,即,交换机2,以确保在交换机1出现了故障的时候,交换机2可以接替交换机1进行工作。
如图4所示,免交换机组网的一实现方式可以是:存储节点A的端口1连接存储节点 C的端口1,存储节点A的端口2连接存储节点D的端口1,存储节点A的端口3连接存储节点E的端口1,存储节点A的端口4连接存储节点F的端口1,存储节点B的端口1连接存储节点C的端口2,存储节点B的端口2连接存储节点D的端口2,存储节点B的端口3连接存储节点E的端口2,存储节点B的端口4连接存储节点F的端口2,存储节点C的端口3连接存储节点G的端口1,存储节点C的端口4连接存储节点H的端口1,存储节点D的端口3连接存储节点G的端口2,存储节点D的端口4连接存储节点H的端口2,存储节点E的端口3连接存储节点G的端口3,存储节点E的端口4连接存储节点H的端口3,存储节点F的端口3连接存储节点G的端口4,存储节点F的端口4连接存储节点H的端口4。其中,图4所示的交换机组网仅仅是一个具体的示例,不应构成具体限定。
免交换机组网的组网特点为:存储节点之间的数据通信不需要经过交换机,存储节点之间通过拓扑网络相互进行数据通信。如图4所示,当存储节点A需要与存储节点F进行数据通信时,存储节点A可以将数据传直接输给存储节点F;当存储节点A需要将数据传输给存储节点G时,存储节点A可以将数据传输给存储节点D,再由存储节点D传输给存储节点G;当存储节点A需要与存储节点H进行数据通信时,存储节点A可以将数据传输给存储节点C,再由存储节点C传输给存储节点H。为了保证数据传输的可靠性,图4所示的免交换机组网方式的拓扑网络需要保证任意两个存储节点之间至少存在两条数据通路,以确保在其中一条数据通路出现故障时,还可以通过另一条通路进行数据传输。例如,存储节点A和存储节点F之间至少存在两条数据通路:存储节点A->存储节点F的数据通路,存储节点A->存储节点D->存储节点G->存储节点F的数据通路。存储节点A和存储节点G之间至少存在两条数据通路:存储节点A->存储节点D->存储节点G的数据通路,存储节点A->存储节点F->存储节点G的数据通路。存储节点A和存储节点H之间至少存在两条数据通路:存储节点A->存储节点C->存储节点H的数据通路,存储节点A->存储节点F->存储节点H的数据通路。可以理解,其他的存储节点之间的链路,例如,存储节点B至存储节点C,存储节点B至存储节点D,存储节点B至存储节点E,存储节点B至存储节点F的链路也可以以此类推。
与交换机组网相比,免交换机组网可以不需要交换机进行组网,能有效降低组网所需要的成本,适用于企业级数据中心。但是,免交换组网方式存在转发表项配置复杂以及流量环路问题,极大地影响后端存储网络的性能。
为了便于理解,下面将对免交换组网方式存在的转发表项配置复杂以及流量环路问题进行进一步的介绍。
一、转发表项配置复杂问题。
在图4中,以存储节点A(源节点)向存储节点H(目的节点)发送数据为例,具体的步骤包括:
(1)预先为存储节点A配置第一转发表项,其中,第一转发表项为将目的MAC地址为存储节点H的MAC地址的数据报文从存储节点A的端口2发送出去。
(2)预先为存储节点D配置第二转发表项,其中,第二转发表项为将目的MAC地址 为存储节点H的MAC地址的数据报文从存储节点D的端口4发送出去。
(3)存储节点A生成第一数据报文,并根据第一转发表项将第一数据报文通过存储节点A的端口2发送出去,其中,第一数据报文携带的目的MAC地址为存储节点H的MAC地址的。
(4)存储节点D通过存储节点D的端口1接收到存储节点A发送的第一数据报文,根据第一数据报文中携带的目的MAC地址确定存储节点D不是目的节点,并根据第二转发表项将第一数据报文通过存储节点D的端口4发送出去。
(5)存储节点H通过存储节点H的端口2接收到存储节点D发送的第一数据报文,根据第一数据报文中的目的MAC地址确定存储节点H为目的节点。
可以理解,免交换机组网中包含了多个存储节点,并且,要保证每两个存储节点之间都必须能够进行数据传输,因此,需要为每个存储节点都要配置多个转发表项,如果通过手动的方式配置转发表项,将会导致工作量十分巨大。
二、流量环路问题。
图4所示的免交换机组网的拓扑图可以表示为图5所示的免交换机组网的逻辑组网图。要将图4所示的拓扑图转换为图5所示的逻辑组网图,需要遵循这样的原则:当图4中的存储节点和存储节点之间存在直接连接关系时,图5中对应的存储节点和存储节点之间通过实线连接来进行表示。图4的免交换机组网的拓扑图和图5的逻辑组网图之间的对应关系如下:
图4中存储节点A和存储节点C之间存在直接连接关系,可以对应表示为,图5中立方体的左面的存储节点A至存储节点C之间的边;
图4中存储节点A和存储节点D之间存在直接连接关系,可以对应表示为,图5中立方体的左面的存储节点A至存储节点D之间的斜对角线;
图4中存储节点A和存储节点E之间存在直接连接关系,可以对应表示为,图5中立方体的上面的存储节点A至存储节点E之间的边;
图4中存储节点A和存储节点F之间存在直接连接关系,可以对应表示为,图5中立方体的上面的存储节点A至存储节点F之间的斜对角线;
图4中存储节点B和存储节点C之间存在直接连接关系,可以对应表示为,图5中立方体的左面的存储节点B至存储节点C之间的斜对角线;
图4中存储节点B和存储节点D之间存在直接连接关系,可以对应表示为,图5中立方体的左面的存储节点B至存储节点D之间的边;
图4中存储节点B和存储节点E之间存在直接连接关系,可以对应表示为,图5中立方体的上面的存储节点B至存储节点E之间的斜对角线;
图4中存储节点B和存储节点F之间存在直接连接关系,可以对应表示为,图5中立方体的上面的存储节点B至存储节点F之间的边;
图4中存储节点C和存储节点G之间存在直接连接关系,可以对应表示为,图5中立方体的前面的存储节点C至存储节点G之间的边;
图4中存储节点C和存储节点H之间存在直接连接关系,可以对应表示为,图5中立 方体的下面的存储节点C至存储节点H之间的斜对角线;
图4中存储节点D和存储节点G之间存在直接连接关系,可以对应表示为,图5中立方体的下面的存储节点D至存储节点G之间的斜对角线;
图4中存储节点D和存储节点H之间存在直接连接关系,可以对应表示为,图5中立方体的后面的存储节点D至存储节点H之间的边;
图4中存储节点E和存储节点G之间存在直接连接关系,可以对应表示为,图5中立方体的前面的存储节点E至存储节点G之间的边;
图4中存储节点E和存储节点H之间存在直接连接关系,可以对应表示为,图5中立方体的右面的存储节点E至存储节点H之间的斜对角线;
图4中存储节点F和存储节点G之间存在直接连接关系,可以对应表示为,图5中立方体的右面的存储节点F至存储节点G之间的斜对角线;
图4中存储节点F和存储节点H之间存在直接连接关系,可以对应表示为,图5中立方体的后面的存储节点F至存储节点H之间的边。
可以理解,尽管图5中的存储节点A和存储节点B之间、存储节点C和存储节点D之间、存储节点E和存储节点F之间以及存储节点G和存储节点H之间都通过虚线进行连接,但是,实际上,存储节点A和存储节点B之间、存储节点C和存储节点D之间、存储节点E和存储节点F之间以及存储节点G和存储节点H之间不存在直接的连接关系。
从图5所示的逻辑组网图可以看出,存储节点B、存储节点E、存储节点G以及存储节点D之间可能会构成流量环路。举个例子说明,假设存储节点A在免交换机组网中发送广播报文以查找存储节点H的MAC地址时,如果存储节点D接收到存储节点A的广播报文之后,将广播报文发送给存储节点B,如果存储节点B接收到存储节点D的广播报文之后,将广播报文发送给存储节点E(如图5中箭头所示),存储节点E接收到存储节点B转发的广播报文之后,将广播报文发送给存储节点G,存储节点G接收到存储节点E转发的广播报文之后,将广播报文发送给存储节点D,存储节点D接收到存储节点G转发的广播报文之后,将广播报文发送给存储节点B,则存储节点B接收到存储节点D转发的广播报文之后,又会将广播报文发送给存储节点E,…。因此,广播报文会一直在流量环路中进行死循环,占据免交换机组网的大量资源,从而极大地影响免交换机组网的性能。应理解,上述流量环路仅仅是一个举例,在实际应用中,还可能出现其他的流量环路,例如,存储节点A、存储节点F、存储节点H以及存储节点G之间也可能会出现流量环路,此处不作具体限定。
为了解决上述的转发表项配置复杂问题,本申请的免交换机组网中在网络适配卡中实现了路径自学习机制,能够有效减少手工配置转发表项的复杂性,提高免交换机组网的性能。
以在图4所示的存储节点A(源节点)向存储节点H(目的节点)发送数据报文为例,路径自学习机制具体可以这样实现:
第一阶段:源节点向目的节点发送广播报文阶段。
(1)存储节点A中的第一处理器生成广播报文,并将广播报文发送给存储节点A中的第二处理器。存储节点A中的第二处理器指示存储节点A中的收发器通过存储节点A的指定端口(例如,端口2)发送广播报文,其中,广播报文携带源互联网协议(Internet Protocol,IP)地址地址(存储节点A的IP地址)、源MAC地址(存储节点A的MAC地址)以及目的IP地址(存储节点H的IP地址)。存储节点H的IP地址可以是接收用户自行输入的IP地址等,此处不作具体限定。
(2)存储节点D的收发器通过存储节点D的端口1接收存储节点A发送的广播报文,并将广播报文发送给存储节点D的第二处理器。存储节点D的第二处理器用于对数据链路层的MAC地址进行处理,存储节点D的第一处理器用于对网络层的IP地址进行处理,因此,在存储节点D的第二处理器在所述广播报文中查找不到目的MAC地址的情况下,存储节点D的第二处理器将广播报文发送给存储节点D的第一处理器。存储节点D的第一处理器从广播报文中获取目的IP地址(存储节点H的IP地址),将目的IP地址(存储节点H的IP地址)和存储节点D的IP地址进行比较,确定存储节点D不是目的节点,并将比较结果发送给存储节点D的第二处理器。然后,存储节点D的第二处理器将源MAC地址(存储节点A的MAC地址)和存储节点D的端口1作为表项关联存储在存储节点D的第二存储器中,并且,存储节点D的收发器向除了存储节点D的端口1之外的存储节点D的其他所有端口发送广播报文。
(3)存储节点H的收发器通过存储节点H的端口2接收存储节点D发送的广播报文,并将广播报文发送给存储节点H的第二处理器。存储节点H的第二处理器用于对数据链路层的MAC地址进行处理,存储节点H的第一处理器用于对网络层的IP地址进行处理,因此,在存储节点H的第二处理器在所述广播报文中查找不到目的MAC地址的情况下,存储节点H的第二处理器将广播报文发送给存储节点H的第一处理器。存储节点H的第一处理器从广播报文中获取存储节点目的IP地址(存储节点H的IP地址),并确定存储节点H是目的节点。存储节点H的第一处理器将源MAC地址(存储节点A的MAC地址)和源IP地址(存储节点A的IP地址)关联关系存储在存储节点H的第一存储器中。
可以理解,在存储节点A向存储节点H发送广播报文的过程中,存储节点A和存储节点H分别是源节点和目标节点,不需要将源MAC地址和端口的对应关系作为表项分别存储在存储节点A和存储节点H的第二存储器中,存储节点D是中间的转发节点,需要将源MAC地址和端口的对应关系作为表项存储在存储节点D的第二存储器中。
第二阶段:目的节点向源节点返回响应报文阶段。
(4)在存储节点H需要向存储节点A返回响应报文的情况下,存储节点H的第一处理器查询第一存储器以获得存储节点A的IP地址以及存储节点A的MAC地址,并生成所述广播报文的响应报文,并将响应报文发送给存储节点H的第二处理器,其中,所述响应报文包括目的MAC地址(存储节点A的MAC地址)以及源MAC地址(存储节点H的MAC地址)。
(5)存储节点H的第二处理器根据预先配置路由配置策略指示存储节点H的第二处理器将响应报文通过存储节点H的收发器的端口2发送出去。
(6)存储节点D的收发器通过存储节点D的端口4接收存储节点H发送的响应报文, 并将响应报文发送给存储节点D的第二处理器。存储节点D的第二处理器用于对数据链路层的MAC地址进行处理,存储节点D的第一处理器用于对网络层的IP地址进行处理,因此,在存储节点D的第二处理器在所述响应报文中查找到目的MAC地址的情况下,存储节点D的第二处理器从响应报文中获取目的MAC地址(存储节点A的MAC地址),将目的MAC地址(存储节点A的MAC地址)和存储节点D的MAC地址进行比较,确定需要将响应报文转发出去,然后,存储节点D的第二处理器从存储节点D的第二存储器查找到表项,从而确定目的MAC地址(存储节点A的MAC地址)和存储节点D的端口1的对应关系,并且,存储节点D的收发器根据上述对应关系,将响应报文通过存储节点D的端口1发送出去。存储节点D的第二处理器将源MAC地址(存储节点H的MAC地址)和存储节点D的端口4的对应关系作为表项存储在存储节点D的第二存储器中。
(7)存储节点A的收发器通过存储节点A的端口2接收存储节点D发送的响应报文,并将响应报文发送给存储节点A的第二处理器。存储节点A的第二处理器用于对数据链路层的MAC地址进行处理,存储节点A的第一处理器用于对网络层的IP地址进行处理,因此,在存储节点A的第二处理器在所述响应报文中查找到目的MAC地址的情况下,存储节点A的第二处理器从响应报文中获取得到目的MAC地址(存储节点A的MAC地址),将目的MAC地址和存储节点A的MAC地址进行比较,确定不需要再将响应报文进行转发,于是,存储节点的A的第二处理器将响应报文上报给存储节点A的第一处理器,存储节点A的第一处理器从响应报文中获取得到源MAC地址(存储节点H的MAC地址),并将源MAC地址(存储节点H的MAC地址)和存储节点H的IP地址的对应关系作为表项存储在存储节点A的第一存储器中。
可以理解,在存储节点H向存储节点A返回响应报文的过程中,存储节点H和存储节点A分别是源节点和目标节点,不需要将目的MAC地址和端口的对应关系作为表项分别存储在存储节点H和存储节点A的第二存储器中,存储节点D是中间的转发节点,需要将目的MAC地址和端口的对应关系作为表项存储在存储节点D的第二存储器中。
第三阶段:源节点向目的节点发送数据报文阶段。
(8)在存储节点A需要向存储节点H发送数据报文的情况下,存储节点A的第一处理器查询第一存储器以获得目的IP地址(存储节点H的IP地址)以及目的MAC地址(存储节点H的MAC地址),并生成数据报文,其中,数据报文携带了目的MAC地址(存储节点H的MAC地址)。
(9)存储节点A的第一处理器根据预先配置路由配置策略指示存储节点A的第二处理器将数据报文从存储节点A的收发器的端口2发送出去。
(10)存储节点D的收发器通过存储节点D的端口1接收存储节点A发送的数据报文,并将数据报文发送给存储节点D的第二处理器。存储节点D的第二处理器用于对数据链路层的MAC地址进行处理,存储节点D的第一处理器用于对网络层的IP地址进行处理,因此,在存储节点D的第二处理器从所述数据报文中查询得到目的MAC地址(存储节点H的MAC地址)的情况下,存储节点D的第二处理器从数据报文中获取得到目的MAC地址(存储节点H的MAC地址),并将目的MAC地址(存储节点H的MAC地址)和存储节点D的MAC地址进行比较,确定存储节点D不是目的节点。于是,存储节点D的第二 处理器从存储节点D的第二存储器查找到表项,从而确定目的MAC地址(存储节点H的MAC地址)和存储节点D的端口4的对应关系。存储节点D的收发器将数据报文通过存储节点D的端口4发送出去。
(11)存储节点H的收发器通过存储节点H的端口2接收存储节点D发送的数据报文,并将数据报文发送给存储节点H的第二处理器。存储节点H的第二处理器用于对数据链路层的MAC地址进行处理,存储节点H的第一处理器用于对网络层的IP地址进行处理,因此,在存储节点H的第二处理器从所述数据报文中查询得到目的MAC地址(存储节点H的MAC地址)的情况下,存储节点H的第二处理器根据数据报文携带的目的MAC地址(存储节点H的MAC地址)确定存储节点H即为目的节点,并将数据报文上报给存储节点H的第一处理器。
在第一阶段存储节点A向存储节点H发送广播报文的过程中,存储节点D学习到了如何将广播报文的响应报文返回给存储节点A。在第二阶段存储节点H向存储节点A返回响应报文的过程中,存储节点D学习到了如何将数据报文发送给存储节点H。经过上述两个学习过程,存储节点A就可以在第三阶段实现将数据报文经过存储节点D发送给存储节点H。
为了解决上述免交换机组网会出现流量环路的问题,本申请的免交换机组网在路径自学习机制的基础上结合了流量环路避免机制,能够有效地避免流量环路的形成,提高免交换机组网的性能。
根据在路径自学习机制的不同阶段结合流量环路避免机制,在路径自学习机制上结合流量环路避免机制至少可以包括三种不同的实现方式:
在第一种方式中,在第一阶段(源节点向目的节点发送广播报文的阶段)结合流量环路避免机制。
在图4中,以源节点为存储节点A、目的节点为存储节点H以及转发阈值为2为例,在源节点向目的节点发送广播报文的过程中结合流量环路避免机制可以通过如下方式实现:
第一阶段:源节点向目的节点发送广播报文阶段。
(1)存储节点A中的第一处理器生成广播报文,并将广播报文发送给存储节点A中的第二处理器。存储节点A中的第二处理器指示存储节点A中的收发器通过存储节点A的指定端口(例如,端口2)发送广播报文,其中,广播报文携带源IP地址(存储节点A的IP地址)、源MAC地址(存储节点A的MAC地址)、目的IP地址(存储节点H的IP地址)以及转发次数,转发次数的初始值为0。存储节点H的IP地址可以是用户自行输入的,此处不作具体限定。此外,所述广播报文还可以携带广播标识,所述广播标识用于表示是否需要判断所述广播报文的转发次数是否需要大于转发阈值。例如,在所述广播标识为1的情况下,需要判断所述广播报文的转发次数是否需要大于转发阈值,在所述广播标识为0的情况下,不需要判断所述广播报文的转发次数是否需要大于转发阈值。
(2)存储节点D的收发器通过存储节点D的端口1接收存储节点A发送的广播报文, 并将广播报文发送给存储节点D的第二处理器。在存储节点D的第二处理器在确定所述广播报文中的广播标识为1的情况下,存储节点D的第二处理器将广播报文携带的转发次数修改为1。存储节点D的第二处理器用于对数据链路层的MAC地址进行处理,存储节点D的第一处理器用于对网络层的IP地址进行处理,因此,存储节点D的第二处理器在所述广播报文中查找不到目的MAC地址(存储节点H的MAC地址)的情况下,存储节点D的第二处理器将广播报文发送给存储节点D的第一处理器。存储节点D的第一处理器从广播报文中获取目的IP地址(存储节点H的IP地址),将目的IP地址(存储节点H的IP地址)和存储节点D的IP地址进行比较,确定存储节点D不是目的节点,并将判断结果发送给存储节点D的第二处理器。然后,存储节点D的第二处理器判断转发次数没有大于转发阈值2,于是,存储节点D的第二处理器将源MAC地址(存储节点A的MAC地址)和存储节点D的端口1作为表项关联存储在存储节点D的第二存储器中。存储节点D的收发器通过除了存储节点D的端口1之外的存储节点D的其他所有端口发送广播报文。
(3)存储节点H的收发器通过存储节点H的端口2接收存储节点D发送的广播报文,并将广播报文发送给存储节点H的第二处理器。在存储节点H的第二处理器确定所述广播报文中的广播标识为1的情况下,存储节点H的第二处理器将将广播报文携带的转发次数修改为2。存储节点H的第二处理器用于对数据链路层的MAC地址进行处理,存储节点H的第一处理器用于对网络层的IP地址进行处理,因此,在存储节点H的第二处理器在所述广播报文中查找不到目的MAC地址(存储节点H的MAC地址)的情况下,存储节点H的第二处理器将广播报文发送给存储节点H的第一处理器。存储节点H的第一处理器从广播报文中获取目的IP地址(存储节点H的IP地址),根据目的IP地址(存储节点H的IP地址)确定存储节点H是目的节点,于是,存储节点H将源MAC地址(存储节点A的MAC地址)和源IP地址(存储节点A的IP地址)的对应关系作为表项存储在第一存储器中。
第二阶段:目的节点向源节点返回响应报文阶段。
(4)在存储节点H需要向存储节点A返回响应报文的情况下,存储节点H的第一处理器查询第一存储器以获得目的IP地址(存储节点A的IP地址)以及目的MAC地址(存储节点A的MAC地址),并生成所述广播报文的响应报文,并将响应报文发送给存储节点H的第二处理器,其中,所述响应报文包括目的MAC地址(存储节点A的MAC地址)以及源MAC地址(存储节点H的MAC地址)。此外,所述响应报文还可以携带响应标识,所述响应标识用于表示是否需要判断所述响应报文的转发次数是否需要大于转发阈值。例如,在所述响应标识为1的情况下,需要判断所述响应报文的转发次数是否需要大于转发阈值,在所述响应标识为0的情况下,不需要判断所述响应报文的转发次数是否需要大于转发阈值。
(5)存储节点H的第二处理器根据预先配置路由配置策略指示存储节点H的第二处理器将响应报文通过存储节点H的收发器的端口2发送出去。
(6)存储节点D的收发器通过存储节点D的端口4接收存储节点H发送的响应报文,并将响应报文发送给存储节点D的第二处理器。在存储节点D的第二处理器确定所述响应报文中的响应标识为0的情况下,存储节点D的第二处理器用于对数据链路层的MAC地 址进行处理,存储节点D的第一处理器用于对网络层的IP地址进行处理,因此,在存储节点D的第二处理器在所述响应报文中查找到目的MAC地址(存储节点A的MAC地址)的情况下,第二处理器可以对数据链路层的目的MAC地址进行处理,存储节点D的第二处理器从响应报文中获取目的MAC地址(存储节点A的MAC地址),将目的MAC地址(存储节点A的MAC地址)和存储节点D的MAC地址进行比较,确定需要将响应报文转发出去,然后,存储节点D的第二处理器从存储节点D的第二存储器查找到表项,从而确定目的MAC地址(存储节点A的MAC地址)和存储节点D的端口1的对应关系,并且,存储节点D的第二处理器根据上述对应关系,通过收发器将响应报文通过存储节点D的端口1发送出去。存储节点D的第二处理器将源MAC地址(存储节点H的MAC地址)和存储节点D的端口4的对应关系作为表项存储在存储节点D的第二存储器中。
(7)存储节点A的收发器通过存储节点A的端口2接收存储节点D发送的响应报文,并将响应报文发送给存储节点A的第二处理器。在存储节点A的第二处理器确定所述响应报文中的响应标识为0的情况下,存储节点A的第二处理器用于对数据链路层的MAC地址进行处理,存储节点A的第一处理器用于对网络层的IP地址进行处理,因此,在存储节点A的第二处理器在所述响应报文中查找到目的MAC地址(存储节点A的MAC地址)的情况下,存储节点A的第二处理器从响应报文中获取得到目的MAC地址(存储节点A的MAC地址),根据目的MAC地址(存储节点A的MAC地址),确定不需要再将响应报文进行转发,于是,存储节点的A的第二处理器将响应报文上报给存储节点A的第一处理器,存储节点A的第一处理器从响应报文中获取得到(存储节点H的MAC地址),并将(存储节点H的MAC地址)和存储节点H的IP地址的对应关系作为表项存储在存储节点A的第一存储器中。
第三阶段:源节点向目的节点发送数据报文阶段。
(8)在存储节点A需要向存储节点H发送数据报文的情况下,存储节点A的第一处理器查询目的IP地址(存储节点H的IP地址)以及目的MAC地址(存储节点H的MAC地址),并生成数据报文,其中,数据报文携带了目的MAC地址(存储节点H的MAC地址)。此外,所述数据报文还可以携带数据标识,所述数据标识用于表示是否需要判断所述数据报文的转发次数是否需要大于转发阈值。例如,在所述数据标识为1的情况下,需要判断所述数据报文的转发次数是否需要大于转发阈值,在所述数据标识为0的情况下,不需要判断所述数据报文的转发次数是否需要大于转发阈值。
(9)存储节点A的第一处理器根据预先配置路由配置策略指示存储节点A的第二处理器将数据报文从存储节点A的收发器的端口2发送出去。
(10)存储节点D的收发器通过存储节点D的端口1接收存储节点A发送的数据报文,并将数据报文发送给存储节点D的第二处理器。在存储节点D的第二处理器确定所述数据报文中的数据标识为0的情况下,存储节点D的第二处理器用于对数据链路层的MAC地址进行处理,存储节点D的第一处理器用于对网络层的IP地址进行处理,因此,在存储节点D的第二处理器从所述数据报文中查询得到目的MAC地址(存储节点H的MAC地址)的情况下,在存储节点D的第二处理器在所述数据报文中查找到目的MAC地址(存储节点H的MAC地址)的情况下,存储节点D的第二处理器从数据报文中获取得到目的MAC 地址(存储节点H的MAC地址),并将目的MAC地址(存储节点H的MAC地址)和存储节点D的MAC地址进行比较,确定存储节点D不是目的节点。于是,存储节点D的第二处理器从存储节点D的第二存储器查找到表项,从而确定目的MAC地址(存储节点H的MAC地址)和存储节点D的端口4的对应关系。存储节点D的收发器将数据报文通过存储节点D的端口4发送出去。
(11)存储节点H的收发器通过存储节点H的端口2接收存储节点D发送的数据报文,并将数据报文发送给存储节点H的第二处理器。在存储节点H的第二处理器确定所述数据报文中的数据标识为0的情况下,存储节点H的第二处理器用于对数据链路层的MAC地址进行处理,存储节点H的第一处理器用于对网络层的IP地址进行处理,因此,在存储节点H的第二处理器从所述数据报文中查询得到目的MAC地址(存储节点H的MAC地址)的情况下,在存储节点H的第二处理器在所述数据报文中查找到目的MAC地址(存储节点H的MAC地址)的情况下,存储节点H的第二处理器根据数据报文携带的目的MAC地址(存储节点H的MAC地址)确定存储节点H即为目的节点,并将数据报文上报给存储节点H的第一处理器。
在本实施例中,存储节点在检测到广播报文携带的广播标识为1(本实施例中响应报文携带的响应标识为0,数据报文携带的数据标识为0)的情况下,存储节点在第一阶段中确定广播报文的转发次数是否大于转发阈值,并在没有大于转发阈值的情况下,将广播报文发送给下一个存储节点。
在第二种方式中,在第二阶段(目的节点向源节点发送响应报文的阶段)结合流量环路避免机制。
在图4中,以源节点为存储节点A、目的节点为存储节点H以及转发阈值为2为例,在源节点向目的节点发送广播报文的过程中结合流量环路避免机制可以是这样实现:
第一阶段:源节点向目的节点发送广播报文阶段。
(1)存储节点A中的第一处理器生成广播报文,并将广播报文发送给存储节点A中的第二处理器。存储节点A中的第二处理器指示存储节点A中的收发器通过存储节点A的指定端口(例如,端口2)发送广播报文,其中,广播报文携带源MAC地址(存储节点A的MAC地址)以及目的IP地址(存储节点H的IP地址)。存储节点H的IP地址可以是用户自行输入的,此处不作具体限定。
(2)存储节点D的收发器通过存储节点D的端口1接收存储节点A发送的广播报文,并将广播报文发送给存储节点D的第二处理器。在存储节点D的第二处理器在确定所述广播报文中的广播标识为0的情况下,存储节点D的第二处理器用于对数据链路层的MAC地址进行处理,存储节点D的第一处理器用于对网络层的IP地址进行处理,因此,在存储节点D的第二处理器在所述广播报文中查找不到目的MAC地址(存储节点H的MAC地址)的情况下,存储节点D的第二处理器将广播报文发送给存储节点D的第一处理器。存储节点D的第一处理器从广播报文中获取目的IP地址(存储节点H的IP地址),将目的IP地址(存储节点H的IP地址)和存储节点D的IP地址进行比较,确定存储节点D不是目的节点,并将比较结果发送给存储节点D的第二处理器。然后,存储节点D的第二处理 器将源MAC地址(存储节点A的MAC地址)和存储节点D的端口1作为表项关联存储在存储节点D的第二存储器中,并且,存储节点D的收发器向除了存储节点D的端口1之外的存储节点D的其他所有端口发送广播报文。
(3)存储节点H的收发器通过存储节点H的端口2接收存储节点D发送的广播报文,并将广播报文发送给存储节点H的第二处理器。在存储节点H的第二处理器确定所述广播报文中的广播标识为0的情况下,存储节点H的第二处理器用于对数据链路层的MAC地址进行处理,存储节点H的第一处理器用于对网络层的IP地址进行处理,因此,在存储节点H的第二处理器在所述广播报文中查找不到目的MAC地址(存储节点H的MAC地址)的情况下,存储节点H的第二处理器将广播报文发送给存储节点H的第一处理器。存储节点H的第一处理器从广播报文中获取目的IP地址(存储节点H的IP地址),根据目的IP地址(存储节点H的IP地址),确定存储节点H是目的节点。然后,存储节点H将源MAC地址(存储节点A的MAC地址)和源IP地址(存储节点A的IP地址的对应关系)的关联关系在第一存储器中。
可以理解,在存储节点A向存储节点H发送广播报文的过程中,存储节点A和存储节点H分别是源节点和目标节点,不需要将源MAC地址和端口的对应关系作为表项分别存储在存储节点A和存储节点H的第二存储器中,存储节点D是中间的转发节点,需要将源MAC地址和端口的对应关系作为表项存储在存储节点D的第二存储器中。
第二阶段:目的节点向源节点返回响应报文阶段。
(4)在存储节点H需要向存储节点A返回响应报文的情况下,存储节点H的第一处理器查询第一存储器以获得存储节点A的IP地址以及存储节点A的MAC地址,并生成所述广播报文的响应报文,并将响应报文发送给存储节点H的第二处理器,其中,所述响应报文包括目的MAC地址(存储节点A的MAC地址)以及源MAC地址(存储节点H的MAC地址)以及转发次数,转发次数的初始值为零。
(5)存储节点H的第二处理器根据预先配置路由配置策略指示存储节点H的第二处理器将响应报文通过存储节点H的收发器的端口2发送出去。
(6)存储节点D的收发器通过存储节点D的端口4接收存储节点H发送的响应报文,并将响应报文发送给存储节点D的第二处理器。在存储节点D的第二处理器确定所述响应报文中的响应标识为1的情况下,存储节点D的第二处理器将响应报文中的转发次数设置为1。存储节点D的第二处理器用于对数据链路层的MAC地址进行处理,存储节点D的第一处理器用于对网络层的IP地址进行处理,因此,在存储节点D的第二处理器在所述响应报文中查找到目的MAC地址(存储节点A的MAC地址)的情况下,存储节点D的第二处理器从响应报文中获取目的MAC地址(存储节点A的MAC地址),将目的MAC地址(存储节点A的MAC地址)和存储节点D的MAC地址进行比较,确定需要将响应报文转发出去。然后,存储节点D的第二处理器确定转发次数不大于转发阈值,于是,存储节点D的第二处理器从存储节点D的第二存储器查找到表项,从而确定目的MAC地址(存储节点A的MAC地址)和存储节点D的端口1的对应关系,并且,存储节点D的第二处理器根据上述对应关系,通过收发器将响应报文通过存储节点D的端口1发送出去。存储节点D的第二处理器将源MAC地址(存储节点H的MAC地址)和存储节点D的端口4 的对应关系作为表项存储在存储节点D的第二存储器中。
(7)存储节点A的收发器通过存储节点A的端口2接收存储节点D发送的响应报文,并将响应报文发送给存储节点A的第二处理器。在存储节点A的第二处理器确定所述响应报文中的响应标识为1的情况下,存储节点A的第二处理器将响应报文中的转发次数设置为2。存储节点A的第二处理器用于对数据链路层的MAC地址进行处理,存储节点A的第一处理器用于对网络层的IP地址进行处理,因此,在存储节点A的第二处理器在所述响应报文中查找到目的MAC地址(存储节点A的MAC地址)的情况下,存储节点A的第二处理器从响应报文中获取得到目的MAC地址(存储节点A的MAC地址),根据目的MAC地址(存储节点A的MAC地址),确定不需要再将响应报文进行转发,于是,存储节点的A的第二处理器将响应报文上报给存储节点A的第一处理器,存储节点A的第一处理器确定转发次数不大于转发阈值,存储节点A的第一处理器从响应报文中获取得到源MAC地址(存储节点H的MAC地址),并将源MAC地址(存储节点H的MAC地址)和存储节点H的IP地址的对应关系作为表项存储在存储节点A的第一存储器中。
可以理解,在存储节点H向存储节点A返回响应报文的过程中,存储节点H和存储节点A分别是源节点和目标节点,不需要将目的MAC地址和端口的对应关系作为表项分别存储在存储节点H和存储节点A的第二存储器中,存储节点D是中间的转发节点,需要将目的MAC地址和端口的对应关系作为表项存储在存储节点D的第二存储器中。
第三阶段:源节点向目的节点发送数据报文阶段。
(8)在存储节点A需要向存储节点H发送数据报文的情况下,存储节点A的第一处理器查询第一存储器以获得目的IP地址(存储节点H的IP地址)以及目的MAC地址(存储节点H的MAC地址),并生成数据报文,其中,数据报文携带了目的MAC地址(存储节点H的MAC地址)。
(9)存储节点A的第一处理器根据预先配置路由配置策略指示存储节点A的第二处理器将数据报文从存储节点A的收发器的端口2发送出去。
(10)存储节点D的收发器通过存储节点D的端口1接收存储节点A发送的数据报文,并将数据报文发送给存储节点D的第二处理器。在存储节点D的第二处理器确定所述数据报文中的数据标识为0的情况下,存储节点D的第二处理器用于对数据链路层的MAC地址进行处理,存储节点D的第一处理器用于对网络层的IP地址进行处理,因此,在存储节点D的第二处理器在所述数据报文中查找到目的MAC地址(存储节点H的MAC地址)的情况下,存储节点D的第二处理器从数据报文中获取得到目的MAC地址(存储节点H的MAC地址),并将目的MAC地址(存储节点H的MAC地址)和存储节点D的MAC地址进行比较,确定存储节点D不是目的节点。于是,存储节点D的第二处理器从存储节点D的第二存储器查找到表项,从而确定目的MAC地址(存储节点H的MAC地址)和存储节点D的端口4的对应关系。存储节点D的收发器将数据报文通过存储节点D的端口4发送出去。
(11)存储节点H的收发器通过存储节点H的端口2接收存储节点D发送的数据报文,并将数据报文发送给存储节点H的第二处理器。在存储节点H的第二处理器确定所述数据报文中的数据标识为0的情况下,存储节点H的第二处理器用于对数据链路层的MAC地 址进行处理,存储节点H的第一处理器用于对网络层的IP地址进行处理,因此,在存储节点H的第二处理器在所述数据报文中查找到目的MAC地址(存储节点H的MAC地址)的情况下,存储节点H的第二处理器根据数据报文携带的目的MAC地址(存储节点H的MAC地址)确定存储节点H即为目的节点,并将数据报文上报给存储节点H的第一处理器。
在本实施例中,存储节点在检测到响应报文携带的响应标识为1(本实施例中广播报文携带的广播标识为0,数据报文携带的数据标识为0)的情况下,存储节点在第二阶段中确定响应报文的转发次数是否大于转发阈值,并在没有大于转发阈值的情况下,将响应报文发送给下一个存储节点。
在第三种方式中,在第三阶段(源节点向目的节点发送数据报文的阶段)结合流量环路避免机制。
在图4中,以源节点为存储节点A、目的节点为存储节点H以及转发阈值为2为例,此时,源MAC地址(即存储节点A的MAC地址)对应于权利要求中的第一地址信息,目的MAC地址(即存储节点H的MAC地址)对应于权利要求中的第二地址信息,在源节点向目的节点发送数据报文的阶段中结合流量环路避免机制可以通过如下方式实现:
第一阶段:源节点向目的节点发送广播报文阶段。
(1)存储节点A中的第一处理器生成广播报文,并将广播报文发送给存储节点A中的第二处理器。存储节点A中的第二处理器指示存储节点A中的收发器通过存储节点A的指定端口(例如,端口2)发送广播报文,其中,广播报文携带源IP地址(存储节点A的IP地址)、源MAC地址(存储节点A的MAC地址)以及目的IP地址(存储节点H的IP地址)。存储节点H的IP地址可以是用户自行输入的,此处不作具体限定。
(2)存储节点D的收发器通过存储节点D的端口1接收存储节点A发送的广播报文,并将广播报文发送给存储节点D的第二处理器。在存储节点D的第二处理器在确定所述广播报文中的广播标识为0的情况下,存储节点D的第二处理器用于对数据链路层的MAC地址进行处理,存储节点D的第一处理器用于对网络层的IP地址进行处理,因此,在存储节点D的第二处理器在所述广播报文中查找不到目的MAC地址(存储节点H的MAC地址)的情况下,存储节点D的第二处理器将广播报文发送给存储节点D的第一处理器。存储节点D的第一处理器从广播报文中获取目的IP地址(存储节点H的IP地址),将目的IP地址(存储节点H的IP地址)和存储节点D的IP地址进行比较,确定存储节点D不是目的节点,并将比较结果发送给存储节点D的第二处理器。然后,存储节点D的第二处理器将源MAC地址(存储节点A的MAC地址)和存储节点D的端口1作为表项关联存储在存储节点D的第二存储器中,并且,存储节点D的收发器向除了存储节点D的端口1之外的存储节点D的其他所有端口发送广播报文。
(3)存储节点H的收发器通过存储节点H的端口2接收存储节点D发送的广播报文,并将广播报文发送给存储节点H的第二处理器。在存储节点H的第二处理器确定所述广播报文中的广播标识为0的情况下,存储节点H的第二处理器用于对数据链路层的MAC地址进行处理,存储节点H的第一处理器用于对网络层的IP地址进行处理,因此,在存储节 点H的第二处理器在所述广播报文中查找不到目的MAC地址(存储节点H的MAC地址)的情况下,存储节点H的第二处理器将广播报文发送给存储节点H的第一处理器。存储节点H的第一处理器从广播报文中获取目的IP地址(存储节点H的IP地址),根据目的IP地址(存储节点H的IP地址),确定存储节点H是目的节点。然后,存储节点H的第一处理器将源MAC地址(存储节点A的MAC地址)和存储节点A的IP地址表项关联存储在存储节点H的第二存储器中。
可以理解,在存储节点A向存储节点H发送广播报文的过程中,存储节点A和存储节点H分别是源节点和目标节点,不需要将源MAC地址和端口的对应关系作为表项分别存储在存储节点A和存储节点H的第二存储器中,存储节点D是中间的转发节点,需要将源MAC地址和端口的对应关系作为表项存储在存储节点D的第二存储器中。
第二阶段:目的节点向源节点返回响应报文阶段。
(4)在存储节点H需要向存储节点A返回响应报文的情况下,存储节点H的第一处理器查询第一存储器以获得存储节点A的IP地址以及存储节点A的MAC地址,并生成所述广播报文的响应报文,并将响应报文发送给存储节点H的第二处理器,其中,所述响应报文包括目的MAC地址(存储节点A的MAC地址)以及源MAC地址(存储节点H的MAC地址)。
(5)存储节点H的第二处理器根据预先配置路由配置策略指示存储节点H的第二处理器将响应报文通过存储节点H的收发器的端口2发送出去。
(6)存储节点D的收发器通过存储节点D的端口4接收存储节点H发送的响应报文,并将响应报文发送给存储节点D的第二处理器。在存储节点D的第二处理器确定所述响应报文中的响应标识为0的情况下,存储节点D的第二处理器用于对数据链路层的MAC地址进行处理,存储节点D的第一处理器用于对网络层的IP地址进行处理,因此,在存储节点D的第二处理器在所述响应报文中查找到目的MAC地址(存储节点A的MAC地址)的情况下,存储节点D的第二处理器从响应报文中获取目的MAC地址(存储节点A的MAC地址),将目的MAC地址(存储节点A的MAC地址)和存储节点D的MAC地址进行比较,确定需要将响应报文转发出去,然后,存储节点D的第二处理器从存储节点D的第二存储器查找到表项,从而确定目的MAC地址(存储节点A的MAC地址)和存储节点D的端口1的对应关系,并且,存储节点D的第二处理器根据上述对应关系,通过收发器将响应报文通过存储节点D的端口1发送出去。存储节点D的第二处理器将源MAC地址(存储节点H的MAC地址)和存储节点D的端口4的对应关系作为表项存储在存储节点D的第二存储器中。
(7)存储节点A的收发器通过存储节点A的端口2接收存储节点D发送的响应报文,并将响应报文发送给存储节点A的第二处理器。在存储节点A的第二处理器确定所述响应报文中的响应标识为0的情况下,存储节点A的第二处理器用于对数据链路层的MAC地址进行处理,存储节点A的第一处理器用于对网络层的IP地址进行处理,因此,在存储节点A的第二处理器在所述响应报文中查找到目的MAC地址(存储节点A的MAC地址)的情况下,存储节点A的第二处理器从响应报文中获取得到目的MAC地址(存储节点A的MAC地址),将目的MAC地址(存储节点A的MAC地址)和存储节点A的MAC地 址进行比较,确定不需要再将响应报文进行转发,于是,存储节点的A的第二处理器将响应报文上报给存储节点A的第一处理器,存储节点A的第一处理器从响应报文中获取得到源MAC地址(存储节点H的MAC地址),并将源MAC地址(存储节点H的MAC地址)和存储节点H的IP地址的对应关系作为表项存储在存储节点A的第一存储器中。
可以理解,在存储节点H向存储节点A返回响应报文的过程中,存储节点H和存储节点A分别是源节点和目标节点,不需要将目的MAC地址和端口的对应关系作为表项分别存储在存储节点H和存储节点A的第二存储器中,存储节点D是中间的转发节点,需要将目的MAC地址和端口的对应关系作为表项存储在存储节点D的第二存储器中。
第三阶段:源节点向目的节点发送数据报文阶段。
(8)在存储节点A需要向存储节点H发送数据报文的情况下,存储节点A的第一处理器查询第一存储器以获得目的IP地址(存储节点H的IP地址)以及目的MAC地址(存储节点H的MAC地址),并存储节点A的第一处理器查询第一存储器以根据目的IP地址(存储节点H的IP地址),查询得到目的MAC地址(存储节点H的MAC地址),并生成数据报文,其中,数据报文携带了目的MAC地址(存储节点H的MAC地址)以及转发次数,转发次数的初始值为0。
(9)存储节点A的第一处理器根据预先配置路由配置策略指示存储节点A的第二处理器将数据报文从存储节点A的收发器的端口2发送出去。
(10)存储节点D的收发器通过存储节点D的端口1接收存储节点A发送的数据报文,并将数据报文发送给存储节点D的第二处理器。在存储节点D的第二处理器确定所述数据报文中的数据标识为1的情况下,存储节点D的第二处理器将转发次数设置为1。存储节点D的第二处理器用于对数据链路层的MAC地址进行处理,存储节点D的第一处理器用于对网络层的IP地址进行处理,因此,在存储节点D的第二处理器在所述数据报文中查找到目的MAC地址(存储节点H的MAC地址)的情况下,存储节点D的第二处理器从数据报文中获取得到目的MAC地址(存储节点H的MAC地址),并将目的MAC地址(存储节点H的MAC地址)和存储节点D的MAC地址进行比较,确定存储节点D不是目的节点。存储节点D的第二处理器确定转发次数不大于转发阈值,于是,存储节点D的第二处理器从存储节点D的第二存储器查找到表项,从而确定目的MAC地址(存储节点H的MAC地址)和存储节点D的端口4的对应关系。存储节点D的收发器将数据报文通过存储节点D的端口4发送出去。
(11)存储节点H的收发器通过存储节点H的端口2接收存储节点D发送的数据报文,并将数据报文发送给存储节点H的第二处理器。在存储节点D的第二处理器确定所述数据报文中的数据标识为1的情况下,存储节点H的第二处理器将转发次数设置为2,并确定转发次数不大于转发阈值。存储节点H的第二处理器用于对数据链路层的MAC地址进行处理,存储节点H的第一处理器用于对网络层的IP地址进行处理,因此,在存储节点H的第二处理器在所述数据报文中查找到目的MAC地址(存储节点H的MAC地址)的情况下,存储节点H的第二处理器根据数据报文携带的目的MAC地址(存储节点H的MAC地址)确定存储节点H即为目的节点,并将数据报文上报给存储节点H的第一处理器。
在本实施例中,存储节点在检测到数据报文携带的数据标识为1(本实施例中广播报 文携带的广播标识为0,响应报文携带的响应标识为0)的情况下,存储节点在第三阶段中确定数据报文的转发次数是否大于转发阈值,并在没有大于转发阈值的情况下,将数据报文发送给下一个存储节点。
上述陈述中分别以第一种方式、第二种方式和第三种方式为例进行说明,但是,在实际应用中,可以将第一种方式、第二种方式以及第三种方式中的任意多种方式进行组合,例如,可以将第一种方式和第二种方式进行组合,将第一种方式和第三种方式进行组合,将第二种方式和第三种方式进行组合,将第一种方式、第二种方式和第三种方式进行组合,此处不作具体限定。
下面以第一种方式、第二种方式和第三种方式的组合为例,说明如何在路径自学习机制上结合流量环路避免机制。
在图4中,以源节点为存储节点A、目的节点为存储节点H以及转发阈值为2为例,在源节点向目的节点发送广播报文的过程中结合流量环路避免机制可以是这样实现:
第一阶段:源节点向目的节点发送广播报文阶段。
(1)存储节点A中的第一处理器生成广播报文,并将广播报文发送给存储节点A中的第二处理器。存储节点A中的第二处理器指示存储节点A中的收发器通过存储节点A的指定端口(例如,端口2)发送广播报文,其中,广播报文携带源IP地址(存储节点A的IP地址)、源MAC地址(存储节点A的MAC地址)、目的IP地址(存储节点H的IP地址)以及第一转发次数,第一转发次数的初始值为0。存储节点H的IP地址可以是用户自行输入的,此处不作具体限定。
(2)存储节点D的收发器通过存储节点D的端口1接收存储节点A发送的广播报文,并将广播报文发送给存储节点D的第二处理器。存储节点D的第二处理器将广播报文携带的第一转发次数修改为1。存储节点D的第二处理器用于对数据链路层的MAC地址进行处理,存储节点D的第一处理器用于对网络层的IP地址进行处理,因此,在存储节点D的第二处理器在所述广播报文中查找不到目的MAC地址的情况下,在存储节点D的第二处理器在所述广播报文中查找不到目的MAC地址(存储节点H的MAC地址)的情况下,存储节点D的第二处理器将广播报文发送给存储节点D的第一处理器。存储节点D的第一处理器从广播报文中获取目的IP地址(存储节点H的IP地址),将目的IP地址(存储节点H的IP地址)和存储节点D的IP地址进行比较,确定存储节点D不是目的节点,并将判断结果发送给存储节点D的第二处理器。然后,存储节点D的第二处理器判断第一转发次数没有大于转发阈值2,于是,存储节点D的第二处理器将源MAC地址(存储节点A的MAC地址)和存储节点D的端口1作为表项关联存储在存储节点D的第二存储器中。存储节点D的收发器通过除了存储节点D的端口1之外的存储节点D的其他所有端口发送广播报文。
(3)存储节点H的收发器通过存储节点H的端口2接收存储节点D发送的广播报文,并将广播报文发送给存储节点H的第二处理器。存储节点H的第二处理器将将广播报文携带的第一转发次数修改为2,存储节点H的第二处理器用于对数据链路层的MAC地址进 行处理,存储节点H的第一处理器用于对网络层的IP地址进行处理,因此,在存储节点H的第二处理器在所述广播报文中查找不到目的MAC地址(存储节点H的MAC地址)的情况下,存储节点H的第二处理器将广播报文发送给存储节点H的第一处理器。存储节点H的第一处理器从广播报文中获取目的IP地址(存储节点H的IP地址),根据目的IP地址(存储节点H的IP地址)确定存储节点H是目的节点,然后,存储节点H的第一处理器判断第一转发次数没有大于转发阈值,于是,存储节点H将源MAC地址(存储节点A的MAC地址)和存储节点A的IP地址的对应关系作为表项存储在第一存储器中。
可以理解,在存储节点A向存储节点H发送广播报文的过程中,存储节点A和存储节点H分别是源节点和目标节点,不需要将源MAC地址和端口的对应关系作为表项分别存储在存储节点A和存储节点H的第二存储器中,存储节点D是中间的转发节点,需要将源MAC地址和端口的对应关系作为表项存储在存储节点D的第二存储器中。
第二阶段:目的节点向源节点返回响应报文阶段。
(4)在存储节点H需要向存储节点A返回响应报文的情况下,存储节点H的第一处理器查询第一存储器以获得存储节点A的IP地址以及存储节点A的MAC地址,并将响应报文发送给存储节点H的第二处理器,其中,所述响应报文包括目的MAC地址(存储节点A的MAC地址)以及源MAC地址(存储节点H的MAC地址)以及第二转发次数,第二转发次数的初始值为零。
(5)存储节点H的第二处理器根据预先配置路由配置策略指示存储节点H的第二处理器将响应报文通过存储节点H的收发器的端口2发送出去。
(6)存储节点D的收发器通过存储节点D的端口4接收存储节点H发送的响应报文,并将响应报文发送给存储节点D的第二处理器。存储节点D的第二处理器将响应报文中的第二转发次数设置为1,存储节点D的第二处理器用于对数据链路层的MAC地址进行处理,存储节点D的第一处理器用于对网络层的IP地址进行处理,因此,在存储节点D的第二处理器在所述响应报文中查找到目的MAC地址(存储节点A的MAC地址)的情况下,存储节点D的第二处理器从响应报文中获取目的MAC地址(存储节点A的MAC地址),将目的MAC地址(存储节点A的MAC地址)和存储节点D的MAC地址进行比较,确定需要将响应报文转发出去。然后,存储节点D的第二处理器确定第二转发次数不大于转发阈值,于是,存储节点D的第二处理器从存储节点D的第二存储器查找到表项,从而确定目的MAC地址(存储节点A的MAC地址)和存储节点D的端口1的对应关系,并且,存储节点D的第二处理器根据上述对应关系,通过收发器将响应报文通过存储节点D的端口1发送出去。存储节点D的第二处理器将源MAC地址(存储节点H的MAC地址)和存储节点D的端口4的对应关系作为表项存储在存储节点D的第二存储器中。
(7)存储节点A的收发器通过存储节点A的端口2接收存储节点D发送的响应报文,并将响应报文发送给存储节点A的第二处理器。存储节点A的第二处理器将响应报文中的第二转发次数设置为2,存储节点A的第二处理器用于对数据链路层的MAC地址进行处理,存储节点A的第一处理器用于对网络层的IP地址进行处理,因此,在存储节点A的第二处理器在所述响应报文中查找到目的MAC地址(存储节点A的MAC地址)的情况下,存储节点A的第二处理器从响应报文中获取得到目的MAC地址(存储节点A的MAC 地址),根据目的MAC地址(存储节点A的MAC地址),确定不需要再将响应报文进行转发,于是,存储节点的A的第二处理器将响应报文上报给存储节点A的第一处理器,存储节点A的第一处理器确定第二转发次数不大于转发阈值,存储节点A的第一处理器从响应报文中获取得到源MAC地址(存储节点H的MAC地址),并将源MAC地址(存储节点H的MAC地址)和存储节点H的IP地址的对应关系作为表项存储在存储节点A的第一存储器中。
可以理解,在存储节点H向存储节点A返回响应报文的过程中,存储节点H和存储节点A分别是源节点和目标节点,不需要将目的MAC地址和端口的对应关系作为表项分别存储在存储节点H和存储节点A的第二存储器中,存储节点D是中间的转发节点,需要将目的MAC地址和端口的对应关系作为表项存储在存储节点D的第二存储器中。
第三阶段:源节点向目的节点发送数据报文阶段。
(8)在存储节点A需要向存储节点H发送数据报文的情况下,存储节点A的第一处理器查询第一存储器以获得目的IP地址(存储节点H的IP地址)以及目的MAC地址(存储节点H的MAC地址),并生成数据报文,其中,数据报文携带了目的MAC地址(存储节点H的MAC地址)以及第三转发次数,第三转发次数的初始值为0。
(9)存储节点A的第一处理器根据预先配置路由配置策略指示存储节点A的第二处理器将数据报文从存储节点A的收发器的端口2发送出去。
(10)存储节点D的收发器通过存储节点D的端口1接收存储节点A发送的数据报文,并将数据报文发送给存储节点D的第二处理器。存储节点D的第二处理器将第三转发次数设置为1,存储节点D的第二处理器用于对数据链路层的MAC地址进行处理,存储节点D的第一处理器用于对网络层的IP地址进行处理,因此,在存储节点D的第二处理器在所述数据报文中查找到目的MAC地址(存储节点H的MAC地址)的情况下,存储节点D的第二处理器从数据报文中获取得到目的MAC地址(存储节点H的MAC地址),并将目的MAC地址(存储节点H的MAC地址)和存储节点D的MAC地址进行比较,确定存储节点D不是目的节点。存储节点D的第二处理器确定第三转发次数不大于转发阈值,于是,存储节点D的第二处理器从存储节点D的第二存储器查找到表项,从而确定目的MAC地址(存储节点H的MAC地址)和存储节点D的端口4的对应关系。存储节点D的收发器将数据报文通过存储节点D的端口4发送出去。
(11)存储节点H的收发器通过存储节点H的端口2接收存储节点D发送的数据报文,并将数据报文发送给存储节点H的第二处理器。存储节点H的第二处理器将第三转发次数设置为2,并确定第三转发次数不大于转发阈值。存储节点H的第二处理器用于对数据链路层的MAC地址进行处理,存储节点H的第一处理器用于对网络层的IP地址进行处理,因此,在存储节点H的第二处理器在所述数据报文中查找到目的MAC地址(存储节点H的MAC地址)的情况下,存储节点H的第二处理器根据数据报文携带的目的MAC地址(存储节点H的MAC地址)确定存储节点H即为目的节点,并将数据报文上报给存储节点H的第一处理器。
在上述实施例中,存储节点在第一阶段、第二阶段以及第三阶段中只有在确定第一转发次数、第二转发次数以及第三转发次数均不大于转发阈值的情况下,才会将广播报文、 响应报文以及数据报文发送给下一个存储节点。
上述各个例子中,均以转发节点确定报文(包括广播报文、响应报文以及数据报文)的转发次数不大于转发阈值为例进行说明,在实际应用中,如果存储节点确定报文的转发次数大于转发阈值,则会将报文进行丢弃。
一、转发节点确定广播报文的转发次数大于转发阈值,将广播报文进行丢弃。
第一阶段:源节点向目的节点发送广播报文阶段。以上述在第一阶段(源节点向目的节点发送广播报文的阶段)结合流量环路避免机制的例子为例,源节点(存储节点A)向目的节点(存储节点H)发送广播报文以查找存储节点H的MAC地址的过程中,除了沿着上述例子中的存储节点A->存储节点D->存储节点H的路径发送广播报文之外,还可能沿着以下的路径进行转发:
(1)存储节点A中的第一处理器生成广播报文,并将广播报文发送给存储节点A中的第二处理器。存储节点A中的第二处理器指示存储节点A中的收发器通过存储节点A的指定端口(例如,端口2)发送广播报文,其中,广播报文携带源IP地址(存储节点A的IP地址)、源MAC地址(存储节点A的MAC地址)、目的IP地址(存储节点H的IP地址)以及转发次数,转发次数的初始值为0。存储节点H的IP地址可以是用户自行输入的,此处不作具体限定。
(2)存储节点D的收发器通过存储节点D的端口1接收存储节点A发送的广播报文,并将广播报文发送给存储节点D的第二处理器。在存储节点D的第二处理器在确定所述广播报文中的广播标识为1的情况下,存储节点D的第二处理器将广播报文携带的转发次数修改为1。存储节点D的第二处理器用于对数据链路层的MAC地址进行处理,存储节点D的第一处理器用于对网络层的IP地址进行处理,因此,在存储节点D的第二处理器在所述广播报文中查找不到目的MAC地址(存储节点H的MAC地址)的情况下,存储节点D的第二处理器将广播报文发送给存储节点D的第一处理器。存储节点D的第一处理器从广播报文中获取目的IP地址(存储节点H的IP地址),将目的IP地址(存储节点H的IP地址)和存储节点D的IP地址进行比较,确定存储节点D不是目的节点,并将判断结果发送给存储节点D的第二处理器。然后,存储节点D的第二处理器判断转发次数没有大于转发阈值2,于是,存储节点D的第二处理器将源MAC地址(存储节点A的MAC地址)和存储节点D的端口1作为表项关联存储在存储节点D的第二存储器中。存储节点D的收发器通过除了存储节点D的端口1之外的存储节点D的其他所有端口发送广播报文。
(3)存储节点B的收发器通过存储节点B的端口2接收存储节点D发送的广播报文,并将广播报文发送给存储节点B的第二处理器。在存储节点B的第二处理器在确定所述广播报文中的广播标识为1的情况下,存储节点B的第二处理器将广播报文携带的转发次数修改为2。存储节点B的第二处理器用于对数据链路层的MAC地址进行处理,存储节点B的第一处理器用于对网络层的IP地址进行处理,因此,在存储节点B的第二处理器在所述广播报文中查找不到目的MAC地址(存储节点H的MAC地址)的情况下,存储节点B的第二处理器将广播报文发送给存储节点B的第一处理器。存储节点B的第一处理器从广播报文中获取目的IP地址(存储节点H的IP地址),将目的IP地址(存储节点H的IP地址)和存储节点B的IP地址进行比较,确定存储节点B不是目的节点,并将判断结果发 送给存储节点B的第二处理器。然后,存储节点B的第二处理器判断转发次数没有大于转发阈值2,于是,存储节点B的第二处理器将源MAC地址(存储节点A的MAC地址)和存储节点B的端口2作为表项关联存储在存储节点B的第二存储器中。存储节点B的收发器通过除了存储节点B的端口2之外的存储节点B的其他所有端口发送广播报文。
(4)存储节点E的收发器通过存储节点E的端口2接收存储节点B发送的广播报文,并将广播报文发送给存储节点E的第二处理器。在存储节点E的第二处理器在确定所述广播报文中的广播标识为1的情况下,存储节点E的第二处理器将将广播报文携带的转发次数修改为3,明显地,转发次数大于了转发阈值,于是,存储节点E的第二处理器将广播报文进行丢弃。
可以理解,如果没有在第一阶段加入上述的流量环路避免机制,则存储节点A的广播报文可能会按照存储节点A->存储节点D->存储节点B->存储节点E->存储节点G->存储节点D->存储节点B…的方式在免交换组网中无限循环,但是,加入上述的流量环路避免机制之后,存储节点A广播的广播报文被转发至存储节点E的时候就被丢弃了,不会在免交换组网中无限循环,从而避免了免交换组网的资源被消耗,进而提高免交换组网的效率。
二、转发节点确定响应报文的转发次数大于转发阈值,将响应报文进行丢弃。
第二阶段:目的节点向源节点返回响应报文阶段。以上述在第二阶段(目的节点向源节点发送响应报文的阶段)结合流量环路避免机制的例子为例,在正常状态下,上述例子中的响应报文应该沿着存储节点H->存储节点D->存储节点A的路径返回,但是,当响应报文被病毒攻击的情况下,响应报文也可能沿着以下的路径进行传输:
(1)在存储节点H需要向存储节点A返回响应报文的情况下,存储节点H的第一处理器查询第一存储器以获得存储节点A的IP地址以及存储节点A的MAC地址,并生成所述广播报文的响应报文。其中,所述响应报文包括目的MAC地址(存储节点A的MAC地址)、目的IP地址(存储节点A的IP地址)以及源MAC地址(存储节点H的MAC地址)以及转发次数,转发次数的初始值为零。但是,当响应报文遭受病毒攻击时,响应报文中的目的MAC地址(存储节点A的MAC地址)可能被修改为一个不存在的MAC地址,响应报文中的目的IP地址(存储节点A的IP地址)可能被修改为一个不存在的IP地址。存储节点H的第一处理器将被修改后的响应报文发送给存储节点H的第二处理器,存储节点H的第二处理器依然根据预先配置路由配置策略指示存储节点H的第二处理器将响应报文通过存储节点H的收发器的端口2发送出去。
(2)存储节点D的收发器通过存储节点D的端口4接收存储节点H发送的被修改后的响应报文,并将被修改后的响应报文发送给存储节点D的第二处理器。在存储节点D的第二处理器确定所述被修改的响应报文中的响应标识为1的情况下,存储节点D的第二处理器将被修改的响应报文中的转发次数设置为1。存储节点D的第二处理器用于对数据链路层的MAC地址进行处理,存储节点D的第一处理器用于对网络层的IP地址进行处理,因此,在存储节点D的第二处理器在所述被修改的响应报文中查找到目的MAC地址(不存在的MAC地址)的情况下,存储节点D的第二处理器从被修改的响应报文中获取目的MAC地址(不存在的MAC地址),将目的MAC地址(不存在的MAC地址)和存储节点D的MAC地址进行比较,确定需要将被修改的响应报文转发出去。然后,存储节点D的 第二处理器确定转发次数不大于转发阈值,从存储节点D的第二存储器查找表项。由于查找不到对应的表项,存储节点D的第二处理器指示收发器将被修改的响应报文通过除了接收端口(端口4)之外的端口(例如,端口2)发送出去。
(3)存储节点B的收发器通过存储节点B的端口2接收存储节点D发送的被修改的响应报文,并将被修改的响应报文发送给存储节点B的第二处理器。在存储节点B的第二处理器确定所述被修改的响应报文中的响应标识为1的情况下,存储节点B的第二处理器将被修改的响应报文中的转发次数设置为2。存储节点B的第二处理器用于对数据链路层的MAC地址进行处理,存储节点B的第一处理器用于对网络层的IP地址进行处理,因此,在存储节点B的第二处理器在被修改的响应报文中查找到目的MAC地址(不存在的MAC地址)的情况下,存储节点B的第二处理器从被修改的响应报文中获取目的MAC地址(不存在的MAC地址),将目的MAC地址(不存在的MAC地址)和存储节点B的MAC地址进行比较,确定需要将被修改的响应报文转发出去。然后,存储节点B的第二处理器确定转发次数不大于转发阈值,于是,从存储节点B的第二存储器查找表项。由于查找不到对应的表项,存储节点B的第二处理器指示收发器将被修改的响应报文通过除了接收端口(端口2)之外的端口(例如,端口3)发送出去。
(4)存储节点E的收发器通过存储节点E的端口2接收存储节点B发送的被修改的响应报文,并将被修改的响应报文发送给存储节点E的第二处理器。在存储节点E的第二处理器确定所述被修改的响应报文中的响应标识为1的情况下,存储节点E的第二处理器将被修改的响应报文中的转发次数设置为3。因为转发次数大于转发阈值,存储节点E的第二处理器丢弃被修改的响应报文。
可以理解,如果没有在第二阶段加入上述的流量环路避免机制,则被修改的响应报文可能会按照存储节点H->存储节点D->存储节点B->存储节点E->存储节点G->存储节点D->存储节点B…的方式在免交换组网中无限循环,但是,加入上述的流量环路避免机制之后,被修改的响应报文被转发至存储节点E的时候就被丢弃了,不会在免交换组网中无限循环,从而避免了免交换组网的资源被消耗,进而提高免交换组网的效率。
三、转发节点确定数据报文的转发次数大于转发阈值,将数据报文进行丢弃。
第一阶段:源节点向目的节点发送数据报文阶段。以上述在第三阶段(源节点向目的节点发送数据报文的阶段)结合流量环路避免机制的例子为例,在正常状态下,上述例子中的数据报文应该按照存储节点A->存储节点D->存储节点H的路径发送给存储节点H,但是,当数据报文被病毒攻击时,数据报文也可能沿着以下的路径进行传输:
(1)存储节点A中的第一处理器生成数据报文,并将数据报文发送给存储节点A中的第二处理器。其中,广播报文携带源IP地址(存储节点A的IP地址)、源MAC地址(存储节点A的MAC地址)、目的IP地址(存储节点H的IP地址)、目的MAC地址(存储节点H)以及转发次数,转发次数的初始值为0。存储节点H的IP地址可以是用户自行输入的,此处不作具体限定。当数据报文被病毒攻击,并且,数据报文的目的IP地址(存储节点H的IP地址)被修改为不存在的IP地址时,数据报文的目的MAC地址(存储节点H的MAC地址)被修改为不存在的MAC地址。存储节点A中的第二处理器根据预先配置路由配置策略的指示存储节点A中的收发器通过存储节点A的端口2发送被修改的数据报 文。
(2)存储节点D的收发器通过存储节点D的端口1接收存储节点A发送的被修改的数据报文,并将被修改的数据报文发送给存储节点D的第二处理器。在存储节点D的第二处理器在确定被修改的数据报文中的数据标识为1的情况下,存储节点D的第二处理器将被修改的数据报文携带的转发次数修改为1。存储节点D的第二处理器用于对数据链路层的MAC地址进行处理,存储节点D的第一处理器用于对网络层的IP地址进行处理,因此,在存储节点D的第二处理器在被修改的数据报文中查找到目的MAC地址(不存在的MAC地址)的情况下,存储节点D的第二处理器从存储节点D的第二存储器查找表项。由于查找不到对应的表项,存储节点D的第二处理器指示收发器将被修改的数据报文通过除了接收端口之外的端口(例如,端口2)发送出去。
(3)存储节点B的收发器通过存储节点B的端口2接收存储节点D发送的被修改的数据报文,并将被修改的数据报文发送给存储节点B的第二处理器。在存储节点B的第二处理器在确定被修改的数据报文中的数据标识为1的情况下,存储节点B的第二处理器将数据报文携带的转发次数修改为2。存储节点B的第二处理器用于对数据链路层的MAC地址进行处理,存储节点B的第一处理器用于对网络层的IP地址进行处理,因此,在存储节点B的第二处理器在被修改的数据报文中查找到目的MAC地址(不存在的MAC地址)的情况下,存储节点B的第二处理器从存储节点B的第二存储器查找表项。由于查找不到对应的表项,存储节点B的第二处理器指示收发器将被修改的数据报文通过除了接收端口之外的端口(例如,端口3)发送出去。
(4)存储节点E的收发器通过存储节点E的端口2接收存储节点B发送的被修改的数据报文,并将被修改的数据报文发送给存储节点E的第二处理器。在存储节点E的第二处理器在确定所述被修改的数据报文中的数据标识为1的情况下,存储节点E的第二处理器将被修改的数据报文携带的转发次数修改为3,明显地,转发次数大于了转发阈值,于是,存储节点E的第二处理器将被修改的数据报文进行丢弃。
可以理解,如果没有在第三阶段加入上述的流量环路避免机制,则被修改的数据报文可能会按照存储节点A->存储节点D->存储节点B->存储节点E->存储节点G->存储节点D->存储节点B…的方式在免交换组网中无限循环,但是,加入上述的流量环路避免机制之后,被修改的数据报文被转发至存储节点B的时候就被丢弃了,不会在免交换组网中无限循环,从而避免了免交换组网的资源被消耗,进而提高免交换组网的效率。
上述各个例子中,转发阈值可以根据免交换机组网的网络拓扑图决定,例如,图4所示的免交换机组网的网络拓扑结构中存储节点和存储节点之间最多经过2跳就可以实现数据通信,因此,可以将转发阈值设置为2。可以理解,上述转发阈值的数值的设置仅仅是作为一种举例,在其他的实施方式中,还可以是3、4、5或者更多。而且,转发阈值的设置除了可以根据网络拓扑结构进行设置之外,还可以根据网络转发的时延以及链路质量如丢包率等等因素进行设置,此处不作具体限定。
在上述各例子中,转发次数可以承载于报文的标签协议标识(tag control information, TCI)字段中。由于本申请中的广播报文、响应报文以及数据报文这三种报文的结构大体相同,下面将以广播报文为例进行说明。
如图6所示,广播报文通常包括6字节的目的MAC地址字段、6字节的源MAC地址字段、2字节的标签协议标识(tag protocol identifier,TPID)、2字节的TCI字段、2字节的类型、46至1500字节的净荷(payload)字节以及4字节的循环冗余校验(Cyclic Redundancy Check,CRC)。其中,TCI字段可以包括3比特的用户优先权字节(user priority)、1比特的规范标识位(Canonical Format Indicator,CFI)以及12比特的虚拟局域网标识(virtual local area network identifier,VLAN ID)字段。
在应用中,可以使用虚拟局域网标识的高位比特来承载转发次数,低位比特来承载VLAN ID,例如,可以使用虚拟局域网标识的最高位标识承载转发次数,其余的11位低位比特来承载VLAN ID;也可以使用虚拟局域网标识的低位比特来承载转发次数,高位比特来承载VLAN ID,例如,可以使用虚拟局域网标识的最低位标识承载转发次数,其余的11位高位比特来承载VLAN ID。
此外,还可以在广播报文的保留字段(图中未示)中承载广播标识。当然,广播标识还可以以显式或隐式承载在广播报文的现有字段中,此处不作具体限定。响应报文和数据报文也同样可以分别承载响应标识以及数据标识,此处不在具体描述。
可以理解,上述示例中仅仅使用了单个比特来承载转发次数,在实际应用中,也可以采用更多的比特来承载转发次数,此处不作具体限定。另外,上述示例中是以虚拟局域网标识字段包括的比特数为12比特为例进行说明,在实际应用中,虚拟局域网标识字段包括的比特数可以是更少或者更多,此处不作具体限定。
参阅图7,图7是本申请提供的一种转发节点的结构示意图。其中,转发节点直接转发其它节点通过网络发送的报文或数据。也就是说,所述转发节点通过所述第一节点或所述第二节点接收数据,并将接收到的数据存储在所述第一存储器中。所述转发节点、所述第一节点和所述第二节点均不是交换机。所述网络不需要通过交换机转发数据和报文。在一具体实施例中,所述第一节点、所述转发节点以及所述第二节点均为图4中的存储节点,其中,所述存储节点用于存储电子文件,所述电子文件包括文本、图像、音频以及视频中的一种或者多种。在一更具体的实施例中,第一节点可以是源节点,第二节点可以是目的节点。
所述转发节点与所述其他节点均属于免交换机组网中的节点。所述免交换机组网是去中心化的组网方式,即,所述免交换机组网中的各个节点的地位相当,或者,所述免交换机组网中不包括转发中心(例如交换机),所述组网中的各个节点除了承担自身的职能(例如,存储数据的职能)之外,还需要承担数据转发的职能。在一可行的实施例中,所述转发节点可以是图4中的存储节点,例如,上述在路径自学习机制上结合流量环路避免机制的第一种方式至第三种方式以及它们之间的结合中的存储节点D,此处不作具体限定。如图7所示,本申请的转发节点包括:接收模块210、第一处理模块230、第二处理模块220、发送模块240和存储模块250,所述接收模块210包括第一端口211,所述发送模块240包 括第二端口241。
接收模块210用于通过第一端口211接收广播报文,其中,所述广播报文携带源节点的第一地址信息,所述广播报文是所述源节点发送的用于查询目的节点第二地址信息的报文。
第二处理模块220用于在存储模块250中存储第一表项,其中,所述第一表项用于记录所述第一地址信息和所述第一端口211的对应关系;
发送模块240用于通过第二端口241发送所述广播报文;
接收模块210用于通过所述第二端口241接收所述广播报文的响应报文,其中,所述响应报文携带第二地址信息,所述响应报文用于向所述源节点返回所述第二地址信息;
第二处理模块220用于根据所述第一地址信息查询所述第一表项确定所述第一端口211;
发送模块240用于通过所述第一端口211发送所述响应报文;
第二处理模块220用于在所述存储模块250中存储第二表项,其中,所述第二表项用于记录所述第二地址信息和所述第二端口241的对应关系。
具体地,第一处理模块230可以是处理速度较快以及运算能力比较强的处理器,例如,图2中的第一处理器。
具体地,第二处理模块220可以是处理速度较慢以及运算能力较弱的处理器,例如,图2中的第二处理器。
具体地,接收模块210和发送模块240可以是单独设置的,也可以是集成在一起的,此处不作具体限定。当两者集成在一起时,可以是图2中的收发器。
转发节点在通过广播报文和响应报文学习到第二地址信息和第二端口241的对应关系之后,就可以根据第二地址信息和第二端口241的对应关系转发数据报文。其中,数据报文携带了第二地址信息。具体地,接收模块210用于接收数据报文,其中,所述数据报文用于承载所述源节点发送给所述目的节点的数据和所述第二地址信息;第二处理模块220用于根据所述第二地址信息查询所述第二表项得到所述第二端口241;发送模块240用于通过所述第二端口241发送所述数据报文。
为了避免流量环路的形成,转发节点还可以在发送广播报文、接收响应报文和发送数据报文中的一个或者多个的过程中结合流量环路避免机制,即,只有在广播报文、接收响应报文和发送数据报文的转发次数没有大于转发阈值的情况下,才转发广播报文、接收响应报文和发送数据报文,如果转发系数大于转发阈值,则将广播报文、接收响应报文和发送数据报文进行丢弃。其中,所述转发阈值是根据所述转发节点所在的网络的拓扑结构确定的。例如,
所述广播报文还包括第一转发次数,发送模块240还用于在确定所述第一转发次数大于转发阈值的情况下,丢弃所述广播报文,在确定所述第一转发次数没有大于转发阈值的情况下,将所述第一转发次数加一,并通过第二端口发送所述广播报文;或,
所述响应报文还包括第二转发次数,发送模块240还用于在确定所述第二转发次数大于转发阈值的情况下,丢弃所述响应报文,在确定所述第二转发次数没有大于转发阈值的情况下,将所述第二转发次数加一,并通过所述第一端口发送所述响应报文;或,
所述数据报文还包括第三转发次数,发送模块240还用于在确定所述第三转发次数大于转发阈值的情况下,丢弃所述数据报文,在确定所述第三转发次数没有大于转发阈值的情况下,将所述第三转发次数加一,并通过所述第二端口发送所述数据报文。
为了简便起见,此处不对图7所示的转发节点展开描述,具体请参见上述在路径自学习机制上结合流量环路避免机制的第一种方式至第三种方式以及它们之间的结合。
参阅图8,图8是本申请提供的一种数据或报文转发的方法的流程示意图。所述转发节点直接转发其它节点通过网络发送的报文或数据,转发节点包括:第一处理器、第一存储器以及网络适配卡,其中,所述网络适配卡包括第二处理器、第二存储器以及收发器,所述收发器包括第一端口和第二端口;本申请的数据或报文转发的方法包括如下步骤:
S101:所述收发器通过所述第一端口接收广播报文,其中,所述广播报文携带源节点的第一地址信息,所述广播报文是所述源节点发送的用于查询目的节点第二地址信息的报文。
S102:所述第二处理器在所述第二存储器中存储第一表项,其中,所述第一表项用于记录所述第一地址信息和所述第一端口的对应关系。
S103:所述收发器通过所述第二端口发送所述广播报文。
S104:所述收发器通过所述第二端口接收所述广播报文的响应报文,其中,所述响应报文携带第二地址信息,所述响应报文用于向所述源节点返回所述第二地址信息;
S105:所述第二处理器根据所述第一地址信息查询所述第一表项确定所述第一端口;
S106:所述收发器通过所述第一端口发送所述响应报文;
S107:所述第二处理器在所述第二存储器中存储第二表项,其中,所述第二表项用于记录所述第二地址信息和所述第二端口的对应关系。
在本实施例中,源节点的第一地址信息可以是源节点的MAC地址信息,目的节点的第二地址信息可以是目的节点的MAC地址信息,此处不作具体限定。以图4为例,假设源节点为存储节点A,目的节点为存储节点H,转发节点为存储节点D,则源节点的第一地址信息为存储节点A的MAC地址,目的节点的第二地址信息为存储节点H的MAC地址信息,第一端口为存储节点D的端口2,第二端口为存储节点D的端口4。
为了简便起见,此处不对图8所示的数据或报文转发的方法展开描述,具体请参见上述在路径自学习机制上结合流量环路避免机制的第一种方式至第三种方式以及它们之间的结合。
本申请提供的一种信息处理系统。本申请的信息处理系统包括:所述转发节点直接转发其它节点通过网络发送的报文或数据。也就是说,所述转发节点通过第一节点接收所述广播报文,并向第二节点发送所述广播报文;所述第一节点包括第三处理器和第三存储器,所述第二节点包括第四处理器和第四存储器;所述第三存储器和所述第四存储器用于存储通过所述转发节点转发或发送的数据。更具体地,所述转发节点通过所述第一节点或所述第二节点接收数据,并将接收到的数据存储在所述第一存储器中。所述转发节点与所述第一节点之间通过通信网络连接,所述转发节点与所述第二节点之间也通过通信网络连接, 其中,所述通信网络可以是网状通道(fibre channel,FC)网络等等。
在一具体实施例中,所述信息处理系统可以是如图4所示的免组网网络构成的信息处理系统。其中,第一节点可以是图4中的存储节点A,转发节点可以是图4中的存储节点D,第二节点可以是图4中的存储节点H。另外,所述转发节点可以是采用如图2所示的存储节点的结构,并且,所述转发节点可以执行上述在路径自学习机制上结合流量环路避免机制的第一种方式至第三种方式以及它们之间的结合中存储节点D执行的步骤,此处不再展开描述。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、存储盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态存储盘Solid State Disk(SSD))等。

Claims (13)

  1. 一种转发节点,所述转发节点用于直接转发其它节点通过网络发送的报文或数据,其特征在于,所述转发节点包括:第一处理器、第一存储器以及网络适配卡,其中,所述网络适配卡包括第二处理器、第二存储器以及收发器,所述收发器包括第一端口和第二端口;
    所述收发器用于通过所述第一端口接收广播报文,其中,所述广播报文携带源节点的第一地址信息,所述广播报文是所述源节点发送的用于查询目的节点第二地址信息的报文;
    所述第二处理器用于在所述第二存储器中存储第一表项,其中,所述第一表项用于记录所述第一地址信息和所述第一端口的对应关系;
    所述收发器用于通过所述第二端口发送所述广播报文;
    所述收发器用于通过所述第二端口接收所述广播报文的响应报文,其中,所述响应报文携带第二地址信息,所述响应报文用于向所述源节点返回所述第二地址信息;
    所述第二处理器用于根据所述第一地址信息查询所述第一表项确定所述第一端口;
    所述收发器用于通过所述第一端口发送所述响应报文;
    所述第二处理器用于在所述第二存储器中存储第二表项,其中,所述第二表项用于记录所述第二地址信息和所述第二端口的对应关系。
  2. 根据权利要求1所述的节点,其特征在于,
    所述收发器用于接收数据报文,其中,所述数据报文包含所述源节点发送给所述目的节点的数据和所述第二地址信息;
    所述第二处理器用于根据所述第二地址信息查询所述第二表项得到所述第二端口;
    所述收发器用于通过所述第二端口发送所述数据报文。
  3. 根据权利要求2所述的节点,其特征在于,所述转发设备包括以下中的一种或者多种:
    所述广播报文还包括第一转发次数,所述收发器还用于在确定所述第一转发次数大于转发阈值的情况下,丢弃所述广播报文,在确定所述第一转发次数没有大于转发阈值的情况下,将所述第一转发次数加一,并通过第二端口发送所述广播报文;或,
    所述响应报文还包括第二转发次数,所述收发器还用于在确定所述第二转发次数大于转发阈值的情况下,丢弃所述响应报文,在确定所述第二转发次数没有大于转发阈值的情况下,将所述第二转发次数加一,并通过所述第一端口发送所述响应报文;或,
    所述数据报文还包括第三转发次数,所述收发器还用于在确定所述第三转发次数大于转发阈值的情况下,丢弃所述数据报文,在确定所述第三转发次数没有大于转发阈值的情况下,将所述第三转发次数加一,并通过所述第二端口发送所述数据报文。
  4. 根据权利要求3所述的节点,其特征在于,所述转发阈值是根据所述转发节点所在的网络的拓扑结构确定的。
  5. 根据权利要求1至4任一权利要求所述的节点,其特征在于,
    所述转发节点用于通过第一节点接收所述广播报文,并向第二节点发送所述广播报文;
    所述第一节点包括第三处理器和第三存储器,所述第二节点包括第四处理器和第四存储器;
    所述第三存储器和所述第四存储器用于存储通过所述转发节点转发或发送的数据。
  6. 根据权利要求5所述的节点,其特征在于,
    所述转发节点还用于通过所述第一节点或所述第二节点接收数据,并将接收到的数据存储在所述第一存储器中。
  7. 一种转发方法,应用于转发节点,所述转发节点直接转发其它节点通过网络发送的报文或数据,其特征在于,转发节点包括:第一处理器、第一存储器以及网络适配卡,其中,所述网络适配卡包括第二处理器、第二存储器以及收发器,所述收发器包括第一端口和第二端口;
    所述收发器通过所述第一端口接收广播报文,其中,所述广播报文携带源节点的第一地址信息,所述广播报文是所述源节点发送的用于查询目的节点第二地址信息的报文;
    所述第二处理器在所述第二存储器中存储第一表项,其中,所述第一表项用于记录所述第一地址信息和所述第一端口的对应关系;
    所述收发器通过所述第二端口发送所述广播报文;
    所述收发器通过所述第二端口接收所述广播报文的响应报文,其中,所述响应报文携带第二地址信息,所述响应报文用于向所述源节点返回所述第二地址信息;
    所述第二处理器根据所述第一地址信息查询所述第一表项确定所述第一端口;
    所述收发器通过所述第一端口发送所述响应报文;
    所述第二处理器在所述第二存储器中存储第二表项,其中,所述第二表项用于记录所述第二地址信息和所述第二端口的对应关系。
  8. 根据权利要求7所述的方法,其特征在于,
    所述收发器接收数据报文,其中,所述数据报文包含所述源节点发送给所述目的节点的数据和所述第二地址信息;
    所述第二处理器根据所述第二地址信息查询所述第二表项得到所述第二端口;
    所述收发器通过所述第二端口发送所述数据报文。
  9. 根据权利要求8所述的方法,其特征在于,
    所述广播报文还包括第一转发次数,所述收发器通过所述第二端口发送所述广播报文包括:所述收发器在确定所述第一转发次数大于转发阈值的情况下,丢弃所述广播报文,在确定所述第一转发次数没有大于转发阈值的情况下,将所述第一转发次数加一,并通过第二端口发送所述广播报文;或,
    所述响应报文还包括第二转发次数,所述收发器通过所述第一端口发送所述响应报文包括:所述收发器在确定所述第二转发次数大于转发阈值的情况下,丢弃所述响应报文, 在确定所述第二转发次数没有大于转发阈值的情况下,将所述第二转发次数加一,并通过所述第一端口发送所述响应报文;或,
    所述数据报文还包括第三转发次数,所述收发器通过所述第二端口发送所述数据报文包括:所述收发器在确定所述第三转发次数大于转发阈值的情况下,丢弃所述数据报文,在确定所述第三转发次数没有大于转发阈值的情况下,将所述第三转发次数加一,并通过所述第二端口发送所述数据报文。
  10. 根据权利要求9所述的方法,其特征在于,所述转发阈值是根据所述转发节点所在的网络的拓扑结构确定的。
  11. 根据权利要求7至10任一权利要求所述的方法,其特征在于,所述转发节点直接转发其它节点通过网络发送的报文或数据包括:
    所述转发节点通过第一节点接收所述广播报文,并向第二节点发送所述广播报文;
    所述第一节点包括第三处理器和第三存储器,所述第二节点包括第四处理器和第四存储器;
    所述第三存储器和所述第四存储器用于存储通过所述转发节点转发或发送的数据。
  12. 根据权利要求11所述的方法,其特征在于,
    所述转发节点还用于通过所述第一节点或所述第二节点接收数据,并将接收到的数据存储在所述第一存储器中。
  13. 一种信息处理系统,其特征在于,包括多个转发节点;
    每个所述转发节点为如权利要求1至6任一权利要求所述的转发节点。
PCT/CN2019/103317 2018-12-24 2019-08-29 数据或报文转发的方法、节点和系统 WO2020134144A1 (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
EP19904708.5A EP3886386A4 (en) 2018-12-24 2019-08-29 METHOD, NODES AND SYSTEM FOR TRANSMITTING DATA OR MESSAGES
US17/343,828 US20210297344A1 (en) 2018-12-24 2021-06-10 Data or packet forwarding method, node, and system

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201811584689.1 2018-12-24
CN201811584689.1A CN109600326B (zh) 2018-12-24 2018-12-24 数据或报文转发的方法、节点和系统

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US17/343,828 Continuation US20210297344A1 (en) 2018-12-24 2021-06-10 Data or packet forwarding method, node, and system

Publications (1)

Publication Number Publication Date
WO2020134144A1 true WO2020134144A1 (zh) 2020-07-02

Family

ID=65964381

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2019/103317 WO2020134144A1 (zh) 2018-12-24 2019-08-29 数据或报文转发的方法、节点和系统

Country Status (4)

Country Link
US (1) US20210297344A1 (zh)
EP (1) EP3886386A4 (zh)
CN (1) CN109600326B (zh)
WO (1) WO2020134144A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115941554A (zh) * 2021-09-26 2023-04-07 中车株洲电力机车研究所有限公司 以太网流量检测处理方法、装置、计算机设备和存储介质

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109600326B (zh) * 2018-12-24 2021-11-19 华为技术有限公司 数据或报文转发的方法、节点和系统
CN110098967B (zh) * 2019-05-14 2022-08-12 浙江国利网安科技有限公司 一种通信方法、装置、设备及介质
TWI733560B (zh) * 2020-08-13 2021-07-11 瑞昱半導體股份有限公司 網路交換器及其網路交換器系統

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101035087A (zh) * 2007-04-20 2007-09-12 杭州华三通信技术有限公司 报文转发方法、系统及设备
US20070268915A1 (en) * 2006-05-19 2007-11-22 Corrigent Systems Ltd. Mac address learning in a distributed bridge
CN101094155A (zh) * 2007-08-02 2007-12-26 杭州华三通信技术有限公司 建立IPv6隧道的方法、IPv6隧道通信方法及IPv4边缘设备
CN103634210A (zh) * 2012-08-28 2014-03-12 杭州华三通信技术有限公司 发现vpls实例的对端pe设备的方法及设备
CN109600326A (zh) * 2018-12-24 2019-04-09 华为技术有限公司 数据或报文转发的方法、节点和系统

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7031296B1 (en) * 1995-09-29 2006-04-18 Nortel Networks Limited Method and apparatus for managing the flow of data within a switching device
US7523485B1 (en) * 2003-05-21 2009-04-21 Foundry Networks, Inc. System and method for source IP anti-spoofing security
JP5130140B2 (ja) * 2008-07-22 2013-01-30 京セラドキュメントソリューションズ株式会社 画像形成システム
CN201657013U (zh) * 2010-03-05 2010-11-24 华为技术有限公司 一种报文处理系统
US8660118B2 (en) * 2010-11-19 2014-02-25 Extreme Networks, Inc. Methods, systems, and computer readable media for next hop scaling
CN103227757B (zh) * 2012-08-31 2016-12-28 杭州华三通信技术有限公司 一种报文转发方法及设备
JP6489019B2 (ja) * 2013-10-09 2019-03-27 日本電気株式会社 通信システム、通信装置および通信制御方法
CN104580025B (zh) * 2013-10-18 2018-12-14 华为技术有限公司 用于开放流网络中建立带内连接的方法和交换机
CN104065571B (zh) * 2014-06-05 2017-11-03 福建星网锐捷网络有限公司 一种广播报文处理方法、装置及系统
US9807007B2 (en) * 2014-08-11 2017-10-31 Brocade Communications Systems, Inc. Progressive MAC address learning
US20160135109A1 (en) * 2014-11-12 2016-05-12 Qualcomm Incorporated Opportunistic ioe message delivery via wan-triggered forwarding
CN105959216B (zh) * 2016-06-22 2019-02-26 重庆世纪之光科技实业有限公司 一种单向串行总线网络的通信方法、装置及系统
WO2018031951A1 (en) * 2016-08-11 2018-02-15 Hopzero, Inc. Method and system for limiting the range of data transmissions
US10686823B2 (en) * 2017-01-30 2020-06-16 Xm Cyber Ltd. Systems and methods for detecting computer vulnerabilities that are triggered by events
CN107295020A (zh) * 2017-08-16 2017-10-24 北京新网数码信息技术有限公司 一种地址解析协议攻击的处理方法及装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070268915A1 (en) * 2006-05-19 2007-11-22 Corrigent Systems Ltd. Mac address learning in a distributed bridge
CN101035087A (zh) * 2007-04-20 2007-09-12 杭州华三通信技术有限公司 报文转发方法、系统及设备
CN101094155A (zh) * 2007-08-02 2007-12-26 杭州华三通信技术有限公司 建立IPv6隧道的方法、IPv6隧道通信方法及IPv4边缘设备
CN103634210A (zh) * 2012-08-28 2014-03-12 杭州华三通信技术有限公司 发现vpls实例的对端pe设备的方法及设备
CN109600326A (zh) * 2018-12-24 2019-04-09 华为技术有限公司 数据或报文转发的方法、节点和系统

Non-Patent Citations (1)

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

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115941554A (zh) * 2021-09-26 2023-04-07 中车株洲电力机车研究所有限公司 以太网流量检测处理方法、装置、计算机设备和存储介质

Also Published As

Publication number Publication date
CN109600326A (zh) 2019-04-09
EP3886386A4 (en) 2022-01-26
EP3886386A1 (en) 2021-09-29
CN109600326B (zh) 2021-11-19
US20210297344A1 (en) 2021-09-23

Similar Documents

Publication Publication Date Title
WO2020134144A1 (zh) 数据或报文转发的方法、节点和系统
US9215172B2 (en) Hashing-based routing table management
US8358661B2 (en) Remote adapter configuration
KR101579917B1 (ko) Pcie 스위칭 네트워크에서 패킷 전송을 실행하기 위한 방법, 장치, 시스템, 및 저장 매체
TWI515572B (zh) 分散式虛擬橋接器環境中暫存器存取之系統及方法
US8571408B2 (en) Hardware accelerated data frame forwarding
JP5497244B2 (ja) スイッチング・ネットワークにおいてフロー制御を実施するための方法、マスタ・スイッチ、スイッチング・ネットワーク、プログラム、装置、システム
US9614759B2 (en) Systems and methods for providing anycast MAC addressing in an information handling system
US6981025B1 (en) Method and apparatus for ensuring scalable mastership during initialization of a system area network
US9197539B2 (en) Multicast miss notification for a distributed network switch
WO2018137217A1 (zh) 一种数据处理的系统、方法及对应装置
EP2947820A1 (en) Method for generating configuration information and network control unit
CN107078974B (zh) 网络交换机、由网络交换机执行的方法以及存储器资源
US7411958B2 (en) Method and system for transferring data directly between storage devices in a storage area network
US8351442B1 (en) Method and system for network communication
US8989193B2 (en) Facilitating insertion of device MAC addresses into a forwarding database
US8489763B2 (en) Distributed virtual bridge management
US20090245791A1 (en) Method and System for Fibre Channel and Ethernet Interworking
CN107113241B (zh) 路由确定方法、网络配置方法以及相关装置
JP2013545359A (ja) スイッチング・ネットワークにおけるスイッチングのための方法、マスタ・スイッチ、スイッチング・ネットワーク、プログラム、装置、システム
EP3968581A1 (en) Method and related device for forwarding packets in data center network
US10574579B2 (en) End to end quality of service in storage area networks
US11394635B2 (en) Aggregated bit index explicit replication networking system
US20120250683A1 (en) Method and System for Avoiding Flooding of Packets in Switches
WO2020215455A1 (zh) 一种基于Virtio端口传输数据的方法和系统

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

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 2019904708

Country of ref document: EP

Effective date: 20210622