From c21ddd5f9fe398cf6825f934b9cd9eaee012184d Mon Sep 17 00:00:00 2001 From: Richard Whitehouse Date: Wed, 20 Apr 2011 18:21:42 +0100 Subject: [PATCH] First draft of ethernet section --- introduction.tex | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/introduction.tex b/introduction.tex index 9aa77b1..a63cfeb 100644 --- a/introduction.tex +++ b/introduction.tex @@ -48,7 +48,21 @@ Ethernet was first described in a memo on May 22, 1973 at Xerox PARC by Bob Metc This relied on each computer having a unique address to which it could be sent packets, which the controller would listen out for. This was also the only required property - the address did not need to be transferable, it did not need to describe any information about the owner and it did not need to contain routing information. In order to provide this guarantee, Ethernet controllers were allocated a 48 bit long address. The first three bytes - 24 bits, were assigned by the IEEE and identify the type of address and the manufacturer. The last three bytes are assigned by the manufacturer, with the manufacturer guaranteeing that the address was unique, with an additional block of of addresses allocated when a manufacturer had run out. - +As network traffic increased, and more computers were added to local area networks, the reality of all computers sharing a single shared media with which any packet would collide with other traffic became impractical. This was exacerbated by distant computers being far away from each other, descreasing the utility of Carrier Sense, increasing the likelihood of collision, which is followed by a process where each host backed off before trying again, thus decreasing utilisation of the network. + +The solution to this was to split the single colision domain into a set of domains which would be joined together using a network bridge to form a single collision domain. \cite{802.11d} The bridge, or switch as it is also known due to the manner in which it operates, filters traffic between the different collision domain, only sending traffic where it is required. As the number of hosts on the network, and the speed of network traffic increased, more and more collision domains were created. Modern Ethernet networks are entirely switched networks with each host having a full duplex link to the local switch. + +The next problem was that as networks became more vital to operation, it became desirable to have redundant links. In order to allow this the switches were often aranged in a way that formed loops. However, the Ethernet protocol relies on traffic being sent to a tree, and not a graph with cycles in it, in order to prevent broadcast traffic from cycling the network endlessly using up all the available bandwidth. In order to solve this Ethernet uses a spanning tree protocol in order to convert the graph of switches into a tree. This tree is not guranteed to a minimum spanning tree, instead it is guaranteed that all switches have the shortest possible path to a root bridge which may be specified by the network administrator in top end switches. The current iteration of this protocol is the Rapid Spanning Tree Protocol - RSTP and this disables links until that condition is met. In practical terms this means that redundant links which could be used to increase the available network bandwidth are instead disabled. Should the state of the network change, they will be re-enabled to allow the network to continue to operate. + +\subsubsection{Limitations} + +% TODO: Additional limitations + +As Ethernet addresses contain no routing information, unlike IP addresses in which parts of the network space are delegated to segments of the network, it is impossible in a practical scenario to perform any form of aggregation. This means in order for network switches to switch traffic between different network segments it has to contain a lookup between each address and the port to send the data. Due to the high speed at which modern network links operate, this has to be done quickly. This is done using Content Addressable Memory (CAM) which provides O(1) lookup time for unsorted data. CAM is very expensive in large blocks and consumes large amounts of power. This means that modern Ethernet switches have a practical state table size maximum of between 8000 and 32000 hosts. \cite{cam}. + +Current trends in data centers, with large numbers of machines in a dense configuration \cite{facebook}, each machine containing multiple hosts through the utilisation of Xen VM \cite{xen} or VMware ESX hypervisors, giving each host a virtual Ethernet controller are causing this limit to be exceeded \cite{moose1}. When the switch's state table is full it can not store any more entries. When a packet arrives to a host not in the state table, it must revert to broadcast, increasing the amount of traffic on the network, decreasing utilisation and increasing the delay per packet. + +Another limitation is that when the spanning tree protocol converts the network from a graph to a tree it disables a large number of links, reducing the available network utilisation. A more intelligent protocol could allow these links to be enabled in order to increase utilisation. This could also use multiple links when available to increase the available bandwidth between switches. \subsection{MOOSE} -- 2.34.1