
This paper examines the complexity of 
 distributed algorithms
for finding 
a Minimum Spanning Tree in undirected graphs;
the goal is to create algorithms optimal with respect
to both communication $O(E+N \log N)$ and time $O(N)$,
 where $ E,N$ is the
number of edges and nodes respectively.
A fundamental
bad case that leads to non-optimal performance and the
proposed techniques to 
overcome this problem are presented.
We introduce new techniques based on the
the idea that we call Distributed Information;
 nodes store information
that summarizes properties of groups of nodes.
The techniques (and the corresponding algorithms)
are classified
 in communication optimal and time optimal ones. 
Finally,
 the structure of the algorithm proposed
in \cite{Awe87} and the above classification can lead to
a pattern for creating optimal algorithms. 
In addition, a simple $O(E)$ messages and
 $O(N)$ time algorithm for counting the nodes of the network
 is introduced; 
It can be used as part of the optimal algorithm or
it may be of independent interest.

