Unstructured Supplementary Service Data is a capability of all GSM phones. It is generally associated with real-time or instant messaging type phone services. There is no store-and-forward capability, such as is typical of other short-message protocols (in other words, an SMSC is not present in the processing path). Response times for interactive USSD-based services are generally quicker than those used for SMS.
USSD Phase 1, specified in GSM 02.90, only supports mobile initiated operation (pull operation). In the core network the message is delivered over MAP. USSD Phase 2, specified in GSM 03.90, supports network-initiated operation (pull and push operation).
As an analogy, USSD is similar to telnet, while SMS is similar to mail.
USSD is typically used as a 'trigger' to invoke independent calling services that don't require the overhead and additional usage costs of an SMSC, such as a callback service (e.g. cheaper phone charges while roaming), or interactive data service (e.g. stock quotes, sports results).
USSD is a standard for transmitting information over GSM signalling channels. It is mostly used as a method to query the available balance and other similar information in pre-paid GSM services. The function that is triggered when sending USSD is network-dependent and depends on the specific services the operator is offering.
Example USSD codes: