Re: [tcpm] On the implementation of TCP urgent data (IETF Internet Draft)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [tcpm] On the implementation of TCP urgent data (IETF Internet Draft)



On Thu, 12 Mar 2009, Jerry Leichter wrote:


In summary: This is not, and has never been, a TCP problem. The issues are at the boundary between the TCP stack and the socket API, affecting code on both sides of that boundary.

That's somewhat the problem is that it's "noone's problem". In my opinion, the best thing is a strongest possible message to the application developers "if you were planning to use this, don't". Whether the definition of is one byte left or right does not matter - the ambiguity is *already* there. Granted, it can be mitigated within the specific administrative domain, but if I talk to you across the internet, there's absolutely no guarantee whatsoever (try to interrupt an FTP transfer from a randomly selected server and see how many actually do not hang - amongst those that keep the tcp/21 connection of course)


Finally, on the question of whether the socket API should be changed to eliminate OOB data: That's perhaps an arguable position, exactly because the implementations are so bad; but the implicit message in the way you state it - that TCP is what matters, and the socket API is just some minor thing - is exactly backwards. There are at most, what, a couple of hundred engineers in the entire world, working on at most a few tens of distinct code bases, who actually deal with *TCP*. There are hundreds of thousands of engineers dealing with millions of applications that depend on the socket API.

The initial discussion we had with Fernando that gave a rise to this draft was of the flavour "TCP Urgent considered harmful for application developers".


Changing TCP is a big job, but one that would be doable if there were sufficient need: Look at IPv6. Changing the socket API is impossible - if you think IPv6 is taking a long time to roll out, that's nothing compared to how long it would take a new, incompatible socket API replacement. Chances are it would never happen.

All depends on the business needs, but the TCP Urgent is indeed not among the most widely used ones. A clear and well-structured semantics of Out-Of-Band Notifications might be of some use though, IMHO - but then, one could as well use the separate UDP channel along - though it is not as "convenient".

thanks,
andrew

Note: Messages sent to this list are the opinions of the senders and do not imply endorsement by the IETF.