  We describe a distributed randomized algorithm computing approximate
distances and routes that approximate shortest paths. Let n denote the number
of nodes in the graph, and let HD denote the hop diameter of the graph, i.e.,
the diameter of the graph when all edges are considered to have unit weight.
Given 0 < eps <= 1/2, our algorithm runs in weak-O(n^(1/2 + eps) + HD)
communication rounds using messages of O(log n) bits and guarantees a stretch
of O(eps^(-1) log eps^(-1)) with high probability. This is the first
distributed algorithm approximating weighted shortest paths that uses small
messages and runs in weak-o(n) time (in graphs where HD in weak-o(n)). The time
complexity nearly matches the lower bounds of weak-Omega(sqrt(n) + HD) in the
small-messages model that hold for stateless routing (where routing decisions
do not depend on the traversed path) as well as approximation of the weigthed
diameter. Our scheme replaces the original identifiers of the nodes by labels
of size O(log eps^(-1) log n). We show that no algorithm that keeps the
original identifiers and runs for weak-o(n) rounds can achieve a
polylogarithmic approximation ratio.
  Variations of our techniques yield a number of fast distributed approximation
algorithms solving related problems using small messages. Specifically, we
present algorithms that run in weak-O(n^(1/2 + eps) + HD) rounds for a given 0
< eps <= 1/2, and solve, with high probability, the following problems:
  - O(eps^(-1))-approximation for the Generalized Steiner Forest (the running
time in this case has an additive weak-O(t^(1 + 2eps)) term, where t is the
number of terminals);
  - O(eps^(-2))-approximation of weighted distances, using node labels of size
O(eps^(-1) log n) and weak-O(n^(eps)) bits of memory per node;
  - O(eps^(-1))-approximation of the weighted diameter;
  - O(eps^(-3))-approximate shortest paths using the labels 1,...,n.
