34 lines
988 B
Plaintext
34 lines
988 B
Plaintext
1. server maintains:
|
|
every frame it has ever been in.
|
|
|
|
every packet it has ever sent.
|
|
|
|
packet has: frame no, frame it depends on (maybe nothing),
|
|
0 server's Last Known Client Frame
|
|
|
|
client has told us the latest frame it can now contruct
|
|
|
|
some packets have transmitted frames > this recently, but those
|
|
frames haven't yet been acked
|
|
|
|
some packets may have transmitted frames > this long ago
|
|
and haven't been acked. we call those lost
|
|
|
|
2. most recent frame is "current frame"
|
|
|
|
most recent frame not lost is "presumed client frame"
|
|
|
|
most recent frame acked is "last known client frame"
|
|
|
|
3. goal: transmit current frame to client by most efficient means
|
|
|
|
could send packet depending on "nothing", "presumed client frame",
|
|
or "last known client frame"
|
|
|
|
4. when client gets a packet, it tells us the latest frame it
|
|
can now construct
|
|
|
|
5. when sending packet, server tells client last known client frame.
|
|
client discards all frames older than this.
|
|
|