  We study branching laws for a classical group $G$ and a symmetric subgroup
$H$. Our approach is through the {\it branching algebra}, the algebra of
covariants for $H$ in the regular functions on the natural torus bundle over
the flag manifold for $G$. We give concrete descriptions of (natural
subalgebras of) the branching algebra using classical invariant theory. In this
context, it turns out that the ten classes of classical symmetric pairs $(G,H)$
are associated in pairs, $(G,H)$ and $(H',G')$, and that the (partial)
branching algebra for $(G,H)$ also describes a branching law from $H'$ to $G'$.
(However, the second branching law may involve certain infinite-dimensional
highest weight modules for $H'$.) To highlight the fact that these algebras
describe two branching laws simultaneously, we call them {\it reciprocity
algebras}. Our description of the reciprocity algebras reveals that they all
are related to the tensor product algebra for $GL_n$. This relation is
especially strong in the {\it stable range}. We give quite explicit
descriptions of reciprocity algebras in the stable range in terms of the tensor
product algebra for $GL_n$. This is the structure lying behind formulas for
branching multiplicities in terms of Littlewood-Richardson coefficients.
