Read timeouts are set per implementation, with DS-defined values for the AReq leg. AReq/ARes: the 3DS Server and ACS use the DS's timeout values (Req 5.44); the 3DS Server retries a failed connection or TLS handshake to the DS at once, then tries an alternate DS or waits 30 seconds, and closes the connection as a failed transaction if no ARes arrives within the DS's read timeout (Req 5.45 to 5.48); the DS retries a failed connection to the ACS once and otherwise, or on the ACS read timeout, answers the 3DS Server with an ARes carrying IReq 13 (Req 5.49 to 5.51). CReq/CRes: the SDK retries a failed connection once and then reports an error to the app, applies a 5-second read timeout, retries the CReq once with processing UI, and after a second expiry ends 3DS processing with an error to the app (Req 5.52 to 5.55). RReq/RRes: the ACS retries a failed connection at once, then every 10 seconds until the RReq is delivered, applies a 5-second read timeout and reconnects on expiry (Req 5.56 to 5.58); the DS retries a failed connection to the 3DS Server once and otherwise answers the ACS with an RRes carrying IReq 13, applies a 3-second read timeout and ends processing on expiry (Req 5.59 to 5.61).
The graph holds this control, the 0 it maps to, and the evidence behind each claim, over MCP and REST.