Since there was a request from Michael [comment] for more information on what we can test via network emulation, I thought I'd give a brief summary (can't really go into great detail about Xbox 360 proprietary tools)
Options available for packet loss include:
- * Periodic Loss: drop one packet every N packets
- * Random Loss: drop packets randomly at a specified loss rate
- * Burst Loss: drop multiple packets in bursts specified by a min/max size and a loss probability
- * Gilbert-Elliot Loss: packet loss is simulated based on the Gilbert-Elliot model, which describes a system of two states: good and bad.
Gilbert-Elliot Model
The image below shows a diagram of good (G) and bad (B) states. We can specify the probability that the network will transition from one state to the other, the rate at which the simulation is evaluated, and the packet loss in both the good and the bad states.
Images from http://www.utdallas.edu/~aria/mcl/packet/ and http://www.tkn.tu-berlin.de/publications/papers/tkn_report02.pdf
HD Remix lessons:
It was a bit misleading to state that the problems in HD Remix were caused by packet loss. One of the issues was related to how we handled the re-transmission when this type of error occurs. This is where it gets a little tricky, because it ends up being a matter of tuning and tweaking.
What we discovered was that the reliable transfer protocol that Backbone developed was correctly identifying the situations where packets were received out-of-order, greatly delayed, or not at all. The problem is in how those are re-transmitted - One error was to tag re-transmission data as important, rather than correctly evaluate it based on priority. The rest of the problem was a matter of finding an optimal rate to resend.
The bad situation that we want to avoid is getting packet loss and then making the problem worse by continually re-sending data while trying to catch up.
The other half of the rollback problems with HD Remix has more to do with how images are rendered to the screen than a network issue.. which I will touch on later.
- Gary

