Its all about the apps Apps have diverse needs – P2P, VoIP, TV, online apps, games Filling the pipe while being TCP fair High-speed congestion control, Autotuning the receive window, host OS (including app) bottlenecks Low priority scavenger service Protocols changes to reduce latency Multipath transport to maximize link capacity, improve resiliency
End-host view of the network Mostly works as expected Establishing connectivity is sometimes problematic Largely remains a black box – Congestion, bottleneck capacity is implicitly inferred Network seems change/risk averse Imposes complex usage requirements – Volume caps, pay-per-use, metered data plans …
Networks view of the end-hosts End-hosts cannot be trusted, need to be explicitly controlled Application performance needs can be inferred and improved upon by inspecting packets on the wire End-hosts typically establish connectivity to well-known servers And the reality is …
Splitting at the seams Devices, Devices, Devices … – IGDs/NATs/Firewalls/DPI devices/Load balancers/Soft switches Layering violations, RFC non-conformance, no future proofing – Backwards compatibility Thanks to deep packet inspection you cant even touch padding bits! – Hampered ECN deployment New protocols hard or impossible to deploy – No changes to protocol on the wire – Takes time for apps to move to using new APIs Not all apps need TCP, but only TCP passes reliably E2E – Tunneling, feedback loops & TCP over TCP issues Network traffic management is a nightmare due to increased appetite for large volumes
CONEX: Things to consider Lets please stop inferring each other. – How can the end-host learn about network policy? – Explicit feedback to/from the network – OS has tons of context than the small amount reflected in the packets Wireless/Cellular network operators are moving towards usage based models – Tactically, policy based routing/interface selection is the high-order bit How does the end-host learn about the network policy?
CONEX: Things to consider Incremental deployment & incentives Bottleneck is largely within the home and/or last mile – Congestion exposure doesnt add any benefit but shouldnt make it worse Primal-dual congestion control – Performance is a function of source rate controller, AQM, marking thresholds, congestion measure – Measure of congestion, feedback of congestion measure, and use of congestion measure by the source controller are all important. Beyond TCP – UDP(DCCP) + ECN