1. A method for real-time seeking during playback of a remote presentation layer protocol data stream transmitted from an application server (i) executing an application for a client and (ii) streaming the output display generated by the application to the client, the method comprising: receiving, by a background protocol engine executing on a first computing machine, a first request for playback of a remote presentation layer protocol data stream; rendering, by a foreground protocol engine executing on the first computing machine, the received presentation layer protocol data stream responsive to the first request; generating, by the background protocol engine, a state-snapshot of the presentation layer protocol data stream while the foreground protocol engine renders the received presentation layer protocol data stream, wherein the state-snapshot comprises data representing a state of the background protocol engine rendering the presentation layer protocol data stream; receiving, by the foreground protocol engine, a second request for real-time seeking of the presentation layer protocol data stream comprising a packet associated with a time-stamp; identifying, by the foreground protocol engine, a state-snapshot having an associated timestamp not later than the time stamp associated with the requested packet, re-rendering, by the foreground protocol engine, the presentation layer protocol data stream using the state-snapshot received from the buffer.