Slashdot Mirror


Replacing TCP?

olau writes "TCP, the transfer protocol that most of the Internet is using, is getting old. These guys have invented an alternative that combines UDP with rateless erasure codes, which means that packets do not have to be resent. Cool stuff! It also has applications for peer-to-peer networks (e.g. for something like BitTorrent). They are even preparing RFCs! The guy who started it, Petar Maymounkov, is of Kademlia fame."

25 of 444 comments (clear)

  1. Old!=bad by gspr · · Score: 5, Insightful

    The submitter says that TCP is getting old, but does that really tell us anything about how well it does its job?

    1. Re:Old!=bad by RAMMS+EIN · · Score: 4, Insightful

      TCP does have its shortcomings.

      As they mention on their site, TCP's bandwidth usage is dependent on the latency of the link. This is due to the fact that sliding windows (the number of packets that are allowed to be out on the network) have a limited size. TCP sends a windowful of packets, then waits until one is acknowledged before sending another one. On high-latency links, this can cause a lot of bandwidth to go unused. There is an extension to TCP that allows for larger windows, addressing this problem.

      Another problem with TCP is slow start and rapid back-off. IIRC, a TCP connection linearly increases its bandwidth, but will halve it immediately when a packet is lost. The former makes for a very slow startup, whereas the latter causes a connection to slow down dramatically, even though a lost packet can be due to many factors other than congestion. Slow start has been addressed by allowing connections to speed up quicker, about rapid back-off I'm not sure.

      The solution this company provides seems to play nice with TCP by varying the transmission speed in waves. Apparently, this improves speed over TCP's back-off mechanism, but it obviously doesn't provide optimal bandwidth utilization.

      --
      Please correct me if I got my facts wrong.
  2. Is it an open protocol? by FooAtWFU · · Score: 4, Insightful

    If it's not an open protocol (if they charge for use) it may find niche applications. If it is, it may proliferate. I wasn't able to find details about this on the site.

    --
    The World Wide Web is dying. Soon, we shall have only the Internet.
  3. What exactly about TCP is getting old? by Anonymous Coward · · Score: 4, Insightful

    Some inefficiencies are one thing, but you're going to need a compelling reason to get everyone to switch.

  4. TCP is old...so what? by RAMMS+EIN · · Score: 5, Insightful

    TCP is old, but that doesn't mean it's bad or replacement is due. Some shortcomings have surfaced and been adressed. For the most part, TCP does a good job at what it was designed to do.

    --
    Please correct me if I got my facts wrong.
  5. I wouldn't make any mention of bittorrent, etc.. by drunkennewfiemidget · · Score: 5, Insightful

    Because then you're going to have the suits trying to push it down, no matter how great/useful it is in an effort to kill the possibility of coming out with something that could make pirating any easier or more efficient. That's the only way they're going to see it.

    It's good to see innovation though, nonetheless.

  6. Brilliant! by morgdx · · Score: 4, Insightful

    A slightly faster equivelent to TCP that I have to pay for and no-one else uses.

    Sign me up for that sucker right now.

    --
    http://jfin.org/jFin pure java open source financial library
  7. Is replacing TCP necessary? by bigberk · · Score: 4, Insightful

    There's no doubt that an alternative to TCP might have technical merits. But as far as communication protocols go, TCP itself is pretty amazing. Modern TCP implementations have been tweaked over decades and have impressive performance and reliability. And modern TCP/IP stacks have rather unspoofable connection establishment, another excellent feature for security.

    If you want to replace TCP, you have to do more than just develop a new protocol that is faster. It would have to outperform TCP in speed, reliability, and substantially so in order to outweigh the costs of ditching a well-established and trusted protocol.

  8. Not gonna work if encumbered by JohnGrahamCumming · · Score: 4, Insightful

    1. This is coming from a company who are surely going to want to make money out of it somehow. Part of the reason TCP succeeded is there was no one to pay.

    2. They don't seem to understand the GPL:

    "We are planning to release Rateless Codes for free, non-commercial use, in open source under the GNU Public License."

    The GPL doesn't restrict commercial use, and hence the only way that they can do this is either they try to add some conditions to the GPL, or they use another mechanism to restrict commercial use: e.g. patents.

    No matter how good this technology is it's not going to get wide adoption is an alternative to TCP unless it's unencumbered.

    John.

    1. Re:Not gonna work if encumbered by Have+Blue · · Score: 4, Insightful

      If they want it to replace TCP, it will have to be completely unencumbered, and that includes viral licenses. Under BSD, commercial adoption would be possible.

  9. Re:Yet another "reliable UDP" layer by jrumney · · Score: 5, Insightful

    It appears that they get better performance than TCP by considering (all - 1) the issues. Basically, their protocol works and performs better than TCP because the pipes have spare capacity. If the pipes were at capacity, their protocol would break down. TCP has been designed to be robust in all conditions. Protocols like this that rely on "in most cases we can get away with allowing more errors than TCP does" are not going to replace TCP.

  10. Encoded Packets doesn't Solve Problems by kakos · · Score: 4, Insightful

    I did read their website and it looks like their revolutionary new replacement for TCP is UDP with their proprietary ECC built on top of it. However, there is a good reason why TCP never used ECC (they did exist back then).

    1) The major problem a TCP packet will face is getting dropped. They mention this problem. They claim their encoding will solve this problem. It won't. No ECC algorithm will allow you to recover a dropped packet.

    2) Most packets that are corrupted are corrupted well beyond the repair of most ECCs.

    3) ECCs will cause packet size to increase. Not a huge problem, but why do it when ECCs don't help too much to begin with?

    1. Re:Encoded Packets doesn't Solve Problems by netwiz · · Score: 3, Insightful

      well, assuming that the dropped frames aren't sequential in large number, some kind of ECC (think RAID5 for IP) could alleviate this issue. Granted, you'd be sending three packets for every two packets worth of data, but you could lose any one of them and still be okay.

      However, I don't think most people would necessarily enjoy 50% larger payloads required to make this work. It could be tuned back, but for every decrease in overhead, the effect of losing a frame gets worse. In the end (and this is purely speculative, as I've no real data or math to back this up) it may be that TCP remains more effective with better throughput.

      I'll be honest, I don't see/experience the kinds of lag and retransmission problems that are described in the article, and any large streaming transfers to my home or desk regulary consume 100% of my available bandwidth. So for me, TCP works just fine.

    2. Re:Encoded Packets doesn't Solve Problems by Raphael · · Score: 3, Insightful

      You are almost correct, except that doing the error correction on the whole file instead of a single (or a couple of) packets allows the file to be transmitted even if one or several packets are dropped.

      However, this kind of error correction is only good if you are exchanging rather large files. They cannot claim to replace TCP if their protocol cannot be used for any kind of interactive work. Take for example SSH or HTTP (the protocol that we are using for reading Slashdot): they are both implemented on top of TCP and they require TCP to work equally well for exchanging small chunks of data (keypress in an SSH session, or HTTP GET request) and exchanging larger chunks of data (HTTP response).

      While their new protocol would probably work well for the larger chunks of data, it is very likely to reduce the degrade the link performance for the smaller bits exchanged during an interactive session. So they are probably good for file sharing. But TCP has many other uses...

      Also, they mention that they can be TCP-friendly by transmitting in "waves". I doubt that these "waves" can be very TCP-friendly if their time between peaks is too short. One thing that TCP does not do well is to adapt its transmission rate to fast-changing network conditions. So if they allow the user or the application designer to set the frequency of these waves, they could end up with a very TCP-unfriendly protocol.

      --
      -Raphaël
  11. flamebait? by N3wsByt3 · · Score: 4, Insightful

    I fail to see what is flamebaiting it is to say that TCP can go on for another 50 years, without problem.

    Exactly the same kind of post a bit below gets 'insightful'.

    It is simply true. Yes, there are some little drawbacks with TCP, but in the whole article, they do not give a compelling reason to switch, let alone why one would *have* to. I mean, RTFA: TCP is at 1-3% and the most efficient would be a throughput with 3-5% (loss)...but so what? It's not optimal, but does it anywhere claims TCP is doomed because it's not optimal in certain area's?

    There are myriads of things that aren't optimal on the Net, it doesn't mean they have been here for years and will be for years to come, nor that it is a necessity to switch, if the only thing lacking is that it's not optimally suited.

    --
    --- "To pee or not to pee, that is the question." ---
  12. Good luck, but it will never happen by Ars-Fartsica · · Score: 4, Insightful

    Just look at the adoption rates on IPv6. No one is going to touch a new protocol at this stage. Its not even clear that this is needed. Point me at a specific TCP pain point that is specifically and obviously reducing internet adoption...any takers?

  13. Yawn by Rosco+P.+Coltrane · · Score: 4, Insightful

    YAWN Protocol --> Yet Another Wonderful New Protocol

    ASCII is still around, despite its numerous shortcomings. There's this small thing called "backward compatibility" that people/consumers seem to love, for some reason. Well, same thing for TCP/IP. Even IPv6 has trouble taking off in the general public, despite being essentially just a small change in the format, so never mind the YAWN Protocol this article is about...

    --
    "A door is what a dog is perpetually on the wrong side of" - Ogden Nash
  14. Better TCP by whose rules? by shic · · Score: 3, Insightful

    When considering protocols for information transport, it is very important to be absolutely sure what assumptions you are making. There are a number of non-independent factors which influence the suitability (and hence efficiency) of network protocols to application demands. Bandwidth, for example, is related to but doesn't define the statistical distribution of latencies; maximum packet rate and their relationship to packet size. The channel error rate (and statistical distributions of packet failures) are again linked to fragmentation and concatenation of transmitted datagrams - and this in turn affects latencies when considering "reliable" transport protocols. Routing policy and symmetry of physical links introduces yet more tradeoffs which need to be considered - not to mention the potential problems evaluating if the burden of protocol computations outweighs the advantage of an improved strategy for a given physical link. (And I'm not even going to mention security!) When considering protocols the most important thing to consider is the model they assume of the communications infrastructure on which they are to be deployed. TCP is likely the optimal solution given the assumptions TCP makes... if you change those assumptions to more closely fit a particular network infrastructure you will likely get better performance only on that infrastructure, but far worse performance where your new assumptions do not hold. I used to be interested in the idea of dynamically synthesizing protocols to best suit the actual physical links in a heterogeneous network... however my ideas were met with extreme disinterest; I felt my critics demanded I present a protocol which beats TCP under TCP's assumptions - and no amount of hand-waving and explanation would convince them this was a silly request. I still think the idea has merit - but having wasted 3 years of my life trying to push it uphill, I've found other interesting (and far more productive) avenues to pursue.

  15. Replacing TCP indeed by jsebrech · · Score: 4, Insightful

    This doesn't provide anything like what TCP provides, namely a connection between two network nodes that allows transfer of arbitrary data with guaranteed reliability, with automated congestion control for optimized use of available network resources.

    As far as I can tell (their website could use some more straightforward actual content), this is more like bittorrent, where a file is cut up into blocks, the blocks get distributed across the network, and anyone interested in the file then reconstructs it from available data from all sources, not necessarily having to get the entire file correctly from a single source. Only it does it more efficiently than bittorrent.

    The two protocols target very different uses. TCP excels in interactive use, where the data is sent as it is generated, and no error is tolerable in the single sender-to-receiver link. Bittorrent (and other distributed network protocols) target batch jobs, where throughput is more important than reliability (because reliability can be reconstructed on the client through clever hashing schemes), and where responsiveness is entirely irrelevant.

    So, this could not possibly replace TCP, since it does not do what TCP is most useful for. At the same time, the criticisms aimed at TCP by the rateless designers are valid, but well known, since TCP is indeed poorly suited for high-volume high-throughput high-delay transmissions of prepackaged data.

    Still, good job to them for trying to come up with better protocols for niche or not-so-niche markets. I wish them all the best.

  16. Their key error by RealProgrammer · · Score: 4, Insightful
    Nevertheless, our extended real-life measurements show that highest throughput is generally achieved at speeds with anywhere between 3% and 5% loss.

    That's for just them. What if all hosts on the entire Internet were by design stuffing packets at a 3-5% error rate? Meltdown, that's what. Their "real-life" measurements do not scale, suffering from the usual assumed linearity of new designs for complex systems.

    Sometimes people fall in love with their new ideas, thinking that the rest of the world missed something obvious.

    --
    sigs, as if you care.
  17. Re:nonsense by ebuck · · Score: 3, Insightful

    Who flamebaited this? It's not derogatory, and it's a valid opinion. TCP's shortcomings are going to constantly be mitigated by better router and switch hardware.

    The article is little more than an advertisment for their socket management software, so it's no more news than what SCO produces, but from what I can gather...

    There's no way to obtain data that was truly lost, so they are using an error correcting encoding of the data (and wasting some of the bandwith in the process) They're not really doing something radical, it's just UDP/IP. They just have some software that silently handles the data loss and unpacking which sits on top of a UDP/IP socket. So they've moved the problem from layer 3 into the application layer (layer 7).

    Their entire product places emphasis the amount of network utilization, but little else. I imagine that they're wasting a portion (but who knows how much) of their "utilized" bandwith, and they're certainly wasting a lot of CPU time encoding and decoding the packet payload. Thier sales pitch is basically "TCP/IP bad, UDP/IP better" but they never clearly address how much CPU time this solution requires or how much of the "utillized" bandwith is wasted.

    Using UDP/IP with retransmission in software has been done many times. Look at FTP.

  18. This isn't a general TCP Replacement by billstewart · · Score: 4, Insightful
    As far as I can tell from the documentation, this isn't really a TCP replacement. It's basically a set of efficient forward error correction codes, so if you've got a relatively wide open pipe you can transmit on without much packet loss, it can blast away and recover from occasional losses, but it doesn't do any actual congestion control.
    • They have a "TCP-friendliness" option that varies the transmission rate in a way that TCP windowing can probably cooperate with, so you can set the rate knobs to something less than full blast,
    • but nothing they've documented appears to address the problem of multiple users of this application trying to use a transmission path at the same time, and
    • they also don't document anything that does path rate discovery - so it may work fine if you've got a couple of small pipes feeding a fat network, but if you've got a fat pipe on the sending end and a skinny pipe on the receiving end, they don't document anything that figures out what rate is safe to transmit at.
    They also don't document when you would want to use this and when you would want to use TCP and when you would want to use this on top of TCP.
    --

    Bill Stewart
    New Fast-Compression-only CPR http://preview.tinyurl.com/dy575ks
  19. It's hooey... by Frennzy · · Score: 4, Insightful

    TCP doesn't use RTT to 'calculate congestion'.

    This is a load of fluff, trying to capitalize on the 'p2p craze'. There are plenty of TCP replacements out there, that actually make sense. As far as TCP not being able to utilize 'today's bandwidth', again...hooey. Gigabit ethernet (when backed by adequate hardware, and taking advantage of jumbo frames) moves a HELL (two orders of magnitude) of a lot more data than your typical home broadband connection...using TCP.

  20. Re:What? by panZ · · Score: 4, Insightful
    You are absolutely correct. I was looking for someone to post this argument before doing it myself. Thanks! Mod this guy up!

    TCP doesn't use round trip time to calculate a link speed. In fact, it doesn't just the opposite. It uses a sliding window method so it can send many packets before any one has ACKed. This is done to soften the blow that round trip times will have on your send rates!

    TCP regulates its send rates by slowly sending faster and faster, then when a packet is dropped, it drops its rate fast. Slow increases and exponential backoffs make for VERY efficient link utilization on reliable networks with many active nodes whether it be a fast office LAN or world wide network.

    Their method appears to just spray data without paying attention to what other nodes are doing. It sounds like it is much better suited for point to point communications on unreliable networks. E.g. cellular data networks, packets get dropped much more frequently because of interference rather than congestions. TCP might back off too quickly in this condition because it is optimized to deal with congestion. Their protocol might be great for that first/last hop between your cell phone and the cell tower but otherwise, it undermines the great balance that TCP achieves on our amazing little internet.

    --
    --Let's hack root on 127.0.0.1 --panZ
  21. Re:nonsense by Aragorn992 · · Score: 4, Insightful

    They are suggesting a better protocol which is still in the labs for the most part.

    And what makes this a better protocol? Its vast history of being a solid, reliable protocol with its massive amount of industrial testing? Oh wait thats TCP.

    Frankly, new stacks that look better than old ones are a dime a dozen. Until you test them in the real world you will never know and why bother changing TCP when it does a damn fine job right now?

    IPv6 was implemented for the sole reason (primarily) of addressing the shortage of IP addresses.