On the Combinatorial Design of Data Centre Network Topologies

The theory of combinatorial designs has recently been used in order to build switch-centric data centre networks incorporating a large number of servers, in comparison with the popular Fat-Tree data centre network. The construction employed, called the 3-step method, revolves around an appropriately chosen (but relatively small) bipartite graph and a transversal design. In this paper, we clarify and extend these recent results. In particular, we prove the following path diversity results: in a one-to-one context, we prove that in these data centre networks there are pairwise link-disjoint paths joining all the servers adjacent to some switch with all the servers adjacent to any other switch so that we retain control of the path lengths (these results are optimal in terms of the numbers of paths constructed and we prove that we have a wide choice of bipartite graph and transversal design to which we can apply the 3-step method); and in a one-to-many context, we prove that there are pairwise link-disjoint paths from all the servers adjacent to some switch to any identically-sized collection of target servers where these target servers need not be adjacent to the same switch (again, we keep control of the path lengths). Our constructions and analysis are undertaken on bipartite graphs with the applications to data centre networks being easily derived. Our results strengthen the overall competitiveness of data centre networks constructed using the 3-step method, in comparison with Fat-Tree data centre networks, and, more generally, show the potential of the application of results and methodologies from combinatorics to data centre network design.


The data centre network context
Data centres are expanding both in terms of their size and their importance as computational platforms for cloud computing, web search, social networking, and so on. There is an increasing demand that data centres incorporate more and more servers but so that overall computational efficiency is not compromised through excessive traffic. A key factor as to the eventual performance of a data centre is the data centre network (DCN ); that is, the interconnection fabric of the servers and switches within the data centre. As we strive to incorporate more and more servers, new topologies are being developed so as to cope with the increase in scale and best utilize the additional computational power. It is with topological aspects of DCNs that we are concerned in this paper.
The traditional design of a DCN is switch-centric so that the routing intelligence resides amongst the switches, with the servers behaving only as computational nodes. In switch-centric DCNs, there are no direct server-to-server links; only server-to-switch and switch-to-switch links. Switch-centric DCNs are traditionally tree-like with servers located at the 'leaves' of the tree-like structure. Examples include ElasticTree [1], VL2 [2], HyperX [3], Portland [4], and Flattened Butterfly [5], although the dominating switch-centric DCN is Fat-Tree [6]. Whilst it is generally acknowledged that tree-like, switch-centric DCNs have their limitations when it comes to, for example, scalability, due to the size of routing tables at the switches, switch-centric DCNs remain popular and can usually be constructed from commodity hardware. A more recent paradigm, namely the server-centric DCN, has emerged so that deficiencies of the treelike, switch-centric DCNs might be ameliorated. Server-centric DCNs reflect that the routing intelligence resides within the servers with switches operating only as dumb crossbars. In server-centric DCNs there are only server-to-switch and server-to-server links. However, server-centric DCNs also suffer from deficiencies such as packet relay overheads caused by the need to route packets within the server; moreover, server-centric DCNs have yet to make it into the commercial mainstream (the reader is referred to [7] for an overview of the state of the art as regards DCN architectural design). It is with the construction of switch-centric DCNs that we are concerned here. It is extremely difficult to design computationally efficient (switch-centric) DCNs so as to incorporate large numbers of servers as there are many additional considerations to take into account. For example, switches and (especially) servers in data centres have a limited number of ports with a consequence being that the more servers there are, the greater the average or worst-case link-count between two distinct servers; hence, there is a packet latency overhead to be borne. Also, so as to better support routing, fault-tolerance, and load-balancing, we would prefer that there are numerous alternative paths within the DCN joining any two distinct servers; that is, that there is path diversity. Irrespective of the DCN paradigm within which one works, there are many other design parameters to bear in mind relating to, for example, (incremental) scalability, throughput, cost, oversubscription, energy consumption, latency, and security (see, for example, [8,9] for an overview). The upshot is that the DCN designer has to simultaneously secure a number of performance characteristics, some of which are competing against each other; this makes the DCN design space complex and difficult to work in.

Using combinatorial designs to build DCNs
A recent proposal in [10] advocated the use of combinatorial design theory in order to design switch-centric DCNs; these DCNs have beneficial properties as regards incorporating more servers and possessing path diversity yet it is possible to limit the worst-case link-length of server-to-server shortest paths (and so, ultimately, achieve better control over packet latency in a DCN). The use of combinatorial designs within the study of general interconnection networks is not new and originated in [11] where the targeted networks involved processors communicating via buses (the reader is referred to [12] for a range of applications of combinatorial design theory within computer science). A hypergraph framework was developed in [11] where the hypergraph nodes represent the processors and the hyperedges the buses. Likewise, an analogous framework was developed in [10] but where the hypergraph nodes and edges both represent switches so that the pendant servers 'hang off' some of the switches (we present a detailed description of this framework in Section 3.3). In [10], the ubiquitous switch-centric Fat-Tree DCN from [6] was used as a yardstick against which to compare the new DCN designs developed in [10] under the normalization that all DCNs are to have the same worst-case link-length of server-to-server shortest paths, namely 6, as this equals the worst-case link-length of serverto-server shortest paths in the Fat-Tree DCN. It was shown that more servers can be incorporated within the new DCNs yet, crucially, the resulting DCNs have good path diversity. It is the algebraic properties (relating to symmetry and balance) possessed by transversal designs that enable the constructions and analysis as described in [10]. One slight difficulty with the original and novel approach taken in [10] is that some of the path diversity results derived there are incorrect (as we explain later in Section 4.1). Not only has combinatorial design theory featured as regards the design of interconnection networks but other aspects of algebra have too; indeed, there has been recent work on the relevance of Cayley graphs, Hamming graphs, and hyperbolicity to DCN design (see, e.g., [13,14,15]).

Our contribution
In this paper we return to the framework of [10] and formulate and prove path diversity results for the switch-centric DCNs constructed using the methods of that paper. As our concern is entirely with topological properties of DCNs, henceforth we abstract our DCNs as undirected graphs where the nodes are to represent servers and switches and the edges point-to-point links. The crux of the construction in [10] is (essentially) to build a bipartite graph using a systematic method, called the 3-step method, involving a different 'base' bipartite graph and a transversal design, and to convert the resulting bipartite graph into switch-centric DCNs (in a variety of ways). After explaining how hypergraphs and transversal designs can all be considered as bipartite graphs in Section 2, in Section 3 we provide a detailed description of the 3-step framework from [10] and explain how the bipartite graphs constructed are converted into switch-centric DCNs. Next, we revisit the results from [10]. In particular, in Section 4 we correct and extend the analysis in [10] and affirm that using the 3-step method from [10], we can build switch-centric DCNs: with many more servers than the Fat-Tree DCN yet so that, like the Fat-Tree, every server-toserver shortest path has length at most 6; and so that (assuming some numeric conditions on the base bipartite graph and the transversal design) we can find pairwise link-disjoint paths from all of the servers adjacent to a particular switch to all of the servers adjacent to any other switch. Moreover, we provide an upper bound on the lengths of the paths constructed in terms of the diameter of the base bipartite graph (see Theorem 4). We also deal with a scenario missing from [10] (see part (b) of Theorem 4). As we explain, the general situation is more subtle than was assumed in [10].
The DCN path diversity, as we have described it above, comes about from building bipartite graphs (which are subsequently converted to DCNs) so that given any two distinct nodes, there are numerous node-disjoint paths joining these two nodes; that is, these bipartite graphs have one-to-one path diversity. In Section 5, we go on to show that we can actually build numerous edge-disjoint paths from a source node to different destination nodes in our bipartite graphs; that is, we have one-to-many path diversity (one-to-one and one-to-many path diversity are defined in Section 2.1). The DCNs obtained from these bipartite graphs are such that (assuming some numeric conditions on the base bipartite graph and the transversal design) we can find pairwise link-disjoint paths from all of the servers adjacent to some switch to any identically-sized collection of servers (irrespective of which switch they are adjacent to). Consequently, we show that our DCNs provide support for additional communication patterns that are prevalent within data centre networks. It should be noted that oneto-many and many-to-many communication patterns are commonplace in data centres; for example, in 'big data' processing applications such as MapReduce, Hadoop, Spark, and Storm (see, e.g., the survey [16]). This paper is unashamedly theoretical. However, we demonstrate that not only is there interesting combinatorics within the practical world of DCN design but that combinatorial mathematics can potentially contribute to the DCN design space on a practical level. We feel that the mathematical aspects of DCNs have so far remained almost completely unexamined and we advocate a closer theoretical scrutiny of DCNs both as a model of computation and in relation to the vast swathes of research on general interconnection networks. We mention some practical considerations and directions for further research in the Conclusion.

Basic Concepts
We begin by briefly reviewing some architectural aspects of switch-centric DCNs that are pertinent to our subsequent research. We then move on to the discrete structures featuring in [10,11], namely hypergraphs, bipartite graphs, and transversal designs. So that we might fully describe and understand the constructions in [10,11], as well as our own upcoming analysis of switch-centric DCNs, we eventually amalgamate hypergraphs, bipartite graphs, and transversal designs so that by the end of this section, we will have developed an encompassing bipartite graph framework for the design of switch-centric DCNs. The reader should be aware that it will not be until Section 3.3 that we transform the bipartite graphs that we have been constructing up until then into switchcentric DCNs. As a hint as to this transformation (and so that the reader does not lose sight of our eventual goal), roughly speaking we shall regard the nodes of one of our constructed bipartite graphs as switch-nodes and attach to some of these switch-nodes additional server-nodes in order to get our switch-centric DCN. General graph-theoretic concepts can be obtained in [17].

Switch-centric DCNs
A switch-centric DCN is abstracted as a graph (which we also refer to as a DCN) where the nodes are partitioned into two sets: there are server-nodes; and there are switch-nodes. Of course, the server-nodes correspond to servers in the DCN and the switch-nodes to switches; note that immediately there are practical design limitations imposed by the number of ports in a real switch and the number of NIC ports in a real server (we sometimes refer to the number of ports of a switch-node rather than its degree). Furthermore, in switch-centric DCNs there are no links joining one server-node directly to another server-node (because all routing within a switch-centric DCN falls within the purview of the switches). Of concern to us in this paper will be incorporating a comparatively large number of server-nodes within our DCNs but so that the maximum length of a shortest path joining any two server-nodes, that is, the diameter of the DCN, is kept within a given bound, where the length of such a path is the number of distinct links on the path. Essentially, we will be comparing DCNs as to how many server-nodes they incorporate but when their diameters are normalized.
However, DCNs must also possess other properties to make them usable within a data centre context. For example, they also need to: be scalable and incrementally scalable (that is, have the capacity to cope with increases in components and data); have low message latency; provide for high overall throughput (under a range of traffic patterns); be able to tolerate (a limited number of) faults; be energy efficient; be both economically and physically viable; and support virtualization (that is, the partitioning of the DCN into virtual networks on a dynamic basis), amongst many other things. Support for some of these properties can be measured using graph theory; for example, the diameter of the DCN gives guidance as regards the expected message latency. Of particular interest to us will be path diversity which we define (somewhat informally) as the capacity to send data without inducing additional congestion or so as to cope with existing congestion or faults. There are two contexts of interest to us: the one-to-one (or unicast ) context, when a source server-node wishes to send data to a destination server-node by the utilization of independent paths (we will return to what we mean by 'independent' soon); and the one-to-many (or multicast ) context, when a source server-node wishes to send data to a number of destination server-nodes so that the different transmissions do not induce congestion. Path diversity is highly relevant to a number of the above properties such as latency and scalability, where different paths are used to split and balance loads, and fault tolerance, where different paths provide alternative means of transit in the case of faults. Path diversity is important in both the one-toone and one-to-many contexts, with this importance accentuated in the latter context when a data centre needs to support data replication and applications like MapReduce [18]. An additional dimension is added with respect to virtualization when we have virtual machines embedded within a data centre that share the same resources but require traffic to be routed via different routes. As we shall soon see, just as with latency, the independence of paths can be considered graph-theoretically.

Hypergraphs
Hypergraphs provide the original framework for the 3-step construction (to be defined later) as employed in [11,10]: in [11], hypergraphs were used to model bus interconnection networks; and in [10], hypergraphs were used to model data centre networks. For the moment, and in order to appreciate the context of [11,10], we retain this hypergraph framework before we phrase all content in this introduction within an encompassing bipartite graph framework.
A hypergraph H = (V, E) consists of a finite set V of nodes together with a finite set E of hyperedges where each hyperedge is a non-empty set of nodes and each node appears in at least one hyperedge. The degree of a node is the number of hyperedges containing it and the rank of a hyperedge is its size as a subset of V . A hypergraph is regular (resp. uniform) if every node has the same degree (resp. every hyperedge has the same rank) with this degree (resp. rank) being the degree (resp. rank ) of the hypergraph. Every graph G = (V, E) has a natural representation as a hypergraph: the nodes of the hypergraph are V ; and the hyperedges are E, where the hyperedge e consists of the pair of nodes incident with the edge e of G.

Hypergraphs and bipartite graphs
We can represent any hypergraph H = (V, E) as a bipartite graph: the node set of the bipartite graph is V ∪ E; and there is an edge (v, e), for v ∈ V and e ∈ E, in the bipartite graph if, and only if, v ∈ e in the hypergraph. It is clear that this yields a one-to-one correspondence between hypergraphs and bipartite graphs (without isolated nodes) that come complete with a partition of the elements into a 'left-hand side', which will correspond to the nodes of the hypergraph, and a 'right-hand side', which will correspond to the hyperedges of the hypergraph (remember that in a hypergraph, every node is in at least one hyperedge and every hyperedge contains at least one node, so we cannot have isolated nodes in our bipartite graphs). We assume (henceforth) that every bipartite graph comes equipped with such a partition and for clarity from now on we refer to the nodes on the left-hand side as nodes and the nodes on the right-hand side as blocks (this is in keeping with our upcoming realisation of transversal designs as bipartite graphs). Likewise, we refer to the degree of a node as its degree and the degree of a block as its rank . A bipartite graph corresponding to a regular, uniform hypergraph of degree d and rank ∆ is called a (d, ∆)-bipartite graph. Every bipartite graph (and so every hypergraph) also describes its dual bipartite graph (or alternatively its dual hypergraph) where the roles of the nodes on the left-hand side and the blocks on the right-hand side of the partition are reversed in the definition of the bipartite graph; so, for example, the dual bipartite graph of a (d, ∆)-bipartite graph is regular of degree ∆ and uniform of rank d.
Note that if G is a bipartite graph then it corresponds to a hypergraph via our representation above and it also corresponds to a hypergraph via the natural representation highlighted in Section 2.2. The two hypergraphs corresponding to the same bipartite graph are different and we are never interested in the representation of a bipartite graph as a hypergraph via the natural representation of Section 2.2.

Paths in hypergraphs
A path in some hypergraph H = (V, E) (or the corresponding bipartite graph) is an alternating sequence of nodes and hyperedges so that all nodes are distinct, all hyperedges are distinct, and a node v ∈ V follows or preceeds a hyperedge e ∈ E in the sequence only if v ∈ e in the hypergraph (or (v, e) is an edge in the corresponding bipartite graph). The first element of some path is the source and the final element the destination. The length of any path is its length in the bipartite graph corresponding to the hypergraph, and the distance between two distinct elements of V ∪ E is the length of a shortest path joining these two elements in the corresponding bipartite graph. The diameter of H is the maximum of the distances between every pair of distinct nodes of V , and the line-diameter of H is the maximum of the distances between every pair of distinct hyperedges of E.
We have two remarks. First, we have traditional notions of diameter and linediameter in any bipartite graph. Note that our notion of diameter in a bipartite graph, which is the longest shortest node-to-node path (and so ignores nodeto-block and block-to-block paths), is different from the usual graph-theoretic notion of diameter in a bipartite graph (the same comment can be made as regards line-diameter). When we talk of the diameter or line-diameter of a bipartite graph, we mean with respect to our notion of diameter or line-diameter, respectively; if we need to talk of the traditional notion of graph diameter then we will make this clear. Second, our notion of path length in a hypergraph differs from that in [10] where the length is the number of nodes (resp. hyperedges) in a hyperedge-to-hyperedge (resp. node-to-node) path. There is no real consequence to this difference; essentially, our notion of path length is double that in [10]. However, we shall soon move to an exclusively bipartite graph-theoretic formulation in which our notion of length is the natural one to adopt.
We shall be interested in building sets of paths in some hypergraph H so that the paths might have the same sources or destinations; moreover, we shall require that these paths do not 'interfere' with one another (or are 'independent' as we mentioned earlier). We say that a set P of paths in H is: • pairwise internally-disjoint if any source or destination of some path of P only appears as a source or destination on any path of P , and any node or hyperedge that is not a source or destination appears on at most one path of P • pairwise edge-disjoint if every pair (v, e) ∈ V × E is such that v follows or precedes e on some path at most once across all paths from the set P .

Hypergraphs as switch-centric DCNs
Given some hypergraph H = (V, E), our intention is to ultimately transform this hypergraph into a DCN by considering both the nodes and the hyperedges as switch-nodes so that the switch-nodes corresponding to the nodes (which we shall later call the level-1 switch-nodes, with the switch-nodes corresponding to the hyperedges the level 2-switch-nodes) also have adjacent server-nodes, which we have yet to define (this intention is best appreciated by working with the corresponding bipartite graph rather than the hypergraph; the upcoming Fig. 5 provides a visualization of what we mean). Consequently, we can regard a hypergraph H as modelling a switch-centric DCN N where there are two levels of switch-nodes.
Suppose that we have a set P of pairwise internally-disjoint paths from a node u of H to another node v of H. This translates to a set P ′ of pairwise internally-disjoint paths in N from the corresponding level-1 switch-node u to the corresponding level-1 switch-node v. We can use the paths of P ′ for the simultaneous transfer of data from server-nodes adjacent to the level-1 switchnode u to server-nodes adjacent to the level-1 switch-node v (see Fig. 5). In order to facilitate this data transfer we require that level-1 switch-nodes are nonblocking whereas the level-2 switch-nodes can be blocking; recall that a switchnode is non-blocking when no contention arises when simultaneously sending data through the switch-node on two distinct input links and out on two distinct output links, and blocking otherwise. This is because we need to be able to simultaneously move data from all servers adjacent to the level-1 switch-node u in N across the switch-node and out along different links (the same can be said for v). If our paths in H are only pairwise edge-disjoint then we require that level-1 and level-2 switch-nodes of N are non-blocking (as we might have switch-nodes appearing on more than one path of P ′ , even though no link does).

Transversal designs
The notion of a transversal design is crucial to what follows.
where: |X | = ∆k; D = (D 1 , D 2 , . . . , D ∆ ) is a partition of X into ∆ equal-sized groups (each of size k); and U = {U j : j = 1, 2, . . . , k 2 } is a family of k 2 subsets of X , each of size ∆ and called a block, so that We adopt a graph-theoretic perspective on transversal designs as defined in Definition 1: we think of the [∆, k]-transversal design T as a bipartite graph where the elements of X (resp. U) lie on the left-hand side (resp. right-hand side) of the partition, and so are called nodes (resp. blocks) within the bipartite graph, and so that in this bipartite graph there is an edge (p, Q), for p ∈ X and Q ∈ U, if, and only if, in the transversal design the element p is in the block Q. Note that the bipartite graph corresponding to the transversal design from Definition 1 is a (k, ∆)-bipartite graph. Henceforth, we adopt our bipartite graph framework and regard both hypergraphs and transversal designs as bipartite graphs (unless we state otherwise).
There is an intimate relationship involving transversal designs, orthogonal arrays and mutually orthogonal latin squares, although there is no need to give definitions here. However, it is well known: that there are ∆ mutually orthogonal latin squares of order k if, and only if, there is a [∆ + 2, k]-orthogonal array if, and only if, there is a [∆ + 2, k]-transversal design; and that there are at most k − 1 mutually orthogonal latin squares of order k (see, for example, [19]). Hence, if we have a [∆, k]-transversal design then ∆ ≤ k + 1. Also, if k is a prime power then a [∆, k]-transversal design exists whenever 2 ≤ ∆ ≤ k + 1 (again, see [19]). We shall use these facts later on. The study of the existence of [∆, k]-transversal designs, for various ∆ and k, is a long-standing area of research.
We require one final bit of notation. If T is some transversal design, as in Definition 1, and x and y are nodes in distinct groups then we refer to the unique block adjacent to both x and y as the block generated by x and y.

The 3-step Construction and its Extensions
We now describe the 3-step construction for building bipartite graphs (or, equivalently, hypergraphs) by using a 'base' bipartite graph and a transversal design (which we think of as a bipartite graph). This construction originated in [11] and was used in [10]. We then explain how this construction was subsequently extended in [10] both by iteration and by composition so as to yield switch-centric DCNs.

The 3-step construction
The 3-step construction proceeds as follows.
Step 1: Let H 0 be a connected (d, ∆)-bipartite graph so that there are n nodes (on the left-hand side of the partition, each of degree d) and e blocks (on the right-hand side, each of rank ∆). Such an H 0 can be visualized as in Fig. 1 (ordinarily, we represent nodes as circles and blocks as squares).
Step 2: Let T be a [∆, k]-transversal design. In particular, there are ∆ groups of k nodes (on the left-hand side) as well as k 2 blocks (on the right-hand side). Such a T can be visualized as in Fig. 2. Build the bipartite graph H as follows.
For every node p of H 0 , introduce a group G p of k nodes of H; we say that the group of nodes G p of H is associated with the node p of H 0 . For every block Q of H 0 , adjacent to the nodes p 1 , p 2 , . . . , p ∆ in H 0 , introduce a copy of T , denoted T Q , rooted on the ∆ groups of nodes G p1 , G p2 , . . . , G p∆ ; so, associated with the block Q of H 0 , we have a set B Q of k 2 blocks in H. We refer to the ∆ groups of nodes G p1 , G p2 , . . . , G p∆ as the roots of the copy T Q of T in H. Such a bipartite graph H can be visualized as in Fig. 3 where two of the copies of T are partially shown (note that they might have some roots in common but their respective sets of blocks are always disjoint as are their sets of edges). The bipartite graph H 0 provides a template as to how we introduce copies of T to form H. Note that: • each node of H can be indexed as a p,j , where p ∈ {p i : i = 1, 2, . . . , n} and j ∈ {1, 2, . . . , k}, so that p is the node of H 0 to which the group G p in which a p,j sits is associated and j is the index of the node a p,j in this group  and U ∈ {1, 2, . . . , k 2 }, so that Q is the block of H 0 to which the set of blocks B Q in which B Q,U sits is associated and U is the block of T to which B Q,U corresponds.
In addition, each node of T can be indexed u i,j , where i ∈ {1, 2, . . . , ∆} and j ∈ {1, 2, . . . , k}, so that D i is the group of nodes in which u i,j sits and j is the index of u i,j in that group.
Step 3: Let H * be the bipartite graph obtained from the bipartite graph H by reversing the roles of nodes and blocks (so, H * is the dual bipartite graph of H). Note that the bipartite graph H * is regular of degree ∆ and uniform of rank dk. We refer to the (dk, ∆)-bipartite graph H (resp. the (∆, dk)-bipartite graph H * ) constructed above as having been constructed by the 2-step (resp. 3-step) method using the (d, ∆)-bipartite graph H 0 and the [∆, k]-transversal design T . Note that H (resp. H * ) has nk nodes (resp. ek 2 nodes) and ek 2 blocks (resp. nk blocks).
Our intention with our constructions is to ultimately design switch-centric DCNs with beneficial properties (as we outlined in Section 2). Whilst there are many properties we would like our DCNs to have, it is important that DCNs can integrate a large number of server-nodes so that the server-node-toserver-node distances are short and so that there is redundancy as to which (short) server-node-to-server-node routes we choose to use. In our framework of bipartite graphs, this translates as building bipartite graphs with a large number of nodes and with redundant (short) node-to-node paths. As a first step, the following result was proven in [11] (it is actually derivable from the proofs of our upcoming results) and allows us control over the length of shortest blockto-block paths in 2-step constructions (and so shortest node-to-node paths in 3-step constructions). Of course, if H * is the dual bipartite graph of H in Theorem 2 then it has diameter λ. We reiterate that our notion of diameter and line-diameter differs from that in [11,10] (where the length of a block-to-block path is the number of nodes on that path; so, in [11,10] the bound λ ≥ 4 in our Theorem 2 appears as λ ≥ 2).

Iteration
We can iterate the 3-step construction (as was done in [10]). Note that if H 0 is a (d, ∆)-bipartite graph of line-diameter λ ≥ 4, with n nodes and e blocks, then the bipartite graph H 1 resulting from the 2-step construction (using H 0 and some [∆, k]-transversal design T ) is a (dk, ∆)-bipartite graph of line-diameter λ. So, repeating the 2-step construction but with H 1 replacing H 0 (we keep the same T , although we do not have to) yields a (dk 2 , ∆)-bipartite graph H 2 of line-diameter λ. By iterating this construction, we can clearly  results in a bipartite graph with ek 2i nodes, with nk i blocks, with diameter λ, and that is regular of degree ∆ and uniform of rank dk i .

Composition
We are now in a position to transform our bipartite graphs into switch-centric DCNs. As well as the constructions, and their associated proofs, that were presented in [10], new methods of composing bipartite graphs (built according to the 3-step construction) so as to obtain switch-centric DCNs were also derived. In [10], 4 such methods were given: In what follows, let H be a (∆, δ)-bipartite graph where ∆ < δ and where there are n nodes and e blocks. Method A: We take c copies of H where δ − c∆ > 0 and c ≥ 1. For each node u of H: we remove the corresponding node in each of the c copies of H and introduce a new switch-node (common to all copies of H); we make all of the c∆ edges incident with the c original nodes incident with this new switch-node; and we attach ρ = δ − c∆ pendant server-nodes to the new switch-node. All blocks of H are considered as switch-nodes. We follow [10] and call the new switchnodes level-1 switch-nodes and the original switch-nodes level-2 switch-nodes. The construction of the switch-centric DCN N (H) from H via this method can be visualised as in Fig. 4, where we only show the construction for the c nodes coresponding to one node of H. Note that every switch-node of N (H) has δ ports. Also, there is some choice as regards the parameter c (so that choosing different values for c yields different values for ρ). We illustrate the special case when c = 1 in Fig. 5, where H is a (3, 5)-bipartite graph. The general case when c ≥ 1 corresponds to Method M 2 of [10]; the special case when c = 1 corresponds to Method M 1 ; and the special case when c = ⌊ In this latter case, the aim is to ensure that every level-1 switchnode is adjacent to roughly the same number of level-2 switch-nodes as it is server-nodes. Note that: the number of server-nodes in N (H) is n(δ − c∆); the number of level-1 switch-nodes is n; and the number of level-2 switch-nodes is ce.    Method B: We now work with a switch-centric DCN as constructed by Method A. Let every level-1 switch-node have ρ adjacent server-nodes. Suppose that there is an even number of level-1 switch-nodes. Partition the set of level-1 switch-nodes into pairs. For each pair of switch-nodes (S ′ , S ′′ ): remove ⌊ ρ 2 ⌋ server-nodes that are adjacent to S ′ and remove ⌈ ρ 2 ⌉ server-nodes that are adjacent to S ′′ ; and make every server-node that is adjacent to the switch-node S ′ or the switch-node S ′′ also adjacent to the other switch-node. Note that the number of ports of any switch-node has not changed but that every server-node is now adjacent to 2 switch-nodes. The philosophy behind this construction is to better tolerate the failure of a level-1 switch-node. The construction can be visualized as in Fig. 6 where paired level-1 switch-nodes have the same shade of grey and where ρ = 3.

Some illustrations of DCNs
In [10], switch-centric DCNs constructed using the 3-step method allied with Methods A and B were favourably compared with the 3-level Fat-Tree DCN from [6] with regard to the number of server-nodes therein when the diameter and the number of ports of a switch-node are held constant. The reader is referred to [6,10] for full details as regards the topology of Fat-Tree and to Tables 2- the DCNs resulting from using the 3-step method, iteration and composition are forced to be (at most) 6 (like that of Fat-Tree); and the numbers of servernodes and switch-nodes in the resulting DCNs are as given (note that the length of a server-node-to-server-node path as defined in [10] is the number of switchnodes on it, which is one less than our notion of length which is the number of links on the path).
• The bipartite graph H * is obtained using the 3-step method starting with a (8, 8)-bipartite graph H 0 , that has 855 nodes, 855 blocks, and diameter and line-diameter 4 (such a bipartite graph H 0 exists; see [20]), and a [8,8]-transversal design T . The DCN H * in Table 1 is the DCN obtained by simply regarding every node of the bipartite graph H * as a servernode (note that in this DCN we require that every server-node has 8 NIC ports); the DCN N 1 is obtained by employing Method A with c = 1 (resp. c = 7, c = 4); and the DCN N B (H * ) is obtained by employing Method B with N 1 A (H * ) (note that the number of switch-nodes entry in Table 2 in [10] is incorrect).
• The bipartite graphH is obtained using the 3-step method iterated twice, starting with a (4, 4)-bipartite graphH 0 , that has 80 nodes, 80 blocks, and diameter and line-diameter 4 (such a bipartite graphH 0 exists; see [20]), and a [4,4]-transversal designT (actually, in [10] this transversal design is not mentioned; it does, however, exist). The DCNH * in Table 1 is the DCN obtained by simply regarding every node of the bipartite graphH * as a server-node (note that the number of server-nodes entry in Table 2 in [10] is incorrect, though the correct number is stated in the text); and the DCN N 1 A (H * ) is obtained by employing Method A with c = 1 (note that the numbers of server-nodes and of switch-nodes entries in Table 2 in [10] are incorrect).
It is clear from Table 1 (and from [10]) that we can build much bigger servercentric DCNs using the 3-step method and the subsequent iterations and compositions than Fat-Tree but without increasing the diameter (which is a proxy for latency); of course, we would wish the new DCNs to have other properties that make them attractive within a data centre context. Establishing such properties was essentially the whole point of [10] and we continue with this line of research in what follows. Note that we provide additional illustrations of our constructions of switch-centric DCNs, in tandem with our upcoming results, in Section 4.3.
Before we move to our main results, let us comment on using the 2-step method as opposed to the 3-step method when building our switch-centric DCNs (the same comment was made in [10]). Note that when one uses the (iterated) 2step method, whilst the rank of the resulting bipartite graph stays the same, the degree grows. Were we to attach server-nodes to the switch-nodes that replace the nodes of the 2-step bipartite graph H, rather than the 3-step bipartite graph H * , the number of ports of the level-2 switch-nodes (which would be ∆) would be much less than the number of ports of the level-1 switch-nodes. Hence, it makes more sense to proceed as we have done above.

One-to-one path diversity
So far, we have set the scene from [10] and described a method by which we can build bipartite graphs (the 3-step method) which can then be transformed into switch-centric DCNs with many more servers than Fat-Tree whilst maintaining the diameter of Fat-Tree, i.e., 6. However, as we mentioned earlier, there are many more aspects to the design of DCNs with an important one being path diversity. In what follows, we highlight some problems with the proofs of one-to-one path diversity in [10] for bipartite graphs built using the 3-step method. We then provide not only correct proofs as regards one-to-one path diversity but we also extend and improve the analysis in [10] with new results. We end the section by applying our constructions so as to build DCNs with good one-to-one path diversity properties.

Difficulties with proofs
In order to detail the difficulties in [10], we adopt the terminology of [10].
There are slight problems with the proof of Theorem 2 in [10] (although they are easily surmountable). For example, in Subcases (1.2) and (2.2), {r i , s i , t i } ⊆ G E i and consequently we cannot generate the blocks R j and S j . Also, in Subcase (2.1), the situation where q ∈ P ∩ Q \ {p} is not considered; it could be that r j = s j , for some j = i.
An attempt was also made in [10] to extend Theorem 2 of [10]: see Theorem 3 of [10]. Assumptions concerning the connectivity of H 0 are made and the existence of additional paths in H * to those constructed in the proof of Theorem 2 are claimed in the situation when the two blocks B Q,U and B Q ′ ,U ′ are such that Q = Q ′ (recall our method of indexing in Section 3.1 which we adopt here). However, there are serious flaws in the proof of Theorem 3 of [10], so much so that the theorem is untrue. In short, Theorem 3 of [10] claims that if there are ω pairwise internally-disjoint paths in H 0 from Q to Q ′ then there are min{∆ω, kω} pairwise internally-disjoint paths in H from B Q,U to B Q ′ ,U ′ . This does not make sense: the maximum number of pairwise internally-disjoint paths in H from B Q,U to B Q ′ ,U ′ is ∆ (as the bipartite graph H has rank ∆) and so we must have that min{∆ω, kω} ≤ ∆. For instance, in Example 1 of [10], the bipartite graph H 0 is the cycle of length 10 (H 0 is derived from the cycle of length 5 using its natural representation as a hypergraph; see Section 2.2), so that d = ∆ = 2, n = e = 5, and there are 2 internally-disjoint paths from any block of H 0 to any other block of H 0 . A [2,3]-transversal design T is used and the bipartite graph H * built by the 3-step method has rank 6 and degree 2. However, if Theorem 3 of [10] were true then there would be 4 pairwise disjoint paths from B Q,U to B Q ′ ,U ′ in H * which clearly cannot be the case.

The one-to-one scenario
We now resurrect (some of) the proofs of the main results from [10] and extend the results claimed in that paper. The following lemma proves most useful. Let P be a set of distinct pairs of nodes so that: exactly one node of any pair in P is in R and no node of R is in more than one pair of P ; and no pair in P is such that both nodes lie in the same group. The blocks generated by the pairs in P are all distinct and different from U .
Proof. Suppose that {r i , x} ∈ P , where x ∈ D l \ R with l = i and where i ∈ {1, 2, . . . , ∆}. Let U ri,x be the block generated by r i and x. If U ri,x = U then U is adjacent to the distinct nodes r l and x in D l which yields a contradiction.
Suppose that {r j , y} ∈ P \ {{r i , x}}, where j ∈ {1, 2, . . . , ∆}. Let U rj,y be the block generated by r j and y. Suppose that U ri,x = U rj,y ; hence, U ri,x is adjacent to both r i and r j with i = j. As any two nodes lying in distinct groups in T are adjacent to a unique block of T , we must have that U ri,x = U rj ,y = U ; but this yields a contradiction as above. Hence, the blocks generated by the pairs in P are all distinct and all different from U .
We use this lemma throughout, both explicitly and implicitly. Our main result in the one-to-one context is concerned with building as many pairwise internally-disjoint paths as we can from any block to any other block in the bipartite graph built using the 2-step method (or, equivalently, from any node to any other node in the bipartite graph built using the 3-step method). We explain the impact of the existence of these paths on the path diversity of subsequently built DCNs presently. One added and significant complication in the proof of the following result comes about when the transversal design T is a [k + 1, k]-transversal design (so, there is the potential for ∆ = k + 1 > k paths).  Proof. Recall that we mentioned in Section 2.6 that necessarily ∆ ≤ k + 1.
Case (a)(i): Suppose that: ∆ = k + 1; λ ≥ 2; and the distinct nodes p 1 and p 2 are common neighbours in H 0 of Q and Q ′ . We 'batch' the groups of nodes of T Q and T Q ′ together so that in each of T Q and T Q ′ , the k + 1 groups of nodes form 1 batch of k groups and 1 batch of 1 group as follows: any group of the form G 1 j , where j > 0, is associated with some node p ∈ {p 1 , p 2 } of H 0 that is adjacent to both Q and Q ′ if, and only if, the group H 1 j is associated with the same node p of H 0 (so, if G 1 j and H 1 j are associated with the same node p ∈ {p 1 , p 2 } of H 0 then they are the same group in H).
For each j ∈ {0, 1, . . . , k − 1}, let r 1 j ∈ G 1 j (resp. s 1 j ∈ H 1 j ) be the unique node of G 1 j (resp. H 1 j ) that is adjacent to B Q,V (resp. B Q ′ ,V ′ ) in H. Note that the pair r 1 j and s 1 j lie in the same group of nodes in H if, and only if, both G 1 j and H 1 j are associated with the same node p of H 0 and this node p is adjacent to both Q and Q ′ in H 0 . The situation can be visualized as in Fig. 7 (where in this case Q and Q ′ have a + 2 ≥ 2 common neighbours in H 0 and where, for example, r 1 1 = s 1 1 but r 1 a = s 1 a ). Let G 1 0 = {r 1 0 , t 1 , . . . , t k−1 } and H 1 0 = {s 1 0 , w 1 , . . . , w k−1 } so that: We are now ready to generate some blocks within T Q and T Q ′ in H. For each j ∈ {1, 2, . . . , k − 1}: We are now in a position to build some paths from B Q,V to B Q ′ ,V ′ in H. If r 1 0 = s 1 0 then define the paths: • π 1 1 as B Q,V , r 1 1 , B r 1 1 ,t1 , s 1 0 , B Q ′ ,V ′ (note that t 1 = s 1 0 ). We'll now build paths from B Q,V to B Q ′ ,V ′ using nodes from the groups • if r 1 j = s 1 j then define the path: • if r 1 j = s 1 j then define the path: Note that out of all of the k 'π-paths' constructed above, the only way that we can have that two of our paths are not internally-disjoint is when r 1 0 = s 1 0 but r 1 1 = s 1 1 (in which case π 1 0 and π 1 1 share the common node r 1 1 = s 1 1 ). In this The paths from the resulting set of k π-paths are now pairwise internally-disjoint and each has length at most 6. Let r 2 0 (resp. s 2 0 ) be the unique node of G 2 0 (resp. H 2 0 ) that is adjacent to In this case, we build the path π 2 1 defined as B Q,V , r 2 0 , B Q ′ ,V ′ . This path is clearly internally-disjoint from all of the k π-paths constructed above. Alternatively, suppose that r 2 0 = s 2 0 . If k ≥ 3 then there is a node x 1 1 ∈ G 1 1 \ {r 1 1 , s 1 1 }. Let B r 2 0 ,x 1 1 be the block of T Q within H generated by r 2 0 and x 1 1 , and let B s 2 0 ,x 1 1 be the block of T Q ′ within H generated by s 2 0 and x 1 1 . By Lemma 3, these blocks are different from B Q,V , B Q ′ ,V ′ and all other blocks used within the k π-paths constructed above (even when we make the amendments to our working sets of blocks as detailed in the preceding paragraph). Define the path π 2 0 as B Q,V , r 2 0 , B r 2 This path has length 6 and is clearly internally-disjoint from all of the k π-paths constructed above.
On the other hand, suppose that k = 2; so, ∆ = 3. In particular, a [3, 2]transversal design exists. We deal with this case from scratch. W.l.o.g., the node B 4 is adjacent to r 3 , and r 3 is adjacent to one other block. The only possible block that r 3 can be adjacent to is B 1 (as otherwise we would have two nodes in different groups adjacent to 2 distinct blocks).
Name the blocks and nodes of T Q as in Fig. 8. W.l.o.g. suppose that B Q,V = B 1 (it is easy to see that there is an automorphism of T Q mapping any block to any other block). There are two cases to consider: when Q and Q ′ have 3 common neighbours in H 0 ; and when they have only 2 common neighbours in H 0 . However, before we deal with these cases, choose any 3 distinct nodes in T Q . A tedious case-by-case analysis yields that no matter which 3 nodes are chosen, there are 3 pairwise internally-disjoint paths from B 1 to the 3 nodes within T Q . For example, suppose that the 3 chosen nodes are r 1 , s 2 and s 3 . The 3 paths are: B 1 , r 1 ; B 1 , r 3 , B 4 , s 2 ; and B 1 , r 2 , B 3 , s 3 . It turns out that if the 3 chosen nodes are in 3 different groups then the length of any path is at most 5, whereas if the 3 chosen nodes are in 2 different groups then the length of any path is at most 3.
Suppose that Q and Q ′ have 3 common neighbours in H 0 . Choose the 3 nodes in T Q as the neighbours of B Q ′ ,V ′ in T Q ′ . Consequently, from above, we clearly obtain 3 pairwise internally-disjoint paths from B Q,V to B Q ′ ,V ′ as required. Moreover, each path has length at most 6.
Suppose that Q and Q ′ have only 2 common neighbours in H 0 where the groups corresponding to these neighbours are {r i , s i } and {r j , s j }, with i, j ∈ {1, 2, 3}, i = j. Choose 3 nodes in T Q ′ as the two neighbours of B Q ′ ,V ′ in {r i , s i } and {r j , s j }, call them x i and x j , plus one other node, call it x, say, from one of these groups, with the remaining unchosen node from these two groups being denoted by y. By above, there are 3 pairwise internally-disjoint paths, π ′ 1 , π ′ 2 and π ′ 3 , in T Q ′ from B Q ′ ,V ′ to x i , x j and x, and we may assume that these paths do not involve y; for if one does then it must be the path to x, in which case we simply choose y as our third chosen node, above, instead of x (it is not difficult to see that the path to x has length at most 3). By above, there are also 3 pairwise internally-disjoint paths, π 1 , π 2 and π 3 , in T Q from B 1 to x i , x j and x, each of length at most 3; moreover, these paths do not share any nodes with the paths π ′ 1 , π ′ 2 and π ′ 3 apart from the end-nodes. Consequently, we clearly obtain 3 pairwise internally-disjoint paths from B Q,V to B Q ′ ,V ′ as required. Moreover, each path has length at most 6.
Case (a)(ii): Suppose that: ∆ = k + 1; λ ≥ 2; and there is exactly one common neighbour in H 0 of Q and Q ′ , namely the node p 1 . As λ ≥ 2, there is a path in H 0 of the form Q, q 1 , Q 1 , q 2 , Q 2 , . . . , Q m−1 , q m , Q ′ where m ≤ µ 2 and where p 1 does not appear on this path (note that q 1 = q m ). We 'batch' our groups similarly to as we did before: • the remaining k − 1 groups within T Q are G 1 1 , G 1 2 , . . . , G 1 k−1 and the remaining k − 1 groups in T Q ′ are H 1 1 , H 1 2 , . . . , H 1 k−1 .
We construct the paths π 1 j , for j = 0, 1, . . . , k − 1, exactly as we did in Case (a)(i). In addition, define the paths η 2 0 as B Q,V , r 2 0 and ν 2 0 as B Q ′ ,V ′ , s 2 0 . If we can find a path in H from r 2 0 to s 2 0 so that no node or block of this path, apart from the nodes and blocks of η 2 0 and ν 2 0 , lies in T Q or T Q ′ then we are done. In H: there is a path of length 2 lying entirely within T Q1 so that the source is r 2 0 and the destination is some node y 2 ∈ G q2 ; there is a path of length 2 lying entirely within T Q2 so that the source is y 2 ∈ G q2 and the destination is some node y 3 ∈ G q3 ; . . .; there is a path of length 2 lying entirely within T Qm−1 so that the source is y m−1 ∈ G qm−1 and the destination is s 2 0 ∈ H 2 0 . We clearly have a required path of length at most µ. So, we have constructed ∆ = k + 1 pairwise internally-disjoint paths from B Q,V to B Q ′ ,V ′ so that k of these paths have length at most 6 and the remaining path has length at most µ.
For each j ∈ {0, 1, . . . , k − 1}, let r 1 j ∈ G 1 j (resp. s 1 j ∈ H 1 j ) be the unique node of G 1 j (resp. H 1 j ) that is adjacent to B Q,V (resp. B Q ′ ,V ′ ) in H. Let G 1 0 = {r 1 0 , t 1 , . . . , t k−1 } and H 1 0 = {s 1 0 , w 1 , . . . , w k−1 }. For each j ∈ {1, 2, . . . , k − 1}, let B r 1 j ,tj be the block of T Q generated by r 1 j ∈ G 1 j and t j ∈ G 1 0 , and let B ′ In H: there are k paths of length 2 from the nodes r 1 0 , t 1 , . . . , t k−1 of G q1 to distinct nodes y 2 0 , y 2 1 , . . . , y 2 k−1 of G q2 , respectively, so that all blocks on these paths lie in T Q1 and are distinct; there are k paths of length 2 from the nodes y 2 0 , y 2 1 , . . . , y 2 k−1 of G q2 to distinct nodes y 3 0 , y 3 1 , . . . , y 3 k−1 of G q3 , respectively, so that all blocks on these paths lie in T Q2 and are distinct; . . .; and there are k paths of length 2 from y a−1 0 , y a−1 1 , . . . , y a−1 k−1 to the nodes s 1 0 , w 2 , . . . , w k−1 of G qa , respectively, so that all blocks on these paths lie in T Qm−1 and are distinct. We can clearly piece all of the paths together to obtain k pairwise internally-disjoint paths from B Q,V to B Q ′ ,V ′ so that each path has length at most µ + 4.
We can build another path from B Q,V to B Q ′ ,V ′ that is internally-disjoint from the k paths just constructed by proceeding exactly as we did above or in Case (a)(ii), corresponding to the alternative path from Q to Q ′ in H 0 . This path has length at most µ. Case (a)(iv ): Suppose that λ = 1 or ∆ ≤ k.
By choosing the appropriate construction from the cases above, depending upon whether there is a common neighbour of Q and Q ′ in H 0 , we can clearly construct min{∆, k} pairwise internally-disjoint paths from B Q,V to B Q ′ ,V ′ so that: if there is a common neighbour of Q and Q ′ in H 0 , all paths have length at most 6; and if there is no common neighbour of Q and Q ′ in H, all paths have length at most µ + 4. If b = 0 then the above construction trivially yields ∆ paths of length 2 from B Q,V to B Q,V ′ . Suppose that b = 1. Choose x 2 ∈ G p2 \ {r 2 } and let B r1,x2 (resp. B s1,x2 ) be the block of T Q generated by r 1 and x 2 (resp. s 1 and x 2 ). Clearly, B r1,x2 , B s1,x2 , B Q,V and B Q,V ′ are all distinct. So, if π 1 is the path B Q,V , r 1 , B r1,x2 , x 2 , B s1,x2 , s 1 , B Q,V ′ and π i is the path B Q,V , r i , B Q,V ′ , for i ∈ {2, 3, . . . , ∆}, then we obtain ∆ pairwise internally-disjoint paths, with all paths having length 2 except one which has length 6.
Theorem 4 is clearly optimal in the sense that the maximal number of pairwise internally-disjoint paths is always constructed (this follows from a simple application of Menger's Theorem). Also, irrespective of the erroneous proofs in [10], Theorem 4(b) extends the claimed results in [10] by deriving ∆ pairwise internally-disjoint paths from any block B Q,V in H to any block B Q,V ′ (this scenario was not dealt with in [10]). Note also that the chance to obtain more than min{∆, k} pairwise internally-disjoint paths comes about when we force ∆ = k + 1 and choose a [k + 1, k]-transversal design (if one exists).
Of course, Theorem 4 yields path diversity in any DCN constructed using the 3-step method with Methods A and B. Suppose that Method A has been used to construct a DCN where the number of server-nodes adjacent to some level-1 switch-node is at most the number of level-2 switch-nodes adjacent to the level-1 switch-node. If all level-1 switch-nodes are non-blocking then we can simultaneously facilitate data transfers from all the server-nodes adjacent to some level-1 switch-node to all the server-nodes adjacent to any other level-1 switch-node (in fact, we need only that the source and destination level-1 switch-nodes are non-blocking; all other level-1 switch-nodes can be blocking).

Applying our construction
In this section, we apply Theorem 4 and provide some concrete illustrations of how we can obtain switch-centric DCNs that have the same diameter as Fat-Tree yet have more server-nodes and significant one-to-one path diversity.
As regards finding large, regular, uniform bipartite graphs of line-diameter 4 and so that there are at least 2 internally-disjoint paths joining any two distinct blocks, this is not as straightforward as it is if we drop the second stipulation. There is an extensive literature as regards the construction of regular, uniform bipartite graphs of a given degree and where the degree is equal to the rank (see, for example, [20]) but in so far as we are aware, the construction of such graphs with any added stipulations (relating to connectivity, for example) has not been considered. Nevertheless, there are simple constructions that enable us to apply Theorem 4 to the full, as we now illustrate.  From [20], there is a regular, uniform bipartite graph of degree and rank 7 with 173 nodes and 173 blocks, and which has graph-theoretic diameter 4. Enumerate the nodes as n 1 , n 2 , . . . , n 173 and the blocks as b 1 , b 2 , . . . , b 173 . Take two disjoint copies of this graph and add 346 edges joining n i in one graph to b i in the other graph; moreover, the nodes (resp. blocks) of the new bipartite graph are exactly the nodes (resp. blocks) of the original disjoint copies. The resulting graph is a regular, uniform bipartite graph of degree and rank 8 with graph-theoretic diameter at most 5; furthermore, there are clearly at least 2 internally-disjoint paths joining any pair of distinct blocks or any pair of distinct nodes where these paths have length at most 6. Take this bipartite graph as H 0 . The construction of H 0 can be visualized as in Fig. 9, where we have also illustrated, using dotted lines, a pair of internally-disjoint paths between a pair of blocks.
Apply the 3-step method to H 0 using a [8,7]-transversal design. In the notation of Section 3. Consequently, we obtain a DCN of diameter 6 and with (n(δ − c∆) =) 406, 896 server-nodes, (n =) 16, 954 level-1 switch-nodes, (ce =) 9, 768 level-2 switchnodes, and so that all switch-nodes have (δ =) 56 ports. By Theorem 4, there are paths from the 24 server-nodes adjacent to the same level-1 switch-node X to the 24 server-nodes adjacent to another level-1 switch-node Y so that the only switch-nodes that lie on more than one of these paths are X and Y and so that the length of each of these paths is at most 10. In addition, we have spare capacity at the level-1 switch-nodes X and Y as 8 links to level-2 switch-nodes are not used.
Alternatively (for an increase in the number of server-nodes incorporated and in path diversity but so that more ports are required on switch-nodes), apply the 3-step method with H 0 using a [8,8]-transversal design. This results in a bipartite graph H with 22, 144 nodes, 2, 768 blocks, degree 8, and rank 64. Now apply Method A with c = 4 and we obtain a DCN of diameter 6 and with 708, 608 server-nodes, 22, 144 level-1 switch-nodes, 11, 072 level-2 switch-nodes, and so that all switch-nodes have 64 ports. By Theorem 4, there are paths from the 32 server-nodes adjacent to the same level-1 switch-node X to the 32 server-nodes adjacent to another level-1 switch-node Y so that the only switch-nodes that lie on more than one of these paths are X and Y and so that the length of each of these paths is at most 10. The actual construction chosen will be dominated by the available hardware; that is, numbers of server-nodes and switch-nodes and the radix of switch-nodes.
It has already been established in [10] that the 2-step and 3-step methodologies are viable when it comes to building switch-centric DCNs that can host more server-nodes than a Fat-Tree and retain an acceptable level of (one-to-one) path diversity whilst maintaining a diameter of 6; we further cement this viability in this paper. An important point to note is that we need not choose our bipartite graph H 0 to be as large as we can; as we have shown, smaller bipartite graphs might yield DCNs with a sufficiently large number of server-nodes and optimal one-to-one path diversity.

One-to-many path diversity
We now work towards building ∆ pairwise edge-disjoint paths from any block in some bipartite graph H built using the 2-step method to the blocks of any given multi-set of ∆ blocks (so, there might possibly be repeated blocks; here, H and ∆ are as in the statement of Theorem 4 but where ∆ ≤ k). Henceforth, when we write 'set' we often mean 'multi-set'. We begin by working only within some transversal design. Theorem 6. Let T be any [∆, k]-transversal design where k, ∆ ≥ 2 and where ∆ ≤ k. Let U be any block and let t 1 , t 2 , . . . , t ∆ be any ∆ nodes or blocks, called target-nodes or target-blocks, as appropriate, where there may be repetitions.
For each i = 1, 2, . . . , ∆, there is a path π i from U to t i of length at most 7 so that these paths are pairwise edge-disjoint.
Proof. For each group of nodes D j within T , where j ∈ {1, 2, . . . , ∆}, let r j be the (unique) node of D j adjacent to the block U ; we call the nodes r 1 , r 2 , . . . , r ∆ root-nodes. Consider some group D j . There may be target-nodes that are identical to the root-node r j ; call these target-nodes rooted , with the remaining target-nodes in D j called non-rooted . Call the number of rooted target-nodes in D j the multiplicity of the root-node r j .
There are two essential cases: (a) we have ∆ target-nodes and no targetblocks; (b) we have at least 1 target-block.
Case (a): Suppose that we have ∆ target-nodes and no target-blocks. We rank the groups of T as D n1 , D n2 , . . . , D n∆ in decreasing order of the number of occurrences of non-rooted target nodes within the group, with ties broken according to decreasing multiplicity of the root-nodes (and then arbitrarily). We attempt to match the non-rooted target-nodes in D n1 with the root-nodes r n2 , r n3 , . . . , r n∆ in this order but only if the root-node has multiplicity 0 (that is, we skip over root-nodes of non-zero multiplicity; note that any skipped rootnode is identical to at least 1 target-node). If we are successful then we attempt to match the non-rooted target-nodes in D n2 by continuing down our list of root-nodes (again, skipping over root-nodes of non-zero multiplicity). If we are successful then we attempt to match the non-rooted target-nodes in D n3 , and so on. There are three possibilities.
(i) We successfully match every non-rooted target-node without running out of root-nodes (of multiplicity 0). This happens when r n1 has non-zero multiplicity or when there is a root-node with multiplicity at least 2.
(ii) We successfully match all but one of the non-rooted target-nodes and the final non-rooted target-node does not lie in D n1 , in which case we match this target-node with r n1 . This happens when r n1 has multiplicity 0, every root-node has multiplicity at most 1, and there is a non-rooted target-node that does not lie in D n1 .
(iii) We have one non-rooted target-node of D n1 remaining to be matched and also the root-node r n1 unmatched. This happens when all of the nonrooted target-nodes lie in D n1 and r n1 has multiplicity 0.
Consider Sub-case (ii). We extend our matching so that every root-node of multiplicity 1 is matched with the unique target-node that is identical to it. We have a complete matching of root-nodes to target-nodes so that no target-node is matched with the root-node in its own group unless the target-node is (the unique target-node) identical to the root-node. For every pair (r, t) where r is a root-node matched with a target-node t and so that r and t do not lie in the same group, let U r,t be the block generated by r and t. Call the resulting set of blocks the U -blocks. By Lemma 3, all of the U -blocks are distinct and different from U . If U r,t is a U -block then define the path π r as U, r, U r,t , t; and if the target-node t is identical to the root-node r then define the path π r as U, t. The resulting ∆ paths are pairwise internally-disjoint.
Consider Sub-case (iii). We have an almost complete matching of root-nodes to target-nodes so that no target-node is matched with the root-node in its own group, except that some target-node t ′ of D n1 is not matched and nor is the root-node r n1 . As we did above, we generate a set of U -blocks, one for each matched-pair. Again, these U -blocks are all distinct and different from U , and by proceeding as above we obtain ∆ − 1 pairwise internally-disjoint paths from U to target-nodes.
Consider t ′ and r n1 . As ∆ ≥ 2, there is some node x in the group D n2 that is neither a root-node nor a target-node. Let U ′ rn 1 ,x (resp. U ′ x,t ′ ) be the block generated by r n1 and x (resp. x and t ′ ). By Lemma 3, U ′ rn 1 ,x is different from U and every U -block; also, U ′ x,t ′ is different from U and U ′ rn 1 ,x . However, it could be that U ′ x,t ′ is identical to some U -block (for this to happen we would need that t ′ is identical to some other target-node). If t is the target-node of D n1 matched with r n2 then U ′ x,t ′ is different from U rn 2 ,t . Hence, there are at most ∆ − 2 Ublocks with which U ′ x,t ′ might be identical. As we have at least ∆ − 1 choices for x in D n2 (recall, ∆ ≤ k), we can always choose x so that U ′ x,t ′ is different from every U -block. Define the path π rn 1 as U, r n1 , U ′ rn 1 ,x , x, U ′ x,t ′ , t ′ . The resulting ∆ paths from U to the target-nodes are pairwise internally-disjoint.
Consider Sub-case (i). We can extend our matching so that every rootnode of non-zero multiplicity is matched with one target-node that is identical to it. Hence, we have a partial matching of root-nodes to target-nodes so that no target-node is matched with the root-node in its own group unless the target-node is identical to the root-node. As we did above, we generate a set of U -blocks, one for each matched-pair where the root-node in the pair is different from its matched target-node. Again, these U -blocks are all distinct and different from U , and we obtain pairwise internally-disjoint paths from U to all of the target-nodes involved. We also obtain paths of length 1 from U to every target-node that is identical to a root-node and has been matched with it. If there are no root-nodes of multiplicity greater than 1 then the resulting ∆ paths are pairwise internally-disjoint and we are done. So, suppose that we have paths π 1 , π 2 , . . . , π ∆−b that are pairwise internallydisjoint and that there are a ≥ 1 root-nodes of multiplicity at least 2 with b unmatched root-nodes (so, b is the number of target-nodes remaining to be dealt with; of course, b ≥ a). Note that any group in which some hitherto unmatched root-node lies, apart from D n1 if r n1 is still unmatched (that is, has multiplicity 0), contains no target-nodes (because of the order in which we initially match target-nodes to root-nodes) and the groups containing unmatched root-nodes are either D n ∆−b+1 , D n ∆−b+2 , . . . , D n∆ , if r n1 is matched, or D n1 , D n ∆−b+2 , D n ∆−b+3 , . . . , D n∆ , if r n1 is unmatched.
Suppose that b = 1; hence, there is exactly one root-node r c , where c ≤ ∆−1, of multiplicity greater than 1 and this multiplicity is 2. W.l.o.g. let the solitary target-node remaining to be dealt with be t 2 (which is identical to both r c and some other target-node t 1 ), with the solitary root-node remaining to be dealt with being either r n∆ or r n1 , as appropriate. If ∆ = 2 then we must have {r n1 , x n1 } ⊆ D n1 and {r n2 , x n2 } ⊆ D n2 with x n1 = r n1 and x n2 = r n2 so that the two target nodes t 1 and t 2 are both equal to r n1 (note that in this case we define no U -blocks). Let U ′ xn 2 ,rn 1 (resp. U ′ rn 2 ,xn 1 , U ′ xn 1 ,xn 2 ) be the block generated by x n2 and r n1 (resp. r n2 and x n1 , x n1 and x n2 ). The blocks U , U ′ xn 2 ,rn 1 , U ′ rn 2 ,xn 1 and U ′ xn 1 ,xn 2 are all distinct. Define the path π 2 as U, r n2 , U ′ rn 2 ,xn 1 , x n1 , U ′ xn 1 ,xn 2 , x n2 , U ′ xn 2 ,rn 1 , t 2 and the path π 1 as U, t 1 ; the two paths are internally-disjoint and we are done.
Alternatively, suppose that b = 1 and ∆ ≥ 3 (and so k ≥ 3). If c = n ∆−1 then there is a non-rooted target-node in each D j , for j ∈ {n 1 , n 2 , . . . , n ∆−2 }, with the unmatched root-node being r n1 . Choose x ∈ D ∆ \ {r n∆ }. Otherwise, if c = n ∆−1 then D n∆−1 contains at most 1 target-node, which, if it exists, is rooted, with the unmatched root-node being either r n1 or r n∆ . Choose x ∈ D ∆−1 \ {r n∆−1 }. Whichever is the case, let r be the unmatched root-node (and so r ∈ {r n1 , r n∆ }). Let U ′ x,t2 (resp. U ′ r,x ) be the block generated by x and t 2 (resp. r and x). By Lemma 3, the U -blocks, U , U ′ x,t2 and U ′ r,x are all distinct. Define the path π ∆ as U, r, U ′ r,x , x, U ′ x,t2 , t 2 so as to obtain ∆ pairwise internally-disjoint paths from U to the target-nodes; hence, we are done. Now suppose that b ≥ 2 (note that b ≤ ∆ − 1 ≤ k − 1). As stated above, the root-nodes remaining to be dealt with are either r n ∆−b+1 , r n ∆−b+2 , . . . , r n∆ or r n1 , r n ∆−b+2 , r n ∆−b+3 , . . . , r n∆ . Suppose that the root-nodes remaining to be dealt with are r n ∆−b+1 , r n ∆−b+2 , . . . , r n∆ and the target-nodes remaining to be dealt with are t 1 , t 2 , . . . , t b (of course, every such target-node is identical to an already matched root-node). ,ti be the block generated by x ′ ni and t i ; call these blocks theŪ -blocks. By Lemma 3, each U -block is different from U , every U -block and from every U ′ -block (note that any t i is a root-node and so not adjacent to any U -block or U ′ -block). However, it is possible thatŪ x ′ n i ,ti =Ū x ′ n j ,tj , for i = j (for this to happen we would need that t i = t j , as otherwise we would have two root-nodes adjacent to both U and another block). Note that for each i ∈ {∆ − b + 1, ∆ − b + 2, . . . , ∆}: we have k − 1 possible choices within D ni for x ′ ni ; and for j 1 , j 2 ∈ {2, 3, . . . , k}, where j 1 = j 2 , the blockŪ x n i j 1 ,ti , generated by x ni j1 and t i , is different from the block U x n i j 2 ,ti , generated by x ni j2 and t i .
Alternatively, suppose that the root-nodes remaining to be dealt with are r n1 , r n ∆−b+2 , r n ∆−b+3 , . . . , r n∆ . We proceed exactly as above except that we start from a node x ′ n1 ∈ D n1 \ {r n1 } that is different from any target-node (such a node exists). We obtain our pairwise internally-disjoint paths as before.
Case (b): Suppose that there is at least 1 target-block. W.l.o.g. we may assume that the a target-nodes t 1 , t 2 , . . . , t a , where 0 ≤ a ≤ ∆ − 1, lie within the groups D 1 , D 2 , . . . , D a and that the target-blocks are U 1 , U 2 . . . , U ∆−a . Suppose that some target-block U i is adjacent to some rootnode r j of some group D j , where i ∈ {1, 2, . . . , ∆ − a} and j ∈ {a + 1, a + 2, . . . , ∆}. Remove the target-block U i (temporarily) from our set of targets and include the new target-node r j . Iterate this process. Hence, w.l.o.g. we may assume that: our target-nodes are the original target-nodes t 1 , t 2 , . . . , t a along with the new target-nodes r a+1 , r a+2 , . . . , r a+b , where each new target-node r a+i is adjacent to the now removed old target-block U i ; and our target-blocks are U b+1 , U b+2 , . . . , U ∆−a with none of these target-blocks adjacent to any root-node in the groups D a+b+1 , D a+b+2 . . . , D ∆ . For each i ∈ {1, 2, . . . , ∆ − a}: let the node x a+b+i ∈ D a+b+i \ {r a+b+i } be adjacent to U b+i ; and (temporarily) remove the target-block U b+i and include the new target-node x a+b+i .
Apply the construction in Case (a) to our new set of ∆ target-nodes. We obtain ∆ paths, one from U to each of our target-nodes so that these paths are internally-disjoint. Consider some new target-node r a+i , where i ∈ {1, 2, . . . , b}. By the construction of our paths, the path corresponding to this new targetnode is U, r a+i and r a+i does not appear on any other path (there is no repetition of r a+i in our set of target-nodes). Extend the path U, r a+i to the path U, r a+i , U i , for i = 1, 2, . . . , b. Consider some new target-node x a+b+i , where i ∈ {1, 2, . . . , ∆ − a}. Suppose that the edge (U b+i , x a+b+i ) appears on some path. By the construction of our paths, the only way that this can happen is if this edge is the last edge on the path from U to x a+b+i . If this is the case then truncate this path at U b+i . Alternatively, if the edge (U b+i , x a+b+i ) does not appear on some path then we extend the path from U to x a+b+i by the addition of the edge to U b+i . Consequently, we obtain a set of paths from U to each of our original target-nodes and target-blocks so that these paths are pairwise edge-disjoint. Note that: target-nodes only appear as destinations and apart from possibly target-nodes, no node appears on more than one path; and no block appears on more than one path except possibly for some target-blocks (which might appear as internal nodes on paths). The result follows.
Note that the construction in Theorem 6 is weaker than those in the previous section as we obtain only that paths are pairwise edge-disjoint rather than pairwise internally-disjoint. However, we do obtain the following result as an immediate corollary of the construction in Theorem 6.
We now build some many-to-many edge-disjoint paths within some transversal design.
Suppose that we are given a nodes, the target-nodes, and b blocks, the target-blocks, so that there might be repetitions amongst the target-nodes and target-blocks. Suppose that D 0 is a group of nodes that contains no target-nodes. There exists a set S of ∆ 0 distinct nodes of D 0 such that there are ∆ 0 pairwise internally-disjoint paths, each of length at most 3, the sources of which are the nodes of S and the destinations of which are all the target-nodes and target-blocks.
Proof. Suppose that b ≥ 1 (we'll deal with the case when b = 0 later) and suppose that the distinct target-blocks are U 1 , U 2 , . . . , U c , so that the targetblocks U c+1 , U c+2 , . . . , U b all lie in {U i : i = 1, 2, . . . , c}. Furthermore, suppose that for each i ∈ {1, 2, . . . , c}, the target-block U i is repeated n i times in the set of target-blocks. So, b = c i=1 n i . We define that U i ≡ U j , for i, j ∈ {1, 2, . . . , c} if, and only if, U i and U j are adjacent to the same node of D 0 . Let U 1 , U 2 , . . . , U d (where d ≥ 1) be representatives from the resulting equivalence classes (so, d ≤ c) and let x i 1 be the node of D 0 adjacent to U i , for i = 1, 2, . . . , d. Thus, we immediately obtain d paths π 1 1 , π 2 1 , . . . , π d 1 of length 1 from distinct nodes of D 0 to the target-blocks U 1 , U 2 , . . . , U d .
For ease of notation, we rename some of the groups of nodes of T as {D 0 } ∪ {D i j : i = 1, 2, . . . , d; j = 2, 3, . . . , n i } ∪ {D i j : i = d + 1, d + 2, . . . , c; j = 1, 2, . . . , n i } so that no target-node lies in any of these groups (note that the number of such groups is ( . . , n i }, let r i j ∈ D i j be the unique node adjacent to U i , and for each i ∈ {d + 1, d + 2, . . . , c} and each j ∈ {1, 2, . . . , n i }, let r i j ∈ D i j be the unique node adjacent to U i . For each i ∈ {1, 2, . . . , d} and each j ∈ {2, 3, . . . , n i }, let U i j be the block generated by x i j and r i j , and for each i ∈ {d + 1, d + 2, . . . , c} and each j ∈ {1, 2, . . . , n i }, let U i j be the block generated by x i j and r i j . Call the resulting blocks generated the U -blocks. In particular, as every U -block is adjacent to a different node of D 0 , all U -blocks are distinct. Moreover, as no target-block is adjacent to the same node of D 0 that any U -block is adjacent to, every Ublock is different from every target-block. For each i ∈ {1, 2, . . . , d} and each j ∈ {2, 3, . . . , n i }, define the path π i j as x i j , U i j , r i j , U i , and for each i ∈ {d + 1, d + 2, . . . , c} and each j ∈ {1, 2, . . . , n i }, define the path π i j as x i j , U i j , r i j , U i . The paths from the set {π i j : i = 1, 2, . . . , c; j = 1, 2, . . . , n i } are clearly internallydisjoint.
We are now in a position to use Theorems 6 and 8 to obtain the main result of this section.
Theorem 9. Let k, ∆, d ≥ 2 so that ∆ ≤ k. Let H be built by the 2-step method applied to the connected (d, ∆)-bipartite graph H 0 using the [∆, k]-transversal design T . Let B be some block of H and let B 1 , B 2 , . . . , B ∆ be blocks of H that are not necessarily distinct but different from B. There exists paths from B to B 1 , B 2 , . . . , B ∆ so that no edge of H appears in more than one of these paths.
Proof. Let Q 1 , Q 2 , . . . , Q q be the exact distinct blocks of H 0 such that ∪ q i=1 T Qi contains the blocks B 1 , B 2 , . . . , B ∆ within H (in particular, q ≤ ∆), and let Q 0 be the block of H 0 such that T Q0 contains the block B within H. Let Z be a tree within H 0 that is rooted at Q 0 and is such that: every block of {Q i : i = 1, 2, . . . , q} appears in Z; and all leaves of Z are blocks within {Q i : i = 1, 2, . . . , q}. We use the tree Z as a skeleton so as to build our required paths in H.
Call the blocks B 1 , B 2 , . . . , B ∆ the H-target-blocks. Label every node p (resp. block Q) in Z with a non-negative integer µ(p) (resp. µ(Q)) detailing the number of H-target-blocks that are associated with a block of Z that is a descendant of p (resp. a descendent of Q or with Q itself). So, for example, the root Q 0 is such that µ(Q 0 ) = ∆ and any leaf (block) Q of Z is such that µ(Q) is the number of H-target-blocks within T Q .
Suppose that p is some node of Z whose children are all leaves (and so blocks). Suppose that w.l.o.g. these children are Q 1 , Q 2 , . . . , Q r . For each i ∈ {1, 2, . . . , r}, by Theorem 8, there exists a set S i of µ(Q i ) nodes of the group of nodes of H associated with the node p of H 0 so that there are µ(Q i ) pairwise internally-disjoint paths from the nodes of S i to the H-target-blocks associated with Q i where each of these paths has length at most 3 (note that the edges of these paths lie in T Qi ; of course, the edges of T Qi are disjoint from the edges of T Qj , for any i = j). Consequently, we obtain a multi-set S p = ∪ r i=1 S i of µ(p) nodes in the group of nodes in H associated with the node p of H 0 so that there are µ(p) paths in ∪ r i=1 T Qi from the nodes of S p to the H-targetblocks associated with the blocks Q 1 , Q 2 , . . . , Q r . These µ(p) paths are pairwise internally-disjoint but they might have common sources.
Suppose that Q is some non-root block of Z whose children are w.l.o.g. p 1 , p 2 , . . . , p r and so that the following holds: • associated with each child p i is a multi-set S i of µ(p i ) nodes in the group of nodes of H associated with the node p i of H 0 • for each child p i , there are µ(p i ) paths from the nodes of S i to the Htarget-blocks associated with blocks that are descendants of p i in T so that all of these paths have length at most l • no edge of H appears in more than one of the r i=1 µ(p i ) paths that are associated with some child of Q.
Let p 0 be the node of Z that is the parent of Q. By Theorem 8, there is a set S 0 of µ(p 0 ) nodes in the group of nodes of H associated with p 0 together with µ(p 0 ) paths from the nodes of S 0 to the nodes of ∪ r i=1 S i in union with the H-targetblocks associated with Q where the paths are pairwise internally-disjoint and each path has length at most 3. Hence, by concatenating the paths involved, we have µ(p 0 ) = µ(Q) paths from the nodes of S 0 to the H-target-blocks associated with all descendant blocks of p 0 in Z where no edge of H appears in more than one of these paths and the length of any of these paths is at most l + 3.
Finally, suppose that the children of Q 0 in Z are w.l.o.g. p 1 , p 2 , . . . , p r and are such that the following holds: • associated with each child p i is a multi-set S i of µ(p i ) nodes in the group of nodes of H associated with the node p i of H 0 • for each child p i , there are µ(p i ) paths from the nodes of S i to the Htarget-blocks associated with blocks that are descendants of p i in T so that all of these paths have length at most l • no edge of H appears in more than one of the r i=1 µ(p i ) paths that are associated with some child of Q 0 .
By Theorem 6, we obtain paths from B to the nodes of ∪ r i=1 S i in union with the multi-set of blocks associated with Q 0 so that no edge of H appears in more than one of these paths and all paths have length at most 7. Consequently, by concatenating paths, we obtain ∆ paths from B to B 1 , B 2 , . . . , B ∆ so that no edge of H appears in more than one of these paths and the paths have length at most l + 7. The result follows by induction. Moreover, it is easy to see that if the depth of Z is h then the length of the longest of these paths is at most 3 h 2 + 7.
We have two remarks as regards Theorem 9: first, note the additional bound of 3 h 2 +7 on the lengths of the paths derived in the proof of Theorem 9 in terms of the height h of the tree Z; and, second, this theorem is weaker than Theorem 4 in that in Theorem 9 the paths constructed are pairwise edge-disjoint rather than pairwise internally-disjoint as they are in Theorem 4.
Of course, armed with the constructions of switch-centric DCNs from Section 3.3, and analogous to our constructions in Section 4.3, it should be clear how we can obtain pairwise edge-disjoint paths joining all the server-nodes adjacent to some level-1 switch-node in some appropriately constructed DCN to any identically-sized set of distinct server-nodes (irrespective of whether they are adjacent to different level-1 switch-nodes), so long as the number of servernodes adjacent to some level-1 switch-node is no more than the number of level-2 switch-nodes adjacent to it. (Note also that whereas when we applied Theorem 4 in Section 4.3, complications arose because of the need to have λ at least 2, there are no such complications when it comes to applying the theorems in this section.)

Conclusion
In this paper, we have shown how combinatorial design theory can be used to build switch-centric DCNs of diameter at most 6 and with many more servernodes than the Fat-Tree DCN but so that there is still considerable one-to-one and one-to-many path diversity. We regard the more general demonstration that combinatorial mathematics can enhance the design of modern-day computational infrastructures such as data centres as one of the primary contributions of this paper. Whilst we have demonstrated that combinatorial mathematics has the potential to add to and improve the design of DCNs, the DCNs obtained by our constructions need to be studied in much greater detail with regard to the numerous other properties that a switch-centric DCN (and, indeed, any other type of DCN) has to have in order to make it viable as a practical DCN (as we hinted earlier, there is no one DCN, or even DCN paradigm, that will satisfy every property simultaneously). For example: although we bound the diameter of our DCNs, we need to derive (optimal) routing algorithms (within bipartite graphs built using the 2-step method) so as to meet these bounds; and (as was noted in [10]) it would be beneficial if the bisection width of the DCNs constructed in this paper could be ascertained (bisection width is often used as a proxy for throughput in DCNs). However, the list of desirable properties, alluded to in the Introduction, that we would wish for our DCNs is lengthy and will result in numerous new strands of research, both theoretical and more practical.
Our results also throw up some immediate directions for further research and we mention four such directions now.
It would be interesting to discover more mechanisms for converting bipartite graphs constructed using the 2-step method into DCNs than those developed in [10] and detailed in Section 3.3. We envisage that such a study would go handin-hand with research into building DCNs which possess yet more beneficial properties as regards their efficacy as DCNs (as highlighted above).
As we mention in Section 4.3, our constructions have drawn attention to a hitherto unstudied problem in combinatorics namely the construction of regular, uniform bipartite graphs with additional properties such as having at least 2 internally-disjoint paths joining any two blocks. It would be interesting to study problems such as this in a solely mathematical context.
Our results have hinted that the study of transversal designs as bipartite graphs and in a graph-theoretic context is worth pursuing. For example, if one looks at Theorem 4 then there are ∆ pairwise internally-disjoint paths, each of length at most 6, joining any two distinct blocks in some transversal design T ; and if one looks at Theorem 6 then, if ∆ ≤ k, there are ∆ pairwise edge-disjoint paths, each of length at most 6, joining any given source block with any given multi-set of ∆ target blocks in some transversal design T . Such results might be of independent interest within some appropriate network context. Within a DCN N built using the 2-step method, there are many 'copies' of the bipartite graph corresponding to the chosen transversal design. These copies and the above constructions might be utilized where there is traffic localization, e.g., in a virtualization context where many guest DCNs are embedded within the DCN N .
Finally, as mentioned above, we need to derive routing algorithms within the DCNs constructed in this paper so as to make use of the available path diversity. The combinatorial first step to this is the 'control' of the 2-step and 3-step constructions, especially as one iterates the construction and then applies the constructions using Methods A and B. We need to be able to devise a combinatorial naming scheme, in terms of the constituent base bipartite graph H 0 and the transversal design T , so that we can use the resulting algebraic description as the framework for subsequent routing algorithms.