![]() |
In computer and telephone networks, users want to connect to other users and there is no distinguished set of "suppliers" and "consumers". Everyone can be both a supplier and consumer. When the telephone industry was first started, telephone connections were dedicated lines between customers. For example, a bank would have a separate telephone for every branch office with which it had telephone service. There would be a separate wire that connected each two sites. See http://www.webbconsult.com/timeline.html for a timeline history of the telephone industry.
Such a technology was quickly recognized to be very limited and could not scale to thousands or millions of users. The telephone companies wanted everone to be a user so the idea of switched telephony was developed. A customer would only need one telephone and line. The lines all went from the customers' locations to the telephone company's switching centers. Operators at the switching center would physically connect customer's lines together when the customers wanted to communicate.
Here is a graphical depiction of a completely connected, unswitched network,

and a depiction of a centrally switched network when central switches
were first introduced.
With the switching concept, telephone service became much more flexible
and attractive to customers - they could call many different people with
the same equipment. Early central switches were operated by humans but
when thousands of users were in the network, it became necessary and economically
attractive to automate the process by which switches were operated - from
human operators to mechanical and then electronic switches.
A mechanical or electrical switch that has a physical element for every possible connection between users is called a "crossbar". Here is a depiction of a crossbar where users are called "inputs" and "outputs" although you can think of them as being just "users".

Crossbar switches are nonblocking - regardless of what connections are in place, if two free users want to connect to each other, the crossbar allows it.
Unfortunately, a crossbar requires N-squared crosspoints to connect N inputs to N outputs. For 1,000,000 users, a crossbar would require 1,000,000,000,000 crosspoints which is extremely expensive. So the engineering challenge is to make switches that are nonblocking (because you don't want to loose customers if they want to make calls) but require fewer crosspoints than a full crossbar which is too big and expensive to build and operate.
Switching networks are made out of smaller crossbar switches. Below is an example of a simple switching network where the boxes are meant to be smaller crossbar switches with the appropriate number of inputs and outputs.

This switch is a blocking switch because if for example, input 1 is connected to output 2 and input 2 is connected to output 4, then even if input 3 and output 4 are free, they cannot be connected.
By adding another line between the 3 by 2 switch and the 4 by 4 switch, this becomes a nonblocking switch. You can verify this by inspection - try making different types of connections and the see if it is still possible to connect free inputs and outputs.

We will next discuss general rules for building nonblocking networks that use fewer crosspoints than full crossbar switches. This will give you some idea of the engineering design problems that needs to be solved to build a global cyberspace. The key observation is that unless a design that is not a complete crossbar is carefully thought through, it will lead to a blocking network.
In 1953, C. Clos of Bell Laboratories discovered a simple rule by which we can build nonblocking networks that use fewer crosspoints that a complete crossbar. Clos' construction uses three stages to switch N inputs into N outputs.
In the first stage, the N inputs are broken into groups on n inputs each. Each group of n inputs is switched by a brossbar of size n x k into k outputs. There must be N/n of these n x k switches in the first stage. (What if N is not divisible by n? Read on and think about this.)
The second stage consists of k switches each of size N/n x N/n. One of the k outputs from each switch at the first stage is fed into one of the switches at stage 2. Since there are N/n switches in the first stage, the switches at the second stage must be N/n x N/n.
The third stage has N/n switches of size k x n, sort of a mirror image
of the first stage. Each of the second stage switches has an output which
feds into an input of each of the third stage switches.

Clos showed that this design is a nonblocking switch if k = 2n-1 or greater. If k < 2n-1, blocking can occur as follows: suppose input 1 want to connect to output 1 (these could be any fixed input and any fixed output but we use 1 in each case for simplicity). There are n-1 other inputs to the first switch at stage 1. Suppose they each go to a different switch at stage 2. Similarly, suppose the n-1 outputs in the first switch other than output 1 at the third stage are all busy again using n-1 different switches at stage 2. If k < n-1 + n-1 +1 = 2n-1 then there will be no line that input 1 can use to connect to output 1.
Clearly, if k = 2n-1 or greater, then there will be free lines that can be used to connect input 1 to output 1.
As an example of Clos' construction, suppose that N=1000 and n=10. There are N/n = 1000/10 = 100 switches at the first and third stages. At the first stage, they are 10 x k and at the third stage they are k x 10 switches. The second stage will have k switches of size 100 x 100.
If k = 2n-1=19, then the resulting switch will be nonblocking. If k < 19, then blocking can occur. For k=19, let's compare the number of crosspoints.
In the case of a full 1000 x 1000 crossbar switch, no blocking occurs but 1,000,000 (a million) crosspoints are required. For n=10 and k=19, each switch at the first stage is a 10 x 19 crossbar which requires 190 crosspoints and there are 100 such switches. Same for the third stage. So the first and third stages use 2x190x100=38,000 crosspoints altogether. The second stage consists of k=19 crossbars each of size 100 x 100 because N/n=1000/10 = 100. So the second stage uses 190,000 crosspoints. Altogether, the Clos construction uses 228,000 crosspoints versus the 1,000,000 points used by the complete crossbar.
So we use 2x23x44x45=91,080 crosspoints in the first and third stages and an additional 44x44x45=87,120 crosspoints in the second (middle) stage. Thus the total number of crosspoints in the best Clos construction involves fewer than 180,000 crosspoints for a nonblocking switch as compared with the 1,000,000 for the complete crossbar and about 190,000 for n=10, as shown above. This is a factor of over 11 less equipment needed to switch 1000 customers!!
More generally, a Clos network can have different numbers of inputs and outputs. In the general setting, a Clos network is described by 5 numbers, (IN, N1, N2, N3, OUT), meaning that the first stage consists of N1 copies of an IN by N2 crossbar, stage 2 consists of N2 copies of an N1 by N3 crossbar and stage 3 has N3 crossbars of size N2 by OUT. In this framework, the number of input lines is merely IN x N1 and the number of output lines is N3 x OUT.
The network is nonblocking if N2 is larger than IN+OUT-2.
It can be shown that a general Clos network is an RNB network if N2
is larger than both IN and OUT. Thus a (2,2,2,2,2) Clos network is a blocking
network but a rearrangably nonblocking network as well!! Try some simple
examples to verify this.