TCP underlies most (though not all) of the other famous Ps: HTTP, SMTP, NNTP, FTP, POP, IMAP, etc., etc. If you're reading this, your browser almost certainly used HTTP over TCP to fetch the contents. TCP works on anything from a single computer (using loopback) to the whole internet. And it does it so quietly you can easily forget it's even there.
TCP is successful because of two well-chosen abstractions:
It uses the abstraction of a best-effort datagram protocol. That is, it assumes that there is a way of sending a packet of data, up to a given size, to a given address on the network. It doesn't assume that such a datagram will always get there, or that any two datagrams will arrive in the order sent, or will arrive intact, or will only arrive once. It works best when these things happen, but it still works even if they don't, as long as they don't happen too much.
TCP provides a useful abstraction. Once you establish a TCP connection to another host, one of three things will happen:
Not bad at all for something invented when the Net as we now know it was still firmly in the realm of speculation.
TCP provides a useful abstraction. Once you establish a TCP connection to another host, one of three things will happen:
- The data you send will arrive, in the order you sent it, intact and reasonably timely (and likewise for data the other end sends back).
- Failing that, the connection will be closed and you will get an error.
- Failing that, you will have bigger problems to deal with than a broken TCP connection.
Not bad at all for something invented when the Net as we now know it was still firmly in the realm of speculation.
No comments:
Post a Comment