Yo entiendo por trama , un bloque de datos de cualquier tipo ordenado de cualquier forma que necesite la aplicación. Por ejemplo, en mi caso tengo aplicaciones que envían tramas uart ordenadas por líneas que agrupan datos según su naturaleza.
Por ejemplo, imagina que mi trama se compone de 20 valores de temperatura, 30 de fechas, 15 de distancias y 25 de nombres.
Lo que hago es enviar una línea con los 20 valores de temperatura consecutivos. Acabo la línea con un valor checksum calculado con todos los datos de esa línea y finalmente cambio de línea con \r\n
Ahora envío las fechas y lo mismo, checksum y \r\n y así sucesivamente.
Para el fin de trama podrías enviar un carácter Null que es un \0
Aunque yo no marco nunca un fin de trama, simplemente establezco un ratio, por ejemplo 100 ms, lo cual significa que se envía una trama completa cada 100 ms. Depende del ratio que requiera la aplicación en concreto. Conociendo el ratio no tienes que saber donde está el fin de la trama.
Saludos.