4 ms·
This actually can lead to a very interesting discussion about TCP friendliness, which I didn't have space to elaborate in paper: 1. The Trend of Selfish Applic
by modong 12y ago
This actually can lead to a very interesting discussion about TCP friendliness, which I didn't have space to elaborate in paper:
1. The Trend of Selfish Applications:
TCP's poor performance is not only an object of research study. More and more applications have chosen to ignore the notion of TCP friendliness and use selfish application-level optimization techniques such as opening many parallel connections (as in modern web browsers and GridFTP), contacting multiple servers in parallel (in BitTorrent), or modifying TCP to use a very large initial window size. In fact, some CDN providers use selfish optimization of TCP to accelerate data transfer from CDN servers to end users on the public Internet. This trend indicates that often, applications prefer higher performance regardless of potential TCP unfriendliness. Although we recommend use of PCC only when it is isolated from legacy TCP, it is likely that due to PCC's robust high performance, some or many users (especially those suffering in network environments that are challenging for TCP) will use PCC as another selfish performance optimization technique. Legacy TCP users, on the other hand, will unfortunately suffer from performance degradation when competing with PCC and other selfish optimization techniques under FIFO queue based network.
What happens next in this tussle? One possibility is a slow arms race towards selfish high performance rate control. If done through adoption of PCC using our safe utility function, it will actually avoid a ``tragedy of the commons'' situation as we have shown. But more immediately, network owners (ISPs) will likely take action to avoid complaints.
2.ISP response to selfishness:
o maintain legacy TCP users' satisfaction, network operators can respond to selfishness by deploying flow-level or customer-level resource isolation at the point of congestion. Of course this requires hardware support, but it is feasible for two reasons. First, unlike protocols like XCP and RCP, an ISP can deploy resource isolation as a local change at an individual congested device, requiring no signaling or packet header changes or explicit feedback to end-hosts. Second, the belief that per-flow FQ is infeasible for high speed switching hardware is now a misconception, with merchant silicon supporting hundreds of thousands of flows at hundred-gigabit speeds. Even by 1999, early implementations used limited hardware (less than 33Mhz FPGA or CMOS) to support FQ on multi-gigabit links. Today, an off-the-shelf EZchip NP-4 supports 256K flows with 100 Gbit throughput, VSC2202 supports 500K flows with Gigabit Ethernet throughput, and so on. We obtained a quote of $25 for the VSC2202, of which the cost of the FQ logic itself is only a fraction.} In certain cases resource isolation is already deployed; cellular networks for example use separate queues for each user.
3. Towards a new architecture?
The above trends suggest that in-network resource isolation may be increasingly deployed as a consequence of the continuous tussle between applications optimising selfishly and ISPs protecting their infrastructure with means that are feasible to deploy. We argue that this process is actually (slowly) evolving the Internet towards a fundamentally better architecture: end-hosts focus on optimising their desired performance, while the network's job is to isolate resources across users. This architecture offers a clean separation of concerns. End-hosts in this architecture deal with what they can directly observe and control, leading to simple, clean designs and the flexibility to express their heterogenous objectives and even safely evolve to new end-to-end protocols. Similarly, the network deals with what it directly observes and cares about, i.e., competition between users or flows. Our evaluation has already demonstrated the flexibility that results from this architecture.
- baruch 12y agoWhile there are users of selfish transports and there is space for them in controlled networks it will be hard to get something selfish widely used considering the slow adoption of congestion control. It would be nice to see quantification of NewReno TCP behavior against PCC, both short and long lived connections and how they fair in such an environment. If you want to convince the world to switch to your approach you'll need to do that. At the end most people will just use the default of their OS and will never even consider what happens underneath so you'll need to convince the Linux kernel and BSDs that your approach is better overall and viable for the wide internet. One thing I failed to take account before is that most transfers are affected by the congestion control on the server and less so on the client (besides uploads) so you really need to focus on the OS vendors to implement PCC in their OS and possibly make it a default. Linux has a configurable congestion control mechanism and I added H-TCP to it back at the time. Wasn't too much work either. I don't really buy the ISP response argument, they will fail to do it early enough and will only get to it when things break severely enough and then their response will be overly aggressive. It would be useful however to maybe add a mode detection to PCC that will throttle it somewhat to not take full bandwidth in order to leave some space for legacy TCP. It will add complexity to PCC and this needs to be balanced but at the end you'll need to do what it takes to get PCC beyond closed networks and into the internet and you have many gatekeepers to convince.