BGP uses TCP as its transport protocol, on port 179. On connection start, BGP peers exchange complete copies of their routing tables, which can be quite large. However, only changes (deltas) are then exchanged, which makes long running BGP sessions more efficient than shorter ones.
BGP's basic unit of routing information is the BGP path, a route to a certain set of CIDR prefixes. Paths are tagged with various path attributes. The sender of the path is noted as the next hop. It the responsibility of the BGP implementation to select among competing paths using a nearly completely undefined algorithm. RFC 1771 states only that the computation be based on "preconfigured policy information. The exact nature of this policy information and the computation involved is a local matter."
Since one of RFC 1771's editors is employed by cisco Systems, it seems unlikely that the authors have no knowledge of the so-called convergence functions used by BGP routers to select among various paths. It is more likely that they have simply chosen not to include this information. This is in sharp contrast with RIP's RFC 1058, written before the days of the "big Internet", which not only described RIP's convergence function, but documented a protocol better in one document that BGP does in four.
\end{soapbox}
One of BGP-4's most important functions is loop detection at the Autonomous System level. An important path attribute is AS-PATH, a list of Autonomous Systems being used for data transport. The syntax of this attribute is made more complex by its need to support path aggregation, when multiple paths are collapsed into one to simplify further route advertisements.
A free software implementation of BGP-4 can be found in Gated.