We discussed a point in my networking class that I found interesting -- transport protocols in development are extremely concerned with being fair to TCP. I was thinking about whether fairness is necessary or not, and I came to the conclusion that some degree of fairness certainly is -- a network will lose users quickly if transport protocols are so aggressive that one user takes up most/all of the traffic at any given point. Real-time applications, at the very least, would die, and the network would be perceived as unreliable (unless one user consistently got the whole network; then he'd be pretty happy). On the other hand, if a new protocol is fair with other implementations of itself, but not with TCP, it could encourage migrating to the new protocol (hopefully with some benefits connected thereto!). So what's the appropriate level of fairness?
The problem, as I see it, is most visible on large networks with non-technical people, like the Internet. Users who haven't upgraded their OS of choice for whatever reason may find that their TCP connections are wholly unreliable compared to what they used to be, and complain to the network administrators (or ISPs in this case). Enough complaints, enough lost business, and suddenly the new protocol might find itself prohibited or hobbled in some way on the network so that current customers will be happy. Then again, they might simply force their customers to upgrade the protocol on the client side. My question then becomes, "is it appropriate to force users to do a certain thing that they did not agree to on their own machines?" My gut says no, but short of running side-by-side networks, is there some compromise that would solve this issue? I don't yet know.
No comments:
Post a Comment