What is the difference between USSD and SMS?

USSD is a menu-based service which runs as a real-time open session between the application and the end-user. While SMS is a store and forward technology, USSD texts and interactions are not stored on the mobile phone. SMS content remains stored in the mobile phone memory. Additionally, USSD can have up to 182 characters, while SMS is limited to 160 characters.