1. End to End Protocols: keep reliability measures in the transport layer.
- E2E: TCP Reno, the baseline, is itself an end-to-end protocol
- E2E-NEWRENO: partial acknowledgements
- E2E-IETF-SACK: selective acknowledgements
- E2E-SMART: selective acknowlegements with bitmaps for decreasing message complexity.
- E2E-ELN: explicit loss notification.
2. Link Layer Protocols: enlist the help of the lower levels in the stack, for high-loss networks
- LL: sniff tcp acks, infer local loss and automatically resend
- LL-SMART: smart selective retransmissions.
- LL-TCP-AWARE: less naive than LL, suppresses the duplicate acks that would otherwise initiate congestion control in the sender even though loss is local.
3. Split connection: this is a non-ideal but obvious solution: break the network into 2 networks by partitioning at the loss boundary, and let TCP operate in the two appropriate modes in each network. This obviously sacrifices the semantics of TCP between the sender and receiver.
[... To be continued...]
