Errata exists for this version of the document.
The parameter MessageReceiveTimeout is the maximum acceptable time between two DataSetMessages. If there is no DataSetMessage received within this period, the DataSetReader State shall be changed to Error_3 until the next DataSetMessage is received. The DataSetMessages can be data or keep alive messages.
The MessageReceiveTimeout is related to the Publisher side parameters PublishingInterval, KeepAliveTime and KeyFrameCount.