Intentaré explicarlo en el contexto de las ecuaciones de Euler.
Como usted dice, un choque se produce cuando convergen características (de la misma familia). Concretamente, en el caso de las ecuaciones de Euler, se produce un choque cuando se cruzan dos (o más) características acústicas. La explicación simplista es que la única forma de rectificar la coexistencia de múltiples características es una discontinuidad de salto en las variables de estado.
La discontinuidad de salto en un choque se rige por las condiciones Rankine-Hugoniot.
A través de un choque vemos un salto en la densidad, la velocidad y la presión. También esperamos que los choques aumenten la entropía. Además, el choque es subsónico con respecto a la solución a barlovento del choque y supersónico con respecto a la solución a sotavento.
Además de los choques, las condiciones Rankine-Hugoniot admiten una segunda familia de discontinuidades: las discontinuidades de contacto. Del mismo modo, además de admitir modos acústicos, las ecuaciones de Euler también admiten ondas de entropía. Una discontinuidad de contacto es una región de características de ondas de entropía paralelas. En una discontinuidad de contacto, la presión y la componente normal de la velocidad son constantes. La densidad y la entropía pueden cambiar, pero hay que tener en cuenta que la discontinuidad de contacto no produce entropía por sí misma. No es necesario que la componente tangencial de la velocidad sea constante y, de hecho, a menudo no lo es. El ejemplo clásico de esto sería la inestabilidad Kelvin Helmhotlz.
Probablemente también merezca la pena señalar que la ecuación de advección lineal sólo admite discontinuidades de contacto, mientras que la ecuación de Burger no viscosa sólo admite choques y ondas de expansión.