Software emulation switching for dual network devices

CN116615897BActive Publication Date: 2026-09-25MICROSOFT TECHNOLOGY LICENSING LLC
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
CN202180083858.7
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Priority Date
2020-12-16
Filing Date
2021-10-30
Publication Date
2026-09-25
Estimated Expiration
2041-10-30

AI Technical Summary

Technical Problem

然而,由于每个单独的服务器通常仅使用到被称为第0层元素(例如,架顶式(ToR)设备)的第一网络元素的单个连接,因此可能存在可以将服务器或整个服务器机架与网络隔离的单点故障

Benefits of technology

[0014]在许多其他好处中,本文中所示的技术提高了关于各种计算资源的效率。例如,数据中心可以避免或减少服务器连通性问题的数目以及由此导致的数据和服务丢失。此外,可以执行第0层设备的计划维护和更换,而不会断开与连接到该第0层设备的服务器的连通性。此外,数据中心可以执行此类服务,而无需提前通知客户,从而提高了计划维护或执行维护以快速响应事件的效率。除了本文中提到的那些之外,其他技术效果也可以从本文公开的技术实现中实现。

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116615897B_ABST
    Figure CN116615897B_ABST
Patent Text Reader

Abstract

In an environment including a server group and at least two network devices, a link failure is detected. A data cable connects each of the servers to two network devices. An active communication path from one of the network devices to the servers is determined. In response to detecting a failure of the active communication path, a second network device is indicated as an active network device. The network devices detect a configuration based on packets received at the network devices.
Need to check novelty before this filing date? Find Prior Art

Description

Background Technology

[0001] A data center is a facility that houses computer systems, along with various networks, storage, and other related components. For example, a data center can provide computing services to businesses and individuals as remote computing services, or it can provide "Software as a Service" (e.g., cloud computing).

[0002] Data centers can house hundreds or thousands of servers. Each server can host multiple virtual machines and other resources. It is crucial to prevent downtime due to hardware and network failures, as well as other issues that could prevent the services offered by the data center from operating. Some data centers implement methods to provide a degree of resilience to failures, which may prevent the loss of network communication. This resilience can extend from Tier 1 network elements to higher-level network elements. However, since each individual server typically uses only a single connection to a Tier 0 element (e.g., a Top-of-Rack (ToR) device), there can be single points of failure that could isolate a server or an entire server rack from the network.

[0003] When data centers encounter server connectivity issues, it can lead to data and service loss, preventing users from providing quality service to their downstream customers, potentially resulting in lost revenue and customer dissatisfaction. When data centers are unable to quickly isolate and correct the cause of connectivity failures, it can explain productivity losses and inefficiencies related to computing resources. Furthermore, planned maintenance or replacement of Tier 0 equipment may require servers connected to that equipment to disconnect. Many service agreements require advance notice to customers, thus precluding the possibility of service providers planning maintenance as needed without prior notice, or precluding the possibility of on-site replacement of Tier 0 equipment.

[0004] Regarding these and other considerations, this article makes the following disclosure. Summary of the Invention

[0005] The disclosed embodiments describe techniques for providing alternative low-speed data paths for devices connected to network devices, such as Layer 0 devices, to help prevent devices from becoming isolated from, for example, the main control plane network when the network device or the connection to the network device is lost. These techniques can be implemented in conjunction with servers and other devices that require network resilience, particularly when these devices do not require high-speed redundant data links, such as for control plane links.

[0006] Cloud service providers typically run mission-critical workloads and are highly sensitive to link failures. In some cases, the cost of lost business in the event of a failure can exceed the deployment cost.

[0007] A combination of Network Interface Card (NIC) bonding and multi-chassis link aggregation can be used to provide a first and second interface into the network, unaffected by a single cable failure or a single Layer 0 device failure. These methods are suitable for operating systems and applications configured to identify additional network resources and detect and respond to failures in one network connection. However, for cloud-hosted virtual machine services, NIC bonding and multi-chassis link aggregation may be difficult to implement because some operating systems and software applications may not be specified to recognize both network interfaces. Furthermore, there may be issues with the potential loss of traffic forwarding capabilities, which can be difficult to prevent and debug.

[0008] In some cases, to provide network resilience down to the server level, each server can be connected to two different Layer 0 network elements via facilities with different routes (e.g., fiber optic or copper cabling). However, providing a second NIC for each server can be costly when using custom NICs with complex acceleration logic.

[0009] Network devices can also be replicated using switches or multiplexers. However, this would require changing the network device interfaces, which could break compatibility between devices in the data center, and would also require the expense of customizing the switches or multiplexers, which could significantly increase the cost of deploying such solutions across or multiple data centers.

[0010] The closed-loop implementation describes a method for responding to network device failures or faulty network infrastructure (e.g., cabling) and enabling data traffic to flow through the network, allowing for rapid restoration of normal data link availability while avoiding significant impact on customers.

[0011] In this embodiment, a dual-redundant / switching cable is implemented, providing redundancy and operating with dual-redundant network devices (e.g., ToRs) while reducing the cost of selection and switching between the two network devices. For example, switching between the two ToRs is achieved using an active (“active” direct-attach cable (DAC) accessory. One end of the cable provides a standard NIC connector (e.g., QSFP28 or others), while the other end has an active multiplexer / switch that selects the active (primary) ToR. The cable multiplexer / switch can be commanded to switch between ToRs via a data bus or signal line. Alternatively, a protocol such as Bidirectional Forward Detection (BFD) can be used to detect faults and determine whether to switch between ToRs.

[0012] On the ToR side, both ToRs can receive the same data from each connected server, but only one (active or primary) ToR transmits data to the host on the connected server. In various embodiments, a method for implementing dual active / inactive (“passive”) ToRs is disclosed without externally modifying the ToRs, thereby reducing the costs that would otherwise be required if the ToRs were modified. Furthermore, the ToRs do not need to communicate with each other to arbitrate which is primary and which is backup.

[0013] In some embodiments, the properties and utilities of network protocols such as Ethernet can be used to enable software-based primary / backup switching between ToRs by configuring ToRs to detect their send / receive status and act accordingly. This allows multiplexers of redundant cables to be implemented as switches or hubs, and ToRs to be treated as nodes on the network. Data from hosts can be broadcast over the network, so that both ToRs will receive the transmitted data. The network can use utilities to discover and ping lower-level devices on the network, such as ARP ping. Ping packets can be transmitted over the link to the probing host using the Address Resolution Protocol (ARP). The ping information allows the MAC address of a host to be associated with the receiving MAC address of an active ToR. This allows the host to resolve its MAC address, and both ToRs can determine whether they are active or inactive based on the ping information. Therefore, only traffic from the active ToR will be forwarded to the destination host.

[0014] Among many other benefits, the techniques described herein improve efficiency with respect to various computing resources. For example, data centers can avoid or reduce the number of server connectivity problems and the resulting data and service loss. Furthermore, planned maintenance and replacement of Tier 0 devices can be performed without disrupting connectivity with the servers connected to those Tier 0 devices. Additionally, data centers can perform such services without prior notice to customers, thereby improving the efficiency of planned or executed maintenance in response to incidents. Besides those mentioned herein, other technical effects can also be achieved from the technical implementations disclosed herein.

[0015] This summary is provided to introduce a set of concepts in a simplified form, which will be further described in the detailed description below. This summary is not intended to identify key or essential features of the claimed subject matter, nor is it intended to limit the scope of the claimed subject matter. Furthermore, the claimed subject matter is not limited to the implementation of solutions to any or all the shortcomings pointed out in any part of this disclosure. Attached Figure Description

[0016] Specific embodiments are described with reference to the accompanying drawings. In the detailed description herein, reference is made to the accompanying drawings, which form a part of the description and illustrate specific embodiments or examples in an illustrative manner. The drawings herein are not drawn to scale. Throughout the various drawings, the same numerals denote the same elements.

[0017] Figure 1 This is an illustration of a data center for providing computing resources according to this disclosure;

[0018] Figure 2A This is an example of a resilient network topology based on this disclosure;

[0019] Figure 2B This is an example of a resilient network topology based on this disclosure;

[0020] Figure 3A This is an example of a resilient network topology based on this disclosure;

[0021] Figure 3B This is an example of a resilient network topology based on this disclosure;

[0022] Figure 4 This is a flowchart illustrating an example process according to this disclosure;

[0023] Figure 5 This is a flowchart illustrating an example process according to this disclosure;

[0024] Figure 6 This is a flowchart illustrating an example process according to this disclosure;

[0025] Figure 7 It is an example computing device according to this disclosure. Detailed Implementation

[0026] The disclosed embodiments describe techniques for providing alternative network paths to prevent servers from becoming isolated from the primary data and / or control network. In embodiments, multiplexers or switching devices may be integrated with cables such as DAC cables, which may be referred to as dual cables. Multiplexers or switching devices may be referred to herein as switching devices. In some embodiments, dual cables may provide cross-point switching capability that can exchange traffic at OSI model layer 1 (physical layer) between dual redundant Layer 0 devices. In many examples herein, the dual redundant Layer 0 devices may be top-of-rack (ToR) devices, and servers in a server group may be connected to the dual cable. In other examples, dual cables may provide cross-point switching capability that can exchange traffic between other redundant network devices.

[0027] In one embodiment, a dual cable can interconnect one server in a rack to two ToRs. Multiple dual cables can be used to connect each server in the rack to two ToRs. The dual cables are interchangeable. In one embodiment, the dual cable can be configured to broadcast data traffic from a device (e.g., a server) to a first ToR and a second ToR. The dual cable can also be configured to switch incoming data traffic from the first ToR to the second ToR, for example, in the event of a failure or maintenance requirement of the first ToR. In an embodiment, the circuitry implementing this switching capability can be embedded in a four-piece small form factor pluggable (QSFP) DAC cable. This circuitry can be configured to switch data traffic from one ToR device to another.

[0028] In low-speed data scenarios, such as control plane data, it may not be necessary to implement a fast switching method to indicate which of the two ToRs should be the primary ToR. For example, it may not be necessary to configure the two ToRs to determine which ToR should be the primary ToR and use control signals to generate an indication, or to provide a communication method from the ToR to the NIC, such as using link on / off, or using BFD between the ToR and the NIC.

[0029] In some embodiments, the switching device within the cable itself can be configured to make decisions about switching between ToRs. In one embodiment, the switching device may be accompanied by a microcontroller unit (MCU) device configured to control various aspects of autonegotiation and link training. This MCU device can execute modifiable code. Interaction with the switching device's state can be used to determine whether a link is open / closed or in some other intermediate state. The presence of a fully trained link can be interpreted as the link being open, and thus can be used to allow the switching device to determine which link to use based on a flexible and programmable model. In some embodiments, the switching device with the MCU can be configured to operate in conjunction with other mechanisms deployed by the NIC or ToR.

[0030] In the various embodiments disclosed herein, the switching of active and standby ToRs can be greatly simplified to avoid the ToRs having to communicate with each other to negotiate which will be active or standby. One problem with using dual devices is that both devices may consider themselves active and act as active. Alternatively, both devices may consider the other device active and act as standby, which can lead to serious data communication problems. The disclosed technology allows network connectivity to one or more servers in the rack to be maintained in the event of a failure in the connection between the ToR and one or more servers in the rack, or if one of the ToRs is repaired / replaced, without the need for coordination between the ToRs, while avoiding the possibility of both ToRs acting as active or standby devices.

[0031] By using dual cables with ToR switching technology, from the server's perspective, only a single link of a single ToR is observed because data is sent to a multiplexer that exchanges data between ToRs. Therefore, no changes are required on the server side. Switching the active / standby ToR at one server does not affect other servers in the rack or row. In some embodiments, the rack can support a mix of servers that can choose between a primary and secondary ToR.

[0032] It should be understood that the methods described herein can be extended to two or more network devices, such as ToRs. For simplicity, two ToRs are used to illustrate the described example; however, in various implementations, these techniques can be extended to two or more ToRs (or other network devices). It should also be understood that the described techniques can be used with connectors other than QSFP connectors.

[0033] Figure 1 An example computing environment in which the embodiments described herein can be implemented is shown. Figure 1 A data center 100 is illustrated, configured to provide computing resources to users 100a, 100b, or 100c (which may be referred to as "user 100" in the singular or plural) via a communication network 130 and user computers 102a, 102b, and 102c (which may be referred to as "computer 102" in the singular or plural). The computing resources provided by the data center 100 may include various types of resources, such as computing resources, data storage resources, data communication resources, etc. Each type of computing resource may be general-purpose or may be available in various specific configurations. For example, computing resources may be available as virtual machines. Virtual machines may be configured to execute applications, including web servers, application servers, media servers, database servers, etc. Data storage resources may include file storage devices, block storage devices, etc. Each type or configuration of computing resources may be available in different configurations, such as the number of processors, the size of memory, and / or storage capacity. In some embodiments, resources may be provided to clients in units referred to as instances, such as virtual machine instances or storage instances. A virtual computing instance can be referred to as a virtual machine and can include, for example, one or more servers with specified computing capabilities (which can be specified by indicating the type and number of CPUs, main memory size, etc.) and specified software stacks (e.g., a specific version of an operating system, which can then run on top of a hypervisor).

[0034] Data center 100 may include servers 116a, 116b, and 116c (which may be referred to in the singular as "server 116" or in the plural as "multiple servers 116"), which provide computing resources available as virtual machines 118a and 118b (which may be referred to in the singular as "virtual machine 118" or in the plural as "virtual machine 118"). Virtual machine 118 may be configured to run applications such as web servers, application servers, media servers, database servers, etc. Other resources that may be provided include data storage resources (…). Figure 1 (Not shown in the image), and may include file storage devices, block storage devices, etc. Server 116 may also perform functions such as managing and controlling resource allocation in the data center, such as controller 115. Controller 115 may be a structure controller or another type of program configured to manage the allocation of virtual machines on server 116.

[0035] refer to Figure 1 The communication network 130 may be, for example, a publicly accessible network linked to another network, and may be operated by various entities such as the Internet. In other embodiments, the communication network 130 may be a private network, such as a corporate network that is completely or partially inaccessible to the public.

[0036] Communication network 130 can provide access to computer 102. Computer 102 can be a computer used by user 100. Computers 102a, 102b, or 102c can be servers, desktop or laptop personal computers, tablet computers, smartphones, set-top boxes, or any other computing devices capable of accessing data center 100. User computer 102a or 102b can be directly connected to the Internet (e.g., via a cable modem). User computer 102c can be located within data center 100 and can be directly connected to resources within data center 100 via an internal network. Although only three user computers 102a, 102b, and 102c are shown, it should be understood that multiple user computers are possible.

[0037] Computer 102 can also be used to configure various aspects of the computing resources provided by data center 100. For example, data center 100 can provide a web interface through which various aspects of its operation can be configured using a web browser application running on user computer 102. Alternatively, a standalone application running on user computer 102 can be used to access the application programming interface (API) exposed by data center 100 for performing configuration operations.

[0038] Server 116 can be configured to provide the aforementioned computing resources. One or more servers in server 116 can be configured to execute manager 110a or 110b (which can be referred to in the singular as "manager 110" or in the plural as "multiple managers 110"), which is configured to execute virtual machines. For example, manager 110 can be a virtual machine monitor (VMM), a structure controller, or another type of program configured to enable the execution of virtual machine 118 on server 116.

[0039] It should be understood that although the embodiments disclosed above are discussed in the context of virtual machines, other types of implementations can be used with the concepts and techniques disclosed herein. For example, the embodiments disclosed herein can also be used with computing systems that do not use virtual machines.

[0040] exist Figure 1 In the example data center 100 shown, router 111 can be used to interconnect servers 116a and 116b. Router 111 can also be connected to gateway 140, which is connected to communication network 130. Router 111 can manage communication within the network in data center 100, for example, by appropriately forwarding packets or other data communications based on the characteristics of such communication (e.g., header information including source and / or destination addresses, protocol identifiers, etc.) and / or the characteristics of the private network (e.g., routing based on network topology, etc.). It will be understood that, for simplicity, various aspects of the computing system and other devices in this example are illustrated without showing certain general details. In other embodiments, additional computing systems and other devices may be interconnected, and may be interconnected in different ways.

[0041] It should be understood that Figure 1 The network topologies shown have been greatly simplified, and a wider range of networks and networking devices can be used to interconnect the various computing systems disclosed herein. These network topologies and devices should be clear to those skilled in the art.

[0042] It should also be understood that Figure 1The data center 100 described herein is illustrative only and other implementations may be used. Furthermore, it should be understood that the functions disclosed herein can be implemented by software, hardware, or a combination of both. Other implementations should be apparent to those skilled in the art. It should also be understood that servers, gateways, or other computing devices may include any combination of hardware or software capable of interacting with and performing functions of the type described, including, but not limited to, desktop or other computers, database servers, network storage devices and other network devices, tablet computers, and various other devices including appropriate communication capabilities. Furthermore, in some embodiments, the functions provided by the illustrated modules may be combined in fewer modules or distributed across additional modules. Similarly, in some embodiments, the functions of some of the illustrated modules may not be provided and / or additional functions may be provided.

[0043] Figure 2A An example topology for implementing a two-cable network is shown. In one embodiment, the two cables may have four TX lines, four RX lines, and one or more control lines. For example, the control lines may include clock and I2C lines. Figure 2A A resilient network topology with switching is illustrated at a QSFP cable. Two Layer 0 ToR network elements 260 and 270 are shown. Switching chip 230 can be implemented in a dual-cable configuration that implements Layer 1 switching within the cable. One of the dual ToRs 260 and 270 is connected to server 210 via a switch.

[0044] In some embodiments, control and status signaling can be implemented to indicate the active communication path corresponding to one of the two ToRs. In some embodiments, control and status signaling can be implemented as in-band signals. In other embodiments, out-of-band control and status signaling can be implemented using existing wires in a dual cable.

[0045] In one embodiment, the control and status signals can be two-level active / standby signals or a serial bus with multi-master capability. Changes in active / standby status can be driven by either ToR. In some embodiments, if the primary ToR fails to generate a heartbeat message within a predetermined threshold, a secondary or subordinate ToR can initiate an exchange.

[0046] Figure 2B Another example topology for implementing a dual-cable network is shown. In this embodiment, the dual cables may have 4 Tx and 4 Rx, but no control lines from the ToRs are provided. In this example, NIC 215 may determine whether to control switching device 230 to switch between ToRs 260 or 270 based on the presence or absence of a BFD heartbeat for a predetermined threshold indicating whether the currently active ToR is communicating appropriately.

[0047] Figure 3A The example disclosed herein illustrates a software-based switching mechanism. In this example, a dual cable with connector 320 can be connected to different network interfaces at ToR1 330 and ToR2 340. Figure 3A As shown, ToR1 330 and ToR2 340 do not require direct communication coupling. Connector 320 can connect to the server-side interface and receive data, control, and optional power. Switch 340 can be controlled via control signals to select one of the network interfaces.

[0048] In this embodiment, a process can be executed to identify which ToR is the active switch and which ToR is the standby switch. The active and standby roles can determine whether the server will receive data from ToR1 330 or ToR2 340. The functionality used to determine the active ToR can be implemented based on the routing functionality on the ToR. Therefore, the server and its associated network interface devices (such as NICs) do not require new functionality.

[0049] In this embodiment, the same data can be transmitted from the network to two ToRs. The MUX mechanism 310 and controller 315 in connector 320 can be configured to exchange data between ToRs. In some embodiments, if an error or some type of inconsistency is detected, such as if the connection to one of the ToRs is faulty, the MUX mechanism 310 and controller 315 can determine which ToR is active. When exchanging ToRs, the Border Gateway Protocol (BGP) state of the ToRs can be updated.

[0050] In some embodiments, the switching mechanism can be implemented as a device such as a chip including multiplexing capabilities. In one example, a SERDES-based multiplexer can be implemented, which is configured to select a primary ToR. In one example, the multiplexer can be configured to provide eight separate TX / RX channels on a first side and eight separate TX / RX channels on a second side.

[0051] Figure 3B An example MUX 310 is shown that can connect to different network interfaces at ToR1 330 and ToR2 340. (e.g.) Figure 3A As shown, ToR1 310 has a transmit interface 360 ​​and a receive interface 362, and ToR2 320 has a transmit interface 364 and a receive interface 466. MUX 310 can be connected to server-side interface 357 via NIC TX 359 and NIC RX 355.

[0052] In this embodiment, the same data can be sent from the network from NIC TX 350 to two ToRs. NIC RX 355 only receives data from the active ToR. In this embodiment, attributes and utilities of networking protocols such as Ethernet can be used to enable a software-based mechanism to forward data from the active ToR to NIC RX 355. Utilities such as ARP ping for discovering and pinging network devices can be used to identify the active ToR. For example, ping packets can be transmitted to the probing host using the Address Resolution Protocol (ARP). The ping information allows the association of the host's MAC address with the receiving MAC address for the active ToR. This allows the host to resolve via MAC address, and both ToRs can determine whether they are active or inactive based on the ping information. Therefore, only traffic originating from the active ToR will be forwarded to NIC RX 355.

[0053] For example, both ToRs can send ARPing requests to the server. Since the MUX only allows traffic from the active ToR, the server only receives ARPing requests from the active ToR. The ARPing response can be sent by the server to the active ToR that identifies its MAC address, allowing packets with the correct destination MAC address to be forwarded over the network. Because the MUX broadcasts to both ToRs, the standby ToR still receives ARPing responses, but it can determine it is not the active ToR based on the ARPing response packets addressed to the active ToR. Packets with incorrect destination MAC addresses can then be discarded. Since each ToR can see the ARPing response packets and independently determine which is the active ToR, the performance penalty is minimal, or even nonexistent.

[0054] Other protocols can be used to allow the identification of the active ToR or to otherwise provide communication to the server. For example, in some embodiments, BGP can be used to allow the active ToR to forward traffic to the server. For instance, if the standby ToR receives any packet destined for the server, the standby ToR identifies it as the standby ToR, encapsulates the packet, and forwards it to the active ToR. The active ToR receives the encapsulated packet, identifies that it should be forwarded to the server, decapsulates the packet, and forwards it to the server via its active link.

[0055] Now go to Figure 4 An example operational procedure for implementing a fault resilience mechanism according to this disclosure is shown. This operational procedure can be implemented in a system comprising multiple servers and at least two top-of-rack switches. Reference Figure 4Operation 401 illustrates replicating data signals at the network interfaces of two top-of-rack switches on each of the two top-of-rack switches. In one embodiment, each network interface is communicatively coupled to a data cable having a switching mechanism configured to select one of the network interfaces of the two top-of-rack switches. In one embodiment, the data cable is communicatively coupled to one of a plurality of servers.

[0056] Operation 401 can be followed by operation 403. Operation 403 indicates the activation of a control signal to indicate an active communication path from the first of two top-of-rack switches to the communication coupling server. In this embodiment, the active communication path corresponds to the first of two network interfaces.

[0057] Operation 403 can be followed by operation 405. Operation 405 shows that, in response to the detection of a fault in the active communication path, the control signals are modified to instruct the switch to the second network interface of the two network interfaces corresponding to the second switch in the two top-of-rack switches.

[0058] Operation 405 can be followed by operation 407. Operation 407 shows the switching of the active communication path to the second of the two network interfaces via the switching mechanism of the data cable in response to the modified control signal.

[0059] In one embodiment, the data cable is a direct-attach cable (DAC). In another embodiment, the data cable is a QSFP28 cable. In yet another embodiment, the control signal is an out-of-band control plane signal implemented using conductors on the DAC. In some embodiments, the out-of-band control plane signal is one of two-level signals or a serial bus. In one embodiment, the control signal is carried on the I2C bus of the data cable.

[0060] In one embodiment, fault detection and modification control signals for active communication paths are performed by at least one of the two top-of-rack switches. In another embodiment, fault detection and modification control signals for active communication paths are performed by the network interface card (NIC) of the communication coupling server.

[0061] In one embodiment, a fault is detected when a network element in an active communication path fails to generate a heartbeat message within a predetermined duration.

[0062] Now go to Figure 4This document illustrates an example operational procedure for implementing a fault resilience mechanism according to this disclosure. It should be understood that the operations of the methods disclosed herein do not exist in any particular order, and it is possible and contemplated to perform some or all of the operations in one of several alternative orders. For ease of description and illustration, these operations have been presented in the order of demonstration. Operations may be added, omitted, and / or performed concurrently without departing from the scope of the appended claims.

[0063] It should also be understood that the method shown can end at any time and does not need to be fully executed. Some or all of the operations of the method and / or substantially equivalent operations can be performed by executing computer-readable instructions contained on a computer storage medium as defined below. The term "computer-readable instructions" and variations thereof, as used in this specification and claims, are used extensively herein to include routines, applications, application modules, program modules, programs, components, data structures, algorithms, etc. Computer-readable instructions can be implemented on a variety of system configurations, including single-processor or multi-processor systems, minicomputers, mainframe computers, personal computers, handheld computing devices, microprocessor-based programmable consumer electronics, combinations thereof, etc.

[0064] Therefore, it should be understood that the logical operations described herein are implemented (1) as a sequence of actions or program modules implemented by a computer running on a computing system and / or (2) as interconnected machine logic circuits or circuit modules within the computing system. Implementation is a matter of choice depending on the performance and other requirements of the computing system. Therefore, the logical operations described herein are referred to differently as states, operations, structural devices, actions, or modules. These operations, structural devices, actions, and modules can be implemented in software, firmware, dedicated digital logic, and any combination thereof.

[0065] For example, the operation of routine 700 is described herein as being implemented at least in part by a module that performs the features disclosed herein, and can be a dynamic link library (DLL), a static link library, a function generated by an application programming interface (API), a compiled program, an interpreted program, a script, or any other set of executable instructions. Data can be stored in a data structure within one or more memory components. Data can be retrieved from a data structure by addressing a link or reference to the data structure.

[0066] Although the following description refers to the components in the accompanying drawings, it will be understood that the operation of routine 400 can also be implemented in many other ways. For example, routine 400 can be implemented at least in part by the processor or local circuitry of another remote computer. Furthermore, one or more operations of routine 400 can alternatively or additionally be implemented at least in part by a chipset that works alone or in combination with other software modules. In the examples described below, one or more modules of the computing system can receive and / or process the data disclosed herein. Any services, circuitry, or applications suitable for providing the techniques disclosed herein can be used in the operations described herein.

[0067] The operation can be implemented in a system comprising multiple servers and at least two network devices. The servers are communicatively coupled to the network interfaces of the network devices using multiple data cables, each data cable including a switching device configured to switch communication paths to the coupled network devices. Each data cable communicatively couples each network device to one of the multiple servers, such that each server has a communication path to and from each network device. In one embodiment, the network devices do not arbitrate active / inactive states via direct communication. (Reference) Figure 4 Operation 401 shows the determination of the validity of a communication path from a first network device to a first communication coupling server, which corresponds to a first data cable that connects a first network interface to a first communication coupling server.

[0068] Operation 401 can be followed by operation 403. Operation 403 indicates that when it is determined that the communication path from the first network device is valid, the switching device of the first data cable connects the first network interface to the first communication coupling server.

[0069] Operation 403 can be followed by operation 405. Operation 405 shows the first network device sending a request packet to the first communication coupling server.

[0070] Operation 405 can be followed by operation 407. Operation 407 shows the second network device sending a request packet to the first communication coupling server.

[0071] Operation 407 can be followed by operation 409. Operation 409 shows a first network device and a second network device receiving a response packet from a first communication coupling server, wherein the response packet is generated solely based on a request packet sent by the first network device based on a first data cable connecting the first network interface to the first communication coupling server.

[0072] Operation 409 can be followed by operation 411. Operation 411 shows that the request packet sent by the first network device is acknowledged based on the data contained in the response packet, and the first network device determines that it is an active network device, wherein this determination is performed independently of communication with the second network device.

[0073] Operation 411 can be followed by operation 413. Operation 413 shows the first network device forwarding data packets to the first communication coupling server based on its status as an active network device.

[0074] In one embodiment, the method further includes, in response to detecting a failure in the communication path from the first network device, causing a switching device of the first data cable to connect a second network interface to the first communication coupling server, the second network interface providing a communication path from the second network device to the first communication coupling server.

[0075] In an embodiment, the method further includes:

[0076] The first network device and the second network device send the second request packet;

[0077] The first communication coupling server receives only request packets sent by the second network device via a first data cable that connects the second network interface to the first communication coupling server;

[0078] A second response packet is received from a first communication coupling server by a first network device and a second network device, wherein the second response packet is generated solely based on a request packet sent by the second network device;

[0079] Based on the data contained in the second response packet, the first network device and the second network device determine that the second network device is the active network device; and

[0080] The second network device forwards data packets to the first communication coupling server based on its status as an active network device.

[0081] In this embodiment, the request and response packets are ARPing packets.

[0082] In this embodiment, the request and response packets are BGP packets.

[0083] In one embodiment, the first network device is determined to be an active top-of-rack switch based on the response packet that designates the first network device as the destination address of the response packet.

[0084] In one embodiment, network elements based on the communication path generate heartbeat messages within a predetermined duration to determine validity.

[0085] In an embodiment, the method further includes:

[0086] The second network device receives data packets addressed to the first communication coupling server;

[0087] The data packets addressed to the first communication coupling server are encapsulated by the second network device; and

[0088] The encapsulated data packets are forwarded from the second network device to the first network device.

[0089] In an embodiment, the method further includes:

[0090] The first network device receives the encapsulated data packets;

[0091] The first network device decapsulates the encapsulated data packets; and

[0092] The first network device forwards the decapsulated data packets to the first communication coupling server.

[0093] Now go to Figure 5 This document illustrates an example operational procedure for implementing a fail-safe mechanism according to the present disclosure. This operational procedure can be implemented in a system comprising multiple servers and at least two switches. Multiple data cables may each have a switching device. Servers can be communicatively coupled to the network interfaces of the switches using the multiple data cables. The switching devices can be configured to switch communication paths between switches. Each data cable can communicatively couple a switch to one of the multiple servers. In an embodiment, when a communication path from a first switch to a first communication-coupled server is determined to be valid, the switching device of the first data cable connects a first network interface to the first communication-coupled server. The communication path corresponding to the first data cable can connect the first network interface to the first communication-coupled server.

[0094] refer to Figure 5 Operation 501 shows the request packet being sent by the first switch.

[0095] Operation 501 can be followed by operation 503. Operation 503 indicates that a request packet is sent by the second switch in the switch.

[0096] Operation 503 can be followed by operation 505. Operation 505 shows the first switch and the second switch receiving a response packet from the first communication coupling server.

[0097] Operation 505 can be followed by operation 507. Operation 507 indicates that the first switch has determined that it is the active switch.

[0098] Operation 507 can be followed by operation 509. Operation 509 shows the first switch forwarding data packets to the first communication coupling server based on its status as an active switch.

[0099] In this embodiment, the switch is also configured to:

[0100] In response to the detection of a fault in the communication path from the first switch, the switching device of the first data cable connects a second network interface to the first communication coupling server, the second network interface providing a communication path from the second switch to the first communication coupling server.

[0101] In this embodiment, the switch is also configured to:

[0102] The first and second switches send the second request packet;

[0103] The first communication coupling server receives only request packets sent by the second switch via the first data cable that connects the second network interface to the first communication coupling server;

[0104] The first switch and the second switch receive a second response packet from the first communication coupling server, wherein the second response packet is generated solely based on the request packet sent by the second switch;

[0105] Based on the data contained in the second response packet, the first and second switches determine that the second switch is the active switch; and

[0106] The second switch forwards data packets to the first communication coupling server based on its status as an active switch.

[0107] In one embodiment, the request and response packets are ARPing packets or BGP packets.

[0108] Now go to Figure 6 An example operational procedure for implementing a fault-tolerant mechanism according to this disclosure is illustrated. This operational procedure can be implemented in a system comprising multiple servers and at least two network devices. The network devices may have network interfaces communicatively coupled to the servers using a data cable, which includes a switching device configured to switch communication paths to the network devices. The data cable can communicatively couple the network devices to the servers, such that the servers have switchable communication paths to both the network devices and the second network device. In an embodiment, the network devices and the second network device do not arbitrate active / inactive states via direct communication. Reference Figure 6 Operation 601 shows the sending of a request packet.

[0109] Operation 601 can be followed by operation 603. Operation 603 illustrates receiving a response packet from a communication-coupled server. In an embodiment, the response packet is generated solely based on a request packet sent by the network device over the data cable connecting the network device to the communication-coupled server.

[0110] Operation 603 can be followed by operation 605. Operation 605 indicates that a request packet sent by a network device is acknowledged based on data contained in the response packet, and the network device determines that it is the active network device among a plurality of network devices.

[0111] Operation 605 can be followed by operation 607. Operation 607 shows a network device forwarding data packets to a communication-coupled server based on its status as an active network device.

[0112] In one embodiment, multiple servers are communicatively coupled to the network interfaces of multiple network devices using multiple data cables. Each data cable includes a switching device configured to switch communication paths to the coupled network device. Each data cable communicatively couples each network device to each of the multiple servers, such that each server has a communication path to each network device and a switchable communication path from each network device.

[0113] In this embodiment, the data cable is a direct attachment cable (DAC).

[0114] In this embodiment, the request and response packets are ARPing packets.

[0115] In this embodiment, the request and response packets are BGP packets.

[0116] In one embodiment, a network device is determined to be an active network device based on a response packet that specifies the network device as the destination address of the response packet.

[0117] In this embodiment, the network device is also configured to:

[0118] Send the second request packet;

[0119] Receive a second response packet from the first communication coupling server, wherein the second response packet; and

[0120] Based on the data contained in the second response packet, the network device determines that it is a backup network device among multiple network devices.

[0121] This document describes various aspects of this disclosure with respect to certain examples and embodiments intended to illustrate, but not be limited to, this disclosure. It should be understood that the subject matter presented herein can be implemented as a computer process, a computer-controlled device, a computing system, an article of manufacture such as a computer-readable storage medium, or a component comprising hardware logic for implementing functions, such as a field-programmable gate array (FPGA) device, a massively parallel processor array (MPPA) device, a graphics processing unit (GPU), an application-specific integrated circuit (ASIC), a multiprocessor system-on-a-chip (MPSoC), etc. Components may also include other ways of utilizing the device to perform functions, for example, a) where at least some tasks are implemented in hard ASIC logic, etc.; b) where at least some tasks are implemented in soft (configurable) FPGA logic, etc.; c) where at least some tasks run as software over an FPGA software processor, etc.; d) where at least some tasks run as software over a hard ASIC processor, etc., or any combination thereof. Components can represent a homogeneous collection of hardware acceleration devices, such as an FPGA device. On the other hand, components can represent a heterogeneous collection of different types of hardware acceleration devices, including different types of FPGA devices with different processing capabilities and architectures, a mixture of FPGA devices and other types of hardware acceleration devices, etc.

[0122] Those skilled in the art will also understand that the subject matter described herein can be practiced on or in combination with other computer system configurations besides those described herein, including multiprocessor systems. The embodiments described herein can also be implemented in a distributed computing environment, where tasks are performed by remote processing devices linked via a communication network. In a distributed computing environment, program modules can reside on both local and remote memory storage devices.

[0123] A network established by or on behalf of a user can be referred to as a service provider to offer one or more services (such as various types of cloud-based computing or storage) accessible via the Internet and / or other networks to a distributed set of clients. Such a network may include one or more data centers, such as… Figure 1 The data center 100 shown is configured to host physical and / or virtual computer servers, storage devices, networking devices, etc., and can be used to implement and distribute infrastructure and services provided by service providers.

[0124] In some embodiments, a server implementing some or all of the technologies described herein, including technologies for implementing network traffic capture, may include a general-purpose computer system that includes or is configured to access one or more computer-accessible media. Figure 7A general-purpose computing device 700 is illustrated. In the illustrated embodiment, the computing device 700 includes one or more processors 710a, 710b, and / or 710n (which may be referred to herein as "processor 710a" in the singular or "a plurality of processors 710a to 710n") coupled to system memory 720 via an input / output (I / O) interface 770. The computing device 700 also includes a network interface 740 coupled to the I / O interface 770.

[0125] In various embodiments, computing device 700 may be a single-processor system including one processor 710a or a multiprocessor system including a plurality of processors 710a to 710n (e.g., two, four, eight, or another suitable number). Processor 710a may be any suitable processor capable of executing instructions. For example, in various embodiments, processor 710a may be a general-purpose or embedded processor implementing any of a variety of instruction set architectures (ISAs), such as x86, PowerPC, SPARC, or MIPS ISA or any other suitable ISA. In a multiprocessor system, each of the processors 710a to 710n may typically, but not necessarily, implement the same ISA.

[0126] System memory 720 can be configured to store instructions and data accessible to processor(s) 710a. In various embodiments, system memory 720 can be implemented using any suitable memory technology, such as static random access memory (SRAM), synchronous dynamic RAM (SDRAM), non-volatile / flash memory, or any other type of memory. In the illustrated embodiment, program instructions and data implementing one or more desired functions, such as the methods, techniques, and data described above, are shown stored within system memory 720 as code 725 and data 726.

[0127] In one embodiment, I / O interface 770 may be configured to coordinate I / O traffic between processor 710a, system memory 720, and any peripheral devices (including network interface 740 or other peripheral interfaces) within the device. In some embodiments, I / O interface 770 may perform any necessary protocol, timing, or other data transformations to convert data signals from one component (e.g., system memory 720) into a format suitable for use by another component (e.g., processor 710a). In some embodiments, I / O interface 770 may include support for devices attached via various types of peripheral bus standards, such as variations of the Peripheral Component Interconnect (PCI) bus standard or the Universal Serial Bus (USB) standard. In some embodiments, the functionality of I / O interface 770 may be divided into two or more separate components. Furthermore, in some embodiments, some or all of the functionality of I / O interface 770, such as the interface to system memory 720, may be directly integrated into processor 710a.

[0128] Network interface 740 can be configured to allow data exchange between computing device 700 and one or more other devices 760 attached to one or more networks 750, for example... Figures 1 to 4 Other computer systems or devices shown. For example, in various embodiments, network interface 740 may support communication via any suitable wired or wireless general-purpose data network, such as Ethernet network type. Furthermore, network interface 740 may support communication via telecommunications / telephone networks such as analog voice networks or digital fiber optic communication networks, via storage area networks such as Fibre Channel SANs, or via any other suitable type of network and / or protocol.

[0129] In some embodiments, system memory 720 may be an embodiment of a computer-accessible medium configured to store the above-described features. Figures 1 to 7The described embodiments of the methods and apparatus include program instructions and data. However, in other embodiments, program instructions and / or data may be received, transmitted, or stored on different types of computer-accessible media. Computer-accessible media may include non-transient storage media or memory media, such as magnetic or optical media, for example, a disc or DVD / CD coupled to computing device 700 via I / O interface 770. Non-transient computer-accessible storage media may also include any volatile or non-volatile media, such as RAM (e.g., SDRAM, DDR SDRAM, RDRAM, SRAM, etc.), ROM, etc., which may be included as system memory 720 or another type of memory in some embodiments of computing device 700. Furthermore, computer-accessible media may include transmission media transmitted via communication media such as networks and / or wireless links, or signals such as electrical, electromagnetic, or digital signals, such as those that can be implemented via network interface 740. In various embodiments, such as... Figure 7 The described functionality may be implemented in part or in whole by the multiple computing devices shown; for example, software components running on various different devices and servers may cooperate to provide the functionality. In some embodiments, in addition to or instead of using a general-purpose computer system, a portion of the described functionality may be implemented using storage devices, network devices, or dedicated computer systems. The term "computing device" as used herein refers to at least all of these types of devices, but is not limited to them.

[0130] Various storage devices and their associated computer-readable media provide non-volatile storage for the computing devices described herein. The computer-readable media discussed herein can refer to mass storage devices such as solid-state drives, hard disks, or CD-ROM drives. However, those skilled in the art will understand that computer-readable media can be any available computer storage medium accessible by the computing device.

[0131] By way of example and not limitation, computer storage media can include volatile and non-volatile, removable and non-removable media implemented with any method or technology for storing information such as computer-readable instructions, data structures, program modules or other data. For example, computer media includes, but is not limited to, RAM, ROM, EPROM, EEPROM, flash memory or other solid-state memory technologies, CD-ROM, digital versatile disc (“DVD”), HD-DVD, BLU-RAY or other optical storage, cassette tape, magnetic tape, disk storage or other magnetic storage devices, or any other medium that can be used to store desired information and is accessible by the computing devices discussed herein. For the purposes of the claims, the phrases “computer storage medium,” “computer-readable storage medium,” and variations thereof do not include waves, signals, and / or other transient and / or intangible communication media themselves.

[0132] Encoding the software modules presented herein can also transform the physical structure of the computer-readable medium presented herein. In different implementations of this specification, the specific transformation of the physical structure can depend on various factors. Examples of these factors may include, but are not limited to, the technology used to implement the computer-readable medium, regardless of whether the computer-readable medium is characterized as primary or secondary storage. For example, if the computer-readable medium is implemented as a semiconductor-based memory, the software disclosed herein can be encoded on the computer-readable medium by transforming the physical state of the semiconductor memory. For example, the software can transform the state of transistors, capacitors, or other discrete circuit elements constituting the semiconductor memory. The software can also transform the physical state of these components to store data thereon.

[0133] As another example, the computer-readable medium disclosed herein can be implemented using magnetic or optical techniques. In such an implementation, when software is encoded therein, the software presented herein can transform the physical state of the magnetic or optical medium. These transformations may include altering the magnetic properties of a specific location within a given magnetic medium. These transformations may also include altering the physical characteristics or properties of a specific location within a given optical medium to change the optical properties of those locations. Other transformations of the physical medium are also possible without departing from the scope and spirit of this specification; the foregoing examples are provided only for the convenience of this discussion.

[0134] In light of the foregoing, it should be understood that many types of physical transformations occur in the disclosed computing device in order to store and execute the software components and / or functions presented herein. It is also conceivable that the disclosed computing device may not include… Figure 7 All of the components shown may include Figure 7 Other components not explicitly shown in the document, or those that can be used with... Figure 7 The architecture shown is completely different.

[0135] Although various configurations have been described in language specific to structural features and / or methodological actions, it should be understood that the subject matter defined in the appended representations is not necessarily limited to the specific features or actions described. Rather, specific features and actions are disclosed as exemplary forms for implementing the claimed subject matter.

[0136] The conditional language used herein, such as “can,” “may,” “may,” “e.g.,” etc., among others, is generally intended to convey that some embodiments include certain features, elements, and / or steps, while other embodiments do not, unless otherwise specifically stated or otherwise understood in the context in which they are used. Therefore, such conditional language is not generally intended to imply that one or more embodiments require features, elements, and / or steps in any way, or that one or more embodiments must include logic for determining, with or without author input or prompting, whether such features, elements, and / or steps are included or will be performed in any particular embodiment. The terms “comprising,” “including,” “having,” etc., are synonymous and used inclusively in an open-ended manner, and do not exclude additional elements, features, actions, operations, etc. Furthermore, the term “or” is used inclusively (not exclusively), so when the term “or” is used to connect a list of elements, the term “or” indicates one, some, or all of the elements in the list.

[0137] While certain exemplary embodiments have been described, these embodiments are presented by way of example only and are not intended to limit the scope of the invention disclosed herein. Therefore, nothing in the foregoing description is intended to imply that any particular feature, characteristic, step, module, or block is necessary or indispensable. In fact, the novel methods and systems described herein can be implemented in a variety of other forms; furthermore, various omissions, substitutions, and changes can be made to the form of the methods and systems described herein without departing from the spirit of the invention disclosed herein. The appended claims and their equivalents are intended to cover forms or modifications that fall within the scope and spirit of certain inventions disclosed herein.

[0138] It should be understood that any references to "first," "second," etc., and / or abstract concepts in the specification are not and should not be construed as necessarily corresponding to any references to "first," "second," etc., in the claims. Specifically, in the content of this invention and / or the subsequent detailed embodiments, items and / or abstract concepts such as, for example, the various computing devices and / or operating states of a computing cluster can be distinguished by numerical identifiers, without corresponding to such designations in the claims or even other paragraphs in the content of this invention and / or detailed embodiments. For example, any designation of a "first operating state" and "second operating state" of a computing cluster within a paragraph of this disclosure is only used to distinguish two different operating states of the computing cluster within that particular paragraph—not in any other paragraph, and especially not in the claims.

[0139] Finally, while various techniques have been described in language specific to structural features and / or methodological actions, it should be understood that the subject matter defined in the appended representations is not necessarily limited to the specific features or actions described. Rather, specific features and actions are disclosed as exemplary forms for realizing the claimed subject matter.

Claims

1. A method for routing data in a network comprising a plurality of servers and at least two network devices, the servers being communicatively coupled to network interfaces of the network devices using a plurality of data cables, each data cable including a switching device configured to switch communication paths to the coupled network devices, each data cable communicatively coupling each of the network devices to one of the plurality of servers, such that each of the servers has a communication path to each of the network devices and a switchable communication path from each of the network devices, wherein the network devices do not arbitrate active / inactive states via direct communication, the method comprising: Determine the validity of a communication path from a first network device in the network devices to a first communication coupling server in the communication coupling server, the communication path corresponding to a first data cable in the data cable connecting a first network interface in the network interfaces to the first communication coupling server; When the communication path from the first network device is determined to be valid, the switching device of the first data cable connects the first network interface to the first communication coupling server. The first network device sends a request packet to the first communication coupling server; A request packet is sent from a second network device in the network device to the first communication coupling server, wherein the first communication coupling server only receives the request packet sent by the first network device based on the first data cable that connects the first network interface to the first communication coupling server; The first network device and the second network device receive a response packet from the first communication coupling server, wherein the response packet is generated solely based on the request packet; Based on the data contained in the response packet, the request packet sent by the first network device is acknowledged, the first network device determines that the first network device is an active network device, wherein the determination is performed independently of communication with the second network device, and the second network device determines that the second network device is a standby device, wherein the determination is performed independently of communication with the first network device; as well as The first network device forwards data packets to the first communication coupling server based on its status as the active network device. In response to detecting a fault in the communication path from the first network device, the switching device of the first data cable connects the second network interface to the first communication coupling server. The first network device and the second network device send a second request packet; The first network device and the second network device receive a second response packet from the first communication coupling server, wherein the second response packet is generated based on the request packet sent by the second network device; Based on the second response packet, the first network device and the second network device determine that the second network device is an active network device; as well as The second network device forwards data packets to the first communication coupling server based on its status as the active network device.

2. The method of claim 1, wherein the second network interface provides a communication path from the second network device in the network device to the first communication coupling server.

3. The method according to claim 2, further comprising: The first communication coupling server receives only the request packets sent by the second network device via the first data cable that connects the second network interface to the first communication coupling server.

4. The method of claim 1, wherein the request packet and the response packet are ARPing packets.

5. The method of claim 1, wherein the request packet and the response packet are BGP packets.

6. The method of claim 1, wherein determining that the first network device is an active top-of-rack switch designates the first network device as the destination address for the response packet based on the response packet.

7. The method of claim 1, wherein the determination of validity is based on the generation of a heartbeat message for a predetermined duration by network elements of the communication path.

8. The method according to claim 1, further comprising: The second network device receives data packets addressed to the first communication coupling server; The data packets addressed to the first communication coupling server are encapsulated by the second network device; as well as The encapsulated data packets are forwarded from the second network device to the first network device.

9. The method according to claim 8, further comprising: The first network device receives the encapsulated data packets; The first network device decapsulates the encapsulated data packets; as well as The first network device forwards the decapsulated data packets to the first communication coupling server.

10. A system for a network, comprising: Multiple servers; At least two switches; as well as Multiple data cables, each with its own switching equipment. The server is communicatively coupled to the network interface of the switch using the plurality of data cables, the switching device is configured to switch communication paths between the switches, and each of the data cables communicatively couples the switch to one of the plurality of servers, such that each of the servers has a communication path to each of the switches and a switchable communication path from each of the switches. Wherein, when the communication path from the first switch in the switch to the first communication coupling server is determined to be valid, the switching device of the first data cable connects the first network interface to the first communication coupling server, and the communication path corresponds to the first data cable of the data cable that connects the first network interface to the first communication coupling server; The switch is configured as follows: The first switch sends a request packet to the first communication coupling server; A request packet is sent from a second switch to the first communication coupling server, wherein the first communication coupling server only receives the request packet sent by the first switch based on the first data cable that connects the first network interface to the first communication coupling server; The first switch and the second switch receive response packets from the first communication coupling server, wherein the response packets are generated solely based on the request packets; Based on the data contained in the response packet indicating that the request packet sent by the first switch has been acknowledged, the first switch is determined to be the active switch independently of its communication with the second switch, and the second switch is determined to be a standby device independently of its communication with the first switch; and The first switch forwards data packets to the first communication coupling server based on its status as the active switch. In response to detecting a fault in the communication path from the first switch, the switching device of the first data cable connects the second network interface to the first communication coupling server. The first switch and the second switch send the second request packet; The first switch and the second switch receive a second response packet from the first communication coupling server, wherein the second response packet is generated based on the request packet sent by the second switch; Based on the second response packet, the first switch and the second switch determine that the second switch is the active switch; and The second switch forwards data packets to the first communication coupling server based on its status as the active switch.

11. The system of claim 10, wherein the second network interface provides a communication path from the second switch of the switch to the first communication coupling server.

12. The system of claim 11, wherein the switch is further configured to: The first communication coupling server receives only the request packets sent by the second switch based on the first data cable that connects the second network interface to the first communication coupling server.

13. The system of claim 10, wherein the request packet and the response packet are ARPing packets or BGP packets.

14. A network device including a processor and a network interface, the network interface of the network device being communicatively coupled to a server via a data cable, the data cable including a switching device configured to switch a communication path to the network device, the data cable communicatively coupling the network device to the server such that the server has communication paths to the network device and a second network device, as well as switchable communication paths from the network device and the second network device, wherein the network device and the second network device do not arbitrate active / inactive states via direct communication, the network device being configured to: Send a request packet to the server; Receive a response packet from the communication coupling server, wherein the response packet is generated solely based on the request packet sent by the network device over the data cable connecting the network device to the communication coupling server; Based on the data contained in the response packet, indicating that the request packet sent by the network device has been acknowledged, the network device determines that the network device is an active network device or a backup device among a plurality of network devices; The network device forwards a data packet to the communication coupling server based on the data contained in the response packet indicating that the network device is the active network device; In response to detecting a fault in the communication path from the network device, the switching device of the data cable connects a second network interface to the server; Send a second request packet to the server; Receive a second response packet from the communication coupling server, wherein the second response packet is generated solely based on a request packet sent by the second network device over the data cable connecting the second network device to the communication coupling server; as well as Based on the data included in the second response packet, the network device determines that the network device is a backup network device among the plurality of network devices and that the second network device is an active network device.

15. The network device of claim 14, wherein a plurality of servers are communicatively coupled to network interfaces of the plurality of network devices using a plurality of data cables, each data cable including a switching device configured to switch communication paths to the coupled network devices, each data cable communicatively coupling each network device to one of the plurality of servers, such that each server has a communication path to each network device and a switchable communication path from each network device.

16. The network device of claim 15, wherein the data cable is a direct-attach cable DAC.

17. The network device of claim 14, wherein the request packet and the response packet are ARPing packets.

18. The network device of claim 14, wherein the request packet and the response packet are BGP packets.

19. The network device of claim 14, wherein determining that the network device is an active network device is based on designating the network device as the destination address for the response packet.

Citation Information

Patent Citations

  • Server redundant network paths

    US20200186460A1