reading serial data with timeouts

I cannot add start and stop markers to the incomng data since i have no control, the protocol states that i response must be given within 40ms or there is no response and that the time between each byte will not excedd 5ms. there is however a crc added to end that i can check and if its invalid i can reissue command