The original objectives for the Internet included an "end-to-end" principle for simplicity, and perhaps therefore for reliability. I think that keeping a system simple has an incredible amount of value in it, but I think that it is possible to take principles that keep one system simple to an extreme, with the result of an unintentionally complex system. We may have reached this point with our networks.
This paper is an example of using a bit in packet headers that only routers set in order to improve congestion control. Through this and other papers, it seemed pretty clear to me that network performance was improved drastically by the addition of a little reporting logic at the router level. This, however, violates the end-to-end principle. So much effort has been put in to do research on improving the prediction of network congestion that we have more or less ignored the fact that we can just find out how bad it is at any given time.
Improving the network is more costly than changing a protocol on client machines, but I've noticed that it happens anyway. People want faster speeds, bigger pipes -- why not use router congestion control as well? Let's not forget that the end-to-end principle is a means to the end of simpler, more robust networks. If it begins to hamper that end, perhaps we should re-evaluate our devotion to that principle.
No comments:
Post a Comment