US9455870B1 - Achieving balanced interconnectivity in a computer network - Google Patents
Achieving balanced interconnectivity in a computer network Download PDFInfo
- Publication number
- US9455870B1 US9455870B1 US13/921,578 US201313921578A US9455870B1 US 9455870 B1 US9455870 B1 US 9455870B1 US 201313921578 A US201313921578 A US 201313921578A US 9455870 B1 US9455870 B1 US 9455870B1
- Authority
- US
- United States
- Prior art keywords
- communication links
- network
- nodes
- network nodes
- assigning
- Prior art date
- Legal status (The legal status 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 status listed.)
- Active, expires
Links
- 238000004891 communication Methods 0.000 claims abstract description 152
- 238000000034 method Methods 0.000 claims abstract description 34
- 230000003287 optical effect Effects 0.000 claims description 9
- 238000010586 diagram Methods 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 2
- 230000004044 response Effects 0.000 description 2
- 238000004590 computer program Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000007639 printing Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/12—Discovery or management of network topologies
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/0823—Configuration setting characterised by the purposes of a change of settings, e.g. optimising configuration for enhancing reliability
Definitions
- Intra-datacenter networks interconnect the computing infrastructure (servers, disks) within the same building or among different buildings of a datacenter campus; inter-datacenter networks connect multiple datacenters distributed at different geographic locations.
- Many modern high-speed data links use optical transmission technologies via optical fibers for both intra- and inter-datacenter networks.
- aspects and implementations of the present disclosure are directed to systems and methods for achieving balanced interconnectivity in a computer network.
- At least one aspect is directed to a computer-implemented method for configuring a network.
- the method can include providing N network nodes. Each network node can form M communication links with other network nodes.
- the method can include assigning, between each pair of network nodes, a number of communication links equal to the largest integer not greater than the quotient of M divided by (N ⁇ 1).
- the method can include assigning the remaining communication links such that a graph represented by the network nodes and communication links is substantially geometrically symmetric.
- At least one aspect is directed to a system for configuring a network.
- the system can include a data processing system having at least one of a topology analysis module, a network configuration module, and a configuration dissemination module.
- the data processing system can be configured to provide N network nodes. Each network node can form M communication links with other network nodes.
- the data processing system can be configured to assign, between each pair of network nodes, a number of communication links equal to the largest integer not greater than the quotient of M divided by (N ⁇ 1).
- the data processing system can be configured to assign the remaining communication links such that a graph represented by the network nodes and communication links is substantially geometrically symmetric.
- At least one aspect is directed to a non-transitory computer readable storage medium having instructions encoded thereon which, when executed by a processor, cause the processor to perform a method for configuring a network.
- the method can include providing N network nodes. Each network node can form M communication links with other network nodes.
- the method can include assigning, between each pair of network nodes, a number of communication links equal to the largest integer not greater than the quotient of M divided by (N ⁇ 1).
- the method can include assigning the remaining communication links such that a graph represented by the network nodes and communication links is substantially geometrically symmetric.
- FIG. 1 is a diagram of a data center, according to an illustrative implementation.
- FIG. 2 is a block diagram of a network configuration system, according to an illustrative implementation.
- FIG. 3A is an example network whose links are assigned in an unbalanced fashion, according to an illustrative implementation.
- FIG. 3B shows the interconnectivity slack of the network shown in FIG. 3A , according to an illustrative implementation.
- FIG. 4A is another example network whose links are assigned in an unbalanced fashion, according to an illustrative implementation.
- FIG. 4B shows the interconnectivity slack of the network shown in FIG. 4A , according to an illustrative implementation.
- FIG. 5A is an example network whose links are assigned in a balanced fashion, according to an illustrative implementation.
- FIG. 5B shows the interconnectivity slack network shown in FIG. 5A , according to an illustrative implementation.
- FIG. 6 is a flow diagram of a process for configuring a network, according to an illustrative implementation.
- FIG. 7A is an example of a balanced network after a first configuration step, according to an illustrative implementation.
- FIG. 7B is an example of the balanced network of FIG. 7A after a second configuration step, according to an illustrative implementation.
- FIG. 7C is an example of the balanced network of FIG. 7A after a third configuration step, according to an illustrative implementation.
- FIG. 7D is an example of the balanced network of FIG. 7A after a final configuration step, according to an illustrative implementation.
- FIG. 1 is a block diagram of an example data center 100 .
- the data center 100 includes several interconnected superblocks 102 (also referred to as “pods”). Each superblock 102 may include many hundreds, and in some implementations over one thousand, servers 104 arranged in server racks 106 .
- the superblocks 102 are communicatively coupled to one another by optical and/or electrical communication links 108 .
- Each superblock 102 includes an intra-superblock switch 112 for routing communications among the racks 106 included in the superblock 102 or to an inter-superblock block switch 114 , which routes data communications between superblocks 102 .
- An inter-superblock switch 114 may include any number of network ports for sending and receiving data from other superblocks 102 in the data center 100 .
- Each network port can support a communication link, for example by connecting to an Ethernet cable, fiber optic cable, or any other means for data transmission. While the data center 100 is shown with six superblocks 102 , it should be appreciated that any number of superblocks 102 may be included in the data center 100 , and that each superblock may include any number of communication links 108 to other superblocks 102 in the data center 100 .
- each superblock 102 includes a large number of servers 104 .
- a superblock 102 may include hundreds or more than one thousand servers.
- the servers 104 are arranged in server racks 106 .
- a top-of-rack switch 116 routes data communications between servers 104 within a given rack 106 and from servers within the rack to the intra-superblock switch 112 .
- the intra-superblock switch 112 may include multiple switches arranged in a hierarchical fashion.
- Each server 104 includes at least one processor, a memory, and a network interface card (NIC), coupled to one another via a data bus.
- the processor executes computer executable instructions stored in the memory to implement a wide variety of applications and operations.
- the processor executes computer executable code associated with a hypervisor, also referred to as a virtual machine manager.
- a hypervisor is an application that creates and manages virtual machines, providing the virtual machines with a virtual operating platform.
- the virtual machines in turn, share the physical resources of the server 104 , and execute a variety of applications in isolated environments instantiated by the hypervisor.
- Data communications originating from an application within a virtual machine to other physical or virtual machines are also managed by the hypervisor.
- the hypervisor directs communications to off-server devices or virtual machines to the NIC, which the hypervisor controls in part through a NIC driver module.
- Fairness and throughput guarantees for communication between superblocks 102 in such a network can vary based on the configuration of links between the superblocks 102 .
- the number of network ports on the inter-superblock switch 114 of each superblock 102 can be larger than the total number of superblocks 102 in the data center 100 . Therefore, the data center 100 can be configured so that each superblock 102 is connected to each other superblock 102 by a common number of communication links.
- the number of network ports on the inter-superblock switch 114 is not a multiple of the number of other superblocks 102 , there will still be unused network ports on the inter-superblock switch 114 after each superblocks 102 has been connected to all of the other superblocks 102 by a common number of communication links.
- Interconnectivity slack links may be allocated in a number of ways. However, some interconnectivity slack configurations may result in higher minimum throughput between superblocks 102 than other configurations.
- Systems and processes are disclosed that can configure a network such as the data center 100 to achieve balanced interconnectivity between substantially all network nodes (e.g., superblocks 102 ).
- a network shared by data flows e.g., the backlogged superblocks 102
- the inter-superblock connectivity should be as uniform as possible and the resulting topology should be as symmetric across all superblock pairs as possible.
- the concepts of balanced interconnectivity and symmetric network topologies are further illustrated below.
- FIG. 2 is a block diagram of a network configuration system 200 , according to an illustrative implementation.
- the network configuration system 200 includes a topology analysis module 210 , a network configuration module 220 , a configuration dissemination module 230 , and a database 240 .
- the components of the network configuration system 200 work to determine initial parameters of a network, generate a network configuration, and disseminate the network configuration information.
- the configuration generated by the system 200 can help to achieve balanced interconnectivity among the nodes in the network, as discussed above.
- One exemplary process that can be executed by the system 200 to configure a network is described below in connection with FIG. 6 .
- the components of the network configuration system 200 can be implemented by special purpose logic circuitry, e.g., an FPGA (field programmable gate array) or an ASIC (application-specific integrated circuit).
- the components of the network configuration system 200 can be implemented by a general purpose processor.
- the components can also include, in addition to hardware, code that creates an execution environment for computer programs, e.g., code that constitutes processor firmware, a protocol stack, a database management system, an operating system, a cross-platform runtime environment, a virtual machine, or a combination of one or more of these.
- the network configuration system 200 can implement methods to determine a configuration for a network such as the data center 100 shown in FIG. 1 .
- a network can be configured based on the number of nodes N (i.e., superblocks) in the network and the number of communication links M supported by each node (i.e., the number of network ports on each inter-superblock switch).
- the topology analysis module 210 can determine values for the parameters N and M to be used in such an algorithm.
- the computer network can include all of the superblocks in a data center, and the number N can represent the total number of superblocks to be included in the data center.
- the network configuration system 200 can be a computing device located within the data center or otherwise connected to the data center.
- the topology analysis module 210 can determine the number of superblocks, for example, by broadcasting a request to all superblocks in the data center and determining the total number of unique responses received from superblocks. In some implementations, the number N can then be stored in the database 240 for later retrieval.
- the topology analysis module 210 can also determine the number of possible connections of each node in the network (M). For example, if at least one communication link connects all of the nodes in the network, the topology analysis module 210 can query the nodes by broadcasting a request. For example, the topology analysis module 210 can broadcast a request for superblocks to identify the type of switches used to implement the inter-superblock switch within each superblock. Based on the responses received, the topology analysis module 210 can determine the number of possible connections for each switch. For example, nodes may be identified by a manufacturer and model number, and the topology analysis module 210 can determine the number of ports associated with each particular node based on manufacturer descriptions. Such descriptions can be stored in the database 240 , for example.
- the topology analysis module 210 can instead determine the parameter values by retrieving them from the database 240 .
- the topology analysis module 210 may receive configuration information for the network components as input from a human operator, and may assign parameter values as discussed above. All of the parameter values can then be stored in the database 240 .
- the network configuration module 220 can define the communication links between nodes in the network. For example, the network configuration module 220 can perform the steps of a configuration method, an example of which is described below in connection with FIG. 6 . In some implementations, the network configuration module 220 can obtain the parameter values required for execution of the algorithm from the database 240 , where they can be stored, for example, by the topology analysis module 210 . In other implementations, the network configuration module 220 can obtain the parameter values directly from the topology analysis module 210 .
- the network configuration module 220 then performs the steps of the algorithm to determine the network links. For example, the network configuration module 210 can determine the quotient of M divided by (N ⁇ 1). This quotient can be used to determine the number Q of communication links to be assigned between each pair of network nodes. The links formed from the remaining unused network ports are the interconnectivity slack, as defined above in connection with FIG. 1 . The network configuration module 220 can then determine how to allocate interconnectivity slack links among the remaining unused network ports. In some implementations, the network configuration module 200 can configure the network so that the interconnectivity slack links are allocated in a balanced fashion.
- the configuration dissemination module 230 can transmit the information corresponding to the network configuration determined by the network configuration module 220 .
- the nodes in the network can be connected via dynamic optical links.
- the configuration dissemination module 230 can transmit the network configuration information to a controller, which can implement the network configuration by linking the nodes in the network according to the network configuration received from the configuration dissemination module 230 .
- the controller can be an optical switch controller configured to optically link the selected network nodes.
- the configuration dissemination module 230 can transmit the network configuration to a human operator, for example by printing the network configuration information to a file. The human operator can then manually configure the network according to the network configuration received from the configuration dissemination module 230 .
- FIGS. 3A-5B Examples of networks whose interconnectivity slack is allocated in an unbalanced configuration, are provided below in connection with FIGS. 3A-5B .
- a process for achieving a balanced network and an example of a balanced network are then discussed in connection with FIGS. 6-7D .
- FIG. 3A is an example network 300 whose links are assigned in an unbalanced fashion, according to an illustrative implementation.
- the network 300 includes six nodes 322 0 - 322 5 , generally referred to as nodes 322 .
- Each of the nodes 322 is assigned a sequential integer index value beginning from 0.
- each node 322 in the network 300 represents a superblock in a data center, such as the superblocks 102 of the data center 100 shown in FIG. 1 .
- Each node 322 includes seven communication links to other nodes 322 in the network 300 . Communication links are shown by the lines interconnecting pairs of nodes 322 in the network 300 .
- each node 322 supports more communication links than there are other nodes 322 in the network 300 , there are some pairs of nodes 322 that are connected by more than one communication link. Dashed lines represent a single communication link, while solid lines represent two communication links. For example, node 322 0 is connected to node 322 5 by one communication link and to node 322 1 by two communication links.
- Each node 322 is connected by at least one link to each other node 322 in the network 300 .
- the additional links referred to as interconnectivity slack, are distributed in an unbalanced fashion, leading to suboptimal fairness and throughput characteristics of the network 300 .
- the interconnectivity slack can be seen more clearly in FIG. 3B .
- FIG. 3B shows the interconnectivity slack of the network 300 shown in FIG. 3A , according to an illustrative implementation.
- the network 300 is shown with a single link removed from every pair of nodes 322 .
- the remaining links i.e., the interconnectivity slack
- the interconnectivity slack shown in FIG. 3B is unbalanced. Additional network traffic can be routed between nodes 0, 1, and 2, or between nodes 3, 4, and 5. However, with the links shown, it is not possible to route additional traffic from any of nodes 0, 1, and 2 to nodes 3, 4, and 5. This is because the interconnectivity slack in the network 300 has been allocated in an unbalanced manner. For example, there are two additional paths for routing network traffic between nodes 0 and 1 (i.e., the direct path, and the path through node 2), but there is no additional path for routing traffic between nodes 0 and 3. It can therefore be said that extra throughput capacity has been allocated to nodes 0 and 1 at the expense of throughput capacity between nodes 0 and 3, due to the unbalanced configuration of the network 300 .
- FIG. 4A is another example network 400 whose links are assigned in an unbalanced fashion, according to an illustrative implementation.
- the network 400 includes six nodes 422 0 - 422 5 , generally referred to as nodes 422 .
- Each of the nodes 422 is assigned a sequential integer index value beginning from 0.
- the nodes 422 each support seven communication links.
- the primary difference between the network 400 and the network 300 is the allocation of the communication links.
- Dashed lines again represent a single communication link between nodes 422 , while bold lines represent three communication links. Each pair of nodes 422 is connected by at least one communication link. The additional remaining links (i.e., the interconnectivity slack) are illustrated in FIG. 4B .
- FIG. 4B shows the interconnectivity slack of the network 400 shown in FIG. 4A , according to an illustrative implementation.
- a single communication link has been removed from each pair of nodes 422 to more clearly illustrate the interconnectivity slack in the network 400 .
- a solid line between a pair of nodes 422 represents two additional communication links.
- additional network traffic can be routed between nodes 0 and 1, nodes 2 and 3, and nodes 4 and 5.
- each of those three pairs includes two additional slack communication links.
- there are several other node pairs that are not connected by any slack links e.g., nodes 0 and 2 have no slack links connecting them).
- the communication links in the network 400 have been assigned in an unbalanced way, which results in unfair network throughput. Rearranging the communication links in a balanced way can help to overcome this problem.
- FIG. 5A is an example network 500 whose links are assigned in a balanced fashion, according to an illustrative implementation.
- the network 500 includes six nodes 522 0 - 522 5 , generally referred to as nodes 522 .
- Each of the nodes 522 is assigned a sequential integer index value beginning from 0.
- the nodes 522 each support seven communication links. Dashed lines represent a single communication link between nodes 522 , while solid lines represent two communication links.
- Each pair of nodes 522 is connected by at least one communication link.
- the additional remaining links i.e., the interconnectivity slack
- FIG. 5B shows the interconnectivity slack of the network 500 shown in FIG. 5A , according to an illustrative implementation.
- a single link from each pair of nodes 522 has been removed, so that only the interconnectivity slack remains visible. Additional network traffic can be routed between any pair of nodes, because the interconnectivity slack in the network 500 forms a connected graph. Therefore, the network 500 is capable of routing more simultaneous traffic than either the network 400 shown in FIGS. 3A and 3B or the network 300 shown in FIGS. 2A and 2B .
- the difference in the number of links connecting any two nodes 522 is never greater than one.
- the network 500 is perfectly symmetric across all polygonal diameters. In this configuration, the minimum inter node connectivity across all node pairs is maximized in the network 500 . Therefore, the network 500 is balanced.
- FIG. 6 is a flow diagram of a process 600 for configuring a network, according to an illustrative implementation.
- the process 600 includes providing N network nodes each capable of forming M communication links with other network nodes (Step 605 ), assigning, between each pair of network nodes, a number of communication links equal to the largest integer not greater than the quotient of M divided by (N ⁇ 1) (Step 610 ), and assigning the remaining communication links to achieve geometrical symmetry (Step 615 ).
- the process 600 can be carried out, for example, by the network control system 200 shown in FIG. 2 .
- the process 600 includes providing N network nodes each capable of forming M communication links with other network nodes (Step 605 ).
- the network nodes can be the set of superblocks in a data center or the inter-superblock switches connecting each superblock as described above in connection with FIG. 1 .
- the network nodes can include network ports allowing them to be communicatively coupled to one another.
- the number of network ports available on each network node can be equal to M.
- the network nodes can communicate wirelessly.
- the process 600 also includes assigning, between each pair of network nodes, a number of communication links equal to the largest integer not greater than the quotient of M divided by (N ⁇ 1) (Step 610 ). Assigning a link between a pair of nodes can be achieved by connecting a network port on each of the nodes, for example with an Ethernet cable, so that the nodes are communicatively coupled.
- the nodes can communicate wirelessly, and assigning a link between two nodes can include configuring the nodes to transmit and receive information from one another.
- the network can include a dynamic optical switch connected to the network nodes. Communication links can be assigned between two selected nodes by configuring the switch to communicatively couple the two nodes. Assigning links in this manner allows each network node to be connected to each other network node by Q network links, where Q is the highest common number of communication links that can be formed from one node to each other node.
- the network nodes may still have unused network ports after Q links have been assigned (Step 610 ) between every pair of nodes in the network. Although the number of remaining unused network ports will not be sufficient to connect each node to each other nodes, additional communication links can be formed between the unused ports to increase the average throughput between nodes in the network. These additional communication links are the links referred to as the interconnectivity slack in the discussion of FIGS. 2B, 3B, and 4B above. The interconnectivity slack links are assigned in a subsequent step of the process 600 .
- the process 600 includes assigning the remaining communication links (i.e., the interconnectivity slack links) such that a graph represented by the network nodes and communication links is substantially geometrically symmetrical (Step 615 ).
- the network nodes are represented as vertices, and the communication links are represented as edges.
- Geometrical symmetry can result in a more balanced network, which leads to higher guaranteed throughput and increased routing fairness, as discussed above.
- M is a multiple of N ⁇ 1
- geometrical symmetry can be achieved by first connecting the diameters of the graph by assigning communication links between each pair of nodes represented by opposite vertices in the graph.
- Opposite vertices of the graph are those vertices separated from one another by the largest possible geometric distance. Linking the diameters of the graph is therefore an efficient way to increase bandwidth in the network, because it creates an additional direct communication link between network nodes that are separated by a large distance.
- Opposite vertices are connected by a single communication link in this step, so connecting each diameter uses one of the remaining unused ports for each node. Therefore, after connecting the diameters of the graph, there will be an even number of communication links remaining. In some implementations, there may be zero communication links remaining.
- geometrical symmetry can be achieved by assigning the even number of remaining communication links for each node in pairs.
- the first pair of remaining communication links can be assigned to the two nearest nodes (i.e., nodes corresponding to the nearest neighbors of the respective node in the graph). If there are additional remaining communication links for the respective node, another pair of communication links can be assigned between the respective node and its second nearest neighbors. Remaining communication links for the respective node can continue to be assigned in pairs to the next closest nodes until all of the remaining communication links have been assigned. The result is a balanced network in which the minimum inter-node connectivity across all node pairs is maximized.
- FIG. 7A is an example of a balanced network 700 after a first configuration step, according to an illustrative implementation.
- the network 700 includes six nodes 722 0 - 722 5 , generally referred to as nodes 722 .
- Each of the nodes 722 is assigned a sequential integer index value beginning from 0.
- each node 722 in the network 700 represents a superblock in a data center, such as the superblocks 102 of the data center 100 shown in FIG. 1 .
- Each node 722 includes 18 communication links to other nodes 722 in the network 700 . Therefore, using the variables introduced above, N (the number of nodes 722 in the network 700 ) is equal to six and M (the number of communication links to each node 722 ) is equal to 18.
- the first step in creating a balanced network is to connect each node 722 to each other node 722 with a number of communication links equal to the largest integer not greater than M divided N ⁇ 1.
- FIG. 7B is an example of the balanced network 700 of FIG. 7A after a second configuration step, according to an illustrative implementation.
- each node 722 has already been assigned 15 communication links, i.e. three links to each of the other five nodes in the network, and the total number of communication links for each node is 18. Therefore, there are three remaining communication links for each node. The number of communication links remaining for each node is odd, so the next step, shown in FIG. 7B , is to assign communication links along the diameters of the network 700 . Therefore, communication links are assigned between nodes 0 and 3, nodes 1 and 4, and nodes 2 and 5. For illustrative purposes, the communication links assigned in the previous step shown in FIG. 7A are omitted from FIG. 7B .
- FIG. 7C is an example of the balanced network 700 of FIG. 7A after a third configuration step, according to an illustrative implementation.
- After connecting the diameters of the network 700 there are two communication links remaining for each node 722 . These links are assigned to the nearest nodes (i.e., to the adjacent nodes of each respective node), resulting in the links depicted in the graph shown in FIG. 7C .
- the communication links assigned previously are not visible in FIG. 7C . Having assigned the two remaining communication links for each node 722 , the process of configuring the network 700 is complete.
- FIG. 7D is an example of the balanced network 700 of FIG. 7A after a final configuration step, according to an illustrative implementation.
- the network 700 is shown in its entirety.
- the view shown in FIG. 7D is a combination of all of the communication links shown in FIGS. 7A-7C .
- Thinner lines indicate three communication links, while thicker lines indicate four communication links.
- the network 700 is balanced because it exhibits symmetry across all of its diameters and the maximum difference in the number of communication links interconnecting any pair of nodes 722 is one. The minimum inter node connectivity across all nodes 722 is therefore maximized by the configuration of the network 700 shown in FIG. 7D .
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
Description
Claims (15)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/921,578 US9455870B1 (en) | 2013-06-19 | 2013-06-19 | Achieving balanced interconnectivity in a computer network |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/921,578 US9455870B1 (en) | 2013-06-19 | 2013-06-19 | Achieving balanced interconnectivity in a computer network |
Publications (1)
Publication Number | Publication Date |
---|---|
US9455870B1 true US9455870B1 (en) | 2016-09-27 |
Family
ID=56939748
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US13/921,578 Active 2035-02-07 US9455870B1 (en) | 2013-06-19 | 2013-06-19 | Achieving balanced interconnectivity in a computer network |
Country Status (1)
Country | Link |
---|---|
US (1) | US9455870B1 (en) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5999288A (en) * | 1998-02-02 | 1999-12-07 | Telcordia Technologies, Inc. | Connection set-up and path assignment in wavelength division multiplexed ring networks |
US7693061B2 (en) * | 2003-04-02 | 2010-04-06 | Cisco Technology, Inc. | Data networking |
-
2013
- 2013-06-19 US US13/921,578 patent/US9455870B1/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5999288A (en) * | 1998-02-02 | 1999-12-07 | Telcordia Technologies, Inc. | Connection set-up and path assignment in wavelength division multiplexed ring networks |
US7693061B2 (en) * | 2003-04-02 | 2010-04-06 | Cisco Technology, Inc. | Data networking |
Non-Patent Citations (1)
Title |
---|
Santi, Paolo. "Topology Control in Wireless Ad Hoc and Sensor Networks." ACM Computing Surveys. vol. 37, No. 2. Jun. 2005. pp. 164-194. * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9998563B2 (en) | Vertex-centric service function chaining in multi-domain networks | |
US8855116B2 (en) | Virtual local area network state processing in a layer 2 ethernet switch | |
US10230661B2 (en) | Distributed virtual network embedding | |
US9559897B2 (en) | Device ID assignment in a system of devices | |
CN110495137B (en) | Data center network structure and construction method thereof | |
US9768870B2 (en) | Automatic configuration of network devices in a cluster based on physical deployment | |
CA2811236C (en) | Transpose boxes for network interconnection | |
US10616141B2 (en) | Large scale fabric attached architecture | |
WO2015127851A1 (en) | System and method for creating service chains and virtual networks in the cloud | |
Duan et al. | Cost efficient and performance guaranteed virtual network embedding in multicast fat-tree DCNs | |
WO2015156868A2 (en) | Software-based fabric enablement | |
US11042416B2 (en) | Reconfigurable computing pods using optical networks | |
Duan et al. | Placement and performance analysis of virtual multicast networks in fat-tree data center networks | |
US11979335B2 (en) | Network controller | |
US20200235815A1 (en) | Methods and sysems for reconfigurable network topologies | |
US9262372B1 (en) | Achieving balanced interconnectivity in a computer network | |
CN106716935B (en) | cross-layer service configuration method and controller | |
US9455870B1 (en) | Achieving balanced interconnectivity in a computer network | |
US9166886B1 (en) | Systems and methods for determining physical network topology | |
US9363144B1 (en) | Interconnecting computers in a datacenter | |
US9692639B1 (en) | Achieving full bandwidth usage and max-min fairness in a computer network | |
Peng et al. | Investigation on static routing and resource assignment of elastic all-optical switched intra-datacenter networks | |
US9282054B2 (en) | Determining an active management uplink | |
Granelli et al. | Realizing network slicing | |
Gonzalez Sans | SDN-based control and orchestration of optical data centre networks |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: GOOGLE INC., CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:KABBANI, ABDUL;VAHDAT, AMIN;SIGNING DATES FROM 20130612 TO 20130617;REEL/FRAME:030644/0111 |
|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
AS | Assignment |
Owner name: GOOGLE LLC, CALIFORNIA Free format text: CHANGE OF NAME;ASSIGNOR:GOOGLE INC.;REEL/FRAME:044566/0657 Effective date: 20170929 |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 4 |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 8TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1552); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 8 |